PageSourceSearch

https://wakewater.com/products/wakewater-custom-box

html wakewater.com collected 2026-10-09 22:15:06 UTC 314,770 bytes, 6,476 lines download raw bytes

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 &ndash; 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&amp;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 &amp; 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 &amp; 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&amp;width=600" alt="WakeWater Beverage Co" srcset="//wakewater.com/cdn/shop/files/WW_Logo_Horiz-Standard-HD.png?v=1739219985&amp;width=290 290w, //wakewater.com/cdn/shop/files/WW_Logo_Horiz-Standard-HD.png?v=1739219985&amp;width=435 435w, //wakewater.com/cdn/shop/files/WW_Logo_Horiz-Standard-HD.png?v=1739219985&amp;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 &amp; 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&amp;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&amp;width=352 352w, //wakewater.com/cdn/shop/files/0001-6751412741558405243.png?v=1790262005&amp;width=832 832w, //wakewater.com/cdn/shop/files/0001-6751412741558405243.png?v=1790262005&amp;width=1200 1200w, //wakewater.com/cdn/shop/files/0001-6751412741558405243.png?v=1790262005&amp;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&amp;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&amp;width=352 352w, //wakewater.com/cdn/shop/files/0002-6751412741558405243.png?v=1790262005&amp;width=832 832w, //wakewater.com/cdn/shop/files/0002-6751412741558405243.png?v=1790262005&amp;width=1200 1200w, //wakewater.com/cdn/shop/files/0002-6751412741558405243.png?v=1790262005&amp;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&amp;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&amp;width=352 352w, //wakewater.com/cdn/shop/files/0003-6751412741558405243.png?v=1790262005&amp;width=832 832w, //wakewater.com/cdn/shop/files/0003-6751412741558405243.png?v=1790262005&amp;width=1200 1200w, //wakewater.com/cdn/shop/files/0003-6751412741558405243.png?v=1790262005&amp;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&amp;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&amp;width=352 352w, //wakewater.com/cdn/shop/files/0004-6751412741558405243.png?v=1790262005&amp;width=832 832w, //wakewater.com/cdn/shop/files/0004-6751412741558405243.png?v=1790262005&amp;width=1200 1200w, //wakewater.com/cdn/shop/files/0004-6751412741558405243.png?v=1790262005&amp;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&amp;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&amp;width=352 352w, //wakewater.com/cdn/shop/files/0005-6751412741558405243.png?v=1790262004&amp;width=832 832w, //wakewater.com/cdn/shop/files/0005-6751412741558405243.png?v=1790262004&amp;width=1200 1200w, //wakewater.com/cdn/shop/files/0005-6751412741558405243.png?v=1790262004&amp;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&amp;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&amp;width=352 352w, //wakewater.com/cdn/shop/files/0006-6751412741558405243.png?v=1790262005&amp;width=832 832w, //wakewater.com/cdn/shop/files/0006-6751412741558405243.png?v=1790262005&amp;width=1200 1200w, //wakewater.com/cdn/shop/files/0006-6751412741558405243.png?v=1790262005&amp;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&amp;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&amp;width=352 352w, //wakewater.com/cdn/shop/files/0007-6751412741558405243.png?v=1790262005&amp;width=832 832w, //wakewater.com/cdn/shop/files/0007-6751412741558405243.png?v=1790262005&amp;width=1200 1200w, //wakewater.com/cdn/shop/files/0007-6751412741558405243.png?v=1790262005&amp;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&amp;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&amp;width=352 352w, //wakewater.com/cdn/shop/files/0008-6751412741558405243.png?v=1790262005&amp;width=832 832w, //wakewater.com/cdn/shop/files/0008-6751412741558405243.png?v=1790262005&amp;width=1200 1200w, //wakewater.com/cdn/shop/files/0008-6751412741558405243.png?v=1790262005&amp;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&nbsp;<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:&thinsp;<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 &amp; 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&amp;width=48" alt="" srcset="//wakewater.com/cdn/shop/files/fi_6734704.svg?v=1771940799&amp;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&amp;width=48" alt="" srcset="//wakewater.com/cdn/shop/files/fi_7615749.svg?v=1771940799&amp;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}">&minus;</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        &copy; 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.