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":"d6a85214-2b87-400e-b5e2-5424c1d1934e-1790315037","pageurl":"enjoyrealcoco.com\/blogs\/recipes","s":"blogs-46257668201","u":"9b48734ab0f0","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<script src="https://cdn.shopify.com/extensions/01a0d519-46bd-7628-9219-180ed5883223/forms-2596/assets/shopify-forms-loader.js" type="text/javascript" defer="defer"></script>
452 453<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"> 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: ["16072cab","8450a54b"],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","c8540278we853e1abpb62b2c4amde256306",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"127585550441","themePublished":"true","eventMetadataId":"f6d78818-dd69-44e7-849d-18932e751382","pageType":"blog","resourceId":"46257668201","shopId":"8510537833","storefrontBaseUrl":"https:\/\/enjoyrealcoco.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"16072cab\", \"8450a54b\"]","isMerchantRequest":"false","hashVersion":"c8540278we853e1abpb62b2c4amde256306","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":"d6a85214-2b87-400e-b5e2-5424c1d1934e-1790315037"}}; 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.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js"}); 610 611 }; 612 scriptFallback.async = true; 613 scriptFallback.src = '//enjoyrealcoco.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js'; 614 first.parentNode.insertBefore(scriptFallback, first); 615}; 616script.async = true; 617script.src = '//enjoyrealcoco.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.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":"f6d78818-dd69-44e7-849d-18932e751382"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b"]},"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":"d6a85214-2b87-400e-b5e2-5424c1d1934e-1790315037","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="1532c279-c39c-4e84-a64a-cd73c8afa395" data-expiration="1821872637000"><meta name="shopify-s" content="0be6e80f-0fd9-478b-93c4-a8bfb7cdeca8" data-expiration="1790316837000"><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="f29166183e72deed34c15ae1fe8bf145" 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/01a0a4a2-9ae1-7bbf-bb1e-1aa291044673/access-pro-2-243/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 submitScanResult(payload) { 3227 var params = new URLSearchParams(window.location.search); 3228 var jobId = params.get('acp_job'); 3229 if (!jobId) { 3230 return; 3231 } 3232 3233 var pageUrl = window.location.origin + window.location.pathname; 3234 fetch(window.accessProProxyHandle + '/theme/accessibility-scan/complete', { 3235 method: 'POST', 3236 headers: { 'Content-Type': 'application/json' }, 3237 body: JSON.stringify({ 3238 jobId: jobId, 3239 scanToken: token, 3240 url: pageUrl, 3241 axeResults: payload.results || null, 3242 error: 3243 payload.type === 'accesspro-axe-scan-error' 3244 ? payload.message || 'Accessibility scan failed' 3245 : null, 3246 }), 3247 }) 3248 .then(function (response) { 3249 return response.json().catch(function () { 3250 return {}; 3251 }); 3252 }) 3253 .then(function (data) { 3254 if (window.opener) { 3255 var isFinal = data.reportId != null; 3256 var isNextScanPage = false; 3257 if (data.redirectUrl) { 3258 try { 3259 isNextScanPage = new URL(data.redirectUrl).searchParams.has('acp_scan'); 3260 } catch (e) {} 3261 } 3262 3263 window.opener.postMessage( 3264 { 3265 type: 'accesspro-axe-scan-progress', 3266 jobId: jobId, 3267 redirectUrl: data.redirectUrl || null, 3268 reportId: data.reportId != null ? data.reportId : null, 3269 error: data.success ? null : (data.message || 'Scan failed'), 3270 }, 3271 '*', 3272 ); 3273 3274 if (isFinal) { 3275 showScanOverlay('Returning to your audit reportâ¦'); 3276 return; 3277 } 3278 3279 if (isNextScanPage && data.redirectUrl) { 3280 showScanOverlay('Scanning next pageâ¦'); 3281 window.location.href = data.redirectUrl; 3282 return; 3283 } 3284 3285 setTimeout(function () { 3286 window.close(); 3287 }, 400); 3288 return; 3289 } 3290 if (data.redirectUrl) { 3291 showScanOverlay('Returning to your audit reportâ¦'); 3292 window.location.href = data.redirectUrl; 3293 return; 3294 } 3295 showScanOverlay(data.message || 'Scan failed'); 3296 if (window.opener) { 3297 window.opener.postMessage( 3298 { 3299 type: 'accesspro-axe-scan-progress', 3300 jobId: jobId, 3301 error: data.message || 'Scan failed', 3302 }, 3303 '*', 3304 ); 3305 } 3306 }) 3307 .catch(function (err) { 3308 var message = 3309 (err && err.message) || 'Scan failed'; 3310 showScanOverlay(message); 3311 if (window.opener) { 3312 var jobIdErr = new URLSearchParams(window.location.search).get('acp_job'); 3313 window.opener.postMessage( 3314 { 3315 type: 'accesspro-axe-scan-progress', 3316 jobId: jobIdErr, 3317 error: message, 3318 }, 3319 '*', 3320 ); 3321 } 3322 }); 3323 } 3324 3325 function waitForFullPageLoad() { 3326 return new Promise(function (resolve) { 3327 function settle() { 3328 // Extended settle time for dynamic content, carousels, lazy sections 3329 // Wait for network idle + animations + JS state changes 3330 setTimeout(function() { 3331 // Wait for any lazy images to finish loading 3332 var images = Array.prototype.slice.call(document.querySelectorAll('img[loading="lazy"]')); 3333 var pendingImages = images.filter(function(img) { 3334 return !img.complete; 3335 }); 3336 3337 if (pendingImages.length > 0) { 3338 var loaded = 0; 3339 var timeout = setTimeout(function() { 3340 resolve(); // Don't wait forever 3341 }, 2000); 3342
3343 pendingImages.forEach(function(img) { 3344 function handleLoad() { 3345 loaded++; 3346 if (loaded >= pendingImages.length) { 3347 clearTimeout(timeout); 3348 // Additional wait for any pending RAF or microtasks 3349 requestAnimationFrame(function() { 3350 setTimeout(resolve, 100); 3351 }); 3352 } 3353 } 3354 img.addEventListener('load', handleLoad, { once: true }); 3355 img.addEventListener('error', handleLoad, { once: true }); 3356 }); 3357 } else { 3358 // Additional wait for any pending RAF or microtasks 3359 requestAnimationFrame(function() { 3360 setTimeout(resolve, 100); 3361 }); 3362 } 3363 }, 3000); 3364 } 3365 if (document.readyState === 'complete') { 3366 settle(); 3367 return; 3368 } 3369 window.addEventListener('load', settle, { once: true }); 3370 }); 3371 } 3372 3373 // Port of accessibility-scanner Phase 3 WCAG 2.2 / APG checks (browser-side). 3374 // Findings are merged into axe violations/incomplete so the existing pipeline needs no changes. 3375 function isAccessProScanElement(el) { 3376 if (!el || !el.closest) return false; 3377 return !!( 3378 el.closest('#acp-icon') || 3379 el.closest('#acp-widget') || 3380 el.closest('#acp-virtualKeyboardPopup') || 3381 el.closest('#acp-definition-popup') || 3382 el.closest('#acp-dictionary-toast') || 3383 el.closest('#acp-scan-overlay') || 3384 el.closest('[id^="acp-"]') || 3385 el.closest('.asw-widget-button-top') 3386 ); 3387 } 3388 3389 // Enhanced element visibility check including all CSS hiding techniques 3390 function isElementVisible(el) { 3391 if (!el || !el.getBoundingClientRect) return false; 3392 var style = window.getComputedStyle(el); 3393 if (style.display === 'none' || style.visibility === 'hidden') return false; 3394 if (style.opacity === '0') return false; 3395 if (style.position === 'absolute' && style.clip === 'rect(0px, 0px, 0px, 0px)') return false; 3396 if (style.width === '1px' && style.height === '1px' && style.overflow === 'hidden') return false; 3397 var rect = el.getBoundingClientRect(); 3398 if (rect.width === 0 || rect.height === 0) return false; 3399 return true; 3400 } 3401 3402 function runWcag22Checks() { 3403 var violations = []; 3404 var incomplete = []; 3405 3406 try { 3407 // WCAG 2.4.11 Focus Not Obscured â sticky/fixed heuristic (manual review) 3408 var stickyElements = Array.prototype.slice 3409 .call(document.querySelectorAll('*')) 3410 .filter(function (el) { 3411 if (isAccessProScanElement(el)) return false; 3412 if (!isElementVisible(el)) return false; 3413 var style = getComputedStyle(el); 3414 return ( 3415 (style.position === 'sticky' || style.position === 'fixed') && 3416 el.getBoundingClientRect().height > 40 3417 ); 3418 }) 3419 .slice(0, 5) 3420 .map(function (el) { 3421 var style = getComputedStyle(el); 3422 return { 3423 tag: el.tagName.toLowerCase(), 3424 id: el.id || null, 3425 height: Math.round(el.getBoundingClientRect().height), 3426 position: style.position, 3427 }; 3428 }); 3429 3430 if (stickyElements.length > 0) { 3431 incomplete.push({ 3432 id: 'focus-not-obscured', 3433 impact: 'serious', 3434 tags: ['wcag22aa', 'wcag2411'], 3435 description: 3436 'WCAG 2.4.11: Focused elements must not be entirely obscured. Fixed/sticky elements detected â manual keyboard testing required.', 3437 helpUrl: 3438 'https://www.w3.org/WAI/WCAG22/Understanding/focus-not-obscured-minimum.html', 3439 nodes: stickyElements.map(function (e) { 3440 return { 3441 html: 3442 '<' + 3443 e.tag + 3444 (e.id ? ' id="' + e.id + '"' : '') + 3445 '> (' + 3446 e.position + 3447 ', ' + 3448 e.height + 3449 'px tall)', 3450 target: [e.tag + (e.id ? '#' + e.id : '')], 3451 failureSummary: 3452 'Fixed/sticky element may obscure focused components. Verify with keyboard navigation.', 3453 }; 3454 }), 3455 }); 3456 } 3457 3458 // NEW: aria-hidden-focus check - elements with aria-hidden="true" that are focusable 3459 var hiddenFocusable = []; 3460 document.querySelectorAll('[aria-hidden="true"]').forEach(function(el) { 3461 if (isAccessProScanElement(el)) return; 3462 // Check if this element or any descendant is focusable 3463 var focusableSelectors = 'a[href], button, input, select, textarea, [tabindex]:not
3463([tabindex="-1"])'; 3464 var focusables = el.matches(focusableSelectors) ? [el] : Array.prototype.slice.call(el.querySelectorAll(focusableSelectors)); 3465 focusables.forEach(function(focusEl) { 3466 if (isElementVisible(focusEl) && focusEl.tabIndex >= 0) { 3467 hiddenFocusable.push({ 3468 html: focusEl.outerHTML.slice(0, 500), 3469 selector: buildScanSelector(focusEl), 3470 parentHiddenHtml: el.outerHTML.slice(0, 200) 3471 }); 3472 } 3473 }); 3474 }); 3475 3476 if (hiddenFocusable.length > 0) { 3477 violations.push({ 3478 id: 'aria-hidden-focus', 3479 impact: 'serious', 3480 tags: ['wcag2aa', 'wcag412'], 3481 description: 'WCAG 4.1.2: Focusable elements must not be hidden with aria-hidden="true"', 3482 helpUrl: 'https://www.w3.org/WAI/WCAG22/Understanding/name-role-value.html', 3483 nodes: hiddenFocusable.slice(0, 10).map(function(item) { 3484 return { 3485 html: item.html, 3486 target: [item.selector], 3487 failureSummary: 'Focusable element is inside aria-hidden="true" container' 3488 }; 3489 }) 3490 }); 3491 } 3492 3493 // WCAG 2.5.3 Label in Name - Enhanced with better visible text extraction 3494 // Visible text = text rendered on screen (excludes aria-hidden, sr-only, SVG internals). 3495 function getVisibleText(el) { 3496 var text = ''; 3497 for (var i = 0; i < el.childNodes.length; i++) { 3498 var child = el.childNodes[i]; 3499 if (child.nodeType === 3) { text += child.textContent; continue; } 3500 if (child.nodeType !== 1) continue; 3501 if (child.getAttribute('aria-hidden') === 'true') continue; 3502 var st = window.getComputedStyle(child); 3503 if (st.display === 'none' || st.visibility === 'hidden') continue; 3504 if (st.opacity === '0') continue; 3505 if (st.position === 'absolute') { 3506 var clip = st.clip; 3507 if (clip === 'rect(0px, 0px, 0px, 0px)' || clip === 'rect(0, 0, 0, 0)') continue; 3508 } 3509 if (st.width === '1px' && st.height === '1px' && st.overflow === 'hidden') continue; 3510 if (st.fontSize === '0px' || st.width === '0px' || st.height === '0px') continue; 3511 text += getVisibleText(child); 3512 } 3513 return text; 3514 } 3515 function buildScanSelector(el) { 3516 if (el.id) return '#' + CSS.escape(el.id); 3517 var testId = el.getAttribute('data-testid') || el.getAttribute('data-test-id'); 3518 if (testId) return '[data-testid="' + testId + '"]'; 3519 var tag = el.tagName.toLowerCase(); 3520 var cls = (el.getAttribute('class') || '').split(/\s+/).filter(function (c) { 3521 return c && c.length < 60 && !/^(active|is-|js-|open|hidden|focus|hover)/i.test(c); 3522 }).slice(0, 3); 3523 return cls.length ? tag + '.' + cls.join('.') : tag; 3524 } 3525 3526 // Enhanced selector to catch more interactive elements 3527 var interactiveSelector = 'button, [role="button"], a[aria-label], [role="link"][aria-label], ' + 3528 '[role="menuitem"][aria-label], [role="tab"][aria-label], [role="checkbox"][aria-label], ' + 3529 '[role="radio"][aria-label], [role="switch"][aria-label], [role="combobox"][aria-label], ' + 3530 '[role="searchbox"][aria-label], [role="textbox"][aria-label]'; 3531 3532 var mismatches = Array.prototype.slice 3533 .call(document.querySelectorAll(interactiveSelector)) 3534 .filter(function (el) { 3535 return !isAccessProScanElement(el) && isElementVisible(el); 3536 }) 3537 .map(function (el) { 3538 var ariaLabel = el.getAttribute('aria-label') || ''; 3539 var visibleText = getVisibleText(el).replace(/\s+/g, ' ').trim(); 3540 if (!ariaLabel || !visibleText) return null; 3541 if (visibleText.length <= 1) return null; 3542 3543 // Normalize for comparison - remove punctuation and make case-insensitive 3544 var normalizedLabel = ariaLabel.toLowerCase().replace(/[^\w\s]/g, ''); 3545 var normalizedVisible = visibleText.toLowerCase().replace(/[^\w\s]/g, ''); 3546 3547 // Check if visible text is substring of aria-label
3548 if (normalizedLabel.includes(normalizedVisible)) return null; 3549 3550 // Check word-by-word containment for multi-word labels 3551 var visibleWords = normalizedVisible.split(/\s+/).filter(Boolean); 3552 if (visibleWords.length > 0) { 3553 var allWordsPresent = visibleWords.every(function(word) { 3554 return normalizedLabel.includes(word); 3555 }); 3556 if (allWordsPresent) return null; 3557 } 3558 3559 return { 3560 html: el.outerHTML.slice(0, 500), 3561 selector: buildScanSelector(el), 3562 ariaLabel: ariaLabel, 3563 visibleText: visibleText, 3564 }; 3565 }) 3566 .filter(Boolean) 3567 .slice(0, 10); 3568 3569 if (mismatches.length > 0) { 3570 violations.push({ 3571 id: 'label-in-name', 3572 impact: 'serious', 3573 tags: ['wcag21a', 'wcag253'], 3574 description: 'WCAG 2.5.3: Accessible name must contain visible label text', 3575 helpUrl: 'https://www.w3.org/WAI/WCAG22/Understanding/label-in-name.html', 3576 nodes: mismatches.map(function (m) { 3577 return { 3578 html: m.html, 3579 target: [m.selector], 3580 failureSummary: 3581 'aria-label="' + 3582 m.ariaLabel + 3583 '" does not contain visible text "' + 3584 m.visibleText + 3585 '"', 3586 }; 3587 }), 3588 }); 3589 } 3590 3591 // 2.5.7 Dragging Movements 3592 var draggableElements = Array.prototype.slice 3593 .call( 3594 document.querySelectorAll( 3595 '[draggable="true"], [data-sortable], .sortable-item', 3596 ), 3597 ) 3598 .filter(function (el) { 3599 return !isAccessProScanElement(el); 3600 }) 3601 .slice(0, 5) 3602 .map(function (el) { 3603 return { 3604 html: el.outerHTML.slice(0, 500), 3605 selector: buildScanSelector(el), 3606 }; 3607 }); 3608 3609 if (draggableElements.length > 0) { 3610 incomplete.push({ 3611 id: 'dragging-movements', 3612 impact: 'serious', 3613 tags: ['wcag22aa', 'wcag257'], 3614 description: 3615 'WCAG 2.5.7: Draggable elements must have a single-pointer alternative. Manual verification required.', 3616 helpUrl: 'https://www.w3.org/WAI/WCAG22/Understanding/dragging-movements.html', 3617 nodes: draggableElements.map(function (e) { 3618 return { 3619 html: e.html, 3620 target: [e.selector], 3621 failureSummary: 3622 'Verify that a keyboard or single-pointer alternative exists for this drag operation.', 3623 }; 3624 }), 3625 }); 3626 } 3627 3628 // ARIA APG: Dialog Pattern 3629 var badDialogs = Array.prototype.slice 3630 .call(document.querySelectorAll('[role="dialog"], [role="alertdialog"]')) 3631 .filter(function (el) { 3632 if (isAccessProScanElement(el)) return false; 3633 return !( 3634 el.hasAttribute('aria-labelledby') || el.hasAttribute('aria-label') 3635 ); 3636 }) 3637 .slice(0, 5) 3638 .map(function (el) { 3639 return { 3640 html: el.outerHTML.slice(0, 500), 3641 selector: buildScanSelector(el), 3642 }; 3643 }); 3644 3645 if (badDialogs.length > 0) { 3646 violations.push({ 3647 id: 'dialog-missing-label', 3648 impact: 'serious', 3649 tags: ['aria-apg', 'wcag2aa'], 3650 description: 3651 'ARIA APG Dialog Pattern: role="dialog" must have aria-labelledby or aria-label', 3652 helpUrl: 'https://www.w3.org/WAI/ARIA/apg/patterns/dialog-modal/', 3653 nodes: badDialogs.map(function (d) { 3654 return { 3655 html: d.html, 3656 target: [d.selector], 3657 failureSummary: 3658 'Add aria-labelledby pointing to a visible dialog title, or aria-label.', 3659 }; 3660 }), 3661 }); 3662 } 3663 3664 // ARIA APG: Tabs Pattern â tabs must have aria-selected (true on active, false on others
3664) 3665 var badTabs = []; 3666 Array.prototype.slice 3667 .call(document.querySelectorAll('[role="tablist"]')) 3668 .forEach(function (tabList) { 3669 if (isAccessProScanElement(tabList)) return; 3670 var tabs = Array.prototype.slice.call(tabList.querySelectorAll('[role="tab"]')); 3671 var hasAnySelected = tabs.some(function (t) { return t.getAttribute('aria-selected') === 'true'; }); 3672 tabs.forEach(function (tab) { 3673 if (isAccessProScanElement(tab)) return; 3674 if (!tab.hasAttribute('aria-selected')) { 3675 // Detect if this tab appears active (has aria-current, class "active", etc.) 3676 var looksActive = !hasAnySelected && tab.classList.contains('active'); 3677 badTabs.push({ 3678 html: tab.outerHTML.slice(0, 500), 3679 selector: buildScanSelector(tab), 3680 suggestValue: looksActive ? 'true' : 'false', 3681 }); 3682 } 3683 }); 3684 }); 3685 badTabs = badTabs.slice(0, 5); 3686 3687 if (badTabs.length > 0) { 3688 violations.push({ 3689 id: 'tabs-missing-aria-selected', 3690 impact: 'serious', 3691 tags: ['aria-apg', 'wcag2aa'], 3692 description: 3693 'ARIA APG Tabs Pattern: each [role="tab"] must have aria-selected="true" or aria-selected="false"', 3694 helpUrl: 'https://www.w3.org/WAI/ARIA/apg/patterns/tabs/', 3695 nodes: badTabs.map(function (t) { 3696 return { 3697 html: t.html, 3698 target: [t.selector], 3699 failureSummary: 3700 'Tab missing aria-selected. Suggested value: aria-selected="' + (t.suggestValue || 'false') + '"', 3701 }; 3702 }), 3703 }); 3704 } 3705 } catch (err) { 3706 console.warn( 3707 '[AccessPro][AxeScan][storefront] WCAG 2.2 checks error', 3708 err && err.message ? err.message : err, 3709 ); 3710 } 3711 3712 return { violations: violations, incomplete: incomplete }; 3713 } 3714 3715 function runAxeScan() { 3716 if (!window.axe) { 3717 showScanOverlay('Scan failed: axe-core not loaded'); 3718 notifyScanOpener({ 3719 type: 'accesspro-axe-scan-error', 3720 token: token, 3721 message: 'axe-core failed to load', 3722 }); 3723 return; 3724 } 3725 3726 // CRITICAL: Hide overlay before scan to prevent interference with color-contrast/visibility checks 3727 hideOverlay(); 3728 3729 // Run axe WITHOUT overlay visible to get accurate color contrast and visibility results 3730 window.axe 3731 .run(document, { 3732 runOnly: { 3733 type: 'tag', 3734 values: ['wcag2a', 'wcag2aa', 'wcag21aa', 'wcag22aa'], 3735 }, 3736 exclude: [ 3737 ['#acp-icon'], 3738 ['#acp-widget'], 3739 ['#acp-virtualKeyboardPopup'], 3740 ['#acp-definition-popup'], 3741 ['#acp-dictionary-toast'], 3742 ['#acp-scan-overlay'], 3743 ['.asw-widget-button-top'], 3744 ], 3745 }) 3746 .then(function (results) { 3747 // Now safe to show overlay after scan completes 3748 showScanOverlay('Processing scan resultsâ¦'); 3749 var extra = runWcag22Checks(); 3750 if (!results.violations) results.violations = []; 3751 if (!results.incomplete) results.incomplete = []; 3752 // Scanner stores customChecks separately; merge into axe arrays so 3753 // buildAxeScanSummary (customChecks: []) still surfaces them. 3754 results.violations = results.violations.concat(extra.violations || []); 3755 results.incomplete = results.incomplete.concat(extra.incomplete || []); 3756 3757 // List rule only: axe often stores just the opening <ul> tag. 3758 // Re-serialize with direct children so the report/AI Fixes show the real issue. 3759 enrichListViolationNodes(results); 3760 3761 notifyScanOpener({ 3762 type: 'accesspro-axe-scan', 3763 token: token, 3764 url: window.location.href, 3765 results: results, 3766 }); 3767 }) 3768 .catch(function (err) { 3769 showScanOverlay('Scan failed'); 3770 notifyScanOpener({ 3771 type: 'accesspro-axe-scan-error', 3772 token: token, 3773 message: err && err.message ? err.message : 'Accessibility scan failed', 3774 }); 3775 }); 3776 } 3777 3778 /** 3779 * Optimize axe `list` node payloads only (no other rules). 3780 * Horizon overflow-list / ul[part=list] failures need children in HTML 3781 * so merchants see role=presentation / non-li children clearly. 3782 */ 3783 function enrichListViolationNodes(results) { 3784 var violations = results && results.violations; 3785 if (!violations || !violations.length) return; 3786 3787 function queryInRoot(root, sel) { 3788 if (!root || !sel) return null; 3789 try { 3790 return root.querySelector(sel); 3791 } catch (e) { 3792 return null; 3793 } 3794 } 3795 3796 function resolveShadowPath(path) { 3797 if (!path) return null; 3798 if (typeof path === 'string') { 3799 return ( 3800 queryInRoot(document, path) || 3801 queryDeepAll(path)[0] || 3802 null 3803 ); 3804 } 3805 if (!Array.isArray(path) || !path.length) return null; 3806 3807 // Nested shadow path: ["host", "inner"] or [["host", "inner"]] 3808 var steps = path; 3809 if (steps.length === 1 && Array.isArray(steps[0])) { 3810 steps = steps[0]; 3811 } 3812 3813 var ctx = document; 3814 var el = null; 3815 for (var i = 0; i < steps.length; i++) { 3816 var step = steps[i]; 3817 if (Array.isArray(step)) { 3818 el = resolveShadowPath(step); 3819 } else { 3820 el = queryInRoot(ctx, String(step)); 3821 if (!el && ctx === document) { 3822 el = queryDeepAll(String(step))[0] || null; 3823 } 3824 } 3825 if (!el) return null; 3826 ctx = el.shadowRoot || el; 3827 } 3828 return el; 3829 } 3830 3831 function queryDeepAll(sel) { 3832 var out = []; 3833 function walk(root) { 3834 if (!root || !root.querySelectorAll) return; 3835 try { 3836 Array.prototype.push.apply(out, root.querySelectorAll(sel)); 3837 } catch (e) { 3838 /* invalid selector */ 3839 } 3840 var all = root.querySelectorAll ? root.querySelectorAll('*') : []; 3841 for (var i = 0; i < all.length; i++) { 3842 if (all[i].shadowRoot) walk(all[i].shadowRoot); 3843 } 3844 } 3845 walk(document); 3846 return out; 3847 } 3848 3849 function serializeChildSnippet(child) { 3850 if (!child || !child.tagName) return ''; 3851 var tag = child.tagName.toLowerCase(); 3852 var role = (child.getAttribute && child.getAttribute('role')) || ''; 3853 var part = (child.getAttribute && child.getAttribute('part')) || ''; 3854 var cls = (child.getAttribute && child.getAttribute('class')) || ''; 3855 var open = 3856 '<' + 3857 tag + 3858 (role ? ' role="' + role + '"' : '') + 3859 (part ? ' part="' + part + '"' : '') + 3860 (cls 3861 ? ' class="' + 3862 String(cls) 3863 .trim() 3864 .split(/\s+/) 3865 .slice(0, 3) 3866 .join(' ') + 3867 '"' 3868 : '') + 3869 '>'; 3870 var text = (child.textContent || '').replace(/\s+/g, ' ').trim().slice(0, 40); 3871 return open + (text ? text : 'â¦') + '</' + tag + '>'; 3872 } 3873 3874 function serializeListHtml(listEl) { 3875 if (!listEl || !listEl.tagName) return ''; 3876 var tag = listEl.tagName.toLowerCase(); 3877 if (tag !== 'ul' && tag !== 'ol') return ''; 3878 var openMatch = String(listEl.outerHTML || '').match(/^<[^>]+>/); 3879 var openTag = openMatch ? openMatch[0] : '<' + tag + '>'; 3880 var children = Array.prototype.slice.call(listEl.children || []).slice(0, 10); 3881 if (!children.length) return openTag; 3882 var lines = children.map(function (child) { 3883 return ' ' + serializeChildSnippet(child); 3884 }); 3885 if ((listEl.children || []).length > 10) { 3886 lines.push(' <!-- ⦠' + (listEl.children.length - 10) + ' more -->'); 3887 } 3888 return openTag + '\n' + lines.join('\n') + '\n</' + tag + '>'; 3889 } 3890 3891 function findListFallback() { 3892 var candidates = queryDeepAll('ul[part="list"], overflow-list ul, ul, ol'); 3893 var withBad = candidates.filter(function (listEl) { 3894 return Array.prototype.some.call(listEl.children || [], function (child) { 3895 var role = (child.getAttribute && child.getAttribute('role')) || ''; 3896 var t = (child.tagName || '').toLowerCase(); 3897 return ( 3898 role === 'presentation' || 3899 role === 'none' || 3900 (t !== 'li' && t !== 'script' && t !== 'template' && t !== 'style') 3901 ); 3902 }); 3903 }); 3904 return withBad.length === 1 ? withBad[0] : null; 3905 } 3906 3907 violations.forEach(function (v) { 3908 if (!v || v.id !== 'list') return;
3909 (v.nodes || []).forEach(function (node) { 3910 if (!node) return; 3911 var hintHtml = String(node.html || ''); 3912 var el = resolveShadowPath(node.target); 3913 3914 // Flat axe targets like ["ul"] are too generic â prefer part=list from html hint. 3915 if ( 3916 el && 3917 /part\s*=\s*["']list["']/i.test(hintHtml) && 3918 !(el.getAttribute && el.getAttribute('part') === 'list') 3919 ) { 3920 var partLists = queryDeepAll('ul[part="list"]'); 3921 if (partLists.length === 1) el = partLists[0]; 3922 else if (partLists.length > 1) { 3923 var badPart = partLists.filter(function (listEl) { 3924 return Array.prototype.some.call(listEl.children || [], function (child) { 3925 var role = (child.getAttribute && child.getAttribute('role')) || ''; 3926 return role === 'presentation' || role === 'none'; 3927 }); 3928 }); 3929 if (badPart.length === 1) el = badPart[0]; 3930 } 3931 } 3932 3933 if (el && el.tagName) { 3934 var t = el.tagName.toLowerCase(); 3935 if (t !== 'ul' && t !== 'ol' && el.closest) { 3936 el = el.closest('ul, ol') || el; 3937 } 3938 } 3939 if (!el || !el.tagName || !/^(UL|OL)$/.test(el.tagName)) { 3940 el = findListFallback(); 3941 } 3942 if (!el) return; 3943 3944 var better = serializeListHtml(el); 3945 if (better && better.length > hintHtml.length) { 3946 node.html = better.slice(0, 2500); 3947 } 3948 3949 // Prefer a stable, actionable selector for Horizon chrome lists. 3950 if (el.getAttribute && el.getAttribute('part') === 'list') { 3951 node.target = ['ul[part="list"]']; 3952 } 3953 }); 3954 }); 3955 } 3956 3957 function notifyScanOpener(payload) { 3958 if (window.opener && payload.type === 'accesspro-axe-scan-error') { 3959 var jobId = new URLSearchParams(window.location.search).get('acp_job'); 3960 showScanOverlay('Scan failed'); 3961 window.opener.postMessage( 3962 { 3963 type: 'accesspro-axe-scan-progress', 3964 jobId: jobId, 3965 error: payload.message || 'Accessibility scan failed', 3966 }, 3967 '*', 3968 ); 3969 setTimeout(function () { 3970 window.close(); 3971 }, 400); 3972 return; 3973 } 3974 submitScanResult(payload); 3975 } 3976 3977 var script = document.createElement('script'); 3978 // cdnjs only goes up to 4.10.3; jsDelivr serves 4.11.1 (matches accessibility-scanner). 3979 script.src = 'https://cdn.jsdelivr.net/npm/[email protected]/axe.min.js'; 3980 script.onload = function () { 3981 waitForFullPageLoad().then(runAxeScan); 3982 }; 3983 script.onerror = function () { 3984 notifyScanOpener({ 3985 type: 'accesspro-axe-scan-error', 3986 token: token, 3987 message: 'Failed to load axe-core', 3988 }); 3989 }; 3990 document.head.appendChild(script); 3991 })(); 3992</script>
3992 3993 3994 3995<style> 3996 .accesspro-icon { 3997 display: inline-flex; 3998 flex-direction: column; 3999 align-items: center; 4000 gap: 4px; 4001 cursor: pointer; 4002 text-decoration: none; 4003 vertical-align: middle; 4004 color: var(--acp-trigger-color, #23185c); 4005 } 4006 4007 /* Icon-only triggers should not reserve a text line box. */ 4008 .accesspro-icon[icon='true']:not(.acp-trigger--has-text) { 4009 line-height: 0; 4010 } 4011 4012 .accesspro-icon .asw-menu-btn-container { 4013 flex-shrink: 0; 4014 } 4015 4016 /* The cloned icon is inert; the host element is the control. */ 4017 .accesspro-icon .asw-menu-btn-container, 4018 .accesspro-icon .asw-menu-btn { 4019 pointer-events: none; 4020 } 4021</style>
4022<script> 4023 (function () { 4024 var SELECTOR = '.accesspro-icon'; 4025 var BOUND = 'acpTriggerBound'; 4026 var FILLED = 'acpTriggerFilled'; 4027 var settings = window.accessProWidgetSettings || {}; 4028 var inlineMode = !!settings.hide_floating_icon; 4029 var fallbackReady = inlineMode; 4030 document.documentElement.style.setProperty( 4031 '--acp-trigger-color', 4032 settings.icon_color_fill || '#23185c' 4033 ); 4034 4035 /* ---- open the widget ------------------------------------------------ */ 4036 /* main.js is deferred, so iconInstance may not exist on an early click. */ 4037 function openWidget(event) { 4038 if (event) event.preventDefault(); 4039 if (window.iconInstance) { 4040 window.iconInstance.toggleWidget(); 4041 return; 4042 } 4043 var waited = 0; 4044 var timer = setInterval(function () { 4045 if (window.iconInstance) { 4046 clearInterval(timer); 4047 window.iconInstance.toggleWidget(); 4048 } else if ((waited += 100) >= 10000) { 4049 clearInterval(timer); 4050 console.error('[AccessPro] Widget did not load â cannot open menu.'); 4051 } 4052 }, 100); 4053 } 4054 4055 /* ---- clone the floating icon ---------------------------------------- */ 4056 function buildIcon() { 4057 var source = document.querySelector('#Access-Pro-Icon .asw-menu-btn-container'); 4058 if (!source) return null; 4059 4060 var clone = source.cloneNode(true); 4061 4062 // Strip ids: the widget mutates apMenuIconStroke / apMenuIconFill by id 4063 // when contrast modes change, and duplicates would shadow the original. 4064 clone.removeAttribute('id'); 4065 clone.querySelectorAll('[id]').forEach(function (node) { 4066 node.removeAttribute('id'); 4067 }); 4068 4069 // The dismiss "X" and loading dots belong to the floating icon only. 4070 clone.querySelectorAll('.asw-hide-widget-icon, .acp-floating-dots').forEach(function (node) { 4071 node.remove(); 4072 }); 4073 4074 // A <button> nested inside the merchant's <a>
4074 is invalid HTML. Swap it 4075 // for a <span> carrying the same classes so the widget CSS still applies. 4076 var button = clone.querySelector('.asw-menu-btn'); 4077 if (button) { 4078 var span = document.createElement('span'); 4079 span.className = button.className; 4080 span.setAttribute('style', button.getAttribute('style') || ''); 4081 span.setAttribute('aria-hidden', 'true'); 4082 while (button.firstChild) span.appendChild(button.firstChild); 4083 button.parentNode.replaceChild(span, button); 4084 } 4085 4086 return clone; 4087 } 4088 4089 4090 /* ---- fallback: build the icon from settings ------------------------- */ 4091 /* Used when the floating icon is not in the DOM â the widget skips 4092 render() entirely if the visitor dismissed it, if a page/country filter 4093 bails out of init(), or if trigger display is set to title-only. 4094 Geometry below mirrors render() in main.js exactly. */ 4095 var GLYPHS = { 4096 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>', 4097 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>', 4098 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>', 4099 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>', 4100 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>', 4101 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">
4101<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>' 4102 }; 4103 4104 var SIZES = { 4105 small: 40, '0.5x': 40, 4106 medium: 50, '1x': 50, default: 50, 4107 large: 60, '1.5x': 60, 4108 extraLarge: 75, '2x': 75 4109 }; 4110 4111 function buildIconFromSettings() { 4112 var s = window.accessProWidgetSettings || {}; 4113 var style = s.icon_style || 'thick'; 4114 var square = s.icon_shape === 'square'; 4115 // Defaults must match mergeSettings() in main.js and DEFAULT_SETTINGS in 4116 // app/constants/settings.js â both use #23185c for stroke AND fill â so a 4117 // metafield missing these keys renders identically on either path. 4118 var stroke = s.icon_color_stroke || '#23185c'; 4119 var fill = s.icon_color_fill || '#23185c'; 4120 var px = SIZES[s.icon_size] || 50; 4121 var solid = style === 'solid'; 4122 var thin = style === 'thin'; 4123 var shapes = ''; 4124 4125 if (square) { 4126 var sizes = [ 4127 [solid ? 100 : 98, stroke, 12], 4128 [solid ? 0 : thin ? 86 : 82, '#ffffff', 10], 4129 [solid || thin ? 80 : 70, fill, 8] 4130 ];
4131 sizes.forEach(function (d) { 4132 if (!d[0]) return; 4133 var off = (100 - d[0]) / 2; 4134 shapes += '<rect x="' + off + '" y="' + off + '" width="' + d[0] + '" height="' + d[0] + 4135 '" rx="' + d[2] + '" ry="' + d[2] + '" fill="' + d[1] + '" />'; 4136 }); 4137 } else { 4138 [ 4139 [solid ? 50 : 49, stroke], 4140 [solid ? 0 : thin ? 43 : 41, '#ffffff'], 4141 [solid || thin ? 40 : 35, fill] 4142 ].forEach(function (d) { 4143 shapes += '<circle cx="50" cy="50" r="' + d[0] + '" fill="' + d[1] + '" />'; 4144 }); 4145 } 4146 4147 var name = GLYPHS[s.icon] ? s.icon : 'default'; 4148 var box = document.createElement('div'); 4149 box.className = 'asw-menu-btn-container'; 4150 box.setAttribute('style', 'position:relative;width:' + px + 'px;height:' + px + 'px;'); 4151 // The widget stylesheet may not be loaded when render() never ran, so 4152 // every layout-critical rule is inlined rather than left to the classes. 4153 box.innerHTML = 4154 '<span class="asw-menu-btn' + (square ? ' asw-menu-btn--square' : '') + '" aria-hidden="true"' + 4155 ' style="position:relative;display:flex;align-items:center;justify-content:center;' + 4156 'width:100%;height:100%;background:transparent;border:none;padding:0;margin:0;' + 4157 'border-radius:' + (square ? '12%' : '50%') + ';">' + 4158 '<svg class="asw-outer-svg" viewBox="0 0 100 100" aria-hidden="true" focusable="false"' + 4159 ' style="width:100%;height:100%;display:block;">' + shapes + '</svg>' + 4160 GLYPHS[name] + '</span>'; 4161 4162 var glyph = box.querySelector('.asw-main-icon'); 4163 if (glyph) { 4164 // .asw-main-icon sizes to 50% via CSS; the default glyph overrides to 45% inline. 4165 var pct = name === 'default' ? '45%' : '50%'; 4166 glyph.setAttribute( 4167 'style', 4168 'position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);' + 4169 'width:' + pct + ';height:' + pct + ';fill:#ffffff;z-index:100;' 4170 ); 4171 } 4172 return box; 4173 } 4174 4175 /* ---- wire one element ----------------------------------------------- */ 4176 function bind(el) { 4177 if (el.dataset[BOUND]) return; 4178 el.dataset[BOUND] = '1'; 4179 4180 el.addEventListener('click', openWidget); 4181 el.addEventListener('keydown', function (event) { 4182 if (event.key === 'Enter' || event.key === ' ') openWidget(event); 4183 }); 4184 4185 // A non-anchor host (div/span) needs explicit button semantics. 4186 var tag = el.tagName.toLowerCase(); 4187 if (tag !== 'a' && tag !== 'button') { 4188 if (!el.hasAttribute('role')) el.setAttribute('role', 'button'); 4189 if (!el.hasAttribute('tabindex')) el.setAttribute('tabindex', '0'); 4190 } 4191 4192 if (el.textContent.trim()) el.classList.add('acp-trigger--has-text'); 4193 } 4194 4195 function fillIcon(el, allowFallback) { 4196 if (el.dataset[FILLED]) return true; 4197 if (el.getAttribute('icon') !== 'true') return true; 4198 4199 // Prefer cloning the live icon; fall back to rebuilding from settings. 4200 var icon = buildIcon(); 4201 if (!icon && (allowFallback || inlineMode)) icon = buildIconFromSettings(); 4202 if (!icon) return false; 4203 4204 // The clone's size lives only in the container's inline style. If the 4205 // widget rendered without one, size it from settings so it cannot 4206 // collapse to zero height inside the merchant's layout. 4207 if (!/\bheight\s*:/.test(icon.getAttribute('style') || '')) { 4208 var px = SIZES[(window.accessProWidgetSettings || {}).icon_size] || 50; 4209 icon.style.position = 'relative'; 4210 icon.style.width = px + 'px'; 4211 icon.style.height = px + 'px'; 4212 } 4213 4214 el.insertBefore(icon, el.firstChild); 4215 el.dataset[FILLED] = '1'; 4216 4217 // Icon with no visible text needs an accessible name. 4218 if (!el.textContent.trim() && !el.hasAttribute('aria-label')) { 4219 el.setAttribute('aria-label', 'Open Accessibility Menu'); 4220 } 4221 return true; 4222 } 4223 4224 /* ---- scan ------------------------------------------------------------ */ 4225 /* Clicks are wired immediately so the trigger works before the icon 4226 renders;
4226 icons are filled in once the floating icon exists. */ 4227 var pendingIcons = false; 4228 4229 function scan(allowFallback) { 4230 pendingIcons = false; 4231 document.querySelectorAll(SELECTOR).forEach(function (el) { 4232 bind(el); 4233 if (!fillIcon(el, allowFallback)) pendingIcons = true; 4234 }); 4235 } 4236 4237 function start() { 4238 scan(inlineMode); 4239 4240 // Inline mode hides the floating icon, so build from settings immediately. 4241 if (inlineMode) { 4242 // console.log('[AccessPro] Inline triggers â using widget settings for icons'); 4243 } 4244 4245 // The floating icon only renders after the settings request resolves and 4246 // the widget chunk loads, so poll until it appears. If it never does, 4247 // stop waiting and build the icon from settings instead. 4248 var FALLBACK_AFTER = 2500; 4249 var waited = 0; 4250 var timer = setInterval(function () { 4251 if (!pendingIcons) { 4252 clearInterval(timer); 4253 return; 4254 } 4255 waited += 200; 4256 if (waited < FALLBACK_AFTER) { 4257 scan(false); 4258 return; 4259 } 4260 fallbackReady = true; 4261 clearInterval(timer); 4262 scan(true); 4263 if (pendingIcons) { 4264 console.warn('[AccessPro] Could not render inline icons.'); 4265 } 4266 }, 200); 4267 4268 // Catch triggers added later (theme editor re-renders, dynamic sections). 4269 // Debounced: the widget itself mutates the DOM heavily as it renders. 4270 if (window.MutationObserver) { 4271 var queued = false; 4272 new window.MutationObserver(function () { 4273 if (queued) return; 4274 queued = true; 4275 requestAnimationFrame(function () { 4276 queued = false; 4277 scan(fallbackReady || inlineMode); 4278 }); 4279 }).observe(document.body, { childList: true, subtree: true }); 4280 } 4281 } 4282 4283 if (document.readyState === 'loading') { 4284 document.addEventListener('DOMContentLoaded', start); 4285 } else { 4286 start(); 4287 } 4288 })(); 4289</script>
4289 4290 4291 4292</div><div id="shopify-block-AZFd6aGFnS21FS1hVa__13768625480086291342" class="shopify-block shopify-app-block">
4292<script> 4293 window['ShopifyForms'] = { 4294 ...window['ShopifyForms'], 4295 currentPageType: "blog" 4296 }; 4297</script>
4297 4298 4299 4300</div><div id="shopify-block-ANThZazMwNGNyV05Va__18020446634262408591" class="shopify-block shopify-app-block"> 4301 4302 4303</div>
4303<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
4303 4304</body> 4305</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.