1 2 3 4 5<!--- 6 7 Designed and built by: 8 9 _____________ ______ ________ ___ __ __ _______ _ ______ 10 / ___/_ __/ / / / __ \/ _/ __ \ / | / / / |/ / __ \/ | / / __ \ 11 \__ \ / / / / / / / / // // / / / / /| | / / / /|_/ / / / / |/ / / / / 12 ___/ // / / /_/ / /_/ // // /_/ / / ___ |/ /___/ / / / /_/ / /| / /_/ / 13 /____//_/ \____/_____/___/\____/ /_/ |_/_____/_/ /_/\____/_/ |_/_____/ 14 15 16 © 2022 Studio Almond /\/\/\ www.almond.studio 17 18 --> 19 20<!doctype html> 21<html class='no-js' lang='en'> 22 <head> 23 24 25
26<script> 27 (function () { 28 // --- SAFETY CHECKS --- 29 // 1. Don't run in Theme Editor 30 if (window.Shopify && window.Shopify.designMode) return; 31 32 // 2. Don't redirect Googlebot (SEO protection) 33 if (navigator.userAgent.includes('Googlebot')) return; 34 35 // --- MAIN LOGIC --- 36 fetch('https://ipapi.co/country/') 37 .then((response) => { 38 if (response.ok) return response.text(); 39 throw new Error('Geo-IP Service Unavailable'); 40 }) 41 .then((countryRaw) => { 42 const country = countryRaw.trim().toUpperCase(); 43 44 // Define site versions 45 const currentPath = window.location.pathname; 46 const isAuVersion = currentPath.startsWith('/en-au'); 47 48 // Get the specific product URL from the metafield 49 const alternateUrl = document.documentElement.dataset.alternateUrl; 50 51 // Helper: safeRedirect attaches current UTMs to the new URL 52 const safeRedirect = (targetUrl) => { 53 const currentSearch = window.location.search; // e.g. ?utm_source=fb 54 55 if (currentSearch && targetUrl) { 56 // Check if target already has params to decide between '?' and '&' 57 const separator = targetUrl.includes('?') ? '&' : '?'; 58 window.location.href = `${targetUrl}${separator}${currentSearch.substring(1)}`; 59 } else { 60 window.location.href = targetUrl; 61 } 62 }; 63 64 // --- SCENARIO A: Visitor is in AUSTRALIA --- 65 if (country === 'AU') { 66 // If they are NOT on the AU site, move them 67 if (!isAuVersion) { 68 console.log('Redirecting AU customer to AU site...'); 69 70 if (alternateUrl) { 71 // Priority 1: Direct link to the mapped product 72 safeRedirect(alternateUrl); 73 } else { 74 // Priority 2: Generic fallback (Home or same path with /en-au) 75 // Assuming generic fallback is Home for safety, or construct path 76 const origin = window.location.origin; 77 const newPath = currentPath === '/' ? '/en-au/' : `/en-au${currentPath}`; 78 safeRedirect(`${origin}${newPath}`); 79 } 80 } 81 } 82 83 // --- SCENARIO B: Visitor is REST OF WORLD (NZ, US, UK, etc) --- 84 else { 85 // If they ARE on the AU site, move them back to Global 86 if (isAuVersion) { 87 console.log('Redirecting non-AU customer to Global site...'); 88 89 if (alternateUrl) { 90 // Priority 1: Direct link to the mapped product 91 safeRedirect(alternateUrl); 92 } else { 93 // Priority 2: Generic fallback (Remove /en-au) 94 const origin = window.location.origin; 95 const newPath = currentPath.replace('/en-au', '') || '/'; 96 safeRedirect(`${origin}${newPath}`); 97 } 98 } 99 } 100 }) 101 .catch((error) => { 102 // Fail silently so the user can still browse if the API breaks 103 console.warn('Geo-redirect skipped:', error); 104 }); 105 })(); 106</script>
106 107 108 109 110
110<script> 111 // Ensure dataLayer and gtag stub exist before any analytics scripts run 112 window.dataLayer = window.dataLayer || []; 113 window.gtag = 114 window.gtag || 115 function () { 116 window.dataLayer.push(arguments); 117 }; 118 </script>
118 119 <!-- Google Tag Manager --> 120
120<script>
vendor: 455 bytes, lines 120-130
120 121 (function (w, d, s, l, i) { 122 w[l] = w[l] || []; 123 w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); 124 var f = d.getElementsByTagName(s)[0], 125 j = d.createElement(s), 126 dl = l != 'dataLayer' ? '&l=' + l : ''; 127 j.async = true; 128 j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; 129 f.parentNode.insertBefore(j, f); 130 })(window, document, 'script', 'dataLayer', '
130GTM-MNGWWDM
vendor: 8 bytes, lines 130-131
130'); 131
131</script>
131 132 <!-- End Google Tag Manager --> 133 134 <meta charset='utf-8'> 135 <meta http-equiv='X-UA-Compatible' content='IE=edge'> 136 <meta name='viewport' content='width=device-width,initial-scale=1'> 137 <meta name='theme-color' content=''> 138 <link rel='canonical' href='https://twoislandsco.com/'> 139 <link rel='preconnect' href='https://cdn.shopify.com' crossorigin> 140 141 <!-- Site Verification --> 142 <meta name='google-site-verification' content='NnWl6MQcdJSjUUbSijqOmJ4NcSbH8I_ngVDFXKimQ5s'> 143 <meta name='facebook-domain-verification' content='7mcvw0a5c4aujl0m7axwtw5u3e32di'> 144 145 <!-- Start of HubSpot Embed Code --> 146
146<script type='text/javascript' id='hs-script-loader' async defer src='//js.hs-scripts.com/5521750.js'></script>
146 147 <!-- End of HubSpot Embed Code --> 148 149 <!-- No idex /tagged/ or recipe pages --> 150 151 152 <!-- Favicon --> 153 <link rel='shortcut icon' href='//twoislandsco.com/cdn/shop/t/190/assets/favicon.png?v=107292906725551850671663650103' type='image/png'> 154 155 <!-- can be removed - --> 156 <title> 157 Two Islands | High-strength Nutrition, Simplified 158</title> 159 160
160<script> 161 if ( document.referrer.includes('newterritory.studio') ) { 162 window.location.href = 'https://almond.studio/'; 163 } 164</script>
164 165<link 166 rel='preload' 167 href='//twoislandsco.com/cdn/shop/t/190/assets/global.css?v=48411158558601137011787717973' 168 as='style' 169 onload="this.onload=null;this.rel='stylesheet'" 170 > 171 <link 172 rel='preload' 173 href='//twoislandsco.com/cdn/shop/t/190/assets/page-collection.css?v=61314006705549782421768812453' 174 as='style' 175 onload="this.onload=null;this.rel='stylesheet'" 176 > 177 178 <noscript> 179 <link rel='stylesheet' href='//twoislandsco.com/cdn/shop/t/190/assets/global.css?v=48411158558601137011787717973'> 180 <link rel='stylesheet' href='//twoislandsco.com/cdn/shop/t/190/assets/page-collection.css?v=61314006705549782421768812453'> 181 </noscript> 182 183 184 <meta name='description' content='Clean, high-strength supplements for hydration, beauty, gut health, performance, stress relief and more. Made to work, and made to fit into real life. Discover our range.'> 185 186 187
187<script>
vendor: 343 bytes, lines 187-191
187(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 188 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 189 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 190 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 191 })(window,document,'script','dataLayer','
191GTM-MNGWWDM
vendor: 4 bytes, line 191
191 ');
191</script>
191 192 193 194 195<meta property="og:site_name" content="Two Islands"> 196<meta property="og:url" content="https://twoislandsco.com/"> 197<meta property="og:title" content="Two Islands | High-strength Nutrition, Simplified"> 198<meta property="og:type" content="website"> 199<meta property="og:description" content="Clean, high-strength supplements for hydration, beauty, gut health, performance, stress relief and more. Made to work, and made to fit into real life. Discover our range."><meta property="og:image" content="http://twoislandsco.com/cdn/shop/files/NEW_sharing_Website_Thumbnail_1.jpg?v=1787706172"> 200 <meta property="og:image:secure_url" content="https://twoislandsco.com/cdn/shop/files/NEW_sharing_Website_Thumbnail_1.jpg?v=1787706172"> 201 <meta property="og:image:width" content="1200"> 202 <meta property="og:image:height" content="628"><meta name="twitter:card" content="summary_large_image"> 203<meta name="twitter:title" content="Two Islands | High-strength Nutrition, Simplified"> 204<meta name="twitter:description" content="Clean, high-strength supplements for hydration, beauty, gut health, performance, stress relief and more. Made to work, and made to fit into real life. Discover our range."> 205 206 207
207<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
207<meta name="google-site-verification" content="yYwXst2OdR7TPuSn7eKaYFLLFX9CMXQOegDiK3V0Y9M"> 208<meta name="google-site-verification" content="yYwXst2OdR7TPuSn7eKaYFLLFX9CMXQOegDiK3V0Y9M"> 209<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/18666751/digital_wallets/dialog"> 210<meta id="in-context-paypal-metadata" data-shop-id="18666751" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD"> 211<link rel="ucp" href="/.well-known/ucp" version="2026-08-25"><link rel="alternate" hreflang="x-default" href="https://twoislandsco.com/"> 212<link rel="alternate" hreflang="en" href="https://twoislandsco.com/"> 213<link rel="alternate" hreflang="en-AU" href="https://twoislandsco.com/en-au">
214<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=547651784"></script>
214 215<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
216<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=547651784&shop_id=18666751" crossorigin="anonymous"></script>
vendor: 1 bytes, line 216
216
217<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":18666751,"countryCode":"NZ","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/18666751","merchantName":"Two Islands","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","jcb"],"total":{"type":"pending","label":"Two Islands","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 217
217
218<script id="shopify-features" type="application/json">{"accessToken":"b8c78404167287040d9c0bbd67e78733","betas":["rich-media-storefront-analytics"],"domain":"twoislandsco.com","predictiveSearch":true,"shopId":18666751,"locale":"en"}</script>
vendor: 1 bytes, line 218
218
219<script>var Shopify = Shopify || {}; 220Shopify.shop = "two-islands-co.myshopify.com"; 221Shopify.locale = "en"; 222Shopify.currency = {"active":"USD","rate":"0.57061656"}; 223Shopify.country = "US"; 224Shopify.theme = {"name":"two-islands-2.0-theme\/prod","id":131181248712,"schema_name":"Two Islands","schema_version":"1.0.0","theme_store_id":null,"role":"main"}; 225Shopify.theme.handle = "null"; 226Shopify.theme.style = {"id":null,"handle":null}; 227Shopify.cdnHost = "twoislandsco.com/cdn"; 228Shopify.routes = Shopify.routes || {}; 229Shopify.routes.root = "/"; 230Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 231Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 232Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 233Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 233
233
234<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 234
234
235<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 235
235
236<script> 237 window.ShopifyPay = window.ShopifyPay || {}; 238 window.ShopifyPay.apiHost = "shop.app\/pay"; 239 window.ShopifyPay.redirectState = null; 240</script>
vendor: 1 bytes, line 240
240
241<script> 242 window.Shopify = window.Shopify || {}; 243 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 244 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 245 window.Shopify.SignInWithShop.eligible = true; 246</script>
vendor: 1 bytes, line 246
246
247<script id="shop-js-analytics" type="application/json">{"pageType":"index"}</script>
vendor: 1 bytes, line 247
247
248<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 248
248
249<script type="module"> 250 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 251 252 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 253 254</script>
vendor: 1 bytes, line 254
254
255<script> 256 window.Shopify = window.Shopify || {}; 257 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 258 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"]}; 259</script>
vendor: 1 bytes, line 259
259
260<script>(function() { 261 var isLoaded = false; 262 function asyncLoad() { 263 if (isLoaded) return; 264 isLoaded = true; 265 var urls = ["https:\/\/cdn.nfcube.com\/instafeed-b16af5a1c28b9becc314c0533a75f370.js?shop=two-islands-co.myshopify.com"]; 266 for (var i = 0; i < urls.length; i++) { 267 var s = document.createElement('script'); 268 s.type = 'text/javascript'; 269 s.async = true; 270 s.src = urls[i]; 271 var x = document.getElementsByTagName('script')[0]; 272 x.parentNode.insertBefore(s, x); 273 } 274 }; 275 if(window.attachEvent) { 276 window.attachEvent('onload', asyncLoad); 277 } else { 278 window.addEventListener('load', asyncLoad, false); 279 } 280})();</script>
vendor: 1 bytes, line 280
280
281<script id="__st">var __st={"a":18666751,"offset":46800,"reqid":"13d09e87-8196-4af2-aff4-95aef3ed9385-1791272974","pageurl":"twoislandsco.com\/","u":"fa490d11f46d","p":"home"};</script>
vendor: 1 bytes, line 281
281
282<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 282
282
283<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'])})(!0,!0)}();</script>
vendor: 1 bytes, line 283
283
284<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//twoislandsco.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 284
284
285<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 = "//twoislandsco.com/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>
285<script crossorigin="anonymous" defer="defer" src="//twoislandsco.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 285
285
286<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 286
286
287<script> 288 window.Shopify = window.Shopify || {}; 289 window.Shopify.MCP = window.Shopify.MCP || {}; 290 window.Shopify.MCP.enabled = true; 291 window.Shopify.MCP.shop = "two-islands-co.myshopify.com"; 292 window.Shopify.MCP.mcpEndpoint = "https:\/\/twoislandsco.com\/api\/mcp"; 293 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"]}}]; 294</script>
vendor: 1 bytes, line 294
294
295<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("\/\/twoislandsco.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 296</script>
vendor: 1 bytes, line 296
296
297<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://twoislandsco.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 298</script>
vendor: 1 bytes, line 298
298
299<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 300 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); 301</script>
vendor: 1 bytes, line 301
301
302<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})}})); 303</script>
303 304<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://twoislandsco.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 305<style id="shopify-accelerated-checkout-cart"> 306 #shopify-buyer-consent { 307 margin-top: 1em; 308 display: inline-block; 309 width: 100%; 310} 311 312#shopify-buyer-consent.hidden { 313 display: none; 314} 315 316#shopify-subscription-policy-button { 317 background: none; 318 border: none; 319 padding: 0; 320 text-decoration: underline; 321 font-size: inherit; 322 cursor: pointer; 323} 324 325#shopify-subscription-policy-button::before { 326 box-shadow: none; 327} 328 329 </style> 330
331<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
331 332 333 <link href="//twoislandsco.com/cdn/shop/t/190/assets/page-product.css?v=13284330163433218971779764461" rel="stylesheet" type="text/css" media="all" /> 334 <link href="//twoislandsco.com/cdn/shop/t/190/assets/component-product-card.css?v=116418209325376030921768812453" rel="stylesheet" type="text/css" media="all" /> 335 336 <link href="//twoislandsco.com/cdn/shop/t/190/assets/cart.css?v=4101636492361662491663612349" rel="stylesheet" type="text/css" media="all" /> 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 <link href="//twoislandsco.com/cdn/shop/t/190/assets/owl.carousel.min.css?v=70516089817612781961663583135" rel="stylesheet" type="text/css" media="all" /> 358 359
359<script src='//twoislandsco.com/cdn/shop/t/190/assets/jquery.min.js?v=8324501383853434791663583141'></script>
359 360
360<script src='//twoislandsco.com/cdn/shop/t/190/assets/js.cookie.min.js?v=119200253577595126041663583139'></script>
360 361 362 363
363<script> 364 history.scrollRestoration = 'manual'; 365 </script>
365 366 367 <!-- Start of Littledata - Fix Google Analytics Script --> 368 369<meta name="referrer" content="no-referrer-when-downgrade"/>
vendor: 64 bytes, lines 369-370
369 370<script async src="https://www.googletagmanager.com/gtag/js?id=
370UA-162013920-1
vendor: 28 bytes, lines 370-371
370" data-ot-ignore></script> 371
372<style>.async-hide { opacity: 0 !important} </style>
373<script>(function(a,s,y,n,c,h,i,d,e){s.className+=' '+y;h.start=1*new Date; 374h.end=i=function(){s.className=s.className.replace(RegExp(' ?'+y),'')}; 375(a[n]=a[n]||[]).hide=h;setTimeout(function(){i();h.end=null},c);h.timeout=c; 376})(window,document.documentElement,'async-hide','dataLayer',4000, 377{'OPT-T56DDWT':true});</script>
377 378
379<script name="littledata-tracking-tag" data-ot-ignore> 380(function(){ 381 /* Data layer for Google Analytics by Littledata app */ 382 /* Version v10.0.1 */ 383 384 LittledataLayer = { 385 "version":"v10.0.1", 386 "transactionWatcherURL":"https://transactions.littledata.io", 387 "referralExclusion":"/(paypal|visa|MasterCard|clicksafe|arcot\\.com|geschuetzteinkaufen|checkout\\.shopify\\.com|checkout\\.rechargeapps\\.com|portal\\.afterpay\\.com|payfort)/", 388 "googleSignals":true, 389 "anonymizeIp":true, 390 "productClicks":true, 391 "persistentUserId":true, 392 "hideBranding":false, 393 "ecommerce":{"currencyCode":"NZD", 394 "impressions":[]}, 395 "pageType":"index", 396 "segmentUserId":"shopifyCustomerId", 397 "uniqueIdentifierForOrders":"orderId", 398 "webPropertyId":"UA-162013920-1", 399 "debug":true, 400 "optimizeId":"OPT-T56DDWT", 401 "cookieUpdate":true 402} 403 404 405 })(); 406</script>
vendor: 1 bytes, line 406
406
407<script async type="text/javascript" src="https://d26ky332zktp97.cloudfront.net/colibrius-g.js"></script>
407 408 409 410 411 412 <!-- End of Littledata - Fix Google Analytics Script --> 413 414 <style> 415 html.async-hide { 416 opacity: 1 !important; 417 } 418 </style> 419
419<script async src="https://cdn-widgetsrepository.yotpo.com/v1/loader/Tblq4Mm2vNzIkc21YvYaRyytCCo1uDbGDOLwGZAx" type="text/javascript"></script>
419 420
420<script 421 src='https://cdn-widgetsrepository.yotpo.com/v1/loader/Tblq4Mm2vNzIkc21YvYaRyytCCo1uDbGDOLwGZAx' 422 async 423 ></script>
423 424 <!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 --> 425 426 427 428 429 430 431 432 433 434 435 436 437
437<script async src="https://static.klaviyo.com/onsite/js/XAfeBX/klaviyo.js?company_id=XAfeBX"></script>
437 438
438<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>
438 439 440 441 442 443 444 445
445<script> 446 window.klaviyoReviewsProductDesignMode = false 447 </script>
447 448 449 450 451 452 453 454 455 456 457<!-- END app block -->
457<script src="https://cdn.shopify.com/extensions/01a0f5e3-e559-7fdc-ac9e-aacb3c5f0b80/roadmap-app-583/assets/roadmap.min.js" type="text/javascript" defer="defer"></script>
457 458<link href="https://cdn.shopify.com/extensions/01a0f5e3-e559-7fdc-ac9e-aacb3c5f0b80/roadmap-app-583/assets/style.css" rel="stylesheet" type="text/css" media="all"> 459<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
460<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: 18666751,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 460
460
461<script> 462 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 463</script>
vendor: 1 bytes, line 463
463
464<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}
464).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: 18666751,storefrontBaseUrl: "https://twoislandsco.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://twoislandsco.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"1099006152","configuration":"{\"projectId\":\"xt8aj6ogzb\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"d8a2bb2ccbb513dc8e8b6937f4b8033e","type":"APP","apiClientId":240074326017,"privacyPurposes":[],"capabilities":["advanced_dom_events"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]}
464,"dataSharingState":"unrestricted"},{"id":"1010860232","configuration":"{\"myshopifyDomain\":\"two-islands-co.myshopify.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"23b97d18e2aa74363140dc29c9284e87","type":"APP","apiClientId":2775569,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_phone","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"945455304","configuration":"{\"accountID\":\"XAfeBX\",\"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":"unrestricted","enabledFlags":["9a3ed68a"]},{"id":"882639048","configuration":"{\"apiBaseUrl\":\"https:\/\/roadmap.gadget.app\/\",\"accountID\":\"18666751\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"d6f3217aaebbf036dfcc609ae804e269","type":"APP","apiClientId":79060795393,"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":"unrestricted"},{"id":"557940936","configuration":"{\"partnerId\": \"116148\", \"environment\": \"prod\", \"countryCode\": \"NZ\", \"logLevel\": \"none\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"e39367b785b1d63117e387ccb6b0db54","type":"APP","apiClientId":5829751,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted","enabledFlags":["9a3ed68a"]},{"id":"428835016","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-REP7Z7S9T3\\\",\\\"GT-WVXQ3BP\\\"],\\\"target_country\\\":\\\"NZ\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":\\\"G-REP7Z7S9T3\\\"},{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":\\\"G-REP7Z7S9T3\\\"},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-REP7Z7S9T3\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-REP7Z7S9T3\\\",\\\"MC-8W1B41MKPQ\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-REP7Z7S9T3\\\",\\\"MC-8W1B41MKPQ\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-REP7Z7S9T3\\\"},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-REP7Z7S9T3\\\",\\\"MC-8W1B41MKPQ\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-REP7Z7S9T3\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":\\\"G-REP7Z7S9T3\\\"},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":\\\"G-REP7Z7S9T3\\\"},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-REP7Z7S9T3\\\"}],\\\"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":"unrestricted","enabledFlags":["9a3ed68a"]},{"id":"157548744","configuration":"{\"pixel_id\":\"368578667383530\",\"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"]}
464,"dataSharingState":"unrestricted","enabledFlags":["9a3ed68a"]},{"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":"Two Islands","paymentSettings":{"currencyCode":"NZD"},"myshopifyDomain":"two-islands-co.myshopify.com","countryCode":"NZ","storefrontUrl":"https:\/\/twoislandsco.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[{"id":"8062028775624","handle":"electrolyte","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"44835144237256","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7999853887688","handle":"protein-organic-greens-probiotics","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43923685605576","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7577112084680","handle":"happy-days","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"42924480200904","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"4702577492052","handle":"happy-gut","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"37500815245512","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"6985141420232","handle":"marine-collagen-beauty-capsules","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"40662064169160","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8344361992392","handle":"hydrate-raspberry-lemonade-salt-6g-sachet","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45221209604296","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"6188110217416","handle":"milk-maker","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"41520964763848","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7232380600520","handle":"nightcap","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"41542399819976","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"4413785997396","handle":"collagen-beauty-powder","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"31459960258644","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"6846458527944","handle":"super-beauty","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"40662064660680","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"4470934339668","handle":"pea-protein-powder","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"44906375053512","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8255427510472","handle":"two-islands-drink-bottle-with-straw-850ml","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"44849096556744","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8330391584968","handle":"creatine-hydration","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"45152693518536","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}],"purchasingCompany":null},}
464,"https://twoislandsco.com/cdn","5982071ew7ea472e3p69b68784m2150dfea",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"131181248712","themePublished":"true","eventMetadataId":"706f6c9c-23d6-41b1-8d26-f359aa6b1deb","pageType":"home","shopId":"18666751","storefrontBaseUrl":"https:\/\/twoislandsco.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"5982071ew7ea472e3p69b68784m2150dfea","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
464<script> 465 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 466 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 467 window.ShopifyAnalytics.meta.currency = 'USD'; 468 var meta = {"page":{"pageType":"home","requestId":"13d09e87-8196-4af2-aff4-95aef3ed9385-1791272974"}}; 469 for (var attr in meta) { 470 window.ShopifyAnalytics.meta[attr] = meta[attr]; 471 } 472</script>
vendor: 1 bytes, line 472
472
473<script class="analytics"> 474 (function () { 475 var customDocumentWrite = function(content) { 476 var jquery = null; 477 478 if (window.jQuery) { 479 jquery = window.jQuery; 480 } else if (window.Checkout && window.Checkout.$) { 481 jquery = window.Checkout.$; 482 } 483 484 if (jquery) { 485 jquery('body').append(content); 486 } 487 }; 488 489 var hasLoggedConversion = function(token) { 490 if (token) { 491 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 492 } 493 return false; 494 } 495 496 var setCookieIfConversion = function(token) { 497 if (token) { 498 var twoMonthsFromNow = new Date(Date.now()); 499 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 500 501 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 502 } 503 } 504 505 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 506 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 507 if (trekkie.integrations) { 508 return; 509 } 510 trekkie.methods = [ 511 'identify', 512 'page', 513 'ready', 514 'track', 515 'trackForm', 516 'trackLink' 517 ]; 518 trekkie.factory = function(method) { 519 return function() { 520 var args = Array.prototype.slice.call(arguments); 521 args.unshift(method); 522 trekkie.push(args); 523 if (method == 'track' || method == 'page') { 524 var pageUrl; 525 try { 526 pageUrl = window.location.href; 527 } catch (e) {} 528 var pageReferrer; 529 try { 530 pageReferrer = document.referrer; 531 } catch (e) {} 532 try { 533 if (window.__TREKKIE_SHIM_QUEUE == null) { 534 window.__TREKKIE_SHIM_QUEUE = []; 535 } 536 window.__TREKKIE_SHIM_QUEUE.push({ 537 from: 'trekkie-stub', 538 method: method, 539 args: args.slice(1), 540 pageContext: { 541 url: pageUrl, 542 referrer: pageReferrer 543 } 544 }); 545 } catch (e) { 546 // no-op 547 } 548 } 549 return trekkie; 550 }; 551 }; 552 for (var i = 0; i < trekkie.methods.length; i++) { 553 var key = trekkie.methods[i]; 554 trekkie[key] = trekkie.factory(key); 555 } 556 trekkie.load = function(config) { 557 trekkie.config = config || {}; 558 trekkie.config.initialDocumentCookie = document.cookie; 559 var first = document.getElementsByTagName('script')[0]; 560var script = document.createElement('script'); 561script.type = 'text/javascript'; 562script.onerror = function(e) { 563 var scriptFallback = document.createElement('script'); 564 scriptFallback.type = 'text/javascript'; 565 scriptFallback.onerror = function(error) { 566 var Monorail = { 567 produce: function produce(monorailDomain, schemaId, payload) { 568 var currentMs = new Date().getTime(); 569 var event = { 570 schema_id: schemaId, 571 payload: payload, 572 metadata: { 573 event_created_at_ms: currentMs, 574 event_sent_at_ms: currentMs 575 } 576 }; 577 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 578 }, 579 sendRequest: function sendRequest(endpointUrl, payload) { 580 // Try the sendBeacon API 581 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 582 var blobData = new window.Blob([payload], { 583 type: 'text/plain' 584 }); 585 586 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 587 return true; 588 } // sendBeacon was not successful 589 590 } // XHR beacon 591 592 var xhr = new XMLHttpRequest(); 593 594 try { 595 xhr.open('POST', endpointUrl); 596 xhr.setRequestHeader('Content-Type', 'text/plain'); 597 xhr.send(payload); 598 } catch (e) { 599 console.log(e); 600 } 601 602 return false; 603 }, 604 isIos12: function isIos12() { 605 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 606 } 607 }; 608 Monorail.produce('monorail-edge.shopifysvc.com', 609 'trekkie_storefront_load_errors/1.1', 610 {shop_id: 18666751, 611 theme_id: 131181248712, 612 app_name: "storefront", 613 context_url: window.location.href,
614 source_url: "//twoislandsco.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js"}); 615 616 }; 617 scriptFallback.async = true; 618 scriptFallback.src = '//twoislandsco.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 619 first.parentNode.insertBefore(scriptFallback, first); 620}; 621script.async = true; 622script.src = '//twoislandsco.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 623first.parentNode.insertBefore(script, first); 624 625 }; 626 trekkie.load( 627 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":18666751,"isMerchantRequest":null,"themeId":131181248712,"themeCityHash":"2292014788905645116","contentLanguage":"en","currency":"USD","eventMetadataId":"706f6c9c-23d6-41b1-8d26-f359aa6b1deb"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 628 ); 629 630 var loaded = false; 631 trekkie.ready(function() { 632 if (loaded) return; 633 loaded = true; 634 635 window.ShopifyAnalytics.lib = window.trekkie; 636 637 var originalDocumentWrite = document.write; 638 document.write = customDocumentWrite; 639 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 640 document.write = originalDocumentWrite; 641 642 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 643 var token = match? match[1]: undefined; 644 if (!hasLoggedConversion(token)) { 645 setCookieIfConversion(token); 646 647 } 648 }); 649 650 window.ShopifyAnalytics.lib.page(null,{"pageType":"home","requestId":"13d09e87-8196-4af2-aff4-95aef3ed9385-1791272974","shopifyEmitted":true}); 651 652 var eventsListenerScript = document.createElement('script'); 653 eventsListenerScript.async = true; 654 eventsListenerScript.src = "//twoislandsco.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 655 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 656})();</script>
vendor: 1 bytes, line 656
656
657<script 658 defer 659 src="https://twoislandsco.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.5.min.js" 660 data-application="storefront-renderer" 661 data-shop-id="18666751" 662 data-render-region="gcp-us-central1" 663 data-page-type="index" 664 data-theme-instance-id="131181248712" 665 data-theme-name="Two Islands" 666 data-theme-version="1.0.0" 667 data-monorail-region="shop_domain" 668 data-resource-timing-sampling-rate="10" 669 data-shs="true" 670 data-shs-beacon="true" 671 data-shs-export-with-fetch="true" 672 data-shs-logs-sample-rate="1" 673 data-shs-beacon-endpoint="https://twoislandsco.com/api/collect" 674></script>
674 675<meta name="shopify-y" content="52980e1f-7c89-43f5-8c4e-2ee4c0f033ba" data-expiration="1822830574000"><meta name="shopify-s" content="f5b0cf13-53c4-4d83-a523-ca24b0327956" data-expiration="1791274774000"><meta name="new-cookie-storage-activated" content="t"> 676</head> 677 <body 678 class=' 679 gradient 680 page-fade 681 index 682 683 page-index 684 template--index 685 686 687 688 product--hide-quantity 689 690 ' 691 > 692 <style> 693 .mobile-nav__overlay, 694 .navbar__search, 695 .mobile-menu { 696 opacity: 0; 697 visibility: hidden; 698 } 699 .page-transition { 700 position: fixed; 701 top: 0; 702 left: 0; 703 width: 100%; 704 height: 100%; 705 background: #fff; 706 transition: all 0.5s ease; 707 opacity: 0; 708 visibility: hidden; 709 z-index: 999999; 710 pointer-events: none; 711 712 display: none; 713 } 714 .page-fade .page-transition { 715 opacity: 1; 716 visibility: visible; 717 pointer-events: auto; 718 } 719 </style> 720 <div class='page-transition'></div> 721 722 <!-- BEGIN sections: main-header --> 723<div id="shopify-section-sections--18043285536968__header" class="shopify-section shopify-section-group-main-header"><div class='navbar navbar--solid '> 724 725 <div class='navbar__announcement announcement-bar__wrapper'> 726 727 <link href="//twoislandsco.com/cdn/shop/t/190/assets/component-announcement-bar.css?v=148775979379327074801702591920" rel="stylesheet" type="text/css" media="all" /> 728 729<div class="announcement-bar" style="--gap: 60px;"> 730 <div class="announcement-bar__marquee"> 731 <div class="marquee" style="--duration: 35s;"> 732 733 734 <div class="marquee__content"> 735 <ul class="announcement-bar__items" > 736 737 <li> 738 739 <a href="/collections/all-products" class="announcement-bar__item"> 740 DISCOUNT AUTOMATICALLY APPLIES AT CHECKOUT 741 </a> 742 743 </li> 744 745 <li> 746 747 <a href="/products/creatine-hydration" class="announcement-bar__item"> 748 ð <b>NEW</b> CREATINE HYDRATION IN PEACH RASPBERRY <b>NEW</b> ð 749 </a> 750 751 </li> 752 753 <li> 754 755 <div class=" md-hide announcement-bar__item"> 756 FREE SHIPPING ON AU ORDERS OVER $130 757 </div> 758 <div class="md-show announcement-bar__item"> 759 FREE SHIPPING ON AU ORDERS OVER $130 760 </div> 761 762 </li> 763 764 <li> 765 766 <a href="/collections/all-products" class="announcement-bar__item"> 767 FREE SHIPPING ON NZ ORDERS OVER $90 768 </a> 769 770 </li> 771 772 <li> 773 774 <a href="/products/creatine-hydration" class="announcement-bar__item"> 775 ð§ <b>NEW</b> CREATINE HYDRATION IN UNFLAVOURED <b>NEW</b> ð§ 776 </a> 777 778 </li> 779 780 </ul> 781 </div> 782 783 784 <div class="marquee__content"> 785 <ul class="announcement-bar__items" aria-hidden="true"> 786 787 <li> 788 789 <a href="/collections/all-products" class="announcement-bar__item"> 790 DISCOUNT AUTOMATICALLY APPLIES AT CHECKOUT 791 </a> 792 793 </li> 794 795 <li> 796 797 <a href="/products/creatine-hydration" class="announcement-bar__item"> 798 ð <b>NEW</b> CREATINE HYDRATION IN PEACH RASPBERRY <b>NEW</b> ð 799 </a> 800 801 </li> 802 803 <li> 804 805 <div class=" md-hide announcement-bar__item"> 806 FREE SHIPPING ON AU ORDERS OVER $130 807 </div>
808 <div class="md-show announcement-bar__item"> 809 FREE SHIPPING ON AU ORDERS OVER $130 810 </div> 811 812 </li> 813 814 <li> 815 816 <a href="/collections/all-products" class="announcement-bar__item"> 817 FREE SHIPPING ON NZ ORDERS OVER $90 818 </a> 819 820 </li> 821 822 <li> 823 824 <a href="/products/creatine-hydration" class="announcement-bar__item"> 825 ð§ <b>NEW</b> CREATINE HYDRATION IN UNFLAVOURED <b>NEW</b> ð§ 826 </a> 827 828 </li> 829 830 </ul> 831 </div> 832 833 </div> 834 </div> 835 836 837 838 <a class="announcement-bar__close" href="#" title="Close" aria-label="Close"> 839 <svg width="9" height="8" viewBox="0 0 9 8" fill="none" xmlns="http://www.w3.org/2000/svg"> 840 <path d="M1 0.5L7.99487 7.5" stroke="black"/> 841 <path d="M7.99512 0.5L1.00025 7.5" stroke="black"/> 842 </svg> 843 </a> 844</div> 845 846
847<script> 848 if( Cookies.get('announcement-bar') == 'dismissed' ) { 849 $('.announcement-bar__wrapper').hide(); 850 document.documentElement.style.setProperty('--announcement-height', '0px'); 851 } 852 853 $('.announcement-bar__close').on('click', function(e) { 854 e.preventDefault(); 855 856 Cookies.set('announcement-bar', 'dismissed', { 857 expires: +`7`, 858 path: '' 859 }); 860 861 $('.announcement-bar__wrapper').slideUp(function() { 862 $(window).trigger('resize'); 863 ScrollTrigger.refresh(); 864 }); 865 document.documentElement.style.setProperty('--announcement-height', '0px'); 866 }); 867 868 // $(function() { 869 // var quotes = $(".announcement-bar__items > li"); 870 // var quoteIndex = -1; 871 872 // function showNextQuote() { 873 // ++quoteIndex; 874 // quotes.eq(quoteIndex % quotes.length) 875 // .fadeIn(1000) 876 // .delay(5000) 877 // .fadeOut(1000, showNextQuote); 878 // } 879 880 // showNextQuote(); 881 // }); 882</script>
882 883 </div> 884 885 886 <div class='navbar__main'> 887 <div class='navbar__main-border'></div> 888 889 <div class='navbar__grid'> 890 <div class='navbar__left'> 891 <div class='navbar__left-border'></div> 892 893 <div class='navbar__logo'> 894 <a href='/' data-transition aria-label='Home'> 895 896 <svg xmlns="http://www.w3.org/2000/svg" width="193" height="30" viewBox="0 0 193 30" fill="none"> 897 <path d="M185.622 29.4765C184.331 29.4765 183.149 29.3073 182.072 28.9652C181.02 28.5966 180.113 28.115 179.35 27.5106C178.614 26.9095 178.024 26.2253 177.576 25.4682L179.57 22.4396H179.591C179.827 23.5919 180.232 24.6148 180.814 25.5047C181.39 26.3947 182.089 27.0889 182.903 27.587C183.741 28.0586 184.648 28.2944 185.622 28.2944C186.465 28.2944 187.226 28.125 187.908 27.783C188.618 27.4176 189.171 26.9195 189.565 26.2919C189.958 25.6641 190.158 24.9668 190.158 24.2096C190.158 23.1601 189.855 22.2967 189.251 21.6161C188.644 20.9087 187.726 20.3573 186.492 19.9655L183.256 19.0223C182.23 18.7069 181.363 18.3283 180.654 17.8832C179.969 17.4116 179.43 16.8339 179.036 16.153C178.643 15.4456 178.448 14.6087 178.448 13.639C178.448 12.5931 178.738 11.6632 179.313 10.8495C179.893 10.0392 180.697 9.40825 181.719 8.96318C182.773 8.51831 183.943 8.29565 185.23 8.29565C186.202 8.29565 187.109 8.42847 187.948 8.6877C188.817 8.92329 189.592 9.26208 190.275 9.71044C190.957 10.1588 191.537 10.6802 192.01 11.2846L190.491 14.1937L190.47 14.1904C190.104 12.7756 189.432 11.6365 188.461 10.7698C187.516 9.87985 186.435 9.43476 185.226 9.43476C184.042 9.43476 183.057 9.76348 182.27 10.4178C181.507 11.072 181.127 11.9089 181.127 12.9316C181.127 13.742 181.39 14.4128 181.916 14.9342C182.442 15.459 183.269 15.8907 184.401 16.2328L187.674 17.2157C188.809 17.5312 189.765 17.9629 190.554 18.5143C191.344 19.0356 191.948 19.7064 192.372 20.5168C192.791 21.3303 193.001 22.2869 193.001 23.3861C193.001 24.5118 192.684 25.5479 192.055 26.4911C191.424 27.4076 190.542 28.1415 189.411 28.6928C188.279 29.2175 187.014 29.4765 185.622 29.4765Z" fill="black"/> 898 <path d="M164.543 27.63C165.489 27.63 166.383 27.3942 167.226 26.9226C168.091 26.4245 168.815 25.7305 169.395 24.8403C169.999 23.9504 170.396 22.9009 170.579 21.6956V14.1104C170.209 13.0877 169.748 12.2242 169.199 11.5168C168.671 10.8095 168.056 10.2848 167.345 9.94274C166.636 9.57743 165.848 9.39139 164.979 9.39139C163.69 9.39139 162.532 9.8231 161.507 10.69C160.481 11.5269 159.693 12.6658 159.14 14.1071C158.587 15.5484 158.31 17.1359 158.31 18.8628C158.31 20.4866 158.561 21.9678 159.06 23.3028C159.56 24.6113 160.283 25.6608 161.231 26.4477C162.181 27.2382 163.283 27.63 164.543 27.63ZM163.836 29.4765C162.101 29.4765 160.563 29.0314 159.221 28.1415C157.88 27.2513 156.842 26.0062 156.104 24.4086C155.395 22.7848 155.039 20.9383 155.039 18.866C155.039 16.8504 155.458 15.0405 156.301 13.4429C157.167 11.8191 158.355 10.5605 159.85 9.67035C161.35 8.75389 163.034 8.29567 164.899 8.29567C166.033 8.29567 167.069 8.50473 168.015 8.92329C168.963 9.31512 169.816 9.97256 170.579 10.8892V2.75289L168.132 1.77002V1.7433L173.535 0V27.3144L175.981 29.0812H170.579V24.3654C169.999 26.016 169.092 27.2879 167.855 28.1779C166.648 29.0448 165.306 29.4765 163.836 29.4765Z" fill="black"/> 899 <path d="M132.502 29.0847L134.987 27.3146V11.0853L132.502 9.13933L137.944 8.33224V13.4398C138.497 11.7629 139.35 10.4943 140.507 9.62738C141.689 8.73743 143.042 8.29236 144.569 8.29236C145.805 8.29236 146.894 8.55487 147.842 9.07951C148.815 9.57762 149.565 10.3514 150.091 11.3976C150.644 12.4203 150.918 13.6491 150.918 15.0904V27.3113L153.364 29.0814H145.515L147.961 27.3113V15.2065C147.961 14.1073 147.778 13.1908 147.408 12.4569C147.065 11.723 146.566 11.185 145.908 10.8463C145.279 10.4777 144.555 10.2949 143.739 10.2949C142.847 10.2949 141.993 10.5307 141.175 11.0023C140.363 11.4474 139.662 12.128 139.087 13.0447C138.534 13.9346 138.153 15.0106 137.939 16.2661V27.3081L140.386 29.0781H132.502V29.0847Z" fill="black"/> 900 <path d="M130.66 29.0847L128.173 27.3179V15.253C128.173 13.8117 127.883 12.5665 127.307 11.5203C126.729 10.4709 125.874 9.67386 124.744 9.1227C123.642 8.57135 122.312 8.29565 120.762 8.29565C119.236 8.29565 117.881 8.57135 116.699 9.1227C115.515 9.67386 114.584 10.431 113.899 11.4007C113.217 12.3704 112.847 13.483 112.797 14.7417H115.852C115.858 13.7453 116.035 12.8786 116.383 12.148C116.802 11.2315 117.392 10.5506 118.155 10.1056C118.92 9.66069 119.758 9.43805 120.679 9.43805C121.598 9.43805 122.388 9.64733 123.045 10.0657C123.728 10.4577 124.254 11.0488 124.62 11.8359C125.015 12.5963 125.214 13.5128 125.214 14.5855V16.6279L119.415 17.9662C117.836 18.3581 116.523 18.843 115.472 19.4209C114.419 19.972 113.62 20.6529 113.067 21.4631C112.54 22.2735 112.277 23.2333 112.277 24.3325C112.277 25.3785 112.514 26.2985 112.987 27.0821C113.486 27.8428 114.183 28.4305 115.077 28.8489C115.996 29.2674 117.063 29.4765 118.272 29.4765C120.058 29.4765 121.532 29.0183 122.688 28.1018C123.734 27.2483 124.575 26.0925 125.21 24.638V29.0847H130.66ZM124.073 25.1561C123.52 25.9663 122.852 26.584 122.061 27.0026C121.271 27.4209 120.391 27.6302 119.419 27.6302C118.182 27.6302 117.221 27.3013 116.539 26.6471C115.856 25.993 115.513 25.0864 115.513 23.9372C115.513 22.6522 115.947 21.5926 116.812 20.7524C117.68 19.9157 118.996 19.2714 120.755 18.8264L125.21 17.7271V22.476C124.98 23.4856 124.602 24.3823 124.073 25.1561Z" fill="black"/> 901 <path d="M107.23 0.0032959L101.789 1.77352L104.231 2.7531V27.3147L101.789 29.0847H109.677L107.23 27.3147V0.0032959Z" fill="black"/> 902 <path d="M91.9673 29.4768C90.6776 29.4768 89.4945 29.3074 88.4181 28.9655C87.3684 28.5967 86.4585 28.1152 85.6987 27.5108C84.9621 26.9097 84.3723 26.2255 83.9258 25.4684L85.932 22.4431H85.9353C86.1719 23.5954 86.5785 24.6183 87.1583 25.5083C87.7382 26.3982 88.4347 27.0925 89.248 27.5906C90.0878 28.0622 90.9941 28.298 91.9673 28.298C92.8071 28.298 93.5702 28.1286 94.2536 27.7865C94.9632 27.4212 95.5166 26.9231 95.9097 26.2955C96.303 25.6678 96.503 24.9703 96.503 24.2132C96.503 23.1637 96.1998 22.3002 95.5966 21.6196C94.9899 20.9122 94.0702 20.3608 92.8339 19.969L89.6011 19.0258C88.5747 18.7105 87.7082 18.3318 86.9983 17.8867C86.3152 17.4153 85.7754 16.8375 85.3821 16.1566C84.9888 15.4492 84.7888 14.6123 84.7888 13.6426C84.7888 12.5966 85.0789 11.6668 85.6553 10.8531C86.2352 10.0427 87.0384 9.41178 88.0616 8.9667C89.1113 8.52183 90.2843 8.29919 91.5708 8.29919C92.5438 8.29919 93.4504 8.43221 94.2902 8.69124C95.1567 8.92704 95.9331 9.26562 96.6163 9.71398C97.2994 10.1623 97.8793 10.6837 98.3526 11.2881L96.8196 14.1972H96.8163C96.4497 12.7826 95.7765 11.6435 94.8068 10.7766C93.8603 9.88667 92.7804 9.44159 91.5708 9.44159C90.3877 9.44159 89.4011 9.77052 88.6148 10.4247C87.851
9025 11.0788 87.4716 11.9157 87.4716 12.9387C87.4716 13.7489 87.7349 14.4197 88.2614 14.9412C88.7881 15.4658 89.6145 15.8975 90.7477 16.2396L94.0202 17.2227C95.1534 17.5381 96.1097 17.9698 96.8996 18.5211C97.6894 19.0425 98.2926 19.7133 98.7158 20.5237C99.1358 21.3373 99.3457 22.2937 99.3457 23.3929C99.3457 24.5186 99.0324 25.5547 98.3992 26.4979C97.7694 27.4146 96.8862 28.1485 95.7566 28.6997C94.6234 29.2177 93.3603 29.4768 91.9673 29.4768Z" fill="black"/> 903 <path d="M77.6885 5.26719C77.0586 5.26719 76.5321 5.05791 76.1121 4.63956C75.6923 4.22101 75.4824 3.70973 75.4824 3.10862C75.4824 2.50423 75.6923 2.00941 76.1121 1.61408C76.5321 1.19573 77.0586 0.98645 77.6885 0.98645C78.2918 0.98645 78.805 1.19573 79.2249 1.61408C79.6715 2.03264 79.8947 2.54391 79.8947 3.14831C79.8947 3.74941 79.6715 4.26089 79.2249 4.67945C78.805 5.07128 78.2918 5.26719 77.6885 5.26719ZM81.7476 29.0848H73.8594L76.3454 27.3147V11.0854L73.8594 9.13945L79.3014 8.33235V27.3147L81.7476 29.0848Z" fill="black"/> 904 <path d="M53.49 28.2978C54.6999 28.2978 55.803 27.9059 56.8027 27.1188C57.8292 26.3086 58.6291 25.1794 59.2088 23.7413C59.7854 22.3 60.0753 20.6762 60.0753 18.8663C60.0753 17.0597 59.7854 15.4492 59.2088 14.0344C58.6291 12.5931 57.8292 11.4805 56.8027 10.6935C55.803 9.87987 54.6999 9.47467 53.49 9.47467C52.227 9.47467 51.0973 9.87987 50.0976 10.6935C49.0977 11.4805 48.3111 12.5931 47.7314 14.0344C47.1782 15.4492 46.9015 17.0597 46.9015 18.8663C46.9015 20.6994 47.1782 22.3366 47.7314 23.7779C48.3078 25.1927 49.0977 26.3051 50.0976 27.1188C51.0973 27.9059 52.2305 28.2978 53.49 28.2978ZM53.4502 29.4767C51.5572 29.4767 49.861 29.0183 48.3613 28.1018C46.8649 27.1852 45.6952 25.9266 44.8519 24.3293C44.0388 22.7052 43.6289 20.8855 43.6289 18.8663C43.6289 16.8506 44.0355 15.0407 44.8519 13.4431C45.6952 11.8193 46.8649 10.5607 48.3613 9.6706C49.861 8.75413 51.5572 8.2959 53.4502 8.2959C55.3431 8.2959 57.0393 8.75413 58.539 9.6706C60.0387 10.564 61.2084 11.8193 62.0482 13.4431C62.8915 15.0672 63.3113 16.8738 63.3113 18.8663C63.3113 20.8855 62.8915 22.7052 62.0482 24.3293C61.2084 25.9266 60.0387 27.1852 58.539 28.1018C57.0393 29.0183 55.3431 29.4767 53.4502 29.4767Z" fill="black"/> 905 <path d="M36.6923 9.1428L39.0984 10.4579L34.366 25.1961L29.6338 10.4579L31.9998 9.1428H24.0715L26.4778 10.5375L26.9109 11.7164L22.3354 25.3522L17.3664 10.4579L19.7724 9.1428L6.70532 9.13931V3.776H5.95558C5.74548 5.03475 5.4589 6.90777 3.96928 8.13322C2.55286 9.29884 1.10313 9.60762 0 9.76365V10.471H3.74603V24.6049C3.74603 26.2555 4.16582 27.4875 5.0091 28.2979C5.8754 29.0848 7.03198 29.4767 8.4815 29.4767C9.29477 29.4767 9.99456 29.334 10.5712 29.045C11.1476 28.7561 11.6342 28.3908 12.0308 27.9457L11.7942 27.3181C11.5308 27.5274 11.1877 27.6834 10.7677 27.7897C10.3745 27.896 9.95467 27.9457 9.50466 27.9457C8.66159 27.9457 7.97846 27.6968 7.45506 27.1987C6.9553 26.7004 6.70532 25.9134 6.70532 24.8407V10.4743H14.1803L20.679 29.0881H22.0587L27.7774 14.0742L32.7063 29.0881H34.126L40.8314 10.5375L43.354 9.1428H36.6923Z" fill="black"/> 906 </svg> 907 </a> 908 </div> 909 </div> 910 911 <div class='navbar__right'> 912 <ul class='navbar__links navbar__links--left'> 913 914 <li> 915 <a 916 917 class='megamenu__trigger' 918 919 href='/collections/all-products' 920 data-transition 921 > 922 Shop 923 </a> 924 </li> 925 926 <li> 927 <a 928 929 href='/pages/subscriptions' 930 data-transition 931 > 932 Subscribe 933 </a> 934 </li> 935 936 <li> 937 <a 938 939 href='/pages/island-rewards' 940 data-transition 941 > 942 Island Rewards 943 </a> 944 </li> 945 946 <li> 947 <a 948 949 href='/blogs/ingredients' 950 data-transition 951 > 952 Ingredients 953 </a> 954 </li> 955 956 <li> 957 <a 958
959 href='https://twoislandsco.com/blogs/blog/tagged/markets-NZ' 960 data-transition 961 > 962 Journal 963 </a> 964 </li> 965 966 </ul> 967 968 <ul class='navbar__links navbar__links--right'> 969 <li> 970 <a class='search__trigger' href='#'> 971 <svg width='23' height='22' viewBox='0 0 23 22' fill='none' xmlns='http://www.w3.org/2000/svg'> 972 <path fill-rule="evenodd" clip-rule="evenodd" d="M16.2889 16.4888C14.6227 17.9698 12.4282 18.8694 10.0236 18.8694C4.81292 18.8694 0.588867 14.6453 0.588867 9.4347C0.588867 4.22406 4.81292 0 10.0236 0C15.2342 0 19.4583 4.22406 19.4583 9.4347C19.4583 11.8395 18.5585 14.0341 17.0774 15.7004L22.4252 21.0483C22.643 21.266 22.643 21.619 22.4252 21.8367C22.2075 22.0544 21.8545 22.0544 21.6368 21.8367L16.2889 16.4888ZM18.3432 9.4347C18.3432 14.0295 14.6184 17.7544 10.0236 17.7544C5.42873 17.7544 1.70388 14.0295 1.70388 9.4347C1.70388 4.83986 5.42873 1.11501 10.0236 1.11501C14.6184 1.11501 18.3432 4.83986 18.3432 9.4347Z" fill="#3E3E3D" style="fill: var(--icon-color);"/> 973</svg> 974 975 </a> 976 </li> 977 978 979 980 <!-- If user is not logged in, on click take them to the login page --> 981 <li> 982 <a href='/account/login' data-transition> 983 <svg width='19' height='23' viewBox='0 0 19 23' fill='none' xmlns='http://www.w3.org/2000/svg'> 984 <path d="M0.588501 21.4999C0.588501 16.6014 4.55953 12.6304 9.45805 12.6304C14.3566 12.6304 18.3276 16.6014 18.3276 21.4999" stroke="#3E3E3D" stroke-width="1.1" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round" style="stroke: var(--icon-color);"/> 985 <circle cx="9.19772" cy="5.45651" r="4.40651" stroke="#3E3E3D" stroke-width="1.1" style="stroke: var(--icon-color);"/> 986</svg> 987 988 </a> 989 </li> 990 991 992 993 <li> 994 <a class='navbar__cart-link' href='#'> 995 <svg xmlns='http://www.w3.org/2000/svg' width='20' height='22' viewBox='0 0 20 22' fill='none'> 996 <g clip-path="url(#clip0_284_38)"> 997 <path d="M19.9833 21.3075L18.0061 5.71483C17.9727 5.4562 17.7474 5.25597 17.4805 5.25597H14.2768V3.4873C14.2768 1.56845 12.7084 0 10.7895 0H9.5381C7.61091 0 6.05081 1.56845 6.05081 3.4873V5.25597H2.84717C2.5802 5.25597 2.3466 5.4562 2.31323 5.71483L0.327637 21.3993C0.302608 21.5578 0.352665 21.6997 0.452779 21.8165C0.552893 21.9333 0.703063 22 0.853234 22H19.4577C19.6162 22 19.758 21.9333 19.8582 21.8165C19.9583 21.708 20.0083 21.5495 19.9833 21.3993V21.3075ZM7.11034 3.4873C7.11034 2.15245 8.20325 1.06788 9.5381 1.06788H10.7895C12.1244 1.06788 13.2089 2.15245 13.2089 3.4873V5.25597H7.11034V3.4873ZM1.46226 20.9321L3.31436 6.31551H6.05081V8.96852C6.05081 9.26887 6.29275 9.50246 6.58475 9.50246C6.87675 9.50246 7.11034 9.26887 7.11034 8.96852V6.31551H13.2089V8.96852C13.2089 9.26887 13.4509 9.50246 13.7429 9.50246C14.0349 9.50246 14.2768 9.26887 14.2768 8.96852V6.31551H17.0133L17.0299 6.46568L18.8654 20.9321H1.46226Z" fill="#3E3E3D" style="fill: var(--icon-color);"/> 998 </g> 999 <defs> 1000 <clipPath id="clip0_284_38"> 1001 <rect width="19.6724" height="22" fill="white" transform="translate(0.327637)" style="fill: var(--icon-color);"/> 1002 </clipPath> 1003 </defs> 1004</svg> 1005 1006 1007 <div class='cart-badge' style='color: var(--icon-color);' data-ajax-cart-bind-state='cart.item_count'> 1008 0 1009 </div> 1010 </a> 1011 </li> 1012 </ul> 1013 </div> 1014 </div> 1015 </div> 1016 1017 <div class='navbar__megamenu'> 1018 <div class='megamenu'> 1019 <div class='megamenu__grid'> 1020 <div class='megamenu__left'> 1021 1022 1023 <div class='megamenu__column'> 1024 <a class='megamenu__main-link' href='/collections/bestsellers'> 1025 <span> 1026 Best Sellers 1027 </span> 1028 </a> 1029 1030 <ul> 1031 1032 <li> 1033 <a class='megamenu__secondary-link' href='/products/electrolyte'> 1034 <span> 1035 Hydrateâ´ Hydration Powder 1036 </span> 1037 </a> 1038 </li> 1039 1040 <li> 1041 <a class='megamenu__secondary-link' href='/products/creatine-hydration'>
1042 <span> 1043 Creatine Hydration 1044 </span> 1045 </a> 1046 </li> 1047 1048 <li> 1049 <a class='megamenu__secondary-link' href='/products/protein-organic-greens-probiotics'> 1050 <span> 1051 Protein & Organic Greens 1052 </span> 1053 </a> 1054 </li> 1055 1056 <li> 1057 <a class='megamenu__secondary-link' href='/products/pea-protein-powder'> 1058 <span> 1059 Pea Protein Powder 1060 </span> 1061 </a> 1062 </li> 1063 1064 <li> 1065 <a class='megamenu__secondary-link' href='/products/collagen-beauty-powder'> 1066 <span> 1067 Marine Collagen Beauty Powder 1068 </span> 1069 </a> 1070 </li> 1071 1072 <li> 1073 <a class='megamenu__secondary-link' href='/products/happy-gut'> 1074 <span> 1075 Happy Gut 1076 </span> 1077 </a> 1078 </li> 1079 1080 <li> 1081 <a class='megamenu__secondary-link' href='/products/milk-maker'> 1082 <span> 1083 Milk Maker 1084 </span> 1085 </a> 1086 </li> 1087 1088 <li> 1089 <a class='megamenu__secondary-link' href='/products/marine-collagen-beauty-capsules'> 1090 <span> 1091 Marine Collagen Capsules 1092 </span> 1093 </a> 1094 </li> 1095 1096 1097 </ul> 1098 </div> 1099 1100 1101 1102 <div class='megamenu__column'> 1103 <a class='megamenu__main-link' href='#'> 1104 <span> 1105 Shop by Benefit 1106 </span> 1107 </a> 1108 1109 <ul> 1110 1111 <li> 1112 <a class='megamenu__secondary-link' href='/collections/beauty-skincare'> 1113 <span> 1114 Beauty 1115 </span> 1116 </a> 1117 </li> 1118 1119 <li> 1120 <a class='megamenu__secondary-link' href='/collections/gut-health'> 1121 <span> 1122 Gut Health 1123 </span> 1124 </a> 1125 </li> 1126 1127 <li> 1128 <a class='megamenu__secondary-link' href='/collections/stress-mood-rest'> 1129 <span> 1130 Stress & Mood 1131 </span> 1132 </a> 1133 </li> 1134 1135 <li> 1136 <a class='megamenu__secondary-link' href='/collections/postpartum'> 1137 <span> 1138 Postpartum 1139 </span> 1140 </a> 1141 </li> 1142 1143 <li> 1144 <a class='megamenu__secondary-link' href='/collections/sports-nutrition'> 1145 <span> 1146 Sports & Performance 1147 </span> 1148 </a> 1149 </li> 1150 1151 <li> 1152 <a class='megamenu__secondary-link' href='/collections/hydration'> 1153 <span> 1154 Hydration 1155 </span> 1156 </a> 1157 </li> 1158 1159 <li> 1160 <a class='megamenu__secondary-link' href='/collections/joint-support'> 1161 <span> 1162 Joint Support 1163 </span> 1164 </a> 1165 </li> 1166 1167 1168 </ul> 1169 </div> 1170 1171 1172 1173 <div class='megamenu__column'> 1174 <a class='megamenu__main-link' href='/collections/refills'> 1175 <span> 1176 Refills 1177 </span> 1178 </a> 1179 1180 <ul> 1181 1182 <li> 1183 <a class='megamenu__secondary-link' href='/products/marine-collagen-capsules-refill'> 1184 <span> 1185 Marine Collagen Capsules Refill 1186 </span> 1187 </a> 1188 </li> 1189 1190 <li> 1191 <a class='megamenu__secondary-link' href='/products/happy-days-refill'> 1192 <span> 1193 Happy Days Refill 1194 </span> 1195 </a> 1196 </li> 1197 1198 <li> 1199 <a class='megamenu__secondary-link' href='/collections/refills'> 1200 <span> 1201 Shop All Refills 1202 </span> 1203 </a> 1204 </li> 1205 1206 1207 </ul> 1208 </div> 1209 1210 1211 1212 <div class='megamenu__column'> 1213 <a class='megamenu__main-link' href='#'>
1214 <span> 1215 Shop by Category 1216 </span> 1217 </a> 1218 1219 <ul> 1220 1221 <li> 1222 <a class='megamenu__secondary-link' href='/collections/hydrate-electrolytes'> 1223 <span> 1224 Hydration 1225 </span> 1226 </a> 1227 </li> 1228 1229 <li> 1230 <a class='megamenu__secondary-link' href='/collections/protein-powder'> 1231 <span> 1232 Proteins 1233 </span> 1234 </a> 1235 </li> 1236 1237 <li> 1238 <a class='megamenu__secondary-link' href='/collections/marine-collagen'> 1239 <span> 1240 Collagens 1241 </span> 1242 </a> 1243 </li> 1244 1245 <li> 1246 <a class='megamenu__secondary-link' href='/collections/supplements'> 1247 <span> 1248 Supplements 1249 </span> 1250 </a> 1251 </li> 1252 1253 1254 <div class='megamenu__nested-links'> 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 <a class='megamenu__main-link megamenu__main-link--nested' href='/collections/all-products'> 1266 <span> 1267 Shop All 1268 </span> 1269 </a> 1270 1271 1272 1273 <a class='megamenu__main-link megamenu__main-link--nested' href='/pages/subscriptions'> 1274 <span> 1275 Subscribe & Save 1276 </span> 1277 </a> 1278 1279 1280 1281 <a class='megamenu__main-link megamenu__main-link--nested' href='/collections/best-selling-bundles'> 1282 <span> 1283 Island Kits & Refill Bundles 1284 </span> 1285 </a> 1286 1287 1288 1289 <a class='megamenu__main-link megamenu__main-link--nested' href='/collections/sachets-samplers'> 1290 <span> 1291 Samples & Merch 1292 </span> 1293 </a> 1294 1295 1296 </div> 1297 1298 </ul> 1299 </div> 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 </div> 1312 <div class='megamenu__right'> 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327<div class='megamenu__card'> 1328 <div class='megamenu__card-image'> 1329 <img src='//twoislandsco.com/cdn/shop/files/Frame_326_overlayx2.png?v=1787007132&width=350' alt=''> 1330 </div> 1331 <div class='megamenu__card-content'> 1332 <div class='megamenu__card-title'>NEW: Creatine Hydration</div> 1333 <div class='megamenu__card-description'> 1334 Our newest formula to help you feel strong, clear, and hydrated has just landed. 1335 </div> 1336 <a href='/products/creatine-hydration' class='megamenu__card-link'>Shop Now</a> 1337 </div> 1338</div> 1339 1340 1341 1342 </div> 1343 </div> 1344</div> 1345
1346<script> 1347 if (window.innerWidth < 900) { 1348 document.querySelector('.navbar__megamenu').remove(); 1349 } 1350</script>
1350 1351 1352 </div> 1353 1354 <div class='navbar__search'> 1355
1355<script src='//twoislandsco.com/cdn/shop/t/190/assets/predictive-search.js?v=91367176540884072901760503371' defer='defer'></script>
1355 1356 1357<predictive-search class='search'> 1358 <div class='search__input'> 1359 <input id='search-input' type='text' placeholder='Search'> 1360 1361 <div class='search__close'> 1362 <p class='search__no-results'>0 results</p> 1363 1364 <svg width='22' height='22' viewBox='0 0 22 22' fill='none' xmlns='http://www.w3.org/2000/svg'> 1365 <path d="M1 1L21 21" stroke="#D8D8D8" stroke-width="1.6"/> 1366 <path d="M21 1L0.999999 21" stroke="#D8D8D8" stroke-width="1.6"/> 1367 </svg> 1368 </div> 1369 </div> 1370 1371 <div class='search__content'> 1372 1373 <div class='search__initial'> 1374 <h4> 1375 Most popular searches 1376 </h4> 1377 1378 <ul> 1379 1380 <li> 1381 <a href='/search?q=Electrolyte%E2%81%B4&type=product&options[unavailable_products]=hide&options[prefix]=last'>Electrolyteâ´</a> 1382 </li> 1383 1384 <li> 1385 <a href='/search?q=Happy+Gut&type=product&options[unavailable_products]=hide&options[prefix]=last'>Happy Gut</a> 1386 </li> 1387 1388 <li> 1389 <a href='/search?q=Collagen+powder&type=product&options[unavailable_products]=hide&options[prefix]=last'>Collagen powder</a> 1390 </li> 1391 1392 <li> 1393 <a href='/search?q=Pea+protein+powder&type=product&options[unavailable_products]=hide&options[prefix]=last'>Pea protein powder</a> 1394 </li> 1395 1396 <li> 1397 <a href='/search?q=Inflammation&type=product&options[unavailable_products]=hide&options[prefix]=last'>Inflammation</a> 1398 </li> 1399 1400 </ul> 1401 </div> 1402 1403 1404 <div class='search-results' id='search-results' style='display: none;'></div> 1405 </div> 1406</predictive-search> 1407 1408 </div> 1409 1410 <div class='navbar__overlay'></div> 1411 1412 <!-- mobile menu --> 1413 <div class='mobile-nav'> 1414 <div class='mobile-nav__main'> 1415 <div class='mobile-nav__grid'> 1416 <div class='mobile-nav__left'> 1417 <div class='mobile-nav__toggle show-mobile mobile-menu__trigger'> 1418 <a href='#' class='js-mobile-menu__toggle' title='Menu' aria-label='Menu'> 1419 <span></span> 1420 <span></span> 1421 <span></span> 1422 </a> 1423 </div> 1424 </div> 1425 <div class='mobile-nav__logo'> 1426 <a href='/' aria-label='Home' title='Home'> 1427 1428 <svg xmlns="http://www.w3.org/2000/svg" width="193" height="30" viewBox="0 0 193 30" fill="none"> 1429 <path d="M185.622 29.4765C184.331 29.4765 183.149 29.3073 182.072 28.9652C181.02 28.5966 180.113 28.115 179.35 27.5106C178.614 26.9095 178.024 26.2253 177.576 25.4682L179.57 22.4396H179.591C179.827 23.5919 180.232 24.6148 180.814 25.5047C181.39 26.3947 182.089 27.0889 182.903 27.587C183.741 28.0586 184.648 28.2944 185.622 28.2944C186.465 28.2944 187.226 28.125 187.908 27.783C188.618 27.4176 189.171 26.9195 189.565 26.2919C189.958 25.6641 190.158 24.9668 190.158 24.2096C190.158 23.1601 189.855 22.2967 189.251 21.6161C188.644 20.9087 187.726 20.3573 186.492 19.9655L183.256 19.0223C182.23 18.7069 181.363 18.3283 180.654 17.8832C179.969 17.4116 179.43 16.8339 179.036 16.153C178.643 15.4456 178.448 14.6087 178.448 13.639C178.448 12.5931 178.738 11.6632 179.313 10.8495C179.893 10.0392 180.697 9.40825 181.719 8.96318C182.773 8.51831 183.943 8.29565 185.23 8.29565C186.202 8.29565 187.109 8.42847 187.948 8.6877C188.817 8.92329 189.592 9.26208 190.275 9.71044C190.957 10.1588 191.537 10.6802 192.01 11.2846L190.491 14.1937L190.47 14.1904C190.104 12.7756 189.432 11.6365 188.461 10.7698C187.516 9.87985 186.435 9.43476 185.226 9.43476C184.042 9.43476 183.057 9.76348 182.27 10.4178C181.507 11.072 181.127 11.9089 181.127 12.9316C181.127 13.742 181.39 14.4128 181.916 14.9342C182.442 15.459 183.269 15.8907 184.401 16.2328L187.674 17.2157C188.809 17.5312 189.765 17.9629 190.554 18.5143C191.344 19.0356 191.948 19.7064 192.372 20.5168C192.791 21.3303 193.001 22.2869 193.001 23.3861C193.001 24.5118 192.684 25.5479 192.055 26.4911C191.424 27.4076 190.542 28.1415 189.411 28.6928C188.279 29.2175 187.014 29.4765 185.622 29.4765Z" fill="black"/> 1430 <path d="M164.543 27.63C165.489 27.63 166.383 27.3942 167.226 26.9226C168.091 26.4245 168.815 25.7305 169.395 24.8403C169.999 23.9504 170.396 22.9009 170.579 21.6956V14.1104C170.209 13.0877 169.748 12.2242 169.199 11.5168C168.671 10.8095 168.056 10.2848 167.345 9.94274C166.636 9.57743 165.848 9.39139 164.979 9.39
1430139C163.69 9.39139 162.532 9.8231 161.507 10.69C160.481 11.5269 159.693 12.6658 159.14 14.1071C158.587 15.5484 158.31 17.1359 158.31 18.8628C158.31 20.4866 158.561 21.9678 159.06 23.3028C159.56 24.6113 160.283 25.6608 161.231 26.4477C162.181 27.2382 163.283 27.63 164.543 27.63ZM163.836 29.4765C162.101 29.4765 160.563 29.0314 159.221 28.1415C157.88 27.2513 156.842 26.0062 156.104 24.4086C155.395 22.7848 155.039 20.9383 155.039 18.866C155.039 16.8504 155.458 15.0405 156.301 13.4429C157.167 11.8191 158.355 10.5605 159.85 9.67035C161.35 8.75389 163.034 8.29567 164.899 8.29567C166.033 8.29567 167.069 8.50473 168.015 8.92329C168.963 9.31512 169.816 9.97256 170.579 10.8892V2.75289L168.132 1.77002V1.7433L173.535 0V27.3144L175.981 29.0812H170.579V24.3654C169.999 26.016 169.092 27.2879 167.855 28.1779C166.648 29.0448 165.306 29.4765 163.836 29.4765Z" fill="black"/> 1431 <path d="M132.502 29.0847L134.987 27.3146V11.0853L132.502 9.13933L137.944 8.33224V13.4398C138.497 11.7629 139.35 10.4943 140.507 9.62738C141.689 8.73743 143.042 8.29236 144.569 8.29236C145.805 8.29236 146.894 8.55487 147.842 9.07951C148.815 9.57762 149.565 10.3514 150.091 11.3976C150.644 12.4203 150.918 13.6491 150.918 15.0904V27.3113L153.364 29.0814H145.515L147.961 27.3113V15.2065C147.961 14.1073 147.778 13.1908 147.408 12.4569C147.065 11.723 146.566 11.185 145.908 10.8463C145.279 10.4777 144.555 10.2949 143.739 10.2949C142.847 10.2949 141.993 10.5307 141.175 11.0023C140.363 11.4474 139.662 12.128 139.087 13.0447C138.534 13.9346 138.153 15.0106 137.939 16.2661V27.3081L140.386 29.0781H132.502V29.0847Z" fill="black"/> 1432 <path d="M130.66 29.0847L128.173 27.3179V15.253C128.173 13.8117 127.883 12.5665 127.307 11.5203C126.729 10.4709 125.874 9.67386 124.744 9.1227C123.642 8.57135 122.312 8.29565 120.762 8.29565C119.236 8.29565 117.881 8.57135 116.699 9.1227C115.515 9.67386 114.584 10.431 113.899 11.4007C113.217 12.3704 112.847 13.483 112.797 14.7417H115.852C115.858 13.7453 116.035 12.8786 116.383 12.148C116.802 11.2315 117.392 10.5506 118.155 10.1056C118.92 9.66069 119.758 9.43805 120.679 9.43805C121.598 9.43805 122.388 9.64733 123.045 10.0657C123.728 10.4577 124.254 11.0488 124.62 11.8359C125.015 12.5963 125.214 13.5128 125.214 14.5855V16.6279L119.415 17.9662C117.836 18.3581 116.523 18.843 115.472 19.4209C114.419 19.972 113.62 20.6529 113.067 21.4631C112.54 22.2735 112.277 23.2333 112.277 24.3325C112.277 25.3785 112.514 26.2985 112.987 27.0821C113.486 27.8428 114.183 28.4305 115.077 28.8489C115.996 29.2674 117.063 29.4765 118.272 29.4765C120.058 29.4765 121.532 29.0183 122.688 28.1018C123.734 27.2483 124.575 26.0925 125.21 24.638V29.0847H130.66ZM124.073 25.1561C123.52 25.9663 122.852 26.584 122.061 27.0026C121.271 27.4209 120.391 27.6302 119.419 27.6302C118.182 27.6302 117.221 27.3013 116.539 26.6471C115.856 25.993 115.513 25.0864 115.513 23.9372C115.513 22.6522 115.947 21.5926 116.812 20.7524C117.68 19.9157 118.996 19.2714 120.755 18.8264L125.21 17.7271V22.476C124.98 23.4856 124.602 24.3823 124.073 25.1561Z" fill="black"/> 1433 <path d="M107.23 0.0032959L101.789 1.77352L104.231 2.7531V27.3147L101.789 29.0847H109.677L107.23 27.3147V0.0032959Z" fill="black"/> 1434 <path d="M91.9673 29.4768C90.6776 29.4768 89.4945 29.3074 88.4181 28.9655C87.3684 28.5967 86.4585 28.1152 85.6987 27.5108C84.9621 26.9097 84.3723 26.2255 83.9258 25.4684L85.932 22.4431H85.9353C86.1719 23.5954 86.5785 24.6183 87.1583 25.5083C87.7382 26.3982 88.4347 27.0925 89.248 27.5906C90.0878 28.0622 90.9941 28.298 91.9673 28.298C92.8071 28.298 93.5702 28.1286 94.2536 27.7865C94.9632 27.4212 95.5166 26.9231 95.9097 26.2955C96.303 25.6678 96.503 24.9703 96.503 24.2132C96.503 23.1637 96.1998 22.3002 95.5966 21.6196C94.9899 20.9122 94.0702 20.3608 92.8339 19.969L89.6011 19.0258C88.5747 18.7105 87.7082 18.3318 86.9983 17.8867C86.3152 17.4153 85.7754 16.8375 85.3821 16.1566C84.9888 15.4492 84.7888 14.6123 84.7888 13.6426C84.7888 12.5966 85.0789 11.6668 85.6553 10.8531C86.2352 10.0427 87.0384 9.41178 88.0616 8.9667C89.1113 8.52183 90.2843 8.29919 91.5708 8.29919C92.5438 8.29919 93.4504 8.43221 94.2902 8.69124C95.1567 8.92704 95.9331 9.26562 96.6163 9.71398C97.2994 10.1623 97.8793 10.6837 98.3526 11.2881L96.8196 14.1972H96.8163C96.4497 12.7826 95.7765 11.6435 94.8068 10.7766C93.8603 9.88667 92.7804 9.44159 91.5708 9.44159C90.3877 9.44159 89.4011 9.77052 88.6148 10.4247C87.851
14345 11.0788 87.4716 11.9157 87.4716 12.9387C87.4716 13.7489 87.7349 14.4197 88.2614 14.9412C88.7881 15.4658 89.6145 15.8975 90.7477 16.2396L94.0202 17.2227C95.1534 17.5381 96.1097 17.9698 96.8996 18.5211C97.6894 19.0425 98.2926 19.7133 98.7158 20.5237C99.1358 21.3373 99.3457 22.2937 99.3457 23.3929C99.3457 24.5186 99.0324 25.5547 98.3992 26.4979C97.7694 27.4146 96.8862 28.1485 95.7566 28.6997C94.6234 29.2177 93.3603 29.4768 91.9673 29.4768Z" fill="black"/> 1435 <path d="M77.6885 5.26719C77.0586 5.26719 76.5321 5.05791 76.1121 4.63956C75.6923 4.22101 75.4824 3.70973 75.4824 3.10862C75.4824 2.50423 75.6923 2.00941 76.1121 1.61408C76.5321 1.19573 77.0586 0.98645 77.6885 0.98645C78.2918 0.98645 78.805 1.19573 79.2249 1.61408C79.6715 2.03264 79.8947 2.54391 79.8947 3.14831C79.8947 3.74941 79.6715 4.26089 79.2249 4.67945C78.805 5.07128 78.2918 5.26719 77.6885 5.26719ZM81.7476 29.0848H73.8594L76.3454 27.3147V11.0854L73.8594 9.13945L79.3014 8.33235V27.3147L81.7476 29.0848Z" fill="black"/> 1436 <path d="M53.49 28.2978C54.6999 28.2978 55.803 27.9059 56.8027 27.1188C57.8292 26.3086 58.6291 25.1794 59.2088 23.7413C59.7854 22.3 60.0753 20.6762 60.0753 18.8663C60.0753 17.0597 59.7854 15.4492 59.2088 14.0344C58.6291 12.5931 57.8292 11.4805 56.8027 10.6935C55.803 9.87987 54.6999 9.47467 53.49 9.47467C52.227 9.47467 51.0973 9.87987 50.0976 10.6935C49.0977 11.4805 48.3111 12.5931 47.7314 14.0344C47.1782 15.4492 46.9015 17.0597 46.9015 18.8663C46.9015 20.6994 47.1782 22.3366 47.7314 23.7779C48.3078 25.1927 49.0977 26.3051 50.0976 27.1188C51.0973 27.9059 52.2305 28.2978 53.49 28.2978ZM53.4502 29.4767C51.5572 29.4767 49.861 29.0183 48.3613 28.1018C46.8649 27.1852 45.6952 25.9266 44.8519 24.3293C44.0388 22.7052 43.6289 20.8855 43.6289 18.8663C43.6289 16.8506 44.0355 15.0407 44.8519 13.4431C45.6952 11.8193 46.8649 10.5607 48.3613 9.6706C49.861 8.75413 51.5572 8.2959 53.4502 8.2959C55.3431 8.2959 57.0393 8.75413 58.539 9.6706C60.0387 10.564 61.2084 11.8193 62.0482 13.4431C62.8915 15.0672 63.3113 16.8738 63.3113 18.8663C63.3113 20.8855 62.8915 22.7052 62.0482 24.3293C61.2084 25.9266 60.0387 27.1852 58.539 28.1018C57.0393 29.0183 55.3431 29.4767 53.4502 29.4767Z" fill="black"/> 1437 <path d="M36.6923 9.1428L39.0984 10.4579L34.366 25.1961L29.6338 10.4579L31.9998 9.1428H24.0715L26.4778 10.5375L26.9109 11.7164L22.3354 25.3522L17.3664 10.4579L19.7724 9.1428L6.70532 9.13931V3.776H5.95558C5.74548 5.03475 5.4589 6.90777 3.96928 8.13322C2.55286 9.29884 1.10313 9.60762 0 9.76365V10.471H3.74603V24.6049C3.74603 26.2555 4.16582 27.4875 5.0091 28.2979C5.8754 29.0848 7.03198 29.4767 8.4815 29.4767C9.29477 29.4767 9.99456 29.334 10.5712 29.045C11.1476 28.7561 11.6342 28.3908 12.0308 27.9457L11.7942 27.3181C11.5308 27.5274 11.1877 27.6834 10.7677 27.7897C10.3745 27.896 9.95467 27.9457 9.50466 27.9457C8.66159 27.9457 7.97846 27.6968 7.45506 27.1987C6.9553 26.7004 6.70532 25.9134 6.70532 24.8407V10.4743H14.1803L20.679 29.0881H22.0587L27.7774 14.0742L32.7063 29.0881H34.126L40.8314 10.5375L43.354 9.1428H36.6923Z" fill="black"/> 1438 </svg> 1439 </a> 1440 </div> 1441 <div class='mobile-nav__right'> 1442 <a href='#' class='search__trigger'> 1443 <svg width='22' height='21' viewBox='0 0 22 21' fill='none' xmlns='http://www.w3.org/2000/svg'> 1444 <path fill-rule="evenodd" clip-rule="evenodd" d="M15.18 15.6894C13.6047 17.0896 11.5298 17.9402 9.25638 17.9402C4.32996 17.9402 0.336304 13.9465 0.336304 9.02007C0.336304 4.09365 4.32996 0.0999985 9.25638 0.0999985C14.1828 0.0999985 18.1765 4.09365 18.1765 9.02007C18.1765 11.2937 17.3258 13.3686 15.9254 14.944L20.9816 20.0002C21.1874 20.206 21.1874 20.5398 20.9816 20.7456C20.7758 20.9515 20.442 20.9515 20.2362 20.7456L15.18 15.6894ZM17.1223 9.02007C17.1223 13.3643 13.6006 16.886 9.25638 16.886C4.91217 16.886 1.39049 13.3643 1.39049 9.02007C1.39049 4.67587 4.91217 1.15419 9.25638 1.15419C13.6006 1.15419 17.1223 4.67587 17.1223 9.02007Z" fill="#3E3E3D"/> 1445 </svg> 1446 </a> 1447 <a class='mobile-nav__cart cart-drawer__trigger' href='#'> 1448 <svg xmlns='http://www.w3.org/2000/svg' width='20' height='22' viewBox='0 0 20 22' fill='none'> 1449 <g clip-path="url(#clip0_284_38)"> 1450 <path d="M19.9833 21.3075L18.0061 5.71483C17.9727 5.4562 17.7474 5.25597 17.4805 5.25597H14.2768V3.4873C14.2768 1.56845 12.7084 0 10.7895 0H9.5381C7.61091 0 6.05081 1.56845 6.05081 3.4873V5.25597H2.84717C2.5802 5.25597 2.3466 5.4562 2.31323 5.71483L0.327637 21.3993C0.302608 21.5578 0.352665 21.6997 0.452779 21.8165C0.552893 21.9333 0.703063 22 0.853234 22H19.4577C19.6162 22 19.758 21.9333 19.8582 21.8165C19.9583 21.708 20.0083 21.5495 19.9833 21.3993V21.3075ZM7.11034 3.4873C7.11034 2.15245 8.20325 1.06788 9.5381 1.06788H10.7895C12.1244 1.06788 13.2089 2.15245 13.2089 3.4873V5.25597H7.11034V3.4873ZM1.46226 20.9321L3.31436 6.31551H6.05081V8.96852C6.05081 9.26887 6.29275 9.50246 6.58475 9.50246C6.87675 9.50246 7.11034 9.26887 7.11034 8.96852V6.31551H13.2089V8.96852C13.2089 9.26887 13.4509 9.50246 13.7429 9.50246C14.0349 9.50246 14.2768 9.26887 14.2768 8.96852V6.31551H17.0133L17.0299 6.46568L18.8654 20.9321H1.46226Z" fill="#3E3E3D" style="fill: var(--icon-color);"/> 1451 </g>
1452 <defs> 1453 <clipPath id="clip0_284_38"> 1454 <rect width="19.6724" height="22" fill="white" transform="translate(0.327637)" style="fill: var(--icon-color);"/> 1455 </clipPath> 1456 </defs> 1457</svg> 1458 1459 1460 <span class='mobile-nav__cart-count' data-ajax-cart-bind-state='cart.item_count'> 1461 0 1462 </span> 1463 </a> 1464 </div> 1465 </div> 1466 </div> 1467 1468 <div class='mobile-nav__menu'> 1469 <div class='mobile-menu'> 1470 <div class='mobile-menu__links mobile-menu__links--default'> 1471 <ul> 1472 1473 1474 1475 1476 <li> 1477 <a href='/collections/bestsellers' class='mobile-menu__nested-trigger'> 1478 Best Sellers 1479 1480 1481 <span class='icon-plus'></span> 1482 1483 </a> 1484 1485 1486 <ul class='mobile-menu__nested'> 1487 1488 <li> 1489 <a href='/products/electrolyte'> 1490 Hydrateâ´ Hydration Powder 1491 </a> 1492 </li> 1493 1494 <li> 1495 <a href='/products/creatine-hydration'> 1496 Creatine Hydration 1497 </a> 1498 </li> 1499 1500 <li> 1501 <a href='/products/protein-organic-greens-probiotics'> 1502 Protein & Organic Greens 1503 </a> 1504 </li> 1505 1506 <li> 1507 <a href='/products/pea-protein-powder'> 1508 Pea Protein Powder 1509 </a> 1510 </li> 1511 1512 <li> 1513 <a href='/products/collagen-beauty-powder'> 1514 Marine Collagen Beauty Powder 1515 </a> 1516 </li> 1517 1518 <li> 1519 <a href='/products/happy-gut'> 1520 Happy Gut 1521 </a> 1522 </li> 1523 1524 <li> 1525 <a href='/products/milk-maker'> 1526 Milk Maker 1527 </a> 1528 </li> 1529 1530 <li> 1531 <a href='/products/marine-collagen-beauty-capsules'> 1532 Marine Collagen Capsules 1533 </a> 1534 </li> 1535 1536 </ul> 1537 1538 </li> 1539 1540 1541 1542 1543 <li> 1544 <a href='#' class='mobile-menu__nested-trigger'> 1545 Shop by Benefit 1546 1547 1548 <span class='icon-plus'></span> 1549 1550 </a> 1551 1552 1553 <ul class='mobile-menu__nested'> 1554 1555 <li> 1556 <a href='/collections/beauty-skincare'> 1557 Beauty 1558 </a> 1559 </li> 1560 1561 <li> 1562 <a href='/collections/gut-health'> 1563 Gut Health 1564 </a> 1565 </li> 1566 1567 <li> 1568 <a href='/collections/stress-mood-rest'> 1569 Stress & Mood 1570 </a> 1571 </li> 1572 1573 <li> 1574 <a href='/collections/postpartum'> 1575 Postpartum 1576 </a> 1577 </li> 1578 1579 <li> 1580 <a href='/collections/sports-nutrition'> 1581 Sports & Performance 1582 </a> 1583 </li> 1584 1585 <li> 1586 <a href='/collections/hydration'> 1587 Hydration 1588 </a> 1589 </li> 1590 1591 <li> 1592 <a href='/collections/joint-support'> 1593 Joint Support 1594 </a> 1595 </li> 1596 1597 </ul> 1598 1599 </li> 1600 1601 1602 1603 1604 <li> 1605 <a href='/collections/refills' class='mobile-menu__nested-trigger'> 1606 Refills 1607 1608
1609 <span class='icon-plus'></span> 1610 1611 </a> 1612 1613 1614 <ul class='mobile-menu__nested'> 1615 1616 <li> 1617 <a href='/products/marine-collagen-capsules-refill'> 1618 Marine Collagen Capsules Refill 1619 </a> 1620 </li> 1621 1622 <li> 1623 <a href='/products/happy-days-refill'> 1624 Happy Days Refill 1625 </a> 1626 </li> 1627 1628 <li> 1629 <a href='/collections/refills'> 1630 Shop All Refills 1631 </a> 1632 </li> 1633 1634 </ul> 1635 1636 </li> 1637 1638 1639 1640 1641 <li> 1642 <a href='#' class='mobile-menu__nested-trigger'> 1643 Shop by Category 1644 1645 1646 <span class='icon-plus'></span> 1647 1648 </a> 1649 1650 1651 <ul class='mobile-menu__nested'> 1652 1653 <li> 1654 <a href='/collections/hydrate-electrolytes'> 1655 Hydration 1656 </a> 1657 </li> 1658 1659 <li> 1660 <a href='/collections/protein-powder'> 1661 Proteins 1662 </a> 1663 </li> 1664 1665 <li> 1666 <a href='/collections/marine-collagen'> 1667 Collagens 1668 </a> 1669 </li> 1670 1671 <li> 1672 <a href='/collections/supplements'> 1673 Supplements 1674 </a> 1675 </li> 1676 1677 </ul> 1678 1679 </li> 1680 1681 1682 1683 1684 <li> 1685 <a href='/collections/all-products' class=''> 1686 Shop All 1687 1688 1689 </a> 1690 1691 1692 </li> 1693 1694 1695 1696 1697 <li> 1698 <a href='/pages/subscriptions' class=''> 1699 Subscribe & Save 1700 1701 1702 </a> 1703 1704 1705 </li> 1706 1707 1708 1709 1710 <li> 1711 <a href='/collections/best-selling-bundles' class=''> 1712 Island Kits & Refill Bundles 1713 1714 1715 </a> 1716 1717 1718 </li> 1719 1720 1721 1722 1723 <li> 1724 <a href='/collections/sachets-samplers' class=''> 1725 Samples & Merch 1726 1727 1728 </a> 1729 1730 1731 </li> 1732 1733 </ul> 1734 <ul> 1735 1736 1737 1738 1739 <li> 1740 <a href='/pages/subscriptions'> 1741 Subscribe 1742 </a> 1743 </li> 1744 1745 1746 <li> 1747 <a href='/pages/island-rewards'> 1748 Island Rewards 1749 </a> 1750 </li> 1751 1752 1753 <li> 1754 <a href='/blogs/ingredients'> 1755 Ingredients 1756 </a> 1757 </li> 1758 1759 1760 <li> 1761 <a href='https://twoislandsco.com/blogs/blog/tagged/markets-NZ'> 1762 Journal 1763 </a> 1764 </li> 1765 1766 1767 1768 1769 <!-- If user is not logged in, on click take them to the login page --> 1770 <li> 1771 <a href='/account/login'>Account</a> 1772 </li> 1773 1774 1775 </ul> 1776 </div> 1777 </div> 1778 </div> 1779 1780 <div class='mobile-nav__overlay mobile-menu__trigger'></div> 1781</div> 1782 1783</div> 1784 1785<div class='navbar__spacing'></div> 1786
1787<script> 1788 $('.search__trigger, .search__close').on('click', function (e) { 1789 e.preventDefault(); 1790 $('body').toggleClass('navbar--show-search'); 1791 1792 setTimeout(function () { 1793 $('.search__input input').focus(); 1794 }, 300); 1795 }); 1796 1797 $('.navbar__overlay').on('click', function () { 1798 $('body').removeClass('navbar--show-search navbar--show-megamenu'); 1799 }); 1800 1801 function initMegamenu() { 1802 let delay; 1803 let megamenuWait = 300; 1804 1805 $('.navbar__megamenu, .megamenu__trigger').on('mouseenter', function (e) { 1806 $('body').addClass('navbar--show-megamenu'); 1807 clearTimeout(delay); 1808 }); 1809 $('.navbar__megamenu, .megamenu__trigger').on('mouseleave', function (e) { 1810 clearTimeout(delay); 1811 delay = setTimeout(function () { 1812 $('body').removeClass('navbar--show-megamenu'); 1813 $('.megamenu .active').removeClass('active'); 1814 }, megamenuWait); 1815 }); 1816 $('.megamenu__close').on('click', function (e) { 1817 e.preventDefault(); 1818 clearTimeout(delay); 1819 $('body').removeClass('navbar--show-megamenu'); 1820 }); 1821 1822 $('.navbar__links > li > a').on('mouseenter', function () { 1823 $('body').removeClass('navbar--show-search'); 1824 }); 1825 } 1826 initMegamenu(); 1827 // $('body').addClass('navbar--show-megamenu'); 1828</script>
1828 1829<style data-shopify> 1830 .navbar__announcement,.announcement-bar__close { 1831 background-color: #ffa87d; 1832 color: #000000; 1833 } 1834 .announcement-bar__close svg path { 1835 stroke: #000000; 1836 } 1837 1838 .announcement-bar { 1839 color: inherit; 1840 } 1841</style> 1842 1843</div> 1844<!-- END sections: main-header --> 1845 <link href="//twoislandsco.com/cdn/shop/t/190/assets/cart-drawer.css?v=34629829297049544761780543231" rel="stylesheet" type="text/css" media="all" /> 1846 1847 <main id='MainContent' class='content-for-layout focus-none' role='main' tabindex='-1'> 1848 <div id="shopify-section-template--15824825614536__navbar_color_scheme_KnNhNH" class="shopify-section"> 1849 1850
1851<script> 1852 document.body.classList.toggle('navbar--is-dark', false); 1853 document.querySelector('.navbar').classList.toggle('navbar--dark', false); 1854</script>
1854 1855 1856</div><div id="shopify-section-template--15824825614536__home_hero" class="shopify-section"><link href="//twoislandsco.com/cdn/shop/t/190/assets/page-home.css?v=173203506897582498691779744703" rel="stylesheet" type="text/css" media="all" /> 1857 1858<style> 1859 .home-hero__content h2, .home-hero__content p { 1860 color: #ffffff !important; 1861 } 1862 1863 @media (max-width: 768px) { 1864 .home-hero__content h2, .home-hero__content p { 1865 color: #ffffff !important; 1866 } 1867 } 1868</style> 1869 1870<style> 1871 1872 .home-hero__content .dot-button { 1873 background: #ffffff !important; 1874 color: #000000 !important; 1875 border: none !important; 1876 padding: 10px 30px; 1877 } 1878 .home-hero__content .dot-button .dot-button__dot { 1879 background: #000000 !important; 1880 } 1881 1882 @media (max-width: 768px) { 1883 .home-hero__content .dot-button { 1884 background: #ffffff !important; 1885 color: #000000 !important; 1886 } 1887 .home-hero__content .dot-button .dot-button__dot { 1888 background: #000000 !important; 1889 } 1890 } 1891 1892</style> 1893 1894<style> 1895 .home-hero__content { 1896 1897 left: 0!important; 1898 right: auto!important; 1899 padding-left: 70px!important; 1900 padding-right: 0!important; 1901 text-align: left!important; 1902 1903 1904 1905 top: auto!important; 1906 bottom: 0!important; 1907 padding-bottom: 80px!important; 1908 1909 1910 1911 transform: none!important; 1912 1913 } 1914 1915 @media (max-width: 768px) { 1916 .home-hero__content { 1917 1918 width: 100%; 1919 left: 50%!important; 1920 right: auto!important; 1921 padding-left: 38px!important; 1922 padding-right: 38px!important; 1923 text-align: center!important; 1924 1925 1926 1927 top: 50%!important; 1928 bottom: auto!important; 1929 padding-bottom: 0!important; 1930 1931 1932 1933 transform: translate(-50%, -50%)!important; 1934 1935 } 1936 } 1937</style> 1938 1939<style> 1940 .home-hero__content h2 { 1941 font-family: var(--font-recife); 1942 font-size: 64px; 1943 font-weight: 150; 1944 } 1945 .home-hero__content p { 1946 font-family: var(--font-body); 1947 } 1948 1949 @media (max-width: 768px) { 1950 .home-hero__content h2 { 1951 font-size: 41px; 1952 } 1953 } 1954</style> 1955 1956<style> 1957 .home-hero__content h2, 1958 .home-hero__content p { 1959 max-width: none !important; 1960 white-space: pre-line; 1961 } 1962</style> 1963 1964<section class='home-hero block-padding--template--15824825614536__home_hero mx--template--15824825614536__home_hero'> 1965 <div class='home-hero__bg'> 1966 1967 <img src="//twoislandsco.com/cdn/shop/files/WebBanner_1440x900_Hydrate_Sep26.jpg?v=1789517819&width=4000" alt="" srcset="//twoislandsco.com/cdn/shop/files/WebBanner_1440x900_Hydrate_Sep26.jpg?v=1789517819&width=352 352w, //twoislandsco.com/cdn/shop/files/WebBanner_1440x900_Hydrate_Sep26.jpg?v=1789517819&width=832 832w, //twoislandsco.com/cdn/shop/files/WebBanner_1440x900_Hydrate_Sep26.jpg?v=1789517819&width=1200 1200w, //twoislandsco.com/cdn/shop/files/WebBanner_1440x900_Hydrate_Sep26.jpg?v=1789517819&width=1920 1920w, //twoislandsco.com/cdn/shop/files/WebBanner_1440x900_Hydrate_Sep26.jpg?v=1789517819&width=4000 4000w" width="4000" height="2500" sizes="(min-width: 768px) 80vw, 100vw" class="md-hide"> 1968 1969 <img src="//twoislandsco.com/cdn/shop/files/MobileBanner_378x696_Hydrate_Sep26.jpg?v=1789517847&width=2048" alt="" srcset="//twoislandsco.com/cdn/shop/files/MobileBanner_378x696_Hydrate_Sep26.jpg?v=1789517847&width=352 352w, //twoislandsco.com/cdn/shop/files/MobileBanner_378x696_Hydrate_Sep26.jpg?v=1789517847&width=832 832w, //twoislandsco.com/cdn/shop/files/MobileBanner_378x696_Hydrate_Sep26.jpg?v=1789517847&width=1200 1200w, //twoislandsco.com/cdn/shop/files/MobileBanner_378x696_Hydrate_Sep26.jpg?v=1789517847&width=1920 1920w, //twoislandsco.com/cdn/shop/files/MobileBanner_378x696_Hydrate_Sep26.jpg?v=1789517847&width=2048 2048w" width="2048" height="3771" sizes="(min-width: 768px) 80vw, 100vw" class="md-show"> 1970 1971 </div> 1972 1973 <div class='home-hero__content'> 1974 <h2 class='md-hide anim-ht'>Hydration that<br>keeps up with you.</h2> 1975 1976 <h2 class='md-show anim-ht'><span style="font-size:39.5px;">Hydration that<br>keeps up with you.</span></h2> 1977 1978 1979 <p class='md-hide'>Whether you're training hard or moving through your day,<br>Hydrateâ´ keeps you in balance.</p> 1980 1981 1982 1983 <p class='md-show'>Whether you're training hard or moving through your day, Hydrateâ´ keeps you in balance.</p> 1984 1985 1986 1987 <a id='home-hero__button' class='dot-button' href='/products/electrolyte'>
1988 <span class='dot-button__text md-hide'> 1989 Shop Hydrateâ´ 1990 </span> 1991 <span class='dot-button__text md-show'> 1992 Shop Hydrateâ´ 1993 </span> 1994 </a> 1995 <style> 1996 1997 1998 </style> 1999 2000 </div> 2001</section> 2002 2003 2004 2005 2006 <style> 2007 .block-padding--template--15824825614536__home_hero { 2008 2009 2010 2011 } 2012 2013 @media (max-width: 768px) { 2014 .block-padding--template--15824825614536__home_hero { 2015 2016 2017 2018 2019 2020 2021 2022 2023 } 2024 } 2025 </style> 2026 2027 2028 2029 2030 2031 <style> 2032 .mx--template--15824825614536__home_hero { 2033 2034 } 2035 2036 @media (max-width: 768px) { 2037 .mx--template--15824825614536__home_hero { 2038 2039 2040 2041 } 2042 } 2043 </style> 2044 2045 2046
2047<script> 2048 document.querySelector('.navbar').classList.remove('navbar--solid'); 2049</script>
2049 2050 2051 2052</div><div id="shopify-section-template--15824825614536__intro" class="shopify-section"><section class='home-intro block-padding--template--15824825614536__intro mx--template--15824825614536__intro'> 2053 <div class='container'> 2054 <div class='home-intro__content'> 2055 <h2>Wellbeing starts with well doing.</h2> 2056 <p> 2057 We formulate intentionally crafted supplements for thoughtful people like you â using only the highest quality ingredients at effective doses. Empowering you to take control of your wellness, look and feel great, and live a life brimming with energy. 2058 </p> 2059 2060 <a href='/pages/about' class='dot-button'> 2061 <span class='dot-button__dot'></span> 2062 Learn more 2063 </a> 2064 </div> 2065 </div> 2066</section> 2067 2068 2069 2070 2071 <style> 2072 .block-padding--template--15824825614536__intro { 2073 2074 2075 2076 } 2077 2078 @media (max-width: 768px) { 2079 .block-padding--template--15824825614536__intro { 2080 2081 2082 2083 2084 2085 2086 2087 2088 } 2089 } 2090 </style> 2091 2092 2093 2094 2095 2096 <style> 2097 .mx--template--15824825614536__intro { 2098 2099 } 2100 2101 @media (max-width: 768px) { 2102 .mx--template--15824825614536__intro { 2103 2104 2105 2106 } 2107 } 2108 </style> 2109 2110 2111 2112 2113</div><div id="shopify-section-template--15824825614536__1c64858c-a091-4e46-abe5-356203f35ea3" class="shopify-section"><section class='home-product block-padding--template--15824825614536__1c64858c-a091-4e46-abe5-356203f35ea3 mx--template--15824825614536__1c64858c-a091-4e46-abe5-356203f35ea3'> 2114 2115 <div class='container home-product__container'> 2116 <div class='home-product__grid'> 2117 <div class='home-product__left'> 2118 <div class='home-product__image'> 2119 2120 <img src="//twoislandsco.com/cdn/shop/files/Frame_531.jpg?v=1787024825&width=1600" alt="" srcset="//twoislandsco.com/cdn/shop/files/Frame_531.jpg?v=1787024825&width=352 352w, //twoislandsco.com/cdn/shop/files/Frame_531.jpg?v=1787024825&width=832 832w, //twoislandsco.com/cdn/shop/files/Frame_531.jpg?v=1787024825&width=1200 1200w" loading="lazy" sizes="(min-width: 768px) 80vw, 100vw"> 2121 2122 </div> 2123 </div> 2124 <div class='home-product__right'> 2125 <div class='home-product__content'> 2126 <div class='home-product__heading'> 2127 <h2>More hydration, less nonsense</h2> 2128 <p> 2129 Hydrateâ´ electroytes keep you hydrated to power through your workday, workout and everything in between.<br><br> 2130Formulated with <strong> essential minerals and no added sugar, </strong>Hydrateâ´ contains everything you need for effective hydration, without the nasties. 2131 </p> 2132 2133 <ul class='product-main__benefits'> 2134 <li>Hydration</li> 2135 <li>Muscle Performance</li> 2136 <li>Recovery</li> 2137 <li>Energy</li> 2138 </ul> 2139 </div> 2140 2141 <div class='home-product__media'> 2142 2143 <img src='//twoislandsco.com/cdn/shop/files/Frame_533.jpg?v=1787025155&width=900' loading='lazy' alt=''> 2144 </div> 2145 2146 <div class='home-product__button'> 2147 <a href='/products/electrolyte' class='button'> Shop Now </a> 2148 </div> 2149 </div> 2150 </div> 2151 </div> 2152 </div> 2153</section> 2154 2155 2156 2157 2158 2159 2160<style> 2161 2162 2163 .gradients__gradient--2 2164 2165 { 2166 background: radial-gradient(50% 50% at 50% 50%, rgba(201, 218, 171, 0.15) 21.87%, rgba(201, 218, 171, 0) 100%) !important; 2167 } 2168</style> 2169 2170 2171 2172 2173 <style> 2174 .block-padding--template--15824825614536__1c64858c-a091-4e46-abe5-356203f35ea3 { 2175 2176 2177 2178 } 2179 2180 @media (max-width: 768px) { 2181 .block-padding--template--15824825614536__1c64858c-a091-4e46-abe5-356203f35ea3 { 2182 2183 2184 2185 2186 2187 2188 2189 2190 } 2191 } 2192 </style> 2193 2194 2195 2196 2197 2198 <style> 2199 .mx--template--15824825614536__1c64858c-a091-4e46-abe5-356203f35ea3 { 2200 2201 } 2202 2203 @media (max-width: 768px) { 2204 .mx--template--15824825614536__1c64858c-a091-4e46-abe5-356203f35ea3 { 2205 2206 2207 2208 } 2209 } 2210 </style> 2211 2212 2213 2214 2215 2216</div><div id="shopify-section-template--15824825614536__home-top-sellers" class="shopify-section">
2216<link href="//twoislandsco.com/cdn/shop/t/190/assets/section-related-products.css?v=171242300457055233831741076897" rel="stylesheet" type="text/css" media="all" /> 2217 2218 2219 2220<section class='related-products related-products--top-sellers top-sellers block-padding--template--15824825614536__home-top-sellers mx--template--15824825614536__home-top-sellers'> 2221 <div class='container'> 2222 <div class='related-products__heading'> 2223 <h2>Best Sellers</h2> 2224 2225 <ul class='top-sellers__tabs'> 2226 2227 <li> 2228 <a href='#tab-' class='active'> 2229 2230 </a> 2231 </li> 2232 2233 </ul> 2234 </div> 2235 2236 <div class='top-sellers__tabs-content'> 2237 2238 <!-- tab --> 2239 <div 2240 id='tab-' 2241 class='top-sellers__tab related-products__wrapper active' 2242 2243 > 2244 <div class='product-card__carousel product-card__carousel--arrows-below owl-carousel'> 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268<div class='product-card product-item 2269 concern-beauty concern-breastfeeding concern-energy concern-gut-health concern-mood concern-stress range-protein-powder range-stress range-supplements 2270'> 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 <div class='product-card__media main-link__trigger'> 2282 <a 2283 href='/products/protein-organic-greens-probiotics' 2284 role='presentation' 2285 class='main-link' 2286 aria-label='Protein & Organic Greens + Probiotics' 2287 title='Protein & Organic Greens + Probiotics' 2288 data-transition 2289 ></a> 2290 2291 2292 2293 2294 2295 2296 <div class='product-card__image'> 2297 <img 2298 data-src='//twoislandsco.com/cdn/shop/files/ProteinOrganicGreens_Tub_cc.png?v=1721333708&width=1200' 2299 alt='Protein & Organic Greens + Probiotics' 2300 width='1200' 2301 height='' 2302 loading='eager' 2303 > 2304 </div> 2305 2306 2307 <div class='product-card__hover-image'> 2308 <img 2309 data-src='//twoislandsco.com/cdn/shop/files/1_bb4a004f-df5c-4b13-8fe9-44d6b5c923bd.jpg?v=1726629387&width=1200' 2310 alt='' 2311 loading='eager' 2312 > 2313 </div> 2314 2315 </div> 2316 2317 <div class='product-card__info'> 2318 <h4> 2319 <a class='main-link' href='/products/protein-organic-greens-probiotics'> 2320 Protein & Organic Greens + Probiotics 2321 </a> 2322 </h4> 2323 2324 <span class='product-card__price '> 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335<div class='product__price-wrapper'> 2336 2337 2338 2339 <span class='product__price__original'> 2340 $39 2341 </span> 2342 2343 2344 2345</div> 2346 2347 </span> 2348 </div> 2349 2350 2351 2352 <div class='product-card__footer '> 2353 <div class='product-card__desc'> 2354 <p> 2355 480g Powder 2356 </p> 2357 2358 2359 </div> 2360 2361 <div class='product-card__hover'> 2362 <p> 2363 <span class='md-hide'> 2364 2365 Supercharged Protein & Greens + Probiotics 2366 2367 </span> 2368 2369 <span class='md-show'> 2370 480g Powder 2371 </span> 2372 2373 2374 </p> 2375 2376 <div class='product-card__button-group'> 2377 2378 2379 2380 <button type='submit' class='button quickview__trigger' data-product='/products/protein-organic-greens-probiotics'> 2381 Add to cart 2382 </button> 2383 2384 2385 2386 2387 <a href='/products/protein-organic-greens-probiotics' class='button button--more' data-transition> Learn more </a> 2388 </div> 2389 </div> 2390 </div> 2391</div> 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418<div class='product-card product-item 2419 concern-mood concern-stress 2420'> 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 <div class='product-card__media main-link__trigger'> 2432 <a 2433 href='/products/happy-days' 2434 role='presentation' 2435 class='main-link' 2436 aria-label='Happy Days' 2437 title='Happy Days' 2438 data-transition 2439 ></a> 2440 2441 2442 2443 2444 2445 2446 <div class='product-card__image'> 2447 <img 2448 data-src='//twoislandsco.com/cdn/shop/files/Happy-Days_CC_box-and-jar.png?v=1697509122&width=1200' 2449 alt='Happy Days' 2450 width='1200' 2451 height='' 2452 loading='eager' 2453 > 2454 </div> 2455 2456 2457 <div class='product-card__hover-image'> 2458 <img
2459 data-src='//twoislandsco.com/cdn/shop/files/Two-Islands-Happy_Days-PDP-Refresh.jpg?v=1700531675&width=1200' 2460 alt='' 2461 loading='eager' 2462 > 2463 </div> 2464 2465 </div> 2466 2467 <div class='product-card__info'> 2468 <h4> 2469 <a class='main-link' href='/products/happy-days'> 2470 Happy Days 2471 </a> 2472 </h4> 2473 2474 <span class='product-card__price '> 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 2485<div class='product__price-wrapper'> 2486 2487 2488 2489 <span class='product__price__original'> 2490 $37 2491 </span> 2492 2493 2494 2495</div> 2496 2497 </span> 2498 </div> 2499 2500 2501 2502 <div class='product-card__footer '> 2503 <div class='product-card__desc'> 2504 <p> 2505 60 Vege Capsules 2506 </p> 2507 2508 2509 </div> 2510 2511 <div class='product-card__hover'> 2512 <p> 2513 <span class='md-hide'> 2514 2515 Joy on the daily 2516 2517 </span> 2518 2519 <span class='md-show'> 2520 60 Vege Capsules 2521 </span> 2522 2523 2524 </p> 2525 2526 <div class='product-card__button-group'> 2527 2528 2529 2530 <button type='submit' class='button quickview__trigger' data-product='/products/happy-days'> 2531 Add to cart 2532 </button> 2533 2534 2535 2536 2537 <a href='/products/happy-days' class='button button--more' data-transition> Learn more </a> 2538 </div> 2539 </div> 2540 </div> 2541</div> 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568<div class='product-card product-item 2569 concern-gut-health range-supplements 2570'> 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 <div class='product-card__media main-link__trigger'> 2582 <a 2583 href='/products/happy-gut' 2584 role='presentation' 2585 class='main-link' 2586 aria-label='Happy Gut' 2587 title='Happy Gut' 2588 data-transition 2589 ></a> 2590 2591 2592 2593 2594 2595 <span class='product-card__badge'> 2596 New 2597 </span> 2598 2599 2600 <div class='product-card__image'> 2601 <img 2602 data-src='//twoislandsco.com/cdn/shop/files/HappyGut_Clearcut_New_Formula.png?v=1791236053&width=1200' 2603 alt='Happy Gut' 2604 width='1200' 2605 height='' 2606 loading='eager' 2607 > 2608 </div> 2609 2610 2611 <div class='product-card__hover-image'> 2612 <img 2613 data-src='//twoislandsco.com/cdn/shop/files/HappyGut_Hover_Image.jpg?v=1791236102&width=1200' 2614 alt='' 2615 loading='eager' 2616 > 2617 </div> 2618 2619 </div> 2620 2621 <div class='product-card__info'> 2622 <h4> 2623 <a class='main-link' href='/products/happy-gut'> 2624 Happy Gut 2625 </a> 2626 </h4> 2627 2628 <span class='product-card__price '> 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639<div class='product__price-wrapper'> 2640 2641 2642 2643 <span class='product__price__original'> 2644 $40 2645 </span> 2646 2647 2648 2649</div> 2650 2651 </span> 2652 </div> 2653 2654 2655 2656 <div class='product-card__footer '> 2657 <div class='product-card__desc'> 2658 <p> 2659 240g Powder 2660 </p> 2661 2662 2663 </div> 2664 2665 <div class='product-card__hover'> 2666 <p> 2667 <span class='md-hide'> 2668 2669 Bye bye bloat. 2670 2671 </span> 2672 2673 <span class='md-show'> 2674 240g Powder 2675 </span> 2676 2677 2678 </p> 2679 2680 <div class='product-card__button-group'> 2681 2682 2683 2684 <button type='submit' class='button quickview__trigger' data-product='/products/happy-gut'> 2685 Add to cart 2686 </button> 2687 2688 2689 2690 2691 <a href='/products/happy-gut' class='button button--more' data-transition> Learn more </a> 2692 </div> 2693 </div> 2694 </div> 2695</div> 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722<div class='product-card product-item 2723 concern-beauty concern-gut-health concern-hair-skin-nails concern-joint-health range-collagen range-marine-collagen range-supplements 2724'> 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 <div class='product-card__media main-link__trigger'> 2736 <a 2737 href='/products/marine-collagen-beauty-capsules' 2738 role='presentation' 2739 class='main-link' 2740 aria-label='Marine Collagen Capsules' 2741 title='Marine Collagen Capsules' 2742 data-transition 2743 ></a> 2744 2745 2746 2747 2748 2749 2750 <div class='product-card__image'> 2751 <img
2752 data-src='//twoislandsco.com/cdn/shop/files/Two-Islands-Marine-Collagen-Beauty-Capsules-Jar-Box-840x880.png?v=1663712340&width=1200' 2753 alt='Marine Collagen Capsules' 2754 width='1200' 2755 height='' 2756 loading='eager' 2757 > 2758 </div> 2759 2760 2761 <div class='product-card__hover-image'> 2762 <img 2763 data-src='//twoislandsco.com/cdn/shop/files/Two-Islands-Marine-Collagen-Cap-PDP-Refresh.jpg?v=1700530893&width=1200' 2764 alt='' 2765 loading='eager' 2766 > 2767 </div> 2768 2769 </div> 2770 2771 <div class='product-card__info'> 2772 <h4> 2773 <a class='main-link' href='/products/marine-collagen-beauty-capsules'> 2774 Marine Collagen Capsules 2775 </a> 2776 </h4> 2777 2778 <span class='product-card__price '> 2779 2780 2781 2782 2783 2784 2785 2786 2787 2788 2789<div class='product__price-wrapper'> 2790 2791 2792 2793 <span class='product__price__original'> 2794 $31 2795 </span> 2796 2797 2798 2799</div> 2800 2801 </span> 2802 </div> 2803 2804 2805 2806 <div class='product-card__footer '> 2807 <div class='product-card__desc'> 2808 <p> 2809 60 Vege Capsules 2810 </p> 2811 2812 2813 </div> 2814 2815 <div class='product-card__hover'> 2816 <p> 2817 <span class='md-hide'> 2818 2819 Your collagen glow, on the go 2820 2821 </span> 2822 2823 <span class='md-show'> 2824 60 Vege Capsules 2825 </span> 2826 2827 2828 </p> 2829 2830 <div class='product-card__button-group'> 2831 2832 2833 2834 <button type='submit' class='button quickview__trigger' data-product='/products/marine-collagen-beauty-capsules'> 2835 Add to cart 2836 </button> 2837 2838 2839 2840 2841 <a href='/products/marine-collagen-beauty-capsules' class='button button--more' data-transition> Learn more </a> 2842 </div> 2843 </div> 2844 </div> 2845</div> 2846 2847 2848 2849 2850 </div> 2851 </div> 2852 2853 </div> 2854 </div> 2855</section> 2856 2857 2858 2859 2860 <style> 2861 .block-padding--template--15824825614536__home-top-sellers { 2862 2863 padding-top: 30px; 2864 2865 2866 2867 padding-bottom: 40px; 2868 2869 } 2870 2871 @media (max-width: 768px) { 2872 .block-padding--template--15824825614536__home-top-sellers { 2873 2874 2875 padding-top: 15px; 2876 2877 2878 2879 2880 2881 2882 padding-bottom: 20px; 2883 2884 2885 } 2886 } 2887 </style> 2888 2889 2890 2891 2892 2893 <style> 2894 .mx--template--15824825614536__home-top-sellers { 2895 2896 } 2897 2898 @media (max-width: 768px) { 2899 .mx--template--15824825614536__home-top-sellers { 2900 2901 2902 2903 } 2904 } 2905 </style> 2906 2907 2908 2909 2910</div><div id="shopify-section-template--15824825614536__shop_by" class="shopify-section"><section class='home-benefits block-padding--template--15824825614536__shop_by mx--template--15824825614536__shop_by'> 2911 2912 <div class='container home-benefits__container'> 2913 <div class='home-benefits__grid'> 2914 <div class='home-benefits__left'> 2915 <h2>Shop by benefit</h2> 2916 2917 <ul class='home-benefits__links'> 2918 2919 2920 2921 2922 <li> 2923 <a href='/collections/beauty-skincare'> 2924 Beauty 2925 <!-- <span>4</span> --> 2926 </a> 2927 2928 <a class='md-hide' href='/collections/beauty-skincare'> 2929 <span class='btn'>Shop now</span> 2930 </a> 2931 </li> 2932 2933 2934 2935 2936 <li> 2937 <a href='/collections/sports-nutrition'> 2938 Sports Nutrition 2939 <!-- <span>9</span> --> 2940 </a> 2941 2942 <a class='md-hide' href='/collections/sports-nutrition'> 2943 <span class='btn'>Shop now</span> 2944 </a> 2945 </li> 2946 2947 2948 2949 2950 <li> 2951 <a href='/collections/stress-mood-rest'> 2952 Stress & Mood 2953 <!-- <span>3</span> --> 2954 </a> 2955 2956 <a class='md-hide' href='/collections/stress-mood-rest'> 2957 <span class='btn'>Shop now</span> 2958 </a> 2959 </li> 2960 2961 2962 2963 2964 <li> 2965 <a href='/products/happy-gut'> 2966 Gut Health 2967 <!-- <span></span> --> 2968 </a> 2969 2970 <a class='md-hide' href='/products/happy-gut'>
2971 <span class='btn'>Shop now</span> 2972 </a> 2973 </li> 2974 2975 </ul> 2976 </div> 2977 2978 <div class='home-benefits__right'> 2979 <div class='home-benefits__image'> 2980 2981 <img src="//twoislandsco.com/cdn/shop/files/Default-2.jpg?v=1758662738&width=1200" alt="" srcset="//twoislandsco.com/cdn/shop/files/Default-2.jpg?v=1758662738&width=352 352w, //twoislandsco.com/cdn/shop/files/Default-2.jpg?v=1758662738&width=832 832w, //twoislandsco.com/cdn/shop/files/Default-2.jpg?v=1758662738&width=1200 1200w" loading="lazy" sizes="(min-width: 768px) 80vw, 100vw"> 2982 2983 <div class='home-benefits__hover-images'> 2984 2985 <img src="//twoislandsco.com/cdn/shop/files/TI-Homepage-ShopBy-Beauty.jpg?v=1702607320&width=1200" alt="Two Beautiful Woman" srcset="//twoislandsco.com/cdn/shop/files/TI-Homepage-ShopBy-Beauty.jpg?v=1702607320&width=352 352w, //twoislandsco.com/cdn/shop/files/TI-Homepage-ShopBy-Beauty.jpg?v=1702607320&width=832 832w, //twoislandsco.com/cdn/shop/files/TI-Homepage-ShopBy-Beauty.jpg?v=1702607320&width=1200 1200w" loading="lazy" sizes="(min-width: 768px) 80vw, 100vw"> 2986 2987 <img src="//twoislandsco.com/cdn/shop/files/Sports-2.jpg?v=1758662769&width=1200" alt="" srcset="//twoislandsco.com/cdn/shop/files/Sports-2.jpg?v=1758662769&width=352 352w, //twoislandsco.com/cdn/shop/files/Sports-2.jpg?v=1758662769&width=832 832w, //twoislandsco.com/cdn/shop/files/Sports-2.jpg?v=1758662769&width=1200 1200w" loading="lazy" sizes="(min-width: 768px) 80vw, 100vw"> 2988 2989 <img src="//twoislandsco.com/cdn/shop/files/Stress-2.jpg?v=1758662786&width=1200" alt="" srcset="//twoislandsco.com/cdn/shop/files/Stress-2.jpg?v=1758662786&width=352 352w, //twoislandsco.com/cdn/shop/files/Stress-2.jpg?v=1758662786&width=832 832w, //twoislandsco.com/cdn/shop/files/Stress-2.jpg?v=1758662786&width=1200 1200w" loading="lazy" sizes="(min-width: 768px) 80vw, 100vw"> 2990 2991 <img src="//twoislandsco.com/cdn/shop/files/Gut-2.jpg?v=1758662804&width=1200" alt="" srcset="//twoislandsco.com/cdn/shop/files/Gut-2.jpg?v=1758662804&width=352 352w, //twoislandsco.com/cdn/shop/files/Gut-2.jpg?v=1758662804&width=832 832w, //twoislandsco.com/cdn/shop/files/Gut-2.jpg?v=1758662804&width=1200 1200w" loading="lazy" sizes="(min-width: 768px) 80vw, 100vw"> 2992 2993 </div> 2994 </div> 2995 </div> 2996 </div> 2997 </div> 2998</section> 2999 3000 3001 3002 3003 <style> 3004 .block-padding--template--15824825614536__shop_by { 3005 3006 3007 3008 } 3009 3010 @media (max-width: 768px) { 3011 .block-padding--template--15824825614536__shop_by { 3012 3013 3014 3015 3016 3017 3018 3019 3020 } 3021 } 3022 </style> 3023 3024 3025 3026 3027 3028 <style> 3029 .mx--template--15824825614536__shop_by { 3030 3031 } 3032 3033 @media (max-width: 768px) { 3034 .mx--template--15824825614536__shop_by { 3035 3036 3037 3038 } 3039 } 3040 </style> 3041 3042 3043 3044 3045 3046</div><div id="shopify-section-template--15824825614536__home-ingredients" class="shopify-section"><section class='home-ingredients block-padding--template--15824825614536__home-ingredients mx--template--15824825614536__home-ingredients'> 3047 3048 <div class='home-ingredients__border'></div> 3049 3050 <div class='home-ingredients__grid'> 3051 <div class='home-ingredients__heading'> 3052 <h4>Our ingredients</h4> 3053 <h2>Nature is our pharmacy</h2> 3054 <p>With an entire world of natural ingredients to source from, we select only those we know to be safe, and scientifically proven to do what they say they will. We use those ingredients at efficacious levels, and have them independently tested and verified. <br/></p> 3055 <a href='/blogs/ingredients' class='dot-button'> 3056 <span class='dot-button__dot'></span> 3057 Learn more 3058 </a> 3059 </div> 3060 3061 <div class='home-ingredients__carousel'> 3062 <div class='ingredients-carousel owl-carousel'> 3063 3064 <div class='ingredients-carousel__item'> 3065 <div class='ingredient-card'> 3066 <div class='ingredient-card__wrapper'> 3067 <div class='ingredient-card__image'> 3068 <a 3069 href='/blogs/ingredients/nz-greenshell-mussel' 3070 alt='New Zealand Greenshell Mussel' 3071 aria-label='New Zealand Greenshell Mussel' 3072 >
3073 <img src="//twoislandsco.com/cdn/shop/files/Two-Islands-Ingredients-HP-Image-Greenshell-Mussel-2.jpg?v=1660641736&width=900" alt="Greenshell Mussel" srcset="//twoislandsco.com/cdn/shop/files/Two-Islands-Ingredients-HP-Image-Greenshell-Mussel-2.jpg?v=1660641736&width=352 352w, //twoislandsco.com/cdn/shop/files/Two-Islands-Ingredients-HP-Image-Greenshell-Mussel-2.jpg?v=1660641736&width=832 832w" loading="lazy" sizes="(min-width: 768px) 80vw, 100vw"> 3074 </a> 3075 </div> 3076 3077 <div class='ingredient-card__label'> 3078 <h4>New Zealand Greenshell Mussel</h4> 3079 </div> 3080 </div> 3081 </div> 3082 </div> 3083 3084 <div class='ingredients-carousel__item'> 3085 <div class='ingredient-card'> 3086 <div class='ingredient-card__wrapper'> 3087 <div class='ingredient-card__image'> 3088 <a 3089 href='/blogs/ingredients/passionflower' 3090 alt='Passionflower' 3091 aria-label='Passionflower' 3092 > 3093 <img src="//twoislandsco.com/cdn/shop/files/Two-Islands-Ingredients-HP-Image-Passionflower.jpg?v=1660641736&width=900" alt="Passiflora caerulea" srcset="//twoislandsco.com/cdn/shop/files/Two-Islands-Ingredients-HP-Image-Passionflower.jpg?v=1660641736&width=352 352w, //twoislandsco.com/cdn/shop/files/Two-Islands-Ingredients-HP-Image-Passionflower.jpg?v=1660641736&width=832 832w" loading="lazy" sizes="(min-width: 768px) 80vw, 100vw"> 3094 </a> 3095 </div> 3096 3097 <div class='ingredient-card__label'> 3098 <h4>Passionflower</h4> 3099 </div> 3100 </div> 3101 </div> 3102 </div> 3103 3104 <div class='ingredients-carousel__item'> 3105 <div class='ingredient-card'> 3106 <div class='ingredient-card__wrapper'> 3107 <div class='ingredient-card__image'> 3108 <a 3109 href='/blogs/ingredients/turmeric' 3110 alt='Turmeric' 3111 aria-label='Turmeric' 3112 > 3113 <img src="//twoislandsco.com/cdn/shop/files/Two-Islands-Ingredients-HP-Image-Turmeric2.jpg?v=1659570760&width=900" alt="Turmeric Powder" srcset="//twoislandsco.com/cdn/shop/files/Two-Islands-Ingredients-HP-Image-Turmeric2.jpg?v=1659570760&width=352 352w, //twoislandsco.com/cdn/shop/files/Two-Islands-Ingredients-HP-Image-Turmeric2.jpg?v=1659570760&width=832 832w" loading="lazy" sizes="(min-width: 768px) 80vw, 100vw"> 3114 </a> 3115 </div> 3116 3117 <div class='ingredient-card__label'> 3118 <h4>Turmeric</h4> 3119 </div> 3120 </div> 3121 </div> 3122 </div> 3123 3124 <div class='ingredients-carousel__item'> 3125 <div class='ingredient-card'> 3126 <div class='ingredient-card__wrapper'> 3127 <div class='ingredient-card__image'> 3128 <a 3129 href='/blogs/ingredients/saffron' 3130 alt='Saffron' 3131 aria-label='Saffron' 3132 > 3133 <img src="//twoislandsco.com/cdn/shop/files/Two-Islands-Ingredients-HP-Image-Saffron.jpg?v=1660641736&width=900" alt="Crocus sativus" srcset="//twoislandsco.com/cdn/shop/files/Two-Islands-Ingredients-HP-Image-Saffron.jpg?v=1660641736&width=352 352w, //twoislandsco.com/cdn/shop/files/Two-Islands-Ingredients-HP-Image-Saffron.jpg?v=1660641736&width=832 832w" loading="lazy" sizes="(min-width: 768px) 80vw, 100vw"> 3134 </a> 3135 </div> 3136 3137 <div class='ingredient-card__label'> 3138 <h4>Saffron</h4> 3139 </div> 3140 </div> 3141 </div> 3142 </div> 3143 3144 <div class='ingredients-carousel__item'> 3145 <div class='ingredient-card'> 3146 <div class='ingredient-card__wrapper'> 3147 <div class='ingredient-card__image'> 3148 <a 3149 href='/blogs/ingredients/boswellia' 3150 alt='Boswellia' 3151 aria-label='Boswellia' 3152 >
3153 <img src="//twoislandsco.com/cdn/shop/files/Two-Islands-Ingredients-HP-Image-Turmeric1.jpg?v=1659570715&width=900" alt="Two Islands Ingredients Image turmeric" srcset="//twoislandsco.com/cdn/shop/files/Two-Islands-Ingredients-HP-Image-Turmeric1.jpg?v=1659570715&width=352 352w, //twoislandsco.com/cdn/shop/files/Two-Islands-Ingredients-HP-Image-Turmeric1.jpg?v=1659570715&width=832 832w" loading="lazy" sizes="(min-width: 768px) 80vw, 100vw"> 3154 </a> 3155 </div> 3156 3157 <div class='ingredient-card__label'> 3158 <h4>Boswellia</h4> 3159 </div> 3160 </div> 3161 </div> 3162 </div> 3163 3164 <div class='ingredients-carousel__item'> 3165 <div class='ingredient-card'> 3166 <div class='ingredient-card__wrapper'> 3167 <div class='ingredient-card__image'> 3168 <a 3169 href='#' 3170 alt='Spirulina' 3171 aria-label='Spirulina' 3172 > 3173 <img src="//twoislandsco.com/cdn/shop/files/Two-Islands-Ingredients-HP-Image-Spirulina-min.jpg?v=1663909868&width=900" alt="Two Island Turquoise Velvet" srcset="//twoislandsco.com/cdn/shop/files/Two-Islands-Ingredients-HP-Image-Spirulina-min.jpg?v=1663909868&width=352 352w, //twoislandsco.com/cdn/shop/files/Two-Islands-Ingredients-HP-Image-Spirulina-min.jpg?v=1663909868&width=832 832w" loading="lazy" sizes="(min-width: 768px) 80vw, 100vw"> 3174 </a> 3175 </div> 3176 3177 <div class='ingredient-card__label'> 3178 <h4>Spirulina</h4> 3179 </div> 3180 </div> 3181 </div> 3182 </div> 3183 3184 </div> 3185 </div> 3186 </div> 3187</section> 3188 3189 3190 3191 3192 <style> 3193 .block-padding--template--15824825614536__home-ingredients { 3194 3195 3196 3197 } 3198 3199 @media (max-width: 768px) { 3200 .block-padding--template--15824825614536__home-ingredients { 3201 3202 3203 3204 3205 3206 3207 3208 3209 } 3210 } 3211 </style> 3212 3213 3214 3215 3216 3217 <style> 3218 .mx--template--15824825614536__home-ingredients { 3219 3220 } 3221 3222 @media (max-width: 768px) { 3223 .mx--template--15824825614536__home-ingredients { 3224 3225 3226 3227 } 3228 } 3229 </style> 3230 3231 3232 3233 3234</div><div id="shopify-section-template--15824825614536__home_featured_product" class="shopify-section"><section class='home-product block-padding--template--15824825614536__home_featured_product mx--template--15824825614536__home_featured_product'> 3235 3236 <div class='container home-product__container'> 3237 <div class='home-product__grid'> 3238 <div class='home-product__left'> 3239 <div class='home-product__image'> 3240 3241 <img src="//twoislandsco.com/cdn/shop/files/220317_TI_Super_Blend1475-copy.jpg?v=1758749675&width=1600" alt="" srcset="//twoislandsco.com/cdn/shop/files/220317_TI_Super_Blend1475-copy.jpg?v=1758749675&width=352 352w, //twoislandsco.com/cdn/shop/files/220317_TI_Super_Blend1475-copy.jpg?v=1758749675&width=832 832w, //twoislandsco.com/cdn/shop/files/220317_TI_Super_Blend1475-copy.jpg?v=1758749675&width=1200 1200w" loading="lazy" sizes="(min-width: 768px) 80vw, 100vw"> 3242 3243 </div> 3244 </div> 3245 <div class='home-product__right'> 3246 <div class='home-product__content'> 3247 <div class='home-product__heading'> 3248 <h2>Brighter days are here</h2> 3249 <p> 3250 Happy Days is your feel-good formula with clinically researched ingredients designed to ease stress, anxiety and support mood for bright, happy days. 3251 </p> 3252 3253 <ul class='product-main__benefits'> 3254 <li>Stress Support</li> 3255 <li>Eases Worry</li> 3256 <li>Mental Wellbeing</li> 3257 <li>Balanced Mood</li> 3258 </ul> 3259 </div> 3260 3261 <div class='home-product__media'> 3262 3263 <img src='//twoislandsco.com/cdn/shop/files/220317_TI_Super_Blend1154_220bd835-bde3-437d-9978-bae70ca393f7.jpg?v=1758749432&width=900' loading='lazy' alt=''> 3264 </div> 3265 3266 <div class='home-product__button'> 3267 <a href='/products/happy-days' class='button'> Shop Now </a> 3268 </div> 3269 </div> 3270 </div> 3271 </div> 3272 </div> 3273</section> 3274 3275 3276 3277 3278 3279 3280<style> 3281 3282
3283 .gradients__gradient--2 3284 3285 { 3286 background: radial-gradient(50% 50% at 50% 50%, rgba(241, 173, 167, 0.15) 21.87%, rgba(241, 173, 167, 0) 100%) !important; 3287 } 3288</style> 3289 3290 3291 3292 3293 <style> 3294 .block-padding--template--15824825614536__home_featured_product { 3295 3296 3297 3298 } 3299 3300 @media (max-width: 768px) { 3301 .block-padding--template--15824825614536__home_featured_product { 3302 3303 3304 3305 3306 3307 3308 3309 3310 } 3311 } 3312 </style> 3313 3314 3315 3316 3317 3318 <style> 3319 .mx--template--15824825614536__home_featured_product { 3320 3321 } 3322 3323 @media (max-width: 768px) { 3324 .mx--template--15824825614536__home_featured_product { 3325 3326 3327 3328 } 3329 } 3330 </style> 3331 3332 3333 3334 3335 3336</div><div id="shopify-section-template--15824825614536__related-articles" class="shopify-section"><link href="//twoislandsco.com/cdn/shop/t/190/assets/section-related-articles.css?v=154905442547129330341741076896" rel="stylesheet" type="text/css" media="all" /> 3337<link href="//twoislandsco.com/cdn/shop/t/190/assets/component-article-card.css?v=78227299393331593821670007324" rel="stylesheet" type="text/css" media="all" /> 3338 3339 3340 3341 3342 3343 3344 3345 <section class='related-articles block-padding--template--15824825614536__related-articles mx--template--15824825614536__related-articles'> 3346 <div class='container'> 3347 <div class='related-articles__heading'> 3348 <h2> 3349 3350 Journal 3351 3352 3353 <a class='md-show' href='/blogs/blog'>View all</a> 3354 </h2> 3355 </div> 3356 <div class='related-articles__carousel-wrapper'> 3357 <div class='related-articles__carousel owl-carousel'> 3358 3359 3360 <div class='article-card main-link__trigger'> 3361 <div class='article-card__media'> 3362 <div class='article-card__image'> 3363 <img src="//twoislandsco.com/cdn/shop/articles/Sodium_POTS_Blog_082d2c8c-2b45-4e2b-9fb4-aed83085f62f.jpg?v=1789375585&width=1000" alt="Sodium and POTS: What you need to know" srcset="//twoislandsco.com/cdn/shop/articles/Sodium_POTS_Blog_082d2c8c-2b45-4e2b-9fb4-aed83085f62f.jpg?v=1789375585&width=352 352w, //twoislandsco.com/cdn/shop/articles/Sodium_POTS_Blog_082d2c8c-2b45-4e2b-9fb4-aed83085f62f.jpg?v=1789375585&width=832 832w" height="520" loading="lazy" sizes="(min-width: 768px) 80vw, 100vw"> 3364 3365 </div> 3366 </div> 3367 <div class='article-card__info'> 3368 <span class='article-card__tag'> 3369 3370 3371 hydration 3372 3373 3374 3375 3376 POTS 3377 3378 3379 </span> 3380 3381 <h4> 3382 <a class='main-link' href='/blogs/blog/sodium-and-pots-what-you-need-to-know'>Sodium and POTS: What you need to know</a> 3383 </h4> 3384 </div> 3385 <div class='article-card__footer'> 3386 <div class='article-card__hover'> 3387 <button class='button'>Read more</button> 3388 </div> 3389 </div> 3390</div> 3391 3392 3393 <div class='article-card main-link__trigger'> 3394 <div class='article-card__media'> 3395 <div class='article-card__image'> 3396 <img src="//twoislandsco.com/cdn/shop/articles/Blog_1_Menopause_47950e8d-b967-4fd9-aeda-7000ce2620e9.jpg?v=1788239374&width=1000" alt="Creatine and Menopause: What the research actually says" srcset="//twoislandsco.com/cdn/shop/articles/Blog_1_Menopause_47950e8d-b967-4fd9-aeda-7000ce2620e9.jpg?v=1788239374&width=352 352w, //twoislandsco.com/cdn/shop/articles/Blog_1_Menopause_47950e8d-b967-4fd9-aeda-7000ce2620e9.jpg?v=1788239374&width=832 832w" height="520" loading="lazy" sizes="(min-width: 768px) 80vw, 100vw"> 3397 3398 </div> 3399 </div> 3400 <div class='article-card__info'> 3401 <span class='article-card__tag'> 3402 3403 3404 Creatine 3405 3406 3407 3408 3409 </span> 3410 3411 <h4> 3412 <a class='main-link' href='/blogs/blog/creatine-and-menopause-what-the-research-actually-says'>Creatine and Menopause: What the research actually says</a> 3413 </h4> 3414 </div> 3415 <div class='article-card__footer'> 3416 <div class='article-card__hover'> 3417 <button class='button'>Read more</button> 3418 </div> 3419 </div> 3420</div> 3421 3422 3423 <div class='article-card main-link__trigger'> 3424 <div class='article-card__media'> 3425 <div class='article-card__image'>
3426 <img src="//twoislandsco.com/cdn/shop/articles/The_Whole_Bowl_Blog_1_Breastfeeding_5b365fc8-0b23-4287-95c3-2a45c2305165.jpg?v=1790118628&width=1000" alt="Why is it so important to stay well nourished when you are breastfeeding?" srcset="//twoislandsco.com/cdn/shop/articles/The_Whole_Bowl_Blog_1_Breastfeeding_5b365fc8-0b23-4287-95c3-2a45c2305165.jpg?v=1790118628&width=352 352w, //twoislandsco.com/cdn/shop/articles/The_Whole_Bowl_Blog_1_Breastfeeding_5b365fc8-0b23-4287-95c3-2a45c2305165.jpg?v=1790118628&width=832 832w" height="520" loading="lazy" sizes="(min-width: 768px) 80vw, 100vw"> 3427 3428 </div> 3429 </div> 3430 <div class='article-card__info'> 3431 <span class='article-card__tag'> 3432 3433 3434 Breastfeeding 3435 3436 3437 3438 3439 Mood 3440 3441 3442 </span> 3443 3444 <h4> 3445 <a class='main-link' href='/blogs/blog/why-is-it-so-important-to-stay-well-nourished-when-you-are-breastfeeding'>Why is it so important to stay well nourished when you are breastfeeding?</a> 3446 </h4> 3447 </div> 3448 <div class='article-card__footer'> 3449 <div class='article-card__hover'> 3450 <button class='button'>Read more</button> 3451 </div> 3452 </div> 3453</div> 3454 3455 3456 3457 </div> 3458 </div> 3459 </div> 3460 </section> 3461 3462 3463 3464 3465 <style> 3466 .block-padding--template--15824825614536__related-articles { 3467 3468 3469 3470 } 3471 3472 @media (max-width: 768px) { 3473 .block-padding--template--15824825614536__related-articles { 3474 3475 3476 3477 3478 3479 3480 3481 3482 } 3483 } 3484 </style> 3485 3486 3487 3488 3489 3490 <style> 3491 .mx--template--15824825614536__related-articles { 3492 3493 } 3494 3495 @media (max-width: 768px) { 3496 .mx--template--15824825614536__related-articles { 3497 3498 3499 3500 } 3501 } 3502 </style> 3503 3504 3505 3506 3507 3508</div><div id="shopify-section-template--15824825614536__fw_hero" class="shopify-section"><div class='home-sus block-padding--template--15824825614536__fw_hero mx--template--15824825614536__fw_hero'> 3509 <div class='home-sus__bg'> 3510 <img src="//twoislandsco.com/cdn/shop/files/Electrolyte_Desktop_c2fda0b9-304b-4c9a-a20b-21ad41eed872.jpg?v=1772150259&width=4000" alt="" srcset="//twoislandsco.com/cdn/shop/files/Electrolyte_Desktop_c2fda0b9-304b-4c9a-a20b-21ad41eed872.jpg?v=1772150259&width=352 352w, //twoislandsco.com/cdn/shop/files/Electrolyte_Desktop_c2fda0b9-304b-4c9a-a20b-21ad41eed872.jpg?v=1772150259&width=832 832w, //twoislandsco.com/cdn/shop/files/Electrolyte_Desktop_c2fda0b9-304b-4c9a-a20b-21ad41eed872.jpg?v=1772150259&width=1200 1200w, //twoislandsco.com/cdn/shop/files/Electrolyte_Desktop_c2fda0b9-304b-4c9a-a20b-21ad41eed872.jpg?v=1772150259&width=1920 1920w" loading="lazy" class="md-hide" sizes="(min-width: 768px) 80vw, 100vw"> 3511 3512 <img src="//twoislandsco.com/cdn/shop/files/Electrolyte_Mob_3c89957b-d0ea-4f7d-82c2-254099749c2f.jpg?v=1772150267&width=2048" alt="" srcset="//twoislandsco.com/cdn/shop/files/Electrolyte_Mob_3c89957b-d0ea-4f7d-82c2-254099749c2f.jpg?v=1772150267&width=352 352w, //twoislandsco.com/cdn/shop/files/Electrolyte_Mob_3c89957b-d0ea-4f7d-82c2-254099749c2f.jpg?v=1772150267&width=832 832w, //twoislandsco.com/cdn/shop/files/Electrolyte_Mob_3c89957b-d0ea-4f7d-82c2-254099749c2f.jpg?v=1772150267&width=1200 1200w, //twoislandsco.com/cdn/shop/files/Electrolyte_Mob_3c89957b-d0ea-4f7d-82c2-254099749c2f.jpg?v=1772150267&width=1920 1920w, //twoislandsco.com/cdn/shop/files/Electrolyte_Mob_3c89957b-d0ea-4f7d-82c2-254099749c2f.jpg?v=1772150267&width=2048 2048w" width="2048" height="2736" loading="lazy" sizes="(min-width: 768px) 80vw, 100vw" class="md-show"> 3513 </div> 3514 <div class='container'> 3515 <div class='home-sus__heading'> 3516 <h4>Our commitment</h4> 3517 <h2>Sustainability practices</h2> 3518 <p> 3519 Weâre committed to doing our part towards a healthier future not only for ourselves, but also our planet â not just today, but every day. 3520 </p> 3521 3522 <a class='dot-button' href='/pages/sustainability-practices '> 3523 <span class='dot-button__dot'></span> 3524 Learn more 3525 </a> 3526 3527 </div> 3528 </div> 3529</div> 3530 3531 3532 3533 3534 <style> 3535 .block-padding--template--15824825614536__fw_hero { 3536 3537 3538 3539 } 3540 3541 @media (max-width: 768px) { 3542 .block-padding--template--15824825614536__fw_hero { 3543 3544 3545 3546 3547 3548 3549 3550 3551 } 3552 } 3553 </style> 3554 3555 3556 3557 3558 3559 <style> 3560 .mx--template--15824825614536__fw_hero { 3561 3562 } 3563 3564 @media (max-width: 768px) { 3565 .mx--template--15824825614536__fw_hero { 3566 3567 3568 3569 } 3570 } 3571 </style> 3572 3573 3574 3575 3576</div><div id="shopify-section-template--15824825614536__follow_us" class="shopify-section"><section class='follow-us block-padding--template--15824825614536__follow_us mx--template--15824825614536__follow_us'> 3577 3578 <div class='follow-us__heading'> 3579 <div class='container'> 3580 <h2> 3581 Follow us
3582 <span> 3583 <a href='https://www.instagram.com/twoislandsco' target='_blank'> 3584 @twoislandsco 3585 </a> 3586 </span> 3587 </h2> 3588 </div> 3589 </div> 3590 3591 <div class='follow-us__wrapper'> 3592 <div class='follow-us__carousel owl-carousel'> 3593 3594 <div class='follow-us__item'> 3595 <a 3596 href='/products/milk-maker' 3597 title='' 3598 aria-label='' 3599 ><img src="//twoislandsco.com/cdn/shop/files/Screenshot_2026-04-23_at_5.01.27_PM.png?v=1776920980&width=500" alt="" srcset="//twoislandsco.com/cdn/shop/files/Screenshot_2026-04-23_at_5.01.27_PM.png?v=1776920980&width=352 352w" loading="lazy" sizes="(min-width: 768px) 80vw, 100vw"> 3600 </a> 3601 </div> 3602 3603 <div class='follow-us__item'> 3604 <a 3605 href='/pages/sustainability-practices' 3606 title='' 3607 aria-label='' 3608 ><img src="//twoislandsco.com/cdn/shop/files/Screenshot_2026-04-23_at_5.01.04_PM.png?v=1776920934&width=500" alt="" srcset="//twoislandsco.com/cdn/shop/files/Screenshot_2026-04-23_at_5.01.04_PM.png?v=1776920934&width=352 352w" loading="lazy" sizes="(min-width: 768px) 80vw, 100vw"> 3609 </a> 3610 </div> 3611 3612 <div class='follow-us__item'> 3613 <a 3614 href='/products/electrolyte' 3615 title='' 3616 aria-label='' 3617 ><img src="//twoislandsco.com/cdn/shop/files/Screenshot_2026-04-23_at_5.00.53_PM.png?v=1776920902&width=500" alt="" srcset="//twoislandsco.com/cdn/shop/files/Screenshot_2026-04-23_at_5.00.53_PM.png?v=1776920902&width=352 352w" loading="lazy" sizes="(min-width: 768px) 80vw, 100vw"> 3618 </a> 3619 </div> 3620 3621 <div class='follow-us__item'> 3622 <a 3623 href='/products/milk-maker' 3624 title='' 3625 aria-label='' 3626 ><img src="//twoislandsco.com/cdn/shop/files/Screenshot_2026-04-23_at_5.00.40_PM.png?v=1776920873&width=500" alt="" srcset="//twoislandsco.com/cdn/shop/files/Screenshot_2026-04-23_at_5.00.40_PM.png?v=1776920873&width=352 352w" loading="lazy" sizes="(min-width: 768px) 80vw, 100vw"> 3627 </a> 3628 </div> 3629 3630 <div class='follow-us__item'> 3631 <a 3632 href='/products/nightcap' 3633 title='' 3634 aria-label='' 3635 ><img src="//twoislandsco.com/cdn/shop/files/Screenshot_2026-04-23_at_5.00.24_PM.png?v=1776920847&width=500" alt="" srcset="//twoislandsco.com/cdn/shop/files/Screenshot_2026-04-23_at_5.00.24_PM.png?v=1776920847&width=352 352w" loading="lazy" sizes="(min-width: 768px) 80vw, 100vw"> 3636 </a> 3637 </div> 3638 3639 <div class='follow-us__item'> 3640 <a 3641 href='/products/collagen-beauty-powder' 3642 title='' 3643 aria-label='' 3644 ><img src="//twoislandsco.com/cdn/shop/files/Screenshot_2026-04-23_at_5.00.04_PM.png?v=1776920817&width=500" alt="" srcset="//twoislandsco.com/cdn/shop/files/Screenshot_2026-04-23_at_5.00.04_PM.png?v=1776920817&width=352 352w" loading="lazy" sizes="(min-width: 768px) 80vw, 100vw"> 3645 </a> 3646 </div> 3647 3648 <div class='follow-us__item'> 3649 <a 3650 href='/products/milk-maker' 3651 title='' 3652 aria-label='' 3653 ><img src="//twoislandsco.com/cdn/shop/files/Screenshot_2026-04-23_at_4.59.54_PM.png?v=1776920778&width=500" alt="" srcset="//twoislandsco.com/cdn/shop/files/Screenshot_2026-04-23_at_4.59.54_PM.png?v=1776920778&width=352 352w" loading="lazy" sizes="(min-width: 768px) 80vw, 100vw"> 3654 </a> 3655 </div> 3656 3657 <div class='follow-us__item'> 3658 <a 3659 href='/products/electrolyte' 3660 title='' 3661 aria-label='' 3662 ><img src="//twoislandsco.com/cdn/shop/files/Screenshot_2026-04-23_at_4.59.45_PM.png?v=1776920753&width=500" alt="" srcset="//twoislandsco.com/cdn/shop/files/Screenshot_2026-04-23_at_4.59.45_PM.png?v=1776920753&width=352 352w" loading="lazy" sizes="(min-width: 768px) 80vw, 100vw"> 3663 </a> 3664 </div> 3665 3666 <div class='follow-us__item'> 3667 <a 3668 href='/products/electrolyte' 3669 title='' 3670 aria-label='' 3671 >
3671<img src="//twoislandsco.com/cdn/shop/files/Screenshot_2026-04-23_at_4.59.24_PM.png?v=1776920647&width=500" alt="" srcset="//twoislandsco.com/cdn/shop/files/Screenshot_2026-04-23_at_4.59.24_PM.png?v=1776920647&width=352 352w" loading="lazy" sizes="(min-width: 768px) 80vw, 100vw"> 3672 </a> 3673 </div> 3674 3675 <div class='follow-us__item'> 3676 <a 3677 href='/products/collagen-beauty-powder' 3678 title='' 3679 aria-label='' 3680 ><img src="//twoislandsco.com/cdn/shop/files/Screenshot_2026-04-23_at_4.59.14_PM.png?v=1776920619&width=500" alt="" srcset="//twoislandsco.com/cdn/shop/files/Screenshot_2026-04-23_at_4.59.14_PM.png?v=1776920619&width=352 352w" loading="lazy" sizes="(min-width: 768px) 80vw, 100vw"> 3681 </a> 3682 </div> 3683 3684 <div class='follow-us__item'> 3685 <a 3686 href='/products/nightcap' 3687 title='' 3688 aria-label='' 3689 ><img src="//twoislandsco.com/cdn/shop/files/Screenshot_2026-04-23_at_4.59.01_PM.png?v=1776920579&width=500" alt="" srcset="//twoislandsco.com/cdn/shop/files/Screenshot_2026-04-23_at_4.59.01_PM.png?v=1776920579&width=352 352w" loading="lazy" sizes="(min-width: 768px) 80vw, 100vw"> 3690 </a> 3691 </div> 3692 3693 <div class='follow-us__item'> 3694 <a 3695 href='/products/super-beauty' 3696 title='' 3697 aria-label='' 3698 ><img src="//twoislandsco.com/cdn/shop/files/Screenshot_2026-03-13_at_12.13.56_pm.png?v=1773357312&width=500" alt="" srcset="//twoislandsco.com/cdn/shop/files/Screenshot_2026-03-13_at_12.13.56_pm.png?v=1773357312&width=352 352w" loading="lazy" sizes="(min-width: 768px) 80vw, 100vw"> 3699 </a> 3700 </div> 3701 3702 <div class='follow-us__item'> 3703 <a 3704 href='/blogs/journal' 3705 title='' 3706 aria-label='' 3707 ><img src="//twoislandsco.com/cdn/shop/files/Screenshot_2026-03-13_at_12.13.37_pm.png?v=1773357312&width=500" alt="" srcset="//twoislandsco.com/cdn/shop/files/Screenshot_2026-03-13_at_12.13.37_pm.png?v=1773357312&width=352 352w" loading="lazy" sizes="(min-width: 768px) 80vw, 100vw"> 3708 </a> 3709 </div> 3710 3711 <div class='follow-us__item'> 3712 <a 3713 href='/products/pea-protein-powder' 3714 title='' 3715 aria-label='' 3716 ><img src="//twoislandsco.com/cdn/shop/files/Screenshot_2026-03-13_at_12.13.18_pm.png?v=1773357313&width=500" alt="" srcset="//twoislandsco.com/cdn/shop/files/Screenshot_2026-03-13_at_12.13.18_pm.png?v=1773357313&width=352 352w" loading="lazy" sizes="(min-width: 768px) 80vw, 100vw"> 3717 </a> 3718 </div> 3719 3720 <div class='follow-us__item'> 3721 <a 3722 href='/products/two-islands-drink-bottle-with-straw-850ml' 3723 title='' 3724 aria-label='' 3725 ><img src="//twoislandsco.com/cdn/shop/files/Screenshot_2026-03-13_at_12.13.04_pm.png?v=1773357313&width=500" alt="" srcset="//twoislandsco.com/cdn/shop/files/Screenshot_2026-03-13_at_12.13.04_pm.png?v=1773357313&width=352 352w" loading="lazy" sizes="(min-width: 768px) 80vw, 100vw"> 3726 </a> 3727 </div> 3728 3729 <div class='follow-us__item'> 3730 <a 3731 href='/blogs/journal' 3732 title='' 3733 aria-label='' 3734 ><img src="//twoislandsco.com/cdn/shop/files/Screenshot_2026-03-13_at_12.12.53_pm.png?v=1773357311&width=500" alt="" srcset="//twoislandsco.com/cdn/shop/files/Screenshot_2026-03-13_at_12.12.53_pm.png?v=1773357311&width=352 352w" loading="lazy" sizes="(min-width: 768px) 80vw, 100vw"> 3735 </a> 3736 </div> 3737 3738 </div> 3739 </div> 3740</section> 3741 3742 3743 3744 3745 <style> 3746 .block-padding--template--15824825614536__follow_us { 3747 3748 3749 3750 } 3751 3752 @media (max-width: 768px) { 3753 .block-padding--template--15824825614536__follow_us { 3754 3755 3756 3757 3758 3759 3760 3761 3762 } 3763 } 3764 </style> 3765 3766 3767 3768 3769 3770 <style> 3771 .mx--template--15824825614536__follow_us { 3772 3773 } 3774 3775 @media (max-width: 768px) { 3776 .mx--template--15824825614536__follow_us { 3777 3778 3779 3780 } 3781 } 3782 </style> 3783 3784 3785 3786 3787</div><div id="shopify-section-template--15824825614536__gradients" class="shopify-section gradients__section"><div class='gradients block-padding--template--15824825614536__gradients mx--template--15824825614536__gradients'>
3788 <div class='gradients__wrapper'> 3789 <div class='navbar__spacing'></div> 3790 3791 3792 <div class='gradients__gradient gradients__gradient--1'></div> 3793 3794 <div class='gradients__gradient gradients__gradient--2'></div> 3795 3796 <div class='gradients__gradient gradients__gradient--3'></div> 3797 3798 <div class='gradients__gradient gradients__gradient--4'></div> 3799 3800 </div> 3801</div> 3802 3803 3804 3805 3806 <style> 3807 .block-padding--template--15824825614536__gradients { 3808 3809 3810 3811 } 3812 3813 @media (max-width: 768px) { 3814 .block-padding--template--15824825614536__gradients { 3815 3816 3817 3818 3819 3820 3821 3822 3823 } 3824 } 3825 </style> 3826 3827 3828 3829 3830 3831 <style> 3832 .mx--template--15824825614536__gradients { 3833 3834 } 3835 3836 @media (max-width: 768px) { 3837 .mx--template--15824825614536__gradients { 3838 3839 3840 3841 } 3842 } 3843 </style> 3844 3845 3846 3847 3848</div> 3849 3850 <!-- BEGIN sections: main-footer --> 3851<div id="shopify-section-sections--18043285504200__footer" class="shopify-section shopify-section-group-main-footer"><footer class='footer'> 3852 <div class='footer__grid'> 3853 <div class='footer__column footer__column--form' id='sms-form'> 3854 <link href="//twoislandsco.com/cdn/shop/t/190/assets/intlTelInput.css?v=34166537789638445811663583138" rel="stylesheet" type="text/css" media="all" /> 3855<style> 3856 .iti__flag {background-image: url(" //twoislandsco.com/cdn/shop/t/190/assets/flags.png?v=110639247209705433541663583140 ");} 3857 @media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) { 3858 .iti__flag {background-image: url(" //twoislandsco.com/cdn/shop/t/190/assets/[email protected]?v=103499352672715989171663583137 ");} 3859 } 3860</style> 3861 3862<div class='newsletter-form'> 3863 <div class='footer__form'> 3864 <h5> 3865 Enjoy 15% off your first order, access new product launches and special offers. 3866 </h5> 3867 3868 <form 3869 id='klaviyo-newsletter' 3870 class='footer-form newsletter-klaviyo-form' 3871 action='//manage.kmail-lists.com/subscriptions/subscribe' 3872 data-ajax-submit='//manage.kmail-lists.com/ajax/subscriptions/subscribe' 3873 method='GET' 3874 target='_blank' 3875 > 3876 <input type='hidden' name='g' value='S42aHM'> 3877 <input type='hidden' name='$fields' value='$consent, email, $phone_number, $first_name'> 3878 <input type='hidden' name='$list_fields' value='$consent'> 3879 <input type='hidden' name='$consent' value='email'> 3880 3881 <div class='form-row'> 3882 <input type='text' name='$first_name' placeholder='First Name*' required> 3883 </div> 3884 <div class='form-row'> 3885 <input type='email' name='email' placeholder='Email*' pattern='[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,}$' required> 3886 </div> 3887 <div class='form-row' data-error=''> 3888 <input type='number' class='js-phone-validation' placeholder='SMS'> 3889 <input type='hidden' class='js-phone-value' name='$phone_number'> 3890 </div> 3891 3892 <div class='form-row form-row--last'> 3893 <button type='submit' class='dot-button'> 3894 <span class='dot-button__dot'></span> 3895 Sign up 3896 </button> 3897 3898 <p> 3899 *By signing up, you acknowledge our <a href="/pages/privacy-policy-terms-of-use">Privacy Policy</a>, and agree to Two Islands <a href="/pages/privacy-policy-terms-of-use">Terms Of Use</a> and <a href="/pages/promo">Promo T&C's</a>. Promo codes not valid during sales. 3900 </p> 3901 </div> 3902 3903 <div class='klaviyo_messages'> 3904 <div class='error_message' style='display:none;'></div> 3905 </div> 3906 </form> 3907 </div> 3908 3909 <div class='newsletter-popup__success'> 3910 <h4> 3911 Thank you! 3912 </h4> 3913 <p> 3914 Your code below â click code to automatically apply your offer. 3915 </p> 3916 3917 3918 <a 3919 class='discount-button' 3920 href='/discount/HELLO15?redirect=/' 3921 > 3922 HELLO15 3923 </a> 3924 </div> 3925</div> 3926 3927 </div> 3928 3929 3930 <div class='footer__column footer__column--links'> 3931 <div class='footer__links'> 3932 <h4> 3933 Learn 3934 </h4> 3935 3936 3937 <ul> 3938 3939 <li> 3940 <a href='/pages/about'>About</a> 3941 </li> 3942 3943 <li>
3944 <a href='https://twoislandsco.com/pages/island-rewards'>Island Rewards</a> 3945 </li> 3946 3947 <li> 3948 <a href='/pages/subscriptions'>Subscribe & Save</a> 3949 </li> 3950 3951 <li> 3952 <a href='/pages/sustainability-practices'>Sustainability</a> 3953 </li> 3954 3955 <li> 3956 <a href='/blogs/ingredients'>Ingredients </a> 3957 </li> 3958 3959 <li> 3960 <a href='/blogs/blog'>Journal</a> 3961 </li> 3962 3963 <li> 3964 <a href='/pages/stockists'>Stockists</a> 3965 </li> 3966 3967 <li> 3968 <a href='/pages/two-islands-china'>Two Islands in China</a> 3969 </li> 3970 3971 </ul> 3972 3973 </div> 3974 </div> 3975 3976 <div class='footer__column footer__column--links'> 3977 <div class='footer__links'> 3978 <h4> 3979 Shop 3980 </h4> 3981 3982 3983 <ul> 3984 3985 <li> 3986 <a href='/collections/hydrate-electrolytes'>Electrolytes</a> 3987 </li> 3988 3989 <li> 3990 <a href='/collections/protein-powder'>Protein Powders</a> 3991 </li> 3992 3993 <li> 3994 <a href='/collections/marine-collagen'>Marine Collagen</a> 3995 </li> 3996 3997 <li> 3998 <a href='/collections/all-products'>Supplements</a> 3999 </li> 4000 4001 <li> 4002 <a href='/collections/all-products'>Shop All</a> 4003 </li> 4004 4005 </ul> 4006 4007 </div> 4008 </div> 4009 4010 <div class='footer__column footer__column--links'> 4011 <div class='footer__links'> 4012 <h4> 4013 Info 4014 </h4> 4015 4016 4017 <ul> 4018 4019 <li> 4020 <a href='/pages/contact-us'>Contact Us</a> 4021 </li> 4022 4023 <li> 4024 <a href='/pages/faqs'>FAQs</a> 4025 </li> 4026 4027 <li> 4028 <a href='/pages/privacy-policy-terms-of-use'>Privacy Policy</a> 4029 </li> 4030 4031 <li> 4032 <a href='/pages/shipping-and-returns'>Shipping & Delivery</a> 4033 </li> 4034 4035 <li> 4036 <a href='/pages/promo'>Terms & Conditions</a> 4037 </li> 4038 4039 <li> 4040 <a href='https://www.instagram.com/twoislandsco'>Instagram</a> 4041 </li> 4042 4043 <li> 4044 <a href='https://www.facebook.com/twoislandsco'>Facebook</a> 4045 </li> 4046 4047 <li> 4048 <a href='https://www.tiktok.com/@twoislands_'>TikTok</a> 4049 </li> 4050 4051 <li> 4052 <a href='/pages/wholesale'>Wholesale</a> 4053 </li> 4054 4055 </ul> 4056 4057 </div> 4058 </div> 4059 4060 </div> 4061 <div class='footer-bottom'> 4062 <div class='footer-bottom__grid'> 4063 <div class='footer-bottom__left'> 4064 <div class='footer-bottom__logos'> 4065 4066 <span> 4067 4068 <a href='https://bcorp.com' target='_blank'> 4069 4070 <img src='//twoislandsco.com/cdn/shop/files/B-Corp-Logo-Black-RGB_68debb9d-ad82-4808-8412-3e372483eb24.png?v=1786065098' alt=''> 4071 4072 </a> 4073 4074 </span> 4075 4076 <span> 4077 4078 <img src='//twoislandsco.com/cdn/shop/files/LW-logo-black_200x-8.png?v=1774906536' alt=''> 4079 4080 </span> 4081 4082 <span> 4083 4084 <img src='//twoislandsco.com/cdn/shop/files/Climate_Action_Company_Carbonz_partner-logo-transp.png?v=1774906535' alt=''> 4085 4086 </span> 4087
4088 <span> 4089 4090 <img src='//twoislandsco.com/cdn/shop/files/FernMark_Horizontal_Eng.png?v=1774906535' alt=''> 4091 4092 </span> 4093 4094 <span> 4095 4096 <img src='//twoislandsco.com/cdn/shop/files/POTSLogo_1.png?v=1783484394' alt=''> 4097 4098 </span> 4099 4100 </div> 4101 </div> 4102 <div class='footer-bottom__right'> 4103 <p> 4104 <span>© 2026 Two Islands </span 4105 ><a href='https://almond.studio' target='_blank' title='https://almond.studio/'>Site by S/A</a> 4106 </p> 4107 </div> 4108 </div> 4109 </div> 4110</footer> 4111 4112<link href="//twoislandsco.com/cdn/shop/t/190/assets/component-newsletter-popup.css?v=47602666606459740961663583139" rel="stylesheet" type="text/css" media="all" /> 4113 4114<!-- 4115 toggle the ".newsletter-popup--success" class to show/hide success message. 4116 --> 4117<!-- <div class="newsletter-popup newsletter-popup--success"> --> 4118 4119 4120 4121 4122
4123<script type='text/javascript' src='//www.klaviyo.com/media/js/public/klaviyo_subscribe.js'></script>
vendor: 1 bytes, line 4123
4123
4124<script> 4125 /** 4126 * Attach Klaviyo 4127 */ 4128 document.querySelectorAll('.newsletter-klaviyo-form').forEach((form) => { 4129 $(form).on('submit', function (e) { 4130 if ($(form).find('[data-invalid]').length) { 4131 e.preventDefault(); 4132 console.log('invalid'); 4133 return false; 4134 } 4135 4136 /** 4137 * Submit data to SMSBump separately 4138 */ 4139 const first_name = $(form).find('[name="$first_name"]').val(); 4140 const email = $(form).find('[name="email"]').val(); 4141 const phone_number = $(form).find('[name="$phone_number"]').val(); 4142 4143 const data = { 4144 store: 'two-islands-co.myshopify.com', 4145 $source: 'Footer form ', 4146 $first_name: first_name, 4147 $email: email, 4148 $phone_number: phone_number, 4149 $consent_method: 'Klaviyo Form', 4150 $consent_form_id: 'S7UA87', 4151 $consent_form_version: 5846499, 4152 sentIdentifiers: {}, 4153 sms_consent: true, 4154 }; 4155 fetch('https://sqs-webhooks.smsbump.com/forms-subscription', { 4156 method: 'POST', 4157 body: JSON.stringify(data), 4158 }); 4159 }); 4160 4161 KlaviyoSubscribe.attachToForms(form, { 4162 hide_form_on_success: false, 4163 custom_success_message: true, 4164 success_message: '', 4165 success: function () { 4166 newsletterSuccess($(form).closest('.newsletter-form')); 4167 }, 4168 }); 4169 }); 4170 4171 /** 4172 * Popup Success 4173 */ 4174 function newsletterSuccess($form) { 4175 const $el = $form || $('.newsletter-form'); 4176 4177 Cookies.set('newsletter-popup', 'success', { 4178 expires: 365, 4179 path: '', 4180 }); 4181 4182 $($el).addClass('newsletter-popup--success'); 4183 } 4184 4185 /** 4186 * Popup Dismiss 4187 */ 4188 $('.newsletter-popup__close').on('click', function (e) { 4189 e.preventDefault(); 4190 $('body').removeClass('newsletter-popup--show'); 4191 4192 Cookies.set('newsletter-popup', 'dismissed', { 4193 expires: +`10`, 4194 path: '', 4195 }); 4196 }); 4197 4198 /** 4199 * Count popup's delay X seconds 4200 * after window has been loaded 4201 */ 4202 $(window).on('load', function () { 4203 const timeoutDelay = +`45` * 1000; 4204 4205 setTimeout(function () { 4206 $('body').addClass('newsletter-popup--show'); 4207 }, timeoutDelay); 4208 }); 4209 4210 /** 4211 * Remove popup's DOM if the popup 4212 * was either closed or successfully submitted previously 4213 */ 4214 if (Cookies.get('newsletter-popup') == 'dismissed' || Cookies.get('newsletter-popup') == 'success') { 4215 if (!Shopify.designMode) { 4216 jQuery('.newsletter-popup').remove(); 4217 } 4218 } 4219 4220 // fetch("https://sqs-webhooks.smsbump.com/forms-subscription", { 4221 // "headers": { 4222 // "accept": "*/*", 4223 // "accept-language": "en-US,en;q=0.9,de;q=0.8", 4224 // "access-control-allow-origin": "*", 4225 // "cache-control": "no-cache", 4226 // "content-type": "application/json;charset=UTF-8", 4227 // "pragma": "no-cache", 4228 // "sec-ch-ua": "\"Google Chrome\";v=\"105\", \"Not)A;Brand\";v=\"8\", \"Chromium\";v=\"105\"", 4229 // "sec-ch-ua-mobile": "?0", 4230 // "sec-ch-ua-platform": "\"macOS\"", 4231 // "sec-fetch-dest": "empty", 4232 // "sec-fetch-mode": "cors", 4233 // "sec-fetch-site": "cross-site" 4234 // }, 4235 // "referrer": "https://twoislandsco.com/", 4236 // "referrerPolicy": "no-referrer-when-downgrade", 4237 // "body": "{\"customer_id\":0,\"store\":\"two-islands-co.myshopify.com\",\"$source\":\"Footer form \",\"$first_name\":\"data\",\"$email\":\"[email protected]\",\"$phone_number\":\"+923212313123\",\"$consent_method\":\"Klaviyo Form\",\"$consent_form_id\":\"S7UA87\",\"$consent_form_version\":5846499,\"sentIdentifiers\":{},\"sms_consent\":true,\"$step_name\":\"Email Opt-In\",\"_y_eventType\":\"stepSubmit\",\"_y_formType\":\"EMBEDED\"}", 4238 // "method": "POST", 4239 // "mode": "cors", 4240 // "credentials": "omit" 4241 // }); 4242 4243 // data = { 4244 // "customer_id": 0, 4245 // "store": "two-islands-co.myshopify.com", 4246 // "$source": "Footer form ", 4247 // "$first_name": "data", 4248 // "$email": "[email protected]", 4249 // "$phone_number": "+923212313123", 4250 // "$consent_method": "Klaviyo Form", 4251 // "$consent_form_id": "S7UA87", 4252 // "$consent_form_version": 5846499, 4253 // "sentIdentifiers": {}, 4254 // "sms_consent": true, 4255 // "$step_name": "Email Opt-In", 4256 // "_y_eventType": "stepSubmit", 4257 // "_y_formType": "EMBEDED" 4258 // } 4259 // fetch("https://sqs-webhooks.smsbump.com/forms-subscription", { 4260 // "method": "POST", 4261 // "body": JSON.stringify(data) 4262 // }); 4263</script>
4263 4264
4265<script> 4266 window.addEventListener('klaviyoForms', function (e) { 4267 console.log('klaviyo form'); 4268 console.log(e.detail); 4269 }); 4270</script>
4270 4271 4272<style data-shopify> 4273 .footer { 4274 background-color: #3e3e3d; 4275 color: #000000;background: url('//twoislandsco.com/cdn/shop/files/TI_Gradient_Banner_web.png?v=1779745136') center / cover no-repeat;} 4276 .footer-form input { 4277 color: #000000; 4278 border-bottom: 1px solid #000000; 4279 } 4280 .footer-form input::placeholder { 4281 color: #000000; 4282 } 4283 .footer-form .dot-button { 4284 color: #000000; 4285 } 4286 .footer-form .dot-button__dot { 4287 background: #000000; 4288 } 4289 .footer__form p a:hover,.footer__links ul a:hover,.footer-bottom__right>p { 4290 color: #000000; 4291 } 4292 .footer__form .iti__arrow { 4293 border-top-color: #000000; 4294 } 4295 .footer-bottom__logos { 4296 display: flex; 4297 flex-wrap: nowrap; 4298 align-items: center; 4299 gap: 16px; 4300 } 4301</style> 4302</style> 4303 4304 4305</div> 4306<!-- END sections: main-footer --> 4307 </main> 4308 4309 <div id="shopify-section-cart-drawer" class="shopify-section"><div class='cart-drawer'> 4310 <!-- <form action="/cart" method="post" class="cart-drawer__form" > --> 4311 4312 <div class='cart-drawer__grid' data-ajax-cart-section> 4313 4314 <div class='cart-drawer__ribbon'> 4315 <p> 4316 Free NZ shipping on orders over $90 | Free AU Shipping on orders over $130 4317 </p> 4318 </div> 4319 4320 4321 <!-- cart header --> 4322 <div class='cart-drawer__header' data-ajax-cart-static-element> 4323 <div class='cart-drawer__title'> 4324 <h3>Your order</h3> 4325 </div> 4326 <div class='cart-drawer__button'> 4327 <a class='button' href='/cart'>View my cart</a> 4328 </div> 4329 <div class='cart-drawer__close'> 4330 <a class='cart-drawer__close--desktop' href='#'> 4331 <img src='//twoislandsco.com/cdn/shop/t/190/assets/icon-close.svg?v=92018993089306379161663583140' loading='lazy' width='24' height='24'> 4332 </a> 4333 <a class='cart-drawer__close--mobile' href='#'> 4334 <img src='//twoislandsco.com/cdn/shop/t/190/assets/icon-close.svg?v=92018993089306379161663583140' loading='lazy' width='24' height='24'> 4335 </a> 4336 </div> 4337 </div> 4338 4339 4340 4341 4342 4343 4344 4345 <!-- cart body --> 4346 <div class='cart-drawer__body' data-ajax-cart-section-scroll> 4347 <!-- cart-drawer-items --> 4348 <div class='cart-drawer__items'> 4349 4350 <div class='cart-drawer__message'>Your cart is empty</div> 4351 <div class='cart-preloader'> 4352 <div class='cart-preloader__image--left pulse'></div> 4353 <div class='cart-preloader__content--right'> 4354 <div class='cart-preloader__title'> 4355 <div class='cart-preloader__title--text pulse'></div> 4356 <div class='cart-preloader__title--price pulse'></div> 4357 </div> 4358 <div class='cart-preloader__action'> 4359 <div class='cart-preloader__action--desc pulse'></div> 4360 <div class='cart-preloader__action--remove pulse'></div> 4361 </div> 4362 <div class='cart-preloader__qty pulse'></div> 4363 </div> 4364 </div> 4365 4366</div> 4367 4368 4369 <!-- cart-recommend --> 4370 </div> 4371 4372 <!-- cart footer --> 4373 <div class='cart-drawer__footer'> 4374 4375 4376 4377<style> 4378 loyalty-points-dropdown { 4379 font-family: inherit; 4380 font-style: normal; 4381 font-weight: 400; 4382 line-height: 100%; 4383 letter-spacing: -0.02em; 4384 } 4385 loyalty-points-dropdown .loyalty-dropdown__title { 4386 text-align: left !important; 4387 } 4388 .loyalty-dropdown__option { 4389 max-height: 39.8px !important; 4390 } 4391 @media screen and (max-width: 749px) { 4392 loyalty-points-dropdown { 4393 padding-inline: 20px; 4394 } 4395 } 4396</style> 4397 4398<loyalty-points-dropdown 4399 dropdown-title='Use your reward points' 4400 icon-type='chevron' 4401 custom-styles='{"abbreviate_text":false,"checkout_body_text":"","checkout_confirmation_message":"","checkout_select_label":"","discount_conflict_error":"","dropdown_border_radius":0,"dropdown_border_thickness":1,"dropdown_error_color":{"alpha":1,"brightness":0.24313725490196078,"hex":"#3e3e3d","hue":60,"saturation":0.01612903225806446},"dropdown_font_family":"inherit","dropdown_font_size":12,"dropdown_height":"auto","dropdown_icon_type":"chevron","dropdown_padding_horizontal":16,"dropdown_padding_vertical":12,"dropdown_primary_background_color":{"alpha":1,"brightness":1,"hex":"#ffffff","hue":0,"saturation":0},"dropdown_primary_border_color":{"alpha":1,"brightness"
4401:0.24313725490196078,"hex":"#3e3e3d","hue":60,"saturation":0.01612903225806446},"dropdown_primary_text_color":{"alpha":1,"brightness":0.24313725490196078,"hex":"#3e3e3d","hue":60,"saturation":0.01612903225806446},"dropdown_secondary_background_color":{"alpha":1,"brightness":0.9294117647058824,"hex":"#b1d1ed","hue":208.00000000000003,"saturation":0.2531645569620254},"dropdown_secondary_border_color":{"alpha":1,"brightness":0.24313725490196078,"hex":"#3e3e3d","hue":60,"saturation":0.01612903225806446},"dropdown_secondary_text_color":{"alpha":1,"brightness":0.24313725490196078,"hex":"#3e3e3d","hue":60,"saturation":0.01612903225806446},"dropdown_success_color":{"alpha":1,"brightness":0.24313725490196078,"hex":"#3e3e3d","hue":60,"saturation":0.01612903225806446},"dropdown_title":"Use your reward points","dropdown_uppercase":true,"insufficient_points_error":"","min_order_value_error":"","no_eligible_items_error":"","operation_error":"","padding_bottom":0,"padding_top":0,"redemption_method":"coupon","select_reward_text":""}' 4402 redemption-method='coupon' 4403 style='margin-top: 0px; margin-bottom: 0px;' 4404></loyalty-points-dropdown> 4405 4406 4407 4408 <div class='cart-drawer__buttons'> 4409 <a 4410 href='/collections/all-products' 4411 class='button button--light cart-drawer__button cart-drawer__button--shopping shopping' 4412 > 4413 Start Shopping 4414 </a> 4415 4416 4417 <a 4418 href='/collections/all-products' 4419 class='button button--dark cart-drawer__button cart-drawer__button--checkout checkout' 4420 > 4421 Continue Shopping 4422 </a> 4423 4424 </div> 4425 4426 4427 4428 </div> 4429 4430 <!-- cart loading overlay --> 4431 <div class='cart-drawer__loader cart-loader'> 4432 <div class='cart-loader__element'> 4433 <!-- 4434 place any loading indicator inside text, image or anything else, will always be vertically and horizontally centered. 4435 --> 4436 <!-- <h4>Loading...</h4> --> 4437 </div> 4438 </div> 4439 </div> 4440 <!-- </form> --> 4441</div> 4442 4443<div class='cart-drawer__overlay'></div> 4444
4445<script type='application/json' data-ajax-cart-initial-state> 4446 {"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"USD","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0} 4447</script>
vendor: 1 bytes, line 4447
4447
4448<script type='application/json' data-ajax-cart-configuration> 4449 { 4450 "addToCartCssClass": "cart-drawer--added" 4451 } 4452</script>
4452 4453
4454<script type='module'> 4455 function updateFreeShipping() { 4456 const $parent = $('.cart-drawer .coupon-field'); 4457 const $total = $parent.find('.dcodeTotalValue .dcode-total-value'); 4458 const $currency = $parent.find('.dcodeTotalValue .dcode-total-currency'); 4459 4460 let total = +$('.cart-drawer__amount').attr('data-amount'); 4461 let currency = Shopify.currency.active; 4462 const shippingAmount = +$('.cart-drawer__ship-info').attr('data-amount'); 4463 4464 // if ( $total.length ) { 4465 // total = +$total.text(); 4466 // currency = $currency.text(); 4467 // } 4468 4469 if (!total) { 4470 total = 0; 4471 } 4472 4473 const isFreeShipping = $('.free-shipping--free').length || total > shippingAmount; 4474 const hasSubscription = $('.free-shipping--subscription').length > 0; 4475 const amountLeft = shippingAmount - total; 4476 4477 const afterpayPrice = Shopify.formatMoney((total * 100) / 4).replaceAll('.00', ''); 4478 // const laybuyPrice = Shopify.formatMoney( total * 100 / 6 ).replaceAll('.00',''); 4479 4480 $('.js-cart-afterpay').text(afterpayPrice); 4481 // $('.js-cart-laybuy').text(laybuyPrice); 4482 4483 $('.free-shipping__amount').text(Shopify.formatMoney(amountLeft * 100).replaceAll('.00', '')); 4484 // $('.js-cart-total').text( Shopify.formatMoney( total * 100 ).replaceAll('.00','') ); 4485 $('.main-cart, .cart-drawer').toggleClass('free-shipping--unlocked', !!isFreeShipping); 4486 4487 $('.main-cart, .cart-drawer').toggleClass('has-subscription-item', hasSubscription); 4488 // console.log({ isFreeShipping }); 4489 } 4490 4491 // const observer = new MutationObserver(function(mutationList, observer) { 4492 // updateFreeShipping(); 4493 // }); 4494 4495 function freeShipping() { 4496 // observer.disconnect(); 4497 // updateFreeShipping(); 4498 // const target = $('.cart-drawer .coupon-field')[0]; 4499 // if( target ) { 4500 // observer.observe(target, { 4501 // childList: true, 4502 // subtree: true 4503 // }) 4504 // } 4505 // $.ajax({ 4506 // type: 'GET', 4507 // url:'/checkout', 4508 // success: function(data, textStatus, request){ 4509 // const checkoutURL = request.getResponseHeader('content-location'); 4510 // if( checkoutURL ) { 4511 // $.get(checkoutURL, function(data) { 4512 // let total = +$(data).find('.total-line-table__footer [data-checkout-payment-due-target]').attr('data-checkout-payment-due-target'); 4513 // total /= 100; 4514 // const shippingAmount = +$('.cart-drawer__ship-info').attr('data-amount'); 4515 // const isFreeShipping = $('.free-shipping--free').length || total > shippingAmount; 4516 // const amountLeft = shippingAmount - total; 4517 // $('.free-shipping__amount').text( Shopify.formatMoney( amountLeft * 100 ) ); 4518 // $('.cart-drawer').toggleClass('free-shipping--unlocked', isFreeShipping); 4519 // }); 4520 // } 4521 // } 4522 // }); 4523 } 4524 4525 async function setSellingPlan(id, selling_plan, _quantity) { 4526 const quantity = _quantity || $(this)?.closest('.cart-item')?.find('[data-ajax-cart-quantity-input]')?.val() || 0; 4527 4528 await fetch('/cart/change.js', { 4529 method: 'POST', 4530 headers: { 4531 'Content-Type': 'application/json', 4532 Accept: 'application/json', 4533 }, 4534 body: JSON.stringify({ 4535 line: id, 4536 selling_plan, 4537 quantity: quantity, 4538 }), 4539 }).then(() => { 4540 $('.cart-item select').niceSelect(); 4541 freeShipping(); 4542 }); 4543 } 4544 4545 $(document).on('change', '.cart-item select[name="selling_plan"]', async function (e) { 4546 const id = $(this).attr('data-id'); 4547 const selling_plan = $(this).val(); 4548 4549 await setSellingPlan(id, selling_plan); 4550 }); 4551 4552 $(document).on('click', '.cart-item .cart-item__remove--subscription', async function (e) { 4553 e.preventDefault(); 4554 4555 const id = $(this).attr('data-id'); 4556 const selling_plan = null; 4557 4558 await setSellingPlan(id, selling_plan, 0); 4559 }); 4560 4561 $(document).on('click', '.cart-subscription__upgrade', function (e) { 4562 e.preventDefault(); 4563 $(this).closest('.cart-subscription').addClass('cart-subscription--show-selector'); 4564 }); 4565 4566 async function gwpUpdate() { 4567 const gwpAll = JSON.parse($('#gwp-all').text()); 4568 const gwpToAdd = JSON.parse($('#gwp-to-add').text()); 4569 const gwpAdded = localStorage.getObject('gwpAdded') || []; 4570 const gwpUpdates = {}; 4571 4572 gwpAll.forEach((id) => { 4573 gwpUpdates[id] = 0; 4574 }); 4575
4576 gwpToAdd.forEach((id) => { 4577 gwpUpdates[id] = 1; 4578 }); 4579 4580 gwpAdded.forEach((id) => { 4581 if (gwpToAdd.includes(id)) { 4582 delete gwpUpdates[id]; 4583 } 4584 }); 4585 4586 await fetch('/cart/update.js', { 4587 method: 'POST', 4588 headers: { 4589 'Content-Type': 'application/json', 4590 Accept: 'application/json', 4591 }, 4592 body: JSON.stringify({ 4593 updates: gwpUpdates, 4594 }), 4595 }).then(() => { 4596 $('.cart-item select').niceSelect(); 4597 4598 freeShipping(); 4599 }); 4600 } 4601 4602 $(function () { 4603 freeShipping(); 4604 window.updateFreeShipping = updateFreeShipping; 4605 }); 4606</script>
4606 4607
4608<script> 4609 $(document).on('click', '.navbar__cart-link, .cart-drawer__trigger', function (e) { 4610 e.preventDefault(); 4611 $('body').toggleClass('cart-drawer--show'); 4612 }); 4613 4614 $(document).on('click', '.cart-drawer__open', function (e) { 4615 $('body').toggleClass('cart-drawer--show'); 4616 }); 4617 4618 $(document).on('click', '.cart-drawer__close, .cart-drawer__overlay', function (e) { 4619 e.stopPropagation(); 4620 $('body').removeClass('cart-drawer--show'); 4621 }); 4622 4623 $('.cart-drawer__close--mobile, .cart-drawer__close--desktop').on('click', function (e) { 4624 e.preventDefault(); 4625 }); 4626</script>
4626 4627 4628 4629</div> 4630 4631
4631<script src='//twoislandsco.com/cdn/shop/t/190/assets/global.js?v=118607186526788460221663583140' defer></script>
4631 4632 4633
4633<script src='//twoislandsco.com/cdn/shop/t/190/assets/owl.carousel.min.js?v=97891440811553454251663583138' defer></script>
4633 4634 4635 4636
4636<script src='//twoislandsco.com/cdn/shop/t/190/assets/bundle.js?v=65555518317860607471780546239' defer></script>
4636 4637 4638
4638<script> 4639 class SectionRenderer { 4640 constructor() { 4641 this.cache = {}; 4642 const mainProductSectionId = document.querySelector('.product-main')?.dataset.id; 4643 this.sectionIds = [mainProductSectionId, 'product-reviews', 'related-products', 'product-related-articles']; 4644 this.init(); 4645 } 4646 4647 init() { 4648 // NEW: Cache the initial page content first 4649 this.cacheInitialContent(); 4650 4651 // Cache all refill button data on page load 4652 this.cacheRefillButtonData(); 4653 4654 // Add click handlers for refill buttons 4655 this.addRefillButtonClickHandlers(); 4656 4657 // Add back button handler 4658 // Add a property to track current URL 4659 this.currentUrl = window.location.href; // Track current URL 4660 this.isTransitioning = false; // Add loading state flag 4661 4662 // Updated popstate handler 4663 window.addEventListener('popstate', () => { 4664 const newUrl = window.location.href; 4665 4666 // Only process if URL actually changed 4667 if (newUrl === this.currentUrl) { 4668 console.log('Popstate fired but URL unchanged, ignoring'); 4669 return; 4670 } 4671 4672 // NEW: Check if we're in the middle of a transition 4673 if (this.isTransitioning) { 4674 console.log('Currently transitioning, ignoring back button'); 4675 return; 4676 } 4677 4678 console.log('Back button clicked - URL changed'); 4679 console.log('Previous URL:', this.currentUrl); 4680 console.log('New URL:', newUrl); 4681 4682 const specificCacheKey = this.createCacheKey(newUrl); 4683 const genericCacheKey = new URL(newUrl).pathname; 4684 4685 console.log('Trying cache keys:', specificCacheKey, genericCacheKey); 4686 console.log('Available cache keys:', Object.keys(this.cache)); 4687 4688 if (this.cache[specificCacheKey]) { 4689 console.log('Found specific cache match'); 4690 this.updateSectionsFromData(this.cache[specificCacheKey]); 4691 this.currentUrl = newUrl; // Update tracked URL 4692 } else if (this.cache[genericCacheKey]) { 4693 console.log('Found generic cache match'); 4694 this.updateSectionsFromData(this.cache[genericCacheKey]); 4695 this.currentUrl = newUrl; // Update tracked URL 4696 } else { 4697 console.log('No cache found for:', newUrl); 4698 // Graceful fallback - stay on current content 4699 } 4700 }); 4701 } 4702 4703 cacheRefillButtonData() { 4704 // Get all refill buttons and cache their data 4705 const refillButtons = document.querySelectorAll('.refill-button'); 4706 if (!refillButtons.length) return; 4707 4708 console.log(`Found ${refillButtons.length} refill buttons to cache`); 4709 4710 // For each refill button, fetch and cache its section data 4711 refillButtons.forEach((button) => { 4712 const url = button.getAttribute('href'); 4713 if (!url) return; 4714 4715 // Create a cache key based on the URL 4716 const cacheKey = this.createCacheKey(url); 4717 4718 // Skip if already cached 4719 if (this.cache[cacheKey]) return; 4720 4721 // Build the fetch URL using Shopify's API format 4722 const fetchUrl = this.buildSectionUrl(url); 4723 console.log(`Fetching data for ${fetchUrl}`); 4724 4725 // Fetch the section data 4726 fetch(fetchUrl) 4727 .then((res) => res.json()) 4728 .then((data) => { 4729 if (data) { 4730 // Preload images before caching 4731 this.preloadImagesFromData(data).then(() => { 4732 console.log(`Successfully cached data for ${cacheKey}`); 4733 this.cache[cacheKey] = data; 4734 4735 // NEW: Look for refill buttons in the fetched content and cache them too 4736 this.cacheRefillButtonsFromFetchedData(data, url); 4737 }); 4738 } 4739 }) 4740 .catch((error) => { 4741 console.error('Error fetching refill data:', error); 4742 }); 4743 }); 4744 } 4745 4746 // NEW: Add a method to extract and cache refill buttons from fetched data 4747 cacheRefillButtonsFromFetchedData(data, sourceUrl) { 4748 console.log('Looking for refill buttons in fetched content'); 4749 4750 // Create a temporary container to parse the HTML 4751 const tempContainer = document.createElement('div'); 4752 4753 // Go through each section in the data 4754 for (const [sectionId, html] of Object.entries(data)) { 4755 if (!html) continue; 4756 4757 // Parse the HTML 4758 tempContainer.innerHTML = html; 4759 4760 // Find all refill buttons in this section 4761 const refillButtons = tempContainer.querySelectorAll('.refill-button'); 4762 4763 if (refillButtons.length) { 4764 console.log(`Found ${refillButtons.length} nested refill buttons in section ${sectionId}`); 4765 4766 // Cache each refill button's data 4767 refillButtons.forEach((button) => { 4768 const url = button.getAttribute('href'); 4769 if (!url) return; 4770 4771 // Skip if it's the same as the source URL to prevent infinite recursion 4772 if (url === sourceUrl) return; 4773 4774 // Create a cache key based on the URL 4775 const cacheKey = this.createCacheKey(url); 4776 4777 // Skip if already cached 4778 if (this.cache[cacheKey]) { 4779 console.log(`Nested refill button data already cached for ${cacheKey}`); 4780 return; 4781 } 4782 4783 // Build the fetch URL using Shopify's API format 4784 const fetchUrl = this.buildSectionUrl(url); 4785 console.log(`Fetching nested refill button data for ${fetchUrl}`); 4786 4787 // Fetch the section data 4788 fetch(fetchUrl) 4789 .then((res) => res.json()) 4790 .then((nestedData) => { 4791 if (nestedData) { 4792 // Preload images before caching 4793 this.preloadImagesFromData(nestedData).then(() => { 4794 console.log(`Successfully cached nested refill data for ${cacheKey}`); 4795 this.cache[cacheKey] = nestedData; 4796 4797 // We could continue recursively, but for performance and to prevent 4798 // potential circular references, we'll stop at this level 4799 }); 4800 } 4801 }) 4802 .catch((error) => { 4803 console.error('Error fetching nested refill data:', error); 4804 }); 4805 }); 4806 } 4807 } 4808 4809 // Clear the temporary container 4810 tempContainer.innerHTML = ''; 4811 } 4812 4813 buildSectionUrl(url) { 4814 // Start with the original URL 4815 const urlObj = new URL(url, window.location.origin); 4816 4817 // Add the sections parameter 4818 const sectionsParam = this.sectionIds.join(','); 4819 urlObj.searchParams.set('sections', sectionsParam); 4820 4821 return urlObj.toString(); 4822 } 4823 4824 createCacheKey(url) { 4825 // Extract the product handle and variant ID from the URL 4826 const urlObj = new URL(url, window.location.origin); 4827 const path = urlObj.pathname; 4828 const variantId = urlObj.searchParams.get('variant'); 4829 4830 // Create a unique cache key 4831 return `${path}${variantId ? `?variant=${variantId}` : ''}`; 4832 } 4833 4834 addRefillButtonClickHandlers() { 4835 console.log('Adding refill button click handlers'); 4836 document.querySelectorAll('.refill-button').forEach((button) => { 4837 // First remove any existing event listeners to prevent duplicates 4838 const clonedButton = button.cloneNode(true); 4839 if (button.parentNode) { 4840 button.parentNode.replaceChild(clonedButton, button); 4841 } 4842 4843 // Add the event listener to the new button 4844 clonedButton.addEventListener('click', (event) => { 4845 event.preventDefault(); 4846 console.log('Refill button clicked'); 4847 4848 const url = clonedButton.getAttribute('href'); 4849 if (!url) return; 4850 4851 this.handleRefillButtonClick(url); 4852 }); 4853 }); 4854 console.log('Refill button handlers added'); 4855 } 4856 4857 handleRefillButtonClick(url) { 4858 // NEW: Set transitioning flag 4859 this.isTransitioning = true; 4860 4861 const cacheKey = this.createCacheKey(url); 4862 console.log(`Handling click for URL: ${url}, Cache key: ${cacheKey}`); 4863 4864 // NEW: Before changing content, cache the current content with BOTH specific and generic keys 4865 const currentUrl = window.location.href; 4866 const currentSpecificKey = this.createCacheKey(currentUrl); 4867 const currentGenericKey = new URL(currentUrl).pathname; 4868 4869 // FIXED: Always ensure both keys are cached 4870 if (!this.cache[currentSpecificKey] || !this.cache[currentGenericKey]) { 4871 console.log('Caching current content before navigation'); 4872 const currentState = {}; 4873 4874 this.sectionIds.forEach((sectionId) => { 4875 let sectionContainer; 4876 if (sectionId?.includes('template--')) { 4877 sectionContainer = document.querySelector(`#shopify-section-${sectionId}`); 4878 } else { 4879 sectionContainer = document.querySelector(`[id$="__${sectionId}"]`); 4880 } 4881 4882 if (sectionContainer) { 4883 currentState[sectionId] = sectionContainer.innerHTML; 4884 } 4885 }); 4886 4887 // Always cache with both keys 4888 this.cache[currentSpecificKey] = currentState; 4889 this.cache[currentGenericKey] = currentState; 4890 console.log('Cached current content with keys:', currentSpecificKey, currentGenericKey
4890); 4891 } 4892 4893 if (this.cache[cacheKey]) { 4894 console.log('Using cached data'); 4895 this.renderSectionFromCache(cacheKey, url); 4896 } else { 4897 console.log('No cached data found, fetching fresh'); 4898 this.renderSectionFromFetch(url); 4899 } 4900 } 4901 4902 renderSectionFromCache(cacheKey, url) { 4903 console.log(`Rendering from cache: ${cacheKey}`); 4904 const data = this.cache[cacheKey]; 4905 if (!data) return; 4906 4907 // Update each section from the cached data 4908 this.updateSectionsFromData(data); 4909 4910 // Update browser history and track the URL change 4911 history.pushState({}, '', url); 4912 this.currentUrl = url; // Track the new URL 4913 } 4914 4915 renderSectionFromFetch(url, updateHistory = true) { 4916 console.log(`Fetching and rendering: ${url}`); 4917 const fetchUrl = this.buildSectionUrl(url); 4918 4919 fetch(fetchUrl) 4920 .then((res) => res.json()) 4921 .then((data) => { 4922 if (data) { 4923 // Preload images before caching 4924 this.preloadImagesFromData(data).then(() => { 4925 // Cache after images are preloaded 4926 const specificCacheKey = this.createCacheKey(url); 4927 const genericCacheKey = new URL(url).pathname; // Add generic key 4928 4929 // Cache with both specific and generic keys 4930 this.cache[specificCacheKey] = data; 4931 this.cache[genericCacheKey] = data; 4932 4933 console.log('Cached fetched content with keys:', specificCacheKey, genericCacheKey); 4934 4935 // Update each section from the fetched data 4936 this.updateSectionsFromData(data); 4937 4938 // Update browser history and track the URL change 4939 if (updateHistory) { 4940 history.pushState({}, '', url); 4941 this.currentUrl = url; 4942 } 4943 }); 4944 } 4945 }) 4946 .catch((error) => { 4947 console.error('Error fetching sections:', error); 4948 }); 4949 } 4950 4951 updateSectionsFromData(data) { 4952 if (!document.body.classList.contains('pdp--prerendered')) { 4953 document.body.classList.add('pdp--prerendered'); 4954 } 4955 4956 // Process each section in the response 4957 for (const [sectionId, html] of Object.entries(data)) { 4958 if (html === null) { 4959 console.warn(`Section ${sectionId} returned null content`); 4960 continue; 4961 } 4962 4963 this.replaceSection(sectionId, html); 4964 } 4965 4966 // After all sections are updated, reinitialize components 4967 this.reinitializeComponents(); 4968 4969 // Explicitly re-add event handlers for refill buttons 4970 this.addRefillButtonClickHandlers(); 4971 4972 // NEW: Cache any new refill buttons that appeared in the updated content 4973 this.cacheRefillButtonData(); 4974 4975 // NEW: Clear transitioning flag when done 4976 setTimeout(() => { 4977 this.isTransitioning = false; 4978 console.log('Transition complete'); 4979 }, 500); // Small delay to ensure everything is loaded 4980 } 4981 4982 replaceSection(sectionId, html) { 4983 console.log(`Replacing section: ${sectionId}`); 4984 let sectionContainer; 4985 4986 if (sectionId?.includes('template--')) { 4987 sectionContainer = document.querySelector(`#shopify-section-${sectionId}`); 4988 } else { 4989 sectionContainer = document.querySelector(`[id$="__${sectionId}"]`); 4990 } 4991 if (!sectionContainer) { 4992 console.warn(`Section container not found for ${sectionId}`); 4993 return; 4994 } 4995 // Find the section container using the shopify-section ID format 4996 4997 // Create a temporary container to parse the HTML 4998 const tempContainer = document.createElement('div'); 4999 tempContainer.innerHTML = html; 5000 5001 // Extract scripts before replacing content 5002 const scripts = Array.from(tempContainer.querySelectorAll('script')); 5003 5004 // Pre-initialize Swiper elements if possible 5005 const swiperElements = tempContainer.querySelectorAll('.swiper:not(.initialized)'); 5006 if (swiperElements.length) { 5007 console.log(`Found ${swiperElements.length} Swiper elements to prepare`); 5008 // Add any preparation code here - could add data attributes, etc. 5009 } 5010 5011 // Apply fade out transition 5012 $(sectionContainer).fadeOut(0, () => { 5013 // Replace the content after fade out 5014 sectionContainer.innerHTML = html; 5015 5016 // Execute the scripts after the content is in place 5017 this.executeScripts(scripts); 5018 5019 // Initialize swiper instances immediately to prevent layout flickering 5020 // this.initializeSwiperInstances(sectionContainer); 5021 5022 // Fade in the new content 5023 $(sectionContainer).fadeIn(0, () => { 5024 console.log(`Section ${sectionId} transition completed`); 5025 }); 5026 }); 5027 } 5028 5029 executeScripts(scripts) { 5030 console.log(`Processing ${scripts.length} scripts`); 5031 5032 window.initNiceSelect(); 5033 5034 if (typeof $.fn.niceSelect !== 'undefined') { 5035 $('select').niceSelect(); 5036 } 5037 // Categorize scripts by type 5038 const srcScripts = scripts.filter((script) => script.src); 5039 const inlineScripts = scripts.filter((script) => !script.src); 5040 5041 // First execute external scripts
5042 srcScripts.forEach((script, index) => { 5043 // Create a new script element 5044 const newScript = document.createElement('script'); 5045 5046 // Copy attributes 5047 Array.from(script.attributes).forEach((attr) => { 5048 newScript.setAttribute(attr.name, attr.value); 5049 }); 5050 5051 newScript.src = script.src; 5052 5053 // Append to document 5054 document.head.appendChild(newScript); 5055 console.log(`Loaded external script ${index + 1}/${srcScripts.length}`); 5056 }); 5057 5058 // Then handle inline scripts more carefully using direct script injection 5059 inlineScripts.forEach((script, index) => { 5060 const scriptContent = script.textContent; 5061 5062 // Skip scripts that would cause redeclaration errors 5063 if ( 5064 scriptContent.includes('class VariantSynchronizer') || 5065 scriptContent.includes('class SectionRenderer') || 5066 scriptContent.includes('const productVariants =') || 5067 scriptContent.includes('window.productVariants =') 5068 ) { 5069 console.log(`Skipping script that would cause redeclaration (${index + 1}/${inlineScripts.length})`); 5070 5071 // For productVariants, extract just the data and update the existing global 5072 if (scriptContent.includes('productVariants =') || scriptContent.includes('window.productVariants =')) { 5073 try { 5074 // Extract just the array part using a regex 5075 const match = scriptContent.match(/productVariants\s*=\s*(\[.*?\]);/s); 5076 if (match && match[1]) { 5077 const variantsData = JSON.parse(match[1]); 5078 window.productVariants = variantsData; 5079 console.log('Updated productVariants data from fetched content'); 5080 } 5081 } catch (e) { 5082 console.error('Error extracting variant data:', e); 5083 } 5084 } 5085 return; 5086 } 5087 5088 try { 5089 // Create a new script element and append it to the document 5090 // This approach executes modern JS syntax properly 5091 const newScript = document.createElement('script'); 5092 newScript.textContent = scriptContent; 5093 5094 // Copy any attributes from the original script 5095 Array.from(script.attributes).forEach((attr) => { 5096 if (attr.name !== 'src') { 5097 // Skip src as we're using textContent 5098 newScript.setAttribute(attr.name, attr.value); 5099 } 5100 }); 5101 5102 // Append to document body to execute 5103 document.body.appendChild(newScript); 5104 console.log(`Executed inline script ${index + 1}/${inlineScripts.length}`); 5105 } catch (error) { 5106 console.error(`Error executing inline script ${index + 1}/${inlineScripts.length}:`, error); 5107 } 5108 }); 5109 } 5110 5111 reinitializeComponents() { 5112 console.log('Reinitializing components'); 5113 window.variantReinitialize(); 5114 this.initializeProductGallery(); 5115 this.addRefillButtonClickHandlers(); 5116 // After SectionRenderer finishes updating sections and reinitializing components, 5117 // ensure PDP pricing refreshes based on the currently selected variant. 5118 document.addEventListener('variant:changed', function (e) { 5119 // Normal flow already updates pricing; this is here for completeness 5120 }); 5121 5122 // Hook into a safe point after reinitialize if available 5123 (function attachPricingRefresh() { 5124 const originalReinit = window.variantReinitialize; 5125 if (typeof originalReinit === 'function') { 5126 window.variantReinitialize = function () { 5127 originalReinit(); 5128 try { 5129 const idInput = document.querySelector('.product-main input[name="id"]'); 5130 const variantId = idInput && idInput.value; 5131 if ( 5132 variantId && 5133 window.variantSynchronizer && 5134 typeof window.variantSynchronizer.updatePricing === 'function' 5135 ) { 5136 // Re-apply pricing for current variant after prerender swap 5137 window.variantSynchronizer.updatePricing(null, variantId); 5138 } 5139 } catch (err) { 5140 console.warn('Pricing refresh after reinitialize failed', err); 5141 } 5142 }; 5143 } 5144 })(); 5145 } 5146 5147 initializeProductGallery() { 5148 console.log('Initializing product gallery and swiper'); 5149 5150 // Check if product gallery exists 5151 const productGalleries = document.querySelectorAll('.product-carou
5151sel__gallery'); 5152 5153 if (productGalleries.length > 0) { 5154 console.log(`Found ${productGalleries.length} product galleries to initialize`); 5155 5156 productGalleries.forEach((gallery) => { 5157 // Initialize gallery only if it's not already initialized 5158 if (!gallery.classList.contains('initialized')) { 5159 try { 5160 const mainWrapper = gallery.querySelector('.product-carousel__gallery-swiper .swiper-wrapper'); 5161 const thumbnailWrapper = gallery.querySelector('.product-carousel__thumbnails .swiper-wrapper'); 5162 5163 if (mainWrapper && thumbnailWrapper) { 5164 // Initialize thumbnail swiper 5165 const swiperThumbnails = new Swiper(gallery.querySelector('.product-carousel__thumbnails .swiper'), { 5166 slidesPerView: 'auto', 5167 direction: 'vertical', 5168 spaceBetween: 20.18, 5169 freeMode: true, 5170 centeredSlidesBounds: true, 5171 watchSlidesProgress: true, 5172 slideToClickedSlide: true, 5173 watchSlidesVisibility: true, 5174 mousewheel: true, 5175 }); 5176 5177 // Initialize main swiper with thumbs 5178 const swiper = new Swiper(gallery.querySelector('.product-carousel__gallery-swiper'), { 5179 slidesPerView: 'auto', 5180 spaceBetween: 12, 5181 thumbs: { 5182 swiper: swiperThumbnails, 5183 }, 5184 watchSlidesVisibility: true, 5185 watchSlidesProgress: true, 5186 }); 5187 5188 // Store references for later use 5189 gallery.swiper = swiper; 5190 gallery.swiperThumbnails = swiperThumbnails; 5191 5192 // Mark as initialized 5193 gallery.classList.add('initialized'); 5194 5195 console.log('Successfully initialized product gallery swiper'); 5196 5197 // Handle masking for thumbnails 5198 swiperThumbnails.on('setTranslate', function () { 5199 const thumbnailsEl = gallery.querySelector('.product-carousel__thumbnails'); 5200 5201 // Remove existing masks 5202 thumbnailsEl.classList.remove( 5203 'product-carousel__thumbnails--mask-left', 5204 'product-carousel__thumbnails--mask-right', 5205 'product-carousel__thumbnails--mask-both' 5206 ); 5207 5208 // Skip if swiper is locked or doesn't need scrolling 5209 if (this.isLocked || this.slides.length <= this.params.slidesPerView) { 5210 return; 5211 } 5212 5213 // Get current position and limits 5214 const currentTranslate = Math.abs(this.translate); 5215 const maxTranslate = Math.abs(this.maxTranslate()); 5216 const minTranslate = Math.abs(this.minTranslate()); 5217 5218 // Add masks based on scroll position 5219 if (currentTranslate > 20 && currentTranslate < maxTranslate - 20) { 5220 thumbnailsEl.classList.add('product-carousel__thumbnails--mask-both'); 5221 } else if (currentTranslate >= 20) { 5222 thumbnailsEl.classList.add('product-carousel__thumbnails--mask-left'); 5223 } else if (currentTranslate < maxTranslate - 20) { 5224 thumbnailsEl.classList.add('product-carousel__thumbnails--mask-right'); 5225 } 5226 }); 5227 5228 // Also add scroll event for more responsive updates 5229 swiperThumbnails.on('scroll', function () { 5230 this.emit('setTranslate'); 5231 }); 5232 swiperThumbnails.emit('setTranslate'); 5233 } 5234 } catch (error) { 5235 console.error('Error initializing product gallery:', error); 5236 } 5237 } else { 5238 console.log('Gallery already initialized, refreshing swiper instances'); 5239 // If already initialized, update swiper instances 5240 if (gallery.swiper) {
5241 gallery.swiper.update(); 5242 } 5243 if (gallery.swiperThumbnails) { 5244 gallery.swiperThumbnails.update(); 5245 } 5246 } 5247 }); 5248 } 5249 5250 if (document.querySelector('.related-products__wrapper')) { 5251 new Swiper('.related-products-swiper', { 5252 slidesPerView: 1.17, 5253 spaceBetween: 20, 5254 breakpoints: { 5255 768: { 5256 slidesPerView: 2, 5257 }, 5258 1024: { 5259 slidesPerView: 3, 5260 spaceBetween: 50, 5261 }, 5262 }, 5263 }); 5264 5265 new Swiper('.related-articles-swiper', { 5266 slidesPerView: 1.17, 5267 spaceBetween: 20, 5268 breakpoints: { 5269 768: { 5270 slidesPerView: 2.25, 5271 spaceBetween: 25, 5272 }, 5273 992: { 5274 slidesPerView: 3, 5275 spaceBetween: 0, 5276 }, 5277 }, 5278 }); 5279 } 5280 } 5281 5282 // New method to preload images from the fetched HTML content 5283 preloadImagesFromData(data) { 5284 console.log('Preloading images and initializing Swiper components'); 5285 const imagesToPreload = []; 5286 const thumbnailsToPreload = []; 5287 const componentsToPreInitialize = []; 5288 5289 // Create a temporary container to parse HTML and find images 5290 const tempContainer = document.createElement('div'); 5291 5292 // Extract all image URLs from all sections 5293 for (const [sectionId, html] of Object.entries(data)) { 5294 if (html === null) continue; 5295 5296 tempContainer.innerHTML = html; 5297 5298 // Identify product carousels and image containers 5299 const activeCarousels = tempContainer.querySelectorAll( 5300 '.product-carousel__gallery, .product-top__image-carousel, .swiper' 5301 ); 5302 5303 if (activeCarousels.length) { 5304 console.log(`Found ${activeCarousels.length} active carousels or swipers`); 5305 5306 activeCarousels.forEach((carousel) => { 5307 // Save reference for pre-initialization 5308 componentsToPreInitialize.push({ 5309 type: 'swiper', 5310 element: carousel, 5311 }); 5312 5313 // Find all images in carousels 5314 const carouselImages = carousel.querySelectorAll( 5315 'img[src], img[data-src], source[srcset], .swiper-slide img' 5316 ); 5317 carouselImages.forEach((img) => { 5318 // Get src, data-src, or srcset 5319 const imgUrl = 5320 img.getAttribute('src') || img.getAttribute('data-src') || img.getAttribute('srcset')?.split(' ')[0]; 5321 5322 if (imgUrl && !imgUrl.startsWith('data:')) { 5323 imagesToPreload.push(imgUrl); 5324 } 5325 }); 5326 }); 5327 5328 // Find thumbnails specifically 5329 const thumbnailElements = tempContainer.querySelectorAll( 5330 '.product-top__image-carousel-pager a img, [data-thumbnail]' 5331 ); 5332 5333 thumbnailElements.forEach((thumb) => { 5334 const thumbUrl = thumb.getAttribute('src') || thumb.getAttribute('data-thumbnail'); 5335 if (thumbUrl && !thumbUrl.startsWith('data:')) { 5336 thumbnailsToPreload.push(thumbUrl); 5337 imagesToPreload.push(thumbUrl); // Also add to main preload list 5338 } 5339 }); 5340 5341 // Look for thumbnail data attributes in slides 5342 const slidesWithThumbnails = tempContainer.querySelectorAll('[data-thumbnail]'); 5343 slidesWithThumbnails.forEach((slide) => { 5344 const thumbUrl = slide.getAttribute('data-thumbnail'); 5345 if (thumbUrl && !thumbUrl.startsWith('data:')) { 5346 thumbnailsToPreload.push(thumbUrl); 5347 imagesToPreload.push(thumbUrl); 5348 } 5349 }); 5350 } else { 5351 console.log('No active product carousels found in this section'); 5352 } 5353 } 5354 5355 // Clear the temp container 5356 tempContainer.innerHTML = ''; 5357 5358 // Remove duplicates 5359 const uniqueImages = [...new Set(imagesToPreload)]; 5360 const uniqueThumbnails = [...new Set(thumbnailsToPreload)]; 5361 5362 console.log( 5363 `Found ${uniqueImages.length} unique images to preload (including ${uniqueThumbnails.length} thumbnails)` 5364 ); 5365 5366 // Pre-initialize components if needed (we're not actually initializing here, 5367 // just preparing the DOM for faster initialization later) 5368 if (componentsToPreInitialize.length > 0) { 5369 console.log(`Preparing ${componentsToPreInitialize.length} components for faster initialization`); 5370 5371 // Any pre-initialization logic could go here 5372 // For example, adding data-preloaded="true" attributes 5373 } 5374 5375 // Give priority to thumbnails, as they're likely needed first for UI 5376 const priorityImages = [...uniqueThumbnails, ...uniqueImages.filter((img) => !uniqueThumbnails.includes(img))]; 5377 5378 // Return a promise that resolves when all images are loaded 5379 return new Promise((resolve) => { 5380 if (priorityImages.length === 0) { 5381 console.log('No images to preload, resolving immediately'); 5382 resolve(); 5383 return; 5384 } 5385 5386 let loadedCount = 0; 5387 const totalImages = priorityImages.length; 5388 5389 // Track loading progress 5390 const imageLoaded = () => { 5391 loadedCount++; 5392 if (loadedCount % 5 === 0 || loadedCount === totalImages) { 5393 console.log(`Preloaded ${loadedCount}/${totalImages} images`); 5394 } 5395 5396 if (loadedCount === totalImages) { 5397 console.log('All images preloaded successfully'); 5398 resolve(); 5399 } 5400 }; 5401 5402 // Preload each image
5403 priorityImages.forEach((imgUrl) => { 5404 const img = new Image(); 5405 img.onload = img.onerror = imageLoaded; // Count both successes and errors 5406 img.src = imgUrl; 5407 }); 5408 }); 5409 } 5410 5411 // NEW: Cache the initial page content 5412 cacheInitialContent() { 5413 const currentUrl = window.location.href; 5414 const urlObj = new URL(currentUrl); 5415 5416 // Cache with the pathname only (no variant) for the main product page 5417 const genericCacheKey = urlObj.pathname; // e.g., "/products/super-beauty" 5418 const specificCacheKey = this.createCacheKey(currentUrl); // e.g., "/products/super-beauty?variant=123" 5419 5420 const currentState = {}; 5421 5422 this.sectionIds.forEach((sectionId) => { 5423 let sectionContainer; 5424 if (sectionId?.includes('template--')) { 5425 sectionContainer = document.querySelector(`#shopify-section-${sectionId}`); 5426 } else { 5427 sectionContainer = document.querySelector(`[id$="__${sectionId}"]`); 5428 } 5429 5430 if (sectionContainer) { 5431 currentState[sectionId] = sectionContainer.innerHTML; 5432 } 5433 }); 5434 5435 // Cache with both keys - generic for fallback, specific for exact matches 5436 this.cache[genericCacheKey] = currentState; 5437 this.cache[specificCacheKey] = currentState; 5438 5439 console.log('Cached initial content for:', genericCacheKey, 'and', specificCacheKey); 5440 } 5441 } 5442 5443 initSectionRenderer(); 5444 5445 function initSectionRenderer() { 5446 console.log('Initializing SectionRenderer'); 5447 // Make sure we don't create multiple instances 5448 if (!window.sectionRenderer) { 5449 window.sectionRenderer = new SectionRenderer(); 5450 } 5451 } 5452</script>
5452 5453 5454 5455 5456 5457 <div class="quickview-modal"> 5458 5459 <div class="quickview-modal__wrapper"> 5460 <a href="#" class="quickview-modal__close"> 5461 <img src="//twoislandsco.com/cdn/shop/t/190/assets/icon-close.svg?v=92018993089306379161663583140" alt=""> 5462 </a> 5463 5464 <div class="quickview-modal__content"></div> 5465 </div> 5466 5467 <div class="quickview-modal__overlay"></div> 5468</div> 5469 5470
5470<script src='https://a.klaviyo.com/media/js/onsite/onsite.js'></script>
5470 5471
5471<script> 5472 var klaviyo = klaviyo || []; 5473 klaviyo.init({ 5474 account: 'XAfeBX', 5475 platform: 'shopify', 5476 }); 5477 klaviyo.enable('backinstock', { 5478 trigger: { 5479 product_page_text: 'Notify Me When Available', 5480 product_page_class: 'button--notify-me', 5481 product_page_text_align: 'center', 5482 product_page_margin: '0px', 5483 alternate_anchor: 'notify-me__anchor', 5484 replace_anchor: false, 5485 }, 5486 modal: { 5487 headline: '{product_name}', 5488 body_content: 'Register to receive a notification when this item comes back in stock.', 5489 email_field_label: 'Email', 5490 button_label: 'Notify me when available', 5491 subscription_success_label: "You're in! We'll let you know when it's back.", 5492 footer_content: '', 5493 additional_styles: ` 5494 @font-face { 5495 font-family: 'Untitled'; 5496 font-weight: 300; 5497 font-style: normal; 5498 font-display: swap; 5499 src: url('//twoislandsco.com/cdn/shop/t/190/assets/UntitledSansWeb-Light.woff2?v=78955935712693401391663583134') format('woff2'), 5500 url('//twoislandsco.com/cdn/shop/t/190/assets/UntitledSansWeb-Light.woff?v=96263677253976648141663583140') format('woff'); 5501 } 5502 5503 @font-face { 5504 font-family: 'Untitled'; 5505 font-weight: 400; 5506 font-style: normal; 5507 font-display: swap; 5508 src: url('//twoislandsco.com/cdn/shop/t/190/assets/UntitledSansWeb-Regular.woff2?v=115368787288639907701663583137') format('woff2'), 5509 url('//twoislandsco.com/cdn/shop/t/190/assets/UntitledSansWeb-Regular.woff?v=184376529559993301131663583140') format('woff'); 5510 } 5511 5512 @font-face { 5513 font-family: 'Untitled'; 5514 font-weight: 500; 5515 font-style: normal; 5516 font-display: swap; 5517 src: url('//twoislandsco.com/cdn/shop/t/190/assets/UntitledSansWeb-Medium.woff2?v=102851938872612187691663583137') format('woff2'), 5518 url('//twoislandsco.com/cdn/shop/t/190/assets/UntitledSansWeb-Medium.woff?v=25118967817362743121663583140') format('woff'); 5519 } 5520 #klaviyo-bis-modal .btn { 5521 font-weight: 400; 5522 } 5523 * { 5524 font-family: 'Untitled', sans-serif !important; 5525 }
5526 .modal-title { 5527 letter-spacing: -0.5px; 5528 font-weight: 300; 5529 } 5530 .form-control { 5531 box-shadow: none; 5532 border-radius: 0; 5533 } 5534 #container { 5535 border-radius: 0; 5536 } 5537 `, 5538 drop_background_color: '#000', 5539 background_color: '#fff', 5540 text_color: '#3E3E3D', 5541 button_text_color: '#fff', 5542 button_background_color: '#3E3E3D', 5543 close_button_color: '#3E3E3D', 5544 error_background_color: '#fcd6d7', 5545 error_text_color: '#C72E2F', 5546 success_background_color: '#3E3E3D', 5547 success_text_color: '#FFF', 5548 }, 5549 }); 5550 </script>
5550 5551 5552 5553 5554
5554<script> 5555 function myInit() { 5556 StampedFn.init({ apiKey: 'pubkey-2ShXvaI63Hg91Nl2t83OLUf699y8m4', sId: '110996' }); 5557 } 5558 </script>
5558 5559
5559<script async onload='myInit()' type='text/javascript' src='https://cdn1.stamped.io/files/widget.min.js'></script>
5559 5560 5561 <!-- Hotjar Tracking Code for https://twoislandsco.com/ --> 5562
5562<script> 5563 (function (h, o, t, j, a, r) { 5564 h.hj = 5565 h.hj || 5566 function () { 5567 (h.hj.q = h.hj.q || []).push(arguments); 5568 }; 5569 h._hjSettings = { hjid: 2041835, hjsv: 6 }; 5570 a = o.getElementsByTagName('head')[0]; 5571 r = o.createElement('script'); 5572 r.async = 1; 5573 r.src = t + h._hjSettings.hjid + j + h._hjSettings.hjsv; 5574 a.appendChild(r); 5575 })(window, document, 'https://static.hotjar.com/c/hotjar-', '.js?sv='); 5576 </script>
5576 5577 <style> select-point-redemption-method {display: contents !important;} </style> 5578<div id="shopify-block-ANlpXcEkrRTVtRURoW__7598822814027191868" class="shopify-block shopify-app-block">
5579<script id="roadmap-cart-data" type="application/json"> 5580{ 5581 "item_count": 0, 5582 "total_price": 0, 5583 "total_discount": 0, 5584 "original_total_price": 0, 5585 "items_subtotal_price": 0, 5586 "currency": "USD", 5587 "attributes": {}, 5588 "items": [ 5589 5590 ], 5591 "discount_applications": [ 5592 5593 ] 5594} 5595</script>
vendor: 1 bytes, line 5595
5595
5596<script> 5597const cartDataRaw = document.querySelector('#roadmap-cart-data')?.textContent; 5598 5599const RoadmapData = { 5600 GWPs: [], 5601 Customer: null, 5602 UnlockedPages: new Set(), 5603 CheckoutConfig: {}, 5604 Cart: cartDataRaw ? JSON.parse(cartDataRaw) : {}, 5605 PointRedemptionMethods: [], 5606 Localization: { 5607 country: "US", 5608 market: "international", 5609 }, 5610 Notifications: { 5611 gwpUpdated: 'Your cart has been updated to reflect the gift you are eligible for.', 5612 }, 5613 Settings: { 5614 salesAgentThemeIntegrations: false, 5615 }, 5616 isLoggedIn: false, 5617 justLoggedIn: false, 5618 justLoggedOut: false, 5619 ReviewSettings: { 5620 hideReviewsWhenZero: false, 5621 ratingClassName: "", 5622 }, 5623 StoreReviewSettings: { 5624 hideReviewsWhenZero: false, 5625 ratingClassName: "", 5626 }, 5627}; 5628 5629 5630 5631 5632 5633 5634RoadmapData.GWPs = [{"id":"456","config":{"bundle":[],"variants":[],"min_spend":"120","total_order_count":null,"total_amount_spent":null},"countries":[],"createdAt":"2025-01-08T20:43:55.951Z","customer_segment":"all_customers","customer_tags":[],"discount":null,"discountNodeId":"gid:\/\/shopify\/DiscountAutomaticNode\/1578646077640","endsAt":"2025-01-20T10:59:59.999Z","free_gift_ids":[{"id":"40662064660680","chosen":false,"quantity":1,"selected":false}],"membership_tiers":[],"method":"gwp","name":"Super Beauty Gift With Purchase","note":"Your Super Beauty Gift! ","shopId":"18666751","startsAt":"2025-01-13T11:00:00.000Z","status":"active","type":"min_spend","updatedAt":"2026-08-26T22:30:13.057Z"},{"id":"925","config":{"bundle":[],"variants":["42354113511624","44708147462344","42526861852872","44708645699784"],"min_spend":null,"collections":null,"usage_limit":1,"total_order_count":null,"total_amount_spent":null},"countries":[],"createdAt":"2025-10-13T03:25:25.347Z","customer_segment":"all_customers","customer_tags":[],"discount":null,"discountNodeId":"gid:\/\/shopify\/DiscountAutomaticNode\/1578646143176","endsAt":"2025-11-03T10:59:59.999Z","free_gift_ids":[{"id":"44776565833928","chosen":false,"quantity":1,"selected":false,"product_id":"8243190628552"}],"membership_tiers":[],"method":"gwp","name":"Antipodes GWP","note":"FREE ANTIPODES GIFT WORTH $64 WITH PURCHASE","shopId":"18666751","startsAt":"2025-10-12T11:00:00.000Z","status":"active","type":"product","updatedAt":"2026-08-26T22:30:14.130Z"}
5634,{"id":"1662","config":{"bundle":[],"variants":null,"min_spend":null,"collections":["59481129044"],"usage_limit":1,"combines_with":["productDiscounts","orderDiscounts","shippingDiscounts"],"total_order_count":null,"total_amount_spent":null},"countries":["NZ"],"createdAt":"2026-09-23T22:51:49.930Z","customer_segment":"customers_from_countries","customer_tags":[],"discount":null,"discountNodeId":"gid:\/\/shopify\/DiscountAutomaticNode\/1590742286536","endsAt":"9999-12-31T00:00:00.000Z","free_gift_ids":[{"id":"45221209604296","chosen":false,"quantity":1,"selected":false,"product_id":"8344361992392"}],"membership_tiers":[],"method":"gwp","name":"Free Raspberry Lemonade Salt Hydrateâ´ Sachet","note":"Free Raspberry Lemonade Salt Hydrateâ´ Sachet","shopId":"18666751","startsAt":"2026-09-22T12:00:00.000Z","status":"active","type":"product","updatedAt":"2026-09-23T23:53:36.708Z"}]; 5635 5636 5637 5638RoadmapData.Discounts = [{"id":"565","config":{"variants":["41542399819976","31459960193108","31459960258644","31692699533396","32531588677716","42524426993864","37500815245512","39339014160584","41520964763848","40662064169160","40662064660680","41283980230856","42354113511624","42526861852872","42527072452808","42541483884744","42551551787208","42851839246536","42851839312072","42851839377608","42924480200904","43923685605576","44113745281224","44113745313992","44499366543560","44569354404040"],"min_spend":"20.00","country_codes":["NZ"],"purchase_type":"subscription_any"},"countries":[],"createdAt":"2025-05-26T20:20:01.627Z","customer_segment":"all_customers","customer_tags":[],"discount":{"type":"percentage","value":"100"},"discountNodeId":"gid:\/\/shopify\/DiscountAutomaticNode\/1578646110408","endsAt":"9999-12-31T10:59:59.999Z","free_gift_ids":[],"membership_tiers":[],"method":"shipping","name":"Subscribe \u0026 Save","note":"Free shipping for subscription orders","shopId":"18666751","startsAt":"2025-05-26T12:00:00.000Z","status":"active","type":null,"updatedAt":"2026-08-26T22:30:13.728Z"},{"id":"1288","config":{"bundle":[],"variants":["44906375053512"],"cart_upsell":{"enabled":false},"collections":null,"purchase_type":"onetime","variant_groups":[],"show_compare_pricing":true,"tier_application_method":"flat"},"countries":[],"createdAt":"2026-01-19T19:49:26.496Z","customer_segment":"tagged_customers","customer_tags":["Nectar","Palmer","Sunseeker"],"discount":{"type":"percentage","tiers":[{"value":"20","maxQty":null}],"strategy":"single","apply_to_lowest_price_only":false},"discountNodeId":"gid:\/\/shopify\/DiscountAutomaticNode\/1578646175944","endsAt":"2026-01-25T10:59:59.999Z","free_gift_ids":[],"membership_tiers":[],"method":"product","name":"BANOFFEE LOYALTY LAUNCH 20% OFF","note":"BANOFFEELOYALTY20","shopId":"18666751","startsAt":"2026-01-19T11:00:00.000Z","status":"active","type":"product","updatedAt":"2026-08-26T22:30:14.737Z"}]; 5639 5640 5641 5642RoadmapData.FreeGifts = {}; 5643 5644 5645 RoadmapData.FreeGifts = { 5646 5647 5648 5649 5650 5651 5652 "45221209604296": { 5653 "id": "45221209604296", 5654 "title": 45221209604296, 5655 "available": true, 5656 }, 5657 5658 5659 5660 5661 5662 5663 5664 5665 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 5677 }; 5678 5679 5680 5681 RoadmapData.PointRedemptionMethods = [{"id":"45","method":"amount-discount","config":{"type":"fixed","discount":{"type":"fixed","value":"5"},"points_cost":100,"combines_with":["productDiscounts","shippingDiscounts"],"min_order_value":40},"status":"active","order":1},{"id":"46","method":"amount-discount","config":{"type":"fixed","discount":{"type":"fixed","value":"10"},"points_cost":200,"combines_with":["productDiscounts","shippingDiscounts"],"min_order_value":52},"status":"active","order":2},{"id":"54","method":"amount-discount","config":{"type":"fixed","discount":{"type":"fixed","value":"20"},"variants":[],"collections":[],"points_cost":400,"combines_with":["productDiscounts","shippingDiscounts"],"min_order_value":52,"product_selection_type":"all"},"status":"active","order":3},{"id":"55","method":"amount-discount","config":{"type":"fixed","discount":{"type":"fixed","value":"30"},"points_cost":600,"combines_with":["productDiscounts","shippingDiscounts"],"min_order_value":52},"status":"active","order":4},{"id":"56","method":"amount-discount","config":{"type":"fixed","discount":{"type":"fixed","value":"40"},"points_cost":800,"combines_with":["productDiscounts","shippingDiscounts"],"min_order_value":52},"status":"active","order":5}
5681,{"id":"167","method":"amount-discount","config":{"type":"fixed","discount":{"type":"fixed","value":"50"},"variants":[],"collections":[],"points_cost":1000,"combines_with":["productDiscounts","shippingDiscounts"],"min_order_value":52,"product_selection_type":"all"},"status":"active","order":6}]; 5682 5683 5684 5685RoadmapData.LoyaltySettings = { 5686 allowRedemptionOnSubscriptions: true, 5687}; 5688 5689 5690 5691 RoadmapData.CheckoutConfig = {"cartNotes":{"content":"","heading":""},"freeShippingUpsell":{"threshold":"NZ:75,AU:130","upsell_product_ids":[]}}; 5692 5693 5694 5695 RoadmapData.RecommendedProducts = []; 5696 5697 5698 5699window.RoadmapData = RoadmapData; 5700 5701const previousLoginState = localStorage.getItem('customerIsLoggedIn'); 5702 5703if (previousLoginState != null) { 5704 const isLoggedIn = RoadmapData.isLoggedIn; 5705 const wasLoggedIn = previousLoginState === 'true'; 5706 5707 if (wasLoggedIn === true && isLoggedIn === false) { 5708 RoadmapData.justLoggedOut = true; 5709 } else if (wasLoggedIn === false && isLoggedIn === true) { 5710 RoadmapData.justLoggedIn = true; 5711 } 5712} 5713 5714localStorage.setItem('customerIsLoggedIn', RoadmapData.isLoggedIn); 5715</script>
5715 5716 5717 5718 5719 5720 5721</div>
5721<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
5721 5722</body> 5723</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.