1<!doctype html> 2<html class="js" lang="en"> 3 <head> 4 <meta charset="utf-8"> 5 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 6 <meta name="viewport" content="width=device-width,initial-scale=1"> 7 <meta name="theme-color" content=""> 8 <link rel="canonical" href="https://wakewater.com/products/wakewater-custom-box"><link rel="icon" type="image/png" href="//wakewater.com/cdn/shop/files/WW_DROP_32x32_070a306e-f84e-4749-90e6-735f7ad5f8de.png?crop=center&height=32&v=1745524740&width=32"><link rel="preconnect" href="https://fonts.shopifycdn.com" crossorigin><title> 9 WakeWater Drink Mix Bundle Builder 10 – WakeWater Beverage Co</title> 11 12 13 <meta name="description" content="WakeWater delivers a clean electrolyte formula designed to help your body stay energized, hydrated, and ready for whatever comes next."> 14 15 16 17 18<meta property="og:site_name" content="WakeWater Beverage Co"> 19<meta property="og:url" content="https://wakewater.com/products/wakewater-custom-box"> 20<meta property="og:title" content="WakeWater Drink Mix Bundle Builder"> 21<meta property="og:type" content="product"> 22<meta property="og:description" content="WakeWater delivers a clean electrolyte formula designed to help your body stay energized, hydrated, and ready for whatever comes next."><meta property="og:image" content="http://wakewater.com/cdn/shop/files/0001-6751412741558405243.png?v=1790262005"> 23 <meta property="og:image:secure_url" content="https://wakewater.com/cdn/shop/files/0001-6751412741558405243.png?v=1790262005"> 24 <meta property="og:image:width" content="2000"> 25 <meta property="og:image:height" content="2000"><meta property="og:price:amount" content="39.00"> 26 <meta property="og:price:currency" content="USD"><meta name="twitter:card" content="summary_large_image"> 27<meta name="twitter:title" content="WakeWater Drink Mix Bundle Builder"> 28<meta name="twitter:description" content="WakeWater delivers a clean electrolyte formula designed to help your body stay energized, hydrated, and ready for whatever comes next."> 29 30 31
31<script src="//wakewater.com/cdn/shop/t/101/assets/constants.js?v=132983761750457495441789746274" defer="defer"></script>
31 32
32<script src="//wakewater.com/cdn/shop/t/101/assets/pubsub.js?v=158357773527763999511789746274" defer="defer"></script>
32 33
33<script src="//wakewater.com/cdn/shop/t/101/assets/global.js?v=152862011079830610291789746274" defer="defer"></script>
33 34
34<script src="//wakewater.com/cdn/shop/t/101/assets/details-disclosure.js?v=13653116266235556501789746274" defer="defer"></script>
34 35
35<script src="//wakewater.com/cdn/shop/t/101/assets/details-modal.js?v=25581673532751508451789746274" defer="defer"></script>
35 36
36<script src="//wakewater.com/cdn/shop/t/101/assets/search-form.js?v=133129549252120666541789746274" defer="defer"></script>
36<script src="//wakewater.com/cdn/shop/t/101/assets/animations.js?v=88693664871331136111789746274" defer="defer"></script>
36<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
36<meta name="google-site-verification" content="6rJmrfyP-uORkwETrkyqyds5CKPD1DD96yBeqK53W6Y"> 37<meta name="google-site-verification" content="I8TuwMHzf7gLzJW41PFztVznAakFjA1wplmTxaLkdd8"> 38<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/33388593287/digital_wallets/dialog"> 39<link rel="ucp" href="/.well-known/ucp" version="2026-08-25"><link rel="buy" href="/cart/50701411942686:1?ucp/version=2026-08-25&context/payment/0/handler=dev.shopify.shop_pay" payment="dev.shopify.shop_pay com.google.pay dev.shopify.card"><link rel="alternate" type="application/json+oembed" href="https://wakewater.com/products/wakewater-custom-box.oembed">
40<script async="async" src="/checkouts/internal/preloads.js?locale=en-US"></script>
40 41<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
42<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&shop_id=33388593287" crossorigin="anonymous"></script>
vendor: 1 bytes, line 42
42
43<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":33388593287,"countryCode":"CA","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/33388593287","merchantName":"WakeWater Beverage Co","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","discover","amex","interac","jcb"],"total":{"type":"pending","label":"WakeWater Beverage Co","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 43
43
44<script id="shopify-features" type="application/json">{"accessToken":"4b17262a11c79e7ae69d29cc9ec78ba9","betas":["rich-media-storefront-analytics"],"domain":"wakewater.com","predictiveSearch":true,"shopId":33388593287,"locale":"en"}</script>
vendor: 1 bytes, line 44
44
45<script>var Shopify = Shopify || {}; 46Shopify.shop = "wakewater.myshopify.com"; 47Shopify.locale = "en"; 48Shopify.currency = {"active":"USD","rate":"0.7154382"}; 49Shopify.country = "US"; 50Shopify.theme = {"name":"09-24-2026 - Live","id":206120255774,"schema_name":"Dawn","schema_version":"15.2.0","theme_store_id":887,"role":"main"}; 51Shopify.theme.handle = "null"; 52Shopify.theme.style = {"id":null,"handle":null}; 53Shopify.cdnHost = "wakewater.com/cdn"; 54Shopify.routes = Shopify.routes || {}; 55Shopify.routes.root = "/"; 56Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 57Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 58Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 59Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 59
59
60<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 60
60
61<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 61
61
62<script> 63 window.ShopifyPay = window.ShopifyPay || {}; 64 window.ShopifyPay.apiHost = "shop.app\/pay"; 65 window.ShopifyPay.redirectState = null; 66</script>
vendor: 1 bytes, line 66
66
67<script> 68 window.Shopify = window.Shopify || {}; 69 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 70 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 71 window.Shopify.SignInWithShop.eligible = true; 72</script>
vendor: 1 bytes, line 72
72
73<script id="shop-js-analytics" type="application/json">{"pageType":"product"}</script>
vendor: 1 bytes, line 73
73
74<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 74
74
75<script type="module"> 76 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 77 78 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 79 80</script>
vendor: 1 bytes, line 80
80
81<script> 82 window.Shopify = window.Shopify || {}; 83 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 84 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"]}; 85</script>
vendor: 1 bytes, line 85
85
86<script>(function() { 87 var isLoaded = false; 88 function asyncLoad() { 89 if (isLoaded) return; 90 isLoaded = true; 91 var urls = ["https:\/\/cdn.fera.ai\/js\/fera.placeholder.js?shop=wakewater.myshopify.com"]; 92 for (var i = 0; i < urls.length; i++) { 93 var s = document.createElement('script'); 94 s.type = 'text/javascript'; 95 s.async = true; 96 s.src = urls[i]; 97 var x = document.getElementsByTagName('script')[0]; 98 x.parentNode.insertBefore(s, x); 99 } 100 }; 101 if(window.attachEvent) { 102 window.attachEvent('onload', asyncLoad); 103 } else { 104 window.addEventListener('load', asyncLoad, false); 105 } 106})();</script>
vendor: 1 bytes, line 106
106
107<script id="__st">var __st={"a":33388593287,"offset":-14400,"reqid":"a230af61-8538-43f5-b56f-2a36017e268e-1791584106","pageurl":"wakewater.com\/products\/wakewater-custom-box","u":"1198bb632bc8","p":"product","rtyp":"product","rid":10040200691998};</script>
vendor: 1 bytes, line 107
107
108<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 108
108
109<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 109
109
110<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//wakewater.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 110
110
111<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 = "//wakewater.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>
111<script crossorigin="anonymous" defer="defer" src="//wakewater.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-f0e26bdf.js?v=20250812"></script>
vendor: 1 bytes, line 111
111
112<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 112
112
113<script> 114 window.Shopify = window.Shopify || {}; 115 window.Shopify.MCP = window.Shopify.MCP || {}; 116 window.Shopify.MCP.enabled = true; 117 window.Shopify.MCP.shop = "wakewater.myshopify.com"; 118 window.Shopify.MCP.mcpEndpoint = "https:\/\/wakewater.com\/api\/mcp"; 119 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"]}}]; 120</script>
vendor: 1 bytes, line 120
120
121<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("\/\/wakewater.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-f427de6a.js","sha256-ypGF+5vIq4Psw4WG7nsVtdd\/TCfsJWnrNuACdqLCElY=");})(); 122</script>
vendor: 1 bytes, line 122
122
123<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://wakewater.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 124</script>
vendor: 1 bytes, line 124
124
125<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 126 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); 127</script>
vendor: 1 bytes, line 127
127
128<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})}})); 129</script>
129 130<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://wakewater.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 131<style id="shopify-accelerated-checkout-cart"> 132 #shopify-buyer-consent { 133 margin-top: 1em; 134 display: inline-block; 135 width: 100%; 136} 137 138#shopify-buyer-consent.hidden { 139 display: none; 140} 141 142#shopify-subscription-policy-button { 143 background: none; 144 border: none; 145 padding: 0; 146 text-decoration: underline; 147 font-size: inherit; 148 cursor: pointer; 149} 150 151#shopify-subscription-policy-button::before { 152 box-shadow: none; 153} 154 155 </style>
156<script id="sections-script" data-sections="header" defer="defer" src="//wakewater.com/cdn/shop/t/101/compiled_assets/scripts.js?v=184325197989695213571789746274"></script>
vendor: 1 bytes, line 156
156
157<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
157 158 159 160 <style data-shopify> 161 @font-face { 162 font-family: Montserrat; 163 font-weight: 400; 164 font-style: normal; 165 font-display: swap; 166 src: url("//wakewater.com/cdn/fonts/montserrat/montserrat_n4.81949fa0ac9fd2021e16436151e8eaa539321637.woff2") format("woff2"), 167 url("//wakewater.com/cdn/fonts/montserrat/montserrat_n4.a6c632ca7b62da89c3594789ba828388aac693fe.woff") format("woff"); 168} 169 170 @font-face { 171 font-family: Montserrat; 172 font-weight: 700; 173 font-style: normal; 174 font-display: swap; 175 src: url("//wakewater.com/cdn/fonts/montserrat/montserrat_n7.3c434e22befd5c18a6b4afadb1e3d77c128c7939.woff2") format("woff2"), 176 url("//wakewater.com/cdn/fonts/montserrat/montserrat_n7.5d9fa6e2cae713c8fb539a9876489d86207fe957.woff") format("woff"); 177} 178 179 @font-face { 180 font-family: Montserrat; 181 font-weight: 400; 182 font-style: italic; 183 font-display: swap; 184 src: url("//wakewater.com/cdn/fonts/montserrat/montserrat_i4.5a4ea298b4789e064f62a29aafc18d41f09ae59b.woff2") format("woff2"), 185 url("//wakewater.com/cdn/fonts/montserrat/montserrat_i4.072b5869c5e0ed5b9d2021e4c2af132e16681ad2.woff") format("woff"); 186} 187 188 @font-face { 189 font-family: Montserrat; 190 font-weight: 700; 191 font-style: italic; 192 font-display: swap; 193 src: url("//wakewater.com/cdn/fonts/montserrat/montserrat_i7.a0d4a463df4f146567d871890ffb3c80408e7732.woff2") format("woff2"), 194 url("//wakewater.com/cdn/fonts/montserrat/montserrat_i7.f6ec9f2a0681acc6f8152c40921d2a4d2e1a2c78.woff") format("woff"); 195} 196 197 @font-face { 198 font-family: Montserrat; 199 font-weight: 400; 200 font-style: normal; 201 font-display: swap; 202 src: url("//wakewater.com/cdn/fonts/montserrat/montserrat_n4.81949fa0ac9fd2021e16436151e8eaa539321637.woff2") format("woff2"), 203 url("//wakewater.com/cdn/fonts/montserrat/montserrat_n4.a6c632ca7b62da89c3594789ba828388aac693fe.woff") format("woff"); 204} 205 206 207 208 :root, 209 .color-scheme-1 { 210 --color-background: 255,255,255; 211 212 --gradient-background: #ffffff; 213 214 215 216 217 --color-foreground: 18,18,18; 218 --color-background-contrast: 191,191,191; 219 --color-shadow: 18,18,18; 220 --color-button: 18,18,18; 221 --color-button-text: 255,255,255; 222 --color-secondary-button: 255,255,255; 223 --color-secondary-button-text: 18,18,18; 224 --color-link: 18,18,18; 225 --color-badge-foreground: 18,18,18; 226 --color-badge-background: 255,255,255; 227 --color-badge-border: 18,18,18; 228 --payment-terms-background-color: rgb(255 255 255); 229 } 230 231 232 .color-scheme-2 { 233 --color-background: 243,243,243; 234 235 --gradient-background: #f3f3f3; 236 237 238 239 240 --color-foreground: 18,18,18; 241 --color-background-contrast: 179,179,179; 242 --color-shadow: 18,18,18; 243 --color-button: 18,18,18; 244 --color-button-text: 243,243,243; 245 --color-secondary-button: 243,243,243; 246 --color-secondary-button-text: 18,18,18; 247 --color-link: 18,18,18; 248 --color-badge-foreground: 18,18,18; 249 --color-badge-background: 243,243,243; 250 --color-badge-border: 18,18,18; 251 --payment-terms-background-color: rgb(243 243 243); 252 } 253 254 255 .color-scheme-3 { 256 --color-background: 36,40,51; 257 258 --gradient-background: #242833; 259 260 261 262 263 --color-foreground: 255,255,255; 264 --color-background-contrast: 47,52,66; 265 --color-shadow: 18,18,18; 266 --color-button: 255,255,255; 267 --color-button-text: 0,0,0; 268 --color-secondary-button: 36,40,51; 269 --color-secondary-button-text: 255,255,255; 270 --color-link: 255,255,255; 271 --color-badge-foreground: 255,255,255; 272 --color-badge-background: 36,40,51; 273 --color-badge-border: 255,255,255; 274 --payment-terms-background-color: rgb(36 40 51); 275 } 276 277 278 .color-scheme-4 { 279 --color-background: 18,18,18; 280 281 --gradient-background: #121212; 282 283 284 285 286 --color-foreground: 255,255,255; 287 --color-background-contrast: 146,146,146; 288 --color-shadow: 18,18,18; 289 --color-button: 255,255,255; 290 --color-button-text: 18,18,18; 291 --color-secondary-button: 18,18,18; 292 --color-secondary-button-text: 255,255,255; 293 --color-link: 255,255,255; 294 --color-badge-foreground: 255,255,255; 295 --color-badge-background: 18,18,18; 296 --color-badge-border: 255,255,255; 297 --payment-terms-background-color: rgb(18 18 18); 298 } 299 300 301 .color-scheme-5 { 302 --color-background: 51,79,180; 303 304 --gradient-background: #334fb4; 305 306 307 308 309 --color-foreground: 255,255,255; 310 --color-background-contrast: 23,35,81; 311 --color-shadow: 18,18,18; 312 --color-button: 255,255,255; 313 --color-button-text: 51,79,180; 314 --color-secondary-button: 51,79,180; 315 --color-secondary-button-text: 255,255,255; 316 --color-link: 255,255,255; 317 --color-badge-foreground: 255,255,255; 318 --color-badge-background: 51,79,180; 319 --color-badge-border: 255,255,255; 320 --payment-terms-background-color: rgb(51 79 180); 321 } 322 323 324 body, .color-scheme-1, .color-scheme-2, .color-scheme-3, .color-scheme-4, .color-scheme-5 { 325 color: rgba(var(--color-foreground), 0.75); 326 background-color: rgb(var(--color-background)); 327 } 328 329 :root { 330 --font-body-family: Montserrat, sans-serif; 331 --font-body-style: normal; 332 --font-body-weight: 400; 333 --font-body-weight-bold: 700; 334 335 --font-heading-family: Montserrat, sans-serif; 336 --font-heading-style: normal; 337 --font-heading-weight: 400; 338 339 --font-body-scale: 1.0; 340 --font-heading-scale: 1.5; 341 342 --media-padding: px; 343 --media-border-opacity: 0.05; 344 --media-border-width: 1px; 345 --media-radius: 0px;
346 --media-shadow-opacity: 0.0; 347 --media-shadow-horizontal-offset: 0px; 348 --media-shadow-vertical-offset: 4px; 349 --media-shadow-blur-radius: 5px; 350 --media-shadow-visible: 0; 351 352 --page-width: 160rem; 353 --page-width-margin: 0rem; 354 355 --product-card-image-padding: 0.0rem; 356 --product-card-corner-radius: 0.0rem; 357 --product-card-text-alignment: left; 358 --product-card-border-width: 0.0rem; 359 --product-card-border-opacity: 0.1; 360 --product-card-shadow-opacity: 0.0; 361 --product-card-shadow-visible: 0; 362 --product-card-shadow-horizontal-offset: 0.0rem; 363 --product-card-shadow-vertical-offset: 0.4rem; 364 --product-card-shadow-blur-radius: 0.5rem; 365 366 --collection-card-image-padding: 1.0rem; 367 --collection-card-corner-radius: 0.0rem; 368 --collection-card-text-alignment: center; 369 --collection-card-border-width: 0.0rem; 370 --collection-card-border-opacity: 0.1; 371 --collection-card-shadow-opacity: 0.0; 372 --collection-card-shadow-visible: 0; 373 --collection-card-shadow-horizontal-offset: 0.0rem; 374 --collection-card-shadow-vertical-offset: 0.0rem; 375 --collection-card-shadow-blur-radius: 1.0rem; 376 377 --blog-card-image-padding: 0.0rem; 378 --blog-card-corner-radius: 0.0rem; 379 --blog-card-text-alignment: left; 380 --blog-card-border-width: 0.0rem; 381 --blog-card-border-opacity: 0.1; 382 --blog-card-shadow-opacity: 0.0; 383 --blog-card-shadow-visible: 0; 384 --blog-card-shadow-horizontal-offset: 0.0rem; 385 --blog-card-shadow-vertical-offset: 0.4rem; 386 --blog-card-shadow-blur-radius: 0.5rem; 387 388 --badge-corner-radius: 4.0rem; 389 390 --popup-border-width: 1px; 391 --popup-border-opacity: 0.1; 392 --popup-corner-radius: 0px; 393 --popup-shadow-opacity: 0.05; 394 --popup-shadow-horizontal-offset: 0px; 395 --popup-shadow-vertical-offset: 4px; 396 --popup-shadow-blur-radius: 5px; 397 398 --drawer-border-width: 1px; 399 --drawer-border-opacity: 0.1; 400 --drawer-shadow-opacity: 0.0; 401 --drawer-shadow-horizontal-offset: 0px; 402 --drawer-shadow-vertical-offset: 4px; 403 --drawer-shadow-blur-radius: 5px; 404 405 --spacing-sections-desktop: 0px; 406 --spacing-sections-mobile: 0px; 407 408 --grid-desktop-vertical-spacing: 8px; 409 --grid-desktop-horizontal-spacing: 8px; 410 --grid-mobile-vertical-spacing: 4px; 411 --grid-mobile-horizontal-spacing: 4px; 412 413 --text-boxes-border-opacity: 0.1; 414 --text-boxes-border-width: 0px; 415 --text-boxes-radius: 0px; 416 --text-boxes-shadow-opacity: 0.0; 417 --text-boxes-shadow-visible: 0; 418 --text-boxes-shadow-horizontal-offset: 0px; 419 --text-boxes-shadow-vertical-offset: 4px; 420 --text-boxes-shadow-blur-radius: 5px; 421 422 --buttons-radius: 0px; 423 --buttons-radius-outset: 0px; 424 --buttons-border-width: 0px; 425 --buttons-border-opacity: 1.0; 426 --buttons-shadow-opacity: 0.0; 427 --buttons-shadow-visible: 0; 428 --buttons-shadow-horizontal-offset: 0px; 429 --buttons-shadow-vertical-offset: 4px; 430 --buttons-shadow-blur-radius: 5px; 431 --buttons-border-offset: 0px; 432 433 --inputs-radius: 0px; 434 --inputs-border-width: 1px; 435 --inputs-border-opacity: 0.55; 436 --inputs-shadow-opacity: 0.0; 437 --inputs-shadow-horizontal-offset: 0px; 438 --inputs-margin-offset: 0px; 439 --inputs-shadow-vertical-offset: 4px; 440 --inputs-shadow-blur-radius: 5px; 441 --inputs-radius-outset: 0px; 442 443 --variant-pills-radius: 40px; 444 --variant-pills-border-width: 1px; 445 --variant-pills-border-opacity: 0.55; 446 --variant-pills-shadow-opacity: 0.0; 447 --variant-pills-shadow-horizontal-offset: 0px; 448 --variant-pills-shadow-vertical-offset: 4px; 449 --variant-pills-shadow-blur-radius: 5px; 450 } 451 452 *, 453 *::before, 454 *::after { 455 box-sizing: inherit; 456 } 457 458 html { 459 box-sizing: border-box; 460 font-size: calc(var(--font-body-scale) * 62.5%); 461 height: 100%; 462 } 463 464 body { 465 display: grid; 466 grid-template-rows: auto auto 1fr auto; 467 grid-template-columns: 100%; 468 min-height: 100%; 469 margin: 0; 470 font-size: 1.5rem; 471 letter-spacing: 0.06rem; 472 line-height: calc(1 + 0.8 / var(--font-body-scale)); 473 font-family: var(--font-body-family); 474 font-style: var(--font-body-style); 475 font-weight: var(--font-body-weight); 476 } 477 478 @media screen and (min-width: 750px) { 479 body { 480 font-size: 1.6rem; 481 } 482 } 483 </style> 484 485 <link href="//wakewater.com/cdn/shop/t/101/assets/base.css?v=139538531681688051961789746274" rel="stylesheet" type="text/css" media="all" /> 486 <link href="//wakewater.com/cdn/shop/t/101/assets/style.css?v=87453522270323633211789746274" rel="stylesheet" type="text/css" media="all" /> 487 <link href="//wakewater.com/cdn/shop/t/101/assets/custom.css?v=50727205398443721471790264470" rel="stylesheet" type="text/css" media="all" /> 488 <link rel="stylesheet" href="//wakewater.com/cdn/shop/t/101/assets/component-cart-items.css?v=123238115697927560811789746274" media="print" onload="this.media='all'"><link href="//wakewater.com/cdn/shop/t/101/assets/component-cart-drawer.css?v=112801333748515159671789746274" rel="stylesheet" type="text/css" media="all" /> 489 <link href="//wakewater.com/cdn/shop/t/101/assets/component-cart.css?v=164708765130180853531789746274" rel="stylesheet" type="text/css" media="all" /> 490 <link href="//wakewater.com/cdn/shop/t/101/assets/component-totals.css?v=15906652033866631521789746274" rel="stylesheet" type="text/css" media="all" /> 491 <link href="//wakewater.com/cdn/shop/t/101/assets/component-price.css?v=70172745017360139101789746274" rel="stylesheet" type="text/css" media="all" /> 492 <link href="//wakewater.com/cdn/shop/t/101/assets/component-discounts.css?v=152760482443307489271789746274" rel="stylesheet" type="text/css" media="all" /> 493 494 <link rel="preload" as="font" href="//wakewater.com/cdn/fonts/montserrat/montserrat_n4.81949fa0ac9fd2021e16436151e8eaa539321637.woff2" type="font/woff2" crossorigin> 495 496 497 <link rel="preload" as="font" href="//wakewater.com/cdn/fonts/montserrat/montserrat_n4.81949fa0ac9fd2021e16436151e8eaa539321637.woff2" type="font/woff2" crossorigin> 498 499<link href="//wakewater.com/cdn/shop/t/101/assets/component-localization-form.css?v=110954941680633051341789746274" rel="stylesheet" type="text/css" media="all" /> 500
500<script src="//wakewater.com/cdn/shop/t/101/assets/localization-form.js?v=144176611646395275351789746274" defer="defer"></script>
500<link 501 rel="stylesheet" 502 href="//wakewater.com/cdn/shop/t/101/assets/component-predictive-search.css?v=118923337488134913561789746274" 503 media="print" 504 onload="this.media='all'" 505 >
505<script> 506 if (Shopify.designMode) { 507 document.documentElement.classList.add('shopify-design-mode'); 508 } 509 </script>
509 510
510<script> 511 document.addEventListener("DOMContentLoaded", async () => { 512 let usdPrice = "$100.94"; 513 usdPrice = parseFloat(usdPrice.replace(/[^0-9.]/g, '')); 514 515 console.log("USD Price:", usdPrice); 516 const response = await fetch("https://api.exchangerate-api.com/v4/latest/USD"); 517 const data = await response.json(); 518 const cadRate = data.rates.CAD; 519 520 console.log("CAD Rate:", cadRate); 521 const cadPrice = (usdPrice * cadRate).toFixed(2); 522 523 console.log("Converted CAD Price:", cadPrice); 524 document.getElementById("cad-price").innerText = `CAD $${cadPrice}`; 525 526 }); 527 </script>
527 528 <meta name="facebook-domain-verification" content="fqvgb7zhh0b7wfmphe80942bv2mx9w" /> 529 <meta name="google-site-verification" content="AqAV7TxfNuivvRQYF1gxYN_71dbtCIbA0qKNDugs-Ig" /> 530 <!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 --> 531 532 533 534 535 536 537 538 539 540 541 542 543
543<script async src="https://static.klaviyo.com/onsite/js/RaLmFN/klaviyo.js?company_id=RaLmFN"></script>
543 544
544<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>
544 545 546 547
547<script id="viewed_product"> 548 if (item == null) { 549 var _learnq = _learnq || []; 550 551 var MetafieldReviews = null 552 var MetafieldYotpoRating = null 553 var MetafieldYotpoCount = null 554 var MetafieldLooxRating = null 555 var MetafieldLooxCount = null 556 var okendoProduct = null 557 var okendoProductReviewCount = null 558 var okendoProductReviewAverageValue = null 559 try { 560 // The following fields are used for Customer Hub recently viewed in order to add reviews. 561 // This information is not part of __kla_viewed. Instead, it is part of __kla_viewed_reviewed_items 562 MetafieldReviews = {"rating":{"scale_min":"1.0","scale_max":"5.0","value":"4.8"},"rating_count":893}; 563 MetafieldYotpoRating = null 564 MetafieldYotpoCount = null 565 MetafieldLooxRating = null 566 MetafieldLooxCount = null 567 568 okendoProduct = null 569 // If the okendo metafield is not legacy, it will error, which then requires the new json formatted data 570 if (okendoProduct && 'error' in okendoProduct) { 571 okendoProduct = null 572 } 573 okendoProductReviewCount = okendoProduct ? okendoProduct.reviewCount : null 574 okendoProductReviewAverageValue = okendoProduct ? okendoProduct.reviewAverageValue : null 575 } catch (error) { 576 console.error('Error in Klaviyo onsite reviews tracking:', error); 577 } 578 579 var item = { 580 Name: "WakeWater Drink Mix Bundle Builder", 581 ProductID: 10040200691998, 582 Categories: ["All Products","Best Sellers","Electrolytes Drink Mix"], 583 ImageURL: "https://wakewater.com/cdn/shop/files/0001-6751412741558405243_grande.png?v=1790262005", 584 URL: "https://wakewater.com/products/wakewater-custom-box", 585 Brand: "WakeWater Beverage Co", 586 Price: "$39.00", 587 Value: "39.00", 588 CompareAtPrice: "$0.00" 589 }; 590 _learnq.push(['track', 'Viewed Product', item]); 591 _learnq.push(['trackViewedItem', { 592 Title: item.Name, 593 ItemId: item.ProductID, 594 Categories: item.Categories, 595 ImageUrl: item.ImageURL, 596 Url: item.URL, 597 Metadata: { 598 Brand: item.Brand, 599 Price: item.Price, 600 Value: item.Value, 601 CompareAtPrice: item.CompareAtPrice 602 }, 603 metafields:{ 604 reviews: MetafieldReviews, 605 yotpo:{ 606 rating: MetafieldYotpoRating, 607 count: MetafieldYotpoCount, 608 }, 609 loox:{ 610 rating: MetafieldLooxRating, 611 count: MetafieldLooxCount, 612 }, 613 okendo: { 614 rating: okendoProductReviewAverageValue, 615 count: okendoProductReviewCount, 616 } 617 } 618 }]); 619 } 620 </script>
620 621 622 623 624 625 626
626<script> 627 window.klaviyoReviewsProductDesignMode = false 628 </script>
628 629 630 631 632 633 634 635 636 637 638<!-- END app block -->
638<script src="https://cdn.shopify.com/extensions/01a121d1-d283-7a22-80a5-13417653a28f/2026-10-09-17-58-23-UTC--15bccdf/assets/smile-loader.js" type="text/javascript" defer="defer"></script>
638 639<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
640<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: 33388593287,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "product"};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 640
640
641<script> 642 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 643</script>
vendor: 1 bytes, line 643
643
644<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}
644).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: 33388593287,storefrontBaseUrl: "https://wakewater.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://wakewater.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab"],webPixelsConfigList: [{"id":"3430121758","configuration":"{\"accountID\":\"RaLmFN\",\"webPixelConfig\":\"eyJlbmFibGVBZGRlZFRvQ2FydEV2ZW50cyI6IHRydWV9\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"c63c5b72c8d77be5f2d27d14c081da38","type":"APP","apiClientId":123074,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"743702814","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-FVFZPBVWBS\\\",\\\"AW-10792446549\\\",\\\"GT-TBZKGQT2\\\"],\\\"target_country\\\":\\\"CA\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-FVFZPBVWBS\\\",\\\"AW-10792446549\\\/dKdACMD1rp0cENXUnpoo\\\"]},{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-FVFZPBVWBS\\\",\\\"AW-10792446549\\\/2ZocCLr1rp0cENXUnpoo\\\"]},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-FVFZPBVWBS\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-FVFZPBVWBS\\\",\\\"AW-10792446549\\\/RCL6CLf1rp0cENXUnpoo\\\",\\\"MC-RKKFF36M73\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-FVFZPBVWBS\\\"},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-FVFZPBVWBS\\\",\\\"AW-10792446549\\\/VIGTCLH1rp0cENXUnpoo\\\",\\\"MC-RKKFF36M73\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-FVFZPBVWBS\\\",\\\"AW-10792446549\\\/7EN0CLT1rp0cENXUnpoo\\\",\\\"MC-RKKFF36M73\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-FVFZPBVWBS\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-FVFZPBVWBS\\\",\\\"AW-10792446549\\\/9tUXCMP1rp0cENXUnpoo\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-FVFZPBVWBS\\\",\\\"AW-10792446549\\\/CMX5CL31rp0cENXUnpoo\\\",\\\"AW-10792446549\\\/Jb_aCIPQgf0CENXUnpoo\\\"]},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-FVFZPBVWBS\\\"}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"a3321ca85cf5aaf6b57585fcd8d67b3a","type":"APP","apiClientId":1780363,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"700219678","configuration":"{\"pixelCode\":\"C403JJSVE57P75FJNNC0\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"22e92c2ad45662f435e4801458fb78cc","type":"APP","apiClientId":4383523,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"262603038","configuration":"{\"pixel_id\":\"226889579190591\",\"pixel_type\":\"facebook_pixel\",\"metaapp_system_user_token\":\"-\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"bd2f978c17a94bbb8a74d43de2165dc5","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]}
644,{"id":"165642526","configuration":"{\"tagID\":\"2613088603382\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"7ae565e198624b39e0856d352b9a6b4c","type":"APP","apiClientId":3009811,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"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":"WakeWater Beverage Co","paymentSettings":{"currencyCode":"CAD"},"myshopifyDomain":"wakewater.myshopify.com","countryCode":"CA","storefrontUrl":"https:\/\/wakewater.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[{"price":{"amount":39.0,"currencyCode":"USD"},"product":{"title":"WakeWater Drink Mix Bundle Builder","vendor":"WakeWater Beverage Co","id":"10040200691998","untranslatedTitle":"WakeWater Drink Mix Bundle Builder","url":"\/products\/wakewater-custom-box","type":"Electrolytes Powder"},"id":"50701411942686","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/0001-6751412741558405243.png?v=1790262005"},"sku":null,"title":"Default Title","untranslatedTitle":"Default Title"}],"products":[{"id":"10040200691998","handle":"wakewater-custom-box","isCollective":null,"title":"WakeWater Drink Mix Bundle Builder","type":"Electrolytes Powder","untranslatedTitle":"WakeWater Drink Mix Bundle Builder","url":"\/products\/wakewater-custom-box","vendor":"WakeWater Beverage Co","remoteShopId":null,"variants":[{"id":"50701411942686","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/0001-6751412741558405243.png?v=1790262005"},"price":{"amount":39.0,"currencyCode":"USD"},"sku":null,"title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"9634437398814","handle":"blue-raspberry-electrolytes","isCollective":null,"title":"Blue Raspberry Electrolytes","type":"Electrolytes Powder","untranslatedTitle":"Blue Raspberry Electrolytes","url":"\/products\/blue-raspberry-electrolytes","vendor":"WakeWater Beverage Co","remoteShopId":null,"variants":[{"id":"49346460418334","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/0001-4103295458018504275.png?v=1789670781"},"price":{"amount":16.0,"currencyCode":"USD"},"sku":"WW10-EP003","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"4659948617863","handle":"wakewater-grapefruit","isCollective":null,"title":"Grapefruit","type":"Sparkling Water RTD","untranslatedTitle":"Grapefruit","url":"\/products\/wakewater-grapefruit","vendor":"WakeWater Beverage Co","remoteShopId":null,"variants":[{"id":"32871645347975","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/Grapefruit24PKAmazon.jpg?v=1762457044"},"price":{"amount":40.0,"currencyCode":"USD"},"sku":"Grapefruit24","title":"24 x 355mL","untranslatedTitle":"24 x 355mL"}]},{"id":"7615283691754","handle":"wakewater-blackberry","isCollective":null,"title":"Blackberry","type":"Sparkling Water RTD","untranslatedTitle":"Blackberry","url":"\/products\/wakewater-blackberry","vendor":"WakeWater","remoteShopId":null,"variants":[{"id":"42577932452074","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/Blackberry24PKAmazon.jpg?v=1762457047"},"price":{"amount":40.0,"currencyCode":"USD"},"sku":"Blackberry24","title":"24 x 355mL","untranslatedTitle":"24 x 355mL"}]},{"id":"4664789762183","handle":"wakewater-lemon-1","isCollective":null,"title":"Lemon","type":"Sparkling Water RTD","untranslatedTitle":"Lemon","url":"\/products\/wakewater-lemon-1","vendor":"WakeWater Beverage Co","remoteShopId":null,"variants":[{"id":"32877033259143","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/Lemon24PKAmazon.jpg?v=1762457044"},"price":{"amount":40.0,"currencyCode":"USD"},"sku":"Lemon24","title":"24 x 355mL","untranslatedTitle":"24 x 355mL"}]},{"id":"9405372530974","handle":"wakewater-hydration-lemon-lime","isCollective":null,"title":"Lemon Lime Electrolytes","type":"Electrolytes Powder","untranslatedTitle":"Lemon Lime Electrolytes","url":"\/products\/wakewater-hydration-lemon-lime","vendor":"WakeWater Beverage Co","remoteShopId":null,"variants":[{"id":"48837175017758","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/0001-627640911967569485.png?v=1788383036"},"price":{"amount":16.0,"currencyCode":"USD"},"sku":"WW10-EP002","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"8325370872094","handle":"peach","isCollective":null,"title":"Peach","type":"Sparkling Water RTD","untranslatedTitle":"Peach","url":"\/products\/peach","vendor":"WakeWater","remoteShopId":null,"variants":[{"id":"45233157243166","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/Peach24PKAmazon_c128b8ce-6fa2-4a2e-bdca-8b2ec5910389.jpg?v=1762457054"},"price":{"amount":40.0,"currencyCode":"USD"},"sku":"Peach24","title":"24 x 355mL","untranslatedTitle":"24 x 355mL"}]},{"id":"9405375119646","handle":"hydration-fruit-punch","isCollective":null,"title":"Fruit Punch Electrolytes","type":"Electrolytes Powder","untranslatedTitle":"Fruit Punch Electrolytes","url":"\/products\/hydration-fruit-punch","vendor":"WakeWater Beverage Co","remoteShopId":null,"variants":[{"id":"48837186715934","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/0001-6238001679589199955.png?v=1789670869"},"price":{"amount":16.0,"currencyCode":"USD"},"sku":"WW10-EP001","title":"Default Title","untranslatedTitle":"Default Title"}]}
644,{"id":"9738293117214","handle":"watermelon-electrolytes","isCollective":null,"title":"Watermelon Electrolytes","type":"Electrolytes Powder","untranslatedTitle":"Watermelon Electrolytes","url":"\/products\/watermelon-electrolytes","vendor":"WakeWater Beverage Co","remoteShopId":null,"variants":[{"id":"49705777496350","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/0001-6963081219455238288.png?v=1789671522"},"price":{"amount":16.0,"currencyCode":"USD"},"sku":"WW10-EP004","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"7615281135850","handle":"wakewater-pineapple","isCollective":null,"title":"Pineapple","type":"Sparkling Water RTD","untranslatedTitle":"Pineapple","url":"\/products\/wakewater-pineapple","vendor":"WakeWater","remoteShopId":null,"variants":[{"id":"42577924718826","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/Pineapple24PKAmazon_b5144119-35e1-4b8b-8cd6-77ea4b88733b.jpg?v=1762457046"},"price":{"amount":40.0,"currencyCode":"USD"},"sku":"Pineapple24","title":"24 x 355mL","untranslatedTitle":"24 x 355mL"}]},{"id":"8491214242078","handle":"plus-raspberry-lemonade","isCollective":null,"title":"Raspberry Lemonade Energy+","type":"Energy+","untranslatedTitle":"Raspberry Lemonade Energy+","url":"\/products\/plus-raspberry-lemonade","vendor":"WakeWater","remoteShopId":null,"variants":[{"id":"45788978381086","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/Energy_RaspberryLemonadeListingImages.jpg?v=1785339083"},"price":{"amount":16.0,"currencyCode":"USD"},"sku":"WW10-PP001","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"9799704150302","handle":"grape-electrolytes","isCollective":null,"title":"Grape Electrolytes","type":"Electrolytes Powder","untranslatedTitle":"Grape Electrolytes","url":"\/products\/grape-electrolytes","vendor":"WakeWater Beverage Co","remoteShopId":null,"variants":[{"id":"49921875804446","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/0001-8869229763589574475.png?v=1789670939"},"price":{"amount":16.0,"currencyCode":"USD"},"sku":"WW10-EP005","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"8671006163230","handle":"cherry","isCollective":null,"title":"Cherry","type":"Sparkling Water RTD","untranslatedTitle":"Cherry","url":"\/products\/cherry","vendor":"WakeWater","remoteShopId":null,"variants":[{"id":"46781325312286","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/Cherry24PKAmazon.jpg?v=1762457216"},"price":{"amount":40.0,"currencyCode":"USD"},"sku":"Cherry24","title":"24 X 355mL","untranslatedTitle":"24 X 355mL"}]},{"id":"8491215552798","handle":"plus-cherry-lime","isCollective":null,"title":"Cherry Lime Energy+","type":"Energy+","untranslatedTitle":"Cherry Lime Energy+","url":"\/products\/plus-cherry-lime","vendor":"WakeWater","remoteShopId":null,"variants":[{"id":"45788979790110","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/CherryLimeAmazonListingImages.jpg?v=1785340041"},"price":{"amount":16.0,"currencyCode":"USD"},"sku":"WW10-PP002","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"9405401661726","handle":"peach-mango-plus","isCollective":null,"title":"Peach Mango Energy+","type":"Energy+","untranslatedTitle":"Peach Mango Energy+","url":"\/products\/peach-mango-plus","vendor":"WakeWater","remoteShopId":null,"variants":[{"id":"48837319328030","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/Energy_PeachMangoListingImages.jpg?v=1785339316"},"price":{"amount":16.0,"currencyCode":"USD"},"sku":"WW10-PP003","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"9799736131870","handle":"grapefruit-electrolytes","isCollective":null,"title":"Grapefruit Electrolytes","type":"Electrolytes Powder","untranslatedTitle":"Grapefruit Electrolytes","url":"\/products\/grapefruit-electrolytes","vendor":"WakeWater Beverage Co","remoteShopId":null,"variants":[{"id":"49921955397918","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/0001-3375964117904705648.png?v=1789671025"},"price":{"amount":16.0,"currencyCode":"USD"},"sku":"WW10-EP006","title":"Default Title","untranslatedTitle":"Default Title"}]}
644,{"id":"10023661240606","handle":"peach-rings-electrolytes-copy","isCollective":null,"title":"Peach Rings Electrolytes","type":"Electrolytes Powder","untranslatedTitle":"Peach Rings Electrolytes","url":"\/products\/peach-rings-electrolytes-copy","vendor":"WakeWater Beverage Co","remoteShopId":null,"variants":[{"id":"50653908500766","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/0001-3375964116827052291.png?v=1789671168"},"price":{"amount":16.0,"currencyCode":"USD"},"sku":"WW10-EP010","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"10023657373982","handle":"green-apple-electrolytes","isCollective":null,"title":"Green Apple Electrolytes","type":"Electrolytes Powder","untranslatedTitle":"Green Apple Electrolytes","url":"\/products\/green-apple-electrolytes","vendor":"WakeWater Beverage Co","remoteShopId":null,"variants":[{"id":"50653904044318","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/0001-4510871225557418250.png?v=1789671097"},"price":{"amount":16.0,"currencyCode":"USD"},"sku":"WW10-EP009","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"10117061902622","handle":"mango","isCollective":null,"title":"Mango","type":"Sparkling Water RTD","untranslatedTitle":"Mango","url":"\/products\/mango","vendor":"WakeWater","remoteShopId":null,"variants":[{"id":"51907094479134","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/2_657f60e2-0e10-4c55-8f3c-aae85ed70d1a.jpg?v=1781703708"},"price":{"amount":40.0,"currencyCode":"USD"},"sku":"Mango24","title":"24 x 355mL","untranslatedTitle":"24 x 355mL"}]},{"id":"10023592821022","handle":"blue-raspberry-electrolytes-tub","isCollective":null,"title":"Blue Raspberry Electrolytes Tub","type":"Electrolytes Powder","untranslatedTitle":"Blue Raspberry Electrolytes Tub","url":"\/products\/blue-raspberry-electrolytes-tub","vendor":"WakeWater Beverage Co","remoteShopId":null,"variants":[{"id":"50653747904798","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/1_45f5a6b5-7885-4071-bf02-f37e327f4935.png?v=1773840008"},"price":{"amount":29.0,"currencyCode":"USD"},"sku":"WW35-ET003","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"10023602127134","handle":"lemon-lime-electrolytes-tub","isCollective":null,"title":"Lemon Lime Electrolytes Tub","type":"Electrolytes Powder","untranslatedTitle":"Lemon Lime Electrolytes Tub","url":"\/products\/lemon-lime-electrolytes-tub","vendor":"WakeWater Beverage Co","remoteShopId":null,"variants":[{"id":"50653795189022","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/1_da1a0875-4f45-415b-a22a-90c9d3c9dc4b.png?v=1773840056"},"price":{"amount":29.0,"currencyCode":"USD"},"sku":"WW35-ET002","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"10023663796510","handle":"unflavoured-electrolytes","isCollective":null,"title":"Unflavoured Electrolytes","type":"Electrolytes Powder","untranslatedTitle":"Unflavoured Electrolytes","url":"\/products\/unflavoured-electrolytes","vendor":"WakeWater Beverage Co","remoteShopId":null,"variants":[{"id":"50653912039710","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/0001-7112825908438215247.png?v=1789671450"},"price":{"amount":16.0,"currencyCode":"USD"},"sku":"WW10-EP007","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"15793240277278","handle":"spicy-mango-electrolytes","isCollective":null,"title":"Spicy Mango Electrolytes","type":"Electrolytes Powder","untranslatedTitle":"Spicy Mango Electrolytes","url":"\/products\/spicy-mango-electrolytes","vendor":"WakeWater Beverage Co","remoteShopId":null,"variants":[{"id":"59507460899102","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/0001-7960628538833863698.png?v=1789671309"},"price":{"amount":16.0,"currencyCode":"USD"},"sku":"WW10-EP011","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"15793239327006","handle":"spicy-pineapple-electrolytes","isCollective":null,"title":"Spicy Pineapple Electrolytes","type":"Electrolytes Powder","untranslatedTitle":"Spicy Pineapple Electrolytes","url":"\/products\/spicy-pineapple-electrolytes","vendor":"WakeWater Beverage Co","remoteShopId":null,"variants":[{"id":"59507456246046","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/0001-8932280156243333466.png?v=1789671379"},"price":{"amount":16.0,"currencyCode":"USD"},"sku":"WW10-EP012","title":"Default Title","untranslatedTitle":"Default Title"}]}
644,{"id":"15793246273822","handle":"spicy-guava-electrolytes","isCollective":null,"title":"Spicy Guava Electrolytes","type":"Electrolytes Powder","untranslatedTitle":"Spicy Guava Electrolytes","url":"\/products\/spicy-guava-electrolytes","vendor":"WakeWater Beverage Co","remoteShopId":null,"variants":[{"id":"59507480658206","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/0001-3527960605377167929.png?v=1789671238"},"price":{"amount":16.0,"currencyCode":"USD"},"sku":"WW10-EP013","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"15837682172190","handle":"strawberry-kiwi-plus","isCollective":null,"title":"Strawberry Kiwi Energy+","type":"Energy+","untranslatedTitle":"Strawberry Kiwi Energy+","url":"\/products\/strawberry-kiwi-plus","vendor":"WakeWater","remoteShopId":null,"variants":[{"id":"59686725189918","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/2_9fbded89-43ea-47a5-9cfc-e48a09d34aaf.jpg?v=1785334041"},"price":{"amount":16.0,"currencyCode":"USD"},"sku":"WW10-PP004","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"9738296754462","handle":"wakewater-reusable-water-bottle","isCollective":null,"title":"The WakeWater Bottle","type":"Merch","untranslatedTitle":"The WakeWater Bottle","url":"\/products\/wakewater-reusable-water-bottle","vendor":"WakeWater Beverage Co","remoteShopId":null,"variants":[{"id":"49705785393438","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/3242025_2.png?v=1762458346"},"price":{"amount":15.0,"currencyCode":"USD"},"sku":"MERCH001","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"15845548425502","handle":"watermelon-fizz","isCollective":null,"title":"Watermelon Fizz","type":"Electrolyte RTD","untranslatedTitle":"Watermelon Fizz","url":"\/products\/watermelon-fizz","vendor":"WakeWater","remoteShopId":null,"variants":[{"id":"59724659622174","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/1_fe059d6c-237a-4b99-803e-863bbbd14af3.jpg?v=1787147854"},"price":{"amount":47.0,"currencyCode":"USD"},"sku":"WatermelonFizz24","title":"24 x 355mL","untranslatedTitle":"24 x 355mL"}]},{"id":"15845544100126","handle":"peach-fizz","isCollective":null,"title":"Peach Fizz","type":"Electrolyte RTD","untranslatedTitle":"Peach Fizz","url":"\/products\/peach-fizz","vendor":"WakeWater","remoteShopId":null,"variants":[{"id":"59724629377310","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/1_03d2ba14-8811-46b2-a8ae-337984b0a3a2.jpg?v=1787147687"},"price":{"amount":47.0,"currencyCode":"USD"},"sku":"PeachFizz24","title":"24 x 355mL","untranslatedTitle":"24 x 355mL"}]},{"id":"15845547933982","handle":"citrus-fizz","isCollective":null,"title":"Citrus Fizz","type":"Electrolyte RTD","untranslatedTitle":"Citrus Fizz","url":"\/products\/citrus-fizz","vendor":"WakeWater","remoteShopId":null,"variants":[{"id":"59724657492254","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/1_d4f480ef-b837-4aa4-b2c5-d3e70a0e7778.jpg?v=1787147725"},"price":{"amount":47.0,"currencyCode":"USD"},"sku":"CitrusFizz24","title":"24 x 355mL","untranslatedTitle":"24 x 355mL"}]},{"id":"10023623622942","handle":"salted-caramel-electrolytes","isCollective":null,"title":"Salted Caramel Electrolytes","type":"Electrolytes Powder","untranslatedTitle":"Salted Caramel Electrolytes","url":"\/products\/salted-caramel-electrolytes","vendor":"WakeWater Beverage Co","remoteShopId":null,"variants":[{"id":"50653858398494","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/0001-2185888624479851969.png?v=1790265151"},"price":{"amount":16.0,"currencyCode":"USD"},"sku":"WW10-EP008","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"15845548884254","handle":"grapefruit-fizz","isCollective":null,"title":"Grapefruit Fizz","type":"Electrolyte RTD","untranslatedTitle":"Grapefruit Fizz","url":"\/products\/grapefruit-fizz","vendor":"WakeWater","remoteShopId":null,"variants":[{"id":"59724662964510","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/1_f17cb945-156e-41a3-bdeb-886cbd35e5e0.jpg?v=1787147769"},"price":{"amount":47.0,"currencyCode":"USD"},"sku":"GrapefruitFizz24","title":"24 x 355mL","untranslatedTitle":"24 x 355mL"}]}
644,{"id":"10041087426846","handle":"caffeinated-sparkling-water-build-a-box","isCollective":null,"title":"WakeWater Sparkling Energy Bundle Builder","type":"Sparkling Water RTD","untranslatedTitle":"WakeWater Sparkling Energy Bundle Builder","url":"\/products\/caffeinated-sparkling-water-build-a-box","vendor":"WakeWater Beverage Co","remoteShopId":null,"variants":[{"id":"50703838576926","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/WebsiteImages-ProductPillarImages-Cans.jpg?v=1784641692"},"price":{"amount":36.0,"currencyCode":"USD"},"sku":null,"title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"9768479654174","handle":"electrolyte-countertop-display","isCollective":null,"title":"Electrolyte Countertop Display","type":"Electrolytes Powder","untranslatedTitle":"Electrolyte Countertop Display","url":"\/products\/electrolyte-countertop-display","vendor":"WakeWater Beverage Co","remoteShopId":null,"variants":[{"id":"49809174167838","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/ElectrolytesDisplay-NEW.jpg?v=1762458410"},"price":{"amount":11.0,"currencyCode":"USD"},"sku":"Display001","title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"10041931071774","handle":"wakewater-custom-box-electrolytes-individual-product-copy","isCollective":null,"title":"WakeWater Custom Box - Plus Individual Product","type":"Energy+","untranslatedTitle":"WakeWater Custom Box - Plus Individual Product","url":"\/products\/wakewater-custom-box-electrolytes-individual-product-copy","vendor":"WakeWater Beverage Co","remoteShopId":null,"variants":[{"id":"50706874859806","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/3.png?v=1726498954"},"price":{"amount":0.0,"currencyCode":"USD"},"sku":null,"title":"Default Title","untranslatedTitle":"Default Title"}]},{"id":"10040282382622","handle":"wakewater-custom-box-individual-product","isCollective":null,"title":"WakeWater Custom Box - Electrolytes Individual Product","type":"Electrolytes Powder","untranslatedTitle":"WakeWater Custom Box - Electrolytes Individual Product","url":"\/products\/wakewater-custom-box-individual-product","vendor":"WakeWater Beverage Co","remoteShopId":null,"variants":[{"id":"50701784285470","image":{"src":"\/\/wakewater.com\/cdn\/shop\/files\/Frame_2147224384.png?v=1774972474"},"price":{"amount":0.0,"currencyCode":"USD"},"sku":null,"title":"Default Title","untranslatedTitle":"Default Title"}]}],"purchasingCompany":null},},"https://wakewater.com/cdn","7ec887c8w14f9f074p854094e1m1370c602",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"206120255774","themeStoreId":"887","themePublished":"true","eventMetadataId":"73a28a82-33b5-45e7-9aae-d00e48daeffe","pageType":"product","resourceId":"10040200691998","shopId":"33388593287","storefrontBaseUrl":"https:\/\/wakewater.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\"]","isMerchantRequest":"false","hashVersion":"7ec887c8w14f9f074p854094e1m1370c602","publish":"custom","events":"[[\"page_viewed\",{}],[\"product_viewed\",{\"productVariant\":{\"price\":{\"amount\":39.0,\"currencyCode\":\"USD\"},\"product\":{\"title\":\"WakeWater Drink Mix Bundle Builder\",\"vendor\":\"WakeWater Beverage Co\",\"id\":\"10040200691998\",\"untranslatedTitle\":\"WakeWater Drink Mix Bundle Builder\",\"url\":\"\/products\/wakewater-custom-box\",\"type\":\"Electrolytes Powder\"},\"id\":\"50701411942686\",\"image\":{\"src\":\"\/\/wakewater.com\/cdn\/shop\/files\/0001-6751412741558405243.png?v=1790262005\"},\"sku\":null,\"title\":\"Default Title\",\"untranslatedTitle\":\"Default Title\"}}]]"});})();</script>
644<script> 645 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 646 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 647 window.ShopifyAnalytics.meta.currency = 'USD'; 648 var meta = {"product":{"id":10040200691998,"gid":"gid:\/\/shopify\/Product\/10040200691998","vendor":"WakeWater Beverage Co","type":"Electrolytes Powder","handle":"wakewater-custom-box","variants":[{"id":50701411942686,"price":3900,"name":"WakeWater Drink Mix Bundle Builder","public_title":null,"sku":null}],"remote":false},"page":{"pageType":"product","resourceType":"product","resourceId":10040200691998,"requestId":"a230af61-8538-43f5-b56f-2a36017e268e-1791584106"}}; 649 for (var attr in meta) { 650 window.ShopifyAnalytics.meta[attr] = meta[attr]; 651 } 652</script>
vendor: 1 bytes, line 652
652
653<script class="analytics"> 654 (function () { 655 var customDocumentWrite = function(content) { 656 var jquery = null; 657 658 if (window.jQuery) { 659 jquery = window.jQuery; 660 } else if (window.Checkout && window.Checkout.$) { 661 jquery = window.Checkout.$; 662 } 663 664 if (jquery) { 665 jquery('body').append(content); 666 } 667 }; 668 669 var hasLoggedConversion = function(token) { 670 if (token) { 671 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 672 } 673 return false; 674 } 675 676 var setCookieIfConversion = function(token) { 677 if (token) { 678 var twoMonthsFromNow = new Date(Date.now()); 679 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 680 681 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 682 } 683 } 684 685 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 686 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 687 if (trekkie.integrations) { 688 return; 689 } 690 trekkie.methods = [ 691 'identify', 692 'page', 693 'ready', 694 'track', 695 'trackForm', 696 'trackLink' 697 ]; 698 trekkie.factory = function(method) { 699 return function() { 700 var args = Array.prototype.slice.call(arguments); 701 args.unshift(method); 702 trekkie.push(args); 703 if (method == 'track' || method == 'page') { 704 var pageUrl; 705 try { 706 pageUrl = window.location.href; 707 } catch (e) {} 708 var pageReferrer; 709 try { 710 pageReferrer = document.referrer; 711 } catch (e) {} 712 try { 713 if (window.__TREKKIE_SHIM_QUEUE == null) { 714 window.__TREKKIE_SHIM_QUEUE = []; 715 } 716 window.__TREKKIE_SHIM_QUEUE.push({ 717 from: 'trekkie-stub', 718 method: method, 719 args: args.slice(1), 720 pageContext: { 721 url: pageUrl, 722 referrer: pageReferrer 723 } 724 }); 725 } catch (e) { 726 // no-op 727 } 728 } 729 return trekkie; 730 }; 731 }; 732 for (var i = 0; i < trekkie.methods.length; i++) { 733 var key = trekkie.methods[i]; 734 trekkie[key] = trekkie.factory(key); 735 } 736 trekkie.load = function(config) { 737 trekkie.config = config || {}; 738 trekkie.config.initialDocumentCookie = document.cookie; 739 var first = document.getElementsByTagName('script')[0]; 740var script = document.createElement('script'); 741script.type = 'text/javascript'; 742script.onerror = function(e) { 743 var scriptFallback = document.createElement('script'); 744 scriptFallback.type = 'text/javascript'; 745 scriptFallback.onerror = function(error) { 746 var Monorail = { 747 produce: function produce(monorailDomain, schemaId, payload) { 748 var currentMs = new Date().getTime(); 749 var event = { 750 schema_id: schemaId, 751 payload: payload, 752 metadata: { 753 event_created_at_ms: currentMs, 754 event_sent_at_ms: currentMs 755 } 756 }; 757 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 758 }, 759 sendRequest: function sendRequest(endpointUrl, payload) { 760 // Try the sendBeacon API 761 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 762 var blobData = new window.Blob([payload], { 763 type: 'text/plain' 764 }); 765 766 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 767 return true; 768 } // sendBeacon was not successful 769 770 } // XHR beacon 771 772 var xhr = new XMLHttpRequest(); 773 774 try { 775 xhr.open('POST', endpointUrl); 776 xhr.setRequestHeader('Content-Type', 'text/plain'); 777 xhr.send(payload); 778 } catch (e) { 779 console.log(e); 780 } 781 782 return false; 783 }, 784 isIos12: function isIos12() { 785 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 786 } 787 }; 788 Monorail.produce('monorail-edge.shopifysvc.com', 789 'trekkie_storefront_load_errors/1.1', 790 {shop_id: 33388593287, 791 theme_id: 206120255774, 792 app_name: "storefront", 793 context_url: window.location.href, 794 source_url: "//wakewater.com/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js"}); 795 796 }; 797 scriptFallback.async = true; 798 scriptFallback.src = '//wakewater.com/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js'; 799 first.parentNode.insertBefore(scriptFallback, first); 800}; 801script.async = true; 802script.src = '//wakewater.com/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js'; 803first.parentNode.insertBefore(script, first); 804 805 }; 806 trekkie.load( 807 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":33388593287,"isMerchantRequest":null,"themeId":206120255774,"themeCityHash":"7290609789936772974","contentLanguage":"en","currency":"USD","eventMetadataId":"73a28a82-33b5-45e7-9aae-d00e48daeffe"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 808 ); 809 810 var loaded = false;
811 trekkie.ready(function() { 812 if (loaded) return; 813 loaded = true; 814 815 window.ShopifyAnalytics.lib = window.trekkie; 816 817 var originalDocumentWrite = document.write; 818 document.write = customDocumentWrite; 819 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 820 document.write = originalDocumentWrite; 821 822 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 823 var token = match? match[1]: undefined; 824 if (!hasLoggedConversion(token)) { 825 setCookieIfConversion(token); 826 window.ShopifyAnalytics.lib.track("Viewed Product",{"currency":"USD","variantId":50701411942686,"productId":10040200691998,"productGid":"gid:\/\/shopify\/Product\/10040200691998","name":"WakeWater Drink Mix Bundle Builder","price":"39.00","sku":null,"brand":"WakeWater Beverage Co","variant":null,"category":"Electrolytes Powder","nonInteraction":true,"remote":false,"available":true},undefined,undefined,{"shopifyEmitted":true}); 827 } 828 }); 829 830 window.ShopifyAnalytics.lib.page(null,{"pageType":"product","resourceType":"product","resourceId":10040200691998,"requestId":"a230af61-8538-43f5-b56f-2a36017e268e-1791584106","shopifyEmitted":true}); 831 832 var eventsListenerScript = document.createElement('script'); 833 eventsListenerScript.async = true; 834 eventsListenerScript.src = "//wakewater.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 835 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 836})();</script>
836 837
837<script> 838 if (!window.ga || (window.ga && typeof window.ga !== 'function')) { 839 window.ga = function ga() { 840 (window.ga.q = window.ga.q || []).push(arguments); 841 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 842 window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"}); 843 } 844 console.error("Shopify's Google Analytics stub called with:", Array.from(arguments), "\nSee https://help.shopify.com/manual/promoting-marketing/pixels/pixel-migration#google for more information."); 845 }; 846 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 847 window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"}); 848 } 849 } 850</script>
vendor: 1 bytes, line 850
850
851<script 852 defer 853 src="https://wakewater.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.10.1.min.js" 854 data-application="storefront-renderer" 855 data-shop-id="33388593287" 856 data-render-region="gcp-us-central1" 857 data-page-type="product" 858 data-theme-instance-id="206120255774" 859 data-theme-name="Dawn" 860 data-theme-version="15.2.0" 861 data-monorail-region="shop_domain" 862 data-resource-timing-sampling-rate="10" 863 data-shs="true" 864 data-shs-beacon="true" 865 data-shs-export-with-fetch="true" 866 data-shs-logs-sample-rate="1" 867 data-shs-beacon-endpoint="https://wakewater.com/api/collect" 868></script>
868 869<meta name="shopify-y" content="8098f1d7-56ff-43d7-8b75-f181f2655f2e" data-expiration="1823141706000"><meta name="shopify-s" content="40ce058e-b040-4792-aa46-42d150bcb32d" data-expiration="1791585906000"> 870</head> 871 872 <body class="template_product template_New-bundle-July2026-V2 gradient"> 873 <a class="skip-to-content-link button visually-hidden" href="#MainContent"> 874 Skip to content 875 </a> 876 877<link href="//wakewater.com/cdn/shop/t/101/assets/quantity-popover.css?v=129068967981937647381789746274" rel="stylesheet" type="text/css" media="all" /> 878<link href="//wakewater.com/cdn/shop/t/101/assets/component-card.css?v=175446248128991669251789746274" rel="stylesheet" type="text/css" media="all" /> 879
880<script src="//wakewater.com/cdn/shop/t/101/assets/cart.js?v=53973376719736494311789746274" defer="defer"></script>
vendor: 1 bytes, line 880
880
881<script src="//wakewater.com/cdn/shop/t/101/assets/quantity-popover.js?v=987015268078116491789746274" defer="defer"></script>
881 882 883<style> 884 .drawer { 885 visibility: hidden; 886 } 887</style> 888 889<cart-drawer class="drawer is-empty"> 890 <div id="CartDrawer" class="cart-drawer"> 891 <div id="CartDrawer-Overlay" class="cart-drawer__overlay"></div> 892 <div 893 class="drawer__inner gradient color-scheme-1" 894 role="dialog" 895 aria-modal="true" 896 aria-label="Your cart" 897 tabindex="-1" 898 ><div class="drawer__inner-empty"> 899 <div class="cart-drawer__warnings center"> 900 <div class="cart-drawer__empty-content"> 901 <h2 class="cart__empty-text">Your cart is empty</h2> 902 <button 903 class="drawer__close" 904 type="button" 905 onclick="this.closest('cart-drawer').close()" 906 aria-label="Close" 907 > 908 <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg> 909</span> 910 </button> 911 <a href="/collections/all" class="button"> 912 Continue shopping 913 </a><p class="cart__login-title h3">Have an account?</p> 914 <p class="cart__login-paragraph"> 915 <a href="/account/login" class="link underlined-link">Log in</a> to check out faster. 916 </p></div> 917 </div></div><div class="drawer__header"> 918 <h2 class="drawer__heading">Your cart</h2> 919 <button 920 class="drawer__close" 921 type="button" 922 onclick="this.closest('cart-drawer').close()" 923 aria-label="Close" 924 > 925 <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg> 926</span> 927 </button> 928 </div> 929 <cart-drawer-items 930 931 class=" is-empty" 932 933 > 934 <form 935 action="/cart" 936 id="CartDrawer-Form" 937 class="cart__contents cart-drawer__form" 938 method="post" 939 > 940 <div id="CartDrawer-CartItems" class="drawer__contents js-contents"><p id="CartDrawer-LiveRegionText" class="visually-hidden" role="status"></p> 941 <p id="CartDrawer-LineItemStatus" class="visually-hidden" aria-hidden="true" role="status"> 942 Loading... 943 </p> 944 </div> 945 <div id="CartDrawer-CartErrors" role="alert"></div> 946 </form> 947 </cart-drawer-items> 948 <div class="drawer__footer"><!-- Start blocks --> 949 <!-- Subtotals --> 950 951 <div class="cart-drawer__footer" > 952 <div></div> 953 954 <div class="totals" role="status"> 955 <h2 class="totals__total">Estimated total</h2> 956 <p class="totals__total-value">$0.00 USD</p> 957 </div> 958 959 <small class="tax-note caption-large rte">Taxes, discounts and <a href="/policies/shipping-policy">shipping</a> calculated at checkout. 960</small> 961 </div> 962 963 <!-- CTAs --> 964 965 <div class="cart__ctas" > 966 <button 967 type="submit" 968 id="CartDrawer-Checkout" 969 class="cart__checkout-button button" 970 name="checkout" 971 form="CartDrawer-Form" 972 973 disabled 974 975 > 976 Check out 977 </button> 978 </div> 979 </div> 980 </div> 981 </div> 982</cart-drawer> 983<style> 984 .quick-add-overlay { 985 position: fixed; 986 inset: 0; 987 background-color: rgba(0, 0, 0, 0.5); 988 display: none; 989 z-index: 9998; 990 } 991 992 .quick-add-overlay.active { 993 display: block; 994 } 995 996 .quick-add-drawer { 997 position: fixed; 998 top: 0; 999 right: 0; 1000 bottom: 0; 1001 max-width: 40vw; 1002 height: 100%; 1003 background: white; 1004 transform: translateX(100%); 1005 transition: transform 0.3s ease, bottom 0.3s ease; 1006 z-index: 9999; 1007 box-shadow: -2px 0 10px rgba(0,0,0,0.1); 1008 display: flex; 1009 flex: 1; 1010 flex-direction: column; 1011 overflow-y: auto; 1012 } 1013 1014 .quick-add-drawer-inner { 1015 overflow-y: auto; 1016 padding: 1rem 1rem; 1017 flex: 1; 1018 max-height: 100vh; 1019 } 1020 1021 /* Add padding to bottom of scrollable content to avoid being hidden */ 1022 .quick-add-drawer-inner::after { 1023 content: ''; 1024 display: flex; 1025 height: 120px; 1026 } 1027 1028 .quick-add-drawer.active { 1029 transform: translateX(0); 1030 } 1031 1032 @media screen and (max-width: 749px) { 1033 .quick-add-drawer { 1034 max-width: 85vw; /* 75% of the viewport width */ 1035 } 1036 } 1037</style> 1038 1039 1040<div class="quick-add-overlay" id="QuickAddOverlay" onclick="closeQuickAddDrawer()"></div> 1041 1042<div class="quick-add-drawer" id="QuickAddDrawer"> 1043
1044 <div id="quick-add-content" class="quick-add-drawer-inner"> 1045 1046 1047 </div> 1048</div> 1049
1050<script> 1051 function openQuickAddDrawer(button) { 1052 const drawer = document.getElementById('QuickAddDrawer'); 1053 const overlay = document.getElementById('QuickAddOverlay'); 1054 1055 const productUrl = button.getAttribute('data-product-url'); 1056 console.log('ð Product URL:', productUrl); 1057 const drawerContent = document.getElementById('quick-add-content'); 1058 1059 // console.log('ð Product URL:', productUrl); 1060 // const handle = productUrl.split('/products/')[1].split('?')[0]; 1061 // console.log('ð Product Handle:', handle); 1062 1063 // fetch(`/products/${handle}.js`) 1064 fetch(productUrl) 1065 // .then(res => res.json()) 1066 .then(res => res.text()) 1067 .then(html => { 1068 drawerContent.innerHTML = html; // â Inject the HTML into the drawer 1069 1070 const productForm = drawerContent.querySelector('form[action="/cart/add"]'); 1071 1072 if (productForm) { 1073 1074 productForm.addEventListener('submit', function (e) { 1075 e.preventDefault() 1076 1077 const formData = new FormData(productForm); 1078 1079 fetch('/cart/add.js', { 1080 method: 'POST', 1081 headers: { 1082 'Accept': 'application/json' 1083 }, 1084 body: formData 1085 }) 1086 .then(res => res.json()) 1087 .then(data => { 1088 console.log('â Product added to cart:', data); 1089 closeQuickAddDrawer(); 1090 }).catch(err => { 1091 console.error('â Error adding to cart:', err); 1092 }); 1093 1094 }) 1095 } 1096 1097 1098 }) 1099 .catch(err => { 1100 console.error('â Failed to fetch product:', err); 1101 }); 1102 1103 drawer.classList.add('active'); 1104 overlay.classList.add('active'); 1105} 1106 1107function closeQuickAddDrawer() { 1108 document.getElementById('QuickAddDrawer').classList.remove('active'); 1109 document.getElementById('QuickAddOverlay').classList.remove('active'); 1110} 1111 1112document.addEventListener('DOMContentLoaded', function () { 1113 document.querySelectorAll('.custom-quick-add').forEach((btn) => { 1114 btn.addEventListener('click', (e) => { 1115 e.preventDefault(); 1116 openQuickAddDrawer(btn); 1117 }); 1118 }); 1119}); 1120</script>
1120 1121 1122 1123 <!-- BEGIN sections: header-group --> 1124<div id="shopify-section-sections--31712459620638__marquee" class="shopify-section shopify-section-group-header-group"><style> 1125 .section-sections--31712459620638__marquee.custom-marquee { 1126 display: flex; 1127 align-items: center; 1128 justify-content: center; 1129 position: relative; 1130 height: 36px; 1131 width: 100vw; 1132 max-width: 100%; 1133 overflow: hidden; 1134 background: #041a71; 1135 color: #ffffff; 1136 font-family: 'Montserrat', sans-serif; 1137 } 1138 .section-sections--31712459620638__marquee.custom-marquee a { 1139 color: #ffffff; 1140 text-decoration: none; 1141 } 1142 .section-sections--31712459620638__marquee.custom-marquee .track { 1143 position: relative; 1144 width: 100%; 1145 height: 100%; 1146 } 1147 .section-sections--31712459620638__marquee.custom-marquee .slide { 1148 position: absolute; 1149 top: 0; 1150 left: 0; 1151 width: 100%; 1152 height: 100%; 1153 display: flex; 1154 align-items: center; 1155 justify-content: center; 1156 text-align: center; 1157 overflow: hidden; 1158 padding: 0 20px; 1159 opacity: 0; 1160 transform: translateY(12px); 1161 transition: opacity 0.5s ease, transform 0.5s ease; 1162 pointer-events: none; 1163 } 1164 .section-sections--31712459620638__marquee.custom-marquee .slide.is-active { 1165 opacity: 1; 1166 transform: translateY(0); 1167 pointer-events: auto; 1168 } 1169 .section-sections--31712459620638__marquee.custom-marquee .slide-link, 1170 .section-sections--31712459620638__marquee.custom-marquee .content { 1171 display: inline-block; 1172 max-width: 100%; 1173 min-width: 0; 1174 overflow: hidden; 1175 white-space: nowrap; 1176 text-overflow: ellipsis; 1177 vertical-align: middle; 1178 } 1179 .section-sections--31712459620638__marquee.custom-marquee .content { 1180 font-family: 'Montserrat', sans-serif; 1181 font-weight: 600; 1182 font-size: 16px; 1183 } 1184 .section-sections--31712459620638__marquee.custom-marquee .slide a:hover { 1185 text-decoration: underline; 1186 } 1187 1188 @media screen and (max-width: 480px) { 1189 .section-sections--31712459620638__marquee.custom-marquee .slide { 1190 padding: 0 10px; 1191 } 1192 .section-sections--31712459620638__marquee.custom-marquee .content { 1193 font-size: max(13px, calc(16px - 3px)); 1194 } 1195 } 1196</style> 1197 1198<div 1199 class="section-sections--31712459620638__marquee custom-marquee" 1200 id="marquee-sections--31712459620638__marquee" 1201 role="region" 1202 1203><div class="track"><div class="slide is-active"><a href="/products/wakewater-custom-box" class="slide-link"><span class="content marquee-text">Free Shipping on All Orders $75+</span></a></div><div class="slide"><span class="content marquee-text">Free Shipping on Subscriptions</span></div><div class="slide"><a href="/products/wakewater-custom-box" class="slide-link"><span class="content marquee-text">Free Shipping on All Drink Mixes</span></a></div><div class="slide"><a href="/products/salted-caramel-electrolytes" class="slide-link"><span class="content marquee-text">NEW: Salted Caramel Electrolytes</span></a></div></div></div> 1204
1205<script> 1206 (function () { 1207 var root = document.getElementById('marquee-sections--31712459620638__marquee'); 1208 if (!root) return; 1209 var slides = root.querySelectorAll('.slide'); 1210 if (slides.length <= 1) return; 1211 1212 var current = 0; 1213 var duration = 4 * 1000; 1214 var timer; 1215 1216 function showSlide(index) { 1217 for (var i = 0; i < slides.length; i++) { 1218 slides[i].classList.toggle('is-active', i === index); 1219 } 1220 } 1221 1222 function next() { 1223 current = (current + 1) % slides.length; 1224 showSlide(current); 1225 } 1226 1227 function start() { 1228 timer = setInterval(next, duration); 1229 } 1230 1231 function stop() { 1232 clearInterval(timer); 1233 } 1234 1235 start(); 1236 root.addEventListener('mouseenter', stop); 1237 root.addEventListener('mouseleave', start); 1238 })(); 1239</script>
1239 1240 1241</div><div id="shopify-section-sections--31712459620638__header" class="shopify-section shopify-section-group-header-group section-header"><link rel="stylesheet" href="//wakewater.com/cdn/shop/t/101/assets/component-list-menu.css?v=151968516119678728991789746274" media="print" onload="this.media='all'"> 1242<link rel="stylesheet" href="//wakewater.com/cdn/shop/t/101/assets/component-search.css?v=165164710990765432851789746274" media="print" onload="this.media='all'"> 1243<link rel="stylesheet" href="//wakewater.com/cdn/shop/t/101/assets/component-menu-drawer.css?v=32501290880850586411789746274" media="print" onload="this.media='all'"> 1244<link rel="stylesheet" href="//wakewater.com/cdn/shop/t/101/assets/component-cart-notification.css?v=54116361853792938221789746274" media="print" onload="this.media='all'"><link rel="stylesheet" href="//wakewater.com/cdn/shop/t/101/assets/component-price.css?v=70172745017360139101789746274" media="print" onload="this.media='all'"><link rel="stylesheet" href="//wakewater.com/cdn/shop/t/101/assets/component-mega-menu.css?v=10110889665867715061789746274" media="print" onload="this.media='all'"><style> 1245 header-drawer { 1246 justify-self: start; 1247 margin-left: -1.2rem; 1248 }@media screen and (min-width: 990px) { 1249 header-drawer { 1250 display: none; 1251 } 1252 }.menu-drawer-container { 1253 display: flex; 1254 } 1255 1256 .list-menu { 1257 list-style: none; 1258 padding: 0; 1259 margin: 0; 1260 } 1261 1262 .list-menu--inline { 1263 display: inline-flex; 1264 flex-wrap: wrap; 1265 } 1266 1267 summary.list-menu__item { 1268 padding-right: 2.7rem; 1269 } 1270 1271 .list-menu__item { 1272 display: flex; 1273 align-items: center; 1274 line-height: calc(1 + 0.3 / var(--font-body-scale)); 1275 } 1276 1277 .list-menu__item--link { 1278 text-decoration: none; 1279 padding-bottom: 1rem; 1280 padding-top: 1rem; 1281 line-height: calc(1 + 0.8 / var(--font-body-scale)); 1282 } 1283 1284 @media screen and (min-width: 750px) { 1285 .list-menu__item--link { 1286 padding-bottom: 0.5rem; 1287 padding-top: 0.5rem; 1288 } 1289 } 1290</style><style data-shopify>.header { 1291 padding: 0px 3rem 0px 3rem; 1292 } 1293 1294 .section-header { 1295 position: sticky; /* This is for fixing a Safari z-index issue. PR #2147 */ 1296 margin-bottom: 0px; 1297 } 1298 1299 @media screen and (min-width: 750px) { 1300 .section-header { 1301 margin-bottom: 0px; 1302 } 1303 } 1304 1305 @media screen and (min-width: 990px) { 1306 .header { 1307 padding-top: 0px; 1308 padding-bottom: 0px; 1309 } 1310 }</style>
1310<script src="//wakewater.com/cdn/shop/t/101/assets/cart-notification.js?v=133508293167896966491789746274" defer="defer"></script>
1310<sticky-header data-sticky-type="on-scroll-up" class="header-wrapper color-scheme-1 gradient header-wrapper--border-bottom"><header class="header header--middle-center header--mobile-center container header--has-menu header--has-social header--has-account header--has-localizations"> 1311 1312<header-drawer data-breakpoint="tablet"> 1313 <details id="Details-menu-drawer-container" class="menu-drawer-container"> 1314 <summary 1315 class="header__icon header__icon--menu header__icon--summary link focus-inset" 1316 aria-label="Menu" 1317 > 1318 <span><svg class="icon icon-hamburger" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 1319<path d="M2.66626 7.99902H13.3315" stroke="#041A71" stroke-width="1.33316" stroke-linecap="round" stroke-linejoin="round"/> 1320<path d="M2.66626 3.99951H13.3315" stroke="#041A71" stroke-width="1.33316" stroke-linecap="round" stroke-linejoin="round"/> 1321<path d="M2.66626 11.9985H13.3315" stroke="#041A71" stroke-width="1.33316" stroke-linecap="round" stroke-linejoin="round"/> 1322</svg> 1323<svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg> 1324</span> 1325 </summary> 1326 <div id="menu-drawer" class="gradient menu-drawer motion-reduce color-scheme-5"> 1327 <div class="menu-drawer__inner-container"> 1328 <div class="menu-drawer__navigation-container"> 1329 <nav class="menu-drawer__navigation"> 1330 <ul class="menu-drawer__menu has-submenu list-menu" role="list"> 1331 <li class="menu-drawer__shop-now-item"> 1332 <a href="/collections" class="menu-drawer__shop-now-btn"> 1333 Shop Now 1334 </a> 1335 </li><li><a 1336 id="HeaderDrawer-bundle-save" 1337 href="/products/wakewater-custom-box" 1338 class="menu-drawer__menu-item list-menu__item link link--text focus-inset menu-drawer__menu-item--active" 1339 1340 aria-current="page" 1341 1342 > 1343 Bundle & Save 1344 </a></li><li><a 1345 id="HeaderDrawer-new-salted-caramel" 1346 href="/products/salted-caramel-electrolytes" 1347 class="menu-drawer__menu-item list-menu__item link link--text focus-inset" 1348 1349 > 1350 NEW: Salted Caramel 1351 </a></li></ul> 1352 </nav> 1353 <div class="menu-drawer__utility-links"><a 1354 href="/a/account/login" 1355 class="menu-drawer__account link focus-inset h5 medium-hide large-up-hide" 1356 rel="nofollow" 1357 ><account-icon><span class="svg-wrapper"><svg class="icon icon-account" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 1358<path d="M12.6666 14V12.6667C12.6666 11.9594 12.3857 11.2811 11.8856 10.781C11.3855 10.281 10.7072 10 9.99998 10H5.99998C5.29274 10 4.61446 10.281 4.11436 10.781C3.61426 11.2811 3.33331 11.9594 3.33331 12.6667V14" stroke="#364153" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/> 1359<path d="M7.99998 7.33333C9.47274 7.33333 10.6666 6.13943 10.6666 4.66667C10.6666 3.19391 9.47274 2 7.99998 2C6.52722 2 5.33331 3.19391 5.33331 4.66667C5.33331 6.13943 6.52722 7.33333 7.99998 7.33333Z" stroke="#364153" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/> 1360</svg> 1361</span></account-icon>Log in</a><div class="menu-drawer__localization header-localization"><localization-form><form method="post" action="/localization" id="HeaderCountryMobileForm" accept-charset="UTF-8" class="localization-form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/products/wakewater-custom-box" /><div> 1362 <h2 class="visually-hidden" id="HeaderCountryMobileLabel"> 1363 Country/region 1364 </h2> 1365 1366<div class="disclosure"> 1367 <button 1368 type="button" 1369 class="disclosure__button localization-form__select localization-selector link link--text caption-large" 1370 aria-expanded="false" 1371 aria-controls="HeaderCountryMobile-country-results" 1372 aria-describedby="HeaderCountryMobileLabel" 1373 > 1374 <span class="localization-btn-inner">
1375 <span class="localization-currency-code">USD</span> 1376 </span> 1377 <svg class="icon icon-caret" viewBox="0 0 10 6"><path fill="currentColor" fill-rule="evenodd" d="M9.354.646a.5.5 0 0 0-.708 0L5 4.293 1.354.646a.5.5 0 0 0-.708.708l4 4a.5.5 0 0 0 .708 0l4-4a.5.5 0 0 0 0-.708" clip-rule="evenodd"/></svg> 1378 1379 </button> 1380 <div class="disclosure__list-wrapper country-selector" hidden> 1381 <div class="country-filter country-filter--no-padding"> 1382 1383 <button 1384 class="country-selector__close-button button--small link" 1385 type="button" 1386 aria-label="Close" 1387 ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg> 1388</button> 1389 </div> 1390 <div id="sr-country-search-results" class="visually-hidden" aria-live="polite"></div> 1391 <div 1392 class="disclosure__list country-selector__list country-selector__list--with-multiple-currencies" 1393 id="HeaderCountryMobile-country-results" 1394 > 1395 1396 <ul role="list" class="list-unstyled countries"><li class="disclosure__item" tabindex="-1"> 1397 <a 1398 class="link link--text disclosure__link caption-large focus-inset" 1399 href="#" 1400 1401 data-value="CA" 1402 id="Canada" 1403 > 1404 <span 1405 1406 class="visibility-hidden" 1407 1408 ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-checkmark" viewBox="0 0 12 9"><path fill="currentColor" fill-rule="evenodd" d="M11.35.643a.5.5 0 0 1 .006.707l-6.77 6.886a.5.5 0 0 1-.719-.006L.638 4.845a.5.5 0 1 1 .724-.69l2.872 3.011 6.41-6.517a.5.5 0 0 1 .707-.006z" clip-rule="evenodd"/></svg> 1409</span> 1410 <span class="country">Canada</span> 1411 <span class="localization-form__currency motion-reduce"> 1412 CAD 1413 $</span> 1414 </a> 1415 </li><li class="disclosure__item" tabindex="-1"> 1416 <a 1417 class="link link--text disclosure__link caption-large focus-inset" 1418 href="#" 1419 1420 aria-current="true" 1421 1422 data-value="US" 1423 id="United States" 1424 > 1425 <span 1426 1427 ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-checkmark" viewBox="0 0 12 9"><path fill="currentColor" fill-rule="evenodd" d="M11.35.643a.5.5 0 0 1 .006.707l-6.77 6.886a.5.5 0 0 1-.719-.006L.638 4.845a.5.5 0 1 1 .724-.69l2.872 3.011 6.41-6.517a.5.5 0 0 1 .707-.006z" clip-rule="evenodd"/></svg> 1428</span> 1429 <span class="country">United States</span> 1430 <span class="localization-form__currency motion-reduce"> 1431 USD 1432 $</span> 1433 </a> 1434 </li></ul> 1435 </div> 1436 </div> 1437 <div class="country-selector__overlay"></div> 1438</div> 1439<input type="hidden" name="country_code" value="US"> 1440</div></form></localization-form> 1441 1442</div><ul class="list list-social list-unstyled" role="list"><li class="list-social__item"> 1443 <a href="https://www.instagram.com/wakewaterca/" class="list-social__link link"> 1444 <span class="svg-wrapper"><svg class="icon icon-instagram" width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 1445<path d="M14.1667 1.6665H5.83333C3.53214 1.6665 1.66666 3.53198 1.66666 5.83317V14.1665C1.66666 16.4677 3.53214 18.3332 5.83333 18.3332H14.1667C16.4679 18.3332 18.3333 16.4677 18.3333 14.1665V5.83317C18.3333 3.53198 16.4679 1.6665 14.1667 1.6665Z" stroke="white" stroke-width="1.66667" stroke-linecap="round" stroke-linejoin="round"></path> 1446<path d="M13.3333 9.47476C13.4362 10.1683 13.3177 10.8766 12.9948 11.4989C12.6719 12.1213 12.161 12.6259 11.5347 12.9412C10.9084 13.2564 10.1987 13.3661 9.50649 13.2547C8.81427 13.1433 8.1748 12.8165 7.67903 12.3207C7.18327 11.825 6.85645 11.1855 6.74506 10.4933C6.63367 9.80106 6.74339 9.09134 7.05861 8.46507C7.37383 7.83881 7.87849 7.32788 8.50082 7.00496C9.12316 6.68205 9.83146 6.56359 10.525 6.66643C11.2324 6.77133 11.8874 7.10098 12.3931 7.60669C12.8988 8.11239 13.2284 8.76733 13.3333 9.47476Z" stroke="white" stroke-width="1.66667" stroke-linecap="round" stroke-linejoin="round"></path> 1447<path d="M14.5833 5.4165H14.5917" stroke="white" stroke-width="1.66667" stroke-linecap="round" stroke-linejoin="round"></path> 1448</svg></span>
1449 <span class="visually-hidden">Instagram</span> 1450 </a> 1451 </li><li class="list-social__item"> 1452 <a href="https://www.tiktok.com/@wakewaterca" class="list-social__link link"> 1453 <span class="svg-wrapper"><svg class="icon icon-tiktok" viewBox="0 0 20 20"><path fill="currentColor" d="M10.511 1.705h2.74s-.157 3.51 3.795 3.768v2.711s-2.114.129-3.796-1.158l.028 5.606A5.073 5.073 0 1 1 8.213 7.56h.708v2.785a2.298 2.298 0 1 0 1.618 2.205z"/></svg> 1454</span> 1455 <span class="visually-hidden">TikTok</span> 1456 </a> 1457 </li></ul> 1458 </div> 1459 </div> 1460 </div> 1461 </div> 1462 </details> 1463</header-drawer> 1464 1465 1466<nav class="header__inline-menu"> 1467 <ul class="list-menu list-menu--inline" role="list"><li><a 1468 id="HeaderMenu-bundle-save" 1469 href="/products/wakewater-custom-box" 1470 class="header__menu-item list-menu__item link link--text focus-inset" 1471 1472 aria-current="page" 1473 1474 > 1475 <span 1476 class="header__active-menu-item" 1477 1478 >Bundle & Save</span> 1479 </a></li><li><a 1480 id="HeaderMenu-new-salted-caramel" 1481 href="/products/salted-caramel-electrolytes" 1482 class="header__menu-item list-menu__item link link--text focus-inset" 1483 1484 > 1485 <span 1486 >NEW: Salted Caramel</span> 1487 </a></li></ul> 1488</nav> 1489 1490<a href="/" class="header__heading-link link link--text focus-inset"><div class="header__heading-logo-wrapper"> 1491 1492 <img src="//wakewater.com/cdn/shop/files/WW_Logo_Horiz-Standard-HD.png?v=1739219985&width=600" alt="WakeWater Beverage Co" srcset="//wakewater.com/cdn/shop/files/WW_Logo_Horiz-Standard-HD.png?v=1739219985&width=290 290w, //wakewater.com/cdn/shop/files/WW_Logo_Horiz-Standard-HD.png?v=1739219985&width=435 435w, //wakewater.com/cdn/shop/files/WW_Logo_Horiz-Standard-HD.png?v=1739219985&width=580 580w" width="290" height="31.679799426934096" loading="eager" class="header__heading-logo" sizes="(min-width: 750px) 290px, 50vw"> 1493 </div></a><div class="header__icons header__icons--localization header-localization"> 1494 <div class="desktop-localization-wrapper"><localization-form class="small-hide medium-hide" data-prevent-hide><form method="post" action="/localization" id="HeaderCountryForm" accept-charset="UTF-8" class="localization-form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/products/wakewater-custom-box" /><div> 1495 <h2 class="visually-hidden" id="HeaderCountryLabel">Country/region</h2> 1496 1497<div class="disclosure"> 1498 <button 1499 type="button" 1500 class="disclosure__button localization-form__select localization-selector link link--text caption-large" 1501 aria-expanded="false" 1502 aria-controls="HeaderCountry-country-results" 1503 aria-describedby="HeaderCountryLabel" 1504 > 1505 <span class="localization-btn-inner"> 1506 <span class="localization-currency-code">USD</span> 1507 </span> 1508 <svg class="icon icon-caret" viewBox="0 0 10 6"><path fill="currentColor" fill-rule="evenodd" d="M9.354.646a.5.5 0 0 0-.708 0L5 4.293 1.354.646a.5.5 0 0 0-.708.708l4 4a.5.5 0 0 0 .708 0l4-4a.5.5 0 0 0 0-.708" clip-rule="evenodd"/></svg> 1509 1510 </button> 1511 <div class="disclosure__list-wrapper country-selector" hidden> 1512 <div class="country-filter country-filter--no-padding"> 1513 1514 <button 1515 class="country-selector__close-button button--small link" 1516 type="button" 1517 aria-label="Close" 1518 ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/>
1518</svg> 1519</button> 1520 </div> 1521 <div id="sr-country-search-results" class="visually-hidden" aria-live="polite"></div> 1522 <div 1523 class="disclosure__list country-selector__list country-selector__list--with-multiple-currencies" 1524 id="HeaderCountry-country-results" 1525 > 1526 1527 <ul role="list" class="list-unstyled countries"><li class="disclosure__item" tabindex="-1"> 1528 <a 1529 class="link link--text disclosure__link caption-large focus-inset" 1530 href="#" 1531 1532 data-value="CA" 1533 id="Canada" 1534 > 1535 <span 1536 1537 class="visibility-hidden" 1538 1539 ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-checkmark" viewBox="0 0 12 9"><path fill="currentColor" fill-rule="evenodd" d="M11.35.643a.5.5 0 0 1 .006.707l-6.77 6.886a.5.5 0 0 1-.719-.006L.638 4.845a.5.5 0 1 1 .724-.69l2.872 3.011 6.41-6.517a.5.5 0 0 1 .707-.006z" clip-rule="evenodd"/></svg> 1540</span> 1541 <span class="country">Canada</span> 1542 <span class="localization-form__currency motion-reduce"> 1543 CAD 1544 $</span> 1545 </a> 1546 </li><li class="disclosure__item" tabindex="-1"> 1547 <a 1548 class="link link--text disclosure__link caption-large focus-inset" 1549 href="#" 1550 1551 aria-current="true" 1552 1553 data-value="US" 1554 id="United States" 1555 > 1556 <span 1557 1558 ><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-checkmark" viewBox="0 0 12 9"><path fill="currentColor" fill-rule="evenodd" d="M11.35.643a.5.5 0 0 1 .006.707l-6.77 6.886a.5.5 0 0 1-.719-.006L.638 4.845a.5.5 0 1 1 .724-.69l2.872 3.011 6.41-6.517a.5.5 0 0 1 .707-.006z" clip-rule="evenodd"/></svg> 1559</span> 1560 <span class="country">United States</span> 1561 <span class="localization-form__currency motion-reduce"> 1562 USD 1563 $</span> 1564 </a> 1565 </li></ul> 1566 </div> 1567 </div> 1568 <div class="country-selector__overlay"></div> 1569</div> 1570<input type="hidden" name="country_code" value="US"> 1571</div></form></localization-form> 1572 1573</div> 1574 1575 1576<details-modal class="header__search"> 1577 <details> 1578 <summary 1579 class="header__icon header__icon--search header__icon--summary link focus-inset modal__toggle" 1580 aria-haspopup="dialog" 1581 aria-label="Search" 1582 > 1583 <span> 1584 <span class="svg-wrapper"><svg class="icon icon-search" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 1585<path d="M7.33333 12.6667C10.2789 12.6667 12.6667 10.2789 12.6667 7.33333C12.6667 4.38781 10.2789 2 7.33333 2C4.38781 2 2 4.38781 2 7.33333C2 10.2789 4.38781 12.6667 7.33333 12.6667Z" stroke="#364153" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/> 1586<path d="M14 14L11.1334 11.1333" stroke="#364153" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/> 1587</svg> 1588</span> 1589 <span class="svg-wrapper header__icon-close"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg> 1590</span> 1591 </span> 1592 </summary> 1593 <div 1594 class="search-modal modal__content gradient" 1595 role="dialog" 1596 aria-modal="true" 1597 aria-label="Search" 1598 > 1599 <div class="modal-overlay"></div> 1600 <div 1601 class="search-modal__content search-modal__content-bottom" 1602 tabindex="-1" 1603 ><predictive-search class="search-modal__form" data-loading-text="Loading..."><form action="/search" method="get" role="search" class="search search-modal__form"> 1604 <div class="field"> 1605 <input 1606 class="search__input field__input" 1607 id="Search-In-Modal" 1608 type="search" 1609 name="q" 1610 value="" 1611 placeholder="Search"role="combobox" 1612 aria-expanded="false" 1613 aria-owns="predictive-search-results" 1614 aria-controls="predictive-search-results" 1615 aria-haspopup="listbox"
1616 aria-autocomplete="list" 1617 autocorrect="off" 1618 autocomplete="off" 1619 autocapitalize="off" 1620 spellcheck="false"> 1621 <label class="field__label" for="Search-In-Modal">Search</label> 1622 <input type="hidden" name="options[prefix]" value="last"> 1623 <button 1624 type="reset" 1625 class="reset__button field__button hidden" 1626 aria-label="Clear search term" 1627 > 1628 <span class="svg-wrapper"><svg fill="none" stroke="currentColor" class="icon icon-close" viewBox="0 0 18 18"><circle cx="9" cy="9" r="8.5" stroke-opacity=".2"/><path stroke-linecap="round" stroke-linejoin="round" d="M11.83 11.83 6.172 6.17M6.229 11.885l5.544-5.77"/></svg> 1629</span> 1630 </button> 1631 <button class="search__button field__button" aria-label="Search"> 1632 <span class="svg-wrapper"><svg class="icon icon-search" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 1633<path d="M7.33333 12.6667C10.2789 12.6667 12.6667 10.2789 12.6667 7.33333C12.6667 4.38781 10.2789 2 7.33333 2C4.38781 2 2 4.38781 2 7.33333C2 10.2789 4.38781 12.6667 7.33333 12.6667Z" stroke="#364153" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/> 1634<path d="M14 14L11.1334 11.1333" stroke="#364153" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/> 1635</svg> 1636</span> 1637 </button> 1638 </div><div class="predictive-search predictive-search--header" tabindex="-1" data-predictive-search> 1639 1640<div class="predictive-search__loading-state"> 1641 <svg xmlns="http://www.w3.org/2000/svg" class="spinner" viewBox="0 0 66 66"><circle stroke-width="6" cx="33" cy="33" r="30" fill="none" class="path"/></svg> 1642 1643</div> 1644</div> 1645 1646 <span class="predictive-search-status visually-hidden" role="status" aria-hidden="true"></span></form></predictive-search><button 1647 type="button" 1648 class="search-modal__close-button modal__close-button link link--text focus-inset" 1649 aria-label="Close" 1650 > 1651 <span class="svg-wrapper"><svg xmlns="http://www.w3.org/2000/svg" fill="none" class="icon icon-close" viewBox="0 0 18 17"><path fill="currentColor" d="M.865 15.978a.5.5 0 0 0 .707.707l7.433-7.431 7.579 7.282a.501.501 0 0 0 .846-.37.5.5 0 0 0-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 1 0-.707-.708L8.991 7.853 1.413.573a.5.5 0 1 0-.693.72l7.563 7.268z"/></svg> 1652</span> 1653 </button> 1654 </div> 1655 </div> 1656 </details> 1657</details-modal> 1658 1659<a 1660 1661 href="/a/account/login" 1662 class="header__icon header__icon--account link focus-inset small-hide" 1663 rel="nofollow" 1664 ><account-icon><span class="svg-wrapper"><svg class="icon icon-account" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 1665<path d="M12.6666 14V12.6667C12.6666 11.9594 12.3857 11.2811 11.8856 10.781C11.3855 10.281 10.7072 10 9.99998 10H5.99998C5.29274 10 4.61446 10.281 4.11436 10.781C3.61426 11.2811 3.33331 11.9594 3.33331 12.6667V14" stroke="#364153" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/> 1666<path d="M7.99998 7.33333C9.47274 7.33333 10.6666 6.13943 10.6666 4.66667C10.6666 3.19391 9.47274 2 7.99998 2C6.52722 2 5.33331 3.19391 5.33331 4.66667C5.33331 6.13943 6.52722 7.33333 7.99998 7.33333Z" stroke="#364153" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/> 1667</svg> 1668</span></account-icon><span class="visually-hidden">Log in</span> 1669 </a><a href="/cart" class="header__icon header__icon--cart link focus-inset" id="cart-icon-bubble"> 1670 1671 <span class="svg-wrapper"> 1672<svg class="icon icon-cart-empty" width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 1673<path d="M5.33335 14.6667C5.70154 14.6667 6.00002 14.3682 6.00002 14C6.00002 13.6318 5.70154 13.3333 5.33335 13.3333C4.96516 13.3333 4.66669 13.6318 4.66669 14C4.66669 14.3682 4.96516 14.6667 5.33335 14.6667Z" stroke="#364153" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/> 1674<path d="M12.6667 14.6667C13.0349 14.6667 13.3333 14.3682 13.3333 14C13.3333 13.6318 13.0349 13.3333 12.6667 13.3333C12.2985 13.3333 12 13.6318 12 14C12 14.3682 12.2985 14.6667 12.6667 14.6667Z" stroke="#364153" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/> 1675<path d="M1.36664 1.36667H2.69997L4.4733 9.64667C4.53836 9.94991 4.70709 10.221 4.95045 10.4132C5.19381 10.6055 5.49658 10.7069 5.80664 10.7H12.3266C12.6301 10.6995 12.9243 10.5955 13.1607 10.4052C13.397 10.2149 13.5614 9.94969 13.6266 9.65334L14.7266 4.7H3.4133" stroke="#364153" stroke-width="1.33333" stroke-linecap="round" stroke-linejoin="round"/> 1676</svg> 1677</span> 1678
1679 <span class="visually-hidden">Cart</span></a> 1680 1681 1682 <div class="headerCustom_btn"> 1683 <a href="/collections">Shop Now</a> 1684 </div> 1685 1686 </div> 1687 </header> 1688</sticky-header> 1689
1690<script type="application/ld+json"> 1691 { 1692 "@context": "http://schema.org", 1693 "@type": "Organization", 1694 "name": "WakeWater Beverage Co", 1695 1696 "logo": "https:\/\/wakewater.com\/cdn\/shop\/files\/WW_Logo_Horiz-Standard-HD.png?v=1739219985\u0026width=500", 1697 1698 "sameAs": [ 1699 "", 1700 "", 1701 "", 1702 "https:\/\/www.instagram.com\/wakewaterca\/", 1703 "https:\/\/www.tiktok.com\/@wakewaterca", 1704 "", 1705 "", 1706 "", 1707 "" 1708 ], 1709 "url": "https:\/\/wakewater.com" 1710 } 1711</script>
1711 1712</div> 1713<!-- END sections: header-group --> 1714 1715 <main id="MainContent" class="content-for-layout focus-none" role="main" tabindex="-1"> 1716 <section id="shopify-section-template--31712463618334__pdp_hero_claim_main" class="shopify-section"><link rel="preconnect" href="https://fonts.googleapis.com"> 1717<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 1718<link href="https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700&display=swap" rel="stylesheet"> 1719 1720<div class="pdp-hero-claim section-template--31712463618334__pdp_hero_claim_main"> 1721 <div class="pdp-hero-claim__inner"> 1722 1723 1724 <h1 class="pdp-hero-claim__heading">HYDRATION THAT ACTUALLY KEEPS UP.</h1> 1725 1726 1727 </div> 1728</div> 1729 1730<style> 1731.section-template--31712463618334__pdp_hero_claim_main.pdp-hero-claim { 1732 background-color: #e7f3f9; 1733 padding-top: 8px; 1734 padding-bottom: 8px; 1735 text-align: center; 1736} 1737.section-template--31712463618334__pdp_hero_claim_main .pdp-hero-claim__inner { 1738 max-width: 1000px; 1739 margin: 0 auto; 1740 padding-left: 20px; 1741 padding-right: 20px; 1742} 1743.section-template--31712463618334__pdp_hero_claim_main .pdp-hero-claim__eyebrow { 1744 font-family: 'Montserrat', sans-serif; 1745 font-weight: 700; 1746 letter-spacing: 0.14em; 1747 text-transform: uppercase; 1748 font-size: 13px; 1749 color: #041a71; 1750 margin: 0 0 6px; 1751} 1752.section-template--31712463618334__pdp_hero_claim_main .pdp-hero-claim__heading { 1753 font-family: 'Acumin Condensed', 'Acumin Pro Condensed', 'Barlow Condensed', 'Oswald', sans-serif; 1754 font-weight: 700; 1755 text-transform: uppercase; 1756 line-height: 0.92; 1757 letter-spacing: 0.01em; 1758 color: #041a71; 1759 font-size: clamp(28px, 4.2vw, 52px); 1760 margin: 0; 1761 text-wrap: balance; 1762} 1763.section-template--31712463618334__pdp_hero_claim_main .pdp-hero-claim__subheading { 1764 font-family: 'Montserrat', sans-serif; 1765 font-weight: 500; 1766 font-size: clamp(14px, 1.3vw, 17px); 1767 line-height: 1.4; 1768 color: #5c6b8a; 1769 max-width: 600px; 1770 margin: 10px auto 0; 1771} 1772/* Hide the auto-injected Fera review summary inside this hero band only (keeps the buy-box rating intact) */ 1773.section-template--31712463618334__pdp_hero_claim_main .pdp-hero-claim__inner .fera-productReviewsSummary { 1774 display: none !important; 1775} 1776/* Tighten the gap between this hero headline and the product section below it. 1777 These rules only take effect on pages that include this hero section. */ 1778.wakewater-skio-bab, 1779.wakewater-buy-box { 1780 padding-top: 8px !important; 1781} 1782/* Step chips replace the How-it-works descriptor; hide it */ 1783.wakewater-skio-bab .skbab-descriptor { 1784 display: none !important; 1785} 1786/* Milestone dots must paint above the slider track (track is z-index 1) */ 1787.wakewater-skio-bab .skbab-tier { 1788 position: relative; 1789} 1790.wakewater-skio-bab .skbab-tier__dot { 1791 position: relative; 1792 z-index: 2; 1793} 1794/* Single divider between the flavour grid and Step 3 (the grid drew a second rule 60px above the label's) */ 1795.wakewater-skio-bab .skbab-products { 1796 border-bottom: none !important; 1797 padding-bottom: 4px !important; 1798 margin-bottom: 0 !important; 1799} 1800.wakewater-skio-bab .skbab-section-label { 1801 padding-top: 16px !important; 1802 margin-top: 8px !important; 1803 margin-bottom: 12px !important; 1804} 1805/* The plan label needs extra clearance for the floating SAVE badge on the subscribe card */ 1806.wakewater-skio-bab .skbab-section-label.ww-plan-label { 1807 margin-bottom: 22px !important; 1808} 1809/* ---- Singles buy box (wakewater-buy-box) parity with the bundle buy box ---- */ 1810.wakewater-buy-box { 1811 padding-bottom: 32px !important; 1812} 1813/* Grid blowout guard: on mobile the gallery is a nowrap flex carousel whose slides are 1814 each 100% wide. The grid columns default to min-width:auto, so the media track was 1815 sizing to the carousel's full content width (all slides side by side), pushing the 1816 section past its right padding and adding a horizontal scrollbar in the editor. 1817 min-width:0 lets both columns clamp to the grid, matching the bundle buy box. */ 1818.wakewater-buy-box .wbb-media, 1819.wakewater-buy-box .wbb-buybox { 1820 min-width: 0; 1821 max-width: 100%; 1822} 1823.wakewater-buy-box .wbb-mosaic { 1824 max-width: 100%; 1825} 1826/* Same guard one level down: 1fr tracks won't shrink below the flavour names' 1827 min-content width, so the grid was overflowing the buy box. minmax(0,1fr) 1828 clamps the tracks; break-word keeps long names inside the cards. */ 1829.wakewater-buy-box .wbb-card { 1830 min-width: 0; 1831} 1832.wakewater-buy-box .wbb-card__name { 1833 overflow-wrap: break-word; 1834} 1835@media screen and (max-width: 989px) { 1836 .wakewater-buy-box { 1837 overflow-x: clip; 1838 } 1839} 1840.wakewater-buy-box .wbb-vendor { 1841 display: none; 1842} 1843.wakewater-buy-box .wbb-fera-row [data-fera-container] { 1844 display: none !important; 1845} 1846.wakewater-buy-box .wbb-fera-label { 1847 font-size: 14px !important; 1848 font-weight: 600 !important; 1849 color: #041A71 !important; 1850 opacity: 1 !important; 1851 letter-spacing: 0 !important; 1852 line-height: 1.5 !important; 1853} 1854.wakewater-buy-box .wbb-save-badge { 1855 background: #EA2036 !important; 1856 color: #ffffff !important; 1857 font-size: 11px !important; 1858 padding: 4px 9px !important; 1859 letter-spacing: 0.05em; 1860} 1861.wakewater-buy-box .wbb-price-row { 1862 margin-bottom: 4px !important; 1863} 1864.wakewater-buy-box .wbb-per-stick { 1865 font-family: 'Montserrat', sans-serif; 1866 font-size: 14px; 1867 font-weight: 600; 1868 color: #041A71; 1869 opacity: 0.75; 1870 line-height: 1.3; 1871 margin: 0 0 2px; 1872} 1873/* When the free shipping line is absent (can pages), the per-unit line closes the price stack itself */ 1874.wakewater-buy-box .wbb-per-stick.wbb-per-stick--end { 1875 margin-bottom: 18px; 1876} 1877.wakewater-buy-box .ww-freeship { 1878 font-family: 'Montserrat', sans-serif; 1879 font-size: 13px; 1880 font-weight: 600; 1881 color: #041A71; 1882 text-align: left; 1883 line-height: 1.3; 1884 margin: 0 0 18px; 1885} 1886.wakewater-buy-box .ww-freeship svg { 1887 vertical-align: -2px; 1888 margin-right: 5px; 1889} 1890.wakewater-buy-box .wbb-faqs--buybox { 1891 margin-top: 14px !important; 1892 margin-bottom: 0 !important; 1893} 1894.wakewater-buy-box .wbb-tab-content { 1895 padding-bottom: 16px !important; 1896} 1897.wakewater-buy-box .wbb-section-label.ww-plan-label { 1898 margin-bottom: 22px !important; 1899} 1900/* Best Seller pill: clamped tracks, extra headroom above the grid, and a taller row gap 1901 so the pill never crowds the cards or the step chip above it */ 1902.wakewater-buy-box .wbb-flavours { 1903 grid-template-columns: repeat(3, minmax(0, 1fr)) !important; 1904 margin-top: 16px !important; 1905 row-gap: 14px !important; 1906} 1907.wakewater-buy-box .ww-bestseller { 1908 font-size: 8px; 1909 padding: 2px 7px; 1910 top: -10px; 1911} 1912/* Product-line dividers inside the flavour selector (inserted by script below). 1913 14px bottom clearance so Best Seller badges never touch the rule. */ 1914.ww-flavdiv { 1915 grid-column: 1 / -1; 1916 display: flex; 1917 align-items: baseline; 1918 gap: 10px; 1919 margin: 20px 0 14px; 1920 padding-bottom: 6px; 1921 border-bottom: 1px solid #dbe9f3; 1922 font-family: 'Montserrat', sans-serif; 1923 text-align: left; 1924} 1925.ww-flavdiv--elec { margin-top: 0; } 1926.ww-flavdiv__t { 1927 font-weight: 800; 1928 font-size: 13px; 1929 letter-spacing: 0.12em; 1930 text-transform: uppercase; 1931 color: #041A71; 1932} 1933.ww-flavdiv__s { 1934 font-weight: 600; 1935 font-size: 10.5px; 1936 letter-spacing: 0.06em; 1937 text-transform: uppercase; 1938 color: #7c92c9; 1939} 1940/* Compact retailer trust row inside the buy box (inserted by script below) */ 1941.ww-buybox-ret { 1942 display: flex; 1943 align-items: center; 1944 gap: 10px; 1945 margin: 2px 0 16px; 1946 padding: 8px 10px; 1947 background: rgba(255,255,255,0.65); 1948 border-radius: 9px; 1949 max-width: 430px; 1950 font-family: 'Montserrat', sans-serif; 1951} 1952.ww-buybox-ret__label { 1953 font-size: 9px; 1954 font-weight: 800; 1955 letter-spacing: 0.13em; 1956 text-transform: uppercase; 1957 color: #7c92c9; 1958 white-space: nowrap; 1959} 1960.ww-buybox-ret__logos { 1961 display: flex; 1962 align-items: center; 1963 gap: 12px; 1964 flex: 1; 1965 justify-content: space-between; 1966 min-width: 0; 1967} 1968.ww-buybox-ret__logos img { 1969 height: 15px; 1970 width: auto; 1971 max-width: 62px; 1972 object-fit: contain; 1973 filter: grayscale(1) brightness(0.55) sepia(1) hue-rotate(190deg) saturate(2.2); 1974 opacity: 0.85; 1975} 1976/* Costco's asset is a stacked lockup; give it extra height so its optical size matches the wordmarks */ 1977.ww-buybox-ret__logos img[alt="Costco"] { 1978 height: 25px; 1979} 1980/* Configurator step chips (inserted by script below) */ 1981.ww-step-head { margin: 6px 0 10px; } 1982.ww-step { 1983 display: flex; 1984 align-items: center; 1985 gap: 9px; 1986 width: 100%; 1987 font-family: 'Montserrat', sans-serif; 1988 text-transform: none; 1989 letter-spacing: 0; 1990} 1991.ww-step__n { 1992 width: 22px; 1993 height: 22px; 1994 border-radius: 50%; 1995 background: #041A71; 1996 color: #fff; 1997 font-weight: 800; 1998 font-size: 12px; 1999 display: flex; 2000 align-items: center; 2001 justify-content: center; 2002 flex-shrink: 0; 2003} 2004.ww-step__t { 2005 font-weight: 800; 2006 font-size: 13px; 2007 letter-spacing: 0.1em; 2008 text-transform: uppercase; 2009 color: #041A71; 2010} 2011.ww-step__s { 2012 font-weight: 600; 2013 font-size: 11px; 2014 letter-spacing: 0; 2015 text-transform: none; 2016 color: #7c92c9; 2017 margin-left: auto; 2018 text-align: right; 2019} 2020/* Best Seller flavour badges (inserted by script below) */ 2021.skbab-card, 2022.wbb-card { position: relative; } 2023.ww-bestseller { 2024 position: absolute; 2025 top: -8px; 2026 left: 50%; 2027 transform: translateX(-50%); 2028 background: #041A71; 2029 color: #fff; 2030 font-family: 'Montserrat', sans-serif; 2031 font-size: 8.5px; 2032 font-weight: 800; 2033 letter-spacing: 0.07em; 2034 text-transform: uppercase; 2035 padding: 3px 9px; 2036 border-radius: 10px; 2037 white-space: nowrap; 2038 z-index: 2; 2039} 2040@media (max-width: 749px) { 2041 .section-template--31712463618334__pdp_hero_claim_main.pdp-hero-claim { 2042 padding-top: 12px; 2043 padding-bottom: 8px; 2044 } 2045 .wakewater-skio-bab, 2046 .wakewater-buy-box { 2047 padding-top: 0 !important; 2048 } 2049 /* Trim the stack between the gallery image and the buy-box heading */ 2050 .skbab-layout { 2051 gap: 8px !important; 2052 } 2053 .skbab-mosaic__dots { 2054 margin-top: 8px !important; 2055 } 2056 .skbab-buybox { 2057 padding-top: 6px !important; 2058 } 2059 /* Retailer row: tighter gaps and slightly smaller logos so Sobeys isn't clipped on narrow viewports */ 2060 .ww-buybox-ret { 2061 gap: 8px; 2062 padding: 8px; 2063 } 2064 .ww-buybox-ret__logos { 2065 gap: 8px; 2066 } 2067 .ww-buybox-ret__logos img { 2068 height: 13px; 2069 max-width: 54px; 2070 } 2071 .ww-buybox-ret__logos img[alt="Costco"] { 2072 height: 21px; 2073 } 2074 /* Singles buy box mobile parity: no marketing copy between price and tabs, tight bottom */ 2075 .wakewater-buy-box { 2076 padding-bottom: 12px !important; 2077 } 2078 .wakewater-buy-box .wbb-description, 2079 .wakewater-buy-box .wbb-benefits { 2080 display: none !important; 2081 } 2082 /* Same image-to-title rhythm as the bundle: 8px layout gap, 8px dots, 6px buybox top. 2083 Side padding zeroed to match the bundle buy box (it was adding 20px of extra blue 2084 on each side at small widths). */ 2085 .wakewater-buy-box .wbb-layout { 2086 gap: 8px !important; 2087 } 2088 .wakewater-buy-box .wbb-mosaic__dots { 2089 margin-top: 8px !important; 2090 } 2091 .wakewater-buy-box .wbb-buybox { 2092 padding-top: 6px !important; 2093 padding-left: 0 !important; 2094 padding-right: 0 !important; 2095 } 2096 /* 4:3 crop on gallery slides so social proof and price land above the fold (same treatment as the bundle PDP) */ 2097 .wakewater-buy-box .wbb-mosaic__cell, 2098 .wakewater-buy-box .wbb-mosaic__cell--1 { 2099 aspect-ratio: 4 / 3 !important; 2100 display: flex; 2101 align-items: center; 2102 justify-content: center; 2103 } 2104 .wakewater-buy-box .wbb-mosaic__img { 2105 aspect-ratio: auto !important; 2106 width: 100% !important; 2107 height: 100% !important; 2108 object-fit: cover !important; 2109 object-position: center center; 2110 margin: 0 auto; 2111 } 2112} 2113@media screen and (min-width: 750px) { 2114 .wbb-mosaic.ww-galthumbs-on, .skbab-mosaic.ww-galthumbs-on { display: block !important; padding: 0 !important; } 2115 .ww-galthumbs-on .wbb-mosaic__cell, .ww-galthumbs-on .skbab-mosaic__cell { display: none !important; } 2116 .ww-galthumbs-on .wbb-mosaic__cell.ww-gal-current, .ww-galthumbs-on .skbab-mosaic__cell.ww-gal-current { display: block !important; aspect-ratio: 1; border-radius: 12px; overflow: hidden; background: #fff; } 2117 .ww-galthumbs-on ~ .wbb-mosaic__dots, .ww-galthumbs-on ~ .skbab-mosaic__dots { display: none !important; } 2118 .ww-thumbstrip { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; } 2119 .ww-thumbstrip__btn { width: 56px; border: 2px solid transparent; border-radius: 8px; padding: 0; background: #fff; cursor: pointer; overflow: hidden; } 2120 .ww-thumbstrip__btn img { width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; display: block; } 2121 .ww-thumbstrip__btn.is-active { border-color: #041A71; } 2122} 2123@media screen and (max-width: 749px) { .ww-thumbstrip { display: none !important; } } 2124</style> 2125
2126<script> 2127(function(){ 2128 function skbabIsCans(){ 2129 var l = document.querySelector('.skbab-tier__label'); 2130 return !!(l && /can/i.test(l.textContent || '')); 2131 } 2132 function mk(t, s, cls){ 2133 var el = document.createElement('div'); 2134 el.className = 'ww-flavdiv ' + cls; 2135 el.innerHTML = '<span class="ww-flavdiv__t">' + t + '</span><span class="ww-flavdiv__s">' + s + '</span>'; 2136 return el; 2137 } 2138 function ensureDividers(){ 2139 if (skbabIsCans()) return; 2140 var grids = document.querySelectorAll('.skbab-products'); 2141 for (var g = 0; g < grids.length; g++) { 2142 var grid = grids[g]; 2143 var cards = [].slice.call(grid.querySelectorAll('.skbab-card')); 2144 if (!cards.length) continue; 2145 if (!grid.querySelector('.ww-flavdiv--elec')) { 2146 grid.insertBefore(mk('Electrolytes', 'Caffeine Free', 'ww-flavdiv--elec'), cards[0]); 2147 } 2148 var firstEnergy = null; 2149 for (var i = 0; i < cards.length; i++) { 2150 var n = cards[i].querySelector('.skbab-card__name'); 2151 if (n && (n.textContent || '').toUpperCase().indexOf('ENERGY') > -1) { firstEnergy = cards[i]; break; } 2152 } 2153 if (firstEnergy && !grid.querySelector('.ww-flavdiv--energy')) { 2154 grid.insertBefore(mk('Energy+', 'With Caffeine', 'ww-flavdiv--energy'), firstEnergy); 2155 } 2156 } 2157 } 2158 var RET_LOGOS = [ 2159 ['Costco', 'https://cdn.shopify.com/s/files/1/0333/8859/3287/files/Costco-Wholesale-Logo_78ca8849-21f6-475b-b7d7-83b9e420f02b.png'], 2160 ['Walmart', 'https://cdn.shopify.com/s/files/1/0333/8859/3287/files/Walmart_logo__2025__Alt__svg_8832cf0b-1537-46d2-ae50-7665b752c904.webp'], 2161 ['Real Canadian Superstore', 'https://cdn.shopify.com/s/files/1/0333/8859/3287/files/Real_Canadian_Superstore_logo_3c5c96f5-fbc2-4f33-bca4-0d64ff8b79be.png'], 2162 ['Sobeys', 'https://cdn.shopify.com/s/files/1/0333/8859/3287/files/Sobeys_logo_svg_ca0b9cef-4eb2-4912-8e5a-d879cf36c736.webp'] 2163 ]; 2164 var wbbCfgCache; 2165 function wbbCfg(){ 2166 if (wbbCfgCache !== undefined) return wbbCfgCache; 2167 var el = document.querySelector('script[id^="wbb-config-"]'); 2168 if (!el) return undefined; 2169 try { wbbCfgCache = JSON.parse(el.textContent); } catch (e) { wbbCfgCache = null; } 2170 return wbbCfgCache; 2171 } 2172 function pageLogos(){ 2173 var imgs = document.querySelectorAll('.ww-sell__retail-logos img'); 2174 if (!imgs.length) return null; 2175 var out = []; 2176 for (var i = 0; i < imgs.length; i++) { 2177 var alt = imgs[i].getAttribute('alt') || ''; 2178 if (/circle\s*k/i.test(alt)) continue; 2179 var src = imgs[i].getAttribute('src'); 2180 if (src) out.push([alt, src]); 2181 } 2182 return out.length ? out : null; 2183 } 2184 function retRowInto(boxSel, anchorSel){ 2185 var box = document.querySelector(boxSel); 2186 if (!box || box.querySelector('.ww-buybox-ret')) return; 2187 var anchor = box.querySelector(anchorSel); 2188 if (!anchor) return; 2189 var logos = pageLogos() || RET_LOGOS; 2190 var row = document.createElement('div'); 2191 row.className = 'ww-buybox-ret'; 2192 var html = '<span class="ww-buybox-ret__label">Also at</span><span class="ww-buybox-ret__logos">'; 2193 for (var i = 0; i < logos.length; i++) { 2194 html += '<img src="' + logos[i][1] + '" alt="' + logos[i][0] + '" loading="lazy">'; 2195 } 2196 html += '</span>'; 2197 row.innerHTML = html; 2198 anchor.parentNode.insertBefore(row, anchor); 2199 } 2200 function ensureRetRow(){ 2201 retRowInto('.wakewater-skio-bab .skbab-buybox', '.skbab-price-row'); 2202 retRowInto('.wakewater-buy-box .wbb-buybox', '.wbb-price-row'); 2203 } 2204 function chip(n, t, s){ 2205 return '<span class="ww-step"><span class="ww-step__n">' + n + '</span><span class="ww-step__t">' + t + '</span>' + (s ? '<span class="ww-step__s">' + s + '</span>' : '') + '</span>'; 2206 } 2207 function ensureSteps(){ 2208 var root = document.querySelector('.wakewater-skio-bab'); 2209 if (!root) return; 2210 var hasTierLabels = !!root.querySelector('.skbab-tier__label'); 2211 var tiers = root.querySelector('.skbab-tiers'); 2212 if (tiers && hasTierLabels) { 2213 var prev = tiers.previousElementSibling; 2214 if (!(prev && prev.classList && prev.classList.contains('ww-step-head'))) { 2215 var h = document.createElement('div'); 2216 h.className = 'ww-step-head'; 2217 h.innerHTML = chip(1, 'Pick Your Size', ''); 2218 tiers.parentNode.insertBefore(h, tiers); 2219 } 2220 } 2221 /* Size hint retired (redundant with the tier labels); strip any rendered by an earlier version */ 2222 var oldSizeHint = root.querySelector('.ww-step-head .ww-step__s'); 2223 if (oldSizeHint) oldSizeHint.parentNode.removeChild(oldSizeHint); 2224 var labels = [].slice.call(root.querySelectorAll('.skbab-section-label')); 2225 for (var j = 0; j < labels.length; j++) { 2226 var l = labels[j]; 2227 if (l.querySelector('.ww-step')) continue; 2228 var t = (l.textContent || '').toLowerCase(); 2229 if (t.indexOf('flavor') > -1 || t.indexOf('flavour') > -1) { 2230 l.innerHTML = chip(2, 'Pick Your Flavours', 'Mix & match'); 2231 } else if (t.indexOf('frequency') > -1 || t.indexOf('choose your plan') > -1) { 2232 l.innerHTML = chip(3, 'Choose Your Plan', ''); 2233 l.classList.add('ww-plan-label'); 2234 } 2235 } 2236 } 2237 function ensureStepsWbb(){ 2238 var root = document.querySelector('.wakewater-buy-box'); 2239 if (!root) return; 2240 var cardCount = root.querySelectorAll('.wbb-card').length; 2241 if (!cardCount) return; 2242 var multi = cardCount > 1; 2243 var labels = [].slice.call(root.querySelectorAll('.wbb-section-label')); 2244 var sizeVisible = false;
2245 for (var k = 0; k < labels.length; k++) { 2246 var lt = (labels[k].textContent || '').toLowerCase(); 2247 if (lt.indexOf('size') > -1 && labels[k].offsetParent) sizeVisible = true; 2248 } 2249 for (var j = 0; j < labels.length; j++) { 2250 var l = labels[j]; 2251 if (l.querySelector('.ww-step') || l.dataset.wwPlain) continue; 2252 var t = (l.textContent || '').toLowerCase(); 2253 if (t.indexOf('flavor') > -1 || t.indexOf('flavour') > -1) { 2254 if (multi) { 2255 l.innerHTML = chip(1, 'Pick Your Flavour', ''); 2256 } else { 2257 l.style.display = 'none'; 2258 l.dataset.wwPlain = '1'; 2259 } 2260 } else if (t.indexOf('size') > -1) { 2261 if (multi) { 2262 l.innerHTML = chip(2, 'Pick Your Size', ''); 2263 } else { 2264 l.textContent = 'Pick Your Size'; 2265 l.dataset.wwPlain = '1'; 2266 } 2267 } else if (t.indexOf('frequency') > -1 || t.indexOf('choose your plan') > -1) { 2268 if (multi) { 2269 l.innerHTML = chip(sizeVisible ? 3 : 2, 'Choose Your Plan', ''); 2270 } else { 2271 l.textContent = 'Choose Your Plan'; 2272 l.dataset.wwPlain = '1'; 2273 } 2274 l.classList.add('ww-plan-label'); 2275 } 2276 } 2277 /* Remove the size hint from any flavour chip rendered by an earlier version */ 2278 var oldHint = root.querySelector('.wbb-section-label .ww-step .ww-step__s'); 2279 if (oldHint) oldHint.parentNode.removeChild(oldHint); 2280 /* The size picker can render after the first pass; keep the plan step number in sync */ 2281 var planNum = root.querySelector('.wbb-section-label.ww-plan-label .ww-step__n'); 2282 if (planNum) { 2283 var want = String(sizeVisible ? 3 : 2); 2284 if (planNum.textContent !== want) planNum.textContent = want; 2285 } 2286 } 2287 function ensureCanChipsWbb(){ 2288 var btns = document.querySelectorAll('.wakewater-buy-box .wbb-variant-btn'); 2289 for (var i = 0; i < btns.length; i++) { 2290 var m = (btns[i].textContent || '').match(/^\s*(\d+)\s*[xÃ]\s*355\s*ml\s*$/i); 2291 if (m) btns[i].textContent = m[1] + ' Cans'; 2292 } 2293 } 2294 /* Bundle tab price, computed live: reads the bundle page's skbab-config (base case 2295 price, units, SKIO product id) and SKIO's dynamic-box API (tier + subscription 2296 discounts), then shows the lowest achievable per-unit price. Mirrors the exact 2297 formula the bundle page itself uses. The static template setting stays as the 2298 server-rendered fallback if any of this fails. */ 2299 function ensureDynamicBundleTab(){ 2300 if (window.__wwDynTab) return; 2301 var root = document.querySelector('.wakewater-buy-box'); 2302 if (!root) return; 2303 var line = root.querySelector('.wbb-tab--bundle .wbb-tab__price-line'); 2304 var c = wbbCfg(); 2305 if (!line || !c || !c.bundleRedirectUrl) return; 2306 window.__wwDynTab = true; 2307 var url = c.bundleRedirectUrl.split('?')[0]; 2308 fetch(url).then(function(r){ return r.text(); }).then(function(html){ 2309 var i = html.indexOf('skbab-config'); 2310 if (i < 0) throw new Error('no skbab config'); 2311 var s = html.indexOf('>', i) + 1; 2312 var e = html.indexOf('</scr' + 'ipt>', s); 2313 var cfg = JSON.parse(html.slice(s, e)); 2314 return fetch('https://api.skio.com/storefront-http/get-dynamic-box', { 2315 method: 'POST', 2316 headers: { 'Content-Type': 'application/json' }, 2317 body: JSON.stringify({ productPlatformId: String(cfg.skioProductId) }) 2318 }).then(function(r){ return r.json(); }).then(function(data){ 2319 if (!data.ok || !data.DynamicBox) throw new Error('skio fail'); 2320 var box = data.DynamicBox; 2321 var pdt = box.percentDiscountTier || {}; 2322 var fdt = box.fixedDiscountTier || {}; 2323 var useFixed = Object.keys(pdt).length === 0 && Object.keys(fdt).length > 0; 2324 var src = useFixed ? fdt : pdt; 2325 var base = cfg.baseProductPrice || 0; 2326 var units = cfg.unitsPerProduct || 1; 2327 var subPct = 0; 2328 var spg = box.sellingPlanGroup || box.SellingPlanGroup || null; 2329 if (spg) { 2330 Object.keys(spg).forEach(function(k){ 2331 var pd = spg[k];
2332 if (pd && pd.priceAdjustmentType === 'PERCENTAGE' && pd.priceAdjustmentAmount != null) { 2333 subPct = Math.max(subPct, Number(pd.priceAdjustmentAmount)); 2334 } 2335 }); 2336 } 2337 var best = null; 2338 Object.keys(src).forEach(function(q){ 2339 var d = Number(src[q]); 2340 var p = useFixed ? Math.max(0, base - d) : base * (1 - d / 100); 2341 var per = (p / units) * (1 - subPct / 100); 2342 if (best === null || per < best) best = per; 2343 }); 2344 /* Sanity gate so a bad API response can never paint a nonsense price */ 2345 if (best && best > 0.2 && best < 20) { 2346 var suffix = c.unitPriceSuffix || 'stick'; 2347 line.textContent = '$' + best.toFixed(2) + ' / ' + suffix; 2348 } 2349 }); 2350 }).catch(function(){ /* keep the server-rendered fallback */ }); 2351 } 2352 function ensurePerStickWbb(){ 2353 var root = document.querySelector('.wakewater-buy-box'); 2354 if (!root) return; 2355 var priceEl = root.querySelector('.wbb-price-current'); 2356 var priceRow = root.querySelector('.wbb-price-row'); 2357 if (!priceEl || !priceRow) return; 2358 var line = root.querySelector('.wbb-per-stick'); 2359 if (!line) { 2360 line = document.createElement('p'); 2361 line.className = 'wbb-per-stick'; 2362 priceRow.insertAdjacentElement('afterend', line); 2363 } 2364 var c = wbbCfg(); 2365 var suffix = (c && c.unitPriceSuffix) || 'stick'; 2366 var units = (c && c.unitsPerProduct) || 10; 2367 line.classList.toggle('wbb-per-stick--end', /can/i.test(suffix)); 2368 var total = parseFloat((priceEl.textContent || '').replace(/[^0-9.]/g, '')); 2369 var tab = root.querySelector('.js-wbb-onebox-tab-price'); 2370 if (tab && total) { 2371 var per = parseFloat((tab.textContent || '').replace(/[^0-9.]/g, '')); 2372 if (per > 0) { 2373 var u = Math.round(total / per); 2374 if (u >= 1 && u <= 500) units = u; 2375 } 2376 } 2377 var txt = ''; 2378 if (total && units) { 2379 var plural = units === 1 ? suffix : suffix + 's'; 2380 txt = units + ' ' + plural + ' · $' + (total / units).toFixed(2) + '/' + suffix; 2381 } 2382 if (line.textContent !== txt) line.textContent = txt; 2383 } 2384 function ensureBadgeTextWbb(){ 2385 var b = document.querySelector('.wakewater-buy-box .wbb-save-badge'); 2386 if (!b) return; 2387 for (var i = 0; i < b.childNodes.length; i++) { 2388 var n = b.childNodes[i]; 2389 if (n.nodeType === 3 && /today/i.test(n.nodeValue || '')) { 2390 n.nodeValue = n.nodeValue.replace(/\s*today\s*/i, ''); 2391 } 2392 } 2393 } 2394 function ensureFreeshipWbb(){ 2395 var root = document.querySelector('.wakewater-buy-box'); 2396 if (!root || root.querySelector('.ww-freeship')) return; 2397 var c = wbbCfg(); 2398 if (c && /can/i.test(c.unitPriceSuffix || '')) return; 2399 var anchor = root.querySelector('.wbb-tabs-wrap') || root.querySelector('.wbb-tabs') || root.querySelector('.wbb-atc'); 2400 if (!anchor) return; 2401 var p = document.createElement('p'); 2402 p.className = 'ww-freeship'; 2403 p.innerHTML = '<svg width="14" height="14" viewBox="0 0 24 24" fill="none"><path d="M20 6L9 17l-5-5" stroke="#00C950" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/></svg>Free shipping on all drink mixes'; 2404 anchor.insertAdjacentElement('beforebegin', p); 2405 } 2406 function ensureBestSellers(){ 2407 var cards = [].slice.call(document.querySelectorAll('.wakewater-skio-bab .skbab-card, .wakewater-buy-box .wbb-card')); 2408 for (var i = 0; i < cards.length; i++) { 2409 var card = cards[i]; 2410 if (card.querySelector('.ww-bestseller')) continue; 2411 var n = card.querySelector('.skbab-card__name, .wbb-card__name'); 2412 if (!n) continue; 2413 var t = (n.textContent || '').toUpperCase(); 2414 var isElecBest = t.indexOf('BLUE RASPBERRY') > -1 && t.indexOf('ENERGY') === -1 && t.indexOf('TUB') === -1; 2415 var isEnergyBest = t.indexOf('RASPBERRY LEMONADE') > -1; 2416 var isCanBest = t.indexOf('PEACH') > -1 && t.indexOf('RINGS') === -1 && t.indexOf('MANGO') === -1 && t.indexOf('FIZZ') === -1; 2417 if (isElecBest || isEnergyBest || isCanBest) { 2418 var b = document.createElement('span'); 2419 b.className = 'ww-bestseller'; 2420 b.textContent = 'Best Seller'; 2421 card.appendChild(b); 2422 } 2423 } 2424 } 2425 function alignTrack(){ 2426 var root = document.querySelector('.wakewater-skio-bab'); 2427 if (!root) return; 2428 var tiers = root.querySelector('.skbab-tiers'); 2429 var track = root.querySelector('.skbab-tiers__track'); 2430 var dot = root.querySelector('.skbab-tier__dot'); 2431 if (!tiers || !track || !dot) return; 2432 var tr = tiers.getBoundingClientRect(); 2433 var dr = dot.getBoundingClientRect(); 2434 if (!dr.height) return; 2435 var top = Math.round(dr.top - tr.top + dr.height / 2 - track.offsetHeight / 2); 2436 if (top > 0 && track.style.top !== top + 'px') track.style.top = top + 'px'; 2437 } 2438 function ensureGalThumbs(){ 2439 if (window.innerWidth < 750) return; 2440 var defs = [ 2441 { mosaic: '.wbb-mosaic', cell: '.wbb-mosaic__cell' }, 2442 { mosaic: '.skbab-mosaic', cell: '.skbab-mosaic__cell' } 2443 ]; 2444 for (var d = 0; d < defs.length; d++) { 2445 var mosaics = document.querySelectorAll(defs[d].mosaic); 2446 for (var m = 0; m < mosaics.length; m++) { 2447 var mo = mosaics[m]; 2448 if (!mo.offsetParent) continue; 2449 var cells = mo.querySelectorAll(defs[d].cell); 2450 if (cells.length < 2) continue; 2451 mo.classList.add('ww-galthumbs-on'); 2452 var sig = ''; 2453 for (var i = 0; i < cells.length; i++) { 2454 var im0 = cells[i].querySelector('img'); 2455 sig += (im0 ? im0.src : '') + '|'; 2456 } 2457 var strip = mo.parentNode.querySelector('.ww-thumbstrip'); 2458 if (!strip || strip.dataset.sig !== sig) { 2459 if (strip) strip.remove();
2460 strip = document.createElement('div'); 2461 strip.className = 'ww-thumbstrip'; 2462 strip.dataset.sig = sig; 2463 var html = ''; 2464 for (var j = 0; j < cells.length; j++) { 2465 var img = cells[j].querySelector('img'); 2466 if (!img) continue; 2467 var src = (img.currentSrc || img.src).replace(/width=\d+/, 'width=200'); 2468 html += '<button type="button" class="ww-thumbstrip__btn' + (j === 0 ? ' is-active' : '') + '" data-i="' + j + '" aria-label="Image ' + (j + 1) + '"><img src="' + src + '" alt="" loading="lazy"></button>'; 2469 } 2470 strip.innerHTML = html; 2471 mo.insertAdjacentElement('afterend', strip); 2472 (function(mo2, strip2, cellSel){ 2473 strip2.addEventListener('click', function(e){ 2474 var b = e.target.closest('.ww-thumbstrip__btn'); 2475 if (!b) return; 2476 e.preventDefault(); 2477 e.stopPropagation(); 2478 var idx = parseInt(b.dataset.i, 10) || 0; 2479 var cs = mo2.querySelectorAll(cellSel); 2480 for (var k = 0; k < cs.length; k++) cs[k].classList.toggle('ww-gal-current', k === idx); 2481 var bs = strip2.querySelectorAll('.ww-thumbstrip__btn'); 2482 for (var k2 = 0; k2 < bs.length; k2++) bs[k2].classList.toggle('is-active', k2 === idx); 2483 }); 2484 })(mo, strip, defs[d].cell); 2485 } 2486 if (!mo.querySelector(defs[d].cell + '.ww-gal-current')) cells[0].classList.add('ww-gal-current'); 2487 } 2488 } 2489 } 2490 function tick(){ ensureDividers(); ensureRetRow(); ensureSteps(); ensureStepsWbb(); ensureCanChipsWbb(); ensureDynamicBundleTab(); ensurePerStickWbb(); ensureBadgeTextWbb(); ensureFreeshipWbb(); ensureBestSellers(); alignTrack(); ensureGalThumbs(); } 2491 if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', tick); } else { tick(); } 2492 setInterval(tick, 900); 2493 window.addEventListener('resize', alignTrack); 2494})(); 2495</script>
2495 2496 2497 2498</section><section id="shopify-section-template--31712463618334__wakewater_skio_build_a_box_eA3dC4" class="shopify-section wakewater-skio-bab-section"> 2499<style> 2500/* ============================================================= 2501 WAKEWATER SKIO BUILD-A-BOX â STYLES 2502 ============================================================= */ 2503 2504/* ââ Section Wrapper ââ */ 2505.wakewater-skio-bab { 2506 padding: 40px 0 80px; 2507 box-sizing: border-box; 2508 background: #E7F3F9; 2509} 2510.wakewater-skio-bab *, 2511.wakewater-skio-bab *::before, 2512.wakewater-skio-bab *::after { 2513 box-sizing: inherit; 2514} 2515 2516/* ââ Two-Column Grid ââ */ 2517.wakewater-skio-bab .skbab-layout { 2518 display: grid; 2519 grid-template-columns: 55% 1fr; 2520 gap: 30px; 2521 align-items: start; 2522 max-width: 1400px; 2523} 2524 2525/* ââ Left Column â Media ââ */ 2526.wakewater-skio-bab .skbab-media { 2527 position: sticky; 2528 top: 80px; 2529 min-width: 0; 2530} 2531 2532/* Grid mosaic container */ 2533.wakewater-skio-bab .skbab-mosaic { 2534 position: relative; 2535 display: grid; 2536 grid-template-columns: 1fr 1fr; 2537 gap: 6px; 2538 border-radius: 12px; 2539 padding: 0 6px 6px 6px; 2540 overflow: hidden; 2541} 2542.wakewater-skio-bab .skbab-mosaic[data-count="1"] { 2543 grid-template-columns: 1fr; 2544} 2545.wakewater-skio-bab .skbab-mosaic__cell--1 { 2546 grid-column: 1 / -1; 2547} 2548.wakewater-skio-bab .skbab-mosaic__cell { 2549 overflow: hidden; 2550 background: #fff; 2551 min-height: 0; 2552 cursor: zoom-in; 2553 aspect-ratio: 1; 2554} 2555.wakewater-skio-bab .skbab-mosaic__cell--1 { 2556 aspect-ratio: auto; 2557} 2558.wakewater-skio-bab .skbab-mosaic__img { 2559 width: 100%; 2560 height: 100%; 2561 object-fit: contain; 2562 display: block; 2563} 2564 2565 2566/* Mobile carousel dots */ 2567.wakewater-skio-bab .skbab-mosaic__dots { 2568 display: none; 2569 justify-content: center; 2570 gap: 6px; 2571 margin-top: 14px; 2572} 2573.wakewater-skio-bab .skbab-mosaic__dot { 2574 width: 7px; 2575 height: 7px; 2576 border-radius: 50%; 2577 background: #B0DEF1; 2578 border: none; 2579 padding: 0; 2580 cursor: pointer; 2581 transition: background 0.3s, transform 0.3s; 2582} 2583.wakewater-skio-bab .skbab-mosaic__dot.is-active { 2584 background: #041A71; 2585 transform: scale(1.4); 2586} 2587 2588/* ââ Vendor ââ */ 2589.wakewater-skio-bab .skbab-vendor { 2590 color: #041A71; font-family: Montserrat; font-size: 11px; font-weight: 700; 2591 letter-spacing: 2.5px; text-transform: uppercase; margin: 0 0 10px 0; opacity: 0.6; 2592} 2593 2594/* ââ Right Column â Buy Box ââ */ 2595.wakewater-skio-bab .skbab-buybox { 2596 display: flex; 2597 flex-direction: column; 2598 padding: 30px 0px 0px 0px; 2599 min-width: 0; 2600 overflow: hidden; 2601} 2602 2603/* ââ Tabs ââ */ 2604.wakewater-skio-bab .skbab-tabs-wrap { margin-bottom: 0; } 2605.wakewater-skio-bab .skbab-tabs { 2606 display: flex; margin-bottom: 0; position: relative; gap: 20px; 2607} 2608.wakewater-skio-bab .skbab-tab { 2609 flex: 1; padding: 14px 12px 12px; text-align: center; 2610 font-family: Montserrat; font-size: 16px; font-weight: 900; 2611 text-transform: uppercase; letter-spacing: 0.3px; cursor: pointer; 2612 border: 2px solid #041A71; background: transparent; color: #041A71; 2613 position: relative; transition: background 0.3s, color 0.3s; 2614 line-height: 1.2; display: flex; flex-direction: column; 2615 align-items: center; justify-content: center; gap: 2px; 2616 border-radius: 12px 12px 0 0; margin-bottom: -2px; 2617} 2618.wakewater-skio-bab .skbab-tab + .skbab-tab { margin-left: -2px; } 2619.wakewater-skio-bab .skbab-tab.is-active { 2620 background: #fff; color: #041A71; border-bottom-color: #fff; z-index: 2; 2621} 2622.wakewater-skio-bab .skbab-tab:not(.is-active) { 2623 background: transparent; border: 1px solid rgba(4, 26, 113, 0.20); 2624} 2625.wakewater-skio-bab .skbab-tab__price-line { 2626 display: block; font-size: 12px; font-weight: 500; margin-top: 2px; 2627 text-transform: lowercase; opacity: 0.6; 2628} 2629.wakewater-skio-bab .skbab-tab__price-line span { text-transform: uppercase; } 2630.wakewater-skio-bab .skbab-tab.is-active .skbab-tab__price-line { opacity: 0.7; } 2631.wakewater-skio-bab .skbab-tab__badge { 2632 position: absolute; top: -13px; left: 0; right: 0; margin: 0 auto; 2633 width: fit-content; font-family: Montserrat; font-size: 10px; 2634 font-weight: 900; text-transform: uppercase; letter-spacing: 0.8px; 2635 padding: 4px 14px 3px; border: 2px solid #041A71; background: #B0DEF1; 2636 color: #041A71; line-height: 1.3; z-index: 3; white-space: nowrap; 2637} 2638.wakewater-skio-bab .skbab-tab-content { 2639 background: #fff; border: 2px solid #041A71; 2640 border-radius: 0 0 12px 12px; padding: 24px 20px 28px; 2641 position: relative; z-index: 1; 2642 min-width: 0; overflow: hidden; 2643} 2644/* When tabs are hidden, give content area full rounded corners */ 2645.wakewater-skio-bab .skbab-tabs-wrap--no-tabs .skbab-tab-content { 2646 border-radius: 12px; 2647} 2648 2649/* ââ Headline ââ */ 2650.wakewater-skio-bab .skbab-headline {
2651 color: #041A71; 2652 font-family: Montserrat; 2653 font-size: 40px; 2654 font-style: normal; 2655 font-weight: 900; 2656 line-height: 95%; 2657 text-transform: uppercase; 2658 margin: 0 0 7px 0; 2659} 2660 2661/* ââ Price Row ââ */ 2662.wakewater-skio-bab .skbab-price-row { 2663 display: flex; 2664 align-items: center; 2665 flex-wrap: wrap; 2666 gap: 10px; 2667 margin-bottom: 10px; 2668} 2669.wakewater-skio-bab .skbab-price-current { 2670 color: #041A71; 2671 font-family: Montserrat; 2672 font-size: 32px; 2673 font-style: normal; 2674 font-weight: 900; 2675 line-height: 105%; 2676 text-transform: uppercase; 2677} 2678.wakewater-skio-bab .skbab-price-compare { 2679 color: #041A71; 2680 font-family: Montserrat; 2681 font-size: 20px; 2682 font-style: normal; 2683 font-weight: 400; 2684 line-height: 105%; 2685 text-decoration-line: line-through; 2686 text-transform: uppercase; 2687 opacity: 0.5; 2688} 2689.wakewater-skio-bab .skbab-save-badge { 2690 display: inline-flex; 2691 align-items: center; 2692 font-family: Montserrat; 2693 font-size: 12px; 2694 font-weight: 800; 2695 text-transform: uppercase; 2696 padding: 5px 12px; 2697 border-radius: 5px; 2698 background: #B0DEF1; 2699 color: #041A71; 2700 white-space: nowrap; 2701 line-height: 1.3; 2702} 2703 2704/* ââ Description ââ */ 2705.wakewater-skio-bab .skbab-description { 2706 color: #041A71; 2707 font-family: Montserrat; 2708 font-size: 16px; 2709 font-style: normal; 2710 font-weight: 400; 2711 line-height: 140%; 2712 margin: 6px 0 7px 0; 2713} 2714 2715/* ââ Benefits Checklist ââ */ 2716.wakewater-skio-bab .skbab-benefits { 2717 display: grid; 2718 grid-template-columns: 1fr 1fr; 2719 gap: 8px 16px; 2720 margin-bottom: 24px; 2721 padding: 0 0 24px; 2722 list-style: none; 2723 border-bottom: 1px solid rgba(4, 26, 113, 0.30); 2724} 2725.wakewater-skio-bab .skbab-benefits li { 2726 display: flex; 2727 align-items: center; 2728 gap: 8px; 2729 color: #041A71; 2730 font-family: Montserrat; 2731 font-size: 14px; 2732 font-weight: 600; 2733 line-height: 1.4; 2734} 2735.wakewater-skio-bab .skbab-benefits__check { 2736 flex-shrink: 0; 2737 width: 18px; 2738 height: 18px; 2739 border-radius: 50%; 2740 background: #041A71; 2741 display: flex; 2742 align-items: center; 2743 justify-content: center; 2744} 2745.wakewater-skio-bab .skbab-benefits__check svg { 2746 width: 10px; 2747 height: 10px; 2748} 2749 2750/* ââ Descriptor Text ââ */ 2751.wakewater-skio-bab .skbab-tiers-wrap { 2752 margin-bottom: 0; 2753} 2754.wakewater-skio-bab .skbab-descriptor { 2755 color: #041A71; 2756 font-family: Montserrat; 2757 font-size: 14px; 2758 font-style: normal; 2759 font-weight: 400; 2760 line-height: 105%; 2761 text-transform: capitalize; 2762 margin-bottom: 20px; 2763} 2764.wakewater-skio-bab .skbab-descriptor strong { 2765 font-weight: 700; 2766 margin-right: 2px; 2767} 2768 2769/* ââ Bundle Tier Selector ââ */ 2770.wakewater-skio-bab .skbab-tiers { 2771 position: relative; 2772 margin-bottom: 30px; 2773 margin-top: 10px; 2774} 2775 2776/* Badge row */ 2777.wakewater-skio-bab .skbab-tiers__badges { 2778 display: grid; 2779 grid-template-columns: repeat(var(--tier-count, 3), 1fr); 2780 position: absolute; 2781 top: -8px; 2782 left: 0; 2783 right: 0; 2784 z-index: 10; 2785 pointer-events: none; 2786} 2787.wakewater-skio-bab .skbab-tier-badge-cell { 2788 display: flex; 2789 justify-content: center; 2790 align-items: flex-end; 2791} 2792.wakewater-skio-bab .skbab-tier__badge { 2793 display: inline-block; 2794 font-size: 9px; 2795 font-weight: 800; 2796 text-transform: uppercase; 2797 letter-spacing: 0.5px; 2798 padding: 5px 10px; 2799 white-space: nowrap; 2800 line-height: 1; 2801 background: #041A71; 2802 color: #ffffff; 2803 box-shadow: 0 2px 4px rgba(0,0,0,0.1); 2804 font-family: Montserrat; 2805} 2806.wakewater-skio-bab .skbab-tier-badge-cell:last-child .skbab-tier__badge { 2807 background: #B0DEF1; 2808 color: #041A71; 2809} 2810.wakewater-skio-bab .skbab-tier-badge-cell:nth-child(2) .skbab-tier__badge { 2811 background: #041A71; 2812 color: #ffffff; 2813} 2814 2815/* Main container for tier buttons */ 2816.wakewater-skio-bab .skbab-tiers__options { 2817 display: grid; 2818 grid-template-columns: repeat(var(--tier-count, 3), 1fr); 2819 position: relative; 2820 z-index: 1; 2821 border-radius: 14px; 2822 background: #E7F3F9; 2823 padding: 0; 2824 padding-top: 24px; 2825 padding-bottom: 24px; 2826} 2827 2828/* Connecting track line */ 2829.wakewater-skio-bab .skbab-tiers__track { 2830 position: absolute; 2831 top: 59px; 2832 left: calc(100% / (var(--tier-count, 3) * 2)); 2833 right: calc(100% / (var(--tier-count, 3) * 2)); 2834 height: 6px; 2835 background: #B0DEF1; 2836 border-radius: 4px; 2837 overflow: hidden; 2838 z-index: 1; 2839 pointer-events: none; 2840} 2841.wakewater-skio-bab .skbab-tiers__track-fill { 2842 display: block; 2843 height: 100%; 2844 background: #041A71; 2845 width: 0%; 2846 transition: width 0.3s ease; 2847 border-radius: 4px; 2848} 2849 2850/* Individual tier button */ 2851.wakewater-skio-bab .skbab-tier { 2852 background: none; 2853 border: none; 2854 cursor: pointer; 2855 display: flex; 2856 flex-direction: column; 2857 align-items: center; 2858 gap: 12px; 2859 padding: 0 4px; 2860 color: #041A71; 2861 transition: opacity 0.2s; 2862 font-family: Montserrat; 2863 position: relative; 2864 z-index: 5; 2865} 2866.wakewater-skio-bab .skbab-tier:hover { 2867 opacity: 0.8; 2868} 2869.wakewater-skio-bab .skbab-tier__label { 2870 order: 1; 2871 color: #041A71; 2872 font-family: Montserrat; 2873 font-size: 14px; 2874 font-style: normal; 2875 font-weight: 800; 2876 line-height: 1; 2877 text-transform: uppercase; 2878} 2879.wakewater-skio-bab .skbab-tier__dot { 2880 order: 2; 2881 width: 24px; 2882 height: 24px; 2883 border-radius: 50%; 2884 background: #ffffff; 2885 border: 2px solid #B0DEF1; 2886 display: block; 2887 flex-shrink: 0; 2888 transition: background 0.3s, border-color 0.3s, box-shadow 0.3s; 2889 box-sizing: border-box; 2890} 2891.wakewater-skio-bab .skbab-tier__price-label { 2892 order: 3; 2893 color: #041A71; 2894 font-family: Montserrat; 2895 font-size: 13px; 2896 font-weight: 500; 2897 line-height: 1; 2898 opacity: 0.8; 2899} 2900 2901/* Filled state */ 2902.wakewater-skio-bab .skbab-tier.is-filled .skbab-tier__dot { 2903 background: #041A71; 2904 border: 3px solid #ffffff; 2905 box-shadow: 0 0 0 2px #041A71; 2906} 2907 2908/* ââ Savings Bar ââ */ 2909.wakewater-skio-bab .skbab-savings-bar { 2910 display: flex; 2911 align-items: center; 2912 justify-content: center; 2913 flex-wrap: nowrap; 2914 padding: 10px 20px; 2915 text-transform: uppercase; 2916 letter-spacing: 0.6px; 2917 font-family: Montserrat; 2918 margin-bottom: 20px; 2919 line-height: 1; 2920 gap: 0; 2921 border-radius: 14px; 2922 border: 1px solid #041A71; 2923 background: #B0DEF1; 2924 color: #041A71; 2925 font-size: 14px; 2926 font-style: normal; 2927 font-weight: 700; 2928 line-height: 105%; 2929} 2930.wakewater-skio-bab .skbab-savings-bar strong { 2931 display: inline-flex; 2932 align-items: center; 2933 border-radius: 4px; 2934 background: #041A71; 2935 padding: 5px 12px 6px; 2936 font-size: 15px; 2937 font-weight: 900; 2938 letter-spacing: 0; 2939 line-height: 1; 2940 margin-left: 8px; 2941 color: #FFF; 2942 font-family: Montserrat; 2943 font-size: 12px; 2944 font-style: normal; 2945 font-weight: 900; 2946 line-height: 105%; 2947 text-transform: uppercase; 2948} 2949.wakewater-skio-bab .js-skbab-savings-pct { 2950 font-size: 16px; 2951 font-weight: 900; 2952} 2953 2954/* ââ Purchase Options ââ */ 2955.wakewater-skio-bab .skbab-purchase-options { 2956 display: flex; 2957 flex-direction: column; 2958 gap: 10px; 2959 margin-bottom: 16px; 2960} 2961.wakewater-skio-bab .skbab-purchase-option { 2962 display: block; 2963 cursor: pointer; 2964 border: 2px solid rgba(4, 26, 113, 0.12); 2965 background: #ffffff; 2966 user-select: none; 2967 transition: border-color 0.3s, background 0.3s, box-shadow 0.3s; 2968 position: relative; 2969 border-radius: 7px; 2970} 2971.wakewater-skio-bab .skbab-purchase-option.is-selected { 2972 border-color: #041A71; 2973 border: 2px solid #041A71; 2974 background: #B0DEF1; 2975 border-radius: 5px; 2976} 2977.wakewater-skio-bab .skbab-radio { 2978 position: absolute; 2979 opacity: 0; 2980 width: 0; 2981 height: 0; 2982 pointer-events: none; 2983} 2984.wakewater-skio-bab .skbab-radio-dot { display: none; } 2985.wakewater-skio-bab .skbab-subscribe-badge { 2986 display: block; 2987 text-align: center; 2988 font-family: Montserrat; 2989 font-size: 12px; 2990 font-weight: 900; 2991 text-transform: uppercase; 2992 letter-spacing: 1px; 2993 padding: 5px 14px 3px 14px; 2994 line-height: 105%; 2995 position: absolute; 2996 right: 0; left: 0; top: -17px; 2997 margin: auto; 2998 width: fit-content; 2999 border: 2px solid #041A71; 3000 background: #B0DEF1; 3001 color: #041A71; 3002} 3003.wakewater-skio-bab .skbab-purchase-option__inner { 3004 padding: 17px 16px 15px 16px; 3005} 3006.wakewater-skio-bab .skbab-purchase-option__row { 3007 display: flex; 3008 align-items: center; 3009 justify-content: space-between; 3010 gap: 10px; 3011} 3012.wakewater-skio-bab .skbab-purchase-option__left { 3013 display: flex; 3014 align-items: center; 3015 gap: 10px; 3016 flex-shrink: 0; 3017} 3018.wakewater-skio-bab .skbab-purchase-option__title { 3019 color: #041A71; 3020 font-family: Montserrat; 3021 font-size: 16px; 3022 font-weight: 900; 3023 line-height: 105%; 3024 text-transform: uppercase; 3025} 3026.wakewater-skio-bab .skbab-purchase-option__prices { 3027 display: flex; 3028 align-items: center; 3029 gap: 8px; 3030 flex-wrap: nowrap; 3031} 3032.wakewater-skio-bab .skbab-po-compare { 3033 color: #041A71; 3034 font-family: Montserrat; 3035 font-size: 16px; 3036 font-weight: 400; 3037 line-height: 130%; 3038 text-decoration-line: line-through; 3039 opacity: 0.45; 3040 white-space: nowrap; 3041} 3042.wakewater-skio-bab .skbab-po-price { 3043 color: #041A71; 3044 font-family: Montserrat; 3045 font-size: 20px; 3046 font-weight: 900; 3047 line-height: 105%; 3048 white-space: nowrap; 3049} 3050.wakewater-skio-bab .skbab-subscribe-benefits { 3051 list-style: none; 3052 padding: 0; 3053 margin: 12px 0 0; 3054 display: grid; 3055 grid-template-columns: 1fr 1fr; 3056 gap: 4px 12px; 3057} 3058.wakewater-skio-bab .skbab-subscribe-benefits li { 3059 font-size: 11px; 3060 color: #041A71; 3061 line-height: 1.5; 3062 display: flex; 3063 align-items: flex-start; 3064 gap: 5px; 3065 font-family: Montserrat; 3066 font-weight: 400; 3067} 3068.wakewater-skio-bab .skbab-subscribe-benefits li svg { 3069 flex-shrink: 0; 3070 margin-top: 5px; 3071} 3072 3073/* Frequency dropdown inside subscribe option */ 3074.wakewater-skio-bab .skbab-frequency-wrap { 3075 margin-top: 10px; 3076} 3077.wakewater-skio-bab .skbab-frequency-label { 3078 display: block; 3079 color: #041A71; 3080 font-family: Montserrat; 3081 font-size: 11px; 3082 font-weight: 700; 3083 text-transform: uppercase; 3084 letter-spacing: 0.5px; 3085 margin-bottom: 5px; 3086} 3087.wakewater-skio-bab .skbab-frequency-select { 3088 width: 100%; 3089 padding: 8px 32px 8px 10px; 3090 border: 1.5px solid rgba(4, 26, 113, 0.25); 3091 border-radius: 5px; 3092 background: #fff; 3093 color: #041A71; 3094 font-family: Montserrat; 3095 font-size: 13px; 3096 font-weight: 600; 3097 cursor: pointer; 3098 appearance: none; 3099 -webkit-appearance: none; 3100 background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' fill='none'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23041A71' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); 3101 background-repeat: no-repeat; 3102 background-position: right 10px center; 3103} 3104.wakewater-skio-bab .skbab-frequency-select:focus { 3105 outline: none; 3106 border-color: #041A71; 3107} 3108 3109/* ââ Section Labels ââ */ 3110.wakewater-skio-bab .skbab-section-label { 3111 color: #041A71; 3112 font-family: Montserrat; 3113 font-size: 16px; 3114 font-style: normal; 3115 font-weight: 900; 3116 line-height: 105%; 3117 text-transform: uppercase; 3118 letter-spacing: 0.5px; 3119 margin: 0 0 20px 0; 3120} 3121 3122/* ââ Product Cards Grid ââ */ 3123.wakewater-skio-bab .skbab-products { 3124 display: grid; 3125 grid-template-columns: repeat(3, minmax(0, 1fr)); 3126 margin-bottom: 30px; 3127 /* border-top: 1px solid rgba(4, 26, 113, 0.30); */ 3128 margin-top: 4px; 3129 border-bottom: 1px solid rgba(4, 26, 113, 0.30); 3130 padding-bottom: 12px; 3131} 3132.wakewater-skio-bab .skbab-card { 3133 position: relative; 3134 border-radius: 10px; 3135 padding: 12px 10px; 3136 display: flex; 3137 flex-direction: column; 3138 align-items: center; 3139 gap: 7px; 3140 text-align: center; 3141 border: 1.5px solid transparent; 3142 transition: border-color 0.3s, box-shadow 0.3s; 3143 cursor: default; 3144} 3145/* NEW / BEST-SELLER badge */ 3146.wakewater-skio-bab .skbab-card__badge { 3147 position: absolute; 3148 top: 7px; 3149 left: 7px; 3150 z-index: 1; 3151 font-family: Montserrat; 3152 font-size: 7.5px; 3153 font-weight: 900; 3154 text-transform: uppercase; 3155 letter-spacing: 0.5px; 3156 padding: 3px 6px; 3157 border-radius: 3px; 3158 line-height: 1.4; 3159} 3160.wakewater-skio-bab .skbab-card__badge--new { 3161 background: #EA2036; 3162 color: #ffffff; 3163 top: -8px; 3164 left: 50%; 3165 right: auto; 3166 transform: translateX(-50%); 3167 font-family: 'Montserrat', sans-serif; 3168 font-size: 8.5px; 3169 font-weight: 800; 3170 letter-spacing: 0.07em; 3171 padding: 3px 9px; 3172 border-radius: 10px; 3173 white-space: nowrap; 3174 z-index: 2; 3175} 3176.wakewater-skio-bab .skbab-card__badge--bestseller { 3177 background: #0B2341; 3178 color: #ffffff; 3179} 3180/* Product image */ 3181.wakewater-skio-bab .skbab-card__image-wrap { 3182 width: 85%; 3183 margin: auto; 3184 aspect-ratio: 1; 3185 overflow: hidden; 3186 border-radius: 8px; 3187} 3188.wakewater-skio-bab .skbab-card__image { 3189 width: 100%; 3190 height: 100%; 3191 object-fit: contain; 3192 display: block; 3193} 3194/* Product name */ 3195.wakewater-skio-bab .skbab-card__name { 3196 color: #041A71; 3197 text-align: center; 3198 font-family: Montserrat; 3199 font-size: 12px; 3200 font-style: normal; 3201 font-weight: 700; 3202 line-height: 105%; 3203 text-transform: uppercase; 3204 margin: 0; 3205} 3206/* Controls area */ 3207.wakewater-skio-bab .skbab-card__controls { 3208 width: 100%; 3209 margin-top: auto; 3210} 3211/* Quantity stepper â hidden until card has quantity */ 3212.wakewater-skio-bab .skbab-stepper { 3213 display: none; 3214 align-items: center; 3215 justify-content: space-between; 3216 width: 100%; 3217 height: 36px; 3218 border: 1px solid #D9D8D6; 3219 border-radius: 8px; 3220 overflow: hidden; 3221 color: #041A71; 3222 font-family: Montserrat; 3223 font-size: 14px; 3224 font-style: normal; 3225 font-weight: 700; 3226 line-height: 105%; 3227 text-transform: uppercase; 3228} 3229.wakewater-skio-bab .skbab-card.has-quantity .skbab-stepper { 3230 display: flex; 3231} 3232.wakewater-skio-bab .skbab-card.has-quantity .skbab-card__add { 3233 display: none; 3234} 3235.wakewater-skio-bab .skbab-stepper__btn { 3236 border: none; 3237 font-size: 20px; 3238 font-weight: 300; 3239 width: 36px; 3240 background: none; 3241 height: 100%; 3242 cursor: pointer; 3243 display: flex; 3244 align-items: center; 3245 justify-content: center; 3246 flex-shrink: 0; 3247 line-height: 1; 3248 transition: background 0.3s; 3249 color: #041A71; 3250} 3251.wakewater-skio-bab .skbab-stepper__btn:hover { 3252 background: rgba(255, 255, 255, 0.15); 3253} 3254.wakewater-skio-bab .skbab-stepper__qty { 3255 flex: 1; 3256 text-align: center; 3257 font-size: 15px; 3258 line-height: 1; 3259} 3260/* ADD + button */ 3261.wakewater-skio-bab .skbab-card__add { 3262 width: 100%; 3263 height: 36px; 3264 border-radius: 10px; 3265 background: #041A71; 3266 border: none; 3267 text-transform: uppercase; 3268 cursor: pointer; 3269 font-family: Montserrat; 3270 display: flex; 3271 align-items: center; 3272 justify-content: center; 3273 color: #FFF; 3274 text-align: center; 3275 font-size: 12px; 3276 font-style: normal; 3277 font-weight: 900; 3278 line-height: 105%; 3279} 3280 3281/* ââ Per-card variant selector ââ */ 3282.wakewater-skio-bab .skbab-card__variants { 3283 display: flex; 3284 flex-wrap: wrap; 3285 gap: 4px; 3286 justify-content: center; 3287 width: 100%; 3288} 3289.wakewater-skio-bab .skbab-variant-btn { 3290 font-family: Montserrat; 3291 font-size: 9px; 3292 font-weight: 700; 3293 text-transform: uppercase; 3294 letter-spacing: 0.3px; 3295 padding: 4px 8px; 3296 border-radius: 6px; 3297 border: 1.5px solid #D9D8D6; 3298 background: #fff; 3299 color: #041A71; 3300 cursor: pointer; 3301 transition: border-color 0.2s, background 0.2s, color 0.2s; 3302 line-height: 1.3; 3303} 3304.wakewater-skio-bab .skbab-variant-btn.is-active { 3305 border-color: #041A71; 3306 background: #041A71; 3307 color: #fff; 3308} 3309.wakewater-skio-bab .skbab-variant-btn:disabled { 3310 opacity: 0.35;
3311 cursor: not-allowed; 3312} 3313.wakewater-skio-bab .skbab-variant-btn:not(:disabled):not(.is-active):hover { 3314 border-color: #041A71; 3315} 3316 3317/* ââ Add to Cart ââ */ 3318.wakewater-skio-bab .skbab-atc { 3319 width: 100%; 3320 min-height: 62px; 3321 color: #ffffff; 3322 border: none; 3323 border-radius: 14px; 3324 padding: 0 24px; 3325 font-size: 18px; 3326 font-family: Montserrat; 3327 font-weight: 900; 3328 text-transform: uppercase; 3329 letter-spacing: 1px; 3330 cursor: pointer; 3331 display: flex; 3332 align-items: center; 3333 justify-content: center; 3334 gap: 0; 3335 background: #041A71; 3336} 3337.wakewater-skio-bab .skbab-atc:not(:disabled):not([aria-disabled="true"]):hover { 3338 background: #0d2b50; 3339} 3340.wakewater-skio-bab .skbab-atc:disabled, 3341.wakewater-skio-bab .skbab-atc[aria-disabled="true"] { 3342 opacity: 0.45; 3343 cursor: not-allowed; 3344} 3345.wakewater-skio-bab .skbab-atc.is-loading { 3346 opacity: 0.7; 3347 cursor: wait; 3348 pointer-events: none; 3349} 3350.wakewater-skio-bab .skbab-atc__label { 3351 white-space: nowrap; 3352} 3353.wakewater-skio-bab .skbab-atc__price-wrap { 3354 display: flex; 3355 align-items: center; 3356 gap: 8px; 3357} 3358.wakewater-skio-bab .skbab-atc__price-wrap.has-price::before { 3359 content: '\00a0|\00a0'; 3360 opacity: 0.5; 3361 font-weight: 400; 3362} 3363.wakewater-skio-bab .skbab-atc__price { 3364 font-weight: 900; 3365 white-space: nowrap; 3366} 3367.wakewater-skio-bab .skbab-atc__compare { 3368 font-weight: 400; 3369 text-decoration: line-through; 3370 text-decoration-thickness: 1.5px; 3371 opacity: 0.45; 3372 white-space: nowrap; 3373} 3374 3375/* ââ Trust Badges ââ */ 3376.wakewater-skio-bab .skbab-trust { 3377 display: flex; 3378 align-items: center; 3379 justify-content: center; 3380 gap: 28px; 3381 padding: 10px 0 14px; 3382} 3383.wakewater-skio-bab .skbab-trust__item { 3384 display: flex; 3385 align-items: center; 3386 gap: 7px; 3387 color: #041A71; 3388 font-family: Montserrat; 3389 font-size: 12px; 3390 font-style: normal; 3391 font-weight: 400; 3392 line-height: 130%; 3393 text-transform: capitalize; 3394} 3395.wakewater-skio-bab .skbab-trust__item svg { 3396 color: #94A3B8; 3397 flex-shrink: 0; 3398} 3399 3400/* ââ Fera Row (below title) ââ */ 3401.wakewater-skio-bab .skbab-fera-row { 3402 display: flex; 3403 align-items: center; 3404 gap: 10px; 3405 margin-bottom: 10px; 3406 font-size: 14px; 3407} 3408.wakewater-skio-bab .skbab-fera-label { 3409 font-size: 13px; 3410 font-family: Montserrat, sans-serif; 3411 color: currentColor; 3412 opacity: 0.85; 3413} 3414 3415/* ââ Review Slider ââ */ 3416.wakewater-skio-bab .skbab-reviews { 3417 margin-top: 24px; 3418 position: relative; 3419} 3420.wakewater-skio-bab .skbab-reviews__track-wrap { 3421 background: #041A71; 3422 color: #ffffff; 3423 padding: 36px 30px; 3424 overflow: hidden; 3425 margin-bottom: 14px; 3426} 3427.wakewater-skio-bab .skbab-reviews__track { 3428 display: flex; 3429 transition: transform 0.5s ease; 3430} 3431.wakewater-skio-bab .skbab-review-card { 3432 flex-shrink: 0; 3433 display: flex; 3434 flex-direction: column; 3435 align-items: center; 3436 text-align: center; 3437 gap: 16px; 3438 width: 100%; 3439} 3440.wakewater-skio-bab .skbab-review__stars { 3441 display: flex; 3442 align-items: center; 3443 gap: 4px; 3444} 3445.wakewater-skio-bab .skbab-review__text { 3446 font-size: 15px; 3447 line-height: 1.5; 3448 margin: 0; 3449 font-family: Montserrat; 3450 font-weight: 400; 3451 max-width: 90%; 3452} 3453.wakewater-skio-bab .skbab-review__meta { 3454 display: flex; 3455 align-items: center; 3456 gap: 20px; 3457 margin-top: 4px; 3458 font-size: 13px; 3459 font-weight: 700; 3460 font-family: Montserrat; 3461} 3462.wakewater-skio-bab .skbab-review__verified { 3463 display: flex; 3464 align-items: center; 3465 gap: 6px; 3466 font-weight: 400; 3467 opacity: 0.9; 3468} 3469.wakewater-skio-bab .skbab-reviews__controls { 3470 display: flex; 3471 align-items: center; 3472 justify-content: space-between; 3473 padding: 0 4px; 3474} 3475.wakewater-skio-bab .skbab-reviews__dots { 3476 display: flex; 3477 gap: 8px; 3478} 3479.wakewater-skio-bab .skbab-review-dot { 3480 width: 8px; 3481 height: 8px; 3482 border-radius: 50%; 3483 background: #C8DCE5; 3484 border: none; 3485 padding: 0; 3486 cursor: pointer; 3487 transition: background 0.3s; 3488} 3489.wakewater-skio-bab .skbab-review-dot.is-active { 3490 background: #041A71; 3491} 3492.wakewater-skio-bab .skbab-reviews__arrows { 3493 display: flex; 3494 gap: 16px; 3495} 3496.wakewater-skio-bab .skbab-review-arrow { 3497 background: none; 3498 border: none; 3499 color: #041A71; 3500 cursor: pointer; 3501 padding: 0; 3502 display: flex; 3503 align-items: center; 3504 justify-content: center; 3505 transition: opacity 0.3s; 3506} 3507.wakewater-skio-bab .skbab-review-arrow:hover { 3508 opacity: 0.7; 3509} 3510 3511/* ââ FAQ Accordion ââ */ 3512.wakewater-skio-bab .skbab-faqs { 3513 margin-top: 24px; 3514 display: flex; 3515 flex-direction: column; 3516 gap: 10px; 3517} 3518.wakewater-skio-bab .skbab-faq-item { 3519 border: 1.5px solid #041A71; 3520 border-radius: 14px; 3521 background: transparent; 3522 overflow: hidden; 3523 transition: background 0.3s; 3524} 3525.wakewater-skio-bab .skbab-faq-header { 3526 width: 100%; 3527 display: flex; 3528 align-items: center; 3529 justify-content: space-between; 3530 padding: 18px 24px; 3531 background: none; 3532 border: none; 3533 cursor: pointer; 3534 text-align: left; 3535 color: #041A71; 3536} 3537.wakewater-skio-bab .skbab-faq-title { 3538 font-family: Montserrat; 3539 font-size: 16px; 3540 font-weight: 900; 3541 text-transform: uppercase; 3542 line-height: 1.2; 3543} 3544.wakewater-skio-bab .skbab-faq-icon { 3545 position: relative; 3546 width: 14px; 3547 height: 14px; 3548 flex-shrink: 0; 3549} 3550.wakewater-skio-bab .skbab-faq-icon::before, 3551.wakewater-skio-bab .skbab-faq-icon::after {
3552 content: ''; 3553 position: absolute; 3554 background: #041A71; 3555 top: 50%; 3556 left: 50%; 3557 transform: translate(-50%, -50%); 3558 transition: transform 0.3s ease; 3559} 3560.wakewater-skio-bab .skbab-faq-icon::before { width: 100%; height: 2px; } 3561.wakewater-skio-bab .skbab-faq-icon::after { width: 2px; height: 100%; } 3562.wakewater-skio-bab .skbab-faq-item.is-open .skbab-faq-icon::after { 3563 transform: translate(-50%, -50%) rotate(90deg); 3564} 3565.wakewater-skio-bab .skbab-faq-item.is-open { background: #ffffff; } 3566.wakewater-skio-bab .skbab-faq-content { 3567 display: grid; 3568 grid-template-rows: 0fr; 3569 opacity: 0; 3570 visibility: hidden; 3571 transition: grid-template-rows 0.4s cubic-bezier(0.25, 0.8, 0.25, 1), opacity 0.4s ease, visibility 0s 0.4s; 3572 overflow: hidden; 3573} 3574.wakewater-skio-bab .skbab-faq-item.is-open .skbab-faq-content { 3575 grid-template-rows: 1fr; 3576 opacity: 1; 3577 visibility: visible; 3578 transition: grid-template-rows 0.4s cubic-bezier(0.25, 0.8, 0.25, 1), opacity 0.4s ease, visibility 0s 0s; 3579} 3580.wakewater-skio-bab .skbab-faq-content-inner { 3581 overflow: hidden; 3582 padding: 0 24px 0px; 3583 min-height: 0; 3584} 3585.wakewater-skio-bab .is-open .skbab-faq-content-inner { padding: 0 24px 24px; } 3586.wakewater-skio-bab .skbab-faq-text { 3587 color: #041A71; 3588 font-family: Montserrat; 3589 font-size: 14px; 3590 line-height: 1.5; 3591 margin-bottom: 16px; 3592} 3593.wakewater-skio-bab .skbab-faq-text p { margin: 0 0 10px; } 3594.wakewater-skio-bab .skbab-faq-text p:last-child { margin: 0; } 3595.wakewater-skio-bab .skbab-faq-box { 3596 background: #B0DEF1; 3597 border-radius: 10px; 3598 padding: 1px 17px; 3599 color: #041A71; 3600 font-family: Montserrat; 3601 font-size: 14px; 3602 line-height: 1.5; 3603} 3604.wakewater-skio-bab .skbab-faq-box p { 3605 position: relative; 3606 padding-left: 24px; 3607} 3608.wakewater-skio-bab .skbab-faq-box p::before { 3609 content: ''; 3610 position: absolute; 3611 left: 0; 3612 top: 6px; 3613 width: 12px; 3614 height: 9px; 3615 background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%2712%27%20height%3D%279%27%20viewBox%3D%270%200%2012%209%27%20fill%3D%27none%27%3E%3Cpath%20d%3D%27M3.74147%206.46254L9.9162%200.287805C10.1081%200.0959347%2010.3523%200%2010.6488%200C10.9453%200%2011.1895%200.0959347%2011.3814%200.287805C11.5733%200.479675%2011.6692%200.723873%2011.6692%201.0204C11.6692%201.31693%2011.5733%201.56113%2011.3814%201.753L4.47406%208.66032C4.26475%208.86963%204.02055%208.97429%203.74147%208.97429C3.46238%208.97429%203.21819%208.86963%203.00887%208.66032L0.287805%205.93925C0.0959347%205.74738%200%205.50318%200%205.20666C0%204.91013%200.0959347%204.66593%200.287805%204.47406C0.479675%204.28219%200.723874%204.18626%201.0204%204.18626C1.31693%204.18626%201.56113%204.28219%201.753%204.47406L3.74147%206.46254Z%27%20fill%3D%27%23041A71%27%2F%3E%3C%2Fsvg%3E"); 3616 background-repeat: no-repeat; 3617 background-position: center; 3618 background-size: contain; 3619 border: none; 3620 transform: none; 3621} 3622 3623/* ââ Lightbox ââ */ 3624.skbab-lightbox { 3625 position: fixed; 3626 inset: 0; 3627 z-index: 9999; 3628 display: flex; 3629 align-items: center; 3630 justify-content: center; 3631 opacity: 0; 3632 pointer-events: none; 3633 transition: opacity 0.25s ease; 3634} 3635.skbab-lightbox.is-open { opacity: 1; pointer-events: auto; } 3636.skbab-lightbox__backdrop { 3637 position: absolute; 3638 inset: 0; 3639 background: rgba(4, 26, 113, 0.43); 3640 backdrop-filter: blur(4px); 3641 -webkit-backdrop-filter: blur(6px); 3642 cursor: pointer; 3643 display: block!important; 3644 z-index: 0; 3645} 3646.skbab-lightbox__dialog { 3647 position: relative; 3648 z-index: 1; 3649 width: min(92vw, 690px); 3650 display: flex; 3651 flex-direction: column; 3652 gap: 12px; 3653 padding: 16px; 3654} 3655.skbab-lightbox__header { 3656 display: flex; 3657 align-items: center; 3658 justify-content: flex-end; 3659 gap: 12px; 3660} 3661.skbab-lightbox__counter { 3662 color: rgba(255, 255, 255, 0.65); 3663 font-size: 13px; 3664 font-weight: 600; 3665 letter-spacing: 0.5px; 3666} 3667.skbab-lightbox__close { 3668 width: 40px; 3669 height: 40px; 3670 border-radius: 50%; 3671 background: rgba(255, 255, 255, 0.15); 3672 border: 1.5px solid rgba(255, 255, 255, 0.25); 3673 cursor: pointer; 3674 display: flex; 3675 align-items: center; 3676 justify-content: center; 3677 color: #ffffff; 3678 padding: 0; 3679 transition: background 0.15s ease, transform 0.15s ease; 3680} 3681.skbab-lightbox__close:hover { background: rgba(255, 255, 255, 0.28); transform: scale(1.08); } 3682.skbab-lightbox .skbab-swiper-main { 3683 --swiper-navigation-color: #ffffff; 3684 --swiper-navigation-size: 16px; 3685 width: 100%; 3686 height: min(65vh, 640px); 3687 border-radius: 12px; 3688 overflow: hidden; 3689 background: rgba(255, 255, 255, 0.04); 3690} 3691.skbab-lightbox .skbab-swiper-main .swiper-slide { 3692 display: flex; 3693 align-items: center; 3694 justify-content: center; 3695 width: 100%; 3696 height: 100%; 3697 padding: 20px; 3698 box-sizing: border-box; 3699 flex-shrink: 0; 3700} 3701.skbab-lightbox .skbab-swiper-main .swiper-slide img { 3702 max-width: 100%; 3703 max-height: 100%; 3704 width: auto; 3705 height: auto; 3706 object-fit: contain; 3707 display: block; 3708 user-select: none; 3709 border-radius: 6px; 3710} 3711.skbab-lightbox .skbab-swiper-main .swiper-button-prev, 3712.skbab-lightbox .skbab-swiper-main .swiper-button-next { 3713 width: 44px; 3714 height: 44px; 3715 border-radius: 50%; 3716 background: rgba(255, 255, 255, 0.18); 3717 border: 1.5px solid rgba(255, 255, 255, 0.28); 3718 transition: background 0.15s ease; 3719} 3720.skbab-lightbox .skbab-swiper-main .swiper-button-prev:hover, 3721.skbab-lightbox .skbab-swiper-main .swiper-button-next:hover { background: rgba(255, 255, 255, 0.32); } 3722.skbab-lightbox .skbab-swiper-thumbs { flex-shrink: 0; padding: 4px 0; } 3723.skbab-lightbox .skbab-swiper-thumbs .swiper-slide { 3724 width: 72px !important; 3725 height: 72px; 3726 border-radius: 8px; 3727 overflow: hidden; 3728 cursor: pointer; 3729 opacity: 0.5; 3730 border: 2.5px solid transparent; 3731 transition: opacity 0.15s ease, border-color 0.15s ease; 3732} 3733.skbab-lightbox .skbab-swiper-thumbs .swiper-slide-thumb-active { opacity: 1; border-color: #00C9D9; } 3734.skbab-lightbox .skbab-swiper-thumbs .swiper-slide img { 3735 width: 100%; 3736 height: 100%; 3737 object-fit: cover; 3738 display: block; 3739} 3740 3741/* ââ Responsive â Tablet <= 989px ââ */ 3742@media screen and (max-width: 989px) { 3743 .wakewater-skio-bab .skbab-layout { 3744 grid-template-columns: 1fr; 3745 gap: 24px; 3746 } 3747 .wakewater-skio-bab .skbab-media { position: static; } 3748 .wakewater-skio-bab .skbab-mosaic { 3749 display: flex; 3750 flex-direction: row; 3751 flex-wrap: nowrap; 3752 overflow-x: scroll; 3753 overflow-y: hidden; 3754 scroll-snap-type: x mandatory; 3755 -webkit-overflow-scrolling: touch; 3756 scroll-behavior: smooth; 3757 padding: 0; 3758 gap: 0; 3759 scrollbar-width: none; 3760 } 3761 .wakewater-skio-bab .skbab-mosaic::-webkit-scrollbar { display: none; } 3762 .wakewater-skio-bab .skbab-mosaic__cell, 3763 .wakewater-skio-bab .skbab-mosaic__cell--1 { 3764 min-width: 100%; 3765 width: 100%; 3766 flex-shrink: 0; 3767 scroll-snap-align: start; 3768 grid-row: auto; 3769 grid-column: auto; 3770 border-radius: 0; 3771 } 3772 .wakewater-skio-bab .skbab-mosaic__img { aspect-ratio: 1; width: 100%; height: auto; } 3773 .wakewater-skio-bab .skbab-mosaic__dots { display: flex; } 3774 .wakewater-skio-bab .skbab-headline { font-size: clamp(24px, 7vw, 34px); } 3775 .wakewater-skio-bab .skbab-price-current { font-size: 30px; } 3776 .wakewater-skio-bab .skbab-price-compare { font-size: 18px; } 3777 .wakewater-skio-bab .skbab-products { grid-template-columns: repeat(3, 1fr); } 3778 .wakewater-skio-bab .skbab-benefits { grid-template-columns: 1fr; } 3779 .wakewater-skio-bab .skbab-subscribe-benefits { grid-template-columns: 1fr; } 3780 .wakewater-skio-bab .skbab-purchase-option__row { flex-wrap: wrap; gap: 8px; } 3781} 3782 3783/* ââ Responsive â Small Mobile <= 480px ââ */ 3784@media screen and (max-width: 480px) { 3785 .wakewater-skio-bab { padding: 28px 0 48px; } 3786 .wakewater-skio-bab .skbab-buybox { padding: 24px 0px 30px; } 3787 .wakewater-skio-bab .skbab-tab { font-size: 13px; padding: 12px 8px 10px; } 3788 .wakewater-skio-bab .skbab-tab-content { padding: 20px 14px 24px; } 3789 .wakewater-skio-bab .skbab-headline { font-size: 24px; } 3790 .wakewater-skio-bab .skbab-price-current { font-size: 26px; } 3791 .wakewater-skio-bab .skbab-price-compare { font-size: 16px; } 3792 .wakewater-skio-bab .skbab-savings-bar { font-size: 11px; padding: 11px 14px; } 3793 .wakewater-skio-bab .skbab-savings-bar strong { font-size: 13px; padding: 4px 9px 5px; } 3794 .wakewater-skio-bab .js-skbab-savings-pct { font-size: 13px; } 3795 .wakewater-skio-bab .skbab-tier__label { font-size: 10px; } 3796 .wakewater-skio-bab .skbab-tier__price-label { font-size: 9.5px; } 3797 .wakewater-skio-bab .skbab-card { padding: 10px 8px; gap: 6px; } 3798 .wakewater-skio-bab .skbab-card__name { font-size: 9.5px; } 3799 .wakewater-skio-bab .skbab-variant-btn { font-size: 7.5px; padding: 3px 5px; } 3800 .wakewater-skio-bab .skbab-purchase-option__title { font-size: 12px; } 3801 .wakewater-skio-bab .skbab-atc { font-size: 13px; min-height: 56px; } 3802 .wakewater-skio-bab .skbab-trust { gap: 18px; } 3803 .skbab-lightbox__dialog { width: 100vw; padding: 12px; } 3804 .skbab-lightbox .skbab-swiper-main { height: min(55vh, 480px); } 3805 .skbab-lightbox .skbab-swiper-thumbs .swiper-slide { width: 60px !important; height: 60px; } 3806} 3807</style>
3807<script> 3808 window.__wwSelectorImgs = window.__wwSelectorImgs || {}; 3809 window.__wwBadges = window.__wwBadges || {};window.__wwSelectorImgs["blue-raspberry-electrolytes"] = "\/\/wakewater.com\/cdn\/shop\/files\/BlueRaspberry-Selector.jpg?v=1789670701\u0026width=300";window.__wwSelectorImgs["wakewater-hydration-lemon-lime"] = "\/\/wakewater.com\/cdn\/shop\/files\/LemonLime-Selector-v2.jpg?v=1788386469\u0026width=300";window.__wwSelectorImgs["hydration-fruit-punch"] = "\/\/wakewater.com\/cdn\/shop\/files\/FruitPunch-Selector.jpg?v=1789670701\u0026width=300";window.__wwSelectorImgs["watermelon-electrolytes"] = "\/\/wakewater.com\/cdn\/shop\/files\/Watermelon-Selector.jpg?v=1789670701\u0026width=300";window.__wwSelectorImgs["grape-electrolytes"] = "\/\/wakewater.com\/cdn\/shop\/files\/Grape-Selector.jpg?v=1789670702\u0026width=300";window.__wwSelectorImgs["grapefruit-electrolytes"] = "\/\/wakewater.com\/cdn\/shop\/files\/Grapefruit-Selector.jpg?v=1789670701\u0026width=300";window.__wwSelectorImgs["peach-rings-electrolytes-copy"] = "\/\/wakewater.com\/cdn\/shop\/files\/PeachRings-Selector.png?v=1789670702\u0026width=300";window.__wwSelectorImgs["green-apple-electrolytes"] = "\/\/wakewater.com\/cdn\/shop\/files\/GreenApple-Selector.jpg?v=1789670701\u0026width=300";window.__wwSelectorImgs["unflavoured-electrolytes"] = "\/\/wakewater.com\/cdn\/shop\/files\/Unflavoured-Selector.jpg?v=1789670701\u0026width=300";window.__wwSelectorImgs["salted-caramel-electrolytes"] = "\/\/wakewater.com\/cdn\/shop\/files\/0002-3378216635885767820.png?v=1790271802\u0026width=300";window.__wwBadges["salted-caramel-electrolytes"] = "new";window.__wwSelectorImgs["wakewater-custom-box"] = "\/\/wakewater.com\/cdn\/shop\/files\/WebsiteImages-ProductPillarImages-Bundle_1013484a-a8b2-4a61-863f-bc641171841e.jpg?v=1790261999\u0026width=300";window.__wwSelectorImgs["blue-raspberry-electrolytes"] = "\/\/wakewater.com\/cdn\/shop\/files\/BlueRaspberry-Selector.jpg?v=1789670701\u0026width=300";window.__wwSelectorImgs["wakewater-hydration-lemon-lime"] = "\/\/wakewater.com\/cdn\/shop\/files\/LemonLime-Selector-v2.jpg?v=1788386469\u0026width=300";window.__wwSelectorImgs["watermelon-electrolytes"] = "\/\/wakewater.com\/cdn\/shop\/files\/Watermelon-Selector.jpg?v=1789670701\u0026width=300";window.__wwSelectorImgs["grape-electrolytes"] = "\/\/wakewater.com\/cdn\/shop\/files\/Grape-Selector.jpg?v=1789670702\u0026width=300";window.__wwSelectorImgs["hydration-fruit-punch"] = "\/\/wakewater.com\/cdn\/shop\/files\/FruitPunch-Selector.jpg?v=1789670701\u0026width=300";window.__wwSelectorImgs["grapefruit-electrolytes"] = "\/\/wakewater.com\/cdn\/shop\/files\/Grapefruit-Selector.jpg?v=1789670701\u0026width=300";window.__wwSelectorImgs["salted-caramel-electrolytes"] = "\/\/wakewater.com\/cdn\/shop\/files\/0002-3378216635885767820.png?v=1790271802\u0026width=300";window.__wwBadges["salted-caramel-electrolytes"] = "new";window.__wwSelectorImgs["green-apple-electrolytes"] = "\/\/wakewater.com\/cdn\/shop\/files\/GreenApple-Selector.jpg?v=1789670701\u0026width=300";window.__wwSelectorImgs["peach-rings-electrolytes-copy"] = "\/\/wakewater.com\/cdn\/shop\/files\/PeachRings-Selector.png?v=1789670702\u0026width=300";window.__wwSelectorImgs["unflavoured-electrolytes"] = "\/\/wakewater.com\/cdn\/shop\/files\/Unflavoured-Selector.jpg?v=1789670701\u0026width=300";window.__wwSelectorImgs["wakewater-custom-box"] = "\/\/wakewater.com\/cdn\/shop\/files\/WebsiteImages-ProductPillarImages-Bundle_1013484a-a8b2-4a61-863f-bc641171841e.jpg?v=1790261999\u0026width=300";</script>
3809<script type="application/json" id="skbab-config-template--31712463618334__wakewater_skio_build_a_box_eA3dC4"> 3810 { 3811 "sectionId": "template--31712463618334__wakewater_skio_build_a_box_eA3dC4", 3812 "skioProductId": 10040200691998, 3813 "oneboxRedirects": [{ "param": "plus", "url": "\/products\/wakewater-custom-box-electrolytes-individual-product-copy" },{ "param": "electrolytes", "url": "\/products\/wakewater-custom-box-individual-product" }], 3814 "oneboxRedirectDefault": "\/products\/wakewater-custom-box-individual-product", 3815 "preselectSubscribe": true, 3816 "baseProductPrice": 21.99, 3817 "unitsPerProduct": 10, 3818 "unitPriceSuffix": "stick", 3819 "sellingPlanGroups": [{"id":"56fa0471e9f0bfef3caa1700dc802d31c22c6932","name":"Dynamic Box Subscription","options":[{"name":"Dynamic Box Subscription","position":1,"values":["Every 60 days","Every 30 days","Every 90 days"]}],"selling_plans":[{"id":9669771550,"name":"Every 60 days","description":null,"options":[{"name":"Dynamic Box Subscription","position":1,"value":"Every 60 days"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":15}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":9669017886,"name":"Every 30 days","description":null,"options":[{"name":"Dynamic Box Subscription","position":1,"value":"Every 30 days"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":15}],"checkout_charge":{"value_type":"percentage","value":100}},{"id":9669804318,"name":"Every 90 days","description":null,"options":[{"name":"Dynamic Box Subscription","position":1,"value":"Every 90 days"}],"recurring_deliveries":true,"price_adjustments":[{"order_count":null,"position":1,"value_type":"percentage","value":15}],"checkout_charge":{"value_type":"percentage","value":100}}],"app_id":"SKIO"}], 3820 "sellingPlanFilterKeywords": [], 3821 "tiers": [], 3822 "tierQuantitySuffix": "POUCHES", 3823 "tierBadges": [{ 3824 "position": 1, 3825 "text": "", 3826 "tierTitle": "30 STICKS", 3827 "defaultTier": false 3828 },{ 3829 "position": 2, 3830 "text": "Most Popular", 3831 "tierTitle": "60 Sticks", 3832 "defaultTier": true 3833 },{ 3834 "position": 3, 3835 "text": "Best Value", 3836 "tierTitle": "90 Sticks", 3837 "defaultTier": false 3838 }] 3839 } 3840</script>
3840 3841 3842<section 3843 class="wakewater-skio-bab" 3844 id="wakewater-skio-bab-template--31712463618334__wakewater_skio_build_a_box_eA3dC4" 3845 data-section-id="template--31712463618334__wakewater_skio_build_a_box_eA3dC4" 3846 aria-label="BUILD A BUNDLE" 3847> 3848 <div class="skbab-layout page-width"><div class="skbab-media"> 3849 3850 <div class="skbab-mosaic" data-count="8" id="skbab-mosaic-template--31712463618334__wakewater_skio_build_a_box_eA3dC4"><div class="skbab-mosaic__cell skbab-mosaic__cell--1" data-index="0"> 3851 <img src="//wakewater.com/cdn/shop/files/0001-6751412741558405243.png?v=1790262005&width=1400" alt="WakeWater drink mix bundle pouches and stick with zero sugar, 10 calories per stick, mix and match callouts" srcset="//wakewater.com/cdn/shop/files/0001-6751412741558405243.png?v=1790262005&width=352 352w, //wakewater.com/cdn/shop/files/0001-6751412741558405243.png?v=1790262005&width=832 832w, //wakewater.com/cdn/shop/files/0001-6751412741558405243.png?v=1790262005&width=1200 1200w, //wakewater.com/cdn/shop/files/0001-6751412741558405243.png?v=1790262005&width=1400 1400w" width="1400" height="1400" loading="lazy" class="skbab-mosaic__img"> 3852 </div><div class="skbab-mosaic__cell skbab-mosaic__cell--2" data-index="1"> 3853 <img src="//wakewater.com/cdn/shop/files/0002-6751412741558405243.png?v=1790262005&width=1400" alt="WakeWater retail social proof with Costco, Walmart, Superstore and Sobeys photos and customer review" srcset="//wakewater.com/cdn/shop/files/0002-6751412741558405243.png?v=1790262005&width=352 352w, //wakewater.com/cdn/shop/files/0002-6751412741558405243.png?v=1790262005&width=832 832w, //wakewater.com/cdn/shop/files/0002-6751412741558405243.png?v=1790262005&width=1200 1200w, //wakewater.com/cdn/shop/files/0002-6751412741558405243.png?v=1790262005&width=1400 1400w" width="1400" height="1400" loading="lazy" class="skbab-mosaic__img"> 3854 </div><div class="skbab-mosaic__cell skbab-mosaic__cell--3" data-index="2"> 3855 <img src="//wakewater.com/cdn/shop/files/0003-6751412741558405243.png?v=1790262005&width=1400" alt="Buy more save more tiers of 30, 60 and 90 sticks, save up to 32 percent, subscribers save an extra 15 percent" srcset="//wakewater.com/cdn/shop/files/0003-6751412741558405243.png?v=1790262005&width=352 352w, //wakewater.com/cdn/shop/files/0003-6751412741558405243.png?v=1790262005&width=832 832w, //wakewater.com/cdn/shop/files/0003-6751412741558405243.png?v=1790262005&width=1200 1200w, //wakewater.com/cdn/shop/files/0003-6751412741558405243.png?v=1790262005&width=1400 1400w" width="1400" height="1400" loading="lazy" class="skbab-mosaic__img"> 3856 </div><div class="skbab-mosaic__cell skbab-mosaic__cell--4" data-index="3"> 3857 <img src="//wakewater.com/cdn/shop/files/0004-6751412741558405243.png?v=1790262005&width=1400" alt="Electrolytes and Energy+ formulas side by side, pick your formulas and mix them how you like" srcset="//wakewater.com/cdn/shop/files/0004-6751412741558405243.png?v=1790262005&width=352 352w, //wakewater.com/cdn/shop/files/0004-6751412741558405243.png?v=1790262005&width=832 832w, //wakewater.com/cdn/shop/files/0004-6751412741558405243.png?v=1790262005&width=1200 1200w, //wakewater.com/cdn/shop/files/0004-6751412741558405243.png?v=1790262005&width=1400 1400w" width="1400" height="1400" loading="lazy" class="skbab-mosaic__img"> 3858 </div><div class="skbab-mosaic__cell skbab-mosaic__cell--5" data-index="4"> 3859 <img src="//wakewater.com/cdn/shop/files/0005-6751412741558405243.png?v=1790262004&width=1400" alt="Comparison table of WakeWater Electrolytes formula versus other brands on sodium, potassium, sugar and sweetener" srcset="//wakewater.com/cdn/shop/files/0005-6751412741558405243.png?v=1790262004&width=352 352w, //wakewater.com/cdn/shop/files/0005-6751412741558405243.png?v=1790262004&width=832 832w, //wakewater.com/cdn/shop/files/0005-6751412741558405243.png?v=1790262004&width=1200 1200w, //wakewater.com/cdn/shop/files/0005-6751412741558405243.png?v=1790262004&width=1400 1400w" width="1400" height="1400" loading="lazy" class="skbab-mosaic__img"> 3860 </div><div class="skbab-mosaic__cell skbab-mosaic__cell--6" data-index="5"> 3861 <img src="//wakewater.com/cdn/shop/files/0006-6751412741558405243.png?v=1790262005&width=1400" alt="Why 800mg of sodium, every Electrolytes stick replaces what you sweat out, 800mg versus 30mg bars" srcset="//wakewater.com/cdn/shop/files/0006-6751412741558405243.png?v=1790262005&width=352 352w, //wakewater.com/cdn/shop/files/0006-6751412741558405243.png?v=1790262005&width=832 832w, //wakewater.com/cdn/shop/files/0006-6751412741558405243.png?v=1790262005&width=1200 1200w, //wakewater.com/cdn/shop/files/0006-6751412741558405243.png?v=1790262005&width=1400 1400w" width="1400" height="1400" loading="lazy" class="skbab-mosaic__img"> 3862 </div><div class="skbab-mosaic__cell skbab-mosaic__cell--7" data-index="6"> 3863 <img src="//wakewater.com/cdn/shop/files/0007-6751412741558405243.png?v=1790262005&width=1400" alt="Tear pour enjoy steps for WakeWater drink mix sticks for mornings, workouts and travel" srcset="//wakewater.com/cdn/shop/files/0007-6751412741558405243.png?v=1790262005&width=352 352w, //wakewater.com/cdn/shop/files/0007-6751412741558405243.png?v=1790262005&width=832 832w, //wakewater.com/cdn/shop/files/0007-6751412741558405243.png?v=1790262005&width=1200 1200w, //wakewater.com/cdn/shop/files/0007-6751412741558405243.png?v=1790262005&width=1400 1400w" width="1400" height="1400" loading="lazy" class="skbab-mosaic__img"> 3864 </div><div class="skbab-mosaic__cell skbab-mosaic__cell--8" data-index="7"> 3865 <img src="//wakewater.com/cdn/shop/files/0008-6751412741558405243.png?v=1790262005&width=1400" alt="WakeWater flavour wall with Electrolytes caffeine free flavours and Energy+ 85mg caffeine flavours, every pouch has 10 sticks" srcset="//wakewater.com/cdn/shop/files/0008-6751412741558405243.png?v=1790262005&width=352 352w, //wakewater.com/cdn/shop/files/0008-6751412741558405243.png?v=1790262005&width=832 832w, //wakewater.com/cdn/shop/files/0008-6751412741558405243.png?v=1790262005&width=1200 1200w, //wakewater.com/cdn/shop/files/0008-6751412741558405243.png?v=1790262005&width=1400 1400w" width="1400" height="1400" loading="lazy" class="skbab-mosaic__img"> 3866 </div></div><div class="skbab-mosaic__dots" role="tablist" aria-label="Product images"><button class="skbab-mosaic__dot is-active" type="button" role="tab" aria-selected="true" data-index="0"></button><button class="skbab-mosaic__dot" type="button" role="tab" aria-selected="false" data-index="1"></button><button class="skbab-mosaic__dot" type="button" role="tab" aria-selected="false" data-index="2"></button><button class="skbab-mosaic__dot" type="button" role="tab" aria-selected="false" data-index="3"></button><button class="skbab-mosaic__dot" type="button" role="tab" aria-selected="false" data-index="4"></button><button class="skbab-mosaic__dot" type="button" role="tab" aria-selected="false" data-index="5"></button><button class="skbab-mosaic__dot" type="button" role="tab" aria-selected="false" data-index="6"></button><button class="skbab-mosaic__dot" type="button" role="tab" aria-selected="false" data-index="7"></button></div></div><div class="skbab-lightbox" id="skbab-lightbox-template--31712463618334__wakewater_skio_build_a_box_eA3dC4" role="dialog" aria-modal="true" aria-label="Product images"> 3867 <div class="skbab-lightbox__backdrop"></div> 3868 <div class="skbab-lightbox__dialog"> 3869 <div class="skbab-lightbox__header">
3870 <span class="skbab-lightbox__counter" aria-live="polite"></span> 3871 <button class="skbab-lightbox__close" type="button" aria-label="Close image viewer"> 3872 <svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg> 3873 </button> 3874 </div> 3875 <div class="swiper skbab-swiper-main"> 3876 <div class="swiper-wrapper"><div class="swiper-slide"> 3877 <img src="//wakewater.com/cdn/shop/files/0001-6751412741558405243.png?v=1790262005&width=1600" alt="WakeWater drink mix bundle pouches and stick with zero sugar, 10 calories per stick, mix and match callouts" loading="lazy" /> 3878 </div><div class="swiper-slide"> 3879 <img src="//wakewater.com/cdn/shop/files/0002-6751412741558405243.png?v=1790262005&width=1600" alt="WakeWater retail social proof with Costco, Walmart, Superstore and Sobeys photos and customer review" loading="lazy" /> 3880 </div><div class="swiper-slide"> 3881 <img src="//wakewater.com/cdn/shop/files/0003-6751412741558405243.png?v=1790262005&width=1600" alt="Buy more save more tiers of 30, 60 and 90 sticks, save up to 32 percent, subscribers save an extra 15 percent" loading="lazy" /> 3882 </div><div class="swiper-slide"> 3883 <img src="//wakewater.com/cdn/shop/files/0004-6751412741558405243.png?v=1790262005&width=1600" alt="Electrolytes and Energy+ formulas side by side, pick your formulas and mix them how you like" loading="lazy" /> 3884 </div><div class="swiper-slide"> 3885 <img src="//wakewater.com/cdn/shop/files/0005-6751412741558405243.png?v=1790262004&width=1600" alt="Comparison table of WakeWater Electrolytes formula versus other brands on sodium, potassium, sugar and sweetener" loading="lazy" /> 3886 </div><div class="swiper-slide"> 3887 <img src="//wakewater.com/cdn/shop/files/0006-6751412741558405243.png?v=1790262005&width=1600" alt="Why 800mg of sodium, every Electrolytes stick replaces what you sweat out, 800mg versus 30mg bars" loading="lazy" /> 3888 </div><div class="swiper-slide"> 3889 <img src="//wakewater.com/cdn/shop/files/0007-6751412741558405243.png?v=1790262005&width=1600" alt="Tear pour enjoy steps for WakeWater drink mix sticks for mornings, workouts and travel" loading="lazy" /> 3890 </div><div class="swiper-slide"> 3891 <img src="//wakewater.com/cdn/shop/files/0008-6751412741558405243.png?v=1790262005&width=1600" alt="WakeWater flavour wall with Electrolytes caffeine free flavours and Energy+ 85mg caffeine flavours, every pouch has 10 sticks" loading="lazy" /> 3892 </div></div> 3893 <div class="swiper-button-prev"></div> 3894 <div class="swiper-button-next"></div> 3895 </div><div class="swiper skbab-swiper-thumbs" thumbsSlider=""> 3896 <div class="swiper-wrapper"><div class="swiper-slide"> 3897 <img src="//wakewater.com/cdn/shop/files/0001-6751412741558405243.png?v=1790262005&width=200" alt="WakeWater drink mix bundle pouches and stick with zero sugar, 10 calories per stick, mix and match callouts" loading="lazy" /> 3898 </div><div class="swiper-slide"> 3899 <img src="//wakewater.com/cdn/shop/files/0002-6751412741558405243.png?v=1790262005&width=200" alt="WakeWater retail social proof with Costco, Walmart, Superstore and Sobeys photos and customer review" loading="lazy" /> 3900 </div><div class="swiper-slide"> 3901 <img src="//wakewater.com/cdn/shop/files/0003-6751412741558405243.png?v=1790262005&width=200" alt="Buy more save more tiers of 30, 60 and 90 sticks, save up to 32 percent, subscribers save an extra 15 percent" loading="lazy" /> 3902 </div><div class="swiper-slide"> 3903 <img src="//wakewater.com/cdn/shop/files/0004-6751412741558405243.png?v=1790262005&width=200" alt="Electrolytes and Energy+ formulas side by side, pick your formulas and mix them how you like" loading="lazy" /> 3904 </div><div class="swiper-slide"> 3905 <img src="//wakewater.com/cdn/shop/files/0005-6751412741558405243.png?v=1790262004&width=200" alt="Comparison table of WakeWater Electrolytes formula versus other brands on sodium, potassium, sugar and sweetener" loading="lazy" /> 3906 </div><div class="swiper-slide"> 3907 <img src="//wakewater.com/cdn/shop/files/0006-6751412741558405243.png?v=1790262005&width=200" alt="Why 800mg of sodium, every Electrolytes stick replaces what you sweat out, 800mg versus 30mg bars" loading="lazy" /> 3908 </div><div class="swiper-slide"> 3909 <img src="//wakewater.com/cdn/shop/files/0007-6751412741558405243.png?v=1790262005&width=200" alt="Tear pour enjoy steps for WakeWater drink mix sticks for mornings, workouts and travel" loading="lazy" /> 3910 </div><div class="swiper-slide"> 3911 <img src="//wakewater.com/cdn/shop/files/0008-6751412741558405243.png?v=1790262005&width=200" alt="WakeWater flavour wall with Electrolytes caffeine free flavours and Energy+ 85mg caffeine flavours, every pouch has 10 sticks" loading="lazy" /> 3912 </div></div> 3913 </div></div> 3914 </div><div class="skbab-buybox"><p class="skbab-vendor">WakeWater Beverage Co</p><h2 class="skbab-headline">BUILD A BUNDLE</h2><div class="skbab-fera-row"> 3915 <div data-fera-container="413254" data-product_id="9634437398814"></div><span class="skbab-fera-label"><span style="color: #EAB308; letter-spacing: 2px;">â â â â â </span> 2,000+ five-star reviews<br>10 million+ servings sold</span></div>
3915<div class="skbab-price-row" aria-live="polite" aria-atomic="true"> 3916 <span class="skbab-price-current js-skbab-current-price">$0.00</span> 3917 <span class="skbab-price-compare js-skbab-compare-price" style="display:none;">$0.00</span> 3918 <span class="skbab-save-badge js-skbab-save-badge" style="display:none;">Save <span class="js-skbab-save-pct">0</span>%</span> 3919 </div><p class="skbab-description">Your hydration, your way. Pick your flavours and stock up at the best price.</p><ul class="skbab-benefits"><li > 3920 <span class="skbab-benefits__check"> 3921 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8" fill="none"> 3922 <path d="M3.5 5.5L1.5 3.5L0.5 4.5L3.5 7.5L9.5 1.5L8.5 0.5L3.5 5.5Z" fill="white"/> 3923 </svg> 3924 </span> 3925 800mg Sodium. Hydration That Actually Works. 3926 </li><li > 3927 <span class="skbab-benefits__check"> 3928 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8" fill="none"> 3929 <path d="M3.5 5.5L1.5 3.5L0.5 4.5L3.5 7.5L9.5 1.5L8.5 0.5L3.5 5.5Z" fill="white"/> 3930 </svg> 3931 </span> 3932 Zero Sugar. Naturally Sweetened. 3933 </li><li > 3934 <span class="skbab-benefits__check"> 3935 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8" fill="none"> 3936 <path d="M3.5 5.5L1.5 3.5L0.5 4.5L3.5 7.5L9.5 1.5L8.5 0.5L3.5 5.5Z" fill="white"/> 3937 </svg> 3938 </span> 3939 Electrolytes + Energy. One Bundle. 3940 </li><li > 3941 <span class="skbab-benefits__check"> 3942 <svg xmlns="http://www.w3.org/2000/svg" width="10" height="8" viewBox="0 0 10 8" fill="none"> 3943 <path d="M3.5 5.5L1.5 3.5L0.5 4.5L3.5 7.5L9.5 1.5L8.5 0.5L3.5 5.5Z" fill="white"/> 3944 </svg> 3945 </span> 3946 Made to Move With You 3947 </li></ul><div class="skbab-tabs-wrap"> 3948 <div class="skbab-tabs"> 3949 <button class="skbab-tab skbab-tab--onebox" type="button" data-tab="onebox"> 3950 One Pouch 3951 <span class="skbab-tab__price-line"><span class="js-skbab-onebox-per-pouch">$0.00</span> / stick</span> 3952 </button> 3953 <button class="skbab-tab skbab-tab--bundle is-active" type="button" data-tab="bundle"><span class="skbab-tab__badge">BEST VALUE</span>Bundle & Save 3954 <span class="skbab-tab__price-line js-skbab-bundle-per-pouch"></span> 3955 </button> 3956 </div> 3957 <div class="skbab-tab-content"><div class="skbab-tiers-wrap"> 3958 <p class="skbab-descriptor"><strong>How it works:</strong>Every pouch has 10 sticks. Mix and match your flavours. 3959 </p><div class="skbab-tiers" role="radiogroup" aria-label="Select bundle size" id="skbab-tiers-template--31712463618334__wakewater_skio_build_a_box_eA3dC4"> 3960 <div class="skbab-tiers__badges" aria-hidden="true"></div> 3961 <div class="skbab-tiers__options"> 3962 <div class="skbab-tiers__track" aria-hidden="true"> 3963 <div class="skbab-tiers__track-fill js-skbab-track-fill"></div> 3964 </div> 3965 </div> 3966 </div> 3967 </div><div class="skbab-savings-bar" aria-live="polite" aria-atomic="true"> 3968 YOU'RE SAVING: <strong><span class="js-skbab-savings-pct">0%</span></strong> 3969 </div><p class="skbab-section-label" style="margin-top: 10px; border-top: 1px solid rgba(4, 26, 113, 0.30); padding-top: 20px;">Select Flavor</p><div class="skbab-products" id="skbab-products-template--31712463618334__wakewater_skio_build_a_box_eA3dC4"> 3970 <div class="skbab-products__loading" style="text-align:center; padding: 40px 0; color: #041A71; font-family: Montserrat; font-size: 14px; font-weight: 600;"> 3971 Loading products... 3972 </div> 3973 </div><p class="skbab-section-label" style="border-top: 1px solid rgba(4, 26, 113, 0.30); padding-top: 20px; margin-top: 4px;">Select Frequency</p> 3974 3975 <div class="skbab-purchase-options"><label class="skbab-purchase-option skbab-purchase-option--subscribe is-selected" style="display:none;"> 3976 <input 3977 class="skbab-radio" 3978 type="radio" 3979 name="skbab-purchase-template--31712463618334__wakewater_skio_build_a_box_eA3dC4" 3980 value="subscribe" 3981 checked 3982 ><span class="skbab-subscribe-badge">SAVE AN EXTRA 15%</span><div class="skbab-purchase-option__inner"> 3983 <div class="skbab-purchase-option__row"> 3984 <div class="skbab-purchase-option__left">
3985 <span class="skbab-radio-dot" aria-hidden="true"></span> 3986 <span class="skbab-purchase-option__title">SUBSCRIBE & SAVE</span> 3987 </div> 3988 <div class="skbab-purchase-option__prices"> 3989 <span class="skbab-po-compare js-skbab-subscribe-compare" style="display:none;"></span> 3990 <span class="skbab-po-price js-skbab-subscribe-price"></span> 3991 </div> 3992 </div> 3993 <ul class="skbab-subscribe-benefits"><li><svg xmlns="http://www.w3.org/2000/svg" width="8" height="6" viewBox="0 0 8 6" fill="none"><path d="M2.5 4.5L0.5 2.5L0 3L2.5 5.5L7.5 0.5L7 0L2.5 4.5Z" fill="#041A71"/></svg> Cancel anytime, no commitments</li><li><svg xmlns="http://www.w3.org/2000/svg" width="8" height="6" viewBox="0 0 8 6" fill="none"><path d="M2.5 4.5L0.5 2.5L0 3L2.5 5.5L7.5 0.5L7 0L2.5 4.5Z" fill="#041A71"/></svg> Free shipping, always</li><li><svg xmlns="http://www.w3.org/2000/svg" width="8" height="6" viewBox="0 0 8 6" fill="none"><path d="M2.5 4.5L0.5 2.5L0 3L2.5 5.5L7.5 0.5L7 0L2.5 4.5Z" fill="#041A71"/></svg> Never run out</li><li><svg xmlns="http://www.w3.org/2000/svg" width="8" height="6" viewBox="0 0 8 6" fill="none"><path d="M2.5 4.5L0.5 2.5L0 3L2.5 5.5L7.5 0.5L7 0L2.5 4.5Z" fill="#041A71"/></svg> Swap flavours or skip a delivery whenever</li></ul> 3994 <div class="skbab-frequency-wrap js-skbab-frequency-wrap" style="display:none;"> 3995 <label class="skbab-frequency-label" for="skbab-frequency-template--31712463618334__wakewater_skio_build_a_box_eA3dC4">Delivery Frequency</label> 3996 <select class="skbab-frequency-select js-skbab-frequency-select" id="skbab-frequency-template--31712463618334__wakewater_skio_build_a_box_eA3dC4"></select> 3997 </div> 3998 </div> 3999 </label><label class="skbab-purchase-option skbab-purchase-option--onetime"> 4000 <input 4001 class="skbab-radio" 4002 type="radio" 4003 name="skbab-purchase-template--31712463618334__wakewater_skio_build_a_box_eA3dC4" 4004 value="onetime" 4005 4006 > 4007 <div class="skbab-purchase-option__inner"> 4008 <div class="skbab-purchase-option__row"> 4009 <div class="skbab-purchase-option__left"> 4010 <span class="skbab-radio-dot" aria-hidden="true"></span> 4011 <span class="skbab-purchase-option__title">ONE TIME PURCHASE</span> 4012 </div> 4013 <div class="skbab-purchase-option__prices"> 4014 <span class="skbab-po-compare js-skbab-onetime-compare" style="display:none;"></span> 4015 <span class="skbab-po-price js-skbab-onetime-price"></span> 4016 </div> 4017 </div> 4018 </div> 4019 </label> 4020 </div><button 4021 class="skbab-atc" 4022 type="button" 4023 id="skbab-atc-template--31712463618334__wakewater_skio_build_a_box_eA3dC4" 4024 disabled 4025 aria-disabled="true" 4026 aria-live="polite" 4027 > 4028 <span class="skbab-atc__label js-skbab-atc-label">ADD TO CART</span> 4029 <span class="skbab-atc__price-wrap"> 4030 <span class="skbab-atc__price js-skbab-atc-price"></span> 4031 <span class="skbab-atc__compare js-skbab-atc-compare"></span> 4032 </span> 4033 </button><div class="skbab-trust" aria-hidden="true"><span class="skbab-trust__item"><img src="//wakewater.com/cdn/shop/files/fi_6734704.svg?v=1771940799&width=48" alt="" srcset="//wakewater.com/cdn/shop/files/fi_6734704.svg?v=1771940799&width=24 24w" width="24" height="24" loading="lazy"> 4034Secure Checkout 4035 </span><span class="skbab-trust__item"><img src="//wakewater.com/cdn/shop/files/fi_7615749.svg?v=1771940799&width=48" alt="" srcset="//wakewater.com/cdn/shop/files/fi_7615749.svg?v=1771940799&width=24 24w" width="24" height="24" loading="lazy"> 4036Fast Shipping 4037 </span><span class="skbab-trust__item"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><path d="M12 3l7 2.5v5.2c0 4.4-3 8.4-7 9.8-4-1.4-7-5.4-7-9.8V5.5L12 3z" stroke="#041A71" stroke-width="1.5" stroke-linejoin="round"/>
4037<path d="M9 11.8l2.1 2.2L15 9.8" stroke="#041A71" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg>30 Day Guarantee 4038 </span></div> 4039 4040 </div></div><div class="skbab-faqs skbab-faqs--buybox"><div class="skbab-faq-item" > 4041 <button class="skbab-faq-header" type="button" aria-expanded="false"> 4042 <span class="skbab-faq-title">Ingredients</span> 4043 <span class="skbab-faq-icon"></span> 4044 </button> 4045 <div class="skbab-faq-content"> 4046 <div class="skbab-faq-content-inner"><div class="skbab-faq-text"><p>Sea Salt, Citric Acid, Potassium Chloride, Magnesium Citrate, Stevia, Calcium Carbonate, Natural Flavour, Silicon Dioxide</p></div></div> 4047 </div> 4048 </div></div></div> 4049 4050 </div> 4051</section> 4052
4053<script> 4054/* ============================================================= 4055 WAKEWATER SKIO BUILD-A-BOX â JAVASCRIPT 4056 ============================================================= */ 4057(function () { 4058 'use strict'; 4059 4060 const SKIO_API = 'https://api.skio.com/storefront-http/get-dynamic-box'; 4061 4062 /* ââ Main Class ââ */ 4063 class WakewaterSkioBab { 4064 4065 constructor(section) { 4066 this.section = section; 4067 this.sectionId = section.dataset.sectionId; 4068 4069 const configEl = document.getElementById(`skbab-config-${this.sectionId}`); 4070 if (!configEl) return; 4071 4072 try { this.config = JSON.parse(configEl.textContent); } 4073 catch (e) { console.error('[SKBAB] Config parse error:', e); return; } 4074 4075 /* SKIO data â populated by API */ 4076 this.skioBoxId = null; 4077 this.skioProducts = []; 4078 this.fixedDiscountTier = {}; 4079 this.sizeRange = [0, 999]; 4080 this.currencyCode = 'CAD'; 4081 this.sellingPlanId = null; 4082 this.sellingPlanDiscount = 0; 4083 this.sellingPlans = []; /* All available selling plans from SKIO */ 4084 4085 /* State */ 4086 this.quantities = {}; 4087 this.activeTierIndex = this._findDefaultTierIndex(); 4088 this.purchaseType = this.config.preselectSubscribe ? 'subscribe' : 'onetime'; 4089 4090 /* DOM cache */ 4091 const qs = sel => section.querySelector(sel); 4092 const qsa = sel => section.querySelectorAll(sel); 4093 4094 this.el = { 4095 currentPrice: qs('.js-skbab-current-price'), 4096 comparePrice: qs('.js-skbab-compare-price'), 4097 saveBadge: qs('.js-skbab-save-badge'), 4098 savePct: qs('.js-skbab-save-pct'), 4099 savingsPct: qs('.js-skbab-savings-pct'), 4100 tierBtns: qsa('.skbab-tier'), 4101 trackFill: qs('.js-skbab-track-fill'), 4102 productsGrid: qs(`#skbab-products-${this.sectionId}`), 4103 productCards: [], /* populated after API render */ 4104 atcBtn: qs(`#skbab-atc-${this.sectionId}`), 4105 atcLabel: qs('.js-skbab-atc-label'), 4106 atcPrice: qs('.js-skbab-atc-price'), 4107 atcCompare: qs('.js-skbab-atc-compare'), 4108 atcPriceWrap: qs('.skbab-atc__price-wrap'), 4109 mosaic: qs('.skbab-mosaic'), 4110 mosaicDots: qsa('.skbab-mosaic__dot'), 4111 tiersEl: qs('.skbab-tiers'), 4112 tiersBadges: qs('.skbab-tiers__badges'), 4113 tiersOptions: qs('.skbab-tiers__options'), 4114 bundlePerPouch: qs('.js-skbab-bundle-per-pouch'), 4115 oneboxPerPouch: qs('.js-skbab-onebox-per-pouch'), 4116 radios: qsa('.skbab-radio'), 4117 purchaseOptions: qsa('.skbab-purchase-option'), 4118 subscribeOption: qs('.skbab-purchase-option--subscribe'), 4119 subscribePrice: qs('.js-skbab-subscribe-price'), 4120 subscribeCompare: qs('.js-skbab-subscribe-compare'), 4121 onetimePrice: qs('.js-skbab-onetime-price'), 4122 onetimeCompare: qs('.js-skbab-onetime-compare'), 4123 frequencyWrap: qs('.js-skbab-frequency-wrap'), 4124 frequencySelect: qs('.js-skbab-frequency-select'), 4125 }; 4126 4127 /* Bootstrap â tier rendering happens after SKIO API fetch */ 4128 this._bindPurchaseOptions(); 4129 this._bindFrequencySelect(); 4130 this._bindAtcButton(); 4131 this._bindMosaicCarousel(); 4132 this._bindLightbox(); 4133 this._bindTabs(); 4134 this._updateAtcState(); 4135 this._updateOneboxPrice(); 4136 4137 /* Fetch SKIO data then render products */ 4138 this._fetchSkioBox(); 4139 } 4140 4141 4142 /* ââ SKIO API Fetch ââ */ 4143 async _fetchSkioBox() { 4144 const productId = this.config.skioProductId; 4145 if (!productId) { 4146 console.error('[SKBAB] No SKIO product ID configured'); 4147 this._showProductsError('No SKIO product ID configured. Add it in section settings.'); 4148 return; 4149 } 4150 4151 try { 4152 const res = await fetch(SKIO_API, { 4153 method: 'POST', 4154 headers: { 'Content-Type': 'application/json' }, 4155 body: JSON.stringify({ productPlatformId: String(productId) }) 4156 }); 4157 4158 if (!res.ok) throw new Error(`SKIO API returned ${res.status}`); 4159 4160 const data = await res.json(); 4161 if (!data.ok || !data.DynamicBox) throw new Error('Invalid SKIO response'); 4162 4163 const box = data.DynamicBox; 4164 this.skioBoxId = box.boxId; 4165 this.currencyCode = box.currencyCode || 'CAD'; 4166 4167 /* Diagnostic: SKIO's dynamic-box endpoint does not accept a currency 4168 or market parameter (per their public API docs), so it always 4169 returns prices in the store's base currency. If the shopper's 4170 active storefront currency differs from what SKIO sent back,
4171 flag it clearly here rather than failing silently. */ 4172 const activeCurrencyCheck = (window.Shopify && window.Shopify.currency && window.Shopify.currency.active) || null; 4173 if (activeCurrencyCheck && this.currencyCode && activeCurrencyCheck !== this.currencyCode) { 4174 console.warn( 4175 `[SKBAB] SKIO returned prices in ${this.currencyCode}, but the storefront is set to ${activeCurrencyCheck}. ` + 4176 `Converting using window.Shopify.currency.rate before display.` 4177 ); 4178 } 4179 4180 this.fixedDiscountTier = box.fixedDiscountTier || {}; 4181 this.percentDiscountTier = box.percentDiscountTier || {}; 4182 this.sizeRange = box.sizeRange || [0, 999]; 4183 4184 /* Extract ALL selling plans from SKIO response. 4185 SKIO returns sellingPlanGroup as an object keyed by GID: 4186 { "gid://shopify/SellingPlan/123": { priceAdjustmentType, priceAdjustmentAmount, ... } } */ 4187 const spGroup = box.sellingPlanGroup || box.SellingPlanGroup || null; 4188 let foundSellingPlan = false; 4189 4190 /* Build a lookup of plan names from the Shopify product selling_plan_groups */ 4191 const planNameMap = {}; 4192 (this.config.sellingPlanGroups || []).forEach(group => { 4193 (group.selling_plans || []).forEach(sp => { 4194 planNameMap[sp.id] = sp.name; 4195 }); 4196 }); 4197 4198 if (spGroup && typeof spGroup === 'object') { 4199 const planGids = Object.keys(spGroup); 4200 this.sellingPlans = planGids.map(gid => { 4201 const planData = spGroup[gid]; 4202 const numericId = Number(gid.replace('gid://shopify/SellingPlan/', '')); 4203 const discount = (planData.priceAdjustmentType === 'PERCENTAGE' && planData.priceAdjustmentAmount != null) 4204 ? Number(planData.priceAdjustmentAmount) : 0; 4205 console.log(discount, 'discountdiscountdiscountdiscount') 4206 return { 4207 id: numericId, 4208 name: planNameMap[numericId] || planData.name || ('Plan ' + numericId), 4209 discount: discount, 4210 }; 4211 }); 4212 4213 /* Filter out plans whose name contains any of the admin-configured keywords (case-insensitive) */ 4214 const filterKeywords = this.config.sellingPlanFilterKeywords || []; 4215 if (filterKeywords.length > 0) { 4216 this.sellingPlans = this.sellingPlans.filter(p => { 4217 const name = p.name.toLowerCase(); 4218 return !filterKeywords.some(kw => name.includes(kw)); 4219 }); 4220 } 4221 4222 if (this.sellingPlans.length > 0) { 4223 /* Default to the first available plan */ 4224 this.sellingPlanId = this.sellingPlans[0].id; 4225 this.sellingPlanDiscount = this.sellingPlans[0].discount; 4226 4227 if (this.el.subscribeOption) { 4228 this.el.subscribeOption.style.display = ''; 4229 foundSellingPlan = true; 4230 } 4231 4232 /* Populate frequency dropdown */ 4233 this._populateFrequencyDropdown(); 4234 } 4235 } 4236 4237 if (!foundSellingPlan) { 4238 this.purchaseType = 'onetime'; 4239 const onetimeRadio = this.section.querySelector('.skbab-radio[value="onetime"]'); 4240 if (onetimeRadio) onetimeRadio.checked = true; 4241 this._updatePurchaseOptionUI(); 4242 } 4243 4244 /* Map SKIO products to our format â keep ALL variants per product */ 4245 const order = box.settings?.productVariantOrder || []; 4246 this.skioProducts = (box.selectableProductVariants || []).map(p => { 4247 const allVariants = (p.productVariants || []).map(v => { 4248 const numId = v.platformId 4249 ? Number(v.platformId.replace('gid://shopify/ProductVariant/', '')) 4250 : 0; 4251 return { 4252 shopifyVariantId: numId, 4253 platformVariantId: v.platformId || '', 4254 title: v.productVariantTitle || v.title || '', 4255 price: v.price || 0, 4256 compareAtPrice: v.compareAtPrice || null, 4257 available: v.availableForSale !== false, 4258 }; 4259 }); 4260 const firstVariant = allVariants[0] || {}; 4261 return { 4262 skioProductId: p.productId, 4263 productTitle: p.productTitle, 4264 productImage: (window.__wwSelectorImgs && window.__wwSelectorImgs[p.productHandle]) || p.productImageSrc || '', 4265 productHandle: p.productHandle, 4266 badge: (window.__wwBadges && window.__wwBadges[p.productHandle]) || '', 4267 shopifyVariantId: firstVariant.shopifyVariantId || 0, 4268 platformVariantId: firstVariant.platformVariantId || '', 4269 price: firstVariant.price || 0, 4270 compareAtPrice: firstVariant.compareAtPrice || null, 4271 variants: allVariants, 4272 selectedVariantId: firstVariant.shopifyVariantId || 0, 4273 }; 4274 }); 4275 4276 /* Sort by SKIO productVariantOrder if available */ 4277 if (order.length > 0) { 4278 this.skioProducts.sort((a, b) => { 4279 const aIdx = order.indexOf(String(a.shopifyVariantId)); 4280 const bIdx = order.indexOf(String(b.shopifyVariantId)); 4281 return (aIdx === -1 ? 999 : aIdx) - (bIdx === -1 ? 999 : bIdx); 4282 }); 4283 } 4284 4285 /* Init quantities â keyed by selectedVariantId (changes when user picks variant) */
4286 this.skioProducts.forEach(p => { this.quantities[p.selectedVariantId] = 0; }); 4287 4288 /* Build tiers dynamically from percentDiscountTier or fixedDiscountTier */ 4289 this._buildDynamicTiers(); 4290 4291 /* Render product cards */ 4292 this._renderProducts(); 4293 this._bindProductCards(); 4294 4295 /* Auto-distribute products if a default tier is configured */ 4296 const defaultTier = this.config.tiers[this.activeTierIndex]; 4297 if (defaultTier && defaultTier.isDefault) { 4298 this._autoDistribute(defaultTier.quantity); 4299 } 4300 4301 this._update(); 4302 4303 } catch (err) { 4304 console.error('[SKBAB] Failed to fetch SKIO box:', err); 4305 this._showProductsError('Failed to load products. Please refresh the page.'); 4306 } 4307 } 4308 4309 _showProductsError(msg) { 4310 if (this.el.productsGrid) { 4311 this.el.productsGrid.innerHTML = `<div style="text-align:center; padding: 40px 0; color: #041A71; font-family: Montserrat; font-size: 14px;">${msg}</div>`; 4312 } 4313 } 4314 4315 4316 /* ââ Build Dynamic Tiers from SKIO percentDiscountTier or fixedDiscountTier ââ */ 4317 _buildDynamicTiers() { 4318 const pdt = this.percentDiscountTier; 4319 const fdt = this.fixedDiscountTier; 4320 4321 // console.log(pdt, 'pdtpdtpdtpdtpdt') 4322 4323 /* Determine which discount type is active */ 4324 const useFixed = (!pdt || Object.keys(pdt).length === 0) && fdt && Object.keys(fdt).length > 0; 4325 const tierSource = useFixed ? fdt : pdt; 4326 console.log(tierSource, 'tierSourcetierSourcetierSourcetierSource') 4327 4328 if (!tierSource || typeof tierSource !== 'object' || Object.keys(tierSource).length === 0) return; 4329 4330 const badgeConfig = this.config.tierBadges || []; 4331 4332 /* Build tiers sorted by quantity */ 4333 const entries = Object.entries(tierSource) 4334 .map(([qty, discountValue]) => ({ 4335 quantity: Number(qty), 4336 discountValue: Number(discountValue), 4337 })) 4338 .sort((a, b) => a.quantity - b.quantity); 4339 4340 if (entries.length === 0) return; 4341 4342 /* Store discount type for use in price display */ 4343 this._discountType = useFixed ? 'fixed' : 'percent'; 4344 4345 /* Build config.tiers array â calculate per-unit price for each tier */ 4346 const basePrice = this.config.baseProductPrice || 0; 4347 const unitsPerProduct = this.config.unitsPerProduct || 1; 4348 const suffix = this.config.unitPriceSuffix || 'each'; 4349 4350 const quantitySuffix = this.config.tierQuantitySuffix || 'POUCHES'; 4351 4352 this.config.tiers = entries.map((entry, i) => { 4353 const badgeMatch = badgeConfig.find(b => b.position === (i + 1)); 4354 4355 /* Tier label: block title override > quantity + suffix */ 4356 const tierTitle = badgeMatch && badgeMatch.tierTitle ? badgeMatch.tierTitle : `${entry.quantity} ${quantitySuffix}`; 4357 4358 /* Calculate discounted product price, then per-unit price */ 4359 console.log(basePrice, 'basePricediscountValueentry', entry.discountValue) 4360 const discountedProductPrice = useFixed 4361 ? Math.max(0, basePrice - entry.discountValue) 4362 : basePrice * (1 - entry.discountValue / 100); 4363 const perUnitPrice = discountedProductPrice / unitsPerProduct; 4364 const unitPriceLabel = `${this._formatMoney(perUnitPrice)} /${suffix}`; 4365 console.log(discountedProductPrice, 'discountedProductPricediscountedProductPricediscountedProductPricediscountedProductPrice') 4366 4367 /* Subscribe unit price: apply selling plan discount on top */ 4368 const subPct = this.sellingPlanDiscount || 0; 4369 const subPerUnitPrice = subPct > 0 ? perUnitPrice * (1 - subPct / 100) : perUnitPrice; 4370 const unitPriceLabelSubscribe = `${this._formatMoney(subPerUnitPrice)} /${suffix}`; 4371 4372 return { 4373 index: i, 4374 quantity: entry.quantity, 4375 label: tierTitle, 4376 badge: badgeMatch ? badgeMatch.text : '', 4377 isDefault: badgeMatch && badgeMatch.defaultTier ? true : false, 4378 discountValue: entry.discountValue, 4379 unitPriceLabel: unitPriceLabel, 4380 unitPriceLabelSubscribe: unitPriceLabelSubscribe, 4381 }; 4382 }); 4383 4384 /* Set default tier index â use admin-configured default, fall back to first tier */ 4385 const defaultIdx = this.config.tiers.findIndex(t => t.isDefault); 4386 this.activeTierIndex = defaultIdx >= 0 ? defaultIdx : 0; 4387 4388 /* Render tier badges */ 4389 if (this.el.tiersBadges) { 4390 this.el.tiersBadges.innerHTML = this.config.tiers.map(t => ` 4391 <div class="skbab-tier-badge-cell"> 4392 ${t.badge ? `<span class="skbab-tier__badge">${t.badge}</span>` : ''} 4393 </div> 4394 `).join(''); 4395 } 4396 4397 /* Render tier buttons */ 4398 if (this.el.tiersOptions) { 4399 const trackHtml = `<div class="skbab-tiers__track" aria-hidden="true"> 4400 <div class="skbab-tiers__track-fill js-skbab-track-fill"></div> 4401 </div>`; 4402 4403 const initSub = this.purchaseType === 'subscribe' && this.sellingPlanId; 4404 const defIdx = this.activeTierIndex; 4405 const buttonsHtml = this.config.tiers.map((t, i) => ` 4406 <button 4407 class="skbab-tier${i <= defIdx ? ' is-filled' : ''}${i === defIdx ? ' is-active' : ''}" 4408 type="button" 4409 role="radio" 4410 aria-checked="${i === defIdx ? 'true' : 'false'}" 4411 data-tier-index="${i}" 4412 data-quantity="${t.quantity}" 4413 >
4414 <span class="skbab-tier__dot" aria-hidden="true"></span> 4415 <span class="skbab-tier__label">${t.label}</span> 4416 <span class="skbab-tier__price-label">${initSub ? t.unitPriceLabelSubscribe : t.unitPriceLabel}</span> 4417 </button> 4418 `).join(''); 4419 4420 this.el.tiersOptions.innerHTML = trackHtml + buttonsHtml; 4421 this.el.trackFill = this.section.querySelector('.js-skbab-track-fill'); 4422 } 4423 4424 /* Re-cache tier buttons and bind */ 4425 this.el.tierBtns = this.section.querySelectorAll('.skbab-tier'); 4426 this._applyTierCount(); 4427 this._bindTierButtons(); 4428 this._updateTierUI(); 4429 4430 /* Update bundle tab label with default tier per-unit price */ 4431 if (this.el.bundlePerPouch && this.config.tiers.length > 0) { 4432 const isSubscribe = this.purchaseType === 'subscribe' && this.sellingPlanId; 4433 const labelTier = this.config.tiers[this.activeTierIndex] || this.config.tiers[0]; 4434 this.el.bundlePerPouch.textContent = isSubscribe 4435 ? labelTier.unitPrice
4435LabelSubscribe 4436 : labelTier.unitPriceLabel; 4437 } 4438 } 4439 4440 4441 /* ââ Render Product Cards from SKIO data ââ */ 4442 _renderProducts() { 4443 if (!this.el.productsGrid) return; 4444 4445 this.el.productsGrid.innerHTML = this.skioProducts.map((p, idx) => { 4446 /* Build variant buttons only when product has > 1 variant */ 4447 let variantHtml = ''; 4448 if (p.variants.length > 1) { 4449 const btns = p.variants.map(v => { 4450 const isActive = v.shopifyVariantId === p.selectedVariantId; 4451 return `<button type="button" 4452 class="skbab-variant-btn${isActive ? ' is-active' : ''}" 4453 ${!v.available ? 'disabled' : ''} 4454 data-vid="${v.shopifyVariantId}" 4455 >${v.title}</button>`; 4456 }).join(''); 4457 variantHtml = `<div class="skbab-card__variants">${btns}</div>`; 4458 } 4459 4460 return ` 4461 <div class="skbab-card" data-variant-id="${p.selectedVariantId}" data-product-index="${idx}"> 4462 ${p.badge && p.badge.toLowerCase() === 'new' ? '<span class="skbab-card__badge skbab-card__badge--new">NEW</span>' : (p.badge ? '<span class="skbab-card__badge skbab-card__badge--bestseller">' + p.badge.toUpperCase() + '</span>' : '')} 4463 <div class="skbab-card__image-wrap"> 4464 ${p.productImage 4465 ? `<img class="skbab-card__image" src="${p.productImage}" alt="${p.productTitle}" loading="lazy" width="300" height="300" />` 4466 : `<div style="width:100%;height:100%;background:#E7F3F9;"></div>` 4467 } 4468 </div> 4469 <p class="skbab-card__name">${p.productTitle.toUpperCase()}</p> 4470 ${variantHtml} 4471 <div class="skbab-card__controls"> 4472 <div class="skbab-stepper" aria-hidden="true"> 4473 <button class="skbab-stepper__btn skbab-stepper__minus" type="button" aria-label="Remove one ${p.productTitle}">−</button> 4474 <span class="skbab-stepper__qty" role="status" aria-label="Quantity">0</span> 4475 <button class="skbab-stepper__btn skbab-stepper__plus" type="button" aria-label="Add one ${p.productTitle}">+</button> 4476 </div> 4477 <button class="skbab-card__add" type="button" aria-label="Add ${p.productTitle} to your box">ADD +</button> 4478 </div> 4479 </div>`; 4480 }).join(''); 4481 4482 /* Update DOM reference */ 4483 this.el.productCards = this.el.productsGrid.querySelectorAll('.skbab-card'); 4484 } 4485 4486 4487 /* ââ Getters ââ */ 4488 get totalQty() { 4489 return Object.values(this.quantities).reduce((s, q) => s + q, 0); 4490 } 4491 get activeTier() { 4492 return this.config.tiers[this.activeTierIndex] || null; 4493 } 4494 4495 4496 /* ââ Money Formatting ââ */ 4497 _formatMoney(dollars) { 4498 /* Shopify exposes the shopper's active market currency and the live 4499 exchange rate from the store's base currency via window.Shopify.currency. 4500 SKIO always returns prices in the store's base currency, so we 4501 convert them here before formatting, instead of just relabeling them. */ 4502 const activeCurrency = (window.Shopify && window.Shopify.currency && window.Shopify.currency.active) || this.currencyCode || 'CAD'; 4503 const rate = (window.Shopify && window.Shopify.currency && parseFloat(window.Shopify.currency.rate)) || 1; 4504 const converted = dollars * rate; 4505 4506 try { 4507 return new Intl.NumberFormat(document.documentElement.lang || 'en', { 4508 style: 'currency', 4509 currency: activeCurrency, 4510 currencyDisplay: 'narrowSymbol', 4511 minimumFractionDigits: 2, 4512 }).format(converted); 4513 } catch (_) { 4514 return '$' + Number(converted).toFixed(2); 4515 } 4516 } 4517 4518 4519 /* ââ Tier Logic ââ */ 4520 _findDefaultTierIndex() { 4521 const idx = this.config.tiers.findIndex(t => t.isDefault); 4522 return idx >= 0 ? idx : 0; 4523 } 4524 4525 _applyTierCount() { 4526 const count = this.config.tiers.length; 4527 if (this.el.tiersEl) { 4528 this.el.tiersEl.style.setProperty('--tier-count', count); 4529 } 4530 } 4531 4532 /* Tiers are rendered dynamically from SKIO API percentDiscountTier or fixedDiscountTier */ 4533 4534 _updateTrackFill() { 4535 if (!this.el.trackFill) return; 4536 const tiers = this.config.tiers; 4537 const n = tiers.length; 4538 if (n <= 1) { this.el.trackFill.style.width = '0%'; return; } 4539
4540 const qty = this.totalQty; 4541 const maxTierQty = tiers[n - 1].quantity; 4542 4543 /* Find which segment the qty falls in and interpolate */ 4544 let pct = 0; 4545 if (qty >= maxTierQty) { 4546 pct = 100; 4547 } else if (qty <= 0) { 4548 pct = 0; 4549 } else { 4550 for (let i = 0; i < n - 1; i++) { 4551 const lo = tiers[i].quantity; 4552 const hi = tiers[i + 1].quantity; 4553 if (qty >= lo && qty < hi) { 4554 const segStart = (i / (n - 1)) * 100; 4555 const segEnd = ((i + 1) / (n - 1)) * 100; 4556 const ratio = (qty - lo) / (hi - lo); 4557 pct = segStart + ratio * (segEnd - segStart); 4558 break; 4559 } 4560 } 4561 if (qty < tiers[0].quantity) { 4562 pct = (qty / tiers[0].quantity) * (100 / (n - 1)) * 0.5; 4563 } 4564 } 4565 this.el.trackFill.style.width = pct + '%'; 4566 } 4567 4568 _bindTierButtons() { 4569 this.el.tierBtns.forEach((btn, i) => { 4570 btn.addEventListener('click', () => { 4571 this.activeTierIndex = i; 4572 this._autoDistribute(this.config.tiers[i].quantity); 4573 this._update(); 4574 }); 4575 }); 4576 } 4577 4578 /* Auto-distribute target qty evenly across available products */ 4579 _autoDistribute(targetQty) { 4580 if (!this.skioProducts.length) return; 4581 4582 const count = this.skioProducts.length; 4583 const base = Math.floor(targetQty / count); 4584 const remainder = targetQty % count; 4585 4586 /* Clear all quantities first */ 4587 Object.keys(this.quantities).forEach(k => { this.quantities[k] = 0; }); 4588 4589 this.skioProducts.forEach((p, i) => { 4590 this.quantities[p.selectedVariantId] = base + (i < remainder ? 1 : 0); 4591 }); 4592 4593 /* Sync card UI */ 4594 this.el.productCards.forEach(card => { 4595 const vid = Number(card.dataset.variantId); 4596 const qty = this.quantities[vid] || 0; 4597 const qtyEl = card.querySelector('.skbab-stepper__qty'); 4598 if (qtyEl) qtyEl.textContent = qty; 4599 card.classList.toggle('has-quantity', qty > 0); 4600 const stepper = card.querySelector('.skbab-stepper'); 4601 if (stepper) stepper.setAttribute('aria-hidden', qty === 0 ? 'true' : 'false'); 4602 }); 4603 } 4604 4605 _syncTierToQty() { 4606 /* Move activeTierIndex to the highest tier whose quantity is <= totalQty */ 4607 const qty = this.totalQty; 4608 let best = 0; 4609 this.config.tiers.forEach((t, i) => { 4610 if (qty >= t.quantity) best = i; 4611 }); 4612 this.activeTierIndex = best; 4613 } 4614 4615 _updateTierUI() { 4616 const qty = this.totalQty; 4617 this.el.tierBtns.forEach((btn, i) => { 4618 const tierQty = this.config.tiers[i]?.quantity || 0; 4619 const filled = qty >= tierQty; 4620 const active = (i === this.activeTierIndex); 4621 btn.classList.toggle('is-active', active); 4622 btn.classList.toggle('is-filled', filled); 4623 btn.setAttribute('aria-checked', active ? 'true' : 'false'); 4624 }); 4625 this._updateTrackFill(); 4626 } 4627 4628 4629 /* ââ Product Card Steppers ââ */ 4630 _bindProductCards() { 4631 this.el.productCards.forEach(card => { 4632 const productIdx = Number(card.dataset.productIndex); 4633 const qtyEl = card.querySelector('.skbab-stepper__qty'); 4634 4635 /* Variant selector buttons */ 4636 card.querySelectorAll('.skbab-variant-btn').forEach(btn => { 4637 btn.addEventListener('click', () => { 4638 this._switchVariant(card, productIdx, Number(btn.dataset.vid)); 4639 }); 4640 }); 4641 4642 const getVid = () => this.skioProducts[productIdx].selectedVariantId; 4643 4644 card.querySelector('.skbab-card__add')?.addEventListener('click', () => { 4645 this._setQty(card, getVid(), 1, qtyEl); 4646 }); 4647 4648 card.querySelector('.skbab-stepper__plus')?.addEventListener('click', () => { 4649 this._setQty(card, getVid(), (this.quantities[getVid()] || 0) + 1, qtyEl); 4650 }); 4651 4652 card.querySelector('.skbab-stepper__minus')?.addEventListener('click', () => { 4653 const next = Math.max(0, (this.quantities[getVid()] || 0) - 1); 4654 this._setQty(card, getVid(), next, qtyEl); 4655 }); 4656 }); 4657 } 4658 4659 /* Switch variant for a product card â transfers any existing qty to the new variant */ 4660 _switchVariant(card, productIdx, newVariantId) { 4661 const product = this.skioProducts[productIdx]; 4662 if (!product || newVariantId === product.selectedVariantId) return; 4663 4664 const oldVid = product.selectedVariantId; 4665 const currentQty = this.quantities[oldVid] || 0; 4666 4667 /* Move quantity from old variant to new variant */ 4668 delete this.quantities[oldVid]; 4669 product.selectedVariantId = newVariantId; 4670 this.quantities[newVariantId] = currentQty; 4671
4672 /* Update card data attribute */ 4673 card.dataset.variantId = newVariantId; 4674 4675 /* Update active button state */ 4676 card.querySelectorAll('.skbab-variant-btn').forEach(b => { 4677 b.classList.toggle('is-active', Number(b.dataset.vid) === newVariantId); 4678 }); 4679 4680 this._update(); 4681 } 4682 4683 _setQty(card, variantId, newQty, qtyEl) { 4684 this.quantities[variantId] = newQty; 4685 if (qtyEl) qtyEl.textContent = newQty; 4686 card.classList.toggle('has-quantity', newQty > 0); 4687 4688 const stepper = card.querySelector('.skbab-stepper'); 4689 if (stepper) stepper.setAttribute('aria-hidden', newQty === 0 ? 'true' : 'false'); 4690 4691 this._update(); 4692 } 4693 4694 4695 /* ââ Purchase Options ââ */ 4696 _bindPurchaseOptions() { 4697 this.el.radios.forEach(radio => { 4698 radio.addEventListener('change', () => { 4699 this.purchaseType = radio.value; 4700 this._updatePurchaseOptionUI(); 4701 this._update(); 4702 }); 4703 }); 4704 } 4705 4706 _updatePurchaseOptionUI() { 4707 this.el.purchaseOptions.forEach(opt => { 4708 const radio = opt.querySelector('.skbab-radio'); 4709 opt.classList.toggle('is-selected', radio?.checked === true); 4710 }); 4711 } 4712 4713 /* ââ Frequency Dropdown ââ */ 4714 _bindFrequencySelect() { 4715 const sel = this.el.frequencySelect; 4716 if (!sel) return; 4717 sel.addEventListener('change', () => { 4718 const selectedPlan = this.sellingPlans.find(p => p.id === Number(sel.value)); 4719 if (selectedPlan) { 4720 this.sellingPlanId = selectedPlan.id; 4721 this.sellingPlanDiscount = selectedPlan.discount; 4722 this._update(); 4723 } 4724 }); 4725 } 4726 4727 _populateFrequencyDropdown() { 4728 const sel = this.el.frequencySelect; 4729 const wrap = this.el.frequencyWrap; 4730 if (!sel || !wrap) return; 4731 4732 sel.innerHTML = ''; 4733 4734 if (this.sellingPlans.length <= 1) { 4735 wrap.style.display = 'none'; 4736 return; 4737 } 4738 4739 this.sellingPlans.forEach(plan => { 4740 const opt = document.createElement('option'); 4741 opt.value = plan.id; 4742 opt.textContent = plan.name; 4743 if (plan.id === this.sellingPlanId) opt.selected = true; 4744 sel.appendChild(opt); 4745 }); 4746 4747 wrap.style.display = ''; 4748 } 4749 4750 4751 /* ââ Look up the price of a variant by its Shopify ID ââ */ 4752 _getVariantPrice(variantId) { 4753 for (const p of this.skioProducts) { 4754 for (const v of p.variants) { 4755 if (v.shopifyVariantId === variantId) return v.price; 4756 } 4757 } 4758 return 0; 4759 } 4760 4761 /* ââ Price Calculation â uses actual variant prices from SKIO ââ */ 4762 _calcPrices() { 4763 const qty = this.totalQty; 4764 if (qty <= 0) return null; 4765 4766 const tier = this.config.tiers[this.activeTierIndex]; 4767 console.log(tier, 'tiertiertier') 4768 4769 const discountValue = tier ? tier.discountValue : 0; 4770 console.log(tier.discountValue, '723698634987563486') 4771 const useFixed = this._discountType === 'fixed'; 4772 4773 /* Sum prices from actual variant data */ 4774 let totalCompare = 0; /* Full price (no tier discount) */ 4775 let onetimePrice = 0; /* After tier discount */ 4776 4777 for (const [variantId, itemQty] of Object.entries(this.quantities)) { 4778 if (itemQty <= 0) continue; 4779 const basePrice = this._getVariantPrice(Number(variantId)); 4780 totalCompare += basePrice * itemQty; 4781 4782 const discountedPrice = useFixed 4783 ? Math.max(0, basePrice - discountValue) 4784 : basePrice * (1 - discountValue / 100); 4785 onetimePrice += discountedPrice * itemQty; 4786 4787 } 4788 4789 onetimePrice = Math.round(onetimePrice * 100) / 100; 4790 totalCompare = Math.round(totalCompare * 100) / 100; 4791 4792 const subPct = this.sellingPlanDiscount || 0; 4793 console.log(subPct,'sellingPlanDiscount') 4794 const subscribePrice = subPct > 0 4795 ? Math.max(0, Math.round(onetimePrice * (1 - subPct / 100) * 100) / 100) 4796 : onetimePrice; 4797 console.log(subscribePrice, 'subscribePricesubscribePricesubscribePrice') 4798 4799 const isSubscribe = this.purchaseType === 'subscribe' && this.sellingPlanId; 4800 const totalPrice = isSubscribe ? subscribePrice : onetimePrice; 4801 4802 const savingsPct = totalCompare > totalPrice 4803 ? Math.round(((totalCompare - totalPrice) / totalCompare) * 100) 4804 : 0; 4805 4806 /* perStick is an average for display purposes */ 4807 const perStick = qty > 0 ? Math.round((onetimePrice / qty) * 100) / 100 : 0; 4808 4809 return { totalPrice, totalCompare, savingsPct, perStick, onetimePrice, subscribePrice }; 4810 } 4811 4812 4813 /* ââ Main Update Cycle ââ */ 4814 _update() { 4815 this._syncTierToQty(); 4816 this._updateTierUI(); 4817 this._updatePrices(); 4818 this._updateAtcState(); 4819 } 4820 4821 _updatePrices() {
4822 const qty = this.totalQty; 4823 const p = this._calcPrices(); 4824 4825 if (!p || qty <= 0) { 4826 this._setText(this.el.currentPrice, '$0.00'); 4827 if (this.el.comparePrice) this.el.comparePrice.style.display = 'none'; 4828 if (this.el.saveBadge) this.el.saveBadge.style.display = 'none'; 4829 this._setText(this.el.savingsPct, '0%'); 4830 this._setText(this.el.atcPrice, ''); 4831 this._setText(this.el.atcCompare, ''); 4832 this.el.atcPriceWrap?.classList.remove('has-price'); 4833 this._setText(this.el.subscribePrice, ''); 4834 this._setText(this.el.onetimePrice, ''); 4835 if (this.el.subscribeCompare) this.el.subscribeCompare.style.display = 'none'; 4836 if (this.el.onetimeCompare) this.el.onetimeCompare.style.display = 'none'; 4837 this._updatePerPouchPrice(0, 0); 4838 return; 4839 } 4840 4841 /* Header price row */ 4842 this._setText(this.el.currentPrice, this._formatMoney(p.totalPrice)); 4843 4844 if (p.totalCompare > p.totalPrice) { 4845 this._setText(this.el.comparePrice, this._formatMoney(p.totalCompare)); 4846 if (this.el.comparePrice) this.el.comparePrice.style.display = ''; 4847 this._setText(this.el.savePct, String(p.savingsPct)); 4848 if (this.el.saveBadge) this.el.saveBadge.style.display = ''; 4849 } else { 4850 if (this.el.comparePrice) this.el.comparePrice.style.display = 'none'; 4851 if (this.el.saveBadge) this.el.saveBadge.style.display = 'none'; 4852 } 4853 4854 /* Savings bar */ 4855 this._setText(this.el.savingsPct, p.savingsPct + '%'); 4856 4857 /* Purchase option prices */ 4858 this._setText(this.el.subscribePrice, this._formatMoney(p.subscribePrice)); 4859 this._setText(this.el.onetimePrice, this._formatMoney(p.onetimePrice)); 4860 4861 if (this.el.subscribeCompare) { 4862 if (p.onetimePrice > p.subscribePrice) { 4863 this._setText(this.el.subscribeCompare, this._formatMoney(p.onetimePrice)); 4864 this.el.subscribeCompare.style.display = ''; 4865 } else { 4866 this.el.subscribeCompare.style.display = 'none'; 4867 } 4868 } 4869 if (this.el.onetimeCompare) { 4870 if (p.totalCompare > p.onetimePrice) { 4871 this._setText(this.el.onetimeCompare, this._formatMoney(p.totalCompare)); 4872 this.el.onetimeCompare.style.display = ''; 4873 } else { 4874 this.el.onetimeCompare.style.display = 'none'; 4875 } 4876 } 4877 4878 /* ATC button prices */ 4879 this._setText(this.el.atcPrice, this._formatMoney(p.totalPrice)); 4880 if (p.totalCompare > p.totalPrice) { 4881 this._setText(this.el.atcCompare, this._formatMoney(p.totalCompare)); 4882 } else { 4883 this._setText(this.el.atcCompare, ''); 4884 } 4885 this.el.atcPriceWrap?.classList.add('has-price'); 4886 4887 /* Dynamic per-pouch price on bundle tab */ 4888 this._updateTierPriceLabels(); 4889 this._updatePerPouchPrice(p.perStick, qty); 4890 } 4891 4892 /* ââ One Pouch Tab Reference Price ââ 4893 This price is independent of the SKIO box/tiers â it's just 4894 baseProductPrice / unitsPerProduct â so it can be set immediately 4895 on init rather than waiting on the SKIO fetch. Routing it through 4896 _formatMoney() (instead of the old hardcoded Liquid '$' + number) 4897 is what makes it respect window.Shopify.currency.rate. */ 4898 _updateOneboxPrice() { 4899 if (!this.el.oneboxPerPouch) return; 4900 const basePrice = this.config.baseProductPrice || 0; 4901 const units = this.config.unitsPerProduct || 1; 4902 const perUnit = basePrice / units; 4903 this.el.oneboxPerPouch.textContent = this._formatMoney(perUnit); 4904 } 4905 4906 _updatePerPouchPrice(perPouch, qty) { 4907 if (!this.el.bundlePerPouch) return; 4908 const tier = this.config.tiers[this.activeTierIndex]; 4909 if (qty <= 0 || !tier) { 4910 this.el.bundlePerPouch.textContent = this._bundlePerPouchDefault || ''; 4911 return; 4912 } 4913 if (!this._bundlePerPouchDefault) { 4914 this._bundlePerPouchDefault = this.el.bundlePerPouch.textContent; 4915 } 4916 const isSubscribe = this.purchaseType === 'subscribe' && this.sellingPlanId; 4917 this.el.bundlePerPouch.textContent = isSubscribe ? tier.unitPrice
4917LabelSubscribe : tier.unitPriceLabel; 4918 } 4919 4920 /* Update tier button price labels based on purchase type */ 4921 _updateTierPriceLabels() { 4922 const isSubscribe = this.purchaseType === 'subscribe' && this.sellingPlanId; 4923 if (!this.el.tierBtns || !this.config.tiers) return; 4924 this.el.tierBtns.forEach((btn, i) => { 4925 const tier = this.config.tiers[i]; 4926 if (!tier) return; 4927 const labelEl = btn.querySelector('.skbab-tier__price-label'); 4928 if (labelEl) { 4929 labelEl.textContent = isSubscribe ? tier.unitPriceLabelSubscribe : tier.unitPriceLabel; 4930 } 4931 }); 4932 } 4933 4934 4935 /* ââ ATC Button State ââ */ 4936 _updateAtcState() { 4937 const { atcBtn, atcLabel } = this.el; 4938 if (!atcBtn || !atcLabel) return; 4939 4940 const qty = this.totalQty; 4941 let enabled = qty > 0; 4942 let label = 'ADD TO CART'; 4943 4944 if (qty === 0) { 4945 /* Find the first tier to guide the user */ 4946 const firstTier = this.config.tiers[0]; 4947 if (firstTier) label = `CHOOSE ${firstTier.quantity} TO START`; 4948 enabled = false; 4949 } else { 4950 /* Check if there's a next tier they could reach for better savings */ 4951 const nextTier = this.config.tiers.find(t => t.quantity > qty); 4952 if (nextTier) { 4953 const diff = nextTier.quantity - qty; 4954 label = `ADD TO CART`; 4955 } 4956 } 4957 4958 atcBtn.disabled = !enabled; 4959 atcBtn.setAttribute('aria-disabled', !enabled ? 'true' : 'false'); 4960 4961 /* Only update label text if not in loading/success/error state */ 4962 if (!atcBtn.classList.contains('is-loading') && 4963 atcLabel.textContent !== 'ADDING...' && 4964 atcLabel.textContent !== 'ADDED!' && 4965 atcLabel.textContent !== 'ERROR â TRY AGAIN') { 4966 atcLabel.textContent = label; 4967 } 4968 } 4969 4970 4971 /* ââ Add to Cart (SKIO Dynamic Box) ââ */ 4972 _bindAtcButton() { 4973 this.el.atcBtn?.addEventListener('click', () => this._addToCart()); 4974 } 4975 4976 async _addToCart() { 4977 const { atcBtn, atcLabel } = this.el; 4978 if (atcBtn?.disabled) return; 4979 4980 /* Build line items with SKIO dynamic box properties */ 4981 const isSubscribe = this.purchaseType === 'subscribe' && this.sellingPlanId; 4982 const items = []; 4983 for (const [variantId, qty] of Object.entries(this.quantities)) { 4984 if (qty <= 0) continue; 4985 4986 const item = { 4987 id: Number(variantId), 4988 quantity: qty, 4989 properties: { 4990 "_dynamicBoxIndex": 0, 4991 "_dynamicBoxId": this.skioBoxId 4992 } 4993 }; 4994 4995 if (isSubscribe) { 4996 item.selling_plan = this.sellingPlanId; 4997 } 4998 4999 items.push(item); 5000 } 5001 5002 if (!items.length) return; 5003 5004 /* Loading state */ 5005 atcBtn.classList.add('is-loading'); 5006 const prevLabel = atcLabel.textContent; 5007 atcLabel.textContent = 'ADDING...'; 5008 5009 try { 5010 const rootUrl = window.Shopify?.routes?.root || '/'; 5011 const addRes = await fetch(rootUrl + 'cart/add.js', { 5012 method: 'POST', 5013 headers: { 'Content-Type': 'application/json' }, 5014 body: JSON.stringify({ items }) 5015 }); 5016 5017 if (!addRes.ok) { 5018 const errData = await addRes.json().catch(() => ({})); 5019 throw new Error(errData.description || `HTTP ${addRes.status}`); 5020 } 5021 5022 /* Fetch fresh cart sections */ 5023 const sectionsRes = await fetch(rootUrl + '?sections=cart-drawer,cart-icon-bubble'); 5024 const sectionsData = await sectionsRes.json(); 5025 5026 /* Update Dawn UI */ 5027 const cartDrawer = document.querySelector('cart-drawer'); 5028 const cartIcon = document.getElementById('cart-icon-bubble'); 5029 5030 if (cartIcon && sectionsData['cart-icon-bubble']) { 5031 const tmp = document.createElement('div'); 5032 tmp.innerHTML = sectionsData['cart-icon-bubble']; 5033 const sc = tmp.querySelector('.shopify-section'); 5034 cartIcon.innerHTML = sc ? sc.innerHTML : ''; 5035 } 5036 5037 if (cartDrawer && sectionsData['cart-drawer']) { 5038 const tmp = document.createElement('div'); 5039 tmp.innerHTML = sectionsData['cart-drawer']; 5040 const freshDrawer = tmp.querySelector('#CartDrawer'); 5041 if (freshDrawer) { 5042 document.querySelector('#CartDrawer').innerHTML = freshDrawer.innerHTML; 5043 cartDrawer.classList.remove('is-empty'); 5044 cartDrawer.querySelector('.drawer__inner')?.classList.remove('is-empty'); 5045 setTimeout(() => { 5046 cartDrawer.querySelector('#CartDrawer-Overlay') 5047 ?.addEventListener('click', cartDrawer.close.bind(cartDrawer)); 5048 cartDrawer.open(); 5049 }); 5050 } 5051 } 5052 5053 /* Reset selections */ 5054 this._resetSelections(); 5055 5056 atcLabel.textContent = 'ADDED!'; 5057 setTimeout(() => { 5058 atcLabel.textContent = 'ADD TO CART'; 5059 this._updateAtcState(); 5060 }, 2000); 5061 5062 } catch (err) { 5063 console.error('[SKBAB] ATC error:', err.message); 5064 atcLabel.textContent = 'ERROR â TRY AGAIN'; 5065 setTimeout(() => { 5066 if (atcLabel.textContent === 'ERROR â TRY AGAIN') { 5067 atcLabel.textContent = prevLabel; 5068 } 5069 }, 3000); 5070 } finally { 5071 atcBtn.classList.remove('is-loading'); 5072 if (atcLabel.textContent === 'ADDING...') { 5073 atcLabel.textContent = prevLabel; 5074 } 5075 } 5076 } 5077 5078 _resetSelections() {
5079 Object.keys(this.quantities).forEach(k => { this.quantities[k] = 0; }); 5080 (this.el.productCards || []).forEach(card => { 5081 card.classList.remove('has-quantity'); 5082 const qtyEl = card.querySelector('.skbab-stepper__qty'); 5083 const stepper = card.querySelector('.skbab-stepper'); 5084 if (qtyEl) qtyEl.textContent = '0'; 5085 if (stepper) stepper.setAttribute('aria-hidden', 'true'); 5086 }); 5087 this._update(); 5088 } 5089 5090 5091 /* ââ Mobile Carousel ââ */ 5092 _bindMosaicCarousel() { 5093 const { mosaic, mosaicDots } = this.el; 5094 if (!mosaic || !mosaicDots.length) return; 5095 5096 mosaicDots.forEach((dot, i) => { 5097 dot.addEventListener('click', () => { 5098 const cells = mosaic.querySelectorAll('.skbab-mosaic__cell'); 5099 if (cells[i]) mosaic.scrollTo({ left: cells[i].offsetLeft, behavior: 'smooth' }); 5100 }); 5101 }); 5102 5103 let timer; 5104 mosaic.addEventListener('scroll', () => { 5105 clearTimeout(timer); 5106 timer = setTimeout(() => { 5107 const idx = Math.round(mosaic.scrollLeft / Math.max(mosaic.clientWidth, 1)); 5108 mosaicDots.forEach((dot, i) => { 5109 dot.classList.toggle('is-active', i === idx); 5110 dot.setAttribute('aria-selected', i === idx ? 'true' : 'false'); 5111 }); 5112 }, 60); 5113 }, { passive: true }); 5114 } 5115 5116 5117 /* ââ Lightbox ââ */ 5118 _bindLightbox() { 5119 const lightbox = document.getElementById(`skbab-lightbox-${this.sectionId}`); 5120 if (!lightbox) return; 5121 5122 document.body.appendChild(lightbox); 5123 5124 const closeBtn = lightbox.querySelector('.skbab-lightbox__close'); 5125 const backdrop = lightbox.querySelector('.skbab-lightbox__backdrop'); 5126 const counterEl = lightbox.querySelector('.skbab-lightbox__counter'); 5127 const mainEl = lightbox.querySelector('.skbab-swiper-main'); 5128 const thumbEl = lightbox.querySelector('.skbab-swiper-thumbs'); 5129 const totalSlides = mainEl ? mainEl.querySelectorAll('.swiper-slide').length : 0; 5130 5131 let mainSwiper = null, thumbSwiper = null; 5132 5133 const loadSwiper = () => { 5134 if (window.Swiper) return Promise.resolve(); 5135 return new Promise(resolve => { 5136 if (!document.querySelector('[data-skbab-swiper-css]')) { 5137 const link = document.createElement('link'); 5138 link.rel = 'stylesheet'; 5139 link.href = 'https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css'; 5140 link.dataset.skbabSwiperCss = '1'; 5141 document.head.appendChild(link); 5142 } 5143 const script = document.createElement('script'); 5144 script.src = 'https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js'; 5145 script.onload = resolve; 5146 document.head.appendChild(script); 5147 }); 5148 }; 5149 5150 const updateCounter = (idx) => { 5151 if (counterEl) counterEl.textContent = `${idx + 1} / ${totalSlides}`; 5152 }; 5153 5154 const initSwipers = (startIndex) => { 5155 if (thumbEl) { 5156 thumbSwiper = new Swiper(thumbEl, { 5157 slidesPerView: 'auto', spaceBetween: 8, freeMode: true, watchSlidesProgress: true, 5158 }); 5159 } 5160 mainSwiper = new Swiper(mainEl, { 5161 initialSlide: startIndex, spaceBetween: 16, 5162 navigation: { 5163 nextEl: lightbox.querySelector('.swiper-button-next'), 5164 prevEl: lightbox.querySelector('.swiper-button-prev'), 5165 }, 5166 thumbs: thumbSwiper ? { swiper: thumbSwiper } : undefined, 5167 keyboard: { enabled: true, onlyInViewport: false }, 5168 on: { 5169 init: s => updateCounter(s.activeIndex), 5170 slideChange: s => updateCounter(s.activeIndex), 5171 }, 5172 }); 5173 }; 5174 5175 const open = (index) => { 5176 loadSwiper().then(() => { 5177 lightbox.classList.add('is-open'); 5178 document.body.style.overflow = 'hidden'; 5179 if (!mainSwiper) initSwipers(index); 5180 else { mainSwiper.slideTo(index, 0); updateCounter(index); } 5181 closeBtn.focus(); 5182 }); 5183 }; 5184 5185 const close = () => { 5186 lightbox.classList.remove('is-open'); 5187 document.body.style.overflow = ''; 5188 }; 5189 5190 this.section.querySelectorAll('.skbab-mosaic__cell').forEach((cell, i) => { 5191 cell.addEventListener('click', () => open(i)); 5192 }); 5193 5194 if (closeBtn) closeBtn.addEventListener('click', close); 5195 if (backdrop) backdrop.addEventListener('click', close); 5196 document.addEventListener('keydown', e => { 5197 if (e.key === 'Escape' && lightbox.classList.contains('is-open')) close(); 5198 }); 5199 } 5200 5201 5202 /* ââ Tab Toggle ââ */ 5203 _bindTabs() { 5204 const oneboxTab = this.section.querySelector('.skbab-tab--onebox'); 5205 if (oneboxTab) { 5206 oneboxTab.addEventListener('click', () => { 5207 const redirects = this.config.oneboxRedirects || []; 5208 const defaultUrl = this.config.oneboxRedirectDefault || '';
5209 const urlParams = new URLSearchParams(window.location.search); 5210 const incomingParam = urlParams.get('param') || ''; 5211 5212 // Find matching redirect by parameter 5213 const match = incomingParam 5214 ? redirects.find(r => r.param && r.param === incomingParam) 5215 : null; 5216 5217 // Use matched URL, otherwise always fall back to default 5218 if (match && match.url) { 5219 window.location.href = match.url; 5220 } else if (defaultUrl) { 5221 window.location.href = defaultUrl; 5222 } 5223 }); 5224 } 5225 } 5226 5227 /* ââ Utility ââ */ 5228 _setText(el, text) { if (el) el.textContent = text; } 5229 } 5230 5231 5232 /* ââ Review Slider ââ */ 5233 class SkbabReviewSlider { 5234 constructor(el) { 5235 this.track = el.querySelector('.skbab-reviews__track'); 5236 this.dots = el.querySelectorAll('.skbab-review-dot'); 5237 this.slides = el.querySelectorAll('.skbab-review-card'); 5238 this.index = 0; 5239 this.count = this.slides.length; 5240 this.timer = null; 5241 if (this.count < 2) return; 5242 el.querySelector('.skbab-review-arrow--prev')?.addEventListener('click', () => { this.stop(); this.go(this.index - 1); this.start(); }); 5243 el.querySelector('.skbab-review-arrow--next')?.addEventListener('click', () => { this.stop(); this.go(this.index + 1); this.start(); }); 5244 this.dots.forEach((dot, i) => { dot.addEventListener('click', () => { this.stop(); this.go(i); this.start(); }); }); 5245 this.start(); 5246 } 5247 go(i) { 5248 this.index = (i + this.count) % this.count; 5249 this.track.style.transform = `translateX(-${this.index * 100}%)`; 5250 this.dots.forEach((d, idx) => d.classList.toggle('is-active', idx === this.index)); 5251 } 5252 start() { this.stop(); this.timer = setInterval(() => this.go(this.index + 1), 5000); } 5253 stop() { clearInterval(this.timer); } 5254 } 5255 5256 5257 /* ââ FAQ Accordion ââ */ 5258 class SkbabFaqAccordion { 5259 constructor(el) { 5260 el.querySelectorAll('.skbab-faq-item').forEach(item => { 5261 item.querySelector('.skbab-faq-header').addEventListener('click', () => { 5262 const isOpen = item.classList.contains('is-open'); 5263 item.classList.toggle('is-open', !isOpen); 5264 item.querySelector('.skbab-faq-header').setAttribute('aria-expanded', !isOpen); 5265 }); 5266 }); 5267 } 5268 } 5269 5270 5271 /* ââ Bootstrap ââ */ 5272 function init() { 5273 document.querySelectorAll('.wakewater-skio-bab').forEach(section => { 5274 if (!section.dataset.skbabInit) { 5275 section.dataset.skbabInit = '1'; 5276 new WakewaterSkioBab(section); 5277 const reviewEl = section.querySelector('.skbab-reviews'); 5278 if (reviewEl) new SkbabReviewSlider(reviewEl); 5279 section.querySelectorAll('.skbab-faqs').forEach(faqEl => new SkbabFaqAccordion(faqEl)); 5280 } 5281 }); 5282 } 5283 5284 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init); 5285 else init(); 5286 5287 document.addEventListener('shopify:section:load', e => { 5288 const section = e.target.querySelector('.wakewater-skio-bab'); 5289 if (section) { delete section.dataset.skbabInit; init(); } 5290 }); 5291})(); 5292</script>
5292 5293 5294 5295</section><div id="shopify-section-template--31712463618334__ww_pdp_selling" class="shopify-section"><link href="https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@600;700;800&display=swap" rel="stylesheet"> 5296 5297<div class="ww-sell"> 5298 5299 5300 <div class="ww-sell__retail"> 5301 <div class="ww-sell__retail-row"> 5302 <span class="ww-sell__retail-label">ALSO SOLD AT</span> 5303 <div class="ww-sell__retail-logos"> 5304 5305 5306 5307 <span class="ww-sell__retail-slot" ><img class="ww-sell__retail-logo" src="//wakewater.com/cdn/shop/files/Costco-Wholesale-Logo_78ca8849-21f6-475b-b7d7-83b9e420f02b.png?v=1784751515&width=300" alt="Costco" loading="lazy"></span> 5308 5309 5310 5311 5312 5313 <span class="ww-sell__retail-slot" ><img class="ww-sell__retail-logo" src="//wakewater.com/cdn/shop/files/Walmart_logo__2025__Alt__svg_8832cf0b-1537-46d2-ae50-7665b752c904.webp?v=1784751523&width=300" alt="Walmart" loading="lazy"></span> 5314 5315 5316 5317 5318 5319 <span class="ww-sell__retail-slot" ><img class="ww-sell__retail-logo" src="//wakewater.com/cdn/shop/files/Real_Canadian_Superstore_logo_3c5c96f5-fbc2-4f33-bca4-0d64ff8b79be.png?v=1784751530&width=300" alt="Real Canadian Superstore" loading="lazy"></span> 5320 5321 5322 5323 5324 5325 <span class="ww-sell__retail-slot" ><img class="ww-sell__retail-logo" src="//wakewater.com/cdn/shop/files/Sobeys_logo_svg_ca0b9cef-4eb2-4912-8e5a-d879cf36c736.webp?v=1784751541&width=300" alt="Sobeys" loading="lazy"></span> 5326 5327 5328 5329 5330 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5341 5342 5343 5344 5345 5346 5347 5348 5349 5350 5351 5352 5353 5354 5355 5356 5357 5358 5359 5360 5361 5362 5363 5364 5365 5366 5367 5368 5369 5370 5371 5372 5373 5374 5375 5376 5377 5378 5379 5380 5381 5382 5383 5384 5385 </div> 5386 </div> 5387 5388 <p class="ww-sell__retail-note">Select locations across Canada</p> 5389 5390 </div> 5391 5392 5393 5394 <div class="ww-sell__band ww-sell__band--tint"> 5395 <div class="ww-sell__inner"> 5396 <p class="ww-sell__kicker">THE HONEST COMPARISON</p> 5397 <h2 class="ww-sell__h2">Stack us up against your old hydration habit</h2> 5398 5399 5400 <div class="ww-sell__table ww-sell__table--3"> 5401 <div class="ww-sell__trow ww-sell__trow--head"> 5402 <div></div> 5403 <div class="ww-sell__us-col">WakeWater</div> 5404 <div>Other Electrolyte Mixes</div> 5405 5406 </div> 5407 5408 5409 5410 5411 5412 5413 5414 5415 5416 5417 5418 5419 5420 5421 5422 5423 5424 5425 <div class="ww-sell__trow" > 5426 <div class="ww-sell__tlabel">Sodium / serving</div> 5427 <div class="ww-sell__us">800mg</div> 5428 <div>30 to 1000mg</div> 5429 5430 </div> 5431 5432 5433 5434 <div class="ww-sell__trow" > 5435 <div class="ww-sell__tlabel">Potassium / serving</div> 5436 <div class="ww-sell__us">400mg</div> 5437 <div>106 to 370mg</div> 5438 5439 </div> 5440 5441 5442 5443 <div class="ww-sell__trow" > 5444 <div class="ww-sell__tlabel">Sugar</div> 5445 <div class="ww-sell__us">0g</div> 5446 <div>0 to 11g</div> 5447 5448 </div> 5449 5450 5451 5452 <div class="ww-sell__trow" > 5453 <div class="ww-sell__tlabel">Sweetener</div> 5454 <div class="ww-sell__us">Stevia</div> 5455 <div>Often sucralose or sugar</div> 5456 5457 </div> 5458 5459 5460 5461 <div class="ww-sell__trow" > 5462 <div class="ww-sell__tlabel">Made in Canada</div> 5463 <div class="ww-sell__us">Yes</div> 5464 <div>Mostly American</div> 5465 5466 </div> 5467 5468 5469 5470 <div class="ww-sell__trow" > 5471 <div class="ww-sell__tlabel">Priced in CAD</div> 5472 <div class="ww-sell__us">Yes</div> 5473 <div>Often USD, plus duties</div> 5474 5475 </div> 5476 5477 5478 5479 5480 5481 5482 5483 5484 5485 5486 5487 5488 5489 5490 5491 5492 5493 5494 5495 5496 5497 5498 5499 5500 5501 5502 5503 5504 5505 5506 5507 5508 5509 5510 5511 5512 5513 5514 </div> 5515 5516 <p class="ww-sell__cmp-note">Competitor ranges based on leading electrolyte drink mixes sold in Canada, per published nutrition facts, July 2026.</p> 5517 5518 5519 <div class="ww-sell__bandcta"><a class="ww-sell__bandcta-btn" href="#MainContent">BUILD MY BUNDLE</a></div> 5520 5521 </div> 5522 </div> 5523 5524 5525 5526 <div class="ww-sell__band"> 5527 <div class="ww-sell__inner"> 5528 5529 <h2 class="ww-sell__h2">WHY 800MG?</h2> 5530 <ul class="ww-sell__whybullets"><li>You lose 500 to 1000mg of sodium per litre of sweat</li><li>Most mixes replace a fraction of it. One stick replaces the full dose</li><li>Plus 400mg of potassium to keep your muscles moving</li></ul> 5531 5532 <div class="ww-sell__stats"> 5533 5534 5535 5536 5537 5538 5539 5540 5541 5542 5543 <div class="ww-sell__stat" >
5544 <span class="ww-sell__stat-num" style="color: #041a71;">800mg</span> 5545 <span class="ww-sell__stat-title">Sodium That Works</span> 5546 <span class="ww-sell__stat-body">The rehydration dose your body actually needs. Most brands give you a fraction of it.</span> 5547 </div> 5548 5549 5550 5551 <div class="ww-sell__stat" > 5552 <span class="ww-sell__stat-num" style="color: #041a71;">0g</span> 5553 <span class="ww-sell__stat-title">Zero Sugar</span> 5554 <span class="ww-sell__stat-body">Naturally sweetened with stevia. All the sweet, none of the crash.</span> 5555 </div> 5556 5557 5558 5559 <div class="ww-sell__stat" > 5560 <span class="ww-sell__stat-num" style="color: #041a71;">400mg</span> 5561 <span class="ww-sell__stat-title">Potassium, Fully Dosed</span> 5562 <span class="ww-sell__stat-body">Keeps muscles loose and your heart rhythm steady. The reason you don't cramp mid-workout.</span> 5563 </div> 5564 5565 5566 5567 <div class="ww-sell__stat" > 5568 <span class="ww-sell__stat-num" style="color: #041a71;">ALL 5</span> 5569 <span class="ww-sell__stat-title">Real Electrolytes</span> 5570 <span class="ww-sell__stat-body">Sodium, potassium, magnesium, calcium and chloride. Everything you sweat out, replaced.</span> 5571 </div> 5572 5573 5574 5575 5576 5577 5578 5579 5580 5581 5582 5583 5584 5585 5586 5587 5588 5589 5590 5591 5592 5593 5594 5595 5596 5597 5598 5599 5600 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610 5611 5612 5613 5614 5615 5616 5617 5618 5619 5620 5621 5622 </div> 5623 5624 </div> 5625 </div> 5626 5627 5628 5629 <div class="ww-sell__band ww-sell__band--reviews"> 5630 <div class="ww-sell__inner"> 5631 5632 <h2 class="ww-sell__h2">Don't take our word for it</h2> 5633 <div class="ww-sell__revsum"> 5634 <span class="ww-sell__revsum-main"> 5635 <span class="ww-sell__revsum-num">4.8</span> 5636 <span class="ww-sell__goldstars" aria-hidden="true">â â â â â </span> 5637 <span class="ww-sell__revsum-count">833 reviews</span> 5638 </span> 5639 5640 <span class="ww-sell__revsum-div" aria-hidden="true"></span> 5641 <span class="ww-sell__revsum-stat">10 million+ servings sold</span> 5642 5643 </div> 5644 5645 5646 5647 <div class="ww-sell__ugc"> 5648 5649 5650 5651 5652 5653 5654 5655 5656 5657 5658 5659 5660 5661 5662 5663 5664 5665 5666 5667 5668 5669 5670 5671 5672 5673 5674 5675 5676 5677 5678 <div class="ww-sell__ugc-tile" > 5679 <img src="//wakewater.com/cdn/shop/files/8a7d30ff-c7b5-4ac8-871d-7ea31eefef63.jpg?v=1785447757&width=600" alt="WakeWater customer photo" loading="lazy"> 5680 </div> 5681 5682 5683 5684 <div class="ww-sell__ugc-tile" > 5685 <img src="//wakewater.com/cdn/shop/files/Screenshot_2026-07-23_at_4.30.26_PM.png?v=1785447758&width=600" alt="WakeWater customer photo" loading="lazy"> 5686 </div> 5687 5688 5689 5690 <div class="ww-sell__ugc-tile" > 5691 <img src="//wakewater.com/cdn/shop/files/Screenshot_2026-07-21_at_4.31.06_PM.png?v=1785447758&width=600" alt="WakeWater customer photo" loading="lazy"> 5692 </div> 5693 5694 5695 5696 <div class="ww-sell__ugc-tile" > 5697 <img src="//wakewater.com/cdn/shop/files/Screenshot_2026-07-23_at_4.22.02_PM.png?v=1785447758&width=600" alt="WakeWater customer photo" loading="lazy"> 5698 </div> 5699 5700 5701 5702 <div class="ww-sell__ugc-tile" > 5703 <img src="//wakewater.com/cdn/shop/files/IMG_5896.jpg?v=1785447759&width=600" alt="WakeWater customer photo" loading="lazy"> 5704 </div> 5705 5706 5707 5708 <div class="ww-sell__ugc-tile" > 5709 <img src="//wakewater.com/cdn/shop/files/eac61612-05cb-4ece
5709-a7f0-ecdf40522f76.jpg?v=1785447757&width=600" alt="WakeWater customer photo" loading="lazy"> 5710 </div> 5711 5712 5713 5714 5715 5716 5717 5718 5719 5720 5721 5722 5723 5724 5725 5726 5727 5728 5729 5730 5731 5732 5733 5734 5735 5736 5737 </div> 5738 5739 <div class="ww-sell__revgrid"> 5740 5741 5742 5743 5744 5745 5746 5747 5748 5749 5750 5751 5752 5753 5754 5755 5756 5757 5758 5759 5760 5761 5762 5763 5764 5765 5766 5767 5768 5769 5770 5771 5772 5773 5774 5775 5776 5777 5778 5779 5780 5781 5782 <div class="ww-sell__revcard" > 5783 <span class="ww-sell__goldstars ww-sell__goldstars--sm" aria-hidden="true">â â â â â </span> 5784 <p class="ww-sell__revtitle">BEST tasting electrolytes out there!!!</p> 5785 <p class="ww-sell__revbody">Some have a very chemically taste or artificial, but these are so tasty and more natural tasting. Love the ratios of the electrolytes too.</p> 5786 <p class="ww-sell__revname">Sasha<span class="ww-sell__revver">â Verified buyer</span></p> 5787 </div> 5788 5789 5790 5791 <div class="ww-sell__revcard" > 5792 <span class="ww-sell__goldstars ww-sell__goldstars--sm" aria-hidden="true">â â â â â </span> 5793 <p class="ww-sell__revtitle">Great!</p> 5794 <p class="ww-sell__revbody">I pretty much hate all drink mixes and this one was shockingly good. Salt and light lime flavour - no weird after taste or extra.</p> 5795 <p class="ww-sell__revname">Julia<span class="ww-sell__revver">â Verified buyer</span></p> 5796 </div> 5797 5798 5799 5800 <div class="ww-sell__revcard" > 5801 <span class="ww-sell__goldstars ww-sell__goldstars--sm" aria-hidden="true">â â â â â </span> 5802 <p class="ww-sell__revtitle">Highly recommended!</p> 5803 <p class="ww-sell__revbody">Love the taste!! Love the product overall!! Had alot of other electrolytes and none beat Wakewater!!</p> 5804 <p class="ww-sell__revname">Derrick<span class="ww-sell__revver">â Verified buyer</span></p> 5805 </div> 5806 5807 5808 5809 <div class="ww-sell__revcard" > 5810 <span class="ww-sell__goldstars ww-sell__goldstars--sm" aria-hidden="true">â â â â â </span> 5811 <p class="ww-sell__revtitle">Highly recommended!</p> 5812 <p class="ww-sell__revbody">The citrus tang does a good job of masking the salty flavour!</p> 5813 <p class="ww-sell__revname">Lisa<span class="ww-sell__revver">â Verified buyer</span></p> 5814 </div> 5815 5816 5817 5818 5819 5820 5821 5822 5823 5824 5825 5826 5827 5828 5829 5830 5831 5832 5833 </div> 5834 <details class="ww-sell__seeall"> 5835 <summary>See all 833 reviews</summary> 5836 <div class="ww-sell__reviews-slot" id="ww-reviews-slot"></div> 5837 </details> 5838 5839 <div class="ww-sell__bandcta"><a class="ww-sell__bandcta-btn" href="#MainContent">BUILD MY BUNDLE</a></div> 5840 5841 </div> 5842 </div> 5843 5844 5845 5846 5847 5848 5849 5850 <div class="ww-sell__band ww-sell__band--tint"> 5851 <div class="ww-sell__inner ww-sell__inner--narrow"> 5852 <p class="ww-sell__kicker">GOT QUESTIONS?</p> 5853 <h2 class="ww-sell__h2">We've got answers</h2> 5854 <div class="ww-sell__faqs"> 5855 5856 5857 5858 5859 5860 5861 5862 5863 5864 5865 5866 5867 5868 5869 5870 5871 5872 5873 5874 5875 5876 5877 5878 5879 5880 5881 5882 5883 5884 5885 5886 5887 5888 5889 5890 5891 5892 5893 5894 5895 5896 5897 5898 5899 5900 5901 5902 5903 5904 5905 <details class="ww-sell__faq" > 5906 <summary class="ww-sell__faq-q">How many sticks come in a pouch?<span class="ww-sell__faq-x" aria-hidden="true">+</span></summary> 5907 <p class="ww-sell__faq-a">Every pouch has 10 single-serve sticks. Build a bundle of 3, 6, or 9 pouches and mix and match any flavours you like. That's 30, 60, or 90 servings stocked and ready.</p> 5908 </details> 5909 5910 5911 5912 <details class="ww-sell__faq" > 5913 <summary class="ww-sell__faq-q">How many sticks should I drink a day?<span class="ww-sell__faq-x" aria-hidden="true">+</span></summary> 5914 <p class="ww-sell__faq-a">Most people have 1 stick a day. On heavy sweat days, training, sauna, or summer heat, plenty of customers do 2. Each stick is 800mg of sodium, roughly what you lose in an hour of hard sweating.</p> 5915 </details> 5916 5917 5918 5919 <details class="ww-sell__faq" > 5920 <summary class="ww-sell__faq-q">When's the best time to drink it?<span class="ww-sell__faq-x" aria-hidden="true">+</span></summary> 5921 <p class="ww-sell__faq-a">Whenever you're sweating or about to. First thing in the morning, before a workout, or with lunch on a hot day. Our Electrolytes line is caffeine-free, so evenings are fine too.</p> 5922 </details> 5923 5924 5925 5926 <details class="ww-sell__faq" > 5927 <summary class="ww-sell__faq-q">Does WakeWater have caffeine?<span class="ww-sell__faq-x" aria-hidden="true">+</span></summary> 5928 <p class="ww-sell__faq-a">Our core Electrolytes are caffeine-free, so you can sip them any time of day. Looking for a lift? Our Energy+ and
5928Sparkling Energy lines bring the caffeine, same no-sugar promise.</p> 5929 </details> 5930 5931 5932 5933 <details class="ww-sell__faq" > 5934 <summary class="ww-sell__faq-q">Is it really zero sugar?<span class="ww-sell__faq-x" aria-hidden="true">+</span></summary> 5935 <p class="ww-sell__faq-a">Yep. We sweeten naturally with stevia. Zero sugar, about 10 calories per stick, and none of the crash or chalky aftertaste.</p> 5936 </details> 5937 5938 5939 5940 <details class="ww-sell__faq" > 5941 <summary class="ww-sell__faq-q">How does Subscribe & Save work?<span class="ww-sell__faq-x" aria-hidden="true">+</span></summary> 5942 <p class="ww-sell__faq-a">Save an extra 15% on every bundle order, get free shipping, and choose your delivery frequency. Skip, swap flavours, pause, or cancel anytime. No strings.</p> 5943 </details> 5944 5945 5946 5947 <details class="ww-sell__faq" > 5948 <summary class="ww-sell__faq-q">When will my order arrive?<span class="ww-sell__faq-x" aria-hidden="true">+</span></summary> 5949 <p class="ww-sell__faq-a">Most orders ship within 2 business days and arrive in 2 to 5 business days.</p> 5950 </details> 5951 5952 5953 5954 <details class="ww-sell__faq" > 5955 <summary class="ww-sell__faq-q">What if I don't love it?<span class="ww-sell__faq-x" aria-hidden="true">+</span></summary> 5956 <p class="ww-sell__faq-a">You're covered by our 30 Day Guarantee. If WakeWater isn't for you, we'll make it right. No hoops, no hassle.</p> 5957 </details> 5958 5959 5960 </div> 5961 </div> 5962 </div> 5963 5964 5965 5966 <div class="ww-sell__cta"> 5967 <p class="ww-sell__kicker ww-sell__kicker--light">MADE TO MOVE WITH YOU</p> 5968 <h2 class="ww-sell__h2 ww-sell__h2--light">Stop drinking sugar. Start moving better.</h2> 5969 <p class="ww-sell__cta-body">Build your bundle, subscribe, and never run dry.</p> 5970 <a class="ww-sell__cta-btn" href="#MainContent">BUILD MY BUNDLE</a> 5971 <p class="ww-sell__cta-micro">30 Day Guarantee · Free Shipping · Cancel anytime</p> 5972 </div> 5973 5974 5975</div> 5976
5977<script> 5978(function(){ 5979 function outermost(cands){return cands.filter(function(e){return !cands.some(function(o){return o!==e&&o.contains(e);});});} 5980 function moveFera(){ 5981 var slot=document.getElementById('ww-reviews-slot'); 5982 if(!slot||slot.dataset.done)return; 5983 var all=[].slice.call(document.querySelectorAll('[data-fera-container], [class*="fera-"], [id*="fera"]')); 5984 var cands=all.filter(function(el){ 5985 if(el.closest('.wakewater-skio-bab'))return false; 5986 if(slot.contains(el))return false; 5987 var d=slot.closest('details'); 5988 if(d&&d.contains(el))return false; 5989 var c=(typeof el.className==='string')?el.className:''; 5990 return el.offsetHeight>150||c.indexOf('productReviews--list')>-1; 5991 }); 5992 cands=outermost(cands); 5993 if(cands.length){slot.appendChild(cands[0]);slot.dataset.done='1';} 5994 } 5995 setInterval(moveFera,800); 5996 if(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',moveFera);}else{moveFera();} 5997})(); 5998</script>
5998 5999 6000<style> 6001.ww-sell { font-family: 'Montserrat', sans-serif; color: #041A71; } 6002.ww-sell__retail { background: #ffffff; border-bottom: 1px solid #E7F3F9; padding: 18px 16px 12px; text-align: center; } 6003.ww-sell__retail-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 14px 24px; } 6004.ww-sell__retail-label { font-weight: 800; font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: #8ba3c7; } 6005.ww-sell__retail-logos { display: flex; flex-wrap: nowrap; align-items: center; justify-content: center; gap: 20px; } 6006.ww-sell__retail-slot { width: 104px; height: 30px; display: flex; align-items: center; justify-content: center; } 6007.ww-sell__retail-logo { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; } 6008/* The Circle K asset is a 320x320 canvas whose mark fills only ~35% of the height; 6009 oversize the box so the visible mark matches the other logos */ 6010.ww-sell__retail-slot img[alt="Circle K"] { max-height: none; height: 96px; } 6011.ww-sell__retail-word { font-family: 'Barlow Condensed', sans-serif; font-weight: 800; font-size: 20px; text-transform: uppercase; letter-spacing: 0.03em; color: #7c92c9; } 6012.ww-sell__retail-note { font-size: 11px; font-weight: 500; color: #9db1cf; margin: 8px 0 0; } 6013.ww-sell__band { padding: 56px 20px; background: #ffffff; } 6014.ww-sell__band--tint { background: #E7F3F9; } 6015.ww-sell__band--reviews { border-bottom: 1px solid #E7F3F9; } 6016.ww-sell__inner { max-width: 1024px; margin: 0 auto; } 6017.ww-sell__inner--narrow { max-width: 760px; } 6018.ww-sell__kicker { font-weight: 800; font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: #041A71; opacity: 0.65; margin: 0 0 10px; text-align: center; } 6019.ww-sell__kicker--light { color: #B0DEF1; opacity: 1; } 6020.ww-sell__h2 { font-family: 'Barlow Condensed', 'Montserrat', sans-serif; font-weight: 800; font-size: clamp(30px, 4.4vw, 46px); text-transform: uppercase; line-height: 0.98; text-align: center; margin: 0 0 32px; color: #041A71; } 6021.ww-sell__h2--light { color: #ffffff; } 6022.ww-sell__whysub { text-align: center; max-width: 540px; margin: -18px auto 32px; font-size: 15px; line-height: 1.55; color: #364153; } 6023.ww-sell__whybullets { list-style: none; padding: 0; max-width: 500px; margin: -14px auto 32px; display: flex; flex-direction: column; gap: 9px; text-align: left; } 6024.ww-sell__whybullets li { position: relative; padding-left: 28px; font-size: 15px; line-height: 1.5; color: #364153; font-weight: 500; } 6025.ww-sell__whybullets li::before { content: '\2713'; position: absolute; left: 4px; top: 0; color: #041A71; font-weight: 800; } 6026.ww-sell__whyimg { max-width: 760px; margin: 0 auto; } 6027.ww-sell__whyimg img { width: 100%; height: auto; border-radius: 16px; display: block; } 6028.ww-sell__goldstars { color: #EAB308; letter-spacing: 3px; font-size: 22px; } 6029.ww-sell__goldstars--sm { font-size: 15px; letter-spacing: 2px; } 6030.ww-sell__revsum { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 12px 18px; margin: -8px 0 28px; } 6031.ww-sell__revsum-main { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 12px; } 6032.ww-sell__revsum-num { font-family: 'Barlow Condensed', sans-serif; font-weight: 800; font-size: 52px; line-height: 1; } 6033.ww-sell__revsum-count { font-size: 14px; font-weight: 600; color: #364153; white-space: nowrap; } 6034/* Optical centring: the star and text glyphs sit higher in their line boxes than the 6035 condensed digits do, so drop them a few px to centre on the digits (measured Aug 2026) */ 6036.ww-sell__revsum-main .ww-sell__goldstars, 6037.ww-sell__revsum-main .ww-sell__revsum-count { position: relative; top: 4px; } 6038.ww-sell__revsum-div { width: 1px; height: 36px; background: #dbe9f3; } 6039.ww-sell__revsum-stat { font-family: 'Barlow Condensed', sans-serif; font-weight: 800; font-size: 24px; text-transform: uppercase; color: #041A71; } 6040.ww-sell__ugc { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; max-width: 1024px; margin: 0 auto 26px; } 6041.ww-sell__ugc-tile { aspect-ratio: 1 / 1; border-radius: 12px; overflow: hidden; background: #E7F3F9; } 6042.ww-sell__ugc-tile img { width: 100%; height: 100%; object-fit: cover; display: block; } 6043.ww-sell__bandcta { text-align: center; margin-top: 26px; } 6044.ww-sell__bandcta-btn { display: inline-block; font-weight: 800; font-size: 14px; letter-spacing: 0.04em; text-transform: uppercase; color: #ffffff; border: 2px solid #041A71; border-radius: 40px; padding: 12px 32px; text-decoration: none; background: #041A71; transition: transform 0.15s, box-shadow 0.15s; } 6045.ww-sell__bandcta-btn:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(4,26,113,0.25); } 6046.ww-sell__revgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; max-width: 900px; margin: 0 auto; } 6047.ww-sell__revcard { background: #ffffff; border: 1px solid #dbe9f3; border-radius: 16px; padding: 20px 18px; box-shadow: 0 10px 28px rgba(4,26,113,0.06); display: flex; flex-direction: column; gap: 7px; text-align: left; } 6048.ww-sell__revtitle { font-weight: 700; font-size: 15px; margin: 0; color: #041A71; } 6049.ww-sell__revbody { font-size: 13.5px; line-height: 1.55; color: #364153; margin: 0; } 6050.ww-sell__revname { font-size: 12.5px; font-weight: 700; margin: 4px 0 0; color: #041A71; } 6051.ww-sell__revver { font-weight: 600; color: #0F6E56; margin-left: 8px; } 6052.ww-sell__seeall { margin: 22px auto 0; max-width: 820px; text-align: center; } 6053.ww-sell__seeall > summary { list-style: none; cursor: pointer; text-align: center; display: inline-block; margin: 0 auto; font-weight: 700; font-size: 14px; color: #041A71; border: 2px solid #041A71; border-radius: 40px; padding: 11px 30px; } 6054.ww-sell__seeall > summary::-webkit-details-marker { display: none; } 6055.ww-sell__seeall[open] > summary { opacity: 0.6; margin-bottom: 16px; } 6056.ww-sell__reviews-slot { max-width: 780px; margin: 0 auto; text-align: left; } 6057.ww-sell__reviews-slot * { font-family: 'Montserrat', sans-serif !important; } 6058.ww-sell__reviews-slot h1, .ww-sell__reviews-slot h2, .ww-sell__reviews-slot h3, .ww-sell__reviews-slot h4, .ww-sell__reviews-slot strong, .ww-sell__reviews-slot b { color: #041A71 !important; } 6059.ww-sell__reviews-slot a { color: #041A71 !important; } 6060.ww-sell__reviews-slot button { border-radius: 30px !important; } 6061.ww-sell__reviews-slot .fera-productReviews-heading, .ww-sell__reviews-slot .fera-productReviews-totals-col1, .ww-sell__reviews-slot .fera-productReviews-avgRating-stars { display: none !important; } 6062.ww-sell__stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 14px; } 6063.ww-sell__stat { background: #ffffff; border: 1px solid #E7F3F9; border-radius: 16px; padding: 22px 16px; display: flex; flex-direction: column; gap: 6px; box-shadow: 0 10px 28px rgba(4,26,113,0.06); } 6064.ww-sell__stat-num { font-family: 'Barlow Condensed', sans-serif; font-weight: 800; font-size: 40px; line-height: 1; } 6065.ww-sell__stat-title { font-weight: 700; font-size: 14px; text-transform: uppercase; letter-spacing: 0.04em; } 6066.ww-sell__stat-body { font-weight: 400; font-size: 13px; line-height: 1.5; color: #364153; } 6067.ww-sell__table { border: 1px solid #dbe9f3; border-radius: 18px; overflow: hidden; background: #ffffff; box-shadow: 0 16px 44px rgba(4,26,113,0.07); max-width: 860px; margin: 0 auto; } 6068.ww-sell__table--3 { max-width: 620px; } 6069.ww-sell__trow { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; align-items: stretch; border-top: 1px solid #E7F3F9; } 6070.ww-sell__table--3 .ww-sell__trow { grid-template-columns: 1.1fr 0.9fr 1.2fr; } 6071.ww-sell__trow > div { padding: 13px 10px; font-size: 13.5px; text-align: center; color: #364153; display: flex; align-items: center; justify-content: center; } 6072.ww-sell__trow--head { border-top: 0; background: #041A71 !important; } 6073.ww-sell__trow--head > div { color: #ffffff; font-family: 'Barlow Condensed', sans-serif; font-weight: 800; font-size: 16px; line-height: 1.1; text-transform: uppercase; padding: 14px 10px; } 6074.ww-sell__trow--head .ww-sell__us-col { background: #B0DEF1; color: #041A71; }
6075.ww-sell__trow:nth-child(odd):not(.ww-sell__trow--head) { background: #fafcff; } 6076.ww-sell__tlabel { font-weight: 700; font-size: 13px; color: #041A71 !important; text-align: left !important; padding-left: 18px !important; justify-content: flex-start !important; } 6077.ww-sell__us { font-weight: 700; color: #041A71 !important; background: #E7F3F9; } 6078.ww-sell__cmp-note { text-align: center; font-size: 11.5px; color: #7c92c9; margin: 14px auto 0; max-width: 640px; } 6079.ww-sell__steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px; } 6080.ww-sell__step { display: flex; flex-direction: column; gap: 6px; text-align: left; } 6081.ww-sell__step-img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 14px; display: block; } 6082.ww-sell__step-img--ph { background: #E7F3F9; } 6083.ww-sell__step-n { font-family: 'Barlow Condensed', sans-serif; font-weight: 800; font-size: 30px; color: #041A71; line-height: 1; margin-top: 10px; } 6084.ww-sell__badges { display: flex; flex-wrap: wrap; justify-content: center; gap: 26px; padding: 34px 20px; background: #ffffff; border-top: 1px solid #E7F3F9; border-bottom: 1px solid #E7F3F9; } 6085.ww-sell__badge { display: flex; flex-direction: column; align-items: center; gap: 8px; min-width: 86px; } 6086.ww-sell__badge-mark { width: 54px; height: 54px; border-radius: 50%; background: #041A71; color: #ffffff; display: flex; align-items: center; justify-content: center; font-family: 'Barlow Condensed', sans-serif; font-weight: 800; font-size: 18px; } 6087.ww-sell__badge-label { font-size: 12px; font-weight: 600; text-align: center; } 6088.ww-sell__faqs { display: flex; flex-direction: column; gap: 10px; } 6089.ww-sell__faq { background: #ffffff; border: 1px solid #dbe9f3; border-radius: 12px; padding: 0 18px; } 6090.ww-sell__faq-q { font-weight: 700; font-size: 15px; padding: 16px 0; cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 12px; } 6091.ww-sell__faq-q::-webkit-details-marker { display: none; } 6092.ww-sell__faq-x { font-size: 20px; font-weight: 400; color: #041A71; transition: transform 0.2s; } 6093.ww-sell__faq[open] .ww-sell__faq-x { transform: rotate(45deg); } 6094.ww-sell__faq-a { font-size: 14px; line-height: 1.6; color: #364153; margin: 0; padding: 0 0 16px; } 6095.ww-sell__cta { background: #041A71; text-align: center; padding: 64px 20px; } 6096.ww-sell__cta-body { color: #B0DEF1; font-size: 16px; margin: 0 0 26px; } 6097.ww-sell__cta-btn { display: inline-block; background: #E7F3F9; color: #041A71; font-weight: 800; font-size: 16px; text-transform: uppercase; letter-spacing: 0.04em; padding: 15px 38px; border-radius: 40px; text-decoration: none; box-shadow: 0 12px 24px rgba(0,0,0,0.25); } 6098.ww-sell__cta-btn:hover { transform: translateY(-2px); } 6099.ww-sell__cta-micro { color: #B0DEF1; font-size: 12.5px; font-weight: 500; margin: 18px 0 0; } 6100.ww-sell > .ww-sell__band:first-child { padding-top: 40px; } 6101.ww-sell__retail + .ww-sell__band { padding-top: 26px; } 6102@media (max-width: 749px) { 6103 .ww-sell__band { padding: 30px 16px; } 6104 .ww-sell__h2 { margin-bottom: 22px; } 6105 .ww-sell__retail { padding: 14px 10px 8px; } 6106 .ww-sell__retail-row { flex-direction: column; gap: 10px; } 6107 .ww-sell__retail-logos { width: 100%; gap: 8px; } 6108 .ww-sell__retail-slot { width: 23%; max-width: 82px; height: 22px; } 6109 .ww-sell__retail-slot img[alt="Circle K"] { height: 68px; } 6110 .ww-sell__retail-word { font-size: 15px; } 6111 .ww-sell__whysub { margin: -10px auto 24px; font-size: 14px; } 6112 .ww-sell__stats { grid-template-columns: 1fr 1fr; } 6113 .ww-sell__ugc { grid-template-columns: repeat(3, 1fr); gap: 6px; margin-bottom: 20px; } 6114 .ww-sell__ugc-tile { border-radius: 10px; } 6115 .ww-sell__bandcta { margin-top: 20px; } 6116 .ww-sell__revgrid { grid-template-columns: 1fr; } 6117 .ww-sell__revsum-num { font-size: 42px; } 6118 .ww-sell__revsum-main .ww-sell__goldstars, 6119 .ww-sell__revsum-main .ww-sell__revsum-count { top: 3px; } 6120 .ww-sell__revsum-div { display: none; } 6121 .ww-sell__revsum-stat { flex-basis: 100%; text-align: center; font-size: 20px; } 6122 .ww-sell__trow > div { font-size: 12px; padding: 11px 6px; } 6123 .ww-sell__trow--head > div { font-size: 13px; } 6124 .ww-sell__tlabel { padding-left: 12px !important; font-size: 12px; } 6125 .ww-sell__steps { grid-template-columns: 1fr; } 6126 .ww-sell > .ww-sell__band:first-child { padding-top: 22px; } 6127 .ww-sell__retail + .ww-sell__band { padding-top: 12px; } 6128} 6129</style> 6130 6131 6132</div><section id="shopify-section-template--31712463618334__per_stick_price_helper" class="shopify-section section"><style data-shopify>.section-template--31712463618334__per_stick_price_helper-padding {
6133 padding-top: calc(0px * 0.75); 6134 padding-bottom: calc(0px * 0.75); 6135 } 6136 6137 @media screen and (min-width: 750px) { 6138 .section-template--31712463618334__per_stick_price_helper-padding { 6139 padding-top: 0px; 6140 padding-bottom: 0px; 6141 } 6142 }</style><div class="color-scheme-1 gradient"> 6143 <div class="section-template--31712463618334__per_stick_price_helper-padding"> 6144 <style>@media screen and (max-width:749px){.wakewater-skio-bab .skbab-mosaic__cell,.wakewater-skio-bab .skbab-mosaic__cell--1{aspect-ratio:4/3}.wakewater-skio-bab .skbab-mosaic__img{height:100%!important;object-fit:cover}.wakewater-skio-bab .skbab-description,.wakewater-skio-bab .skbab-benefits{display:none}.wakewater-skio-bab{padding-bottom:12px!important}.wakewater-skio-bab .skbab-buybox{padding-bottom:0!important}}@media screen and (min-width:750px){.wakewater-skio-bab{padding-bottom:32px!important}}.wakewater-skio-bab .skbab-trust{padding-bottom:4px!important}.wakewater-skio-bab .skbab-tab-content{padding-bottom:16px!important}.wakewater-skio-bab .skbab-faqs--buybox{margin-top:14px!important;margin-bottom:0!important}.wakewater-skio-bab .skbab-vendor{display:none}.wakewater-skio-bab .skbab-save-badge{background:#EA2036!important;color:#ffffff!important}.wakewater-skio-bab .skbab-fera-row [data-fera-container]{display:none}.wakewater-skio-bab .skbab-fera-label{font-size:14px;font-weight:600;color:#041A71;opacity:1;letter-spacing:0;line-height:1.5}.wakewater-skio-bab .skbab-price-row{margin-bottom:4px}.wakewater-skio-bab .skbab-per-stick{font-family:Montserrat,sans-serif;font-size:14px;font-weight:600;color:#041A71;opacity:0.75;margin:0 0 18px}.wakewater-skio-bab .skbab-stepper__plus.is-capped,.wakewater-skio-bab .skbab-card__add.is-capped{opacity:0.35;cursor:not-allowed}.wakewater-skio-bab .skbab-tab--bundle.is-active .skbab-tab__badge{display:none}.wakewater-skio-bab .skbab-descriptor,.wakewater-skio-bab .skbab-descriptor strong{text-transform:none!important}.wakewater-skio-bab .skbab-freeship{font-family:Montserrat,sans-serif;font-size:13px;font-weight:600;color:#041A71;text-align:center;margin:10px 0 0}.wakewater-skio-bab .skbab-freeship svg{vertical-align:-2px;margin-right:5px}.wakewater-skio-bab .skbab-atc__compare{display:none!important}</style>
6144<script>(function(){var CAP=9,UNITS=10,userFreq=false,syncing=false;function q(s,c){return (c||document).querySelector(s);}function getRoot(){return q('.wakewater-skio-bab');}function pouches(r){var t=0;r.querySelectorAll('.skbab-stepper__qty').forEach(function(el){t+=parseInt(el.textContent||'0',10)||0;});return t;}function bundleActive(r){var b=q('.skbab-tab--bundle',r);return !b||b.classList.contains('is-active');}function sticksCount(r){if(!bundleActive(r))return UNITS;var p=pouches(r);if(p>0)return p*UNITS;var tier=q('.skbab-tier.is-active',r);if(!tier)return 0;var lbl=q('.skbab-tier__label',tier);var n=lbl?parseInt((lbl.textContent||'').replace(/[^0-9]/g,''),10):0;return n||0;}function targetDays(r){var s=sticksCount(r);if(s>=90)return 90;if(s>=60)return 60;return 30;}function syncFreq(r){var sel=q('.js-skbab-frequency-select',r);if(!sel||sel.options.length<1)return;if(!sel.dataset.wwBound){sel.dataset.wwBound='1';sel.addEventListener('change',function(){if(!syncing)userFreq=true;});}if(userFreq||!bundleActive(r))return;var want=targetDays(r),best=null;for(var i=0;i<sel.options.length;i++){var m=(sel.options[i].textContent||'').match(/([0-9]+)/);if(m&&parseInt(m[1],10)===want){best=sel.options[i];break;}}if(best&&sel.value!==best.value){syncing=true;sel.value=best.value;sel.dispatchEvent(new Event('change',{bubbles:true}));setTimeout(function(){syncing=false;},50);}}function refreshCap(r){var capped=bundleActive(r)&&pouches(r)>=CAP;r.querySelectorAll('.skbab-stepper__plus,.skbab-card__add').forEach(function(b){b.classList.toggle('is-capped',capped);b.setAttribute('aria-disabled',capped?'true':'false');});}function dollarize(r,total){var cmpEl=q('.js-skbab-compare-price',r),span=q('.js-skbab-savings-pct',r);if(!cmpEl||!span)return;var cmp=parseFloat((cmpEl.textContent||'').replace(/[^0-9.]/g,''));if(cmp&&total&&cmp>total){var txt='$'+(cmp-total).toFixed(2);if(span.textContent!==txt)span.textContent=txt;}}function update(){var r=getRoot();if(!r)return;var priceEl=q('.js-skbab-current-price',r),line=q('.skbab-per-stick',r);if(!priceEl||!line)return;var total=parseFloat((priceEl.textContent||'').replace(/[^0-9.]/g,''));var n=sticksCount(r);line.textContent=(!total||!n)?'':n+' sticks · $'+(total/n).toFixed(2)+'/stick';dollarize(r,total);refreshCap(r);syncFreq(r);}function ensure(){var r=getRoot();if(!r)return;r.querySelectorAll('.skbab-section-label').forEach(function(l){var t=(l.textContent||'').toLowerCase();if(t.indexOf('frequency')>-1)l.textContent='Choose Your Plan';});var priceRow=q('.skbab-price-row',r),priceEl=q('.js-skbab-current-price',r);if(!priceRow||!priceEl)return;if(!q('.skbab-per-stick',r)){var line=document.createElement('p');line.className='skbab-per-stick';priceRow.insertAdjacentElement('afterend',line);}var bar=q('.skbab-savings-bar',r);if(bar&&!q('.skbab-freeship',r)){var ship=document.createElement('p');ship.className='skbab-freeship';ship.innerHTML='<svg width="14" height="14" viewBox="0 0 24 24" fill="none"><path d="M20 6L9 17l-5-5" stroke="#00C950" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/></svg>Free shipping on all drink mixes';bar.insertAdjacentElement('afterend',ship);}if(!priceEl.dataset.wwObs){priceEl.dataset.wwObs='1';new MutationObserver(update).observe(priceEl,{childList:true,characterData:true,subtree:true});}update();}if(!window.__wwSkbabBound){window.__wwSkbabBound=true;document.addEventListener('click',function(e){var r=getRoot();if(!r)return;var btn=e.target.closest('.skbab-stepper__plus,.skbab-card__add');if(!btn||!r.contains(btn)||!bundleActive(r))return;if(pouches(r)>=CAP){e.preventDefault();e.stopPropagation();var line=q('.skbab-per-stick',r);if(line){line.textContent='Max bundle size: '+(CAP*UNITS)+' sticks';setTimeout(update,1400);}}},true);document.addEventListener('click',function(){setTimeout(update,80);});}if(document.readyState==='loading'){document.addEventListener('DOMContentLoaded',ensure);}else{ensure();}setInterval(ensure,900);})();</script>
6144 6145 </div> 6146</div> 6147 6148 6149</section> 6150 </main> 6151 6152 <!-- BEGIN sections: footer-group --> 6153<div id="shopify-section-sections--31712459555102__new_footer_6iDKzA" class="shopify-section shopify-section-group-footer-group"><link href="//wakewater.com/cdn/shop/t/101/assets/section-footer.css?v=60318643098753476351789746274" rel="stylesheet" type="text/css" media="all" /> 6154 6155<style> 6156 .custom-footer { 6157 background-color: #041A71; /* Dark Blue as per image */ 6158 color: #ffffff; 6159 font-family: 'Montserrat', sans-serif; 6160 } 6161 .footer-container { 6162 max-width: 1200px; 6163 margin: 0 auto; 6164 padding: 0 20px; 6165 } 6166 .footer-grid { 6167 display: flex; 6168 justify-content: space-between; 6169 flex-wrap: wrap; 6170 gap: 40px; 6171 } 6172 .footer-logo-column { 6173 flex: 1.5; 6174 } 6175 .footer-logo { 6176 max-width: 87px; 6177 margin-bottom: 16px; 6178} 6179.footer-about-text { 6180 font-size: 14px; 6181 line-height: 1.6; 6182 color: #B0DEF1; 6183 margin-bottom: 15px; 6184 max-width: 250px; 6185 font-family: 'Montserrat', sans-serif; 6186} 6187 .footer-socials { 6188 display: flex; 6189 gap: 12px; 6190 } 6191 .footer-social-icon { 6192 background: rgba(255,255,255,0.1); 6193 width: 36px; 6194 height: 36px; 6195 border-radius: 50%; 6196 display: flex;
6197 align-items: center; 6198 justify-content: center; 6199 color: white; 6200 transition: background 0.3s; 6201 } 6202 .footer-social-icon:hover { background: rgba(255,255,255,0.2); } 6203 6204 .footer-menu-column { 6205 flex: 1; 6206 } 6207.footer-heading { 6208 font-size: 18px; 6209 font-weight: 700; 6210 margin: 0 0 16px; 6211 color: #ffffff; 6212 text-transform: none; 6213 font-family: 'Montserrat', sans-serif; 6214 letter-spacing: 0; 6215} 6216 .footer-list { list-style: none; padding: 0; margin: 0; } 6217 .footer-menu-column .footer-list { 6218 display: flex; 6219 flex-direction: column; 6220 gap: 8px; 6221} 6222.footer-menu-column .footer-list li { 6223 line-height: 1.4; 6224} 6225.footer-list a { 6226 color: #B0DEF1; 6227 text-decoration: none; 6228 font-size: 14px; 6229 transition: color 0.3s; 6230 font-family: 'Montserrat', sans-serif; 6231} 6232 .footer-list a:hover { color: #ffffff; } 6233 .footer-bottom .copyright, .footer-legal-links a { 6234 font-weight: 300; 6235 font-size: 14px; 6236 line-height: 1.3; 6237 letter-spacing: 0px; 6238 color: #B0DEF1; 6239 font-family: 'Montserrat', sans-serif; 6240} 6241.footer-legal-links >*:first-child { 6242 margin: 0; 6243} 6244 6245.footer-bottom { 6246 margin-top: 32px; 6247 padding: 16px 0; 6248 border-top: 1px solid rgba(255,255,255,0.1); 6249 display: flex; 6250 justify-content: space-between; 6251 align-items: center; 6252 font-size: 13px; 6253 color: #b1b1b1; 6254} 6255 .footer-legal-links a { 6256 text-decoration: none; 6257 margin-left: 23px; 6258 } 6259 .footer-legal-links a:hover { 6260 color: #fff; 6261 } 6262 .footer-socials .list-social__item .link { 6263 height: 40px; 6264 width: 40px; 6265 display: flex;
6266 align-items: center; 6267 justify-content: center; 6268 background: #FFFFFF1A; 6269 border-radius: 50%; 6270 transition: .4s; 6271} 6272.footer-socials .list-unstyled { 6273 display: flex; 6274 align-items: center; 6275 gap: 12px; 6276} 6277.footer-list a:hover { 6278 color: #fff; 6279} 6280.footer-socials .list-social__item .link:hover { 6281 background: #ffffff59; 6282} 6283 6284 6285 /* --- Mobile View Styles --- */ 6286 @media screen and (max-width: 989px) { 6287 .footer-legal-links a { 6288 margin-left: 13px; 6289 } 6290} 6291 @media screen and (max-width: 749px) { 6292 .custom-footer { padding: 40px 0 20px; } 6293 .footer-grid { 6294 flex-direction: column; 6295 align-items: flex-start; /* As per your mobile image */ 6296 gap: 32px; 6297 } 6298 .footer-logo-column { 6299 text-align: left; 6300 } 6301 .footer-socials { 6302 justify-content: flex-start; 6303 } 6304 .footer-bottom { 6305 flex-direction: column; 6306 gap: 16px; 6307 text-align: center; 6308 align-items: center; 6309 padding-top: 32px; 6310 padding-bottom: 0; 6311 } 6312 .footer-legal-links { 6313 display: flex; 6314 flex-wrap: wrap; 6315 gap: 15px; 6316 margin-top: 0px; 6317 justify-content: center; 6318 } 6319 .footer-legal-links a { 6320 margin-left: 0; 6321 margin-right: 0; 6322 } 6323 .footer-about-text { 6324 max-width: 100%; 6325} 6326 } 6327</style> 6328<style data-shopify> 6329 .section-sections--31712459555102__new_footer_6iDKzA { 6330 padding-top: 48px; 6331 padding-bottom: 48px; 6332 } 6333 @media(max-width:767px) { 6334 .section-sections--31712459555102__new_footer_6iDKzA { 6335 padding-top: 48px; 6336 padding-bottom: 63px; 6337 } 6338 } 6339</style> 6340<footer class="custom-footer section-sections--31712459555102__new_footer_6iDKzA"> 6341 <div class="container"> 6342 <div class="footer-grid"><div class="footer-logo-column" ><img src="//wakewater.com/cdn/shop/files/WWLogo_White_400x.png?v=1774982878" class="footer-logo" alt="WakeWater Beverage Co"><div class="footer-about-text">Real electrolytes. Clean energy. No compromises.</div> 6343 <div class="footer-socials"> 6344 6345<ul class="list-unstyled list-social" role="list"><li class="list-social__item"> 6346 <a href="https://www.instagram.com/wakewaterca/" class="link list-social__link"> 6347 <span class="svg-wrapper"><svg class="icon icon-instagram" width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 6348<path d="M14.1667 1.6665H5.83333C3.53214 1.6665 1.66666 3.53198 1.66666 5.83317V14.1665C1.66666 16.4677 3.53214 18.3332 5.83333 18.3332H14.1667C16.4679 18.3332 18.3333 16.4677 18.3333 14.1665V5.83317C18.3333 3.53198 16.4679 1.6665 14.1667 1.6665Z" stroke="white" stroke-width="1.66667" stroke-linecap="round" stroke-linejoin="round"></path> 6349<path d="M13.3333 9.47476C13.4362 10.1683 13.3177 10.8766 12.9948 11.4989C12.6719 12.1213 12.161 12.6259 11.5347 12.9412C10.9084 13.2564 10.1987 13.3661 9.50649 13.2547C8.81427 13.1433 8.1748 12.8165 7.67903 12.3207C7.18327 11.825 6.85645 11.1855 6.74506 10.4933C6.63367 9.80106 6.74339 9.09134 7.05861 8.46507C7.37383 7.83881 7.87849 7.32788 8.50082 7.00496C9.12316 6.68205 9.83146 6.56359 10.525 6.66643C11.2324 6.77133 11.8874 7.10098 12.3931 7.60669C12.8988 8.11239 13.2284 8.76733 13.3333 9.47476Z" stroke="white" stroke-width="1.66667" stroke-linecap="round" stroke-linejoin="round"></path> 6350<path d="M14.5833 5.4165H14.5917" stroke="white" stroke-width="1.66667" stroke-linecap="round" stroke-linejoin="round"></path> 6351</svg></span> 6352 <span class="visually-hidden">Instagram</span> 6353 </a> 6354 </li><li class="list-social__item"> 6355 <a href="https://www.tiktok.com/@wakewaterca" class="link list-social__link"> 6356 <span class="svg-wrapper"><svg class="icon icon-tiktok" viewBox="0 0 20 20"><path fill="currentColor" d="M10.511 1.705h2.74s-.157 3.51 3.795 3.768v2.711s-2.114.129-3.796-1.158l.028 5.606A5.073 5.073 0 1 1 8.213 7.56h.708v2.785a2.298 2.298 0 1 0 1.618 2.205z"/></svg> 6357</span> 6358 <span class="visually-hidden">TikTok</span> 6359 </a> 6360 </li></ul> 6361</div> 6362 </div><div class="footer-menu-column" > 6363 <h2 class="footer-heading">Products</h2> 6364 <ul class="footer-list"><li><a href="/products/wakewater-custom-box">Electrolytes</a></li><li><a href="/products/caffeinated-sparkling-water-build-a-box">Sparkling Energy</a></li><li><a href="/products/wakewater-custom-box">Plus</a></li><li><a href="/pages/dawn-all-products">Shop All</a></li></ul> 6365 </div><div class="footer-menu-column" > 6366 <h2 class="footer-heading">Company</h2> 6367 <ul class="footer-list"><li><a href="/pages/about-us">About Us</a></li><li><a href="/pages/contact-us">Contact Us</a></li><li><a href="/pages/careers">Careers</a></li></ul> 6368 </div><div class="footer-menu-column" > 6369 <h2 class="footer-heading">Support</h2> 6370 <ul class="footer-list"><li><a href="/pages/contact-us">Contact Us</a></li></ul> 6371 </div></div> 6372 6373 <div class="footer-bottom"> 6374 <div class="copyright"> 6375 © 2026 WakeWater Beverage Co. All rights reserved. 6376 </div> 6377 <div class="footer-legal-links"> 6378 <a href="/policies/privacy-policy">Privacy Policy</a> 6379 <a href="/policies/terms-of-service">Terms of Service</a> 6380 <a href="/policies/cookie-policy">Cookie Policy</a> 6381 </div> 6382 </div> 6383 </div> 6384</footer> 6385 6386</div> 6387<!-- END sections: footer-group --> 6388 6389 <ul hidden> 6390 <li id="a11y-refresh-page-message">Choosing a selection results in a full page refresh.</li> 6391 <li id="a11y-new-window-message">Opens in a new window.</li> 6392 </ul> 6393 6394
6394<script> 6395 window.shopUrl = 'https://wakewater.com'; 6396 window.routes = { 6397 cart_add_url: '/cart/add', 6398 cart_change_url: '/cart/change', 6399 cart_update_url: '/cart/update', 6400 cart_url: '/cart', 6401 predictive_search_url: '/search/suggest', 6402 }; 6403 6404 window.cartStrings = { 6405 error: `There was an error while updating your cart. Please try again.`, 6406 quantityError: `You can only add [quantity] of this item to your cart.`, 6407 }; 6408 6409 window.variantStrings = { 6410 addToCart: `Add to cart`, 6411 soldOut: `Sold out`, 6412 unavailable: `Unavailable`, 6413 unavailable_with_option: `[value] - Unavailable`, 6414 }; 6415 6416 window.quickOrderListStrings = { 6417 itemsAdded: `[quantity] items added`, 6418 itemAdded: `[quantity] item added`, 6419 itemsRemoved: `[quantity] items removed`, 6420 itemRemoved: `[quantity] item removed`, 6421 viewCart: `View cart`, 6422 each: `[money]/ea`, 6423 min_error: `This item has a minimum of [min]`, 6424 max_error: `This item has a maximum of [max]`, 6425 step_error: `You can only add this item in increments of [step]`, 6426 }; 6427 6428 window.accessibilityStrings = { 6429 imageAvailable: `Image [index] is now available in gallery view`, 6430 shareSuccess: `Link copied to clipboard`, 6431 pauseSlideshow: `Pause slideshow`, 6432 playSlideshow: `Play slideshow`, 6433 recipientFormExpanded: `Gift card recipient form expanded`, 6434 recipientFormCollapsed: `Gift card recipient form collapsed`, 6435 countrySelectorSearchCount: `[count] countries/regions found`, 6436 }; 6437 </script>
6437<script src="//wakewater.com/cdn/shop/t/101/assets/predictive-search.js?v=57209189334897115771789746274" defer="defer"></script>
6437<script src="//wakewater.com/cdn/shop/t/101/assets/cart-drawer.js?v=169981311261118214701789746274" defer="defer"></script>
6437<div id="shopify-block-AOEE0Z1ZGRnRWSUl3N__4275615285897611771" class="shopify-block shopify-app-block"><!-- // BEGIN // Fera.ai App Embed Code - DO NOT MODIFY // -->
6438<script type="application/javascript"> 6439 (() => { 6440 window.fera = window.fera || []; let loaded = false; 6441 const load = () => { 6442 // Fera Shopify App Embed v1786365225 6443 loaded = true; const fkey = "pk_0f181bf057b11b3c8232a9f084553dde007a36459ce1b9b9ffe0f3c6d6db6851"; const fdomain = "wakewater.myshopify.com"; 6444 const apiUrl = "";const baseCdnUrl = `https://cdn.fera.ai/js/v2/`;window.fera.push({ action: "setProductId", product_id: "10040200691998" });const v2Config = { store_pk: fkey || fdomain }; 6445 if (apiUrl) v2Config.api_url = apiUrl; 6446 window.fera.push({ action: "loadPlatformAdapter", code: "shopify" }); 6447 6448 window.fera.push({ action: "configure", data: v2Config } );if (!window.fera.version && !document.getElementById('fera_js') && !document.querySelector('[data-app-id][src*="fera.js"]')) { const el = document.createElement('script');el.src = `${ baseCdnUrl }fera.js`;el.id = "fera_js";el.async = true; document.body.append(el); } 6449 }; 6450 6451 const urlParams = new URLSearchParams(window.location.search); 6452 if (urlParams.get("no_fera")) { 6453 // no Fera 6454 } else if (urlParams.get("delay_fera") || navigator.userAgent.match(new RegExp(atob("bW90byBn"), 'i'))) { 6455 setTimeout(() => loaded || load(), parseInt(urlParams.get("delay_fera") || 15000)); 6456 window.addEventListener('mousemove', () => loaded || load(), { once: true, passive: true }); 6457 document.addEventListener('scroll', () => loaded || load()); 6458 } else { 6459 load(); 6460 } 6461 })(); 6462</script>
6462 6463<!-- // END // Fera.ai App Embed Code // --> 6464 6465</div><div id="shopify-block-AR2FMSW9nNERWcU9kV__6174324309569838175" class="shopify-block shopify-app-block"> 6466 6467 6468<div class="smile-shopify-init" 6469 data-channel-key="channel_1VbMXIWFunizIHzO4DbWDImV" 6470 6471></div> 6472 6473 6474</div>
6474<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
6474 6475</body> 6476</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.