1<!doctype html> 2<html class="no-js supports-no-cookies" lang="en"><head> 3 <meta charset="utf-8"> 4 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 5 <meta name="viewport" content="width=device-width,initial-scale=1,viewport-fit=cover"> 6 <meta name="theme-color" content="#c3d4c8"><link rel="canonical" href="https://enjoyrealcoco.com/blogs/recipes"><!-- ======================= Story Theme V4.2.0 ========================= --> 7 8 <link rel="preconnect" href="https://cdn.shopify.com" crossorigin> 9 <link rel="preconnect" href="https://fonts.shopify.com" crossorigin> 10 <link rel="preconnect" href="https://monorail-edge.shopifysvc.com" crossorigin> 11 12 <link rel="preload" href="//enjoyrealcoco.com/cdn/shop/t/42/assets/lazysizes.js?v=111431644619468174291716500455" as="script"> 13 <link rel="preload" href="//enjoyrealcoco.com/cdn/shop/t/42/assets/vendor.js?v=537668916102085731716500454" as="script"> 14 <link rel="preload" href="//enjoyrealcoco.com/cdn/shop/t/42/assets/theme.js?v=170588453666784298611716500455" as="script"> 15 <link rel="preload" href="//enjoyrealcoco.com/cdn/shop/t/42/assets/theme.css?v=142351277052950560211716998217" as="style"> 16 <link rel="preload" href="//enjoyrealcoco.com/cdn/shop/t/42/assets/custom.css?v=8036" as="style"> 17 18 19 <link rel="shortcut icon" href="//enjoyrealcoco.com/cdn/shop/files/Real_Coco_Favicon_32x32.svg?v=1715635574" type="image/png"> 20 21 <!-- Title and description ================================================ --> 22 23 <title> 24 25 26 Recipes 27– Real Coco 28 29 </title><!-- /snippets/social-meta-tags.liquid --> 30 31<meta property="og:site_name" content="Real Coco"> 32<meta property="og:url" content="https://enjoyrealcoco.com/blogs/recipes"> 33<meta property="og:title" content="Recipes"> 34<meta property="og:type" content="website"> 35<meta property="og:description" content="Real Coco offers organic and all natural coconut beverages bottled-at-the-source from multi-generational family run and sustainability managed farms within Vietnam. © 2026 Advanced Business Strategies LLC. All rights reserved. "><meta property="og:image" content="http://enjoyrealcoco.com/cdn/shop/files/Real_Coco_-_Logo_SEO.png?v=1767726446"> 36 <meta property="og:image:secure_url" content="https://enjoyrealcoco.com/cdn/shop/files/Real_Coco_-_Logo_SEO.png?v=1767726446"> 37 <meta property="og:image:width" content="1200"> 38 <meta property="og:image:height" content="628"><meta name="twitter:site" content="@enjoyrealcoco"><meta name="twitter:card" content="summary_large_image"> 39<meta name="twitter:title" content="Recipes"> 40<meta name="twitter:description" content="Real Coco offers organic and all natural coconut beverages bottled-at-the-source from multi-generational family run and sustainability managed farms within Vietnam. © 2026 Advanced Business Strategies LLC. All rights reserved. "> 41 42 43 <!-- CSS ================================================================== --> 44 45 <link href="//enjoyrealcoco.com/cdn/shop/t/42/assets/font-settings.css?v=58774410248446748951771875210" rel="stylesheet" type="text/css" media="all" /> 46 47 48 49<style data-shopify> 50 :root {/*================ Font Variables ================*/ 51 52 --FONT-WEIGHT-BODY: 400; 53 54 --FONT-WEIGHT-BODY-MID: 500; 55 --FONT-WEIGHT-BODY-BOLD: 700; 56 57 --FONT-STACK-BODY: "Libre Franklin", sans-serif; 58 --FONT-STYLE-BODY: normal; 59 --FONT-ADJUST-BODY: 1.05; 60 61 62 --FONT-WEIGHT-HEADING: 400; 63 --FONT-WEIGHT-HEADING-BOLD: 700; 64 65 --FONT-STACK-HEADING: Helvetica, Arial, sans-serif; 66 --FONT-STYLE-HEADING: normal; 67 --FONT-ADJUST-HEADING: 1.5; 68 69 --FONT-STACK-NAV: "Libre Franklin", sans-serif; 70 --FONT-STYLE-NAV: normal; 71 --FONT-ADJUST-NAV: 1.0; 72 73 --FONT-WEIGHT-NAV: 400; 74 --FONT-WEIGHT-NAV-BOLD: 700; 75 76 --FONT-WEIGHT-ACCENT: 400; 77 --FONT-WEIGHT-ACCENT-BOLD: 500; 78 79 --FONT-STACK-ACCENT: "Libre Franklin", sans-serif; 80 --FONT-STYLE-ACCENT: normal; 81 --FONT-ADJUST-ACCENT: 1.0; 82 83 84 /*================ Color Variables ================*/ 85 --LAYOUT-WIDTH: 1700px; 86 --LAYOUT-GUTTER: 24px; 87 --LAYOUT-OUTER: 24px; 88 --LAYOUT-CONTAINER: 1400px; 89 90 91 /*================ Color Variables ================*/
92 /* === Backgrounds ===*/ 93 --COLOR-BG: #fcf9f4; 94 --COLOR-BG-ACCENT: #ecebe5; 95 96 /* === Text colors ===*/ 97 /* Remove code that darkens --color-text-dark */ 98 --COLOR-TEXT-DARK: #103e29; 99 --COLOR-TEXT: #103e29; 100 --COLOR-TEXT-LIGHT: #577666; 101 102 /* === Shades of grey ===*/ 103 --COLOR-A5: rgba(16, 62, 41, 0.05); 104 --COLOR-A10: rgba(16, 62, 41, 0.1); 105 --COLOR-A20: rgba(16, 62, 41, 0.2); 106 --COLOR-A30: rgba(16, 62, 41, 0.3); 107 --COLOR-A40: rgba(16, 62, 41, 0.4); 108 --COLOR-A50: rgba(16, 62, 41, 0.5); 109 --COLOR-A60: rgba(16, 62, 41, 0.6); 110 --COLOR-A70: rgba(16, 62, 41, 0.7); 111 --COLOR-A80: rgba(16, 62, 41, 0.8); 112 --COLOR-A90: rgba(16, 62, 41, 0.9); 113 --COLOR-A95: rgba(16, 62, 41, 0.95); 114 115 /* === Product badges ===*/ 116 --COLOR-BADGE: #ffffff; 117 --COLOR-BADGE-TEXT: #cb4773; 118 119 /* === Rounding ===*/ 120 121 --RADIUS-BTN: 300px; 122 --RADIUS-FORM: 24px; 123 --RADIUS-ROUNDED-ONLY: 3px; 124 125 126 127 --RADIUS-XL: 0px; 128 --RADIUS-LG: 0px; 129 --RADIUS: 0px; 130 --RADIUS-SM: 0px; 131 132 133 /* === Border colors ===*/ 134 --COLOR-BORDER: #efe8d9; 135 --COLOR-BORDER-LIGHT: #f2ece0;/* === Accent-cool ===*/ 136 --COLOR-SECONDARY: #c3d4c8; 137 --COLOR-SECONDARY-HOVER: #88c29a; 138 --COLOR-SECONDARY-FADE: rgba(195, 212, 200, 0.05); 139 --COLOR-SECONDARY-SHADOW: rgba(106, 148, 118, 0.1); 140 --COLOR-SECONDARY-FADE-HOVER: rgba(195, 212, 200, 0.1);--COLOR-SECONDARY-OPPOSITE: #000000; 141 142 /* === Accent-warm ===*/ 143 --COLOR-PRIMARY: #103e29; 144 --COLOR-PRIMARY-HOVER: #000101; 145 --COLOR-PRIMARY-FADE: rgba(16, 62, 41, 0.05); 146 --COLOR-PRIMARY-FADE-HOVER: rgba(16, 62, 41, 0.1); 147 --COLOR-PRIMARY-SHADOW: rgba(0, 0, 0, 0.1);--COLOR-PRIMARY-OPPOSITE: #ffffff; 148 149 150 151 152 /* ================ Inverted Color Variables ================ */ 153 154 --INVERSE-BG: #103e29; 155 --INVERSE-BG-ACCENT: #ecebe5; 156 157 /* === Text colors ===*/ 158 --INVERSE-TEXT-DARK: #ffffff; 159 --INVERSE-TEXT: #ffffff; 160 --INVERSE-TEXT-LIGHT: #b7c5bf; 161 162 /* === Bright color ===*/ 163 --INVERSE-PRIMARY: #cfdad2; 164 --INVERSE-PRIMARY-HOVER: #98c4a4; 165 --INVERSE-PRIMARY-FADE: rgba(207, 218, 210, 0.05); 166 --INVERSE-PRIMARY-FADE-HOVER: rgba(207, 218, 210, 0.1); 167 --INVERSE-PRIMARY-SHADOW: rgba(121, 151, 129, 0.1);--INVERSE-PRIMARY-OPPOSITE: #000000; 168 169 170 /* === Second Color ===*/ 171 --INVERSE-SECONDARY: #cfdad2; 172 --INVERSE-SECONDARY-HOVER: #98c4a4; 173 --INVERSE-SECONDARY-FADE: rgba(207, 218, 210, 0.05); 174 --INVERSE-SECONDARY-FADE-HOVER: rgba(207, 218, 210, 0.1); 175 --INVERSE-SECONDARY-SHADOW: rgba(121, 151, 129, 0.1);--INVERSE-SECONDARY-OPPOSITE: #000000; 176 177 /* === Shades of grey ===*/ 178 --INVERSE-A5: rgba(255, 255, 255, 0.05); 179 --INVERSE-A10: rgba(255, 255, 255, 0.1); 180 --INVERSE-A20: rgba(255, 255, 255, 0.2); 181 --INVERSE-A35: rgba(255, 255, 255, 0.3); 182 --INVERSE-A80: rgba(255, 255, 255, 0.8); 183 --INVERSE-A90: rgba(255, 255, 255, 0.9); 184 --INVERSE-A95: rgba(255, 255, 255, 0.95); 185 186 /* === Border colors ===*/ 187 --INVERSE-BORDER: #103e29; 188 --INVERSE-BORDER-LIGHT: #0e3624; 189 190 /* ================ End Inverted Color Variables ================ */ 191 192 193 /* === Footer Bar ===*/ 194 --COLOR-FOOTER-BG: #fcf9f4; 195 --COLOR-FOOTER-TEXT: #103e29; 196 --COLOR-FOOTER-TEXT-HOVER: #000101; 197 --COLOR-FOOTER-A8: rgba(16, 62, 41, 0.08); 198 --COLOR-FOOTER-A15: rgba(16, 62, 41, 0.15); 199 200 /* === Nav and dropdown link background ===*/ 201 --COLOR-NAV: #fcf9f4; 202 --COLOR-NAV-a50: rgba(16, 62, 41, 0.5); 203 204 --COLOR-NAV-BORDER: #efe8d9; 205 206 --COLOR-NAV-BORDER-HAIRLINE: #f9f2e8; 207 208 --COLOR-NAV-TEXT: #103e29; 209 --COLOR-NAV-TEXT-DARK: #030d09; 210 --COLOR-NAV-TEXT-BRIGHT: #325a47; 211 --COLOR-NAV-TEXT-TRANSPARENT: #ffffff; 212 --COLOR-HIGHLIGHT-LINK: #3c6e82; 213 214 --COLOR-NAV-TOOLBAR-BG: #f7d4ed; 215 --COLOR-NAV-TOOLBAR-TEXT: #103e29; 216 217 /* ================ Special ================ */ 218 --COLOR-SUCCESS: #3c8246; 219 --COLOR-SUCCESS-FADE: rgba(60, 130, 70, 0.05); 220 --COLOR-ERROR: #870600; 221 --COLOR-ERROR-FADE: rgba(135, 6, 0, 0.05); 222 --COLOR-WARN: #da8a2c; 223 --COLOR-WARN-FADE: rgba(218, 138, 44, 0.05); 224 225 /* ================ Photo correction ================ */ 226 --PHOTO-CORRECTION: 100%; 227 228 /* ================ 3D Models ================ */ 229 --progress-bar-color: #103e29; 230 231 232 233 234 } 235</style> 236 237 238 <link href="//enjoyrealcoco.com/cdn/shop/t/42/assets/theme.css?v=142351277052950560211716998217" rel="stylesheet" type="text/css" media="all" /> 239 240
240<script> 241 242 243 244 245 246 247 248 document.documentElement.className = document.documentElement.className.replace('no-js', 'js'); 249 let root = '/'; 250 if (root[root.length - 1] !== '/') { 251 root = `${root}/`; 252 } 253 window.theme = { 254 routes: { 255 root_url: root, 256 cart: '/cart', 257 cart_add_url: '/cart/add', 258 product_recommendations_url: '/recommendations/products', 259 search_url: '/search', 260 predictive_search_url: '/search/suggest', 261 account_addresses_url: '/account/addresses' 262 }, 263 assets: { 264 photoswipe: '//enjoyrealcoco.com/cdn/shop/t/42/assets/photoswipe.js?v=162613001030112971491716500455', 265 smoothscroll: '//enjoyrealcoco.com/cdn/shop/t/42/assets/smoothscroll.js?v=37906625415260927261716500454', 266 swatches: '//enjoyrealcoco.com/cdn/shop/t/42/assets/swatches.json?v=181530532928741108631716500455', 267 base: "//enjoyrealcoco.com/cdn/shop/t/42/assets/", 268 }, 269 strings: { 270 addToCart: "Add to Cart", 271 soldOut: "Sold Out", 272 unavailable: "Unavailable", 273 preOrder: "Pre-Order", 274 unitPrice: "Unit price", 275 unitPriceSeparator: "per", 276 swatchesKey: "Color, Colour", 277 estimateShipping: "Estimate shipping", 278 noShippingAvailable: "We do not ship to this destination.", 279 free: "Free", 280 from: "From", 281 sale: "Sale", 282 subscription: "Subscription", 283 stockout: "All available stock is in cart", 284 products: "Products", 285 pages: "Pages", 286 collections: "Collections", 287 articles: "Articles", 288 successMessage: "Link copied to clipboard" 289 }, 290 shop: { 291 assets: "//enjoyrealcoco.com/cdn/shop/t/42/assets/" 292 }, 293 settings: { 294 badge_sale_type: "percentage", 295 currency_code_enable: false, 296 excluded_collections_strict: ["all"," frontpage"], 297 excluded_collections: ["sibling"] 298 }, 299 info: { 300 name: 'story' 301 }, 302 version: '4.2.0', 303 animations: true, 304 moneyFormat: "${{amount}}", 305 currencyCode: "USD", 306 }; 307 // When image loads, clear the background placeholder 308 document.addEventListener('lazyloaded', (e) => { 309 const holderTarget = e.target.closest('[data-wipe-background]'); 310 if (holderTarget) { 311 holderTarget.style.backgroundImage = 'none'; 312 } 313 }); 314 </script>
314<!-- Theme Javascript ============================================================== --> 315
315<script src="//enjoyrealcoco.com/cdn/shop/t/42/assets/lazysizes.js?v=111431644619468174291716500455" async="async"></script>
315 316
316<script src="//enjoyrealcoco.com/cdn/shop/t/42/assets/vendor.js?v=537668916102085731716500454" defer="defer"></script>
316 317
317<script src="//enjoyrealcoco.com/cdn/shop/t/42/assets/theme.js?v=170588453666784298611716500455" defer="defer"></script>
317 318 319
319<script type="text/javascript"> 320 if (window.MSInputMethodContext && document.documentMode) { 321 var scripts = document.getElementsByTagName('script')[0]; 322 var polyfill = document.createElement('script'); 323 polyfill.defer = true; 324 polyfill.src = "//enjoyrealcoco.com/cdn/shop/t/42/assets/ie11.js?v=144489047535103983231716500456"; 325 326 scripts.parentNode.insertBefore(polyfill, scripts); 327 } 328 </script>
328 329 330 331 332 <!-- Shopify app scripts =========================================================== --> 333 334
334<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
334<meta name="google-site-verification" content="eIdQ5slqDOG9Ol6Jd8aW2lfwrjrCRqZX1qE1y3TItoc"> 335<meta name="facebook-domain-verification" content="7ot6wm26d0k6qi4keecg5x5s6xro4e"> 336<meta name="facebook-domain-verification" content="grpdkphp1xtcnfw5dw7lramhorkjdp"> 337<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/8510537833/digital_wallets/dialog"> 338<link rel="ucp" href="/.well-known/ucp" version="2026-08-25"><link rel="alternate" type="application/atom+xml" title="Feed" href="/blogs/recipes.atom" /> 339<link rel="next" href="/blogs/recipes?page=2">
340<script async="async" src="/checkouts/internal/preloads.js?locale=en-US"></script>
vendor: 1 bytes, line 340
340
341<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":8510537833,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/8510537833","merchantName":"Real Coco","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","discover","elo","jcb"],"total":{"type":"pending","label":"Real Coco","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 341
341
342<script id="shopify-features" type="application/json">{"accessToken":"e5e90ae56c0aac566795178f8f475aec","betas":["rich-media-storefront-analytics"],"domain":"enjoyrealcoco.com","predictiveSearch":true,"shopId":8510537833,"locale":"en"}</script>
vendor: 1 bytes, line 342
342
343<script>var Shopify = Shopify || {}; 344Shopify.shop = "real-coco.myshopify.com"; 345Shopify.locale = "en"; 346Shopify.currency = {"active":"USD","rate":"1.0"}; 347Shopify.country = "US"; 348Shopify.theme = {"name":"Andrew - updates [May 2024]","id":127585550441,"schema_name":"Story","schema_version":"4.2.0","theme_store_id":null,"role":"main"}; 349Shopify.theme.handle = "null"; 350Shopify.theme.style = {"id":null,"handle":null}; 351Shopify.cdnHost = "enjoyrealcoco.com/cdn"; 352Shopify.routes = Shopify.routes || {}; 353Shopify.routes.root = "/"; 354Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 355Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 356Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 357Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 357
357
358<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 358
358
359<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 359
359
360<script> 361 window.Shopify = window.Shopify || {}; 362 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 363 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 364 window.Shopify.SignInWithShop.eligible = true; 365</script>
vendor: 1 bytes, line 365
365
366<script id="shop-js-analytics" type="application/json">{"pageType":"blog"}</script>
vendor: 1 bytes, line 366
366
367<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 367
367
368<script type="module"> 369 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 370 371 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 372 373</script>
vendor: 1 bytes, line 373
373
374<script> 375 window.Shopify = window.Shopify || {}; 376 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 377 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"]}; 378</script>
vendor: 1 bytes, line 378
378
379<script>(function() { 380 var isLoaded = false; 381 function asyncLoad() { 382 if (isLoaded) return; 383 isLoaded = true; 384 var urls = ["https:\/\/easygdpr.b-cdn.net\/v\/1553540745\/gdpr.min.js?shop=real-coco.myshopify.com","https:\/\/instagram.pinatropical.com\/insta.js?shop=real-coco.myshopify.com","https:\/\/embed.talkshop.live\/embed.js?shop=real-coco.myshopify.com","https:\/\/integration-sh.talkshop.live\/static\/section-load-event-listener.js?shop=real-coco.myshopify.com","https:\/\/integration-sh-proxy.talkshop.live\/feed-bundle.js?shop=real-coco.myshopify.com","https:\/\/evey-files.s3.amazonaws.com\/js\/online_store.js?shop=real-coco.myshopify.com","https:\/\/static.klaviyo.com\/onsite\/js\/KhwxBG\/klaviyo.js?company_id=KhwxBG\u0026shop=real-coco.myshopify.com","https:\/\/cdn.roseperl.com\/storelocator-prod\/setting\/real-coco-1750218675.js?shop=real-coco.myshopify.com","https:\/\/cdn.roseperl.com\/storelocator-prod\/wtb\/real-coco-1750218675.js?shop=real-coco.myshopify.com","https:\/\/cdn.roseperl.com\/storelocator-prod\/stockist-form\/real-coco-1750218676.js?shop=real-coco.myshopify.com"]; 385 for (var i = 0; i < urls.length; i++) { 386 var s = document.createElement('script'); 387 s.type = 'text/javascript'; 388 s.async = true; 389 s.src = urls[i]; 390 var x = document.getElementsByTagName('script')[0]; 391 x.parentNode.insertBefore(s, x); 392 } 393 }; 394 if(window.attachEvent) { 395 window.attachEvent('onload', asyncLoad); 396 } else { 397 window.addEventListener('load', asyncLoad, false); 398 } 399})();</script>
vendor: 1 bytes, line 399
399
400<script id="__st">var __st={"a":8510537833,"offset":-25200,"reqid":"cfb97a8e-b685-47fe-9f3b-26fd420c3c86-1790966511","pageurl":"enjoyrealcoco.com\/blogs\/recipes","s":"blogs-46257668201","u":"6de5c793d848","p":"blog","rtyp":"blog","rid":46257668201};</script>
vendor: 1 bytes, line 400
400
401<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 401
401
402<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 402
402
403<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//enjoyrealcoco.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 403
403
404<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 = "//enjoyrealcoco.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>
404<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 404
404
405<script> 406 window.Shopify = window.Shopify || {}; 407 window.Shopify.MCP = window.Shopify.MCP || {}; 408 window.Shopify.MCP.enabled = true; 409 window.Shopify.MCP.shop = "real-coco.myshopify.com"; 410 window.Shopify.MCP.mcpEndpoint = "https:\/\/enjoyrealcoco.com\/api\/mcp"; 411 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?\"\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."}},"required":["query"]}}]; 412</script>
vendor: 1 bytes, line 412
412
413<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("\/\/enjoyrealcoco.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 414</script>
vendor: 1 bytes, line 414
414
415<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://enjoyrealcoco.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 416</script>
vendor: 1 bytes, line 416
416
417<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 418 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); 419</script>
vendor: 1 bytes, line 419
419
420<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})}})); 421</script>
421 422<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://enjoyrealcoco.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 423<style id="shopify-accelerated-checkout-cart"> 424 #shopify-buyer-consent { 425 margin-top: 1em; 426 display: inline-block; 427 width: 100%; 428} 429 430#shopify-buyer-consent.hidden { 431 display: none; 432} 433 434#shopify-subscription-policy-button { 435 background: none; 436 border: none; 437 padding: 0; 438 text-decoration: underline; 439 font-size: inherit; 440 cursor: pointer; 441} 442 443#shopify-subscription-policy-button::before { 444 box-shadow: none; 445} 446 447 </style> 448
449<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
449 450 451 452<link href="https://cdn.shopify.com/extensions/01a0d217-a4a8-78a9-b1eb-a1933407237b/store-locator-4-63/assets/storelocator.css" rel="stylesheet" type="text/css" media="all">
453<script src="https://cdn.shopify.com/extensions/01a0fdc3-0116-7110-bd68-b3bf354fe7a2/forms-2609/assets/shopify-forms-loader.js" type="text/javascript" defer="defer"></script>
453 454<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
455<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: 8510537833,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "blog"};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 455
455
456<script> 457 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 458</script>
vendor: 1 bytes, line 458
458
459<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}
459).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: 8510537833,storefrontBaseUrl: "https://enjoyrealcoco.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://enjoyrealcoco.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"2355658857","configuration":"{\"clickstreamId\":\"411df9ed-c2fa-431e-8d15-d6bb8381dd53\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"dce0ba162d2ca66f441eebf2b9a98ca0","type":"APP","apiClientId":44186959873,"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":"2273214569","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-GLP1EGVVXL\\\",\\\"AW-18245838294\\\",\\\"GT-MKBH3CQV\\\"],\\\"target_country\\\":\\\"US\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-GLP1EGVVXL\\\",\\\"AW-18245838294\\\/OVsSCJDLh8McENbLpfxD\\\"]},{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-GLP1EGVVXL\\\",\\\"AW-18245838294\\\/1F04CJzLh8McENbLpfxD\\\"]},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-GLP1EGVVXL\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-GLP1EGVVXL\\\",\\\"AW-18245838294\\\/bo6KCJnLh8McENbLpfxD\\\",\\\"MC-NZTB156ZYT\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-GLP1EGVVXL\\\"},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-GLP1EGVVXL\\\",\\\"AW-18245838294\\\/hcw6CI3Lh8McENbLpfxD\\\",\\\"MC-NZTB156ZYT\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-GLP1EGVVXL\\\",\\\"AW-18245838294\\\/xpcLCJbLh8McENbLpfxD\\\",\\\"MC-NZTB156ZYT\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-GLP1EGVVXL\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-GLP1EGVVXL\\\",\\\"AW-18245838294\\\/lVuOCJ_Lh8McENbLpfxD\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-GLP1EGVVXL\\\",\\\"AW-18245838294\\\/GEj8CJPLh8McENbLpfxD\\\"]},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-GLP1EGVVXL\\\"}],\\\"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"]}
459,{"id":"161480809","configuration":"{\"pixel_id\":\"771393670092872\",\"pixel_type\":\"facebook_pixel\",\"metaapp_system_user_token\":\"-\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"96420dbe9ea96c426a1b7f364f977719","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"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":"Real Coco","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"real-coco.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/enjoyrealcoco.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[],"purchasingCompany":null},},"https://enjoyrealcoco.com/cdn","5982071ew7ea472e3p69b68784m2150dfea",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"127585550441","themePublished":"true","eventMetadataId":"22d9c645-c75b-45cd-824f-00c847ea0dbd","pageType":"blog","resourceId":"46257668201","shopId":"8510537833","storefrontBaseUrl":"https:\/\/enjoyrealcoco.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"5982071ew7ea472e3p69b68784m2150dfea","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
459<script> 460 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 461 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 462 window.ShopifyAnalytics.meta.currency = 'USD'; 463 var meta = {"page":{"pageType":"blog","resourceType":"blog","resourceId":46257668201,"requestId":"cfb97a8e-b685-47fe-9f3b-26fd420c3c86-1790966511"}}; 464 for (var attr in meta) { 465 window.ShopifyAnalytics.meta[attr] = meta[attr]; 466 } 467</script>
vendor: 1 bytes, line 467
467
468<script class="analytics"> 469 (function () { 470 var customDocumentWrite = function(content) { 471 var jquery = null; 472 473 if (window.jQuery) { 474 jquery = window.jQuery; 475 } else if (window.Checkout && window.Checkout.$) { 476 jquery = window.Checkout.$; 477 } 478 479 if (jquery) { 480 jquery('body').append(content); 481 } 482 }; 483 484 var hasLoggedConversion = function(token) { 485 if (token) { 486 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 487 } 488 return false; 489 } 490 491 var setCookieIfConversion = function(token) { 492 if (token) { 493 var twoMonthsFromNow = new Date(Date.now()); 494 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 495 496 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 497 } 498 } 499 500 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 501 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 502 if (trekkie.integrations) { 503 return; 504 } 505 trekkie.methods = [ 506 'identify', 507 'page', 508 'ready', 509 'track', 510 'trackForm', 511 'trackLink' 512 ]; 513 trekkie.factory = function(method) { 514 return function() { 515 var args = Array.prototype.slice.call(arguments); 516 args.unshift(method); 517 trekkie.push(args); 518 if (method == 'track' || method == 'page') { 519 var pageUrl; 520 try { 521 pageUrl = window.location.href; 522 } catch (e) {} 523 var pageReferrer; 524 try { 525 pageReferrer = document.referrer; 526 } catch (e) {} 527 try { 528 if (window.__TREKKIE_SHIM_QUEUE == null) { 529 window.__TREKKIE_SHIM_QUEUE = []; 530 } 531 window.__TREKKIE_SHIM_QUEUE.push({ 532 from: 'trekkie-stub', 533 method: method, 534 args: args.slice(1), 535 pageContext: { 536 url: pageUrl, 537 referrer: pageReferrer 538 } 539 }); 540 } catch (e) { 541 // no-op 542 } 543 } 544 return trekkie; 545 }; 546 }; 547 for (var i = 0; i < trekkie.methods.length; i++) { 548 var key = trekkie.methods[i]; 549 trekkie[key] = trekkie.factory(key); 550 } 551 trekkie.load = function(config) { 552 trekkie.config = config || {}; 553 trekkie.config.initialDocumentCookie = document.cookie; 554 var first = document.getElementsByTagName('script')[0]; 555var script = document.createElement('script'); 556script.type = 'text/javascript'; 557script.onerror = function(e) { 558 var scriptFallback = document.createElement('script'); 559 scriptFallback.type = 'text/javascript'; 560 scriptFallback.onerror = function(error) { 561 var Monorail = { 562 produce: function produce(monorailDomain, schemaId, payload) { 563 var currentMs = new Date().getTime(); 564 var event = { 565 schema_id: schemaId, 566 payload: payload, 567 metadata: { 568 event_created_at_ms: currentMs, 569 event_sent_at_ms: currentMs 570 } 571 }; 572 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 573 }, 574 sendRequest: function sendRequest(endpointUrl, payload) { 575 // Try the sendBeacon API 576 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 577 var blobData = new window.Blob([payload], { 578 type: 'text/plain' 579 }); 580 581 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 582 return true; 583 } // sendBeacon was not successful 584 585 } // XHR beacon 586 587 var xhr = new XMLHttpRequest(); 588 589 try { 590 xhr.open('POST', endpointUrl); 591 xhr.setRequestHeader('Content-Type', 'text/plain'); 592 xhr.send(payload); 593 } catch (e) { 594 console.log(e); 595 } 596 597 return false; 598 }, 599 isIos12: function isIos12() { 600 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 601 } 602 }; 603 Monorail.produce('monorail-edge.shopifysvc.com', 604 'trekkie_storefront_load_errors/1.1', 605 {shop_id: 8510537833, 606 theme_id: 127585550441, 607 app_name: "storefront", 608 context_url: window.location.href, 609 source_url: "//enjoyrealcoco.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js"}); 610 611 }; 612 scriptFallback.async = true; 613 scriptFallback.src = '//enjoyrealcoco.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 614 first.parentNode.insertBefore(scriptFallback, first); 615}; 616script.async = true; 617script.src = '//enjoyrealcoco.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 618first.parentNode.insertBefore(script, first); 619 620 }; 621 trekkie.load( 622 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":8510537833,"isMerchantRequest":null,"themeId":127585550441,"themeCityHash":"11446491617333157418","contentLanguage":"en","currency":"USD","eventMetadataId":"22d9c645-c75b-45cd-824f-00c847ea0dbd"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 623 ); 624 625 var loaded = false;
626 trekkie.ready(function() { 627 if (loaded) return; 628 loaded = true; 629 630 window.ShopifyAnalytics.lib = window.trekkie; 631 632 var originalDocumentWrite = document.write; 633 document.write = customDocumentWrite; 634 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 635 document.write = originalDocumentWrite; 636 637 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 638 var token = match? match[1]: undefined; 639 if (!hasLoggedConversion(token)) { 640 setCookieIfConversion(token); 641 642 } 643 }); 644 645 window.ShopifyAnalytics.lib.page(null,{"pageType":"blog","resourceType":"blog","resourceId":46257668201,"requestId":"cfb97a8e-b685-47fe-9f3b-26fd420c3c86-1790966511","shopifyEmitted":true}); 646 647 var eventsListenerScript = document.createElement('script'); 648 eventsListenerScript.async = true; 649 eventsListenerScript.src = "//enjoyrealcoco.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 650 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 651})();</script>
vendor: 1 bytes, line 651
651
652<script 653 defer 654 src="https://enjoyrealcoco.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 655 data-application="storefront-renderer" 656 data-shop-id="8510537833" 657 data-render-region="gcp-us-central1" 658 data-page-type="blog" 659 data-theme-instance-id="127585550441" 660 data-theme-name="Story" 661 data-theme-version="4.2.0" 662 data-monorail-region="shop_domain" 663 data-resource-timing-sampling-rate="10" 664 data-shs="true" 665 data-shs-beacon="true" 666 data-shs-export-with-fetch="true" 667 data-shs-logs-sample-rate="1" 668 data-shs-beacon-endpoint="https://enjoyrealcoco.com/api/collect" 669></script>
669 670<meta name="shopify-y" content="d4cbdf73-a43b-4810-a4cb-7d8809d46351" data-expiration="1822524111000"><meta name="shopify-s" content="a62647cf-1379-4798-a89e-71f4a3d4bfcd" data-expiration="1790968311000"><meta name="new-cookie-storage-activated" content="t"> 671</head> 672 673 674 <body id="recipes" class="template-blog decoration-none " data-animations="true"> 675 <a class="in-page-link visually-hidden skip-link" href="#MainContent">Skip to content</a> 676 677 <!-- BEGIN sections: group-header --> 678<div id="shopify-section-sections--15591762788457__section_liquid_DcGNMM" class="shopify-section shopify-section-group-group-header"> 679 680 681</div><div id="shopify-section-sections--15591762788457__header" class="shopify-section shopify-section-group-group-header"><!-- /sections/header.liquid --><style data-shopify>:root { --menu-height: calc(91px); }.header__logo__link::before { padding-bottom: 72.04724409448819%; }</style> 682 683 684 685 686 687 688 689 690 691 692 693 694 695<div 696 class="header__wrapper" 697 data-header-wrapper 698 data-header-transparent="false" 699 data-header-sticky="false" 700 data-header-style="logo_beside" 701 data-section-id="sections--15591762788457__header" 702 data-section-type="header" 703> 704 <header class="theme__header" role="banner" data-header-height> 705 <div> 706 <div class="header__mobile" data-header-mobile> 707 708 709 710 <div class="header__mobile__left"> 711 <div class="header__mobile__button"> 712 <button 713 class="header__mobile__hamburger" 714 data-drawer-toggle="hamburger" 715 aria-label="Open menu" 716 aria-haspopup="true" 717 aria-expanded="false" 718 aria-controls="header-menu" 719 > 720 <div class="hamburger__lines"> 721 <span></span> 722 <span></span> 723 <span></span> 724 </div> 725 </button> 726 </div> 727 728 <div class="header__mobile__button"> 729 <a href="/search" class="navlink" data-popdown-toggle="search-popdown" data-focus-element> 730 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-search" viewBox="0 0 21 21"><path d="M8.917 0a8.917 8.917 0 0 1 6.972 14.475l4.818 4.818a1 1 0 0 1-1.32 1.497l-.094-.083-4.818-4.818A8.917 8.917 0 1 1 8.917 0zm0 2a6.917 6.917 0 1 0 4.849 11.849l.018-.023.065-.06A6.917 6.917 0 0 0 8.917 2z"/></svg> 731 <span class="visually-hidden">Search</span> 732 </a> 733 </div> 734 735 </div> 736 737<div class="header__logo header__logo--image"> 738 <a 739 class="header__logo__link" 740 href="/" 741 style="width: 85px;" 742 > 743 744<img 745 data-src="//enjoyrealcoco.com/cdn/shop/files/Logo-Green_{width}x.svg?v=1713305034" 746 class="lazyload logo__img logo__img--color" 747 data-widths="[110, 160, 220, 320, 480, 540, 720, 900]" 748 data-sizes="auto" 749 data-aspectratio="1.3879781420765027" 750 alt="Real Coco" 751 > 752 753 754 755 <noscript> 756 <img class="logo__img" style="opacity: 1;" src="//enjoyrealcoco.com/cdn/shop/files/Logo-Green_360x.svg?v=1713305034" alt=""> 757 </noscript> 758 759 </a> 760 </div> 761 762 <div class="header__mobile__right"> 763 764 <div class="header__mobile__button"> 765 <a 766 class="navlink navlink--cart is-not-relative" 767 href="/cart" 768 data-drawer-toggle="drawer-cart" 769 > 770 <div class="cart__icon__content"> 771 772 <span class="header__cart__status" data-cart-count="0"> 773 0 774 </span> 775 776 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-basket" viewBox="0 0 16 21"><g fill="none" fill-rule="evenodd"><path d="M8 0c1.81 0 3.45.97 4.336 2.51a1 1 0 1 1-1.733.997A2.998 2.998 0 0 0 8 2c-1.086 0-2.07.58-2.602 1.505a1 1 0 1 1-1.733-.999A4.998 4.998 0 0 1 8 0zm7.816 6.853A3 3 0 0 1 16 7.888V18a3 3 0 0 1-3 3H3a3 3 0 0 1-3-3V8.166a3 3 0 0 1 3.98-2.835c1.128.39 2.297.585 3.507.585 1.453 0 2.946-.281 4.479-.844a3 3 0 0 1 3.85 1.781zm-1.877.69a1 1 0 0 0-1.284-.594c-1.747.642-3.472.967-5.168.967-1.432 0-2.821-.232-4.16-.695a1 1 0 0 0-1.32.828L2 8.166V18a1 1 0 0 0 .883.993L3 19h10a1 1 0 0 0 .993-.883L14 18V7.888a1 1 0 0 0-.027-.233l-.034-.112z" fill="#000" fill-rule="nonzero"/><circle class="filled-cart" cx="8" cy="13" r="2"/></g></svg>
777 <span class="visually-hidden">Shopping Cart</span> 778 </div> 779 </a> 780 </div> 781 </div> 782 783 </div> 784 <div data-header-desktop class="header__desktop"> 785 <div class="theme__header__toolbar" data-takes-space-wrapper > 786 <div class="wrapper--full"> 787 <div class="theme__header-inner"> 788 789 </div> 790 </div> 791 </div> 792 793 <div class="header__desktop__upper" data-takes-space-wrapper> 794 <div class="wrapper--full"> 795 <div class="header__desktop-inner"> 796 <div data-child-takes-space class="header__desktop__bar__c"> 797 <nav class="header__menu caps"> 798 <div class="header__menu__inner" data-text-items-wrapper> 799 800 <!-- /snippets/nav-item.liquid --> 801 802<div 803 class="menu__item 804 grandparent kids-2 805 " 806 807 aria-haspopup="true" 808 aria-expanded="false" 809 data-hover-disclosure-toggle="dropdown-4ac841c9eacd9e144a1fe26b55aa1389" 810 aria-controls="dropdown-4ac841c9eacd9e144a1fe26b55aa1389" 811 812> 813 <a href="/collections/all-products" data-top-link class="navlink navlink--toplevel"> 814 <span class="navtext">Shop</span> 815 </a> 816 817 <div 818 class="header__dropdown" 819 data-hover-disclosure 820 id="dropdown-4ac841c9eacd9e144a1fe26b55aa1389" 821 > 822 <div class="header__dropdown__wrapper"> 823 <div class="header__dropdown__inner wrapper--full"> 824 <div class="header__grandparent__links"> 825 826 827 <div class="dropdown__family"> 828 829 <a 830 href="/collections/coconut-water" 831 data-stagger-first 832 class="navlink navlink--child is-not-relative " 833 > 834 <span class="navtext">Coconut Water</span> 835 </a> 836 837 838 <a 839 href="/products/organic-pure-coconut-water-480ml-12-pack-can" 840 data-stagger-second 841 class="navlink navlink--grandchild is-not-relative " 842 > 843 <span class="navtext">Organic Pure Coconut Water (480mL - 12pk)</span> 844 </a> 845 846 847 <a 848 href="/products/real-coco-organic-coconut-water" 849 data-stagger-second 850 class="navlink navlink--grandchild is-not-relative " 851 > 852 <span class="navtext">Organic Pure Coconut Water (1L - 6pk)</span> 853 </a> 854 855 856 <a 857 href="/products/organic-pure-coconut-water-500ml-6-pack" 858 data-stagger-second 859 class="navlink navlink--grandchild is-not-relative " 860 > 861 <span class="navtext">Organic Pure Coconut Water (500mL - 12pk)</span> 862 </a> 863 864 865 <a 866 href="/products/organic-pressed-coconut-water-1l-6pk" 867 data-stagger-second 868 class="navlink navlink--grandchild is-not-relative " 869 > 870 <span class="navtext">Organic Pressed Coconut Water (1L - 6pk)</span> 871 </a> 872 873 874 <a 875 href="/products/organic-pressed-coconut-water" 876 data-stagger-second 877 class="navlink navlink--grandchild is-not-relative " 878 > 879 <span class="navtext">Organic Pressed Coconut Water (500mL - 12pk)</span> 880 </a> 881 882 883 <a 884 href="/products/all-natural-pure-coconut-water-1l-6pk" 885 data-stagger-second 886 class="navlink navlink--grandchild is-not-relative " 887 >
888 <span class="navtext">All Natural Pure Coconut Water (1L - 6pk)</span> 889 </a> 890 891 892 <a 893 href="/products/real-coco-all-natural-coconut-water-330ml" 894 data-stagger-second 895 class="navlink navlink--grandchild is-not-relative " 896 > 897 <span class="navtext">All Natural Pure Coconut Water (330mL - 12pk)</span> 898 </a> 899 900 </div> 901 902 <div class="dropdown__family"> 903 904 <a 905 href="/collections/coconut-milk" 906 data-stagger-first 907 class="navlink navlink--child is-not-relative " 908 > 909 <span class="navtext">Coconut Milk</span> 910 </a> 911 912 913 <a 914 href="/products/real-coco-organic-plain-coconut-milk-1l" 915 data-stagger-second 916 class="navlink navlink--grandchild is-not-relative " 917 > 918 <span class="navtext">Organic Unsweetened Coconut Milk (1L - 6 Pack)</span> 919 </a> 920 921 </div> 922 923 924 </div> 925 926 927</div> 928 </div> 929 </div> 930 931</div> 932 933 934 <!-- /snippets/nav-item.liquid --> 935 936<div 937 class="menu__item 938 child" 939 940> 941 <a href="/pages/about" data-top-link class="navlink navlink--toplevel"> 942 <span class="navtext">About</span> 943 </a> 944 945</div> 946 947 948 <!-- /snippets/nav-item.liquid --> 949 950<div 951 class="menu__item 952 child main-menu--active" 953 954> 955 <a href="/blogs/recipes" data-top-link class="navlink navlink--toplevel"> 956 <span class="navtext">Recipes</span> 957 </a> 958 959</div> 960 961 962 <div class="hover__bar"></div> 963 <div class="hover__bg"></div> 964 </div> 965 </nav> 966</div> 967 968 <div data-child-takes-space class="header__desktop__bar__l"> 969<div class="header__logo header__logo--image"> 970 <a 971 class="header__logo__link" 972 href="/" 973 style="width: 85px;" 974 > 975 976<img 977 data-src="//enjoyrealcoco.com/cdn/shop/files/Logo-Green_{width}x.svg?v=1713305034" 978 class="lazyload logo__img logo__img--color" 979 data-widths="[110, 160, 220, 320, 480, 540, 720, 900]" 980 data-sizes="auto" 981 data-aspectratio="1.3879781420765027" 982 alt="Real Coco" 983 > 984 985 986 987 <noscript> 988 <img class="logo__img" style="opacity: 1;" src="//enjoyrealcoco.com/cdn/shop/files/Logo-Green_360x.svg?v=1713305034" alt=""> 989 </noscript> 990 991 </a> 992 </div> 993</div> 994 <div data-child-takes-space class="header__desktop__bar__r"> 995 <div class="header__desktop__buttons header__desktop__buttons--icons"> 996 997 998 999 <div class="header__desktop__button"> 1000 <a href="/search" class="navlink" data-popdown-toggle="search-popdown" data-focus-element title="Search"> 1001 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-search" viewBox="0 0 21 21"><path d="M8.917 0a8.917 8.917 0 0 1 6.972 14.475l4.818 4.818a1 1 0 0 1-1.32 1.497l-.094-.083-4.818-4.818A8.917 8.917 0 1 1 8.917 0zm0 2a6.917 6.917 0 1 0 4.849 11.849l.018-.023.065-.06A6.917 6.917 0 0 0 8.917 2z"/></svg> 1002 <span class="visually-hidden">Search</span> 1003 </a> 1004 </div> 1005 1006 1007 <div class="header__desktop__button"> 1008 <a 1009 href="/cart" 1010 class="navlink navlink--cart is-not-relative" 1011 title="Shopping Cart" 1012 data-drawer-toggle="drawer-cart" 1013 > 1014 <div class="cart__icon__content"> 1015 1016 <span class="header__cart__status" data-cart-count="0"> 1017 0 1018 </span> 1019 1020 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-basket" viewBox="0 0 16 21"><g fill="none" fill-rule="evenodd"><path d="M8 0c1.81 0 3.45.97 4.336 2.51a1 1 0 1 1-1.733.997A2.998 2.998 0 0 0 8 2c-1.086 0-2.07.58-2.602 1.505a1 1 0 1 1-1.733-.999A4.998 4.998 0 0 1 8 0zm7.816 6.853A3 3 0 0 1 16 7.888V18a3 3 0 0 1-3 3H3a3 3 0 0 1-3-3V8.166a3 3 0 0 1 3.98-2.835c1.128.39 2.297.585 3.507.585 1.453 0 2.946-.281 4.479-.844a3 3 0 0 1 3.85 1.781zm-1.877.69a1 1 0 0 0-1.284-.594c-1.747.642-3.472.967-5.168.967-1.432 0-2.821-.232-4.16-.695a1 1 0 0 0-1.32.828L2 8.166V18a1 1 0 0 0 .883.993L3 19h10a1 1 0 0 0 .993-.883L14 18V7.888a1 1 0 0 0-.027-.233l-.034-.112z" fill="#000" fill-rule="nonzero"/><circle class="filled-cart" cx="8" cy="13" r="2"/></g></svg>
1021 <span class="visually-hidden">Shopping Cart</span> 1022 </div> 1023 </a> 1024 </div> 1025 </div> 1026</div> 1027 </div> 1028 </div> 1029 </div></div> 1030 </div> 1031 </header> 1032 1033 <nav 1034 class="header__drawer caps" 1035 data-drawer="hamburger" 1036 aria-label="Menu" 1037 id="header-menu" 1038 > 1039 <div class="drawer__content"> 1040 <div class="drawer__inner" data-scroll-lock-scrollable data-sliderule-pane="0"> 1041 <div class="drawer__menu" data-stagger-animation> 1042 1043 <!-- /snippets/nav-item-mobile.liquid --><div class="sliderule__wrapper"><button 1044 class="sliderow" 1045 data-sliderule-open="sliderule-f4a1d1d74a0477d8fbef28255349515f" 1046 data-animate-item="0" 1047 > 1048 <span class="sliderow__title" data-animates="0"> 1049 <span class="sliderow__text">Shop</span> 1050 <span class="sliderule__chevron--right"> 1051 <span class="visually-hidden">Show menu</span> 1052 </span> 1053 </span> 1054 </button> 1055 1056 <div 1057 class="mobile__menu__dropdown sliderule__panel" 1058 data-scroll-lock-scrollable 1059 data-sliderule="1" 1060 id="sliderule-f4a1d1d74a0477d8fbef28255349515f" 1061 > 1062 <div class="sliderule__panel__inner"> 1063 <div class="sliderow sliderow__back" data-animate-item="1"> 1064 <div class="sliderow__back__wrapper"> 1065 <button 1066 class="sliderow__back__button" 1067 data-sliderule-close="sliderule-f4a1d1d74a0477d8fbef28255349515f" 1068 > 1069 <span class="sliderule__chevron--left"> 1070 <span class="visually-hidden">Exit menu</span> 1071 </span> 1072 </button> 1073 <a 1074 class="sliderow__title" 1075 href="/collections/all-products" 1076 data-animates="1" 1077 > 1078 <span class="sliderow__text">Shop</span> 1079 </a> 1080 </div> 1081 </div> 1082 <div class="sliderow__links" data-links> 1083 1084 1085 1086 <!-- /snippets/nav-item-mobile.liquid --><div class="sliderule__wrapper"><button 1087 class="sliderow" 1088 data-sliderule-open="sliderule-a474be2d663d005724116f97ed29fdd2" 1089 data-animate-item="1" 1090 > 1091 <span class="sliderow__title" data-animates="1"> 1092 <span class="sliderow__text">Coconut Water</span> 1093 <span class="sliderule__chevron--right"> 1094 <span class="visually-hidden">Show menu</span> 1095 </span> 1096 </span> 1097 </button> 1098 1099 <div 1100 class="mobile__menu__dropdown sliderule__panel" 1101 data-scroll-lock-scrollable 1102 data-sliderule="2" 1103 id="sliderule-a474be2d663d005724116f97ed29fdd2" 1104 > 1105 <div class="sliderule__panel__inner"> 1106 <div class="sliderow sliderow__back" data-animate-item="2"> 1107 <div class="sliderow__back__wrapper"> 1108 <button 1109 class="sliderow__back__button" 1110 data-sliderule-close="sliderule-a474be2d663d005724116f97ed29fdd2" 1111 > 1112 <span class="sliderule__chevron--left"> 1113 <span class="visually-hidden">Exit menu</span> 1114 </span> 1115 </button> 1116 <a 1117 class="sliderow__title" 1118 href="/collections/coconut-water" 1119 data-animates="2" 1120 > 1121 <span class="sliderow__text">Coconut Water</span> 1122 </a> 1123 </div> 1124 </div> 1125 <div class="sliderow__links" data-links> 1126 1127 1128 1129 <!-- /snippets/nav-item-mobile.liquid --><div class="sliderule__wrapper"> 1130 <div class="sliderow" data-animate-item="2"> 1131 <a 1132 class="sliderow__title" 1133 href="/products/organic-pure-coconut-water-480ml-12-pack-can" 1134 data-animates="2" 1135 > 1136 <span class="sliderow__text">Organic Pure Coconut Water (480mL - 12pk)</span> 1137 </a> 1138 </div></div> 1139 1140 1141 1142 1143 <!-- /snippets/nav-item-mobile.liquid --><div class="sliderule__wrapper"> 1144 <div class="sliderow" data-animate-item="2"> 1145 <a 1146 class="sliderow__title" 1147 href="/products/real-coco-organic-coconut-water" 1148 data-animates="2" 1149 > 1150 <span class="sliderow__text">Organic Pure Coconut Water (1L - 6pk)</span> 1151 </a> 1152 </div></div> 1153 1154 1155 1156 1157 <!-- /snippets/nav-item-mobile.liquid --><div class="sliderule__wrapper"> 1158 <div class="sliderow" data-animate-item="2"> 1159 <a 1160 class="sliderow__title" 1161 href="/products/organic-pure-coconut-water-500ml-6-pack" 1162 data-animates="2" 1163 >
1164 <span class="sliderow__text">Organic Pure Coconut Water (500mL - 12pk)</span> 1165 </a> 1166 </div></div> 1167 1168 1169 1170 1171 <!-- /snippets/nav-item-mobile.liquid --><div class="sliderule__wrapper"> 1172 <div class="sliderow" data-animate-item="2"> 1173 <a 1174 class="sliderow__title" 1175 href="/products/organic-pressed-coconut-water-1l-6pk" 1176 data-animates="2" 1177 > 1178 <span class="sliderow__text">Organic Pressed Coconut Water (1L - 6pk)</span> 1179 </a> 1180 </div></div> 1181 1182 1183 1184 1185 <!-- /snippets/nav-item-mobile.liquid --><div class="sliderule__wrapper"> 1186 <div class="sliderow" data-animate-item="2"> 1187 <a 1188 class="sliderow__title" 1189 href="/products/organic-pressed-coconut-water" 1190 data-animates="2" 1191 > 1192 <span class="sliderow__text">Organic Pressed Coconut Water (500mL - 12pk)</span> 1193 </a> 1194 </div></div> 1195 1196 1197 1198 1199 <!-- /snippets/nav-item-mobile.liquid --><div class="sliderule__wrapper"> 1200 <div class="sliderow" data-animate-item="2"> 1201 <a 1202 class="sliderow__title" 1203 href="/products/all-natural-pure-coconut-water-1l-6pk" 1204 data-animates="2" 1205 > 1206 <span class="sliderow__text">All Natural Pure Coconut Water (1L - 6pk)</span> 1207 </a> 1208 </div></div> 1209 1210 1211 1212 1213 <!-- /snippets/nav-item-mobile.liquid --><div class="sliderule__wrapper"> 1214 <div class="sliderow" data-animate-item="2"> 1215 <a 1216 class="sliderow__title" 1217 href="/products/real-coco-all-natural-coconut-water-330ml" 1218 data-animates="2" 1219 > 1220 <span class="sliderow__text">All Natural Pure Coconut Water (330mL - 12pk)</span> 1221 </a> 1222 </div></div> 1223 1224 1225<div class="sliderule-grid blocks-0" data-animate-item="2"> 1226 1227 </div></div> 1228 </div> 1229 </div></div> 1230 1231 1232 1233 1234 <!-- /snippets/nav-item-mobile.liquid --><div class="sliderule__wrapper"><button 1235 class="sliderow" 1236 data-sliderule-open="sliderule-6451d2eb70350003f81d9efba351ad33" 1237 data-animate-item="1" 1238 > 1239 <span class="sliderow__title" data-animates="1"> 1240 <span class="sliderow__text">Coconut Milk</span> 1241 <span class="sliderule__chevron--right"> 1242 <span class="visually-hidden">Show menu</span> 1243 </span> 1244 </span> 1245 </button> 1246 1247 <div 1248 class="mobile__menu__dropdown sliderule__panel" 1249 data-scroll-lock-scrollable 1250 data-sliderule="2" 1251 id="sliderule-6451d2eb70350003f81d9efba351ad33" 1252 > 1253 <div class="sliderule__panel__inner"> 1254 <div class="sliderow sliderow__back" data-animate-item="2"> 1255 <div class="sliderow__back__wrapper"> 1256 <button 1257 class="sliderow__back__button" 1258 data-sliderule-close="sliderule-6451d2eb70350003f81d9efba351ad33" 1259 > 1260 <span class="sliderule__chevron--left"> 1261 <span class="visually-hidden">Exit menu</span> 1262 </span> 1263 </button> 1264 <a 1265 class="sliderow__title" 1266 href="/collections/coconut-milk" 1267 data-animates="2" 1268 > 1269 <span class="sliderow__text">Coconut Milk</span> 1270 </a> 1271 </div> 1272 </div> 1273 <div class="sliderow__links" data-links> 1274 1275 1276 1277 <!-- /snippets/nav-item-mobile.liquid --><div class="sliderule__wrapper"> 1278 <div class="sliderow" data-animate-item="2"> 1279 <a 1280 class="sliderow__title" 1281 href="/products/real-coco-organic-plain-coconut-milk-1l" 1282 data-animates="2" 1283 > 1284 <span class="sliderow__text">Organic Unsweetened Coconut Milk (1L - 6 Pack)</span> 1285 </a> 1286 </div></div> 1287 1288 1289<div class="sliderule-grid blocks-0" data-animate-item="2"> 1290 1291 </div></div> 1292 </div> 1293 </div></div> 1294 1295 1296<div class="sliderule-grid blocks-0" data-animate-item="1"> 1297 1298 </div></div> 1299 </div> 1300 </div></div> 1301 1302 1303 <!-- /snippets/nav-item-mobile.liquid --><div class="sliderule__wrapper"> 1304 <div class="sliderow" data-animate-item="0"> 1305 <a 1306 class="sliderow__title" 1307 href="/pages/about" 1308 data-animates="0" 1309 >
1310 <span class="sliderow__text">About</span> 1311 </a> 1312 </div></div> 1313 1314 1315 <!-- /snippets/nav-item-mobile.liquid --><div class="sliderule__wrapper"> 1316 <div class="sliderow" data-animate-item="0"> 1317 <a 1318 class="sliderow__title" 1319 href="/blogs/recipes" 1320 data-animates="0" 1321 > 1322 <span class="sliderow__text">Recipes</span> 1323 </a> 1324 </div></div> 1325 1326 1327 1328 </div> 1329 </div> 1330 1331 1332<div class="drawer__bottom"><div class="drawer__bottom__center"><!-- /snippets/header-social.liquid --> 1333 1334 1335 <a class="header__social" href="https://www.instagram.com/enjoyrealcoco/" title="Real Coco on Instagram"> 1336 <!-- /snippets/social.liquid --> 1337 1338 1339<svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-instagram" viewBox="0 0 512 512"><path d="M256 49.5c67.3 0 75.2.3 101.8 1.5 24.6 1.1 37.9 5.2 46.8 8.7 11.8 4.6 20.2 10 29 18.8s14.3 17.2 18.8 29c3.4 8.9 7.6 22.2 8.7 46.8 1.2 26.6 1.5 34.5 1.5 101.8s-.3 75.2-1.5 101.8c-1.1 24.6-5.2 37.9-8.7 46.8-4.6 11.8-10 20.2-18.8 29s-17.2 14.3-29 18.8c-8.9 3.4-22.2 7.6-46.8 8.7-26.6 1.2-34.5 1.5-101.8 1.5s-75.2-.3-101.8-1.5c-24.6-1.1-37.9-5.2-46.8-8.7-11.8-4.6-20.2-10-29-18.8s-14.3-17.2-18.8-29c-3.4-8.9-7.6-22.2-8.7-46.8-1.2-26.6-1.5-34.5-1.5-101.8s.3-75.2 1.5-101.8c1.1-24.6 5.2-37.9 8.7-46.8 4.6-11.8 10-20.2 18.8-29s17.2-14.3 29-18.8c8.9-3.4 22.2-7.6 46.8-8.7 26.6-1.3 34.5-1.5 101.8-1.5m0-45.4c-68.4 0-77 .3-103.9 1.5C125.3 6.8 107 11.1 91 17.3c-16.6 6.4-30.6 15.1-44.6 29.1-14 14-22.6 28.1-29.1 44.6-6.2 16-10.5 34.3-11.7 61.2C4.4 179 4.1 187.6 4.1 256s.3 77 1.5 103.9c1.2 26.8 5.5 45.1 11.7 61.2 6.4 16.6 15.1 30.6 29.1 44.6 14 14 28.1 22.6 44.6 29.1 16 6.2 34.3 10.5 61.2 11.7 26.9 1.2 35.4 1.5 103.9 1.5s77-.3 103.9-1.5c26.8-1.2 45.1-5.5 61.2-11.7 16.6-6.4 30.6-15.1 44.6-29.1 14-14 22.6-28.1 29.1-44.6 6.2-16 10.5-34.3 11.7-61.2 1.2-26.9 1.5-35.4 1.5-103.9s-.3-77-1.5-103.9c-1.2-26.8-5.5-45.1-11.7-61.2-6.4-16.6-15.1-30.6-29.1-44.6-14-14-28.1-22.6-44.6-29.1-16-6.2-34.3-10.5-61.2-11.7-27-1.1-35.6-1.4-104-1.4z"/><path d="M256 126.6c-71.4 0-129.4 57.9-129.4 129.4s58 129.4 129.4 129.4 129.4-58 129.4-129.4-58-129.4-129.4-129.4zm0 213.4c-46.4 0-84-37.6-84-84s37.6-84 84-84 84 37.6 84 84-37.6 84-84 84z"/><circle cx="390.5" cy="121.5" r="30.2"/></svg> 1340 <span class="icon-fallback-text">Instagram</span> 1341 </a> 1342 1343 1344 1345 1346 <a class="header__social" href="https://www.tiktok.com/@enjoyrealcoco" title="Real Coco on TikTok"> 1347 <!-- /snippets/social.liquid --> 1348 1349 1350<svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-tiktok" viewBox="0 0 19 19"><path d="M12.917 1c.289 2.412 1.674 3.85 4.083 4.004v2.713c-1.396.133-2.619-.311-4.04-1.148v5.075c0 6.447-7.232 8.461-10.14 3.84-1.867-2.973-.723-8.19 5.27-8.4v2.862a8.879 8.879 0 0 0-1.391.331c-1.333.439-2.089 1.26-1.879 2.708.404 2.775 5.641 3.596 5.206-1.825V1.005h2.891V1z" fill-rule="evenodd"/></svg> 1351 <span class="icon-fallback-text">TikTok</span> 1352 </a> 1353 1354 1355 1356 1357 1358 1359 1360 <a class="header__social" href="https://www.facebook.com/enjoyrealcoco/" title="Real Coco on Facebook"> 1361 <!-- /snippets/social.liquid --> 1362 1363 1364<svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-facebook" viewBox="0 0 20 20"><path fill="#444" d="M18.05.811q.439 0 .744.305t.305.744v16.637q0 .439-.305.744t-.744.305h-4.732v-7.221h2.415l.342-2.854h-2.757v-1.83q0-.659.293-1t1.073-.342h1.488V3.762q-.976-.098-2.171-.098-1.634 0-2.635.964t-1 2.72V9.47H7.951v2.854h2.415v7.221H1.413q-.439 0-.744-.305t-.305-.744V1.859q0-.439.305-.744T1.413.81H18.05z"/></svg> 1365 <span class="icon-fallback-text">Facebook</span> 1366 </a> 1367 1368 1369 1370 1371 <a class="header__social" href="https://twitter.com/enjoyrealcoco" title="Real Coco on Twitter"> 1372 <!-- /snippets/social.liquid --> 1373 1374 1375<svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-twitter" viewBox="0 0 20 20"><path fill="#444" d="M19.551 4.208q-.815 1.202-1.956 2.038 0 .082.02.255t.02.255q0 1.589-.469 3.179t-1.426 3.036-2.272 2.567-3.158 1.793-3.963.672q-3.301 0-6.031-1.773.571.041.937.041 2.751 0 4.911-1.671-1.284-.02-2.292-.784T2.456 11.85q.346.082.754.082.55 0 1.039-.163-1.365-.285-2.262-1.365T1.09 7.918v-.041q.774.408 1.773.448-.795-.53-1.263-1.396t-.469-1.864q0-1.019.509-1.997 1.487 1.854 3.596 2.924T9.81 7.184q-.143-.509-.143-.897 0-1.63 1.161-2.781t2.832-1.151q.815 0 1.569.326t1.284.917q1.345-.265 2.506-.958-.428 1.386-1.732 2.18 1.243-.163 2.262-.611z"/></svg>
1376 <span class="icon-fallback-text">Twitter</span> 1377 </a> 1378 1379 1380 1381 1382 <a class="header__social" href="https://www.pinterest.com/enjoyrealcoco/" title="Real Coco on Pinterest"> 1383 <!-- /snippets/social.liquid --> 1384 1385 1386<svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-pinterest" viewBox="0 0 20 20"><path fill="#444" d="M9.958.811q1.903 0 3.635.744t2.988 2 2 2.988.744 3.635q0 2.537-1.256 4.696t-3.415 3.415-4.696 1.256q-1.39 0-2.659-.366.707-1.147.951-2.025l.659-2.561q.244.463.903.817t1.39.354q1.464 0 2.622-.842t1.793-2.305.634-3.293q0-2.171-1.671-3.769t-4.257-1.598q-1.586 0-2.903.537T5.298 5.897 4.066 7.775t-.427 2.037q0 1.268.476 2.22t1.427 1.342q.171.073.293.012t.171-.232q.171-.61.195-.756.098-.268-.122-.512-.634-.707-.634-1.83 0-1.854 1.281-3.183t3.354-1.329q1.83 0 2.854 1t1.025 2.61q0 1.342-.366 2.476t-1.049 1.817-1.561.683q-.732 0-1.195-.537t-.293-1.269q.098-.342.256-.878t.268-.915.207-.817.098-.732q0-.61-.317-1t-.927-.39q-.756 0-1.269.695t-.512 1.744q0 .39.061.756t.134.537l.073.171q-1 4.342-1.22 5.098-.195.927-.146 2.171-2.513-1.122-4.062-3.44T.59 10.177q0-3.879 2.744-6.623T9.957.81z"/></svg> 1387 <span class="icon-fallback-text">Pinterest</span> 1388 </a> 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414</div> 1415 </div> 1416 1417 </div> 1418 <span class="drawer__underlay" data-drawer-underlay></span> 1419 </nav> 1420 1421<!-- /snippets/cart-drawer.liquid --> 1422 1423 1424<nav 1425 class="drawer cart__drawer drawer--right palette--light bg--neutral" 1426 data-drawer="drawer-cart" 1427 aria-label="Cart"
1428 id="drawer-cart" 1429> 1430 <div class="drawer__content"> 1431 <div class="drawer__top"> 1432 <div class="drawer__top__left"> 1433 <p class="cart__drawer__title">Cart</p> 1434 </div> 1435 1436 <button 1437 class="drawer__button drawer__close" 1438 data-drawer-toggle="drawer-cart" 1439 aria-label="Close" 1440 > 1441 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-close" viewBox="0 0 20 20"><path fill="#444" d="m15.89 14.696-4.734-4.734 4.717-4.717c.4-.4.37-1.085-.03-1.485s-1.085-.43-1.485-.03L9.641 8.447 4.97 3.776c-.4-.4-1.085-.37-1.485.03s-.43 1.085-.03 1.485l4.671 4.671-4.688 4.688c-.4.4-.37 1.085.03 1.485s1.085.43 1.485.03l4.688-4.687 4.734 4.734c.4.4 1.085.37 1.485-.03s.43-1.085.03-1.485z"/></svg> 1442 </button> 1443 </div> 1444 <div class="drawer__body" data-scroll-lock-scrollable> 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 <div class="errors" data-form-errors style="display: none;"></div> 1461 1462 1463 <div class="cart--hidden" data-cart-empty> 1464 <!-- /snippets/cart-empty.liquid --> 1465 1466<div class="cart__empty align--middle-center"> 1467 <div class="wrapper"> 1468 <p class="h4--body m0">Your cart is currently empty.</p> 1469 </div> 1470</div> 1471<a href="/collections/all" class="cart__circle__wrapper"> 1472 <div class="cart__circle"> 1473 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-cart" viewBox="0 0 20 20"><path fill="#444" d="M18.936 5.564c-.144-.175-.35-.207-.55-.207h-.003L6.774 4.286c-.272 0-.417.089-.491.18-.079.096-.16.263-.094.585l2.016 5.705c.163.407.642.673 1.068.673h8.401c.433 0 .854-.285.941-.725l.484-4.571c.045-.221-.015-.388-.163-.567z"/><path fill="#444" d="M17.107 12.5H7.659L4.98 4.117l-.362-1.059c-.138-.401-.292-.559-.695-.559H.924c-.411 0-.748.303-.748.714s.337.714.748.714h2.413l3.002 9.48c.126.38.295.52.942.52h9.825c.411 0 .748-.303.748-.714s-.336-.714-.748-.714zm-6.683 3.73a1.498 1.498 0 1 1-2.997 0 1.498 1.498 0 0 1 2.997 0zm6.429 0a1.498 1.498 0 1 1-2.997 0 1.498 1.498 0 0 1 2.997 0z"/></svg> 1474 </div> 1475 <p class="cart__continue__link"> 1476 Keep shopping 1477 </p> 1478</a> 1479 1480 </div> 1481 1482 <div class="cart__items cart__items--blankstate" data-cart-blankstate> 1483 <div class="cart__items__row"> 1484 <div class="item--loadbar"></div> 1485 <div class="cart__items__grid"> 1486 <div class="cart__items__image"> 1487 <span class="cart__items__img empty-content"></span> 1488 </div> 1489 <div class="cart__items__title empty-content"></div> 1490 <div class="cart__items__price empty-content"></div> 1491 </div> 1492 </div> 1493 </div> 1494 1495 1496 <div data-cart-form data-cart-loading> 1497 <div data-line-items></div> 1498 </div> 1499 </div> 1500 <div class="drawer__bottom cart--hidden" data-cart-bottom data-accordion-group><p class="drawer__bottom__meta small"> 1501 <em>Shipping & taxes calculated at checkout</em> 1502 </p> 1503 1504 <div class="drawer__footer__subtotal" data-cart-subtotal> 1505 <!-- /snippets/cart-subtotal.liquid --> 1506 </div> 1507 1508 <form id="cart-form" action="/cart" method="post" novalidate class="cart"> 1509 <button type="submit" name="checkout" class="btn btn--primary btn--large btn--full checkout__button" role="button"> 1510 Check Out 1511 <em>â¢</em> 1512 <span data-cart-final> 1513 $0.00 USD 1514 </span> 1515 </button> 1516 </form> 1517 1518 <div class="drawer__checkout__additional additional-checkout-buttons--vertical"> 1519 <div class="additional-checkout-buttons"> 1520 <div class="dynamic-checkout__content" id="dynamic-checkout-cart" data-shopify="dynamic-checkout-cart"> <shopify-accelerated-checkout-cart wallet-configs="[{"supports_subs":false,"supports_def_opts":false,"name":"amazon_pay","wallet_params":{"checkoutLanguage":"en_US","ledgerCurrency":"USD","placement":"Cart","sandbox":false,"merchantId":"A3ZA1O9YJAGSM","productType":"PayAndShip","design":"C0002"}}]" access-token="e5e90ae56c0aac566795178f8f475aec" buyer-country="US" buyer-locale="en" buyer-currency="USD" shop-id="8510537833" cart-id="9ee515a4f04a1c6090d022838d77d127" enabled-flags="["1172c16a","a1d1f9a1","f5afabb3","370070f3"]" > <div class="wallet-button-wrapper"> <ul class='wallet-cart-grid wallet-cart-grid--skeleton' role="list" data-shopify-buttoncontainer="true"> <li data-testid='grid-cell' class='wallet-cart-button-container'><div class='wallet-cart-button wallet-cart-button__skeleton' role='button' disabled aria-hidden='true'> </div></li> </ul> </div> </shopify-accelerated-checkout-cart> </div> 1521 </div> 1522 </div> 1523 1524 </div> 1525 </div> 1526 <span class="drawer__underlay" data-drawer-underlay> 1527 <span class="drawer__underlay__fill"></span> 1528 <span class="drawer__underlay__blur"></span> 1529 </span> 1530</nav> 1531
1532<div data-product-add-popdown-wrapper class="product-add-popdown"></div> 1533</div> 1534 1535<div 1536 class="header__backfill" 1537 data-header-backfill 1538 style="height: var(--menu-height);" 1539></div> 1540 1541<div data-cart-popover-container class="cart-popover"></div> 1542
1543<script type="application/ld+json"> 1544 { 1545 "@context": "http://schema.org", 1546 "@type": "Organization", 1547 "name": "Real Coco", 1548 1549 1550 "logo": "https:\/\/enjoyrealcoco.com\/cdn\/shop\/files\/Logo-Green_254x.svg?v=1713305034", 1551 1552 "sameAs": [ 1553 null, 1554 null, 1555 null, 1556 null, 1557 null, 1558 null, 1559 null, 1560 null, 1561 null, 1562 null, 1563 null 1564 ], 1565 "url": "https:\/\/enjoyrealcoco.com" 1566 } 1567</script>
1567 1568 1569 1570 1571 1572</div> 1573<!-- END sections: group-header --> 1574 <!-- BEGIN sections: group-overlay --> 1575<div id="shopify-section-sections--15591762755689__popups" class="shopify-section shopify-section-group-group-overlay"><!-- /sections/popups.liquid --><div data-section-id="sections--15591762755689__popups" data-section-type="popups"><div data-tracking-consent data-block-id="cookie" data-popup-delay="" data-enable="true" data-cookie-name="cookie-1-sections--15591762755689__popups" 1576 1577class="popup popup--bottom text--neutral palette--light bg--neutral" 1578> 1579 <div data-popup-inner class="popup__inner align--middle-center"> 1580 <p class="popup__title">Let us know if you agree to cookies.</p> 1581 1582 <p>We use cookies to improve your browsing experience</p> 1583 1584 <button data-confirm-cookies class="standard__cta btn--soft btn--neutral">Accept</button> 1585 1586 1587 1588 <button data-close-modal class="close" title="Close"><svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-close" viewBox="0 0 20 20"><path fill="#444" d="m15.89 14.696-4.734-4.734 4.717-4.717c.4-.4.37-1.085-.03-1.485s-1.085-.43-1.485-.03L9.641 8.447 4.97 3.776c-.4-.4-1.085-.37-1.485.03s-.43 1.085-.03 1.485l4.671 4.671-4.688 4.688c-.4.4-.37 1.085.03 1.485s1.085.43 1.485.03l4.688-4.687 4.734 4.734c.4.4 1.085.37 1.485-.03s.43-1.085.03-1.485z"/></svg></button> 1589 </div> 1590 </div></div> 1591</div> 1592<!-- END sections: group-overlay --> 1593 1594 <main role="main" id="MainContent" class="main-content"> 1595 <div id="shopify-section-template--15591763247209__blog-title" class="shopify-section"><!-- /sections/section-text.liquid --> 1596 1597<section 1598 class="section-text palette--light bg--neutral " 1599 data-section-id="template--15591763247209__blog-title" 1600 data-section-type="section-text" 1601 style="--PT: 36px; --PB: 20px;" 1602> 1603 <div class="wrapper section-padding"> 1604 <div class="text__standard text-center"> 1605 1606 1607 1608 <div class="h2 standard__heading heading-size-9" ><p>RECIPES</p></div> 1609 1610 1611 1612 1613 1614 <div class="standard__rte body-size-5 columns--1" ><p>Filter by Product</p></div> 1615 1616 1617 </div> 1618 </div> 1619</section> 1620 1621 1622</div><div id="shopify-section-template--15591763247209__main" class="shopify-section"><!-- /sections/blog.liquid --> 1623 <div 1624 class="page-blog palette--light bg--neutral" 1625 data-section-id="template--15591763247209__main" 1626 data-section-type="blog" 1627 style="--PT: 0px; --PB: 36px;" 1628 > 1629 <div class="wrapper section-padding"> 1630 1631 1632 1633<ul class="inline-nav inline-nav--center capitalize"> 1634 <li 1635 1636 class="inline-nav--active" 1637 1638 > 1639 <a href="/blogs/recipes">All</a> 1640 </li> 1641 <li 1642 1643 > 1644 <a href="/blogs/recipes/tagged/organic-pure-coconut-water" title="Show articles tagged Organic Pure Coconut Water">Organic Pure Coconut Water</a> 1645 </li> 1646 1647 <li 1648 1649 > 1650 <a href="/blogs/recipes/tagged/organic-pressed-coconut-water" title="Show articles tagged Organic Pressed Coconut Water">Organic Pressed Coconut Water</a> 1651 </li> 1652 1653 <li 1654 1655 > 1656 <a href="/blogs/recipes/tagged/organic-unsweetened-coconut-milk" title="Show articles tagged Organic Unsweetened Coconut Milk">Organic Unsweetened Coconut Milk</a> 1657 </li> 1658 1659 <li 1660 1661 > 1662 <a href="/blogs/recipes/tagged/organic-coconut-oil" title="Show articles tagged Organic Coconut Oil">Organic Coconut Oil</a> 1663 </li> 1664 1665 <li 1666 1667 > 1668 <a href="/blogs/recipes/tagged/nam-hom-pink-organic-coconut-water" title="Show articles tagged Nam Hom Pink Organic Coconut Water">Nam Hom Pink Organic Coconut Water</a> 1669 </li> 1670 1671 </ul><div class="grid grid--uniform"> 1672 </div><div class="grid grid--uniform"> 1673 1674 1675 1676<!-- /snippets/article-grid-item.liquid --> 1677 1678 1679 1680<div 1681 class="grid__item 1682 small--one-whole 1683 medium--one-third 1684 large-up--one-third 1685 " 1686 1687> 1688 <div class="article__card article__card--image"> 1689 1690 <a href="/blogs/recipes/cottage-cheese-coin-pancakes"> 1691 <div class="article__card__image__wrapper"><!-- /snippets/image-fill.liquid --> 1692 1693 1694<div 1695 class="image__fill fade-in-image" 1696 1697 style=" 1698 padding-top: 120.0%; 1699 background-image: url('//enjoyrealcoco.com/cdn/shop/articles/Untitled_design_18_1x1.jpg?v=1782161650'); 1700 " 1701 1702 data-wipe-background 1703> 1704 <div 1705 class="background-size-cover lazyload" 1706 data-bgset="//enjoyrealcoco.com/cdn/shop/articles/Untitled_design_18_180x.jpg?v=1782161650 180w 180h, 1707 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_18_360x.jpg?v=1782161650 360w 360h, 1708 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_18_540x.jpg?v=1782161650 540w 540h, 1709 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_18_720x.jpg?v=1782161650 720w 720h, 1710 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_18_900x.jpg?v=1782161650 900w 900h, 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_18.jpg?v=1782161650 1725 1080w 1080h" 1726 style="background-position: 50.0% 50.0%;" 1727 role="img" 1728 aria-label="Cottage Cheese Coin Pancakes" 1729 ></div> 1730</div> 1731 1732 1733 <noscript> 1734 <img src="//enjoyrealcoco.com/cdn/shop/articles/Untitled_design_18.jpg?v=1782161650&width=720" alt="Cottage Cheese Coin Pancakes" srcset="//enjoyrealcoco.com/cdn/shop/articles/Untitled_design_18.jpg?v=1782161650&width=352 352w, //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_18.jpg?v=1782161650&width=720 720w" width="720" height="720" class="img-object-cover"> 1735 </noscript> 1736 1737</div> 1738 </a> 1739 1740 1741 <div class="article__card__tags"> 1742 1743 <a class="btn btn--pill" href="/blogs/recipes/tagged/organic-unsweetened-coconut-milk">Organic Unsweetened Coconut Milk</a> 1744 1745 </div> 1746 1747 <div class="article__card__content"> 1748 <a href="/blogs/recipes/cottage-cheese-coin-pancakes" class="h5--body article__card__title">Cottage Cheese Coin Pancakes</a> 1749 1750 1751 1752 1753 </div> 1754 </div> 1755</div> 1756 1757 1758 1759 1760<!-- /snippets/article-grid-item.liquid --> 1761 1762 1763 1764<div 1765 class="grid__item 1766 small--one-whole 1767 medium--one-third 1768 large-up--one-third 1769 " 1770 1771> 1772 <div class="article__card article__card--image"> 1773
1774 <a href="/blogs/recipes/roasted-milk-tea-with-jelly"> 1775 <div class="article__card__image__wrapper"><!-- /snippets/image-fill.liquid --> 1776 1777 1778<div 1779 class="image__fill fade-in-image" 1780 1781 style=" 1782 padding-top: 120.0%; 1783 background-image: url('//enjoyrealcoco.com/cdn/shop/articles/Untitled_design_17_1x1.jpg?v=1782161337'); 1784 " 1785 1786 data-wipe-background 1787> 1788 <div 1789 class="background-size-cover lazyload" 1790 data-bgset="//enjoyrealcoco.com/cdn/shop/articles/Untitled_design_17_180x.jpg?v=1782161337 180w 180h, 1791 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_17_360x.jpg?v=1782161337 360w 360h, 1792 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_17_540x.jpg?v=1782161337 540w 540h, 1793 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_17_720x.jpg?v=1782161337 720w 720h, 1794 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_17_900x.jpg?v=1782161337 900w 900h, 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_17.jpg?v=1782161337 1809 1080w 1080h" 1810 style="background-position: 50.0% 50.0%;" 1811 role="img" 1812 aria-label="Roasted Milk Tea with Jelly" 1813 ></div> 1814</div> 1815 1816 1817 <noscript> 1818 <img src="//enjoyrealcoco.com/cdn/shop/articles/Untitled_design_17.jpg?v=1782161337&width=720" alt="Roasted Milk Tea with Jelly" srcset="//enjoyrealcoco.com/cdn/shop/articles/Untitled_design_17.jpg?v=1782161337&width=352 352w, //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_17.jpg?v=1782161337&width=720 720w" width="720" height="720" class="img-object-cover"> 1819 </noscript> 1820 1821</div> 1822 </a> 1823 1824 1825 <div class="article__card__tags"> 1826 1827 <a class="btn btn--pill" href="/blogs/recipes/tagged/organic-unsweetened-coconut-milk">Organic Unsweetened Coconut Milk</a> 1828 1829 </div> 1830 1831 <div class="article__card__content"> 1832 <a href="/blogs/recipes/roasted-milk-tea-with-jelly" class="h5--body article__card__title">Roasted Milk Tea with Jelly</a> 1833 1834 1835 1836 1837 </div> 1838 </div> 1839</div> 1840 1841 1842 1843 1844<!-- /snippets/article-grid-item.liquid --> 1845 1846 1847 1848<div 1849 class="grid__item 1850 small--one-whole 1851 medium--one-third 1852 large-up--one-third 1853 " 1854 1855> 1856 <div class="article__card article__card--image"> 1857 1858 <a href="/blogs/recipes/pina-colada-smoothie"> 1859 <div class="article__card__image__wrapper"><!-- /snippets/image-fill.liquid --> 1860 1861 1862<div 1863 class="image__fill fade-in-image" 1864 1865 style=" 1866 padding-top: 120.0%; 1867 background-image: url('//enjoyrealcoco.com/cdn/shop/articles/Untitled_design_16_28882184-ee3f-4a3f-a4b1-874c40f469d0_1x1.jpg?v=1782159874'); 1868 " 1869 1870 data-wipe-background 1871> 1872 <div 1873 class="background-size-cover lazyload" 1874 data-bgset="//enjoyrealcoco.com/cdn/shop/articles/Untitled_design_16_28882184-ee3f-4a3f-a4b1-874c40f469d0_180x.jpg?v=1782159874 180w 180h, 1875 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_16_28882184-ee3f-4a3f-a4b1-874c40f469d0_360x.jpg?v=1782159874 360w 360h, 1876 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_16_28882184-ee3f-4a3f-a4b1-874c40f469d0_540x.jpg?v=1782159874 540w 540h, 1877 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_16_28882184-ee3f-4a3f-a4b1-874c40f469d0_720x.jpg?v=1782159874 720w 720h, 1878 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_16_28882184-ee3f-4a3f-a4b1-874c40f469d0_900x.jpg?v=1782159874 900w 900h, 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_16_28882184-ee3f-4a3f-a4b1-874c40f469d0.jpg?v=1782159874 1893 1080w 1080h" 1894 style="background-position: 50.0% 50.0%;" 1895 role="img" 1896 aria-label="Pinã Colada Smoothie" 1897 ></div> 1898</div> 1899 1900 1901 <noscript> 1902 <img src="//enjoyrealcoco.com/cdn/shop/articles/Untitled_design_16_28882184-ee3f-4a3f-a4b1-874c40f469d0.jpg?v=1782159874&width=720" alt="Pinã Colada Smoothie" srcset="//enjoyrealcoco.com/cdn/shop/articles/Untitled_design_16_28882184-ee3f-4a3f-a4b1-874c40f469d0.jpg?v=1782159874&width=352 352w, //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_16_28882184-ee3f-4a3f-a4b1-874c40f469d0.jpg?v=1782159874&width=720 720w" width="720" height="720" class="img-object-cover"> 1903 </noscript> 1904 1905</div> 1906 </a> 1907 1908 1909 <div class="article__card__tags"> 1910 1911 <a class="btn btn--pill" href="/blogs/recipes/tagged/all-natural-pure-coconut-water">All Natural Pure Coconut Water</a> 1912 1913 <a class="btn btn--pill" href="/blogs/recipes/tagged/organic-unsweetened-coconut-milk">Organic Unsweetened Coconut Milk</a> 1914 1915 </div> 1916 1917 <div class="article__card__content"> 1918 <a href="/blogs/recipes/pina-colada-smoothie" class="h5--body article__card__title">Pinã Colada Smoothie</a> 1919 1920 1921 1922 1923 </div> 1924 </div> 1925</div> 1926 1927 1928 1929 1930<!-- /snippets/article-grid-item.liquid --> 1931 1932 1933 1934<div 1935 class="grid__item 1936 small--one-whole 1937 medium--one-third 1938 large-up--one-third 1939 " 1940 1941> 1942 <div class="article__card article__card--image"> 1943 1944 <a href="/blogs/recipes/avocado-mousse"> 1945 <div class="article__card__image__wrapper"><!-- /snippets/image-fill.liquid --> 1946 1947 1948<div 1949 class="image__fill fade-in-image" 1950 1951 style=" 1952 padding-top: 120.0%; 1953 background-image: url('//enjoyrealcoco.com/cdn/shop/articles/3_1x1.jpg?v=1782159676'); 1954 " 1955 1956 data-wipe-background 1957> 1958 <div 1959 class="background-size-cover lazyload" 1960 data-bgset="//enjoyrealcoco.com/cdn/shop/articles/3_180x.jpg?v=1782159676 180w 180h, 1961 //enjoyrealcoco.com/cdn/shop/articles/3_360x.jpg?v=1782159676 360w 360h, 1962 //enjoyrealcoco.com/cdn/shop/articles/3_540x.jpg?v=1782159676 540w 540h, 1963 //enjoyrealcoco.com/cdn/shop/articles/3_720x.jpg?v=1782159676 720w 720h, 1964 //enjoyrealcoco.com/cdn/shop/articles/3_900x.jpg?v=1782159676 900w 900h, 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 //enjoyrealcoco.com/cdn/shop/articles/3.jpg?v=1782159676 1979 1080w 1080h" 1980 style="background-position: 50.0% 50.0%;" 1981 role="img" 1982 aria-label="Avocado Mousse" 1983 ></div> 1984</div> 1985 1986 1987 <noscript> 1988 <img src="//enjoyrealcoco.com/cdn/shop/articles/3.jpg?v=1782159676&width=720" alt="Avocado Mousse" srcset="//enjoyrealcoco.com/cdn/shop/articles/3.jpg?v=1782159676&width=352 352w, //enjoyrealcoco.com/cdn/shop/articles/3.jpg?v=1782159676&width=720 720w" width="720" height="720" class="img-object-cover"> 1989 </noscript> 1990 1991</div> 1992 </a> 1993 1994 1995 <div class="article__card__tags"> 1996 1997 <a class="btn btn--pill" href="/blogs/recipes/tagged/organic-pressed-coconut-water">Organic Pressed Coconut Water</a> 1998 1999 </div> 2000 2001 <div class="article__card__content"> 2002 <a href="/blogs/recipes/avocado-mousse" class="h5--body article__card__title">Avocado Mousse</a> 2003 2004 2005 2006 2007 </div> 2008 </div> 2009</div> 2010 2011 2012 2013 2014<!-- /snippets/article-grid-item.liquid --> 2015 2016 2017 2018<div 2019 class="grid__item 2020 small--one-whole 2021 medium--one-third 2022 large-up--one-third 2023 " 2024 2025> 2026 <div class="article__card article__card--image"> 2027 2028 <a href="/blogs/recipes/peaches-cream-mocktail"> 2029 <div class="article__card__image__wrapper"><!-- /snippets/image-fill.liquid --> 2030 2031 2032<div 2033 class="image__fill fade-in-image" 2034 2035 style=" 2036 padding-top: 120.0%; 2037 background-image: url('//enjoyrealcoco.com/cdn/shop/articles/2_50213d2a-ad12-49b6-beb3-e47432adcfdf_1x1.jpg?v=1782159283'); 2038 " 2039 2040 data-wipe-background 2041> 2042 <div 2043 class="background-size-cover lazyload" 2044 data-bgset="//enjoyrealcoco.com/cdn/shop/articles/2_50213d2a-ad12-49b6-beb3-e47432adcfdf_180x.jpg?v=1782159283 180w 180h, 2045 //enjoyrealcoco.com/cdn/shop/articles/2_50213d2a-ad12-49b6-beb3-e47432adcfdf_360x.jpg?v=1782159283 360w 360h, 2046 //enjoyrealcoco.com/cdn/shop/articles/2_50213d2a-ad12-49b6-beb3-e47432adcfdf_540x.jpg?v=1782159283 540w 540h, 2047 //enjoyrealcoco.com/cdn/shop/articles/2_50213d2a-ad12-49b6-beb3-e47432adcfdf_720x.jpg?v=1782159283 720w 720h, 2048 //enjoyrealcoco.com/cdn/shop/articles/2_50213d2a-ad12-49b6-beb3-e47432adcfdf_900x.jpg?v=1782159283 900w 900h, 2049 2050 2051 2052 2053 2054 2055 2056 2057 2058 2059 2060 2061 2062 //enjoyrealcoco.com/cdn/shop/articles/2_50213d2a-ad12-49b6-beb3-e47432adcfdf.jpg?v=1782159283 2063 1080w 1080h" 2064 style="background-position: 50.0% 50.0%;" 2065 role="img" 2066 aria-label="Peaches & Cream Mocktail" 2067 ></div> 2068</div> 2069 2070 2071 <noscript> 2072 <img src="//enjoyrealcoco.com/cdn/shop/articles/2_50213d2a-ad12-49b6-beb3-e47432adcfdf.jpg?v=1782159283&width=720" alt="Peaches & Cream Mocktail" srcset="//enjoyrealcoco.com/cdn/shop/articles/2_50213d2a-ad12-49b6-beb3-e47432adcfdf.jpg?v=1782159283&width=352 352w, //enjoyrealcoco.com/cdn/shop/articles/2_50213d2a-ad12-49b6-beb3-e47432adcfdf.jpg?v=1782159283&width=720 720w" width="720" height="720" class="img-object-cover"> 2073 </noscript> 2074 2075</div> 2076 </a> 2077 2078 2079 <div class="article__card__tags"> 2080 2081 <a class="btn btn--pill" href="/blogs/recipes/tagged/organic-pressed-coconut-water">Organic Pressed Coconut Water</a> 2082 2083 </div> 2084 2085 <div class="article__card__content"> 2086 <a href="/blogs/recipes/peaches-cream-mocktail" class="h5--body article__card__title">Peaches & Cream Mocktail</a> 2087 2088 2089 2090 2091 </div> 2092 </div> 2093</div> 2094 2095 2096 2097 2098<!-- /snippets/article-grid-item.liquid --> 2099 2100 2101 2102<div 2103 class="grid__item 2104 small--one-whole 2105 medium--one-third 2106 large-up--one-third 2107 " 2108 2109> 2110 <div class="article__card article__card--image"> 2111 2112 <a href="/blogs/recipes/proteinmaxxxing-key-lime-chia-pudding"> 2113 <div class="article__card__image__wrapper"><!-- /snippets/image-fill.liquid --> 2114 2115 2116<div 2117 class="image__fill fade-in-image" 2118 2119 style=" 2120 padding-top: 120.0%; 2121 background-image: url('//enjoyrealcoco.com/cdn/shop/articles/Untitled_design_16_cb2c1e5d-8e7d-4438-b5ad-e3ac79d7ae9e_1x1.jpg?v=1782158802'); 2122 " 2123 2124 data-wipe-background 2125> 2126 <div 2127 class="background-size-cover lazyload" 2128 data-bgset="//enjoyrealcoco.com/cdn/shop/articles/Untitled_design_16_cb2c1e5d-8e7d-4438-b5ad-e3ac79d7ae9e_180x.jpg?v=1782158802 180w 180h, 2129 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_16_cb2c1e5d-8e7d-4438-b5ad-e3ac79d7ae9e_360x.jpg?v=1782158802 360w 360h, 2130 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_16_cb2c1e5d-8e7d-4438-b5ad-e3ac79d7ae9e_540x.jpg?v=1782158802 540w 540h, 2131 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_16_cb2c1e5d-8e7d-4438-b5ad-e3ac79d7ae9e_720x.jpg?v=1782158802 720w 720h, 2132 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_16_cb2c1e5d-8e7d-4438-b5ad-e3ac79d7ae9e_900x.jpg?v=1782158802 900w 900h, 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 2146 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_16_cb2c1e5d-8e7d-4438-b5ad-e3ac79d7ae9e.jpg?v=1782158802 2147 1080w 1080h" 2148 style="background-position: 50.0% 50.0%;" 2149 role="img" 2150 aria-label="Proteinmaxxxing Key Lime Chia Pudding" 2151 ></div> 2152</div> 2153 2154 2155 <noscript> 2156 <img src="//enjoyrealcoco.com/cdn/shop/articles/Untitled_design_16_cb2c1e5d-8e7d-4438-b5ad-e3ac79d7ae9e.jpg?v=1782158802&width=720" alt="Proteinmaxxxing Key Lime Chia Pudding" srcset="//enjoyrealcoco.com/cdn/shop/articles/Untitled_design_16_cb2c1e5d-8e7d-4438-b5ad-e3ac79d7ae9e.jpg?v=1782158802&width=352 352w, //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_16_cb2c1e5d-8e7d-4438-b5ad-e3ac79d7ae9e.jpg?v=1782158802&width=720 720w" width="720" height="720" class="img-object-cover"> 2157 </noscript> 2158 2159</div> 2160 </a> 2161 2162 2163 <div class="article__card__tags"> 2164 2165 <a class="btn btn--pill" href="/blogs/recipes/tagged/organic-unsweetened-coconut-milk">Organic Unsweetened Coconut Milk</a> 2166 2167 </div> 2168 2169 <div class="article__card__content"> 2170 <a href="/blogs/recipes/proteinmaxxxing-key-lime-chia-pudding" class="h5--body article__card__title">Proteinmaxxxing Key Lime Chia Pudding</a> 2171 2172 2173 2174 2175 </div> 2176 </div> 2177</div> 2178 2179 2180 2181 2182<!-- /snippets/article-grid-item.liquid --> 2183 2184 2185 2186<div 2187 class="grid__item 2188 small--one-whole 2189 medium--one-third 2190 large-up--one-third 2191 " 2192 2193> 2194 <div class="article__card article__card--image"> 2195 2196 <a href="/blogs/recipes/coconut-glow-cup"> 2197 <div class="article__card__image__wrapper"><!-- /snippets/image-fill.liquid --> 2198 2199 2200<div 2201 class="image__fill fade-in-image" 2202 2203 style=" 2204 padding-top: 120.0%; 2205 background-image: url('//enjoyrealcoco.com/cdn/shop/articles/Untitled_design_16_1x1.jpg?v=1772837839'); 2206 " 2207 2208 data-wipe-background 2209> 2210 <div 2211 class="background-size-cover lazyload" 2212 data-bgset="//enjoyrealcoco.com/cdn/shop/articles/Untitled_design_16_180x.jpg?v=1772837839 180w 180h, 2213 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_16_360x.jpg?v=1772837839 360w 360h, 2214 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_16_540x.jpg?v=1772837839 540w 540h, 2215 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_16_720x.jpg?v=1772837839 720w 720h, 2216 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_16_900x.jpg?v=1772837839 900w 900h, 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_16.jpg?v=1772837839 2231 1080w 1080h" 2232 style="background-position: 50.0% 50.0%;" 2233 role="img" 2234 aria-label="Coconut Glow Cup" 2235 ></div> 2236</div> 2237 2238 2239 <noscript> 2240 <img src="//enjoyrealcoco.com/cdn/shop/articles/Untitled_design_16.jpg?v=1772837839&width=720" alt="Coconut Glow Cup" srcset="//enjoyrealcoco.com/cdn/shop/articles/Untitled_design_16.jpg?v=1772837839&width=352 352w, //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_16.jpg?v=1772837839&width=720 720w" width="720" height="720" class="img-object-cover"> 2241 </noscript> 2242 2243</div> 2244 </a> 2245 2246 2247 <div class="article__card__tags"> 2248 2249 <a class="btn btn--pill" href="/blogs/recipes/tagged/organic-pressed-coconut-water">Organic Pressed Coconut Water</a> 2250 2251 </div> 2252 2253 <div class="article__card__content"> 2254 <a href="/blogs/recipes/coconut-glow-cup" class="h5--body article__card__title">Coconut Glow Cup</a> 2255 2256 2257 2258 2259 </div> 2260 </div> 2261</div> 2262 2263 2264 2265 2266<!-- /snippets/article-grid-item.liquid --> 2267 2268 2269 2270<div 2271 class="grid__item 2272 small--one-whole 2273 medium--one-third 2274 large-up--one-third 2275 " 2276 2277> 2278 <div class="article__card article__card--image"> 2279 2280 <a href="/blogs/recipes/salted-banana-latte"> 2281 <div class="article__card__image__wrapper"><!-- /snippets/image-fill.liquid --> 2282 2283 2284<div 2285 class="image__fill fade-in-image" 2286 2287 style=" 2288 padding-top: 120.0%; 2289 background-image: url('//enjoyrealcoco.com/cdn/shop/articles/BananaLatte_9f000f83-7853-41b8-9b00-eb05851ce9e5_1x1.jpg?v=1772837506'); 2290 " 2291 2292 data-wipe-background 2293> 2294 <div 2295 class="background-size-cover lazyload" 2296 data-bgset="//enjoyrealcoco.com/cdn/shop/articles/BananaLatte_9f000f83-7853-41b8-9b00-eb05851ce9e5_180x.jpg?v=1772837506 180w 180h, 2297 //enjoyrealcoco.com/cdn/shop/articles/BananaLatte_9f000f83-7853-41b8-9b00-eb05851ce9e5_360x.jpg?v=1772837506 360w 360h, 2298 //enjoyrealcoco.com/cdn/shop/articles/BananaLatte_9f000f83-7853-41b8-9b00-eb05851ce9e5_540x.jpg?v=1772837506 540w 540h, 2299 //enjoyrealcoco.com/cdn/shop/articles/BananaLatte_9f000f83-7853-41b8-9b00-eb05851ce9e5_720x.jpg?v=1772837506 720w 720h, 2300 //enjoyrealcoco.com/cdn/shop/articles/BananaLatte_9f000f83-7853-41b8-9b00-eb05851ce9e5_900x.jpg?v=1772837506 900w 900h, 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 //enjoyrealcoco.com/cdn/shop/articles/BananaLatte_9f000f83-7853-41b8-9b00-eb05851ce9e5.jpg?v=1772837506 2315 1080w 1080h" 2316 style="background-position: 50.0% 50.0%;" 2317 role="img" 2318 aria-label="Salted Banana Latte" 2319 ></div> 2320</div> 2321 2322 2323 <noscript> 2324 <img src="//enjoyrealcoco.com/cdn/shop/articles/BananaLatte_9f000f83-7853-41b8-9b00-eb05851ce9e5.jpg?v=1772837506&width=720" alt="Salted Banana Latte" srcset="//enjoyrealcoco.com/cdn/shop/articles/BananaLatte_9f000f83-7853-41b8-9b00-eb05851ce9e5.jpg?v=1772837506&width=352 352w, //enjoyrealcoco.com/cdn/shop/articles/BananaLatte_9f000f83-7853-41b8-9b00-eb05851ce9e5.jpg?v=1772837506&width=720 720w" width="720" height="720" class="img-object-cover"> 2325 </noscript> 2326 2327</div> 2328
2328 </a> 2329 2330 2331 <div class="article__card__tags"> 2332 2333 <a class="btn btn--pill" href="/blogs/recipes/tagged/organic-unsweetened-coconut-milk">Organic Unsweetened Coconut Milk</a> 2334 2335 </div> 2336 2337 <div class="article__card__content"> 2338 <a href="/blogs/recipes/salted-banana-latte" class="h5--body article__card__title">Salted Banana Latte</a> 2339 2340 2341 2342 2343 </div> 2344 </div> 2345</div> 2346 2347 2348 2349 2350<!-- /snippets/article-grid-item.liquid --> 2351 2352 2353 2354<div 2355 class="grid__item 2356 small--one-whole 2357 medium--one-third 2358 large-up--one-third 2359 " 2360 2361> 2362 <div class="article__card article__card--image"> 2363 2364 <a href="/blogs/recipes/pressed-cherry-vanilla-dirty-soda"> 2365 <div class="article__card__image__wrapper"><!-- /snippets/image-fill.liquid --> 2366 2367 2368<div 2369 class="image__fill fade-in-image" 2370 2371 style=" 2372 padding-top: 120.0%; 2373 background-image: url('//enjoyrealcoco.com/cdn/shop/articles/Untitled_design_15_a9f36804-92a3-4119-8fe9-2015d7e9ea5c_1x1.jpg?v=1770757653'); 2374 " 2375 2376 data-wipe-background 2377> 2378 <div 2379 class="background-size-cover lazyload" 2380 data-bgset="//enjoyrealcoco.com/cdn/shop/articles/Untitled_design_15_a9f36804-92a3-4119-8fe9-2015d7e9ea5c_180x.jpg?v=1770757653 180w 180h, 2381 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_15_a9f36804-92a3-4119-8fe9-2015d7e9ea5c_360x.jpg?v=1770757653 360w 360h, 2382 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_15_a9f36804-92a3-4119-8fe9-2015d7e9ea5c_540x.jpg?v=1770757653 540w 540h, 2383 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_15_a9f36804-92a3-4119-8fe9-2015d7e9ea5c_720x.jpg?v=1770757653 720w 720h, 2384 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_15_a9f36804-92a3-4119-8fe9-2015d7e9ea5c_900x.jpg?v=1770757653 900w 900h, 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_15_a9f36804-92a3-4119-8fe9-2015d7e9ea5c.jpg?v=1770757653 2399 1080w 1080h" 2400 style="background-position: 50.0% 50.0%;" 2401 role="img" 2402 aria-label="Pressed Cherry Vanilla Dirty Soda" 2403 ></div> 2404</div> 2405 2406 2407 <noscript> 2408 <img src="//enjoyrealcoco.com/cdn/shop/articles/Untitled_design_15_a9f36804-92a3-4119-8fe9-2015d7e9ea5c.jpg?v=1770757653&width=720" alt="Pressed Cherry Vanilla Dirty Soda" srcset="//enjoyrealcoco.com/cdn/shop/articles/Untitled_design_15_a9f36804-92a3-4119-8fe9-2015d7e9ea5c.jpg?v=1770757653&width=352 352w, //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_15_a9f36804-92a3-4119-8fe9-2015d7e9ea5c.jpg?v=1770757653&width=720 720w" width="720" height="720" class="img-object-cover"> 2409 </noscript> 2410 2411</div> 2412 </a> 2413 2414 2415 <div class="article__card__tags"> 2416 2417 <a class="btn btn--pill" href="/blogs/recipes/tagged/organic-pressed-coconut-water">Organic Pressed Coconut Water</a> 2418 2419 </div> 2420 2421 <div class="article__card__content"> 2422 <a href="/blogs/recipes/pressed-cherry-vanilla-dirty-soda" class="h5--body article__card__title">Pressed Cherry Vanilla Dirty Soda</a> 2423 2424 2425 2426 2427 </div> 2428 </div> 2429</div> 2430 2431 2432 2433 2434<!-- /snippets/article-grid-item.liquid --> 2435 2436 2437 2438<div 2439 class="grid__item 2440 small--one-whole 2441 medium--one-third 2442 large-up--one-third 2443 " 2444 2445> 2446 <div class="article__card article__card--image"> 2447 2448 <a href="/blogs/recipes/protein-brownie-batter"> 2449 <div class="article__card__image__wrapper"><!-- /snippets/image-fill.liquid --> 2450 2451 2452<div 2453 class="image__fill fade-in-image" 2454 2455 style=" 2456 padding-top: 120.0%; 2457 background-image: url('//enjoyrealcoco.com/cdn/shop/articles/Untitled_design_14_1x1.jpg?v=1770757609'); 2458 " 2459 2460 data-wipe-background 2461> 2462 <div 2463 class="background-size-cover lazyload" 2464 data-bgset="//enjoyrealcoco.com/cdn/shop/articles/Untitled_design_14_180x.jpg?v=1770757609 180w 180h, 2465 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_14_360x.jpg?v=1770757609 360w 360h, 2466 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_14_540x.jpg?v=1770757609 540w 540h, 2467 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_14_720x.jpg?v=1770757609 720w 720h, 2468 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_14_900x.jpg?v=1770757609 900w 900h, 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_14.jpg?v=1770757609 2483 1080w 1080h" 2484 style="background-position: 50.0% 50.0%;" 2485 role="img" 2486 aria-label="Protein Brownie Batter" 2487 ></div> 2488</div> 2489 2490 2491 <noscript> 2492 <img src="//enjoyrealcoco.com/cdn/shop/articles/Untitled_design_14.jpg?v=1770757609&width=720" alt="Protein Brownie Batter" srcset="//enjoyrealcoco.com/cdn/shop/articles/Untitled_design_14.jpg?v=1770757609&width=352 352w, //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_14.jpg?v=1770757609&width=720 720w" width="720" height="720" class="img-object-cover"> 2493 </noscript> 2494 2495</div> 2496 </a> 2497 2498 2499 <div class="article__card__tags"> 2500 2501 <a class="btn btn--pill" href="/blogs/recipes/tagged/organic-unsweetened-coconut-milk">Organic Unsweetened Coconut Milk</a> 2502 2503 </div> 2504 2505 <div class="article__card__content"> 2506 <a href="/blogs/recipes/protein-brownie-batter" class="h5--body article__card__title">Protein Brownie Batter</a> 2507 2508 2509 2510 2511 </div> 2512 </div> 2513</div> 2514 2515 2516 2517 2518<!-- /snippets/article-grid-item.liquid --> 2519 2520 2521 2522<div 2523 class="grid__item 2524 small--one-whole 2525 medium--one-third 2526 large-up--one-third 2527 " 2528 2529> 2530 <div class="article__card article__card--image"> 2531 2532 <a href="/blogs/recipes/strawberry-protein-shake"> 2533 <div class="article__card__image__wrapper"><!-- /snippets/image-fill.liquid --> 2534 2535 2536<div 2537 class="image__fill fade-in-image" 2538 2539 style=" 2540 padding-top: 120.0%; 2541 background-image: url('//enjoyrealcoco.com/cdn/shop/articles/Untitled_design_13_0e083c96-1e31-493e-8263-1a591f508105_1x1.jpg?v=1770757637'); 2542 " 2543 2544 data-wipe-background 2545> 2546 <div 2547 class="background-size-cover lazyload" 2548 data-bgset="//enjoyrealcoco.com/cdn/shop/articles/Untitled_design_13_0e083c96-1e31-493e-8263-1a591f508105_180x.jpg?v=1770757637 180w 180h, 2549 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_13_0e083c96-1e31-493e-8263-1a591f508105_360x.jpg?v=1770757637 360w 360h, 2550 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_13_0e083c96-1e31-493e-8263-1a591f508105_540x.jpg?v=1770757637 540w 540h, 2551 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_13_0e083c96-1e31-493e-8263-1a591f508105_720x.jpg?v=1770757637 720w 720h, 2552 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_13_0e083c96-1e31-493e-8263-1a591f508105_900x.jpg?v=1770757637 900w 900h, 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_13_0e083c96-1e31-493e-8263-1a591f508105.jpg?v=1770757637 2567 1080w 1080h" 2568 style="background-position: 50.0% 50.0%;" 2569 role="img" 2570 aria-label="Strawberry Protein Shake" 2571 ></div> 2572</div> 2573 2574 2575 <noscript> 2576 <img src="//enjoyrealcoco.com/cdn/shop/articles/Untitled_design_13_0e083c96-1e31-493e-8263-1a591f508105.jpg?v=1770757637&width=720" alt="Strawberry Protein Shake" srcset="//enjoyrealcoco.com/cdn/shop/articles/Untitled_design_13_0e083c96-1e31-493e-8263-1a591f508105.jpg?v=1770757637&width=352 352w, //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_13_0e083c96-1e31-493e-8263-1a591f508105.jpg?v=1770757637&width=720 720w" width="720" height="720" class="img-object-cover"> 2577 </noscript> 2578 2579</div> 2580 </a> 2581 2582 2583 <div class="article__card__tags"> 2584 2585 <a class="btn btn--pill" href="/blogs/recipes/tagged/organic-unsweetened-coconut-milk">Organic Unsweetened Coconut Milk</a> 2586 2587 </div> 2588 2589 <div class="article__card__content"> 2590 <a href="/blogs/recipes/strawberry-protein-shake" class="h5--body article__card__title">Strawberry Protein Shake</a> 2591 2592 2593 2594 2595 </div> 2596 </div> 2597</div> 2598 2599 2600 2601 2602<!-- /snippets/article-grid-item.liquid --> 2603 2604 2605 2606<div 2607 class="grid__item 2608 small--one-whole 2609 medium--one-third 2610 large-up--one-third 2611 " 2612 2613> 2614 <div class="article__card article__card--image"> 2615 2616 <a href="/blogs/recipes/pressed-pistachio-overnight-oats"> 2617 <div class="article__card__image__wrapper"><!-- /snippets/image-fill.liquid --> 2618 2619 2620<div 2621 class="image__fill fade-in-image" 2622 2623 style=" 2624 padding-top: 120.0%; 2625 background-image: url('//enjoyrealcoco.com/cdn/shop/articles/Untitled_design_17_1x1.png?v=1768257708'); 2626 " 2627 2628 data-wipe-background 2629> 2630 <div 2631 class="background-size-cover lazyload" 2632 data-bgset="//enjoyrealcoco.com/cdn/shop/articles/Untitled_design_17_180x.png?v=1768257708 180w 180h, 2633 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_17_360x.png?v=1768257708 360w 360h, 2634 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_17_540x.png?v=1768257708 540w 540h, 2635 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_17_720x.png?v=1768257708 720w 720h, 2636 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_17_900x.png?v=1768257708 900w 900h, 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_17.png?v=1768257708 2651 1080w 1080h" 2652 style="background-position: 50.0% 50.0%;" 2653 role="img" 2654 aria-label="Pressed Pistachio Overnight Oats" 2655 ></div> 2656</div> 2657 2658 2659 <noscript> 2660 <img src="//enjoyrealcoco.com/cdn/shop/articles/Untitled_design_17.png?v=1768257708&width=720" alt="Pressed Pistachio Overnight Oats" srcset="//enjoyrealcoco.com/cdn/shop/articles/Untitled_design_17.png?v=1768257708&width=352 352w, //enjoyrealcoco.com/cdn/shop/articles/Untitled_design_17.png?v=1768257708&width=720 720w" width="720" height="720" class="img-object-cover"> 2661 </noscript> 2662 2663</div> 2664 </a> 2665 2666 2667 <div class="article__card__tags"> 2668 2669 <a class="btn btn--pill" href="/blogs/recipes/tagged/organic-pressed-coconut-water">Organic Pressed Coconut Water</a> 2670 2671 </div> 2672 2673 <div class="article__card__content"> 2674 <a href="/blogs/recipes/pressed-pistachio-overnight-oats" class="h5--body article__card__title">Pressed Pistachio Overnight Oats</a> 2675 2676 2677 2678 2679 </div> 2680 </div> 2681</div> 2682 2683 2684 </div> 2685 2686 2687 2688 <!-- /snippets/pagination.liquid --> 2689 2690 2691 2692<div class="pagination"> 2693 <span class="page current">1</span> <span class="page"><a href="/blogs/recipes?page=2" title="">2</a></span> <span class="page"><a href="/blogs/recipes?page=3" title="">3</a></span> <span class="deco">…</span> <span class="page"><a href="/blogs/recipes?page=15" title="">15</a></span> <span class="next"><a href="/blogs/recipes?page=2" title="">Next »</a></span> 2694</div> 2695 2696 2697 </div> 2698 </div> 2699 2700 2701 2702</div> 2703 </main> 2704 2705 <!-- BEGIN sections: group-footer --> 2706<div id="shopify-section-sections--15591762722921__footer" class="shopify-section shopify-section-group-group-footer"><!-- /sections/footer.liquid --> 2707 2708<footer 2709 class="footer" 2710 data-section-id="sections--15591762722921__footer" 2711 data-section-type="footer" 2712 style="--PT: 64px; --PB: 64px;" 2713> 2714 <div class="wrapper section-padding"> 2715 <div class="grid"> 2716 <div class="grid__item medium-up--one-half"> 2717 <a 2718 href="/" 2719 class="site-logo footer__logo" 2720 2721 style="--logo-max-width: 120px;" 2722 2723 > 2724 2725 2726 <img 2727 src="//enjoyrealcoco.com/cdn/shop/files/Logo-Green_180x.svg?v=1713305034" 2728 srcset="//enjoyrealcoco.com/cdn/shop/files/Logo-Green_180x.svg?v=1713305034 1x, //enjoyrealcoco.com/cdn/shop/files/[email protected]?v=1713305034 2x" 2729 alt="Real Coco" 2730 loading="lazy" 2731 width="120" 2732 height="87" 2733 > 2734 2735 </a><hr class="hidden-medium-up"> 2736 </div> 2737 <div class="grid__item medium-up--one-half"> 2738 <div class="grid"> 2739 <div class="grid__item one-half"> 2740 <ul class="footer__nav"> 2741 2742 <li> 2743 <a href="/collections/all-products">Products</a> 2744 </li> 2745 2746 <li> 2747 <a href="/blogs/recipes">Recipes</a> 2748 </li> 2749 2750 <li> 2751 <a href="/pages/about">About</a> 2752 </li> 2753 2754 <li> 2755 <a href="/pages/faq">FAQ</a> 2756 </li> 2757 2758 <li> 2759 <a href="https://enjoyrealcoco.com/pages/accessibility">Accessibility </a> 2760 </li> 2761 2762 </ul></div> 2763 <div class="grid__item one-half"> 2764 <ul class="footer__nav"> 2765 2766 <li> 2767 <a href="/pages/contact-us">Contact Us</a> 2768 </li> 2769 2770 <li> 2771 <a href="/policies/terms-of-service">Terms of Service</a> 2772 </li> 2773 2774 <li> 2775 <a href="/policies/privacy-policy">Privacy Policy</a> 2776 </li> 2777 2778 </ul></div> 2779 </div> 2780 </div> 2781 </div> 2782 </div> 2783</footer> 2784 2785 2786</div><div id="shopify-section-sections--15591762722921__subfooter" class="shopify-section shopify-section-group-group-footer"><!-- /sections/subfooter.liquid --> 2787 2788<section 2789 class="subfooter" 2790 data-section-id="sections--15591762722921__subfooter" 2791 data-section-type="subfooter" 2792 style="--PT: 32px; --PB: 32px;" 2793> 2794 <div class="wrapper section-padding">
2794<div class="subfooter__content subfooter__content--3"><div class="subfooter__item subfooter__item--copyright"> 2795 <small> 2796 Copyright © Real Coco 2797 2026 2798 2799 <!-- Remove the following two lines to delete Powered by Shopify from your footer --> 2800 <span class="divider-bar">|</span> 2801 <!-- Remove the following line to delete Shopify credit --> 2802 <span data-powered-link><a target="_blank" rel="nofollow" href="https://www.shopify.com?utm_campaign=poweredby&utm_medium=shopify&utm_source=onlinestore">Powered by Shopify</a></span> 2803 <!-- Stop deleting here --> 2804 </small> 2805 </div> 2806 2807 2808 <div class="subfooter__item subfooter__item--social"> 2809 2810 2811 2812 <a class="subfooter__icon subfooter__icon--social" href="https://www.instagram.com/enjoyrealcoco/" title="Real Coco on Instagram" target="_blank"> 2813 <!-- /snippets/social.liquid --> 2814 2815 2816<svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-instagram" viewBox="0 0 512 512"><path d="M256 49.5c67.3 0 75.2.3 101.8 1.5 24.6 1.1 37.9 5.2 46.8 8.7 11.8 4.6 20.2 10 29 18.8s14.3 17.2 18.8 29c3.4 8.9 7.6 22.2 8.7 46.8 1.2 26.6 1.5 34.5 1.5 101.8s-.3 75.2-1.5 101.8c-1.1 24.6-5.2 37.9-8.7 46.8-4.6 11.8-10 20.2-18.8 29s-17.2 14.3-29 18.8c-8.9 3.4-22.2 7.6-46.8 8.7-26.6 1.2-34.5 1.5-101.8 1.5s-75.2-.3-101.8-1.5c-24.6-1.1-37.9-5.2-46.8-8.7-11.8-4.6-20.2-10-29-18.8s-14.3-17.2-18.8-29c-3.4-8.9-7.6-22.2-8.7-46.8-1.2-26.6-1.5-34.5-1.5-101.8s.3-75.2 1.5-101.8c1.1-24.6 5.2-37.9 8.7-46.8 4.6-11.8 10-20.2 18.8-29s17.2-14.3 29-18.8c8.9-3.4 22.2-7.6 46.8-8.7 26.6-1.3 34.5-1.5 101.8-1.5m0-45.4c-68.4 0-77 .3-103.9 1.5C125.3 6.8 107 11.1 91 17.3c-16.6 6.4-30.6 15.1-44.6 29.1-14 14-22.6 28.1-29.1 44.6-6.2 16-10.5 34.3-11.7 61.2C4.4 179 4.1 187.6 4.1 256s.3 77 1.5 103.9c1.2 26.8 5.5 45.1 11.7 61.2 6.4 16.6 15.1 30.6 29.1 44.6 14 14 28.1 22.6 44.6 29.1 16 6.2 34.3 10.5 61.2 11.7 26.9 1.2 35.4 1.5 103.9 1.5s77-.3 103.9-1.5c26.8-1.2 45.1-5.5 61.2-11.7 16.6-6.4 30.6-15.1 44.6-29.1 14-14 22.6-28.1 29.1-44.6 6.2-16 10.5-34.3 11.7-61.2 1.2-26.9 1.5-35.4 1.5-103.9s-.3-77-1.5-103.9c-1.2-26.8-5.5-45.1-11.7-61.2-6.4-16.6-15.1-30.6-29.1-44.6-14-14-28.1-22.6-44.6-29.1-16-6.2-34.3-10.5-61.2-11.7-27-1.1-35.6-1.4-104-1.4z"/><path d="M256 126.6c-71.4 0-129.4 57.9-129.4 129.4s58 129.4 129.4 129.4 129.4-58 129.4-129.4-58-129.4-129.4-129.4zm0 213.4c-46.4 0-84-37.6-84-84s37.6-84 84-84 84 37.6 84 84-37.6 84-84 84z"/><circle cx="390.5" cy="121.5" r="30.2"/></svg> 2817 <span class="icon-fallback-text">Instagram</span> 2818 </a> 2819 2820 2821 2822 2823 2824 <a class="subfooter__icon subfooter__icon--social" href="https://www.tiktok.com/@enjoyrealcoco" title="Real Coco on TikTok" target="_blank"> 2825 <!-- /snippets/social.liquid --> 2826 2827 2828<svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-tiktok" viewBox="0 0 19 19"><path d="M12.917 1c.289 2.412 1.674 3.85 4.083 4.004v2.713c-1.396.133-2.619-.311-4.04-1.148v5.075c0 6.447-7.232 8.461-10.14 3.84-1.867-2.973-.723-8.19 5.27-8.4v2.862a8.879 8.879 0 0 0-1.391.331c-1.333.439-2.089 1.26-1.879 2.708.404 2.775 5.641 3.596 5.206-1.825V1.005h2.891V1z" fill-rule="evenodd"/></svg> 2829 <span class="icon-fallback-text">TikTok</span> 2830 </a> 2831 2832 2833 2834 2835 2836 2837 2838 2839 2840 <a class="subfooter__icon subfooter__icon--social" href="https://www.facebook.com/enjoyrealcoco/" title="Real Coco on Facebook" target="_blank"> 2841 <!-- /snippets/social.liquid --> 2842 2843 2844<svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-facebook" viewBox="0 0 20 20"><path fill="#444" d="M18.05.811q.439 0 .744.305t.305.744v16.637q0 .439-.305.744t-.744.305h-4.732v-7.221h2.415l.342-2.854h-2.757v-1.83q0-.659.293-1t1.073-.342h1.488V3.762q-.976-.098-2.171-.098-1.634 0-2.635.964t-1 2.72V9.47H7.951v2.854h2.415v7.221H1.413q-.439 0-.744-.305t-.305-.744V1.859q0-.439.305-.744T1.413.81H18.05z"/></svg> 2845 <span class="icon-fallback-text">Facebook</span> 2846 </a> 2847 2848 2849 2850 2851 2852 <a class="subfooter__icon subfooter__icon--social" href="https://twitter.com/enjoyrealcoco" title="Real Coco on Twitter" target="_blank"> 2853 <!-- /snippets/social.liquid --> 2854 2855 2856<svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-twitter" viewBox="0 0 20 20"><path fill="#444" d="M19.551 4.208q-.815 1.202-1.956 2.038 0 .082.02.255t.02.255q0 1.589-.469 3.179t-1.426 3.036-2.272 2.567-3.158 1.793-3.963.672q-3.301 0-6.031-1.773.571.041.937.041 2.751 0 4.911-1.671-1.284-.02-2.292-.784T2.456 11.85q.346.082.754.082.55 0 1.039-.163-1.365-.285-2.262-1.365T1.09 7.918v-.041q.774.408 1.773.448-.795-.53-1.263-1.396t-.469-1.864q0-1.019.509-1.997 1.487 1.854 3.596 2.924T9.81 7.184q-.143-.509-.143-.897 0-1.63 1.161-2.781t2.832-1.151q.815 0 1.569.326t1.284.917q1.345-.265 2.506-.958-.428 1.386-1.732 2.18 1.243-.163 2.262-.611z"/></svg>
2857 <span class="icon-fallback-text">Twitter</span> 2858 </a> 2859 2860 2861 2862 2863 2864 <a class="subfooter__icon subfooter__icon--social" href="https://www.pinterest.com/enjoyrealcoco/" title="Real Coco on Pinterest" target="_blank"> 2865 <!-- /snippets/social.liquid --> 2866 2867 2868<svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-pinterest" viewBox="0 0 20 20"><path fill="#444" d="M9.958.811q1.903 0 3.635.744t2.988 2 2 2.988.744 3.635q0 2.537-1.256 4.696t-3.415 3.415-4.696 1.256q-1.39 0-2.659-.366.707-1.147.951-2.025l.659-2.561q.244.463.903.817t1.39.354q1.464 0 2.622-.842t1.793-2.305.634-3.293q0-2.171-1.671-3.769t-4.257-1.598q-1.586 0-2.903.537T5.298 5.897 4.066 7.775t-.427 2.037q0 1.268.476 2.22t1.427 1.342q.171.073.293.012t.171-.232q.171-.61.195-.756.098-.268-.122-.512-.634-.707-.634-1.83 0-1.854 1.281-3.183t3.354-1.329q1.83 0 2.854 1t1.025 2.61q0 1.342-.366 2.476t-1.049 1.817-1.561.683q-.732 0-1.195-.537t-.293-1.269q.098-.342.256-.878t.268-.915.207-.817.098-.732q0-.61-.317-1t-.927-.39q-.756 0-1.269.695t-.512 1.744q0 .39.061.756t.134.537l.073.171q-1 4.342-1.22 5.098-.195.927-.146 2.171-2.513-1.122-4.062-3.44T.59 10.177q0-3.879 2.744-6.623T9.957.81z"/></svg> 2869 <span class="icon-fallback-text">Pinterest</span> 2870 </a> 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 2883 2884 2885 2886 2887 2888 2889 2890 2891 2892 2893 2894 2895 2896 2897 2898 2899 2900 </div> 2901 2902 2903 <div class="subfooter__item subfooter__item--payment"> 2904 <span class="visually-hidden">Payment methods accepted</span> 2905 2906 <span class="subfooter__icon subfooter__icon--payment"> 2907 <svg class="payment-icon" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-amazon"><title id="pi-amazon">Amazon</title><path d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000" fill-rule="nonzero" opacity=".07"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32" fill="#FFF" fill-rule="nonzero"/><path d="M25.26 16.23c-1.697 1.48-4.157 2.27-6.275 2.27-2.97 0-5.644-1.3-7.666-3.463-.16-.17-.018-.402.173-.27 2.183 1.504 4.882 2.408 7.67 2.408 1.88 0 3.95-.46 5.85-1.416.288-.145.53.222.248.47v.001zm.706-.957c-.216-.328-1.434-.155-1.98-.078-.167.024-.193-.148-.043-.27.97-.81 2.562-.576 2.748-.305.187.272-.047 2.16-.96 3.063-.14.138-.272.064-.21-.12.205-.604.664-1.96.446-2.29h-.001z" fill="#F90" fill-rule="nonzero"/><path d="M21.814 15.291c-.574-.498-.676-.73-.993-1.205-.947 1.012-1.618 1.315-2.85 1.315-1.453 0-2.587-.938-2.587-2.818 0-1.467.762-2.467 1.844-2.955.94-.433 2.25-.51 3.25-.628v-.235c0-.43.033-.94-.208-1.31-.212-.333-.616-.47-.97-.47-.66 0-1.25.353-1.392 1.085-.03.163-.144.323-.3.33l-1.677-.187c-.14-.033-.296-.153-.257-.38.386-2.125 2.223-2.766 3.867-2.766.84 0 1.94.234 2.604.9.842.82.762 1.918.762 3.11v2.818c0 .847.335 1.22.65 1.676.113.164.138.36-.003.482-.353.308-.98.88-1.326 1.2a.367.367 0 0 1-.414.038zm-1.659-2.533c.34-.626.323-1.214.323-1.918v-.392c-1.25 0-2.57.28-2.57 1.82 0 .782.386 1.31 1.05 1.31.487 0 .922-.312 1.197-.82z" fill="#221F1F"/></svg> 2908 2909 <span class="visually-hidden">Amazon pay</span> 2910 </span> 2911 2912 <span class="subfooter__icon subfooter__icon--payment"> 2913 <svg class="payment-icon" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-american_express"><title id="pi-american_express">American Express</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#0071CE" style="fill:#0071CE;fill:color(display-p3 0.0000 0.4431 0.8078);fill-opacity:1;"/><path d="M3 0.5H35C36.3348 0.5 37.5 1.58692 37.5 3V21C37.5 22.4239 36.4239 23.5 35 23.5H3C1.66524 23.5 0.5 22.4131 0.5 21V3C0.5 1.57614 1.57614 0.5 3 0.5Z" stroke="black" stroke-opacity="0.07" style="stroke:black;stroke-opacity:0.07;"/><path d="M25.8662 6.33203V3H31L31.8662 5.5332L32.7334 3H37V14.2002H36.7998L34.8672 16.2656L36.7998 18.3594H37V21.2666H33.5996L31.9336 19.3994L30.2002 21.2666H19.4668V12.666H16L20.2666 3H24.4004L25.8662 6.33203ZM20.5996 20.2656H27V18.5322H22.666V17.3994H26.8662V15.666H22.666V14.5322H27V12.7988H20.5996V20.2656ZM30.5332 16.5322L27 20.2656H29.5996L31.8662 17.8662L34.0664 20.2656H36.7324L33.1992 16.4658L36.7324 12.7988H34.1328L31.8662 15.1992L29.7324 12.7988H27L30.5332 16.5322ZM17.666 11.7324H19.9326L20.5332 10.1992H23.999L24.666 11.7324H26.999L23.666 4.19922H20.999L17.666 11.7324ZM33.5996 4.19922L31.9326 8.86621L30.1992 4.19922H27V11.666H29.0664V6.39941L31 11.666H32.7998L34.7324 6.39941V11.666H36.7324V4.13281L33.5996 4.19922ZM23.2656 8.46582H21.2656L22.2656 5.99902L23.2656 8.46582Z" fill="white" style="fill:white;fill-opacity:1;"/>
2913</svg> 2914 2915 <span class="visually-hidden">American express</span> 2916 </span> 2917 2918 <span class="subfooter__icon subfooter__icon--payment"> 2919 <svg class="payment-icon" version="1.1" xmlns="http://www.w3.org/2000/svg" role="img" x="0" y="0" width="38" height="24" viewBox="0 0 165.521 105.965" xml:space="preserve" aria-labelledby="pi-apple_pay"><title id="pi-apple_pay">Apple Pay</title><path fill="#000" d="M150.698 0H14.823c-.566 0-1.133 0-1.698.003-.477.004-.953.009-1.43.022-1.039.028-2.087.09-3.113.274a10.51 10.51 0 0 0-2.958.975 9.932 9.932 0 0 0-4.35 4.35 10.463 10.463 0 0 0-.975 2.96C.113 9.611.052 10.658.024 11.696a70.22 70.22 0 0 0-.022 1.43C0 13.69 0 14.256 0 14.823v76.318c0 .567 0 1.132.002 1.699.003.476.009.953.022 1.43.028 1.036.09 2.084.275 3.11a10.46 10.46 0 0 0 .974 2.96 9.897 9.897 0 0 0 1.83 2.52 9.874 9.874 0 0 0 2.52 1.83c.947.483 1.917.79 2.96.977 1.025.183 2.073.245 3.112.273.477.011.953.017 1.43.02.565.004 1.132.004 1.698.004h135.875c.565 0 1.132 0 1.697-.004.476-.002.952-.009 1.431-.02 1.037-.028 2.085-.09 3.113-.273a10.478 10.478 0 0 0 2.958-.977 9.955 9.955 0 0 0 4.35-4.35c.483-.947.789-1.917.974-2.96.186-1.026.246-2.074.274-3.11.013-.477.02-.954.022-1.43.004-.567.004-1.132.004-1.699V14.824c0-.567 0-1.133-.004-1.699a63.067 63.067 0 0 0-.022-1.429c-.028-1.038-.088-2.085-.274-3.112a10.4 10.4 0 0 0-.974-2.96 9.94 9.94 0 0 0-4.35-4.35A10.52 10.52 0 0 0 156.939.3c-1.028-.185-2.076-.246-3.113-.274a71.417 71.417 0 0 0-1.431-.022C151.83 0 151.263 0 150.698 0z" /><path fill="#FFF" d="M150.698 3.532l1.672.003c.452.003.905.008 1.36.02.793.022 1.719.065 2.583.22.75.135 1.38.34 1.984.648a6.392 6.392 0 0 1 2.804 2.807c.306.6.51 1.226.645 1.983.154.854.197 1.783.218 2.58.013.45.019.9.02 1.36.005.557.005 1.113.005 1.671v76.318c0 .558 0 1.114-.004 1.682-.002.45-.008.9-.02 1.35-.022.796-.065 1.725-.221 2.589a6.855 6.855 0 0 1-.645 1.975 6.397 6.397 0 0 1-2.808 2.807c-.6.306-1.228.511-1.971.645-.881.157-1.847.2-2.574.22-.457.01-.912.017-1.379.019-.555.004-1.113.004-1.669.004H14.801c-.55 0-1.1 0-1.66-.004a74.993 74.993 0 0 1-1.35-.018c-.744-.02-1.71-.064-2.584-.22a6.938 6.938 0 0 1-1.986-.65 6.337 6.337 0 0 1-1.622-1.18 6.355 6.355 0 0 1-1.178-1.623 6.935 6.935 0 0 1-.646-1.985c-.156-.863-.2-1.788-.22-2.578a66.088 66.088 0 0 1-.02-1.355l-.003-1.327V14.474l.002-1.325a66.7 66.7 0 0 1 .02-1.357c.022-.792.065-1.717.222-2.587a6.924 6.924 0 0 1 .646-1.981c.304-.598.7-1.144 1.18-1.623a6.386 6.386 0 0 1 1.624-1.18 6.96 6.96 0 0 1 1.98-.646c.865-.155 1.792-.198 2.586-.22.452-.012.905-.017 1.354-.02l1.677-.003h135.875" /><g><g><path fill="#000" d="M43.508 35.77c1.404-1.755 2.356-4.112 2.105-6.52-2.054.102-4.56 1.355-6.012 3.112-1.303 1.504-2.456 3.959-2.156 6.266 2.306.2 4.61-1.152 6.063-2.858" /><path fill="#000" d="M45.587 39.079c-3.35-.2-6.196 1.9-7.795 1.9-1.6 0-4.049-1.8-6.698-1.751-3.447.05-6.645 2-8.395 5.1-3.598 6.2-.95 15.4 2.55 20.45 1.699 2.5 3.747 5.25 6.445 5.151 2.55-.1 3.549-1.65 6.647-1.65 3.097 0 3.997 1.65 6.696 1.6 2.798-.05 4.548-2.5 6.247-5 1.95-2.85 2.747-5.6 2.797-5.75-.05-.05-5.396-2.101-5.446-8.251-.05-5.15 4.198-7.6 4.398-7.751-2.399-3.548-6.147-3.948-7.447-4.048" /></g><g><path fill="#000" d="M78.973 32.11c7.278 0 12.347 5.017 12.347 12.321 0 7.33-5.173 12.373-12.529 12.373h-8.058V69.62h-5.822V32.11h14.062zm-8.24 19.807h6.68c5.07 0 7.954-2.729 7.954-7.46 0-4.73-2.885-7.434-7.928-7.434h-6.706v14.894z" /><path fill="#000" d="M92.764 61.847c0-4.809 3.665-7.564 10.423-7.98l7.252-.442v-2.08c0-3.04-2.001-4.704-5.562-4.704-2.938 0-5.07 1.507-5.51 3.82h-5.252c.157-4.86 4.731-8.395 10.918-8.395 6.654 0 10.995 3.483 10.995 8.89v18.663h-5.38v-4.497h-.13c-1.534 2.937-4.914 4.782-8.579 4.782-5.406 0-9.175-3.222-9.175-8.057zm17.675-2.417v-2.106l-6.472.416c-3.64.234-5.536 1.585-5.536 3.95 0 2.288 1.975 3.77 5.068 3.77 3.95 0 6.94-2.522 6.94-6.03z" /><path fill="#000" d="M120.975 79.652v-4.496c.364.051 1.247.103 1.715.103 2.573 0 4.029-1.09 4.913-3.899l.52-1.663-9.852-27.293h6.082l6.863 22.146h.13l6.862-22.146h5.927l-10.216 28.67c-2.34 6.577-5.017 8.735-10.683 8.735-.442 0-1.872-.052-2.261-.157z" /></g></g></svg> 2920
2921 <span class="visually-hidden">Apple pay</span> 2922 </span> 2923 2924 <span class="subfooter__icon subfooter__icon--payment"> 2925 <svg class="payment-icon" viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" role="img" width="38" height="24" aria-labelledby="pi-diners_club"><title id="pi-diners_club">Diners Club</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path d="M12 12v3.7c0 .3-.2.3-.5.2-1.9-.8-3-3.3-2.3-5.4.4-1.1 1.2-2 2.3-2.4.4-.2.5-.1.5.2V12zm2 0V8.3c0-.3 0-.3.3-.2 2.1.8 3.2 3.3 2.4 5.4-.4 1.1-1.2 2-2.3 2.4-.4.2-.4.1-.4-.2V12zm7.2-7H13c3.8 0 6.8 3.1 6.8 7s-3 7-6.8 7h8.2c3.8 0 6.8-3.1 6.8-7s-3-7-6.8-7z" fill="#3086C8"/></svg> 2926 <span class="visually-hidden">Diners club</span> 2927 </span> 2928 2929 <span class="subfooter__icon subfooter__icon--payment"> 2930 <svg class="payment-icon" viewBox="0 0 38 24" width="38" height="24" role="img" aria-labelledby="pi-discover" fill="none" xmlns="http://www.w3.org/2000/svg"><title id="pi-discover">Discover</title><path fill="#000" opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32z" fill="#fff"/><path d="M3.57 7.16H2v5.5h1.57c.83 0 1.43-.2 1.96-.63.63-.52 1-1.3 1-2.11-.01-1.63-1.22-2.76-2.96-2.76zm1.26 4.14c-.34.3-.77.44-1.47.44h-.29V8.1h.29c.69 0 1.11.12 1.47.44.37.33.59.84.59 1.37 0 .53-.22 1.06-.59 1.39zm2.19-4.14h1.07v5.5H7.02v-5.5zm3.69 2.11c-.64-.24-.83-.4-.83-.69 0-.35.34-.61.8-.61.32 0 .59.13.86.45l.56-.73c-.46-.4-1.01-.61-1.62-.61-.97 0-1.72.68-1.72 1.58 0 .76.35 1.15 1.35 1.51.42.15.63.25.74.31.21.14.32.34.32.57 0 .45-.35.78-.83.78-.51 0-.92-.26-1.17-.73l-.69.67c.49.73 1.09 1.05 1.9 1.05 1.11 0 1.9-.74 1.9-1.81.02-.89-.35-1.29-1.57-1.74zm1.92.65c0 1.62 1.27 2.87 2.9 2.87.46 0 .86-.09 1.34-.32v-1.26c-.43.43-.81.6-1.29.6-1.08 0-1.85-.78-1.85-1.9 0-1.06.79-1.89 1.8-1.89.51 0 .9.18 1.34.62V7.38c-.47-.24-.86-.34-1.32-.34-1.61 0-2.92 1.28-2.92 2.88zm12.76.94l-1.47-3.7h-1.17l2.33 5.64h.58l2.37-5.64h-1.16l-1.48 3.7zm3.13 1.8h3.04v-.93h-1.97v-1.48h1.9v-.93h-1.9V8.1h1.97v-.94h-3.04v5.5zm7.29-3.87c0-1.03-.71-1.62-1.95-1.62h-1.59v5.5h1.07v-2.21h.14l1.48 2.21h1.32l-1.73-2.32c.81-.17 1.26-.72 1.26-1.56zm-2.16.91h-.31V8.03h.33c.67 0 1.03.28 1.03.82 0 .55-.36.85-1.05.85z" fill="#231F20"/><path d="M20.16 12.86a2.931 2.931 0 100-5.862 2.931 2.931 0 000 5.862z" fill="url(#pi-paint0_linear)"/><path opacity=".65" d="M20.16 12.86a2.931 2.931 0 100-5.862 2.931 2.931 0 000 5.862z" fill="url(#pi-paint1_linear)"/><path d="M36.57 7.506c0-.1-.07-.15-.18-.15h-.16v.48h.12v-.19l.14.19h.14l-.16-.2c.06-.01.1-.06.1-.13zm-.2.07h-.02v-.13h.02c.06 0 .09.02.09.06 0 .05-.03.07-.09.07z" fill="#231F20"/><path d="M36.41 7.176c-.23 0-.42.19-.42.42 0 .23.19.42.42.42.23 0 .42-.19.42-.42 0-.23-.19-.42-.42-.42zm0 .77c-.18 0-.34-.15-.34-.35 0-.19.15-.35.34-.35.18 0 .33.16.33.35 0 .19-.15.35-.33.35z" fill="#231F20"/><path d="M37 12.984S27.09 19.873 8.976 23h26.023a2 2 0 002-1.984l.024-3.02L37 12.985z" fill="#F48120"/><defs><linearGradient id="pi-paint0_linear" x1="21.657" y1="12.275" x2="19.632" y2="9.104" gradientUnits="userSpaceOnUse"><stop stop-color="#F89F20"/><stop offset=".25" stop-color="#F79A20"/><stop offset=".533" stop-color="#F68D20"/><stop offset=".62" stop-color="#F58720"/><stop offset=".723" stop-color="#F48120"/><stop offset="1" stop-color="#F37521"/></linearGradient><linearGradient id="pi-paint1_linear" x1="21.338" y1="12.232" x2="18.378" y2="6.446" gradientUnits="userSpaceOnUse"><stop stop-color="#F58720"/><stop offset=".359" stop-color="#E16F27"/><stop offset=".703" stop-color="#D4602C"/><stop offset=".982" stop-color="#D05B2E"/></linearGradient></defs></svg> 2931 <span class="visually-hidden">Discover</span> 2932 </span> 2933 2934 <span class="subfooter__icon subfooter__icon--payment"> 2935 <svg class="payment-icon" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-google_pay"><title id="pi-google_pay">Google Pay</title><path d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000" opacity=".07"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32" fill="#FFF"/><path d="M18.093 11.976v3.2h-1.018v-7.9h2.691a2.447 2.447 0 0 1 1.747.692 2.28 2.28 0 0 1 .11 3.224l-.11.116c-.47.447-1.098.69-1.747.674l-1.673-.006zm0-3.732v2.788h1.698c.377.012.741-.135 1.005-.404a1.391 1.391 0 0 0-1.005-2.354l-1.698-.03zm6.484 1.348c.65-.03 1.286.188 1.778.613.445.43.682 1.03.65 1.649v3.334h-.969v-.766h-.049a1.93 1.93 0 0 1-1.673.931 2.17 2.17 0 0 1-1.496-.533 1.667 1.667 0 0 1-.613-1.324 1.606 1.606 0 0 1 .613-1.336 2.746 2.746 0 0 1 1.698-.515c.517-.02 1.03.093 1.49.331v-.208a1.134 1.134 0 0 0-.417-.901 1.416 1.416 0 0 0-.98-.368 1.545 1.545 0 0 0-1.319.717l-.895-.564a2.488 2.488 0 0 1 2.182-1.
293506zM23.29 13.52a.79.79 0 0 0 .337.662c.223.176.5.269.785.263.429-.001.84-.17 1.146-.472.305-.286.478-.685.478-1.103a2.047 2.047 0 0 0-1.324-.374 1.716 1.716 0 0 0-1.03.294.883.883 0 0 0-.392.73zm9.286-3.75l-3.39 7.79h-1.048l1.281-2.728-2.224-5.062h1.103l1.612 3.885 1.569-3.885h1.097z" fill="#5F6368"/><path d="M13.986 11.284c0-.308-.024-.616-.073-.92h-4.29v1.747h2.451a2.096 2.096 0 0 1-.9 1.373v1.134h1.464a4.433 4.433 0 0 0 1.348-3.334z" fill="#4285F4"/><path d="M9.629 15.721a4.352 4.352 0 0 0 3.01-1.097l-1.466-1.14a2.752 2.752 0 0 1-4.094-1.44H5.577v1.17a4.53 4.53 0 0 0 4.052 2.507z" fill="#34A853"/><path d="M7.079 12.05a2.709 2.709 0 0 1 0-1.735v-1.17H5.577a4.505 4.505 0 0 0 0 4.075l1.502-1.17z" fill="#FBBC04"/><path d="M9.629 8.44a2.452 2.452 0 0 1 1.74.68l1.3-1.293a4.37 4.37 0 0 0-3.065-1.183 4.53 4.53 0 0 0-4.027 2.5l1.502 1.171a2.715 2.715 0 0 1 2.55-1.875z" fill="#EA4335"/></svg> 2936 2937 <span class="visually-hidden">Google pay</span> 2938 </span> 2939 2940 <span class="subfooter__icon subfooter__icon--payment"> 2941 <svg class="payment-icon" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-master"><title id="pi-master">Mastercard</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#1C1C1C" style="fill:#1C1C1C;fill:color(display-p3 0.1098 0.1098 0.1098);fill-opacity:1;"/><path d="M35 1C36.1 1 37 1.9 37 3V21C37 22.1 36.1 23 35 23H3C1.9 23 1 22.1 1 21V3C1 1.9 1.9 1 3 1H35Z" fill="#232323" style="fill:#232323;fill:color(display-p3 0.1373 0.1373 0.1373);fill-opacity:1;"/><path d="M14.6364 19.2727C18.8538 19.2727 22.2727 15.8538 22.2727 11.6364C22.2727 7.41892 18.8538 4 14.6364 4C10.4189 4 7 7.41892 7 11.6364C7 15.8538 10.4189 19.2727 14.6364 19.2727Z" fill="#EB001B" style="fill:#EB001B;fill:color(display-p3 0.9216 0.0000 0.1059);fill-opacity:1;"/><path d="M23.3637 19.2727C27.5811 19.2727 31 15.8538 31 11.6364C31 7.41892 27.5811 4 23.3637 4C19.1462 4 15.7273 7.41892 15.7273 11.6364C15.7273 15.8538 19.1462 19.2727 23.3637 19.2727Z" fill="#F79E1B" style="fill:#F79E1B;fill:color(display-p3 0.9686 0.6196 0.1059);fill-opacity:1;"/><path d="M22.2727 11.6362C22.2727 9.01797 20.9637 6.72706 19 5.41797C17.0364 6.83615 15.7273 9.12706 15.7273 11.6362C15.7273 14.1452 17.0364 16.5452 19 17.8543C20.9637 16.5452 22.2727 14.2543 22.2727 11.6362Z" fill="#FF5F00" style="fill:#FF5F00;fill:color(display-p3 1.0000 0.3725 0.0000);fill-opacity:1;"/></svg> 2942 2943 <span class="visually-hidden">Master</span> 2944 </span> 2945 2946 <span class="subfooter__icon subfooter__icon--payment"> 2947 <svg class="payment-icon" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-visa"><title id="pi-visa">Visa</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#142FBD" style="fill:#142FBD;fill:color(display-p3 0.0784 0.1843 0.7412);fill-opacity:1;"/><path d="M35 1C36.1 1 37 1.9 37 3V21C37 22.1 36.1 23 35 23H3C1.9 23 1 22.1 1 21V3C1 1.9 1.9 1 3 1H35Z" fill="#1532CB" style="fill:#1532CB;fill:color(display-p3 0.0824 0.1961 0.7961);fill-opacity:1;"/><path d="M29.5944 10.2167H29.2778C28.8556 11.2722 28.5389 11.8 28.2222 13.3833H30.2278C29.9111 11.8 29.9111 11.0611 29.5944 10.2167V10.2167ZM32.6556 16.4444H30.8611C30.7556 16.4444 30.7556 16.4444 30.65 16.3389L30.4389 15.3889L30.3333 15.1778H27.8C27.6944 15.1778 27.5889 15.1778 27.5889 15.3889L27.2722 16.3389C27.2722 16.4444 27.1667 16.4444 27.1667 16.4444H24.95L25.1611 15.9167L28.2222 8.73889C28.2222 8.21111 28.5389 8 29.0667 8H30.65C30.7556 8 30.8611 8 30.8611 8.21111L32.3389 15.0722C32.4444 15.4944 32.55 15.8111 32.55 16.2333C32.6556 16.3389 32.6556 16.3389 32.6556 16.4444V16.4444ZM18.5111 16.1278L18.9333 14.2278C19.0389 14.2278 19.1444 14.3333 19.1444 14.3333C19.8833 14.65 20.6222 14.8611 21.3611 14.7556C21.5722 14.7556 21.8889 14.65 22.1 14.5444C22.6278 14.3333 22.6278 13.8056 22.2056 13.3833C21.9944 13.1722 21.6778 13.0667 21.3611 12.8556C20.9389 12.6444 20.5167 12.4333 20.2 12.1167C18.9333 11.0611 19.3556 9.58333 20.0944 8.84444C20.7278 8.42222 21.0444 8 21.8889 8C23.1556 8 24.5278 8 25.1611 8.21111H25.2667C25.1611 8.84444 25.0556 9.37222 24.8444 10.0056C24.3167 9.79444 23.7889 9.58333 23.2611 9.58333C22.9444 9.58333 22.6278 9.58333 22.3111 9.68889C22.1 9.68889 21.9944 9.79444 21.8889 9.9C21.6778 10.1111 21.6778 10.4278 21.8889 10.6389L22.4167 11.0611C22.8389 11.2722 23.2611 11.4833 23.5778 11.6944C24.1056 12.0111 24.6333 12.5389 24.7389 13.1722C24.95 14.1222 24.6333 14.9667 23.7889 15.6C23.2611 16.0222 23.05 16.2333 22.3111 16.2333C20.8333 16.2333 19.6722 16.3389 18.7222 16.0222C18.6167 16.2333 18.6167 16.2333 18.5111 16.1278V16.1278ZM14.8167 16.4444C14.9222 15.7056 14.9222 15.7056 15.0278 15.3889C15.5556 13.0667 16.0833 10.6389 16.5056 8.31667C16.6111 8.10556 16.6111 8 16.8222 8H18.7222C18.5111 9.26667 18.3 10.2167 17.9833 11.3778C17.6667 12.9611 17.35 14.5444 16.9278 16.1278C16.9278 16.3389 16.8222 16.3389 16.6111 16.3389L14.8167 16.4444ZM5 8.21111C5 8.10556 5.21111 8 5.31667 8H8.90556C9.43333 8 9.85556 8.31667 9.96111 8.84444L10.9111 13.4889C10.9111 13.5944 10.9111 13.5944 11.0167 13.7C11.0167 13.5944 11.1222 13.5944 11.1222 13.5944L13.3389 8.21111C13.2333 8.10556 13.3389 8 13.4444 8H15.6611C15.6611 8.10556 15.6611 8.10556 15.5556 8.21111L12.2833 15.9167C12.1778 16.1278 12.1778
294716.2333 12.0722 16.3389C11.9667 16.4444 11.7556 16.3389 11.5444 16.3389H9.96111C9.85556 16.3389 9.75 16.3389 9.75 16.1278L8.06111 9.58333C7.85 9.37222 7.53333 9.05556 7.11111 8.95C6.47778 8.63333 5.31667 8.42222 5.10556 8.42222L5 8.21111Z" fill="white" style="fill:white;fill-opacity:1;"/></svg> 2948 2949 <span class="visually-hidden">Visa</span> 2950 </span> 2951 2952 </div> 2953 2954 </div> 2955 </div> 2956</section> 2957 2958 2959</div> 2960<!-- END sections: group-footer --> 2961 2962 <div class="search--popdown"> 2963 <!-- /snippets/header-search-popdown.liquid --> 2964 2965 2966 2967<div data-search-popdown-wrap> 2968 <div id="search-popdown" class="search-popdown search__predictive"><header-search-form><form 2969 action="/search" 2970 method="get" 2971 role="search" 2972 > 2973 <div class="item--loadbar" data-loading-indicator style="display: none;"></div> 2974 <div class="search__predictive__outer"> 2975 <div class="wrapper"> 2976 <div class="search__predictive__main"> 2977 <div class="search__predictive__actions"> 2978 <button class="search__predictive__button" type="submit"> 2979 <span class="visually-hidden">Search</span> 2980 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-search" viewBox="0 0 21 21"><path d="M8.917 0a8.917 8.917 0 0 1 6.972 14.475l4.818 4.818a1 1 0 0 1-1.32 1.497l-.094-.083-4.818-4.818A8.917 8.917 0 1 1 8.917 0zm0 2a6.917 6.917 0 1 0 4.849 11.849l.018-.023.065-.06A6.917 6.917 0 0 0 8.917 2z"/></svg> 2981 </button> 2982 <input 2983 type="search" 2984 data-predictive-search-input="search-popdown-results" 2985 name="q" 2986 value="" 2987 placeholder="Search..." 2988 aria-label="Search our store" 2989 > 2990 2991 <button type="reset" class="search-reset is-hidden" aria-label="Reset">Clear</button> 2992 </div> 2993 2994 <div class="search__predictive__close"> 2995 <button type="button" class="search__predictive__close__inner" data-close-popdown aria-label="Close"> 2996 <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-close-small" viewBox="0 0 15 15"><g fill-rule="evenodd"><path d="m2.237 1.073 12.021 12.021-1.414 1.414L.824 2.488z"/><path d="m.823 13.094 12.021-12.02 1.414 1.413-12.02 12.021z"/></g></svg> 2997 </button> 2998 </div> 2999 </div> 3000 </div> 3001 </div></form></header-search-form></div> 3002 3003 3004 <span class="drawer__underlay" data-search-underlay></span> 3005 3006</div> 3007 3008 </div> 3009 3010 <div data-modal-container></div><!-- Paste third party scripts below this comment line ============== --> 3011 3012 <!-- And above this comment line ================================================== --> 3013 <style> @font-face {font-family: "josefin"; src: url("https://cdn.shopify.com/s/files/1/0085/1053/7833/files/Josefin_Sans_Regular.woff2?v=1714158248") format("woff2"), url("https://cdn.shopify.com/s/files/1/0085/1053/7833/files/Josefin_Sans_Regular.woff?v=1714158883") format("woff");} @font-face {font-family: "manrope-regular"; src: url("https://cdn.shopify.com/s/files/1/0085/1053/7833/files/Manrope_Regular.woff2?v=1714158249") format("woff2"), url("https://cdn.shopify.com/s/files/1/0085/1053/7833/files/Manrope_Regular.woff?v=1714158883") format("woff");} @font-face {font-family: "manrope-bold"; font-weight: 700; src: url("https://cdn.shopify.com/s/files/1/0085/1053/7833/files/Manrope_Bold.woff2?v=1714158248") format("woff2"), url("https://cdn.shopify.com/s/files/1/0085/1053/7833/files/Manrope_Regular.woff?v=1714158883") format("woff");} :root {--FONT-STACK-BODY: "manrope-regular", sans-serif; --FONT-STACK-NAV: "manrope-bold", sans-serif; --FONT-STACK-HEADING: "josefin", sans-serif; --FONT-STACK-ACCENT: "manrope-bold", sans-serif;} </style> 3014<div id="shopify-block-AdTBORzdUdm95L0F1Z__1537173939754162885" class="shopify-block shopify-app-block"> 3015
3016<script> 3017 window.accessProWidgetSettings = {}; 3018 window.accessProComplianceSettings = {}; 3019 window.accessProCurrentPage = { 3020 pageType: "blog", 3021 path: "\/blogs\/recipes" 3022 }; 3023</script>
3023 3024 3025<style> 3026 3027 3028 .asw-widget-button-top { 3029 position: absolute !important; 3030 top: 10px !important; 3031 left: 10px !important; 3032 background-color: #000 !important; 3033 color: #fff !important; 3034 text-decoration: none !important; 3035 overflow: hidden; 3036 width: 1px !important; 3037 height: 1px !important; 3038 margin: -1px !important; 3039 padding: 0 !important; 3040 border: 0 !important; 3041 clip: rect(0 0 0 0) !important; 3042 word-wrap: normal !important; 3043 } 3044 .asw-widget-button-top-focused, 3045 .asw-widget-button-top:focus { 3046 z-index: 9999 !important; 3047 overflow: auto !important; 3048 width: auto !important; 3049 height: auto !important; 3050 clip: auto !important; 3051 padding: 10px 15px !important; 3052 } 3053 3054 #acp-virtualKeyboardPopup { 3055 position: fixed; 3056 bottom: 80px; 3057 left: 50%; 3058 transform: translateX(-50%); 3059 background: #ffffff !important; 3060 border: 1px solid #ccc; 3061 padding: 8px; 3062 box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2); 3063 z-index: 9999; 3064 display: none; 3065 width: 90%; 3066 max-width: 600px; 3067 border-radius: 10px; 3068 } 3069 3070 #acp-virtual-input { 3071 width: 100%; 3072 padding: 10px; 3073 font-size: 16px; 3074 margin-bottom: 10px; 3075 } 3076 3077 #acp-closeKeyboardBtn { 3078 color: #fff; 3079 border: none; 3080 padding: 1px 3px; 3081 cursor: pointer; 3082 float: right; 3083 border-radius: 4px; 3084 margin-bottom: 5px; 3085 } 3086 #acp-definition-popup { 3087 position: absolute; 3088 display: none; 3089 padding: 10px; 3090 background: white; 3091 border: 1px solid #ccc; 3092 z-index: 1000; 3093 border-radius: 14px; 3094 } 3095</style> 3096 3097<div id="acp-icon"></div> 3098<div id="acp-widget"></div> 3099 3100<!-- Virtual Keyboard Input and Keyboard --> 3101<div 3102 id="acp-definition-popup" 3103></div> 3104<div 3105 id="acp-dictionary-toast" 3106 class="asw-text-speech-bar" 3107 style="display: none;" 3108 data-ap-translate="DICTIONARY DESC" 3109> 3110 Double click on a word to see the definition. 3111</div> 3112<div id="acp-virtualKeyboardPopup" role="dialog" aria-modal="true" aria-label="Virtual keyboard popup"> 3113 <button id="acp-closeKeyboardBtn" aria-label="Close virtual keyboard"> 3114 <svg 3115 xmlns="http://www.w3.org/2000/svg" 3116 width="24" 3117 height="24" 3118 viewBox="0 0 24 24" 3119 fill="none" 3120 > 3121 <path 3122 d="M18 6L6 18" 3123 stroke="black" 3124 strokeWidth="2" 3125 strokeLinecap="round" 3126 strokeLinejoin="round" 3127 /> 3128 <path 3129 d="M6 6L18 18" 3130 stroke="black" 3131 strokeWidth="2" 3132 strokeLinecap="round" 3133 strokeLinejoin="round" 3134 /> 3135 </svg> 3136 </button> 3137 3138 <div id="acp-virtual-keyboard" class="simple-keyboard"></div> 3139
3139<script> 3140 function makeDraggableVirtualKeyboard(el) { 3141 let pos1 = 0, 3142 pos2 = 0, 3143 pos3 = 0, 3144 pos4 = 0; 3145 3146 el.onmousedown = dragMouseDown; 3147 3148 function dragMouseDown(e) { 3149 e.preventDefault(); 3150 pos3 = e.clientX; 3151 pos4 = e.clientY; 3152 document.onmouseup = closeDragElement; 3153 document.onmousemove = elementDrag; 3154 } 3155 3156 function elementDrag(e) { 3157 e.preventDefault(); 3158 pos1 = pos3 - e.clientX; 3159 pos2 = pos4 - e.clientY; 3160 pos3 = e.clientX; 3161 pos4 = e.clientY; 3162 el.style.top = el.offsetTop - pos2 + 'px'; 3163 el.style.left = el.offsetLeft - pos1 + 'px'; 3164 el.style.bottom = 'unset'; 3165 el.style.right = 'unset'; 3166 } 3167 3168 function closeDragElement() { 3169 document.onmouseup = null; 3170 document.onmousemove = null; 3171 } 3172 } 3173 3174 makeDraggableVirtualKeyboard(document.getElementById('acp-virtualKeyboardPopup')); 3175 </script>
3175 3176</div>
3177<script> 3178 // App Procxy Handle 3179 3180 window.accessProProxyHandle = '/apps/access-pro'; 3181 3182 3183 // URLs 3184 window.accessProSettingsUrl = `${window.accessProProxyHandle}/theme/settings/`; 3185 window.accessProPageViewsCountUrl = `${window.accessProProxyHandle}/theme/views/update/count`; 3186 3187 3188 // Translation URL 3189 var shopify_domain = `real-coco.myshopify.com`; 3190 window.accessProTranslationUrl = `https://access-pro-api.entanglecommerce.com/api/v1/language/translate/?domain=${shopify_domain}`; 3191 window.pageViewsCountURL = `${window.accessProProxyHandle}/theme/views/update/count`; 3192</script>
3192 3193
3194<script src="https://cdn.shopify.com/extensions/01a0fc5b-faca-7a27-ab85-5412b87841de/access-pro-2-246/assets/main.js" defer></script>
vendor: 1 bytes, line 3194
3194
3195<script> 3196 (function () { 3197 var params = new URLSearchParams(window.location.search); 3198 var token = params.get('acp_scan'); 3199 if (!token) return; 3200 3201 function showScanOverlay(message) { 3202 var el = document.getElementById('acp-scan-overlay'); 3203 if (!el) { 3204 el = document.createElement('div'); 3205 el.id = 'acp-scan-overlay'; 3206 el.style.cssText = 3207 'position:fixed;inset:0;background:rgba(255,255,255,0.94);z-index:2147483647;display:flex;align-items:center;justify-content:center;font-family:system-ui,-apple-system,sans-serif;'; 3208 el.innerHTML = 3209 '<div style="text-align:center;max-width:320px;padding:24px">' + 3210 '<p style="font-size:18px;font-weight:600;margin:0 0 8px;color:#111">Scanning for accessibility</p>' + 3211 '<p id="acp-scan-overlay-status" style="font-size:14px;color:#666;margin:0"></p>' + 3212 '</div>'; 3213 document.body.appendChild(el); 3214 } 3215 var status = document.getElementById('acp-scan-overlay-status'); 3216 if (status) status.textContent = message || 'Please waitâ¦'; 3217 } 3218 3219 showScanOverlay('Preparing accessibility scanâ¦'); 3220 3221 function hideOverlay() { 3222 var el = document.getElementById('acp-scan-overlay'); 3223 if (el) el.style.display = 'none'; 3224 } 3225 3226 function pageIsThemePreview() { 3227 try { 3228 return Boolean(new URLSearchParams(window.location.search).get('preview_theme_id')); 3229 } catch (e) { 3230 return false; 3231 } 3232 } 3233 3234 // Shopify stores the unpublished theme in a storefront cookie. Clear it 3235 // here so the scan window never has to navigate to the live theme. 3236 var previewExitPromise = null; 3237 function exitThemePreviewQuietly() { 3238 if (!pageIsThemePreview()) return Promise.resolve(); 3239 if (previewExitPromise) return previewExitPromise; 3240 previewExitPromise = new Promise(function (resolve) { 3241 var settled = false; 3242 function finish() { 3243 if (settled) return; 3244 settled = true; 3245 resolve(); 3246 } 3247 setTimeout(finish, 2000); 3248 try { 3249 var frame = document.createElement('iframe'); 3250 frame.setAttribute('aria-hidden', 'true'); 3251 frame.title = ''; 3252 frame.style.cssText = 3253 'position:absolute;width:0;height:0;border:0;visibility:hidden'; 3254 frame.src = window.location.origin + '/?exitPreview=1'; 3255 (document.body || document.documentElement).appendChild(frame); 3256 } catch (e) {} 3257 try { 3258 fetch(window.location.origin + '/?exitPreview=1', { 3259 credentials: 'include', 3260 cache: 'no-store', 3261 redirect: 'follow', 3262 }).catch(function () {}); 3263 } catch (e) {} 3264 }); 3265 return previewExitPromise; 3266 } 3267 3268 window.addEventListener('message', function (event) { 3269 if (event.source !== window.opener) return; 3270 var data = event.data; 3271 if (!data || data.type !== 'accesspro-exit-preview') return; 3272 exitThemePreviewQuietly().then(function () { 3273 if (window.opener) { 3274 window.opener.postMessage({ type: 'accesspro-preview-exited' }, '*'); 3275 } 3276 }); 3277 }); 3278 3279 function submitScanResult(payload) { 3280 var params = new URLSearchParams(window.location.search); 3281 var jobId = params.get('acp_job'); 3282 if (!jobId) { 3283 return; 3284 } 3285 3286 var pageUrl = window.location.origin + window.location.pathname; 3287 fetch(window.accessProProxyHandle + '/theme/accessibility-scan/complete', { 3288 method: 'POST', 3289 headers: { 'Content-Type': 'application/json' }, 3290 body: JSON.stringify({ 3291 jobId: jobId, 3292 scanToken: token, 3293 url: pageUrl, 3294 axeResults: payload.results || null, 3295 error: 3296 payload.type === 'accesspro-axe-scan-error' 3297 ? payload.message || 'Accessibility scan failed' 3298 : null, 3299 }), 3300 }) 3301 .then(function (response) { 3302 return response.json().catch(function () { 3303 return {}; 3304 }); 3305 }) 3306 .then(function (data) { 3307 if (window.opener) { 3308 var isFinal = data.reportId != null; 3309 var hasError = !data.success; 3310 var isNextScanPage = false;
3311 if (data.redirectUrl) { 3312 try { 3313 isNextScanPage = new URL(data.redirectUrl).searchParams.has('acp_scan'); 3314 } catch (e) {} 3315 } 3316 var continuing = isNextScanPage && data.redirectUrl && !isFinal && !hasError; 3317 3318 function deliver() { 3319 window.opener.postMessage( 3320 { 3321 type: 'accesspro-axe-scan-progress', 3322 jobId: jobId, 3323 redirectUrl: data.redirectUrl || null, 3324 reportId: data.reportId != null ? data.reportId : null, 3325 error: data.success ? null : (data.message || 'Scan failed'), 3326 }, 3327 '*', 3328 ); 3329 3330 if (isFinal) { 3331 showScanOverlay('Returning to your audit reportâ¦'); 3332 return; 3333 } 3334 3335 if (continuing) { 3336 showScanOverlay('Scanning next pageâ¦'); 3337 window.location.href = data.redirectUrl; 3338 return; 3339 } 3340 3341 setTimeout(function () { 3342 window.close(); 3343 }, 400); 3344 } 3345 3346 if (pageIsThemePreview() && !continuing) { 3347 if (isFinal) showScanOverlay('Returning to your audit reportâ¦'); 3348 exitThemePreviewQuietly().then(deliver); 3349 return; 3350 } 3351 3352 deliver(); 3353 return; 3354 } 3355 if (data.redirectUrl) { 3356 showScanOverlay('Returning to your audit reportâ¦'); 3357 window.location.href = data.redirectUrl; 3358 return; 3359 } 3360 showScanOverlay(data.message || 'Scan failed'); 3361 if (window.opener) { 3362 window.opener.postMessage( 3363 { 3364 type: 'accesspro-axe-scan-progress', 3365 jobId: jobId, 3366 error: data.message || 'Scan failed', 3367 }, 3368 '*', 3369 ); 3370 } 3371 }) 3372 .catch(function (err) { 3373 var message = 3374 (err && err.message) || 'Scan failed'; 3375 showScanOverlay(message); 3376 function deliver() { 3377 if (!window.opener) return; 3378 var jobIdErr = new URLSearchParams(window.location.search).get('acp_job'); 3379 window.opener.postMessage( 3380 { 3381 type: 'accesspro-axe-scan-progress', 3382 jobId: jobIdErr, 3383 error: message, 3384 }, 3385 '*', 3386 ); 3387 } 3388 if (pageIsThemePreview()) { 3389 exitThemePreviewQuietly().then(deliver); 3390 return; 3391 } 3392 deliver(); 3393 }); 3394 } 3395 3396 function waitForFullPageLoad() { 3397 return new Promise(function (resolve) { 3398 function settle() { 3399 // Extended settle time for dynamic content, carousels, lazy sections 3400 // Wait for network idle + animations + JS state changes 3401 setTimeout(function() { 3402 // Wait for any lazy images to finish loading 3403 var images = Array.prototype.slice.call(document.querySelectorAll('img[loading="lazy"]')); 3404 var pendingImages = images.filter(function(img) { 3405 return !img.complete; 3406 }); 3407 3408 if (pendingImages.length > 0) { 3409 var loaded = 0; 3410 var timeout = setTimeout(function() { 3411 resolve(); // Don't wait forever 3412 }, 2000); 3413 3414 pendingImages.forEach(function(img) { 3415 function handleLoad() { 3416 loaded++; 3417 if (loaded >= pendingImages.length) { 3418 clearTimeout(timeout); 3419 // Additional wait for any pending RAF or microtasks 3420 requestAnimationFrame(function() { 3421 setTimeout(resolve, 100); 3422 }); 3423 } 3424 } 3425 img.addEventListener('load', handleLoad, { once: true }); 3426 img.addEventListener('error', handleLoad, { once: true }); 3427 }); 3428 } else {
3429 // Additional wait for any pending RAF or microtasks 3430 requestAnimationFrame(function() { 3431 setTimeout(resolve, 100); 3432 }); 3433 } 3434 }, 3000); 3435 } 3436 if (document.readyState === 'complete') { 3437 settle(); 3438 return; 3439 } 3440 window.addEventListener('load', settle, { once: true }); 3441 }); 3442 } 3443 3444 // Port of accessibility-scanner Phase 3 WCAG 2.2 / APG checks (browser-side). 3445 // Findings are merged into axe violations/incomplete so the existing pipeline needs no changes. 3446 function isAccessProScanElement(el) { 3447 if (!el || !el.closest) return false; 3448 return !!( 3449 el.closest('#acp-icon') || 3450 el.closest('#acp-widget') || 3451 el.closest('#acp-virtualKeyboardPopup') || 3452 el.closest('#acp-definition-popup') || 3453 el.closest('#acp-dictionary-toast') || 3454 el.closest('#acp-scan-overlay') || 3455 el.closest('[id^="acp-"]') || 3456 el.closest('.asw-widget-button-top') 3457 ); 3458 } 3459 3460 // Enhanced element visibility check including all CSS hiding techniques 3461 function isElementVisible(el) { 3462 if (!el || !el.getBoundingClientRect) return false; 3463 var style = window.getComputedStyle(el); 3464 if (style.display === 'none' || style.visibility === 'hidden') return false; 3465 if (style.opacity === '0') return false; 3466 if (style.position === 'absolute' && style.clip === 'rect(0px, 0px, 0px, 0px)') return false; 3467 if (style.width === '1px' && style.height === '1px' && style.overflow === 'hidden') return false; 3468 var rect = el.getBoundingClientRect(); 3469 if (rect.width === 0 || rect.height === 0) return false; 3470 return true; 3471 } 3472 3473 function runWcag22Checks() { 3474 var violations = []; 3475 var incomplete = []; 3476 3477 try { 3478 // WCAG 2.4.11 Focus Not Obscured â sticky/fixed heuristic (manual review) 3479 var stickyElements = Array.prototype.slice 3480 .call(document.querySelectorAll('*')) 3481 .filter(function (el) { 3482 if (isAccessProScanElement(el)) return false; 3483 if (!isElementVisible(el)) return false; 3484 var style = getComputedStyle(el); 3485 return ( 3486 (style.position === 'sticky' || style.position === 'fixed') && 3487 el.getBoundingClientRect().height > 40 3488 ); 3489 }) 3490 .slice(0, 5) 3491 .map(function (el) { 3492 var style = getComputedStyle(el); 3493 return { 3494 tag: el.tagName.toLowerCase(), 3495 id: el.id || null, 3496 height: Math.round(el.getBoundingClientRect().height), 3497 position: style.position, 3498 }; 3499 }); 3500 3501 if (stickyElements.length > 0) { 3502 incomplete.push({ 3503 id: 'focus-not-obscured', 3504 impact: 'serious', 3505 tags: ['wcag22aa', 'wcag2411'], 3506 description: 3507 'WCAG 2.4.11: Focused elements must not be entirely obscured. Fixed/sticky elements detected â manual keyboard testing required.', 3508 helpUrl: 3509 'https://www.w3.org/WAI/WCAG22/Understanding/focus-not-obscured-minimum.html', 3510 nodes: stickyElements.map(function (e) { 3511 return { 3512 html: 3513 '<' + 3514 e.tag + 3515 (e.id ? ' id="' + e.id + '"' : '') + 3516 '> (' + 3517 e.position + 3518 ', ' + 3519 e.height + 3520 'px tall)', 3521 target: [e.tag + (e.id ? '#' + e.id : '')], 3522 failureSummary: 3523 'Fixed/sticky element may obscure focused components. Verify with keyboard navigation.', 3524 }; 3525 }), 3526 }); 3527 } 3528 3529 // NEW: aria-hidden-focus check - elements with aria-hidden="true" that are focusable 3530 var hiddenFocusable = []; 3531 document.querySelectorAll('[aria-hidden="true"]').forEach(function(el) { 3532 if (isAccessProScanElement(el)) return; 3533 // Check if this element or any descendant is focusable 3534 var focusableSelectors = 'a[href], button, input, select, textarea, [tabindex]:not
3534([tabindex="-1"])'; 3535 var focusables = el.matches(focusableSelectors) ? [el] : Array.prototype.slice.call(el.querySelectorAll(focusableSelectors)); 3536 focusables.forEach(function(focusEl) { 3537 if (isElementVisible(focusEl) && focusEl.tabIndex >= 0) { 3538 hiddenFocusable.push({ 3539 html: focusEl.outerHTML.slice(0, 500), 3540 selector: buildScanSelector(focusEl), 3541 parentHiddenHtml: el.outerHTML.slice(0, 200) 3542 }); 3543 } 3544 }); 3545 }); 3546 3547 if (hiddenFocusable.length > 0) { 3548 violations.push({ 3549 id: 'aria-hidden-focus', 3550 impact: 'serious', 3551 tags: ['wcag2aa', 'wcag412'], 3552 description: 'WCAG 4.1.2: Focusable elements must not be hidden with aria-hidden="true"', 3553 helpUrl: 'https://www.w3.org/WAI/WCAG22/Understanding/name-role-value.html', 3554 nodes: hiddenFocusable.slice(0, 10).map(function(item) { 3555 return { 3556 html: item.html, 3557 target: [item.selector], 3558 failureSummary: 'Focusable element is inside aria-hidden="true" container' 3559 }; 3560 }) 3561 }); 3562 } 3563 3564 // WCAG 2.5.3 Label in Name - Enhanced with better visible text extraction 3565 // Visible text = text rendered on screen (excludes aria-hidden, sr-only, SVG internals). 3566 function getVisibleText(el) { 3567 var text = ''; 3568 for (var i = 0; i < el.childNodes.length; i++) { 3569 var child = el.childNodes[i]; 3570 if (child.nodeType === 3) { text += child.textContent; continue; } 3571 if (child.nodeType !== 1) continue; 3572 if (child.getAttribute('aria-hidden') === 'true') continue; 3573 var st = window.getComputedStyle(child); 3574 if (st.display === 'none' || st.visibility === 'hidden') continue; 3575 if (st.opacity === '0') continue; 3576 if (st.position === 'absolute') { 3577 var clip = st.clip; 3578 if (clip === 'rect(0px, 0px, 0px, 0px)' || clip === 'rect(0, 0, 0, 0)') continue; 3579 } 3580 if (st.width === '1px' && st.height === '1px' && st.overflow === 'hidden') continue; 3581 if (st.fontSize === '0px' || st.width === '0px' || st.height === '0px') continue; 3582 text += getVisibleText(child); 3583 } 3584 return text; 3585 } 3586 function buildScanSelector(el) { 3587 if (el.id) return '#' + CSS.escape(el.id); 3588 var testId = el.getAttribute('data-testid') || el.getAttribute('data-test-id'); 3589 if (testId) return '[data-testid="' + testId + '"]'; 3590 var tag = el.tagName.toLowerCase(); 3591 var cls = (el.getAttribute('class') || '').split(/\s+/).filter(function (c) { 3592 return c && c.length < 60 && !/^(active|is-|js-|open|hidden|focus|hover)/i.test(c); 3593 }).slice(0, 3); 3594 return cls.length ? tag + '.' + cls.join('.') : tag; 3595 } 3596 3597 // Enhanced selector to catch more interactive elements 3598 var interactiveSelector = 'button, [role="button"], a[aria-label], [role="link"][aria-label], ' + 3599 '[role="menuitem"][aria-label], [role="tab"][aria-label], [role="checkbox"][aria-label], ' + 3600 '[role="radio"][aria-label], [role="switch"][aria-label], [role="combobox"][aria-label], ' + 3601 '[role="searchbox"][aria-label], [role="textbox"][aria-label]'; 3602 3603 var mismatches = Array.prototype.slice 3604 .call(document.querySelectorAll(interactiveSelector)) 3605 .filter(function (el) { 3606 return !isAccessProScanElement(el) && isElementVisible(el); 3607 }) 3608 .map(function (el) { 3609 var ariaLabel = el.getAttribute('aria-label') || ''; 3610 var visibleText = getVisibleText(el).replace(/\s+/g, ' ').trim(); 3611 if (!ariaLabel || !visibleText) return null; 3612 if (visibleText.length <= 1) return null; 3613 3614 // Normalize for comparison - remove punctuation and make case-insensitive 3615 var normalizedLabel = ariaLabel.toLowerCase().replace(/[^\w\s]/g, ''); 3616 var normalizedVisible = visibleText.toLowerCase().replace(/[^\w\s]/g, ''); 3617 3618 // Check if visible text is substring of aria-label
3619 if (normalizedLabel.includes(normalizedVisible)) return null; 3620 3621 // Check word-by-word containment for multi-word labels 3622 var visibleWords = normalizedVisible.split(/\s+/).filter(Boolean); 3623 if (visibleWords.length > 0) { 3624 var allWordsPresent = visibleWords.every(function(word) { 3625 return normalizedLabel.includes(word); 3626 }); 3627 if (allWordsPresent) return null; 3628 } 3629 3630 return { 3631 html: el.outerHTML.slice(0, 500), 3632 selector: buildScanSelector(el), 3633 ariaLabel: ariaLabel, 3634 visibleText: visibleText, 3635 }; 3636 }) 3637 .filter(Boolean) 3638 .slice(0, 10); 3639 3640 if (mismatches.length > 0) { 3641 violations.push({ 3642 id: 'label-in-name', 3643 impact: 'serious', 3644 tags: ['wcag21a', 'wcag253'], 3645 description: 'WCAG 2.5.3: Accessible name must contain visible label text', 3646 helpUrl: 'https://www.w3.org/WAI/WCAG22/Understanding/label-in-name.html', 3647 nodes: mismatches.map(function (m) { 3648 return { 3649 html: m.html, 3650 target: [m.selector], 3651 failureSummary: 3652 'aria-label="' + 3653 m.ariaLabel + 3654 '" does not contain visible text "' + 3655 m.visibleText + 3656 '"', 3657 }; 3658 }), 3659 }); 3660 } 3661 3662 // 2.5.7 Dragging Movements 3663 var draggableElements = Array.prototype.slice 3664 .call( 3665 document.querySelectorAll( 3666 '[draggable="true"], [data-sortable], .sortable-item', 3667 ), 3668 ) 3669 .filter(function (el) { 3670 return !isAccessProScanElement(el); 3671 }) 3672 .slice(0, 5) 3673 .map(function (el) { 3674 return { 3675 html: el.outerHTML.slice(0, 500), 3676 selector: buildScanSelector(el), 3677 }; 3678 }); 3679 3680 if (draggableElements.length > 0) { 3681 incomplete.push({ 3682 id: 'dragging-movements', 3683 impact: 'serious', 3684 tags: ['wcag22aa', 'wcag257'], 3685 description: 3686 'WCAG 2.5.7: Draggable elements must have a single-pointer alternative. Manual verification required.', 3687 helpUrl: 'https://www.w3.org/WAI/WCAG22/Understanding/dragging-movements.html', 3688 nodes: draggableElements.map(function (e) { 3689 return { 3690 html: e.html, 3691 target: [e.selector], 3692 failureSummary: 3693 'Verify that a keyboard or single-pointer alternative exists for this drag operation.', 3694 }; 3695 }), 3696 }); 3697 } 3698 3699 // ARIA APG: Dialog Pattern 3700 var badDialogs = Array.prototype.slice 3701 .call(document.querySelectorAll('[role="dialog"], [role="alertdialog"]')) 3702 .filter(function (el) { 3703 if (isAccessProScanElement(el)) return false; 3704 return !( 3705 el.hasAttribute('aria-labelledby') || el.hasAttribute('aria-label') 3706 ); 3707 }) 3708 .slice(0, 5) 3709 .map(function (el) { 3710 return { 3711 html: el.outerHTML.slice(0, 500), 3712 selector: buildScanSelector(el), 3713 }; 3714 }); 3715 3716 if (badDialogs.length > 0) { 3717 violations.push({ 3718 id: 'dialog-missing-label', 3719 impact: 'serious', 3720 tags: ['aria-apg', 'wcag2aa'], 3721 description: 3722 'ARIA APG Dialog Pattern: role="dialog" must have aria-labelledby or aria-label', 3723 helpUrl: 'https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/', 3724 nodes: badDialogs.map(function (d) { 3725 return { 3726 html: d.html, 3727 target: [d.selector], 3728 failureSummary: 3729 'Add aria-labelledby pointing to a visible dialog title, or aria-label.', 3730 }; 3731 }), 3732 }); 3733 } 3734 3735 // ARIA APG: Tabs Pattern â tabs must have aria-selected (true on active, false on others
3735) 3736 var badTabs = []; 3737 Array.prototype.slice 3738 .call(document.querySelectorAll('[role="tablist"]')) 3739 .forEach(function (tabList) { 3740 if (isAccessProScanElement(tabList)) return; 3741 var tabs = Array.prototype.slice.call(tabList.querySelectorAll('[role="tab"]')); 3742 var hasAnySelected = tabs.some(function (t) { return t.getAttribute('aria-selected') === 'true'; }); 3743 tabs.forEach(function (tab) { 3744 if (isAccessProScanElement(tab)) return; 3745 if (!tab.hasAttribute('aria-selected')) { 3746 // Detect if this tab appears active (has aria-current, class "active", etc.) 3747 var looksActive = !hasAnySelected && tab.classList.contains('active'); 3748 badTabs.push({ 3749 html: tab.outerHTML.slice(0, 500), 3750 selector: buildScanSelector(tab), 3751 suggestValue: looksActive ? 'true' : 'false', 3752 }); 3753 } 3754 }); 3755 }); 3756 badTabs = badTabs.slice(0, 5); 3757 3758 if (badTabs.length > 0) { 3759 violations.push({ 3760 id: 'tabs-missing-aria-selected', 3761 impact: 'serious', 3762 tags: ['aria-apg', 'wcag2aa'], 3763 description: 3764 'ARIA APG Tabs Pattern: each [role="tab"] must have aria-selected="true" or aria-selected="false"', 3765 helpUrl: 'https://www.w3.org/WAI/ARIA/apg/patterns/tabs/', 3766 nodes: badTabs.map(function (t) { 3767 return { 3768 html: t.html, 3769 target: [t.selector], 3770 failureSummary: 3771 'Tab missing aria-selected. Suggested value: aria-selected="' + (t.suggestValue || 'false') + '"', 3772 }; 3773 }), 3774 }); 3775 } 3776 } catch (err) { 3777 console.warn( 3778 '[AccessPro][AxeScan][storefront] WCAG 2.2 checks error', 3779 err && err.message ? err.message : err, 3780 ); 3781 } 3782 3783 return { violations: violations, incomplete: incomplete }; 3784 } 3785 3786 function runAxeScan() { 3787 if (!window.axe) { 3788 showScanOverlay('Scan failed: axe-core not loaded'); 3789 notifyScanOpener({ 3790 type: 'accesspro-axe-scan-error', 3791 token: token, 3792 message: 'axe-core failed to load', 3793 }); 3794 return; 3795 } 3796 3797 // CRITICAL: Hide overlay before scan to prevent interference with color-contrast/visibility checks 3798 hideOverlay(); 3799 3800 // Run axe WITHOUT overlay visible to get accurate color contrast and visibility results 3801 window.axe 3802 .run(document, { 3803 runOnly: { 3804 type: 'tag', 3805 values: ['wcag2a', 'wcag2aa', 'wcag21aa', 'wcag22aa'], 3806 }, 3807 exclude: [ 3808 ['#acp-icon'], 3809 ['#acp-widget'], 3810 ['#acp-virtualKeyboardPopup'], 3811 ['#acp-definition-popup'], 3812 ['#acp-dictionary-toast'], 3813 ['#acp-scan-overlay'], 3814 ['.asw-widget-button-top'], 3815 ], 3816 }) 3817 .then(function (results) { 3818 // Now safe to show overlay after scan completes 3819 showScanOverlay('Processing scan resultsâ¦'); 3820 var extra = runWcag22Checks(); 3821 if (!results.violations) results.violations = []; 3822 if (!results.incomplete) results.incomplete = []; 3823 // Scanner stores customChecks separately; merge into axe arrays so 3824 // buildAxeScanSummary (customChecks: []) still surfaces them. 3825 results.violations = results.violations.concat(extra.violations || []); 3826 results.incomplete = results.incomplete.concat(extra.incomplete || []); 3827 3828 // List rule only: axe often stores just the opening <ul> tag. 3829 // Re-serialize with direct children so the report/AI Fixes show the real issue. 3830 enrichListViolationNodes(results); 3831 3832 notifyScanOpener({ 3833 type: 'accesspro-axe-scan', 3834 token: token, 3835 url: window.location.href, 3836 results: results, 3837 }); 3838 }) 3839 .catch(function (err) { 3840 showScanOverlay('Scan failed'); 3841 notifyScanOpener({ 3842 type: 'accesspro-axe-scan-error', 3843 token: token, 3844 message: err && err.message ? err.message : 'Accessibility scan failed', 3845 }); 3846 }); 3847 } 3848 3849 /** 3850 * Optimize axe `list` node payloads only (no other rules). 3851 * Horizon overflow-list / ul[part=list] failures need children in HTML 3852 * so merchants see role=presentation / non-li children clearly. 3853 */ 3854 function enrichListViolationNodes(results) { 3855 var violations = results && results.violations; 3856 if (!violations || !violations.length) return; 3857 3858 function queryInRoot(root, sel) { 3859 if (!root || !sel) return null; 3860 try { 3861 return root.querySelector(sel); 3862 } catch (e) { 3863 return null; 3864 } 3865 } 3866 3867 function resolveShadowPath(path) { 3868 if (!path) return null; 3869 if (typeof path === 'string') { 3870 return ( 3871 queryInRoot(document, path) || 3872 queryDeepAll(path)[0] || 3873 null 3874 ); 3875 } 3876 if (!Array.isArray(path) || !path.length) return null; 3877 3878 // Nested shadow path: ["host", "inner"] or [["host", "inner"]] 3879 var steps = path; 3880 if (steps.length === 1 && Array.isArray(steps[0])) { 3881 steps = steps[0]; 3882 } 3883 3884 var ctx = document; 3885 var el = null; 3886 for (var i = 0; i < steps.length; i++) { 3887 var step = steps[i]; 3888 if (Array.isArray(step)) { 3889 el = resolveShadowPath(step); 3890 } else { 3891 el = queryInRoot(ctx, String(step)); 3892 if (!el && ctx === document) { 3893 el = queryDeepAll(String(step))[0] || null; 3894 } 3895 } 3896 if (!el) return null; 3897 ctx = el.shadowRoot || el; 3898 } 3899 return el; 3900 } 3901 3902 function queryDeepAll(sel) { 3903 var out = []; 3904 function walk(root) { 3905 if (!root || !root.querySelectorAll) return; 3906 try { 3907 Array.prototype.push.apply(out, root.querySelectorAll(sel)); 3908 } catch (e) { 3909 /* invalid selector */ 3910 } 3911 var all = root.querySelectorAll ? root.querySelectorAll('*') : []; 3912 for (var i = 0; i < all.length; i++) { 3913 if (all[i].shadowRoot) walk(all[i].shadowRoot); 3914 } 3915 } 3916 walk(document); 3917 return out; 3918 } 3919 3920 function serializeChildSnippet(child) { 3921 if (!child || !child.tagName) return ''; 3922 var tag = child.tagName.toLowerCase(); 3923 var role = (child.getAttribute && child.getAttribute('role')) || ''; 3924 var part = (child.getAttribute && child.getAttribute('part')) || ''; 3925 var cls = (child.getAttribute && child.getAttribute('class')) || ''; 3926 var open = 3927 '<' + 3928 tag + 3929 (role ? ' role="' + role + '"' : '') + 3930 (part ? ' part="' + part + '"' : '') + 3931 (cls 3932 ? ' class="' + 3933 String(cls) 3934 .trim() 3935 .split(/\s+/) 3936 .slice(0, 3) 3937 .join(' ') + 3938 '"' 3939 : '') + 3940 '>'; 3941 var text = (child.textContent || '').replace(/\s+/g, ' ').trim().slice(0, 40); 3942 return open + (text ? text : 'â¦') + '</' + tag + '>'; 3943 } 3944 3945 function serializeListHtml(listEl) { 3946 if (!listEl || !listEl.tagName) return ''; 3947 var tag = listEl.tagName.toLowerCase(); 3948 if (tag !== 'ul' && tag !== 'ol') return ''; 3949 var openMatch = String(listEl.outerHTML || '').match(/^<[^>]+>/); 3950 var openTag = openMatch ? openMatch[0] : '<' + tag + '>'; 3951 var children = Array.prototype.slice.call(listEl.children || []).slice(0, 10); 3952 if (!children.length) return openTag; 3953 var lines = children.map(function (child) { 3954 return ' ' + serializeChildSnippet(child); 3955 }); 3956 if ((listEl.children || []).length > 10) { 3957 lines.push(' <!-- ⦠' + (listEl.children.length - 10) + ' more -->'); 3958 } 3959 return openTag + '\n' + lines.join('\n') + '\n</' + tag + '>'; 3960 } 3961 3962 function findListFallback() { 3963 var candidates = queryDeepAll('ul[part="list"], overflow-list ul, ul, ol'); 3964 var withBad = candidates.filter(function (listEl) { 3965 return Array.prototype.some.call(listEl.children || [], function (child) { 3966 var role = (child.getAttribute && child.getAttribute('role')) || ''; 3967 var t = (child.tagName || '').toLowerCase(); 3968 return ( 3969 role === 'presentation' || 3970 role === 'none' || 3971 (t !== 'li' && t !== 'script' && t !== 'template' && t !== 'style') 3972 ); 3973 }); 3974 }); 3975 return withBad.length === 1 ? withBad[0] : null; 3976 } 3977 3978 violations.forEach(function (v) { 3979 if (!v || v.id !== 'list') return;
3980 (v.nodes || []).forEach(function (node) { 3981 if (!node) return; 3982 var hintHtml = String(node.html || ''); 3983 var el = resolveShadowPath(node.target); 3984 3985 // Flat axe targets like ["ul"] are too generic â prefer part=list from html hint. 3986 if ( 3987 el && 3988 /part\s*=\s*["']list["']/i.test(hintHtml) && 3989 !(el.getAttribute && el.getAttribute('part') === 'list') 3990 ) { 3991 var partLists = queryDeepAll('ul[part="list"]'); 3992 if (partLists.length === 1) el = partLists[0]; 3993 else if (partLists.length > 1) { 3994 var badPart = partLists.filter(function (listEl) { 3995 return Array.prototype.some.call(listEl.children || [], function (child) { 3996 var role = (child.getAttribute && child.getAttribute('role')) || ''; 3997 return role === 'presentation' || role === 'none'; 3998 }); 3999 }); 4000 if (badPart.length === 1) el = badPart[0]; 4001 } 4002 } 4003 4004 if (el && el.tagName) { 4005 var t = el.tagName.toLowerCase(); 4006 if (t !== 'ul' && t !== 'ol' && el.closest) { 4007 el = el.closest('ul, ol') || el; 4008 } 4009 } 4010 if (!el || !el.tagName || !/^(UL|OL)$/.test(el.tagName)) { 4011 el = findListFallback(); 4012 } 4013 if (!el) return; 4014 4015 var better = serializeListHtml(el); 4016 if (better && better.length > hintHtml.length) { 4017 node.html = better.slice(0, 2500); 4018 } 4019 4020 // Prefer a stable, actionable selector for Horizon chrome lists. 4021 if (el.getAttribute && el.getAttribute('part') === 'list') { 4022 node.target = ['ul[part="list"]']; 4023 } 4024 }); 4025 }); 4026 } 4027 4028 function notifyScanOpener(payload) { 4029 if (window.opener && payload.type === 'accesspro-axe-scan-error') { 4030 var jobId = new URLSearchParams(window.location.search).get('acp_job'); 4031 showScanOverlay('Scan failed'); 4032 window.opener.postMessage( 4033 { 4034 type: 'accesspro-axe-scan-progress', 4035 jobId: jobId, 4036 error: payload.message || 'Accessibility scan failed', 4037 }, 4038 '*', 4039 ); 4040 setTimeout(function () { 4041 window.close(); 4042 }, 400); 4043 return; 4044 } 4045 submitScanResult(payload); 4046 } 4047 4048 var script = document.createElement('script'); 4049 // cdnjs only goes up to 4.10.3; jsDelivr serves 4.11.1 (matches accessibility-scanner). 4050 script.src = 'https://cdn.jsdelivr.net/npm/[email protected]/axe.min.js'; 4051 script.onload = function () { 4052 waitForFullPageLoad().then(runAxeScan); 4053 }; 4054 script.onerror = function () { 4055 notifyScanOpener({ 4056 type: 'accesspro-axe-scan-error', 4057 token: token, 4058 message: 'Failed to load axe-core', 4059 }); 4060 }; 4061 document.head.appendChild(script); 4062 })(); 4063</script>
4063 4064 4065 4066<style> 4067 .accesspro-icon { 4068 display: inline-flex; 4069 flex-direction: column; 4070 align-items: center; 4071 gap: 4px; 4072 cursor: pointer; 4073 text-decoration: none; 4074 vertical-align: middle; 4075 color: var(--acp-trigger-color, #23185c); 4076 } 4077 4078 /* Icon-only triggers should not reserve a text line box. */ 4079 .accesspro-icon[icon='true']:not(.acp-trigger--has-text) { 4080 line-height: 0; 4081 } 4082 4083 .accesspro-icon .asw-menu-btn-container { 4084 flex-shrink: 0; 4085 } 4086 4087 /* The cloned icon is inert; the host element is the control. */ 4088 .accesspro-icon .asw-menu-btn-container, 4089 .accesspro-icon .asw-menu-btn { 4090 pointer-events: none; 4091 } 4092</style>
4093<script> 4094 (function () { 4095 var SELECTOR = '.accesspro-icon'; 4096 var BOUND = 'acpTriggerBound'; 4097 var FILLED = 'acpTriggerFilled'; 4098 var settings = window.accessProWidgetSettings || {}; 4099 var inlineMode = !!settings.hide_floating_icon; 4100 var fallbackReady = inlineMode; 4101 document.documentElement.style.setProperty( 4102 '--acp-trigger-color', 4103 settings.icon_color_fill || '#23185c' 4104 ); 4105 4106 /* ---- open the widget ------------------------------------------------ */ 4107 /* main.js is deferred, so iconInstance may not exist on an early click. */ 4108 function openWidget(event) { 4109 if (event) event.preventDefault(); 4110 if (window.iconInstance) { 4111 window.iconInstance.toggleWidget(); 4112 return; 4113 } 4114 var waited = 0; 4115 var timer = setInterval(function () { 4116 if (window.iconInstance) { 4117 clearInterval(timer); 4118 window.iconInstance.toggleWidget(); 4119 } else if ((waited += 100) >= 10000) { 4120 clearInterval(timer); 4121 console.error('[AccessPro] Widget did not load â cannot open menu.'); 4122 } 4123 }, 100); 4124 } 4125 4126 /* ---- clone the floating icon ---------------------------------------- */ 4127 function buildIcon() { 4128 var source = document.querySelector('#Access-Pro-Icon .asw-menu-btn-container'); 4129 if (!source) return null; 4130 4131 var clone = source.cloneNode(true); 4132 4133 // Strip ids: the widget mutates apMenuIconStroke / apMenuIconFill by id 4134 // when contrast modes change, and duplicates would shadow the original. 4135 clone.removeAttribute('id'); 4136 clone.querySelectorAll('[id]').forEach(function (node) { 4137 node.removeAttribute('id'); 4138 }); 4139 4140 // The dismiss "X" and loading dots belong to the floating icon only. 4141 clone.querySelectorAll('.asw-hide-widget-icon, .acp-floating-dots').forEach(function (node) { 4142 node.remove(); 4143 }); 4144 4145 // A <button> nested inside the merchant's <a>
4145 is invalid HTML. Swap it 4146 // for a <span> carrying the same classes so the widget CSS still applies. 4147 var button = clone.querySelector('.asw-menu-btn'); 4148 if (button) { 4149 var span = document.createElement('span'); 4150 span.className = button.className; 4151 span.setAttribute('style', button.getAttribute('style') || ''); 4152 span.setAttribute('aria-hidden', 'true'); 4153 while (button.firstChild) span.appendChild(button.firstChild); 4154 button.parentNode.replaceChild(span, button); 4155 } 4156 4157 return clone; 4158 } 4159 4160 4161 /* ---- fallback: build the icon from settings ------------------------- */ 4162 /* Used when the floating icon is not in the DOM â the widget skips 4163 render() entirely if the visitor dismissed it, if a page/country filter 4164 bails out of init(), or if trigger display is set to title-only. 4165 Geometry below mirrors render() in main.js exactly. */ 4166 var GLYPHS = { 4167 default: '<svg class="asw-main-icon" xmlns="http://www.w3.org/2000/svg" fill="#ffffff" style="height: 45%; width: 45%; fill: #ffffff" viewBox="0 0 512 512" aria-hidden="true" focusable="false"><path d="M256,112a56,56,0,1,1,56-56A56.06,56.06,0,0,1,256,112Z" /><path d="M432,112.8l-.45.12h0l-.42.13c-1,.28-2,.58-3,.89-18.61,5.46-108.93,30.92-172.56,30.92-59.13,0-141.28-22-167.56-29.47a73.79,73.79,0,0,0-8-2.58c-19-5-32,14.3-32,31.94,0,17.47,15.7,25.79,31.55,31.76v.28l95.22,29.74c9.73,3.73,12.33,7.54,13.6,10.84,4.13,10.59.83,31.56-.34,38.88l-5.8,45L150.05,477.44q-.15.72-.27,1.47l-.23,1.27h0c-2.32,16.15,9.54,31.82,32,31.82,19.6,0,28.25-13.53,32-31.94h0s28-157.57,42-157.57,42.84,157.57,42.84,157.57h0c3.75,18.41,12.4,31.94,32,31.94,22.52,0,34.38-15.74,32-31.94-.21-1.38-.46-2.74-.76-4.06L329,301.27l-5.79-45c-4.19-26.21-.82-34.87.32-36.9a1.09,1.09,0,0,0,.08-.15c1.08-2,6-6.48,17.48-10.79l89.28-31.21a16.9,16.9,0,0,0,1.62-.52c16-6,32-14.3,32-31.93S451,107.81,432,112.8Z" /></svg>', 4168 wheelchair: '<svg class="asw-main-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 960 960" fill="#ffffff" aria-hidden="true" focusable="false"> <path d="M480 240q-33 0-56.5-23.5T400 160q0-33 23.5-56.5T480 80q33 0 56.5 23.5T560 160q0 33-23.5 56.5T480 240ZM680 880V680H480q-33 0-56.5-23.5T400 600V360q0-33 23.5-56.5T480 280q24 0 41.5 10.5T559 324q55 66 99.5 90.5T760 480v80q-53 0-107-23t-93-55v138h120q33 0 56.5 23.5T760 680v220h-80ZM400 880q-83 0-141.5-58.5T200 680q0-72 45.5-127T360 484v82q-35 14-57.5 44.5T280 680q0 50 35 85t85 35q39 0 69.5-22.5T514 720h82q-14 69-69 114.5T400 880Z" /> </svg>', 4169 blind: '<svg class="asw-main-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960" fill="#ffffff" style="fill: #ffffff" aria-hidden="true" focusable="false"> <path d="m240-60-64-48 104-139v-213q0-31 5.5-68.5T300-596l-60 34v142h-80v-188l216-123q8-5 17-7t19-2q24 0 44 12t30 33l31 67q20 44 61 66t102 22v80h-39L860-78l-35 20-237-413q-40-13-72.5-37.5T460-568q-10 29-15.5 66.5T441-432l79 112v260h-80v-200l-71-102-9 142L240-60Zm220-700q-33 0-56.5-23.5T380-840q0-33 23.5-56.5T460-920q33 0 56.5 23.5T540-840q0 33-23.5 56.5T460-760Z" /> </svg>', 4170 eye: '<svg class="asw-main-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960" fill="#ffffff" style="fill: #ffffff" aria-hidden="true" focusable="false"><path d="m644-428-58-58q9-47-27-88t-93-32l-58-58q17-8 34.5-12t37.5-4q75 0 127.5 52.5T660-500q0 20-4 37.5T644-428Zm128 126-58-56q38-29 67.5-63.5T832-500q-50-101-143.5-160.5T480-720q-29 0-57 4t-55 12l-62-62q41-17 84-25.5t90-8.5q151 0 269 83.5T920-500q-23 59-60.5 109.5T772-302Zm20 246L624-222q-35 11-70.5 16.5T480-200q-151 0-269-83.5T40-500q21-53 53-98.5t73-81.5L56-792l56-56 736 736-56 56ZM222-624q-29 26-53 57t-41 67q50 101 143.5 160.5T480-280q20 0 39-2.5t39-5.5l-36-38q-11 3-21 4.5t-21 1.5q-75 0-127.5-52.5T300-500q0-11 1.5-21t4.5-21l-84-82Zm319 93Zm-151 75Z" /></svg>', 4171 accStraight: '<svg class="asw-main-icon" xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" fill="#ffffff" style="fill: #ffffff" aria-hidden="true" focusable="false"><path d="M480-720q-33 0-56.5-23.5T400-800q0-33 23.5-56.5T480-880q33 0 56.5 23.5T560-800q0 33-23.5 56.5T480-720ZM360-80v-520H120v-80h720v80H600v520h-80v-240h-80v240h-80Z" /></svg>', 4172 settings: '<svg class="asw-main-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960" fill="#ffffff" style="fill: #ffffff" aria-hidden="true" focusable="false">
4172<path d="m370-80-16-128q-13-5-24.5-12T307-235l-119 50L78-375l103-78q-1-7-1-13.5v-27q0-6.5 1-13.5L78-585l110-190 119 50q11-8 23-15t24-12l16-128h220l16 128q13 5 24.5 12t22.5 15l119-50 110 190-103 78q1 7 1 13.5v27q0 6.5-2 13.5l103 78-110 190-118-50q-11 8-23 15t-24 12L590-80H370Zm70-80h79l14-106q31-8 57.5-23.5T639-327l99 41 39-68-86-65q5-14 7-29.5t2-31.5q0-16-2-31.5t-7-29.5l86-65-39-68-99 42q-22-23-48.5-38.5T533-694l-13-106h-79l-14 106q-31 8-57.5 23.5T321-633l-99-41-39 68 86 64q-5 15-7 30t-2 32q0 16 2 31t7 30l-86 65 39 68 99-42q22 23 48.5 38.5T427-266l13 106Zm42-180q58 0 99-41t41-99q0-58-41-99t-99-41q-59 0-99.5 41T342-480q0 58 40.5 99t99.5 41Zm-2-140Z" /></svg>' 4173 }; 4174 4175 var SIZES = { 4176 small: 40, '0.5x': 40, 4177 medium: 50, '1x': 50, default: 50, 4178 large: 60, '1.5x': 60, 4179 extraLarge: 75, '2x': 75 4180 }; 4181 4182 function buildIconFromSettings() { 4183 var s = window.accessProWidgetSettings || {}; 4184 var style = s.icon_style || 'thick'; 4185 var square = s.icon_shape === 'square'; 4186 // Defaults must match mergeSettings() in main.js and DEFAULT_SETTINGS in 4187 // app/constants/settings.js â both use #23185c for stroke AND fill â so a 4188 // metafield missing these keys renders identically on either path. 4189 var stroke = s.icon_color_stroke || '#23185c'; 4190 var fill = s.icon_color_fill || '#23185c'; 4191 var px = SIZES[s.icon_size] || 50; 4192 var solid = style === 'solid'; 4193 var thin = style === 'thin'; 4194 var shapes = ''; 4195 4196 if (square) { 4197 var sizes = [ 4198 [solid ? 100 : 98, stroke, 12], 4199 [solid ? 0 : thin ? 86 : 82, '#ffffff', 10], 4200 [solid || thin ? 80 : 70, fill, 8] 4201 ];
4202 sizes.forEach(function (d) { 4203 if (!d[0]) return; 4204 var off = (100 - d[0]) / 2; 4205 shapes += '<rect x="' + off + '" y="' + off + '" width="' + d[0] + '" height="' + d[0] + 4206 '" rx="' + d[2] + '" ry="' + d[2] + '" fill="' + d[1] + '" />'; 4207 }); 4208 } else { 4209 [ 4210 [solid ? 50 : 49, stroke], 4211 [solid ? 0 : thin ? 43 : 41, '#ffffff'], 4212 [solid || thin ? 40 : 35, fill] 4213 ].forEach(function (d) { 4214 shapes += '<circle cx="50" cy="50" r="' + d[0] + '" fill="' + d[1] + '" />'; 4215 }); 4216 } 4217 4218 var name = GLYPHS[s.icon] ? s.icon : 'default'; 4219 var box = document.createElement('div'); 4220 box.className = 'asw-menu-btn-container'; 4221 box.setAttribute('style', 'position:relative;width:' + px + 'px;height:' + px + 'px;'); 4222 // The widget stylesheet may not be loaded when render() never ran, so 4223 // every layout-critical rule is inlined rather than left to the classes. 4224 box.innerHTML = 4225 '<span class="asw-menu-btn' + (square ? ' asw-menu-btn--square' : '') + '" aria-hidden="true"' + 4226 ' style="position:relative;display:flex;align-items:center;justify-content:center;' + 4227 'width:100%;height:100%;background:transparent;border:none;padding:0;margin:0;' + 4228 'border-radius:' + (square ? '12%' : '50%') + ';">' + 4229 '<svg class="asw-outer-svg" viewBox="0 0 100 100" aria-hidden="true" focusable="false"' + 4230 ' style="width:100%;height:100%;display:block;">' + shapes + '</svg>' + 4231 GLYPHS[name] + '</span>'; 4232 4233 var glyph = box.querySelector('.asw-main-icon'); 4234 if (glyph) { 4235 // .asw-main-icon sizes to 50% via CSS; the default glyph overrides to 45% inline. 4236 var pct = name === 'default' ? '45%' : '50%'; 4237 glyph.setAttribute( 4238 'style', 4239 'position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);' + 4240 'width:' + pct + ';height:' + pct + ';fill:#ffffff;z-index:100;' 4241 ); 4242 } 4243 return box; 4244 } 4245 4246 /* Name from the host only. Text inside aria-hidden (the cloned icon) does not count. */ 4247 function triggerNeedsName(el) { 4248 if ((el.getAttribute('aria-label') || '').trim()) return false; 4249 if ((el.getAttribute('aria-labelledby') || '').trim()) return false; 4250 if ((el.getAttribute('title') || '').trim()) return false; 4251 var node = el.firstChild; 4252 while (node) { 4253 if (node.nodeType === 3) { 4254 if (node.textContent.trim()) return false; 4255 } else if (node.nodeType === 1 && node.getAttribute('aria-hidden') !== 'true') { 4256 if (!triggerNeedsName(node)) return false; 4257 } 4258 node = node.nextSibling; 4259 } 4260 return true; 4261 } 4262 4263 function ensureTriggerName(el) { 4264 if (triggerNeedsName(el)) { 4265 el.setAttribute('aria-label', 'Open Accessibility Menu'); 4266 } 4267 } 4268 4269 /* ---- wire one element ----------------------------------------------- */ 4270 function bind(el) { 4271 if (el.dataset[BOUND]) return; 4272 el.dataset[BOUND] = '1'; 4273 4274 el.addEventListener('click', openWidget); 4275 el.addEventListener('keydown', function (event) { 4276 if (event.key === 'Enter' || event.key === ' ') openWidget(event); 4277 }); 4278 4279 // A non-anchor host (div/span) needs explicit button semantics. 4280 var tag = el.tagName.toLowerCase(); 4281 if (tag !== 'a' && tag !== 'button') { 4282 if (!el.hasAttribute('role')) el.setAttribute('role', 'button'); 4283 if (!el.hasAttribute('tabindex')) el.setAttribute('tabindex', '0'); 4284 } 4285 4286 if (el.textContent.trim()) el.classList.add('acp-trigger--has-text'); 4287 ensureTriggerName(el); 4288 } 4289 4290 function fillIcon(el, allowFallback) { 4291 if (el.dataset[FILLED]) return true; 4292 if (el.getAttribute('icon') !== 'true') return true; 4293 4294 // Prefer cloning the live icon; fall back to rebuilding from settings. 4295 var icon = buildIcon(); 4296 if (!icon && (allowFallback || inlineMode)) icon = buildIconFromSettings(); 4297 if (!icon) return false; 4298 4299 // The clone's size lives only in the container's inline style. If the 4300 // widget rendered without one, size it from settings so it cannot 4301 // collapse to zero height inside the merchant's layout. 4302 if (!/\bheight\s*:/.test(icon.getAttribute('style') || '')) { 4303 var px = SIZES[(window.accessProWidgetSettings || {}).icon_size] || 50; 4304 icon.style.position = 'relative'; 4305 icon.style.width = px + 'px'; 4306 icon.style.height = px + 'px'; 4307 } 4308 4309 el.insertBefore(icon, el.firstChild); 4310 el.dataset[FILLED] = '1'; 4311 ensureTriggerName(el); 4312 return true; 4313 } 4314 4315 /* ---- scan ------------------------------------------------------------ */
4316 /* Clicks are wired immediately so the trigger works before the icon 4317 renders; icons are filled in once the floating icon exists. */ 4318 var pendingIcons = false; 4319 4320 function scan(allowFallback) { 4321 pendingIcons = false; 4322 document.querySelectorAll(SELECTOR).forEach(function (el) { 4323 bind(el); 4324 if (!fillIcon(el, allowFallback)) pendingIcons = true; 4325 }); 4326 } 4327 4328 function start() { 4329 scan(inlineMode); 4330 4331 // Inline mode hides the floating icon, so build from settings immediately. 4332 if (inlineMode) { 4333 // console.log('[AccessPro] Inline triggers â using widget settings for icons'); 4334 } 4335 4336 // The floating icon only renders after the settings request resolves and 4337 // the widget chunk loads, so poll until it appears. If it never does, 4338 // stop waiting and build the icon from settings instead. 4339 var FALLBACK_AFTER = 2500; 4340 var waited = 0; 4341 var timer = setInterval(function () { 4342 if (!pendingIcons) { 4343 clearInterval(timer); 4344 return; 4345 } 4346 waited += 200; 4347 if (waited < FALLBACK_AFTER) { 4348 scan(false); 4349 return; 4350 } 4351 fallbackReady = true; 4352 clearInterval(timer); 4353 scan(true); 4354 if (pendingIcons) { 4355 console.warn('[AccessPro] Could not render inline icons.'); 4356 } 4357 }, 200); 4358 4359 // Catch triggers added later (theme editor re-renders, dynamic sections). 4360 // Debounced: the widget itself mutates the DOM heavily as it renders. 4361 if (window.MutationObserver) { 4362 var queued = false; 4363 new window.MutationObserver(function () { 4364 if (queued) return; 4365 queued = true; 4366 requestAnimationFrame(function () { 4367 queued = false; 4368 scan(fallbackReady || inlineMode); 4369 }); 4370 }).observe(document.body, { childList: true, subtree: true }); 4371 } 4372 } 4373 4374 if (document.readyState === 'loading') { 4375 document.addEventListener('DOMContentLoaded', start); 4376 } else { 4377 start(); 4378 } 4379 })(); 4380</script>
4380 4381 4382 4383</div><div id="shopify-block-ANThZazMwNGNyV05Va__18020446634262408591" class="shopify-block shopify-app-block"> 4384 4385 4386</div><div id="shopify-block-AZFd6aGFnS21FS1hVa__13768625480086291342" class="shopify-block shopify-app-block">
4386<script> 4387 window['ShopifyForms'] = { 4388 ...window['ShopifyForms'], 4389 currentPageType: "blog" 4390 }; 4391</script>
4391 4392 4393 4394</div>
4394<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
4394 4395</body> 4396</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.