1<!doctype html> 2<html class="no-js" lang="en"> 3<head>
3<script data-source-attribution="shopify.event_observer.bootstrap"> 4(function(){let e=navigator,t=`prototype`,n=`sendBeacon`,r=e[n],i=fetch,a=XMLHttpRequest[t],{open:o,send:s}=a,c=`EventListener`,l=`add${c}`,u=`remove${c}`,d=EventTarget[t],f=d[l],p=d[u],m=e=>Error((e=document.currentScript)&&[e?.src,e?.id||e?.dataset?.sourceAttribution]),h=(e=[],t=0)=>(e.p=n=>e[t++%1e3]=n,[e,t=>(e.forEach(e.p=t),e.length=0)]),[g,_]=h(),[v,y]=h(),b,x=new WeakMap,S=e=>e&&g.p([e,b||[m()]]);d[l]=function(e,t,n){let r=this,i=t?.handleEvent||t,a=x.get(t),o=m();i?.call&&!a&&x.set(t,a=function(e){b=[o,e.type];try{i.call(t==i?this:t,e)}finally{b=null}}),v.p([e,o,a,r?.tagName||r+``,r?.id]),f.call(r,e,a||t,n)},d[u]=function(e,t,n){p.call(this,e,x.get(t)||t,n)},a.open=function(e,t){x.set(this,[t+``,e]),o.apply(this,arguments)},a.send=function(e){S(x.get(this)),s.call(this,e)},fetch=(e,t)=>(S([(e?.url||e)+``,t?.method]),i(e,t)),e[n]=(t,n)=>(S([t+``,``]),r.call(e,t,n)),setTimeout(()=>import("//6666equinesupplements.com/cdn/shopifycloud/storefront/assets/storefront/event_observer_reporter-ed358274.js").then(e=>e.$(_,y,f,i,`72216215843`)))})(); 5//# sourceURL=event-observer-collector.js 6</script>
6 7 8 <meta charset="utf-8"> 9 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 10 <meta name="viewport" content="width=device-width,initial-scale=1"> 11 <meta name="theme-color" content=""> 12 <link rel="canonical" href="https://6666equinesupplements.com/collections/all-products"> 13 <link rel="dns-prefetch preconnect" href="https://cdn.shopify.com" crossorigin> 14 <link rel="dns-prefetch preconnect" href="https://www.googletagmanager.com" crossorigin> 15 <link rel="dns-prefetch preconnect" href="https://www.google.com" crossorigin> 16 <link rel="dns-prefetch preconnect" href="https://platform-api.sharethis.com" crossorigin> 17 <link rel="dns-prefetch preconnect" href="https://cdn.pagesense.io" crossorigin> 18 19 <!-- Fonts --><link rel="preload" href="/cdn/shop/files/OpenSans-VariableFont_wdthwght.woff2" as="font" type="font/woff2" crossorigin> 20 <link rel="preload" href="/cdn/shop/files/PlayfairDisplay-VariableFont_wght.woff2" as="font" type="font/woff2" crossorigin> 21 <link rel="preload" href="/cdn/shop/files/cardo-v19-latin-700.woff2" as="font" type="font/woff2" crossorigin> 22 <link rel="preload" href="/cdn/shop/files/cardo-v19-latin-regular.woff2" as="font" type="font/woff2" crossorigin><style id="fonts"> 23 /* ============ Cardo ============ */ 24/* cardo-regular - latin */ 25@font-face { 26 font-family: 'Cardo Regular Times New Roman Fallback'; 27 src: local(Times New Roman); 28 size-adjust: 108%; 29 ascent-override: 93%; 30 descent-override: 28%; 31 line-gap-override: normal; 32} 33@font-face { 34 font-family: "Cardo-fallback"; 35 size-adjust: 105.03%; 36 ascent-override: 108%; 37 src: local("Times New Roman"); 38} 39@font-face { 40 font-display: swap; 41 font-family: 'Cardo'; 42 font-style: normal; 43 font-weight: 400; 44 src: url(/cdn/shop/files/cardo-v19-latin-regular.woff2) format('woff2'); 45} 46/* cardo-italic - latin */ 47@font-face { 48 font-display: swap; 49 font-family: 'Cardo'; 50 font-style: italic; 51 font-weight: 400; 52 src: url(/cdn/shop/files/cardo-v19-latin-italic.woff2) format('woff2'); 53} 54/* cardo-700 - latin */ 55@font-face { 56 font-display: swap; 57 font-family: 'Cardo'; 58 font-style: normal; 59 font-weight: 700; 60 src: url(/cdn/shop/files/cardo-v19-latin-700.woff2) format('woff2'); 61} 62/* ============ Open Sans ============ */ 63@font-face { 64 font-family: 'Open Sans Verdana Fallback'; 65 src: local(Verdana); 66 size-adjust: 93%; 67 ascent-override: 114%; 68 descent-override: 32%; 69 line-gap-override: normal; 70} 71@font-face { 72 font-family: "Open Sans-fallback"; 73 size-adjust: 105.41000000000004%; 74 ascent-override: 105%; 75 src: local("Arial"); 76} 77/* open-sans-italic - latin variable */ 78@font-face { 79 font-display: swap; 80 font-family: 'Open Sans'; 81 font-style: italic; 82 font-weight: 300 800; 83 src: url(/cdn/shop/files/OpenSans-Italic-VariableFont_wdthwght.woff2) format('woff2'); 84} 85/* open-sans-regular - latin variable */ 86@font-face { 87 font-display: swap; 88 font-family: 'Open Sans'; 89 font-style: normal; 90 font-weight: 300 800; 91 src: url(/cdn/shop/files/OpenSans-VariableFont_wdthwght.woff2) format('woff2'); 92} 93/* ============ Playfair Display ============ */ 94@font-face { 95 font-family: 'Playfair Display Georgia Fallback'; 96 src: local(Georgia); 97 size-adjust: 101%; 98 ascent-override: 106%; 99 descent-override: 28%; 100 line-gap-override: normal; 101} 102@font-face { 103 font-family: "Playfair Display-fallback"; 104 size-adjust: 111.19999999999999%; 105 ascent-override: 94%; 106 src: local("Times New Roman"); 107} 108/* playfair-display-italic - latin variable */ 109@font-face { 110 font-display: swap; 111 font-family: 'Playfair Display'; 112 font-style: italic; 113 font-weight: 400 900; 114 src: url(/cdn/shop/files/PlayfairDisplay-Italic-VariableFont_wght.woff2) format('woff2'); 115} 116/* playfair-display-regular - latin variable */ 117@font-face { 118 font-display: swap; 119 font-family: 'Playfair Display'; 120 font-style: normal; 121 font-weight: 400 900; 122 src: url(/cdn/shop/files/PlayfairDisplay-VariableFont_wght.woff2) format('woff2'); 123} 124 125 </style> 126 127 128<link rel="apple-touch-icon" sizes="180x180" href="//6666equinesupplements.com/cdn/shop/t/18/assets/apple-touch-icon.png?v=176819496519578792031764341726"> 129<link rel="icon" type="image/png" sizes="32x32" href="//6666equinesupplements.com/cdn/shop/t/18/assets/favicon-32x32.png?v=5169317329404840931764341726"> 130<link rel="icon" type="image/png" sizes="16x16" href="//6666equinesupplements.com/cdn/shop/t/18/assets/favicon-16x16.png?v=113698936435205087991764341726"> 131<link rel="manifest" href="//6666equinesupplements.com/cdn/shop/t/18/assets/site.webmanifest?v=153580803151396045051764341748"> 132<link rel="mask-icon" href="//6666equinesupplements.com/cdn/shop/t/18/assets/safari-pinned-tab.svg?v=38552867054439662531764341727" color="#a02122"> 133<meta name="msapplication-TileColor" content="#f0eee8"> 134<meta name="theme-color" content="#ffffff"> 135<meta name="msapplication-config" content="//6666equinesupplements.com/cdn/shop/t/18/assets/browserconfig.xml?v=101908022188984065321764341748"> 136 137 <title> 138 Legendary Equine Supplements 139 – 6666 Equine Supplements</title><meta name="description" content="Developed by the nation's best equine veterinarians and nutritionists, the formulas we developed were created to Renew, Restore, Refresh, and Revive all horses, at any age, across every discipline."> 140<meta property="og:site_name" content="6666 Equine Supplements"> 141<meta property="og:url" content="https://6666equinesupplements.com/collections/all-products"> 142<meta property="og:title" content="Legendary Equine Supplements"> 143<meta property="og:type" content="website"> 144<meta property="og:description" content="Developed by the nation's best equine veterinarians and nutritionists, the formulas we developed were created to Renew, Restore, Refresh, and Revive all horses, at any age, across every discipline."><meta property="og:image" content="http://6666equinesupplements.com/cdn/shop/collections/SixesSupplements_April25-62_1.jpg?v=1787972868"> 145 <meta property="og:image:secure_url" content="https://6666equinesupplements.com/cdn/shop/collections/SixesSupplements_April25-62_1.jpg?v=1787972868"> 146 <meta property="og:image:width" content="2828"> 147 <meta property="og:image:height" content="4234"> 148<meta name="twitter:card" content="summary_large_image"> 149<meta name="twitter:title" content="Legendary Equine Supplements"> 150<meta name="twitter:description" content="Developed by the nation's best equine veterinarians and nutritionists, the formulas we developed were created to Renew, Restore, Refresh, and Revive all horses, at any age, across every discipline."> 151 152 153
153<script src="//6666equinesupplements.com/cdn/shop/t/18/assets/constants.js?v=53064991202694776191764341727" defer="defer"></script>
153 154
154<script src="//6666equinesupplements.com/cdn/shop/t/18/assets/global.js?v=63395601196842886391771303614" defer="defer"></script>
154 155 156 157 <link href="//6666equinesupplements.com/cdn/shop/t/18/assets/main-DsbFigD6.css" rel="stylesheet" type="text/css" media="all" /> 158 159 160 161 162
162<script src="//6666equinesupplements.com/cdn/shop/t/18/assets/main-Dl_ueNQg.js" type="module" crossorigin="anonymous"></script>
162 163
164<script id="store"> 165 document.addEventListener('alpine:init', () => { 166 Alpine.store('theme.liquid', { 167 cart: {"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"USD","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0}, 168 }); 169 Alpine.store('customer', { 170 customer: null 171 }); 172}); 173 </script>
173 174 175
175<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
175<meta name="google-site-verification" content="qG1kUVLjkl5fbvcE8W7NJ6SlTpdTjXBLONeapgggz9s"> 176<meta name="facebook-domain-verification" content="mw7sa72ksd3qrcaoo8wz1w4ax129to"> 177<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/72216215843/digital_wallets/dialog"> 178<meta id="in-context-paypal-metadata" data-shop-id="72216215843" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD"> 179<link rel="ucp" href="/.well-known/ucp" version="2026-08-25"><link rel="alternate" type="application/atom+xml" title="Feed" href="/collections/all-products.atom" /> 180<link rel="alternate" type="application/json+oembed" href="https://6666equinesupplements.com/collections/all-products.oembed">
181<script async="async" src="/checkouts/internal/preloads.js?locale=en-US"></script>
181 182<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
183<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&shop_id=72216215843" crossorigin="anonymous"></script>
vendor: 1 bytes, line 183
183
184<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":72216215843,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/72216215843","merchantName":"6666 Equine Supplements","requiredBillingContactFields":["postalAddress","email"],"requiredShippingContactFields":["postalAddress","email"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","discover","amex","elo","jcb"],"total":{"type":"pending","label":"6666 Equine Supplements","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 184
184
185<script id="shopify-features" type="application/json">{"accessToken":"e062e84e97db0d28c1c27ca6cadf83c4","betas":["rich-media-storefront-analytics"],"domain":"6666equinesupplements.com","predictiveSearch":true,"shopId":72216215843,"locale":"en"}</script>
vendor: 1 bytes, line 185
185
186<script>var Shopify = Shopify || {}; 187Shopify.shop = "6666s-ranch-nutriments-supply-shop.myshopify.com"; 188Shopify.locale = "en"; 189Shopify.currency = {"active":"USD","rate":"1.0"}; 190Shopify.country = "US"; 191Shopify.theme = {"name":"6666's Production Theme","id":182238544163,"schema_name":"6666's Theme","schema_version":"2.2.0","theme_store_id":null,"role":"main"}; 192Shopify.theme.handle = "null"; 193Shopify.theme.style = {"id":null,"handle":null}; 194Shopify.cdnHost = "6666equinesupplements.com/cdn"; 195Shopify.routes = Shopify.routes || {}; 196Shopify.routes.root = "/"; 197Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 198Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 199Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 200Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 200
200
201<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 201
201
202<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 202
202
203<script> 204 window.ShopifyPay = window.ShopifyPay || {}; 205 window.ShopifyPay.apiHost = "shop.app\/pay"; 206 window.ShopifyPay.redirectState = null; 207</script>
vendor: 1 bytes, line 207
207
208<script> 209 window.Shopify = window.Shopify || {}; 210 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 211 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 212 window.Shopify.SignInWithShop.eligible = true; 213</script>
vendor: 1 bytes, line 213
213
214<script id="shop-js-analytics" type="application/json">{"pageType":"collection"}</script>
vendor: 1 bytes, line 214
214
215<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 215
215
216<script type="module"> 217 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 218 219 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 220 221</script>
vendor: 1 bytes, line 221
221
222<script> 223 window.Shopify = window.Shopify || {}; 224 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 225 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"]}; 226</script>
vendor: 1 bytes, line 226
226
227<script>(function() { 228 var isLoaded = false; 229 function asyncLoad() { 230 if (isLoaded) return; 231 isLoaded = true; 232 var urls = ["https:\/\/loox.io\/widget\/2FTak8OAiF\/loox.1753207192469.js?shop=6666s-ranch-nutriments-supply-shop.myshopify.com"]; 233 for (var i = 0; i < urls.length; i++) { 234 var s = document.createElement('script'); 235 s.type = 'text/javascript'; 236 s.async = true; 237 s.src = urls[i]; 238 var x = document.getElementsByTagName('script')[0]; 239 x.parentNode.insertBefore(s, x); 240 } 241 }; 242 if(window.attachEvent) { 243 window.attachEvent('onload', asyncLoad); 244 } else { 245 window.addEventListener('load', asyncLoad, false); 246 } 247})();</script>
vendor: 1 bytes, line 247
247
248<script id="__st">var __st={"a":72216215843,"offset":-18000,"reqid":"10aa7f81-9f22-4ac9-bd52-43a3cea39e07-1791510349","pageurl":"6666equinesupplements.com\/collections\/all-products","u":"eb114c38082c","p":"collection","rtyp":"collection","rid":457085485347};</script>
vendor: 1 bytes, line 248
248
249<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 249
249
250<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 250
250
251<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//6666equinesupplements.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 251
251
252<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 = "//6666equinesupplements.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>
252<script crossorigin="anonymous" defer="defer" src="//6666equinesupplements.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-f0e26bdf.js?v=20250812"></script>
vendor: 1 bytes, line 252
252
253<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 253
253
254<script> 255 window.Shopify = window.Shopify || {}; 256 window.Shopify.MCP = window.Shopify.MCP || {}; 257 window.Shopify.MCP.enabled = true; 258 window.Shopify.MCP.shop = "6666s-ranch-nutriments-supply-shop.myshopify.com"; 259 window.Shopify.MCP.mcpEndpoint = "https:\/\/6666equinesupplements.com\/api\/mcp"; 260 window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n - What is your return policy?\n - What is your shipping policy?\n - What is your phone number?\n - What are your hours of operation?\"\nSet policy_types to also get the store's written policies (full text and URL).\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."},"policy_types":{"type":"array","items":{"type":"string","enum":["refund","shipping","privacy","terms_of_service","terms_of_sale","subscription","legal_notice","contact"]},"description":"Policy kinds to fetch, chosen from the user's question â e.g. [\"refund\"] for returns\/exchanges\/damaged items, [\"contact\"] for phone\/hours\/address. Include every kind the question touches. Omit it to get only FAQ answers."}},"required":["query"]}}]; 261</script>
vendor: 1 bytes, line 261
261
262<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("\/\/6666equinesupplements.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 263</script>
vendor: 1 bytes, line 263
263
264<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://6666equinesupplements.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 265</script>
vendor: 1 bytes, line 265
265
266<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 267 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); 268</script>
vendor: 1 bytes, line 268
268
269<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})}})); 270</script>
vendor: 1 bytes, line 270
270
271<script id='scb4127' type='text/javascript' async='' src='https://6666equinesupplements.com/cdn/shopifycloud/privacy-banner/storefront-banner.js'></script>
271<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://6666equinesupplements.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 272<style id="shopify-accelerated-checkout-cart"> 273 #shopify-buyer-consent { 274 margin-top: 1em; 275 display: inline-block; 276 width: 100%; 277} 278 279#shopify-buyer-consent.hidden { 280 display: none; 281} 282 283#shopify-subscription-policy-button { 284 background: none; 285 border: none; 286 padding: 0; 287 text-decoration: underline; 288 font-size: inherit; 289 cursor: pointer; 290} 291 292#shopify-subscription-policy-button::before { 293 box-shadow: none; 294} 295 296 </style> 297
298<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
298 299 300 <!-- Google Tag Manager -->
301<script>
vendor: 339 bytes, lines 301-305
301(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 302 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 303 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 304 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 305})(window,document,'script','dataLayer','
305GTM-WM2BDS5N
vendor: 3 bytes, line 305
305');
305</script>
305 306<!-- End Google Tag Manager --> 307 308<!-- Zoho -->
309<script src="https://cdn.pagesense.io/js/fullbuckethealth/07e84434f4744065bf4cd8373945cd54.js" async="async"></script>
309 310<!-- End Zoho --> 311 312<!-- Roku pixel -->
313<script> 314 !function(e,r){if(!e.rkp){var t=e.rkp=function(){ 315 var e=Array.prototype.slice.call(arguments) 316 ;e.push(Date.now()),t.eventProcessor?t.eventProcessor.apply(t,e):t.queue.push(e) 317 };t.initiatorVersion="1.0",t.queue=[],t.load=function(e){ 318 var t=r.createElement("script");t.async=!0,t.src=e 319 ;var n=r.getElementsByTagName("script")[0] 320 ;(n?n.parentNode:r.body).insertBefore(t,n)},rkp.load("https://cdn.ravm.tv/ust/dist/rkp.loader.js")} 321 }(window,document); 322 rkp("init","PaccJPhHPnWi"),rkp('event', 'PAGE_VIEW'); 323 rkp('event', 'PURCHASE'); rkp('event', 'SEARCH'); rkp('event', 'SIGN_UP'); rkp('event', 'ADD_PAYMENT_INFO'); rkp('event', 'INITIATE_CHECKOUT'); rkp('event', 'VIEW_CONTENT'); rkp('event', 'SUBSCRIBE'); 324</script>
324 325<!-- End Roku pixel --> 326 327 <!-- ShareThis --> 328 329 <!-- End ShareThis --> 330 331 <style data-shopify> 332 :root { 333 --fs-ltred: #ED1C24; 334 --fs-ltred-rgb: 237 28 36; 335 --fs-ltred-hsl: 358 85% 52%; 336 --fs-ltred-hsl-hover: 358 85% 45%; 337 338 --fs-red: #A02122; 339 --fs-red-rgb: 160 33 34; 340 --fs-red-hsl: 360 66% 38%; 341 --fs-red-hsl-hover: 360 66% 31%; 342 343 --fs-brown: #512421; 344 --fs-brown-rgb: 81 36 33; 345 --fs-brown-hsl: 4 42% 22%; 346 --fs-brown-hsl-hover: 4 42% 15%; 347 348 --fs-tan: #F0EEE8; 349 --fs-tan-rgb: 240 238 232; 350 --fs-tan-hsl: 45 21% 93%; 351 --fs-tan-hsl-full: hsl(var(--fs-tan-hsl)); 352 --fs-tan-hsl-hover: 45 21% 86%; 353 --fs-tan-hsl-hover-full: hsl(var(--fs-tan-hsl-hover)); 354 355 --fs-ltbrown: #70776D; 356 --fs-ltbrown-rgb: 112 119 109; 357 --fs-ltbrown-hsl: 102 4% 45%; 358 --fs-ltbrown-hsl-hover: 102 4% 38%; 359 360 --fs-dkgray: #333333; 361 --fs-dkgray-rgb: 51 51 51; 362 --fs-dkgray-hsl: 0 0% 20%; 363 --fs-dkgray-hsl-hover: 0 0% 13%; 364 365 --fs-black: #070808; 366 --fs-black-rgb: 7 8 8; 367 --fs-black-hsl: 180 7% 3%; 368 --fs-black-hsl-full: hsl(var(--fs-black-hsl)); 369 --fs-black-hsl-hover: 180 7% -4%; 370 --fs-black-hsl-hover-full: hsl(var(--btn-black-hsl-hover)); 371 372 --fs-white: #f9f9f9; 373 --fs-white-rgb: 249 249 249; 374 --fs-white-hsl: 0 0% 98%; 375 --fs-white-hsl-full: hsl(var(--fs-white-hsl)); 376 --fs-white-hsl-hover: 0 0% 91%; 377 --fs-white-hsl-hover-full: hsl(var(--fs-white-hsl-hover)); 378 379 --fs-green: #0EAD69; 380 --fs-green-rgb: 14 173 105; 381 --fs-green-hsl: 154 85% 37%; 382 --fs-green-hsl-hover: 154 85% 30%; 383 384 --font-heading: Playfair Display; 385 --font-subheading: Cardo; 386 --font-body: Open Sans; 387 388 389 --btn-bg-color: hsl(var(--fs-red-hsl)); 390 --btn-bg-color-hover: hsl(var(--fs-red-hsl-hover)); 391 392 --btn-font-color: hsl(var(--fs-tan-hsl)); 393 394 395 --alt-btn-bg-color: hsl(var(--fs-brown-hsl)); 396 --alt-btn-bg-color-hover: hsl(var(--fs-brown-hsl-hover)); 397 398 --alt-btn-font-color: hsl(var(--fs-tan-hsl)); 399 400 401 --accent-btn-bg-color: #039506; 402 --accent-btn-bg-color-hover: hsl(121 96% 23%); 403 --accent-btn-font-color: hsl(var(--fs-white-hsl)); 404 } 405 406 .plusbullet li { 407 list-style-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 2 24 21" fill="currentColor" class="w-6 h-6"><path fill-rule="evenodd" d="M12 5.25a.75.75 0 01.75.75v5.25H18a.75.75 0 010 1.5h-5.25V18a.75.75 0 01-1.5 0v-5.25H6a.75.75 0 010-1.5h5.25V6a.75.75 0 01.75-.75z" clip-rule="evenodd" /></svg>'); 408 } 409 .plusbullet li::marker { 410 font-size: 1.8em; 411 line-height: .1; 412 } 413 414 415 416 </style> 417 418 419
420<script id="schema-breadcrumblist" type="application/ld+json"> 421[ 422 { 423 "@context": "https://schema.org", 424 "@type": "BreadcrumbList", 425 "@id": "https:\/\/6666equinesupplements.com\/collections\/all-products#BreadcrumbList", 426 "numberOfItems": 2, 427 "itemListElement": [ 428 {"@type": "ListItem", "position": 1, "name": "Home", "item": "https://6666equinesupplements.com"}, 429 { 430 "@type": "ListItem", 431 "position": 2, 432 "name": "Legendary Equine Supplements", 433 "item": "https:\/\/6666equinesupplements.com\/collections\/all-products" 434 } 435 ] 436 } 437] 438</script>
438 439 440
441<script id="schema-webpage" type="application/ld+json"> 442{ 443 "@context": "https://schema.org", 444 "@type": "WebPage", 445 "name": "Legendary Equine Supplements", 446 "@id": "https:\/\/6666equinesupplements.com\/collections\/all-products#WebPage", 447 "url": "https:\/\/6666equinesupplements.com\/collections\/all-products","inLanguage": "en-US", 448 "description": "Developed by the nation's best equine veterinarians and nutritionists, the formulas we developed were created to Renew, Restore, Refresh, and Revive all horses, at any age, across every discipline.", 449 "isPartOf": { 450 "@type": "WebSite", 451 "@id": "https:\/\/6666equinesupplements.com#WebSite", 452 "url": "https:\/\/6666equinesupplements.com", 453 "name": "6666 Equine Supplements" 454 }, 455 456"publisher": { 457 "@type": "OnlineStore", 458 "@id": "https:\/\/6666equinesupplements.com#OnlineStore", 459 "name": "6666 Equine Supplements", 460 "url": "https:\/\/6666equinesupplements.com", 461 "logo": { 462 "@type": "ImageObject", 463 "url": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/logo-color.svg?v=1721833604\u0026width=512" 464 } 465 }, 466 "author": { 467 "@type": "OnlineStore", 468 "@id": "https:\/\/6666equinesupplements.com#OnlineStore", 469 "name": "6666 Equine Supplements", 470 "url": "https:\/\/6666equinesupplements.com", 471 "logo": { 472 "@type": "ImageObject", 473 "@id": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/logo-color.svg?v=1721833604#ImageObject", 474 "url": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/logo-color.svg?v=1721833604" 475 } 476 }, 477 "mainEntity": { 478 "@type": "CollectionPage", 479 "@id": "https:\/\/6666equinesupplements.com\/collections\/all-products#CollectionPage" 480 }, 481 "primaryImageOfPage": { 482 "@type": "ImageObject", 483 "@id": "https:\/\/6666equinesupplements.com\/cdn\/shop\/collections\/SixesSupplements_April25-62_1.jpg?v=1787972868#ImageObject", 484 "url": "https:\/\/6666equinesupplements.com\/cdn\/shop\/collections\/SixesSupplements_April25-62_1.jpg?v=1787972868" 485 }, 486 "datePublished": "2023-08-19T15:24:34-0500", 487 "dateModified": "2025-02-01T00:00:00-0600", 488 489 "speakable": { 490 "@type": "SpeakableSpecification", 491 "cssSelector": ["h1", "h2", "#main-content"] 492 } 493} 494</script>
494 495
496<script id="schema-offercatalog" type="application/ld+json"> 497{ 498 "@context": "https://schema.org", 499 "@type": "OfferCatalog", 500 "name": "Legendary Equine Supplements", 501 "@id": "https:\/\/6666equinesupplements.com\/collections\/all-products#OfferCatalog", 502 "url": "https:\/\/6666equinesupplements.com\/collections\/all-products", 503 "description": "Developed by the nation's best equine veterinarians and nutritionists, the formulas we developed were created to Renew, Restore, Refresh, and Revive all horses, at any age, across every discipline.", 504 "numberOfItems": 5, 505 "itemListOrder": "https://schema.org/ItemListUnordered", 506 "offeredBy": { 507 "@type": "OnlineStore", 508 "name": "6666 Equine Supplements", 509 "@id": "https:\/\/6666equinesupplements.com#OnlineStore", 510 "url": "https:\/\/6666equinesupplements.com" 511 }, 512 "itemListElement": [ 513 { 514 "@type": "ProductGroup", 515 "name": "Equine Joint Health Pellets", 516 "@id": "https:\/\/6666equinesupplements.com\/products\/joint-pellet#ProductGroup", 517 "url": "https:\/\/6666equinesupplements.com\/products\/joint-pellet", 518 "productGroupID": 8126314643747, 519 "image": { 520 "@type": "ImageObject", 521 "@id": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/Transparent_Backgroun
521d_6666_ES_2025_Joint_Health_Pellets_60_Day_Front_copy.webp?v=1764791488\u0026width=1000#ImageObject", 522 "url": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/Transparent_Background_6666_ES_2025_Joint_Health_Pellets_60_Day_Front_copy.webp?v=1764791488\u0026width=1000" 523 }, 524 525 526 "aggregateRating": { 527 "@type": "AggregateRating", 528 "ratingValue": 5.0, 529 "reviewCount": 7, 530 "bestRating": 5, 531 "worstRating": 1 532 } 533, 534 "description": "Most joint supplements stop at cartilage. Ours adds Boswellia and a 15,500 mg postbiotic for the gut-joint connection. Vet formulated. Trusted on the ranch and in the arena.", 535 "brand": { 536 "@type": "Brand", 537 "name": "6666 Equine Supplements", 538 "@id": "https:\/\/6666equinesupplements.com\/pages\/about#Brand", 539 "url": "https:\/\/6666equinesupplements.com\/pages\/about" 540 541 ,"logo": { 542 "@type": "ImageObject", 543 "@id": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/logo-color.svg?v=1721833604#ImageObject", 544 "url": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/logo-color.svg?v=1721833604" 545 },"description": "Ranch-Tested \u0026 Approved Supplements for Horses in the Arena, Racetrack or Trail" 546,"slogan": "Legendary Equine Supplements" 547}, 548 "variesBy": ["Size"], 549 "hasVariant": [ 550 { 551 "@type": "Product", 552 "name": "Equine Joint Health Pellets - 60 Day Supply", 553 "@id": "https:\/\/6666equinesupplements.com\/products\/joint-pellet?variant=46018883256611#Product", 554 "url": "https:\/\/6666equinesupplements.com\/products\/joint-pellet?variant=46018883256611", 555 "sku": "RNJoint60", 556 "image": { 557 "@type": "ImageObject", 558 "@id": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/Transparent_Backgroun
558d_6666_ES_2025_Joint_Health_Pellets_60_Day_Front_copy.webp?v=1764791488\u0026width=1000#ImageObject", 559 "url": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/Transparent_Background_6666_ES_2025_Joint_Health_Pellets_60_Day_Front_copy.webp?v=1764791488\u0026width=1000" 560 },"size": "60 Day Supply", 561 "offers": { 562 "@type": "Offer", 563 "@id": "https:\/\/6666equinesupplements.com\/products\/joint-pellet?variant=46018883256611#Offer", 564 "url": "https:\/\/6666equinesupplements.com\/products\/joint-pellet?variant=46018883256611", 565 "priceCurrency": "USD", 566 "price": 181.66, 567 "priceValidUntil": "2027-10-08T20:45:49-0500", 568 "availability": "https://schema.org/InStock", 569 "itemCondition": "https://schema.org/NewCondition", 570 "hasMerchantReturnPolicy": { 571 "@type": "MerchantReturnPolicy", 572 "returnFees": "https://schema.org/FreeReturn", 573 "refundType": "https://schema.org/FullRefund", 574 "returnPolicyCountry": "US", 575 "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow", 576 "returnMethod": "https://schema.org/ReturnByMail", 577 "merchantReturnDays": 90, 578 "applicableCountry": "US", 579 "merchantReturnLink": "https:\/\/6666equinesupplements.com\/policies\/refund-policy" 580 }, 581 "seller": { 582 "@type": "OnlineStore", 583 "name": "6666 Equine Supplements", 584 "@id": "https:\/\/6666equinesupplements.com#OnlineStore", 585 "url": "https:\/\/6666equinesupplements.com" 586 } 587 } 588 }, 589 { 590 "@type": "Product", 591 "name": "Equine Joint Health Pellets - 120 Day Supply", 592 "@id": "https:\/\/6666equinesupplements.com\/products\/joint-pellet?variant=54176667042083#Product", 593 "url": "https:\/\/6666equinesupplements.com\/products\/joint-pellet?variant=54176667042083", 594 "sku": "RNJoint120", 595 "image": { 596 "@type": "ImageObject", 597 "@id": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/Transparent_Backgroun
597d_6666_ES_2025_Joint_Health_Pellets_120_Supply_Front_copy.webp?v=1776114994\u0026width=1000#ImageObject", 598 "url": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/Transparent_Background_6666_ES_2025_Joint_Health_Pellets_120_Supply_Front_copy.webp?v=1776114994\u0026width=1000" 599 },"size": "120 Day Supply", 600 "offers": { 601 "@type": "Offer", 602 "@id": "https:\/\/6666equinesupplements.com\/products\/joint-pellet?variant=54176667042083#Offer", 603 "url": "https:\/\/6666equinesupplements.com\/products\/joint-pellet?variant=54176667042083", 604 "priceCurrency": "USD", 605 "price": 363.66, 606 "priceValidUntil": "2027-10-08T20:45:49-0500", 607 "availability": "https://schema.org/InStock", 608 "itemCondition": "https://schema.org/NewCondition", 609 "hasMerchantReturnPolicy": { 610 "@type": "MerchantReturnPolicy", 611 "returnFees": "https://schema.org/FreeReturn", 612 "refundType": "https://schema.org/FullRefund", 613 "returnPolicyCountry": "US", 614 "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow", 615 "returnMethod": "https://schema.org/ReturnByMail", 616 "merchantReturnDays": 90, 617 "applicableCountry": "US", 618 "merchantReturnLink": "https:\/\/6666equinesupplements.com\/policies\/refund-policy" 619 }, 620 "seller": { 621 "@type": "OnlineStore", 622 "name": "6666 Equine Supplements", 623 "@id": "https:\/\/6666equinesupplements.com#OnlineStore", 624 "url": "https:\/\/6666equinesupplements.com" 625 } 626 } 627 } 628 ]}, 629 { 630 "@type": "ProductGroup", 631 "name": "Equine Complete Gut Protection", 632 "@id": "https:\/\/6666equinesupplements.com\/products\/pre-probiotic-powder#ProductGroup", 633 "url": "https:\/\/6666equinesupplements.com\/products\/pre-probiotic-powder", 634 "productGroupID": 8169581642019, 635 "image": { 636 "@type": "ImageObject", 637 "@id": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/Transparent_Backgroun
637d_6666_ES_2025_Complete_Gut_Protection_Powder_30_Serving_Front_with_Scoop_copy.webp?v=1764788995\u0026width=1000#ImageObject", 638 "url": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/Transparent_Background_6666_ES_2025_Complete_Gut_Protection_Powder_30_Serving_Front_with_Scoop_copy.webp?v=1764788995\u0026width=1000" 639 }, 640 641 642 "aggregateRating": { 643 "@type": "AggregateRating", 644 "ratingValue": 5.0, 645 "reviewCount": 13, 646 "bestRating": 5, 647 "worstRating": 1 648 } 649, 650 "description": "Support your horse's stomach and hindgut in one daily scoop. Prebiotics, 30 billion CFU probiotics, a postbiotic, and L-glutamine. Vet formulated.", 651 "brand": { 652 "@type": "Brand", 653 "name": "6666 Equine Supplements", 654 "@id": "https:\/\/6666equinesupplements.com\/pages\/about#Brand", 655 "url": "https:\/\/6666equinesupplements.com\/pages\/about" 656 657 ,"logo": { 658 "@type": "ImageObject", 659 "@id": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/logo-color.svg?v=1721833604#ImageObject", 660 "url": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/logo-color.svg?v=1721833604" 661 },"description": "Ranch-Tested \u0026 Approved Supplements for Horses in the Arena, Racetrack or Trail" 662,"slogan": "Legendary Equine Supplements" 663}, 664 "variesBy": ["Size"], 665 "hasVariant": [ 666 { 667 "@type": "Product", 668 "name": "Equine Complete Gut Protection - 30 Day Supply", 669 "@id": "https:\/\/6666equinesupplements.com\/products\/pre-probiotic-powder?variant=46018911174947#Product", 670 "url": "https:\/\/6666equinesupplements.com\/products\/pre-probiotic-powder?variant=46018911174947", 671 "sku": "RNGut30", 672 "image": { 673 "@type": "ImageObject", 674 "@id": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/Transparent_Backgroun
674d_6666_ES_2025_Complete_Gut_Protection_Powder_30_Serving_Front_with_Scoop_copy.webp?v=1764788995\u0026width=1000#ImageObject", 675 "url": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/Transparent_Background_6666_ES_2025_Complete_Gut_Protection_Powder_30_Serving_Front_with_Scoop_copy.webp?v=1764788995\u0026width=1000" 676 },"size": "30 Day Supply", 677 "offers": { 678 "@type": "Offer", 679 "@id": "https:\/\/6666equinesupplements.com\/products\/pre-probiotic-powder?variant=46018911174947#Offer", 680 "url": "https:\/\/6666equinesupplements.com\/products\/pre-probiotic-powder?variant=46018911174947", 681 "priceCurrency": "USD", 682 "price": 61.66, 683 "priceValidUntil": "2027-10-08T20:45:49-0500", 684 "availability": "https://schema.org/InStock", 685 "itemCondition": "https://schema.org/NewCondition", 686 "hasMerchantReturnPolicy": { 687 "@type": "MerchantReturnPolicy", 688 "returnFees": "https://schema.org/FreeReturn", 689 "refundType": "https://schema.org/FullRefund", 690 "returnPolicyCountry": "US", 691 "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow", 692 "returnMethod": "https://schema.org/ReturnByMail", 693 "merchantReturnDays": 90, 694 "applicableCountry": "US", 695 "merchantReturnLink": "https:\/\/6666equinesupplements.com\/policies\/refund-policy" 696 }, 697 "seller": { 698 "@type": "OnlineStore", 699 "name": "6666 Equine Supplements", 700 "@id": "https:\/\/6666equinesupplements.com#OnlineStore", 701 "url": "https:\/\/6666equinesupplements.com" 702 } 703 } 704 }, 705 { 706 "@type": "Product", 707 "name": "Equine Complete Gut Protection - 150 Day Supply", 708 "@id": "https:\/\/6666equinesupplements.com\/products\/pre-probiotic-powder?variant=46018911207715#Product", 709 "url": "https:\/\/6666equinesupplements.com\/products\/pre-probiotic-powder?variant=46018911207715", 710 "sku": "RNGut150", 711 "image": { 712 "@type": "ImageObject", 713 "@id": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/Transparent_Backgroun
713d_6666_ES_2025_Complete_Gut_Protection_Powder_150_Serving_Front_with_Scoop_copy_e8bc392f-3fc2-4ae9-9853-4a6bc773e754.webp?v=1773777604\u0026width=1000#ImageObject", 714 "url": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/Transparent_Background_6666_ES_2025_Complete_Gut_Protection_Powder_150_Serving_Front_with_Scoop_copy_e8bc392f-3fc2-4ae9-9853-4a6bc773e754.webp?v=1773777604\u0026width=1000" 715 },"size": "150 Day Supply", 716 "offers": { 717 "@type": "Offer", 718 "@id": "https:\/\/6666equinesupplements.com\/products\/pre-probiotic-powder?variant=46018911207715#Offer", 719 "url": "https:\/\/6666equinesupplements.com\/products\/pre-probiotic-powder?variant=46018911207715", 720 "priceCurrency": "USD", 721 "price": 270.66, 722 "priceValidUntil": "2027-10-08T20:45:49-0500", 723 "availability": "https://schema.org/InStock", 724 "itemCondition": "https://schema.org/NewCondition", 725 "hasMerchantReturnPolicy": { 726 "@type": "MerchantReturnPolicy", 727 "returnFees": "https://schema.org/FreeReturn", 728 "refundType": "https://schema.org/FullRefund", 729 "returnPolicyCountry": "US", 730 "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow", 731 "returnMethod": "https://schema.org/ReturnByMail", 732 "merchantReturnDays": 90, 733 "applicableCountry": "US", 734 "merchantReturnLink": "https:\/\/6666equinesupplements.com\/policies\/refund-policy" 735 }, 736 "seller": { 737 "@type": "OnlineStore", 738 "name": "6666 Equine Supplements", 739 "@id": "https:\/\/6666equinesupplements.com#OnlineStore", 740 "url": "https:\/\/6666equinesupplements.com" 741 } 742 } 743 } 744 ]}, 745 { 746 "@type": "ProductGroup", 747 "name": "Equine Electrolyte Paste", 748 "@id": "https:\/\/6666equinesupplements.com\/products\/electrolyte-paste#ProductGroup", 749 "url": "https:\/\/6666equinesupplements.com\/products\/electrolyte-paste", 750 "productGroupID": 8126314217763, 751 "image": { 752 "@type": "ImageObject", 753 "@id": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/6ES_Electrolyte_Paste_Transparent_Backgroun
753d_1.png?v=1789156975\u0026width=1000#ImageObject", 754 "url": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/6ES_Electrolyte_Paste_Transparent_Background_1.png?v=1789156975\u0026width=1000" 755 }, 756 757 758 "aggregateRating": { 759 "@type": "AggregateRating", 760 "ratingValue": 5.0, 761 "reviewCount": 6, 762 "bestRating": 5, 763 "worstRating": 1 764 } 765, 766 "description": "Replace what sweat takes. At least 9 g of sodium per tube, B vitamins, and organic trace minerals, with no added sugar. Cherry-vanilla flavor horses take.", 767 "brand": { 768 "@type": "Brand", 769 "name": "6666 Equine Supplements", 770 "@id": "https:\/\/6666equinesupplements.com\/pages\/about#Brand", 771 "url": "https:\/\/6666equinesupplements.com\/pages\/about" 772 773 ,"logo": { 774 "@type": "ImageObject", 775 "@id": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/logo-color.svg?v=1721833604#ImageObject", 776 "url": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/logo-color.svg?v=1721833604" 777 },"description": "Ranch-Tested \u0026 Approved Supplements for Horses in the Arena, Racetrack or Trail" 778,"slogan": "Legendary Equine Supplements" 779}, 780 "variesBy": ["Choose a Single or Bundle"], 781 "hasVariant": [ 782 { 783 "@type": "Product", 784 "name": "Equine Electrolyte Paste - 3 Pack Bundle", 785 "@id": "https:\/\/6666equinesupplements.com\/products\/electrolyte-paste?variant=46018932080931#Product", 786 "url": "https:\/\/6666equinesupplements.com\/products\/electrolyte-paste?variant=46018932080931", 787 "sku": "RNElectPst3-bundle", 788 "offers": { 789 "@type": "Offer", 790 "@id": "https:\/\/6666equinesupplements.com\/products\/electrolyte-paste?variant=46018932080931#Offer", 791 "url": "https:\/\/6666equinesupplements.com\/products\/electrolyte-paste?variant=46018932080931", 792 "priceCurrency": "USD", 793 "price": 28.92, 794 "priceValidUntil": "2027-10-08T20:45:49-0500", 795 "availability": "https://schema.org/InStock", 796 "itemCondition": "https://schema.org/NewCondition", 797 "hasMerchantReturnPolicy": { 798 "@type": "MerchantReturnPolicy", 799 "returnFees": "https://schema.org/FreeReturn", 800 "refundType": "https://schema.org/FullRefund", 801 "returnPolicyCountry": "US", 802 "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow", 803 "returnMethod": "https://schema.org/ReturnByMail", 804 "merchantReturnDays": 90, 805 "applicableCountry": "US", 806 "merchantReturnLink": "https:\/\/6666equinesupplements.com\/policies\/refund-policy" 807 }, 808 "seller": { 809 "@type": "OnlineStore", 810 "name": "6666 Equine Supplements", 811 "@id": "https:\/\/6666equinesupplements.com#OnlineStore", 812 "url": "https:\/\/6666equinesupplements.com" 813 } 814 } 815 }, 816 { 817 "@type": "Product", 818 "name": "Equine Electrolyte Paste - 12 Pack Bundle", 819 "@id": "https:\/\/6666equinesupplements.com\/products\/electrolyte-paste?variant=46018932113699#Product", 820 "url": "https:\/\/6666equinesupplements.com\/products\/electrolyte-paste?variant=46018932113699", 821 "sku": "RNElectPst12-bundle", 822 "offers": { 823 "@type": "Offer", 824 "@id": "https:\/\/6666equinesupplements.com\/products\/electrolyte-paste?variant=46018932113699#Offer", 825 "url": "https:\/\/6666equinesupplements.com\/products\/electrolyte-paste?variant=46018932113699", 826 "priceCurrency": "USD", 827 "price": 115.66, 828 "priceValidUntil": "2027-10-08T20:45:49-0500", 829 "availability": "https://schema.org/InStock", 830 "itemCondition": "https://schema.org/NewCondition", 831 "hasMerchantReturnPolicy": { 832 "@type": "MerchantReturnPolicy", 833 "returnFees": "https://schema.org/FreeReturn", 834 "refundType": "https://schema.org/FullRefund", 835 "returnPolicyCountry": "US", 836 "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow", 837 "returnMethod": "https://schema.org/ReturnByMail", 838 "merchantReturnDays": 90, 839 "applicableCountry": "US", 840 "merchantReturnLink": "https:\/\/6666equinesupplements.com\/policies\/refund-policy" 841 }, 842 "seller": { 843 "@type": "OnlineStore", 844 "name": "6666 Equine Supplements", 845 "@id": "https:\/\/6666equinesupplements.com#OnlineStore", 846 "url": "https:\/\/6666equinesupplements.com" 847 } 848 } 849 } 850 ]}, 851 { 852 "@type": "ProductGroup", 853 "name": "Equine Electrolyte Recover Powder", 854 "@id": "https:\/\/6666equinesupplements.com\/products\/electrolyte-powder#ProductGroup", 855 "url": "https:\/\/6666equinesupplements.com\/products\/electrolyte-powder", 856 "productGroupID": 8126314479907, 857 "image": { 858 "@type": "ImageObject", 859 "@id": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/Transparent_Backgroun
859d_6666_ES_2025_Label_Electrolyte_Powder_30_Serving_With_Scoop_copy.webp?v=1773771146\u0026width=1000#ImageObject", 860 "url": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/Transparent_Background_6666_ES_2025_Label_Electrolyte_Powder_30_Serving_With_Scoop_copy.webp?v=1773771146\u0026width=1000" 861 }, 862 863 864 "aggregateRating": { 865 "@type": "AggregateRating", 866 "ratingValue": 5.0, 867 "reviewCount": 4, 868 "bestRating": 5, 869 "worstRating": 1 870 } 871, 872 "description": "Salt first, no sugar. One daily scoop replaces what sweat takes, with B vitamins and organic trace minerals to keep hard-working horses drinking.", 873 "brand": { 874 "@type": "Brand", 875 "name": "6666 Equine Supplements", 876 "@id": "https:\/\/6666equinesupplements.com\/pages\/about#Brand", 877 "url": "https:\/\/6666equinesupplements.com\/pages\/about" 878 879 ,"logo": { 880 "@type": "ImageObject", 881 "@id": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/logo-color.svg?v=1721833604#ImageObject", 882 "url": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/logo-color.svg?v=1721833604" 883 },"description": "Ranch-Tested \u0026 Approved Supplements for Horses in the Arena, Racetrack or Trail" 884,"slogan": "Legendary Equine Supplements" 885}, 886 "variesBy": ["Size"], 887 "hasVariant": [ 888 { 889 "@type": "Product", 890 "name": "Equine Electrolyte Recover Powder - 30 Day Supply", 891 "@id": "https:\/\/6666equinesupplements.com\/products\/electrolyte-powder?variant=50868099121443#Product", 892 "url": "https:\/\/6666equinesupplements.com\/products\/electrolyte-powder?variant=50868099121443", 893 "sku": "RNElect30", 894 "image": { 895 "@type": "ImageObject", 896 "@id": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/Transparent_Backgroun
896d_6666_ES_2025_Label_Electrolyte_Powder_30_Serving_With_Scoop_copy.webp?v=1773771146\u0026width=1000#ImageObject", 897 "url": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/Transparent_Background_6666_ES_2025_Label_Electrolyte_Powder_30_Serving_With_Scoop_copy.webp?v=1773771146\u0026width=1000" 898 },"size": "30 Day Supply", 899 "offers": { 900 "@type": "Offer", 901 "@id": "https:\/\/6666equinesupplements.com\/products\/electrolyte-powder?variant=50868099121443#Offer", 902 "url": "https:\/\/6666equinesupplements.com\/products\/electrolyte-powder?variant=50868099121443", 903 "priceCurrency": "USD", 904 "price": 36.66, 905 "priceValidUntil": "2027-10-08T20:45:49-0500", 906 "availability": "https://schema.org/InStock", 907 "itemCondition": "https://schema.org/NewCondition", 908 "hasMerchantReturnPolicy": { 909 "@type": "MerchantReturnPolicy", 910 "returnFees": "https://schema.org/FreeReturn", 911 "refundType": "https://schema.org/FullRefund", 912 "returnPolicyCountry": "US", 913 "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow", 914 "returnMethod": "https://schema.org/ReturnByMail", 915 "merchantReturnDays": 90, 916 "applicableCountry": "US", 917 "merchantReturnLink": "https:\/\/6666equinesupplements.com\/policies\/refund-policy" 918 }, 919 "seller": { 920 "@type": "OnlineStore", 921 "name": "6666 Equine Supplements", 922 "@id": "https:\/\/6666equinesupplements.com#OnlineStore", 923 "url": "https:\/\/6666equinesupplements.com" 924 } 925 } 926 }, 927 { 928 "@type": "Product", 929 "name": "Equine Electrolyte Recover Powder - 150 Day Supply", 930 "@id": "https:\/\/6666equinesupplements.com\/products\/electrolyte-powder?variant=54169804505379#Product", 931 "url": "https:\/\/6666equinesupplements.com\/products\/electrolyte-powder?variant=54169804505379", 932 "sku": "RNElect150", 933 "image": { 934 "@type": "ImageObject", 935 "@id": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/Transparent_Backgroun
935d_6666_ES_2025_Label_Electrolyte_Powder_150_Serving_Front_with_Scoop_copy.webp?v=1773777914\u0026width=1000#ImageObject", 936 "url": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/Transparent_Background_6666_ES_2025_Label_Electrolyte_Powder_150_Serving_Front_with_Scoop_copy.webp?v=1773777914\u0026width=1000" 937 },"size": "150 Day Supply", 938 "offers": { 939 "@type": "Offer", 940 "@id": "https:\/\/6666equinesupplements.com\/products\/electrolyte-powder?variant=54169804505379#Offer", 941 "url": "https:\/\/6666equinesupplements.com\/products\/electrolyte-powder?variant=54169804505379", 942 "priceCurrency": "USD", 943 "price": 155.66, 944 "priceValidUntil": "2027-10-08T20:45:49-0500", 945 "availability": "https://schema.org/InStock", 946 "itemCondition": "https://schema.org/NewCondition", 947 "hasMerchantReturnPolicy": { 948 "@type": "MerchantReturnPolicy", 949 "returnFees": "https://schema.org/FreeReturn", 950 "refundType": "https://schema.org/FullRefund", 951 "returnPolicyCountry": "US", 952 "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow", 953 "returnMethod": "https://schema.org/ReturnByMail", 954 "merchantReturnDays": 90, 955 "applicableCountry": "US", 956 "merchantReturnLink": "https:\/\/6666equinesupplements.com\/policies\/refund-policy" 957 }, 958 "seller": { 959 "@type": "OnlineStore", 960 "name": "6666 Equine Supplements", 961 "@id": "https:\/\/6666equinesupplements.com#OnlineStore", 962 "url": "https:\/\/6666equinesupplements.com" 963 } 964 } 965 } 966 ]}, 967 { 968 "@type": "ProductGroup", 969 "name": "Equine Multi-Vitamin \u0026 Mineral Pellets", 970 "@id": "https:\/\/6666equinesupplements.com\/products\/multi-vitamin-mineral-pellet#ProductGroup", 971 "url": "https:\/\/6666equinesupplements.com\/products\/multi-vitamin-mineral-pellet", 972 "productGroupID": 8126314807587, 973 "image": { 974 "@type": "ImageObject", 975 "@id": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/Transparent_Backgroun
975d_-_Front_-_6ES_2025_Multi_Vitamin_Mineral_30_Day_copy.webp?v=1764789828\u0026width=1000#ImageObject", 976 "url": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/Transparent_Background_-_Front_-_6ES_2025_Multi_Vitamin_Mineral_30_Day_copy.webp?v=1764789828\u0026width=1000" 977 }, 978 979 980 "aggregateRating": { 981 "@type": "AggregateRating", 982 "ratingValue": 5.0, 983 "reviewCount": 4, 984 "bestRating": 5, 985 "worstRating": 1 986 } 987, 988 "description": "One daily scoop of chelated trace minerals, vitamins A, D, E, and K, and biotin to fill the gaps hay and grain leave behind. Vet formulated.", 989 "brand": { 990 "@type": "Brand", 991 "name": "6666 Equine Supplements", 992 "@id": "https:\/\/6666equinesupplements.com\/pages\/about#Brand", 993 "url": "https:\/\/6666equinesupplements.com\/pages\/about" 994 995 ,"logo": { 996 "@type": "ImageObject", 997 "@id": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/logo-color.svg?v=1721833604#ImageObject", 998 "url": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/logo-color.svg?v=1721833604" 999 },"description": "Ranch-Tested \u0026 Approved Supplements for Horses in the Arena, Racetrack or Trail" 1000,"slogan": "Legendary Equine Supplements" 1001}, 1002 "variesBy": ["Size"], 1003 "hasVariant": [ 1004 { 1005 "@type": "Product", 1006 "name": "Equine Multi-Vitamin & Mineral Pellets - 30 Day Supply", 1007 "@id": "https:\/\/6666equinesupplements.com\/products\/multi-vitamin-mineral-pellet?variant=44280434524451#Product", 1008 "url": "https:\/\/6666equinesupplements.com\/products\/multi-vitamin-mineral-pellet?variant=44280434524451", 1009 "sku": "RNVit30", 1010 "image": { 1011 "@type": "ImageObject", 1012 "@id": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/Transparent_Backgroun
1012d_-_Front_-_6ES_2025_Multi_Vitamin_Mineral_30_Day_copy.webp?v=1764789828\u0026width=1000#ImageObject", 1013 "url": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/Transparent_Background_-_Front_-_6ES_2025_Multi_Vitamin_Mineral_30_Day_copy.webp?v=1764789828\u0026width=1000" 1014 },"size": "30 Day Supply", 1015 "offers": { 1016 "@type": "Offer", 1017 "@id": "https:\/\/6666equinesupplements.com\/products\/multi-vitamin-mineral-pellet?variant=44280434524451#Offer", 1018 "url": "https:\/\/6666equinesupplements.com\/products\/multi-vitamin-mineral-pellet?variant=44280434524451", 1019 "priceCurrency": "USD", 1020 "price": 37.66, 1021 "priceValidUntil": "2027-10-08T20:45:49-0500", 1022 "availability": "https://schema.org/InStock", 1023 "itemCondition": "https://schema.org/NewCondition", 1024 "hasMerchantReturnPolicy": { 1025 "@type": "MerchantReturnPolicy", 1026 "returnFees": "https://schema.org/FreeReturn", 1027 "refundType": "https://schema.org/FullRefund", 1028 "returnPolicyCountry": "US", 1029 "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow", 1030 "returnMethod": "https://schema.org/ReturnByMail", 1031 "merchantReturnDays": 90, 1032 "applicableCountry": "US", 1033 "merchantReturnLink": "https:\/\/6666equinesupplements.com\/policies\/refund-policy" 1034 }, 1035 "seller": { 1036 "@type": "OnlineStore", 1037 "name": "6666 Equine Supplements", 1038 "@id": "https:\/\/6666equinesupplements.com#OnlineStore", 1039 "url": "https:\/\/6666equinesupplements.com" 1040 } 1041 } 1042 }, 1043 { 1044 "@type": "Product", 1045 "name": "Equine Multi-Vitamin & Mineral Pellets - 150 Day Supply", 1046 "@id": "https:\/\/6666equinesupplements.com\/products\/multi-vitamin-mineral-pellet?variant=54169816138019#Product", 1047 "url": "https:\/\/6666equinesupplements.com\/products\/multi-vitamin-mineral-pellet?variant=54169816138019", 1048 "sku": "RNVit150", 1049 "image": { 1050 "@type": "ImageObject", 1051 "@id": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/Transparent_Backgroun
1051d_-_6ES_2025_Multi_Vitamin_Mineral_150_Day_Front_1_1.png?v=1775760239\u0026width=1000#ImageObject", 1052 "url": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/Transparent_Background_-_6ES_2025_Multi_Vitamin_Mineral_150_Day_Front_1_1.png?v=1775760239\u0026width=1000" 1053 },"size": "150 Day Supply", 1054 "offers": { 1055 "@type": "Offer", 1056 "@id": "https:\/\/6666equinesupplements.com\/products\/multi-vitamin-mineral-pellet?variant=54169816138019#Offer", 1057 "url": "https:\/\/6666equinesupplements.com\/products\/multi-vitamin-mineral-pellet?variant=54169816138019", 1058 "priceCurrency": "USD", 1059 "price": 160.66, 1060 "priceValidUntil": "2027-10-08T20:45:49-0500", 1061 "availability": "https://schema.org/InStock", 1062 "itemCondition": "https://schema.org/NewCondition", 1063 "hasMerchantReturnPolicy": { 1064 "@type": "MerchantReturnPolicy", 1065 "returnFees": "https://schema.org/FreeReturn", 1066 "refundType": "https://schema.org/FullRefund", 1067 "returnPolicyCountry": "US", 1068 "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow", 1069 "returnMethod": "https://schema.org/ReturnByMail", 1070 "merchantReturnDays": 90, 1071 "applicableCountry": "US", 1072 "merchantReturnLink": "https:\/\/6666equinesupplements.com\/policies\/refund-policy" 1073 }, 1074 "seller": { 1075 "@type": "OnlineStore", 1076 "name": "6666 Equine Supplements", 1077 "@id": "https:\/\/6666equinesupplements.com#OnlineStore", 1078 "url": "https:\/\/6666equinesupplements.com" 1079 } 1080 } 1081 }, 1082 { 1083 "@type": "Product", 1084 "name": "Equine Multi-Vitamin & Mineral Pellets - 750 Day Supply", 1085 "@id": "https:\/\/6666equinesupplements.com\/products\/multi-vitamin-mineral-pellet?variant=44280434557219#Product", 1086 "url": "https:\/\/6666equinesupplements.com\/products\/multi-vitamin-mineral-pellet?variant=44280434557219", 1087 "sku": "RNVit750", 1088 "image": { 1089 "@type": "ImageObject", 1090 "@id": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/Transparent_Backgroun
1090d_-_6ES_2025_Multi_Vitamin_Mineral_Tub_Front_copy.webp?v=1773777739\u0026width=1000#ImageObject", 1091 "url": "https:\/\/6666equinesupplements.com\/cdn\/shop\/files\/Transparent_Background_-_6ES_2025_Multi_Vitamin_Mineral_Tub_Front_copy.webp?v=1773777739\u0026width=1000" 1092 },"size": "750 Day Supply", 1093 "offers": { 1094 "@type": "Offer", 1095 "@id": "https:\/\/6666equinesupplements.com\/products\/multi-vitamin-mineral-pellet?variant=44280434557219#Offer", 1096 "url": "https:\/\/6666equinesupplements.com\/products\/multi-vitamin-mineral-pellet?variant=44280434557219", 1097 "priceCurrency": "USD", 1098 "price": 660.66, 1099 "priceValidUntil": "2027-10-08T20:45:49-0500", 1100 "availability": "https://schema.org/InStock", 1101 "itemCondition": "https://schema.org/NewCondition", 1102 "hasMerchantReturnPolicy": { 1103 "@type": "MerchantReturnPolicy", 1104 "returnFees": "https://schema.org/FreeReturn", 1105 "refundType": "https://schema.org/FullRefund", 1106 "returnPolicyCountry": "US", 1107 "returnPolicyCategory": "https://schema.org/MerchantReturnFiniteReturnWindow", 1108 "returnMethod": "https://schema.org/ReturnByMail", 1109 "merchantReturnDays": 90, 1110 "applicableCountry": "US", 1111 "merchantReturnLink": "https:\/\/6666equinesupplements.com\/policies\/refund-policy" 1112 }, 1113 "seller": { 1114 "@type": "OnlineStore", 1115 "name": "6666 Equine Supplements", 1116 "@id": "https:\/\/6666equinesupplements.com#OnlineStore", 1117 "url": "https:\/\/6666equinesupplements.com" 1118 } 1119 } 1120 } 1121 ]} 1122 ] 1123 } 1124</script>
1124<script> 1125 document.documentElement.className = document.documentElement.className.replace('no-js', 'js'); 1126 if (Shopify.designMode) { 1127 document.documentElement.classList.add('shopify-design-mode'); 1128 } 1129 </script>
1129 1130<!-- BEGIN app block: shopify://apps/bold-subscriptions/blocks/bsub-embed/9ceb49f0-5fe5-4b5e-943d-f8af8985167d -->
1131<script id="bold-subscriptions-app-embed-script" type="text/javascript" defer> 1132 1133 1134 if (window.location.href.includes('pages/manage-subscriptions')) { 1135 const queryParams = new URLSearchParams(window.location.search); 1136 if(queryParams.has('deep_link') && queryParams.get('deep_link') === 'upsell' && 1137 queryParams.has('type') && queryParams.get('type') === 'upcoming-order-email' 1138 ) { 1139 window.location.href=`/account/login?${queryParams.toString()}&from_msp=true`; 1140 } 1141 } else if (window.location.href.includes('/account/login')) { 1142 document.addEventListener('DOMContentLoaded', function() { 1143 const queryParams = new URLSearchParams(window.location.search); 1144 if(queryParams.has('from_msp')) { 1145 queryParams.delete('from_msp'); 1146 1147 let form = document.querySelector("#customer_login"); 1148 1149 if(form) { 1150 let input = document.createElement('input'); 1151 input.type = 'hidden'; 1152 input.name = 'return_to'; 1153 input.value = `https://6666equinesupplements.com/pages/manage-subscriptions?${queryParams.toString()}`; 1154 1155 form.appendChild(input); 1156 } 1157 } 1158 }); 1159 } 1160 1161 1162 1163 window.BOLD = window.BOLD || {}; 1164 window.BOLD.subscriptions = window.BOLD.subscriptions || {}; 1165 window.BOLD.subscriptions.config = window.BOLD.subscriptions.config || {}; 1166 window.BOLD.subscriptions.config.isAppEmbedEnabled = true; 1167 window.BOLD.subscriptions.classes = window.BOLD.subscriptions.classes || {}; 1168 window.BOLD.subscriptions.patches = window.BOLD.subscriptions.patches || {}; 1169 window.BOLD.subscriptions.patches.maxCheckoutRetries = window.BOLD.subscriptions.patches.maxCheckoutRetries || 200; 1170 window.BOLD.subscriptions.patches.currentCheckoutRetries = window.BOLD.subscriptions.patches.currentCheckoutRetries || 0; 1171 window.BOLD.subscriptions.patches.maxCashierPatchAttempts = window.BOLD.subscriptions.patches.maxCashierPatchAttempts || 200; 1172 window.BOLD.subscriptions.patches.currentCashierPatchAttempts = window.BOLD.subscriptions.patches.currentCashierPatchAttempts || 0; 1173 window.BOLD.subscriptions.config.platform = 'shopify'; 1174 window.BOLD.subscriptions.config.shopDomain = '6666s-ranch-nutriments-supply-shop.myshopify.com'; 1175 window.BOLD.subscriptions.config.customDomain = '6666equinesupplements.com'; 1176 window.BOLD.subscriptions.config.shopIdentifier = '72216215843'; 1177 window.BOLD.subscriptions.config.cashierUrl = 'https://cashier.boldcommerce.com'; 1178 window.BOLD.subscriptions.config.boldAPIBase = 'https://app-api.boldapps.net/'; 1179 window.BOLD.subscriptions.config.cashierApplicationUUID = '2e6a2bbc-b12b-4255-abdf-a02af85c0d4e'; 1180 window.BOLD.subscriptions.config.appUrl = 'https://sub.boldapps.net'; 1181 window.BOLD.subscriptions.config.currencyCode = 'USD'; 1182 window.BOLD.subscriptions.config.checkoutType = 'shopify'; 1183 window.BOLD.subscriptions.config.currencyFormat = "$\u0026#123;\u0026#123;amount}}"; 1184 window.BOLD.subscriptions.config.shopCurrencies = [{"id":6412,"currency":"USD","currency_format":"$\u0026#123;\u0026#123;amount}}","created_at":"2024-01-18 16:04:49","updated_at":"2024-01-18 16:04:49"}]; 1185 window.BOLD.subscriptions.config.shopSettings = {"allow_msp_cancellation":true,"allow_msp_prepaid_renewal":true,"customer_can_pause_subscription":true,"customer_can_change_next_order_date":true,"customer_can_change_order_frequency":true,"customer_can_create_an_additional_order":true,"customer_can_use_passwordless_login":false,"customer_passwordless_login_redirect":false,"customer_can_add_products_to_existing_subscriptions":true,"customer_can_reactivate_subscription":true,"customer_can_reactivate_subscription_with_deleted_products":false,"show_currency_code":true,"stored_payment_method_policy":"required","customer_portal_path":"pages\/manage-subscriptions","display_only_subscription_products":false}; 1186 window.BOLD.subscriptions.config.customerLoginPath = null; 1187 window.BOLD.subscriptions.config.isPrepaidEnabled = window.BOLD.subscriptions.config.isPrepaidEnabled || true; 1188 window.BOLD.subscriptions.config.loadSubscriptionGroupFrom = 'default'; 1189 window.BOLD.subscriptions.config.loadSubscriptionGroupFromTypes = "default"; 1190 window.BOLD.subscriptions.config.cashierPluginOnlyMode = window.BOLD.subscriptions.config.cashierPluginOnlyMode || false; 1191 if (window.BOLD.subscriptions.config.waitForCheckoutLoader === undefined) { 1192 window.BOLD.subscriptions.config.waitForCheckoutLoader = true; 1193 } 1194 1195 window.BOLD.subscriptions.config.addToCartFormSelectors = window.BOLD.subscriptions.config.addToCartFormSelectors || []; 1196 window.BOLD.subscriptions.config.addToCartButtonSelectors = window.BOLD.subscriptions.config.addToCartButtonSelectors || []; 1197 window.BOLD.subscriptions.config.widgetInsertBeforeSelectors = window.BOLD.subscriptions.config.widgetInsertBeforeSelectors || []; 1198 window.BOLD.subscriptions.config.quickAddToCartButtonSelectors = window.BOLD.subscriptions.config.quickAddToCartButtonSelectors || []; 1199 window.BOLD.subscriptions.config.cartElementSelectors = window.BOLD.subscriptions.config.cartElementSelectors || []; 1200 window.BOLD.subscriptions.config.cartTotalElementSelectors = window.BOLD.subscriptions.config.cartTotalElementSelectors || []; 1201 window.BOLD.subscriptions.config.lineItemSelectors = window.BOLD.subscriptions.config.lineItemSelectors || []; 1202 window.BOLD.subscriptions.config.lineItemNameSelectors = window.BOLD.subscriptions.config.lineItemNameSelectors || []; 1203 window.BOLD.subscriptions.config.checkoutButtonSelectors = window.BOLD.subscriptions.config.checkoutButtonSelectors || []; 1204 1205 window.BOLD.subscriptions.config.featureFlags = window.BOLD.subscriptions.config.featureFlagOverrides || ["BE-2298-Support-Variant-Selections-In-Sub-Groups","BE-6925-remove-bold-error-code-from-error-message","BE-8664-default-address-source-bold","BE-9502-add-logs-to-investigate-infinite-loop","BE-6695-improve-subs-onboarding","BE-10096-list-deleted-variants","BE-10183-customer-portal-paginates-products","BE-10178-suppress-dup-inventory-failure-emails","BE-9073-reactivate-subscription-setting"]; 1206 window.BOLD.subscriptions.config.subscriptionProcessingFrequency = '60'; 1207 window.BOLD.subscriptions.config.requireMSPInitialLoadingMessage = true; 1208 window.BOLD.subscriptions.data = window.BOLD.subscriptions.data || {}; 1209 1210 // Interval text markup template 1211 window.BOLD.subscriptions.config.lineItemPropertyListSelectors = window.BOLD.subscriptions.config.lineItemPropertyListSelectors || []; 1212 window.BOLD.subscriptions.config.lineItemPropertyListSelectors.push('dl.definitionList'); 1213 window.BOLD.subscriptions.config.lineItemPropertyListTemplate = window.BOLD.subscriptions.config.lineItemPropertyListTemplate || '<dl class="definitionList"></dl>'; 1214 window.BOLD.subscriptions.config.lineItemPropertyTemplate = window.BOLD.subscriptions.config.lineItemPropertyTemplate || '<dt class="definitionList-key">{{key}}:</dt><dd class="definitionList-value">{{value}}</dd>'; 1215 1216 // Discount text markup template 1217 window.BOLD.subscriptions.config.discountItemTemplate = window.BOLD.subscriptions.config.discountItemTemplate || '<div class="bold-subscriptions-discount"><div class="bold-subscriptions-discount__details">{{details}}</div><div class="bold-subscriptions-discount__total">{{total}}</div></div>'; 1218 1219 1220 // Constants in XMLHttpRequest are not reliable, so we will create our own 1221 // reference: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState 1222 window.BOLD.subscriptions.config.XMLHttpRequest = { 1223 UNSENT:0, // Client has been created. open() not called yet. 1224 OPENED: 1, // open() has been called. 1225 HEADERS_RECEIVED: 2, // send() has been called, and headers and status are available. 1226 LOADING: 3, // Downloading; responseText holds partial data. 1227 DONE: 4 // The operation is complete. 1228 }; 1229 1230 window.BOLD.subscriptions.config.assetBaseUrl = 'https://sub.boldapps.net'; 1231 if (window.localStorage && window.localStorage.getItem('boldSubscriptionsAssetBaseUrl')) { 1232 window.BOLD.subscriptions.config.assetBaseUrl = window.localStorage.getItem('boldSubscriptionsAssetBaseUrl') 1233 } 1234 1235 window.BOLD.subscriptions.data.subscriptionGroups = []; 1236 if (localStorage && localStorage.getItem('boldSubscriptionsSubscriptionGroups')) { 1237 window.BOLD.subscriptions.data.subscriptionGroups = JSON.parse(localStorage.getItem('boldSubscriptionsSubscriptionGroups')); 1238 } else { 1239 window.BOLD.subscriptions.data.subscriptionGroups = [{"id":37124,"billing_rules":[{"id":88407,"subscription_group_id":37124,"interval_name":"Every 4 weeks","billing_rule":"FREQ=WEEKLY;INTERVAL=4","custom_billing_rule":""},{"id":88408,"subscription_group_id":37124,"interval_name":"Every 5 weeks","billing_rule":"FREQ=WEEKLY;INTERVAL=5","custom_billing_rule":""},{"id":88409,"subscription_group_id":37124,"interval_name":"Every 6 weeks","billing_rule":"FREQ=WEEKLY;INTERVAL=6","custom_billing_rule":""},{"id":88410,"subscription_group_id":37124,"interval_name":"Every 7 weeks","billing_rule":"FREQ=WEEKLY;INTERVAL=7","custom_billing_rule":""},{"id":88411,"subscription_group_id":37124,"interval_name":"Every 8 weeks","billing_rule":"FREQ=WEEKLY;INTERVAL=8","custom_billing_rule":""}],"is_subscription_only":false,"allow_prepaid":false,"allow_dynamic_discount":false,"is_prepaid_only":false,"should_continue_prepaid":true,"continue_prepaid_type":"as_prepaid","prepaid_durations":[{"id":36482,"subscription_group_id":37124,"total_duration":1,"discount_type":"percentage","discount_value":0}],"dynamic_discounts":[{"id":2366,"subscription_group_id":37124,"order_number":1,"discount_type":"percentage","discount_value":10}],"selection_options":[{"platform_entity_id":null},{"platform_entity_id":null},{"platform_entity_id":null},{"platform_entity_id":null},{"platform_entity_id":null},{"platform_entity_id":null}],"discount_type":"percentage","percent_discount":15,"fixed_discount":0,"can_add_to_cart":true}]; 1240 } 1241 1242 window.BOLD.subscriptions.isFeatureFlagEnabled = function (featureFlag) { 1243 for (var i = 0; i < window.BOLD.subscriptions.config.featureFlags.length; i++) { 1244 if (window.BOLD.subscriptions.config.featureFlags[i] === featureFlag){ 1245 return true; 1246 } 1247 } 1248 return false;
1249 } 1250 1251 window.BOLD.subscriptions.logger = { 1252 tag: "bold_subscriptions", 1253 // the bold subscriptions log level 1254 // 0 - errors (default) 1255 // 1 - warnings + errors 1256 // 2 - info + warnings + errors 1257 // use window.localStorage.setItem('boldSubscriptionsLogLevel', x) to set the log level 1258 levels: { 1259 ERROR: 0, 1260 WARN: 1, 1261 INFO: 2, 1262 }, 1263 level: parseInt((window.localStorage && window.localStorage.getItem('boldSubscriptionsLogLevel')) || "0", 10), 1264 _log: function(callArgs, level) { 1265 if (!window.console) { 1266 return null; 1267 } 1268 1269 if (window.BOLD.subscriptions.logger.level < level) { 1270 return; 1271 } 1272 1273 var params = Array.prototype.slice.call(callArgs); 1274 params.unshift(window.BOLD.subscriptions.logger.tag); 1275 1276 switch (level) { 1277 case window.BOLD.subscriptions.logger.levels.INFO: 1278 console.info.apply(null, params); 1279 return; 1280 case window.BOLD.subscriptions.logger.levels.WARN: 1281 console.warn.apply(null, params); 1282 return; 1283 case window.BOLD.subscriptions.logger.levels.ERROR: 1284 console.error.apply(null, params); 1285 return; 1286 default: 1287 console.log.apply(null, params); 1288 return; 1289 } 1290 }, 1291 info: function() { 1292 window.BOLD.subscriptions.logger._log(arguments, window.BOLD.subscriptions.logger.levels.INFO); 1293 }, 1294 warn: function() { 1295 window.BOLD.subscriptions.logger._log(arguments, window.BOLD.subscriptions.logger.levels.WARN); 1296 }, 1297 error: function() { 1298 window.BOLD.subscriptions.logger._log(arguments, window.BOLD.subscriptions.logger.levels.ERROR); 1299 } 1300 } 1301 1302 window.BOLD.subscriptions.shouldLoadSubscriptionGroupFromAPI = function() { 1303 return window.BOLD.subscriptions.config.loadSubscriptionGroupFrom === window.BOLD.subscriptions.config.loadSubscriptionGroupFromTypes['BSUB_API']; 1304 } 1305 1306 window.BOLD.subscriptions.getSubscriptionGroupFromProductId = function (productId) { 1307 var data = window.BOLD.subscriptions.data; 1308 var foundGroup = null; 1309 for (var i = 0; i < data.subscriptionGroups.length; i += 1) { 1310 var subscriptionGroup = data.subscriptionGroups[i]; 1311 for (var j = 0; j < subscriptionGroup.selection_options.length; j += 1) { 1312 var selectionOption = subscriptionGroup.selection_options[j]; 1313 if (selectionOption.platform_entity_id === productId.toString()) { 1314 foundGroup = subscriptionGroup; 1315 break; 1316 } 1317 } 1318 if (foundGroup) { 1319 break; 1320 } 1321 } 1322 return foundGroup; 1323 }; 1324 1325 window.BOLD.subscriptions.getSubscriptionGroupById = function(subGroupId) { 1326 var subscriptionGroups = window.BOLD.subscriptions.data.subscriptionGroups; 1327 1328 for (var i = 0; i < subscriptionGroups.length; i += 1) { 1329 var subGroup = subscriptionGroups[i]; 1330 if (subGroup.id === subGroupId) { 1331 return subGroup; 1332 } 1333 } 1334 1335 return null; 1336 }; 1337 1338 window.BOLD.subscriptions.addSubscriptionGroup = function (subscriptionGroup) { 1339 if(!window.BOLD.subscriptions.getSubscriptionGroupById(subscriptionGroup.id)) 1340 { 1341 window.BOLD.subscriptions.data.subscriptionGroups.push(subscriptionGroup); 1342 } 1343 } 1344 1345 window.BOLD.subscriptions.getSubscriptionGroupPrepaidDurationById = function(subscriptionGroupId, prepaidDurationId) { 1346 var subscriptionGroup = window.BOLD.subscriptions.getSubscriptionGroupById(subscriptionGroupId); 1347 1348 if ( 1349 !subscriptionGroup 1350 || !subscriptionGroup.prepaid_durations 1351 || !subscriptionGroup.prepaid_durations.length 1352 ) { 1353 return null; 1354 } 1355 1356 for (var i = 0; i < subscriptionGroup.prepaid_durations.length; i++) { 1357 var prepaidDuration = subscriptionGroup.prepaid_durations[i]; 1358 if (prepaidDuration.id === prepaidDurationId) { 1359 return prepaidDuration; 1360 } 1361 } 1362 1363 return null; 1364 } 1365 1366 window.BOLD.subscriptions.getSubscriptionGroupBillingRuleById = function(subGroup, billingRuleId) { 1367 for (var i = 0; i < subGroup.billing_rules.length; i += 1) { 1368 var billingRule = subGroup.billing_rules[i]; 1369 if (billingRule.id === billingRuleId) { 1370 return billingRule; 1371 } 1372 } 1373 1374 return null; 1375 }; 1376 1377 window.BOLD.subscriptions.toggleDisabledAddToCartButtons = function(d) { 1378 var addToCartForms = document.querySelectorAll(window.BOLD.subscriptions.config.addToCartFormSelectors.join(',')); 1379 var disable = !!d; 1380 for (var i = 0; i < addToCartForms.length; i++) { 1381 var addToCartForm = addToCartForms[i]; 1382 var productId = window.BOLD.subscriptions.getProductIdFromAddToCartForm(
1382addToCartForm); 1383 var subscriptionGroup = window.BOLD.subscriptions.getSubscriptionGroupFromProductId(productId); 1384 1385 if(window.BOLD.subscriptions.isFeatureFlagEnabled('BS2-4659_improve_large_group_selection') ) { 1386 if (subscriptionGroup || window.BOLD.subscriptions.shouldLoadSubscriptionGroupFromAPI()) { 1387 var addToCartButtons = addToCartForm.querySelectorAll(window.BOLD.subscriptions.config.addToCartButtonSelectors.join(',')); 1388 for (var j = 0; j < addToCartButtons.length; j++) { 1389 var addToCartButton = addToCartButtons[j]; 1390 var toggleAction = disable ? addToCartButton.setAttribute : addToCartButton.removeAttribute; 1391 1392 addToCartButton.disabled = disable; 1393 toggleAction.call(addToCartButton, 'data-disabled-by-subscriptions', disable); 1394 } 1395 } 1396 } else { 1397 if (subscriptionGroup) { 1398 var addToCartButtons = addToCartForm.querySelectorAll(window.BOLD.subscriptions.config.addToCartButtonSelectors.join(',')); 1399 for (var j = 0; j < addToCartButtons.length; j++) { 1400 var addToCartButton = addToCartButtons[j]; 1401 var toggleAction = disable ? addToCartButton.setAttribute : addToCartButton.removeAttribute; 1402 1403 addToCartButton.disabled = disable; 1404 toggleAction.call(addToCartButton, 'data-disabled-by-subscriptions', disable); 1405 } 1406 } 1407 } 1408 1409 } 1410 }; 1411 1412 window.BOLD.subscriptions.disableAddToCartButtons = function () { 1413 // only disable the add to cart buttons if the app isn't loaded yet 1414 if (!window.BOLD.subscriptions.app) { 1415 window.BOLD.subscriptions.toggleDisabledAddToCartButtons(true); 1416 } else { 1417 window.BOLD.subscriptions.enableAddToCartButtons(); 1418 } 1419 }; 1420 1421 window.BOLD.subscriptions.enableAddToCartButtons = function () { 1422 document.removeEventListener('click', window.BOLD.subscriptions.preventSubscriptionAddToCart); 1423 window.BOLD.subscriptions.toggleDisabledAddToCartButtons(false); 1424 }; 1425 1426 window.BOLD.subscriptions.toggleDisabledCheckoutButtons = function(d) { 1427 var checkoutButtons = document.querySelectorAll(window.BOLD.subscriptions.config.checkoutButtonSelectors.join(',')); 1428 var disable = !!d; 1429 for (var i = 0; i < checkoutButtons.length; i++) { 1430 var checkoutButton = checkoutButtons[i]; 1431 var toggleAction = disable ? checkoutButton.setAttribute : checkoutButton.removeAttribute; 1432 1433 checkoutButton.disabled = disable; 1434 toggleAction.call(checkoutButton, 'data-disabled-by-subscriptions', disable); 1435 } 1436 } 1437 1438 window.BOLD.subscriptions.disableCheckoutButtons = function() { 1439 // only disable the checkout buttons if the app isn't loaded yet 1440 if (!window.BOLD.subscriptions.app) { 1441 window.BOLD.subscriptions.toggleDisabledCheckoutButtons(true); 1442 } else { 1443 window.BOLD.subscriptions.enableCheckoutButtons(); 1444 } 1445 } 1446 1447 window.BOLD.subscriptions.enableCheckoutButtons = function() { 1448 document.removeEventListener('click', window.BOLD.subscriptions.preventCheckout); 1449 window.BOLD.subscriptions.toggleDisabledCheckoutButtons(false); 1450 } 1451 1452 window.BOLD.subscriptions.hasSuccessfulAddToCarts = function() { 1453 if (typeof(Storage) !== "undefined") { 1454 var successfulAddToCarts = JSON.parse( 1455 window.localStorage.getItem('boldSubscriptionsSuccessfulAddToCarts') || '[]' 1456 ); 1457 if (successfulAddToCarts.length > 0) { 1458 return true; 1459 } 1460 } 1461 1462 return false; 1463 } 1464 1465 window.BOLD.subscriptions.hasPendingAddToCarts = function() { 1466 if (typeof(Storage) !== "undefined") { 1467 var pendingAddToCarts = JSON.parse( 1468 window.localStorage.getItem('boldSubscriptionsPendingAddToCarts') || '[]' 1469 ); 1470 if (pendingAddToCarts.length > 0) { 1471 return true; 1472 } 1473 } 1474 1475 return false;
1476 } 1477 1478 window.BOLD.subscriptions.addJSAsset = function(src, deferred) { 1479 var scriptTag = document.getElementById('bold-subscriptions-app-embed-script'); 1480 var jsElement = document.createElement('script'); 1481 jsElement.type = 'text/javascript'; 1482 jsElement.src = src; 1483 if (deferred) { 1484 jsElement.defer = true; 1485 } 1486 scriptTag.parentNode.insertBefore(jsElement, scriptTag); 1487 }; 1488 1489 window.BOLD.subscriptions.addCSSAsset = function(href) { 1490 var scriptTag = document.getElementById('bold-subscriptions-app-embed-script'); 1491 var cssElement = document.createElement('link'); 1492 cssElement.href = href; 1493 cssElement.rel = 'stylesheet'; 1494 scriptTag.parentNode.insertBefore(cssElement, scriptTag); 1495 }; 1496 1497 window.BOLD.subscriptions.loadStorefrontAssets = function loadStorefrontAssets() { 1498 var assets = window.BOLD.subscriptions.config.assets; 1499 window.BOLD.subscriptions.addCSSAsset(window.BOLD.subscriptions.config.assetBaseUrl + '/static/' + assets['storefront.css']); 1500 window.BOLD.subscriptions.addJSAsset(window.BOLD.subscriptions.config.assetBaseUrl + '/static/' + assets['storefront.js'], false); 1501 }; 1502 1503 window.BOLD.subscriptions.loadCustomerPortalAssets = function loadCustomerPortalAssets() { 1504 if (document.getElementById('customer-portal-root') || document.getElementsByClassName('bsub-express-add-ons-widget')) { 1505 var assets = window.BOLD.subscriptions.config.assets; 1506 window.BOLD.subscriptions.addCSSAsset(window.BOLD.subscriptions.config.assetBaseUrl + '/static/' + assets['customer_portal.css']); 1507 window.BOLD.subscriptions.addJSAsset(window.BOLD.subscriptions.config.assetBaseUrl + '/static/' + assets['customer_portal.js'], true); 1508 } 1509 }; 1510 1511 window.BOLD.subscriptions.processManifest = function() { 1512 if (!window.BOLD.subscriptions.processedManifest) { 1513 window.BOLD.subscriptions.processedManifest = true; 1514 window.BOLD.subscriptions.config.assets = JSON.parse(this.responseText); 1515 1516 1517 window.BOLD.subscriptions.loadCustomerPortalAssets(); 1518 } 1519 }; 1520 1521 window.BOLD.subscriptions.addInitialLoadingMessage = function() { 1522 var customerPortalNode = document.getElementById('customer-portal-root'); 1523 if (customerPortalNode && window.BOLD.subscriptions.config.requireMSPInitialLoadingMessage) { 1524 customerPortalNode.innerHTML = '<div class="bold-subscriptions-loader-container"><div class="bold-subscriptions-loader"></div></div>'; 1525 } 1526 } 1527 1528 window.BOLD.subscriptions.contentLoaded = function() { 1529 window.BOLD.subscriptions.data.contentLoadedEventTriggered = true; 1530 window.BOLD.subscriptions.addInitialLoadingMessage(); 1531 1532 }; 1533 1534 window.BOLD.subscriptions.preventSubscriptionAddToCart = function(e) { 1535 if (e.target.matches(window.BOLD.subscriptions.config.addToCartButtonSelectors.join(',')) && e.target.form) { 1536 var productId = window.BOLD.subscriptions.getProductIdFromAddToCartForm(e.target.form); 1537 var subscriptionGroup = window.BOLD.subscriptions.getSubscriptionGroupFromProductId(productId); 1538 if(window.BOLD.subscriptions.isFeatureFlagEnabled('BS2-4659_improve_large_group_selection')) 1539 { 1540 if (subscriptionGroup || window.BOLD.subscriptions.shouldLoadSubscriptionGroupFromAPI()) { 1541 // This code prevents products in subscription groups from being added to the cart before the 1542 // Subscriptions app fully loads. Once the subscriptions app loads it will re-enable the 1543 // buttons. Use window.BOLD.subscriptions.enableAddToCartButtons enable them manually. 1544 e.preventDefault(); 1545 return false; 1546 } 1547 } else { 1548 if (subscriptionGroup) { 1549 // This code prevents products in subscription groups from being added to the cart before the 1550 // Subscriptions app fully loads. Once the subscriptions app loads it will re-enable the 1551 // buttons. Use window.BOLD.subscriptions.enableAddToCartButtons enable them manually. 1552 e.preventDefault(); 1553 return false;
1554 } 1555 } 1556 1557 } 1558 }; 1559 1560 window.BOLD.subscriptions.preventCheckout = function(e) { 1561 if ( 1562 e.target.matches(window.BOLD.subscriptions.config.checkoutButtonSelectors.join(',')) 1563 && (window.BOLD.subscriptions.hasSuccessfulAddToCarts() || window.BOLD.subscriptions.hasPendingAddToCarts()) 1564 ) { 1565 // This code prevents checkouts on the shop until the Subscriptions app fully loads. 1566 // When the Subscriptions app is ready it will enable the checkout buttons itself. 1567 // Use window.BOLD.subscriptions.enableCheckoutButtons to enable them manually. 1568 e.preventDefault(); 1569 return false; 1570 } 1571 } 1572 1573 if (!window.BOLD.subscriptions.config.legacyAssetsLoaded) { 1574 1575 document.addEventListener('DOMContentLoaded', window.BOLD.subscriptions.contentLoaded); 1576 } 1577 1578 if (!Element.prototype.matches) { 1579 Element.prototype.matches = 1580 Element.prototype.matchesSelector || 1581 Element.prototype.mozMatchesSelector || 1582 Element.prototype.msMatchesSelector || 1583 Element.prototype.oMatchesSelector || 1584 Element.prototype.webkitMatchesSelector || 1585 function(s) { 1586 var matches = (this.document || this.ownerDocument).querySelectorAll(s), 1587 i = matches.length; 1588 while (--i >= 0 && matches.item(i) !== this) {} 1589 return i > -1; 1590 }; 1591 } 1592 1593 if (!Element.prototype.closest) { 1594 Element.prototype.closest = function(s) { 1595 var el = this; 1596 1597 do { 1598 if (Element.prototype.matches.call(el, s)) return el; 1599 el = el.parentElement || el.parentNode; 1600 } while (el !== null && el.nodeType === 1); 1601 return null; 1602 }; 1603 } 1604 1605 window.BOLD.subscriptions.setVisibilityOfAdditionalCheckoutButtons = function (isVisible) { 1606 if (window.BOLD.subscriptions.config.additionalCheckoutSelectors === undefined) { 1607 return; 1608 } 1609 1610 var selectors = window.BOLD.subscriptions.config.additionalCheckoutSelectors; 1611 1612 for (var i = 0; i < selectors.length; i++) { 1613 var elements = document.querySelectorAll(selectors[i]); 1614 1615 for (var j = 0; j < elements.length; j++) { 1616 elements[j].style.display = isVisible ? 'block' : 'none'; 1617 } 1618 } 1619 } 1620 1621 window.BOLD.subscriptions.hideAdditionalCheckoutButtons = function() { 1622 window.BOLD.subscriptions.setVisibilityOfAdditionalCheckoutButtons(false); 1623 }; 1624 1625 window.BOLD.subscriptions.showAdditionalCheckoutButtons = function() { 1626 window.BOLD.subscriptions.setVisibilityOfAdditionalCheckoutButtons(true); 1627 }; 1628 1629 window.BOLD.subscriptions.enhanceMspUrls = function(data) { 1630 var mspUrl = 'https://sub.boldapps.net/shop/17583/customer_portal'; 1631 var elements = document.querySelectorAll("a[href='"+mspUrl+"']"); 1632 1633 if(!elements.length || !data.success) { 1634 return; 1635 } 1636 1637 for (var i = 0; i < elements.length; i++) { 1638 elements[i].href = elements[i].href + "?jwt="+data.value.jwt+"&customerId="+data.value.customerId; 1639 } 1640 }; 1641 1642 if (!window.BOLD.subscriptions.config.legacyAssetsLoaded) { 1643 window.addEventListener('load', function () { 1644 if (document.getElementById('customer-portal-root')) { 1645 window.BOLD.subscriptions.getJWT(window.BOLD.subscriptions.enhanceMspUrls); 1646 } 1647 }); 1648 1649 // This will be called immediately 1650 // Use this anonymous function to avoid polluting the global namespace 1651 (function() { 1652 var xhr = new XMLHttpRequest(); 1653 xhr.addEventListener('load', window.BOLD.subscriptions.processManifest); 1654 xhr.open('GET', window.BOLD.subscriptions.config.assetBaseUrl + '/static/manifest.json?t=' + (new Date()).getTime()); 1655 xhr.send(); 1656 })() 1657 } 1658 1659 window.BOLD.subscriptions.patches.patchCashier = function() { 1660 if (window.BOLD && window.BOLD.checkout) { 1661 window.BOLD.checkout.disable(); 1662 window.BOLD.checkout.listenerFn = window.BOLD.subscriptions.patches.cashierListenerFn; 1663 window.BOLD.checkout.enable(); 1664 } else if (window.BOLD.subscriptions.patches.currentCashierPatchAttempts < window.BOLD.subscriptions.patches.maxCashierPatchAttempts) { 1665 window.BOLD.subscriptions.patches.currentCashierPatchAttempts++; 1666 setTimeout(window.BOLD.subscriptions.patches.patchCashier, 100); 1667 } 1668 }; 1669 1670 window.BOLD.subscriptions.patches.finishCheckout = function(event, form, cart) { 1671 window.BOLD.subscriptions.patches.currentCheckoutRetries++; 1672 1673 if (!window.BOLD.subscriptions.app 1674 && window.BOLD.subscriptions.patches.currentCheckoutRetries < window.BOLD.subscriptions.patches.maxCheckoutRetries 1675 ) { 1676 setTimeout(function () { window.BOLD.subscriptions.patches.finishCheckout(event, form, cart); }, 100); 1677 return; 1678 } else if (window.BOLD.subscriptions.app) { 1679 window.BOLD.subscriptions.patches.currentCheckoutRetries = 0; 1680 window.BOLD.subscriptions.app.addCartParams(form, cart); 1681 } 1682 1683 var noSubscriptions = false;
1684 if ((window.BOLD.subscriptions.app && window.BOLD.subscriptions.app.successfulAddToCarts.length === 0) 1685 || !window.BOLD.subscriptions.app 1686 ) { 1687 noSubscriptions = true; 1688 event.target.dataset.cashierConfirmedNoPlugins = true; 1689 1690 if (window.BOLD.subscriptions.setCashierFeatureToken) { 1691 window.BOLD.subscriptions.setCashierFeatureToken(false); 1692 } 1693 } 1694 1695 if ((noSubscriptions && window.BOLD.subscriptions.config.cashierPluginOnlyMode) 1696 || (typeof BOLD.checkout.isFeatureRequired === 'function' && !BOLD.checkout.isFeatureRequired()) 1697 ) { 1698 // send them to the original checkout when in plugin only mode 1699 // and either BSUB is there but there are no subscription products 1700 // or BSUB isn't there at all 1701 if (form.dataset.old_form_action) { 1702 form.action = form.dataset.old_form_action; 1703 } 1704 event.target.click(); 1705 } else { 1706 // sends them to Cashier since BSUB got a chance to add it's stuff 1707 // and plugin only mode is not enabled 1708 form.submit(); 1709 } 1710 }; 1711</script>
vendor: 1 bytes, line 1711
1711
1712<script id="bold-subscriptions-app-embed-platform-script" type="text/javascript" defer> 1713 window.BOLD.subscriptions.config.shopPlatformId = '72216215843'; 1714 window.BOLD.subscriptions.config.appSlug = 'subscriptions'; 1715 1716 window.BOLD = window.BOLD || {}; 1717 window.BOLD.subscriptions = window.BOLD.subscriptions || {}; 1718 window.BOLD.subscriptions.data = window.BOLD.subscriptions.data || {}; 1719 window.BOLD.subscriptions.data.platform = window.BOLD.subscriptions.data.platform || {}; 1720 window.BOLD.subscriptions.data.platform.customer = { id: '' }; 1721 window.BOLD.subscriptions.data.platform.product = null; 1722 window.BOLD.subscriptions.data.platform.products = []; 1723 window.BOLD.subscriptions.data.platform.variantProductMap = {}; 1724 1725 window.BOLD.subscriptions.getProductByVariantId = function(variantId) { 1726 if (window.BOLD.subscriptions.data.platform.product && 1727 window.BOLD.subscriptions.data.platform.product.variants) { 1728 for (var i = 0; i < window.BOLD.subscriptions.data.platform.product.variants.length; i++) { 1729 if (window.BOLD.subscriptions.data.platform.product.variants[i].id === variantId) { 1730 return window.BOLD.subscriptions.data.platform.product; 1731 } 1732 } 1733 } 1734 1735 if (window.BOLD.subscriptions.data.platform.variantProductMap[variantId]) { 1736 return window.BOLD.subscriptions.data.platform.variantProductMap[variantId]; 1737 } 1738 1739 var productElements = document.querySelectorAll('[data-product-id]'); 1740 for (var i = 0; i < productElements.length; i++) { 1741 var productJsonElement = productElements[i].querySelector('[data-product-json]'); 1742 1743 if (productJsonElement) { 1744 try { 1745 var productData = JSON.parse(productJsonElement.textContent); 1746 if (productData && productData.variants) { 1747 for (var j = 0; j < productData.variants.length; j++) { 1748 if (productData.variants[j].id === variantId) { 1749 return productData; 1750 } 1751 } 1752 } 1753 } catch (e) { 1754 // Continue if parsing fails 1755 } 1756 } 1757 } 1758 1759 return null; 1760 } 1761 1762 window.BOLD.subscriptions.config.addToCartFormSelectors.push( 1763 '.product-form.product-form-product-template:not(.bold-subscriptions-no-widget)' 1764 ,'.product-form.product-form--payment-button:not(.bold-subscriptions-no-widget)' 1765 ); 1766 window.BOLD.subscriptions.config.addToCartButtonSelectors.push('[type="submit"]'); 1767 window.BOLD.subscriptions.config.quickAddToCartButtonSelectors.push('a[data-event-type="product-click"]'); 1768 window.BOLD.subscriptions.config.widgetInsertBeforeSelectors.push('[type="submit"]'); 1769 window.BOLD.subscriptions.config.cartElementSelectors.push('form[action="/cart"]'); 1770 window.BOLD.subscriptions.config.cartTotalElementSelectors.push('[data-cart-subtotal]', '.text-right .ajaxcart__subtotal'); 1771 window.BOLD.subscriptions.config.checkoutButtonSelectors.push( 1772 '[name="checkout"]', 1773 '[href*="checkout"]:not([href*="tools/checkout"])', 1774 '[onclick*="checkout"]:not([onclick*="tools/checkout"])', 1775 ); 1776 1777 // Discount text markup template 1778 1779 window.BOLD.subscriptions.config.discountItemTemplate = '<div class="bold-subscriptions-discount"><div class="bold-subscriptions-discount__details">{{details}}</div><div class="bold-subscriptions-discount__total">{{total}}</div></div>'; 1780 1781 1782 window.BOLD.subscriptions.getProductIdFromAddToCartForm = function(addToCartForm) { 1783 var idInput = addToCartForm.querySelector('[name="id"]'); 1784 if (idInput === null) { 1785 window.BOLD.subscriptions.logger.error('could not get variant id input from add to cart form â make sure your form has an input with [name="id"]') 1786 return null; 1787 } 1788 1789 var variantId = parseInt(idInput.value, 10); 1790 if (isNaN(variantId)) { 1791 window.BOLD.subscriptions.logger.error('could not parse variant id from [name="id"] input') 1792 return null; 1793 } 1794 1795 var product = window.BOLD.subscriptions.getProductByVariantId(variantId); 1796 1797 if (product === undefined || product === null) { 1798 window.BOLD.subscriptions.logger.error('could not find product data for variant id ' + variantId + ' â product data may not be available on this page') 1799 return null; 1800 } 1801 1802 return product.id; 1803 }; 1804 1805 window.BOLD.subscriptions.getAddToCartForms = function() { 1806 var forms = [];
1807 var idInputs = document.querySelectorAll('[name="id"]'); 1808 1809 for (var i = 0; i < idInputs.length; i++) { 1810 var idInput = idInputs[i]; 1811 var form = idInput.closest('form:not(.bold-subscriptions-no-widget)'); 1812 if (form) { 1813 forms.push(form); 1814 } 1815 } 1816 1817 return forms; 1818 }; 1819 1820 window.BOLD.subscriptions.getJWT = function (callback) { 1821 if(window.BOLD.subscriptions.data.platform.customer.id !== '') { 1822 var shopPlatformId = '72216215843'; 1823 var appSlug = 'subscriptions'; 1824 var customerPlatformId = window.BOLD.subscriptions.data.platform.customer.id; 1825 var proxyPath = '/apps/app-proxy/customers/v1/shops/'+shopPlatformId+'/apps/'+appSlug+'/customers/pid/'+customerPlatformId+'/jwt'; 1826 1827 var xmlhttp = new XMLHttpRequest(); 1828 1829 xmlhttp.onreadystatechange = function() { 1830 if (xmlhttp.readyState === window.BOLD.subscriptions.config.XMLHttpRequest.DONE) { 1831 if (xmlhttp.status === 200) { 1832 var data = JSON.parse(xmlhttp.responseText); 1833 callback({ 1834 success: true, 1835 value: { 1836 jwt: data.bold_platform_jwt, 1837 customerId: window.BOLD.subscriptions.data.platform.customer.id, 1838 }, 1839 }); 1840 } else if (xmlhttp.status === 404) { 1841 callback({ 1842 success: false, 1843 error: 'not_logged_in', 1844 }); 1845 } else { 1846 callback({ 1847 success: false, 1848 error: 'unknown', 1849 }); 1850 } 1851 } 1852 }; 1853 1854 xmlhttp.open("GET", proxyPath, true); 1855 xmlhttp.setRequestHeader('Accept', 'application/liquid'); 1856 xmlhttp.send(); 1857 } else { 1858 callback({ 1859 success: false, 1860 error: 'not_logged_in', 1861 }); 1862 } 1863 }; 1864 1865 window.BOLD.subscriptions.setCashierFeatureToken = function(value) { 1866 if (window.BOLD.checkout_features_defaults && window.BOLD.subscriptions.config.cashierApplicationUUID) { 1867 window.BOLD.checkout_features_defaults.forEach(function(item) { 1868 if (item.id === window.BOLD.subscriptions.config.cashierApplicationUUID) { 1869 item.require = value; 1870 } 1871 }); 1872 } 1873 }; 1874 1875 // Cashier patches 1876 window.BOLD.subscriptions.patches.cashierListenerFn = function(event) { 1877 if (window.BOLD.checkout.isCheckoutButton(event.target) && window.BOLD.checkout.isEnabled()) { 1878 window.BOLD.subscriptions.patches.pushToCashier(event); 1879 } else if(window.BOLD.checkout.isCheckoutButton(event.target) && typeof window.cashier_installed_on_site === 'undefined') { 1880 var request = new XMLHttpRequest(); 1881 request.open('HEAD', '/apps/checkout/isInstalled', false); 1882 request.send(null); 1883 1884 if(request.status >= 200 && request.status < 400) { 1885 window.BOLD.subscriptions.patches.pushToCashier(event); 1886 } else { 1887 window.cashier_installed_on_site = false; 1888 } 1889 } 1890 }; 1891 1892 window.BOLD.subscriptions.localTime = function() { 1893 var localDate = new Date(); 1894 return localDate.getTime(); 1895 }; 1896 1897 1898 window.BOLD.subscriptions.patches.pushToCashier = function(event) { 1899 event.preventDefault(); 1900 var form = window.BOLD.checkout.getForm(event.target); 1901 var formData = new FormData(form); 1902 var request = new XMLHttpRequest(); 1903 request.open('POST', '/cart/update.js?tmp=' + Date.now(), true); 1904 request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); 1905 1906 request.onload = function() { 1907 if (request.status >= 200 && request.status < 400) { 1908 // Success! 1909 var cart = JSON.parse(request.responseText); 1910 1911 // If items are empty redirect back to the cart 1912 if (cart.items.length === 0) { 1913 return window.location.href = '/cart'; 1914 } 1915
1916 cart.items.forEach(function(element) { 1917 delete element.product_description; 1918 }); 1919 1920 if (document.getElementById('CartSpecialInstructions')) { 1921 // If the cart note exists, grab its value 1922 cart.note = document.getElementById('CartSpecialInstructions').value; 1923 } 1924 1925 var cartObj = JSON.stringify(cart); 1926 1927 var form = window.BOLD.checkout.getForm(event.target); 1928 form.dataset.old_form_action = form.action; 1929 form.action = '/apps/checkout/begin-checkout' + googleAnalyticsGetParamString({}); 1930 var cartCookie = window.BOLD.checkout.getCookie('cart'); 1931 var element = document.createElement('INPUT'); 1932 element.type = 'HIDDEN'; 1933 element.name = 'cart_id'; 1934 element.value = cartCookie; 1935 form.appendChild(element); 1936 1937 var dateElement = document.createElement('INPUT'); 1938 dateElement.type = 'HIDDEN'; 1939 dateElement.name = 'checkout_local_time'; 1940 dateElement.value = window.BOLD.subscriptions.localTime(); 1941 form.appendChild(dateElement); 1942 1943 var cartElement = document.createElement('INPUT'); 1944 cartElement.type = 'HIDDEN'; 1945 cartElement.name = 'cart'; 1946 cartElement.value = cartObj; 1947 form.appendChild(cartElement); 1948 form.method = 'POST'; 1949 1950 if(window.BOLD && window.BOLD.checkout && typeof window.BOLD.checkout.languageIsoCode === 'string') { 1951 var langInput = document.createElement('INPUT'); 1952 langInput.type = 'HIDDEN'; 1953 langInput.name = 'language_iso'; 1954 langInput.value = window.BOLD.checkout.languageIsoCode; 1955 form.appendChild(langInput); 1956 } 1957 1958 if (window.BOLD && window.BOLD.common && typeof window.BOLD.common.eventEmitter === 'object' && typeof window.BOLDCURRENCY !== 'undefined') { 1959 window.BOLD.common.eventEmitter.emit('BOLD_CASHIER_checkout', {target: form}); 1960 } 1961 1962 window.BOLD.subscriptions.patches.finishCheckout(event, form, cart); 1963 } 1964 }; 1965 1966 request.send(formData); 1967 }; 1968 1969 1970</script>
1970 1971 1972 1973<!-- END app block --><!-- BEGIN app block: shopify://apps/triplewhale/blocks/triple_pixel_snippet/483d496b-3f1a-4609-aea7-8eee3b6b7a2a --><link rel='preconnect dns-prefetch' href='https://api.config-security.com/' crossorigin /> 1974<link rel='preconnect dns-prefetch' href='https://conf.config-security.com/' crossorigin />
1975<script> 1976/* >> TriplePixel :: start*/ 1977window.TriplePixelData={TripleName:"6666s-ranch-nutriments-supply-shop.myshopify.com",ver:"2.16",plat:"SHOPIFY",isHeadless:false,src:'SHOPIFY_EXT',product:{id:"",name:``,price:"",variant:"",av:{ }},search:"",collection:"457085485347",cart:"notification",template:"collection",curr:"USD" || "USD", market:"47799796003"},function(W,H,A,L,E,_,B,N){function O(U,T,P,H,R){void 0===R&&(R=!1),H=new XMLHttpRequest,P?(H.open("POST",U,!0),H.setRequestHeader("Content-Type","text/plain")):H.open("GET",U,!0),H.send(JSON.stringify(P||{})),H.onreadystatechange=function(){4===H.readyState&&200===H.status?(R=H.responseText,U.includes("/first")?eval(R):P||(N[B]=R)):(299<H.status||H.status<200)&&T&&!R&&(R=!0,O(U,T-1,P))}}if(N=window,!N[H+"sn"]){N[H+"sn"]=1,L=function(){return Date.now().toString(36)+"_"+Math.random().toString(36)};try{A.setItem(H,1+(0|A.getItem(H)||0)),(E=JSON.parse(A.getItem(H+"U")||"[]")).push({u:location.href,r:document.referrer,t:Date.now(),id:L()}),A.setItem(H+"U",JSON.stringify(E))}catch(e){}var i,m,p;A.getItem('"!nC`')||(_=A,A=N,A[H]||(E=A[H]=function(t,e,i){return void 0===i&&(i=[]),"State"==t?E.s:(W=L(),(E._q=E._q||[]).push([W,t,e].concat(i)),W)},E.s="Installed",E._q=[],E.ch=W,B="configSecurityConfModel",N[B]=1,O("https://conf.config-security.com/model",5),i=L(),m=A[atob("c2NyZWVu")],_.setItem("di_pmt_wt",i),p={id:i,action:"profile",avatar:_.getItem("auth-security_rand_salt_"),time:m[atob("d2lkdGg=")]+":"+m[atob("aGVpZ2h0")],host:A.TriplePixelData.TripleName,plat:A.TriplePixelData.plat,url:window.location.href.slice(0,500),ref:document.referrer,ver:A.TriplePixelData.ver},O("https://api.config-security.com/event",5,p),O("https://api.config-security.com/first?host=".concat(p.host,"&plat=").concat(p.plat),5)))}}("","TriplePixel",localStorage); 1978/* << TriplePixel :: end*/ 1979</script>
1979 1980 1981 1982 1983<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 --> 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996
1996<script async src="https://static.klaviyo.com/onsite/js/UFbUD6/klaviyo.js?company_id=UFbUD6"></script>
1996 1997
1997<script>!function(){if(!window.klaviyo){window._klOnsite=window._klOnsite||[];try{window.klaviyo=new Proxy({},{get:function(n,i){return"push"===i?function(){var n;(n=window._klOnsite).push.apply(n,arguments)}:function(){for(var n=arguments.length,o=new Array(n),w=0;w<n;w++)o[w]=arguments[w];var t="function"==typeof o[o.length-1]?o.pop():void 0,e=new Promise((function(n){window._klOnsite.push([i].concat(o,[function(i){t&&t(i),n(i)}]))}));return e}}})}catch(n){window.klaviyo=window.klaviyo||[],window.klaviyo.push=function(){var n;(n=window._klOnsite).push.apply(n,arguments)}}}}();</script>
1997 1998 1999 2000 2001 2002 2003 2004
2004<script> 2005 window.klaviyoReviewsProductDesignMode = false 2006 </script>
2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016<!-- END app block -->
2016<script src="https://cdn.shopify.com/extensions/01a11c04-5004-7089-99f7-e26379ae3845/forms-2615/assets/shopify-forms-loader.js" type="text/javascript" defer="defer"></script>
2016 2017<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
2018<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: 72216215843,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "collection"};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 2018
2018
2019<script> 2020 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 2021</script>
vendor: 1 bytes, line 2021
2021
2022<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}
2022).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: 72216215843,storefrontBaseUrl: "https://6666equinesupplements.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://6666equinesupplements.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab"],webPixelsConfigList: [{"id":"2787868963","configuration":"{\"publicKey\":\"pub_9ae7e9023a36edcbeee6\",\"apiUrl\":\"https:\\\/\\\/tracking.refersion.com\",\"urlIdDetection\":\"false\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"86ecbc68ef74dc9bb982fccd1962837f","type":"APP","apiClientId":147004,"privacyPurposes":["ANALYTICS","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"2339733795","configuration":"{\"shopId\":\"6666s-ranch-nutriments-supply-shop.myshopify.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"7093dff47f098f6de2afb75b62011ebe","type":"APP","apiClientId":2753413,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"}
2022,{"id":"1828028707","configuration":"{\"accountID\":\"UFbUD6\",\"webPixelConfig\":\"eyJlbmFibGVBZGRlZFRvQ2FydEV2ZW50cyI6IHRydWV9\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"c63c5b72c8d77be5f2d27d14c081da38","type":"APP","apiClientId":123074,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"812187939","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-XE34QXJY9R\\\",\\\"AW-11411739468\\\",\\\"GT-5R7RTCZ\\\"],\\\"target_country\\\":\\\"US\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-XE34QXJY9R\\\",\\\"AW-11411739468\\\/1n-SCKn51vYYEMymxcEq\\\"]},{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-XE34QXJY9R\\\",\\\"AW-11411739468\\\/DFcCCKP51vYYEMymxcEq\\\"]},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-XE34QXJY9R\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-XE34QXJY9R\\\",\\\"AW-11411739468\\\/iA9UCKD51vYYEMymxcEq\\\",\\\"MC-BSJEPXQ9C4\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-XE34QXJY9R\\\"},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-XE34QXJY9R\\\",\\\"AW-11411739468\\\/SdSgCJr51vYYEMymxcEq\\\",\\\"MC-BSJEPXQ9C4\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-XE34QXJY9R\\\",\\\"AW-11411739468\\\/d35gCJ351vYYEMymxcEq\\\",\\\"MC-BSJEPXQ9C4\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-XE34QXJY9R\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-XE34QXJY9R\\\",\\\"AW-11411739468\\\/kgFZCKz51vYYEMymxcEq\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-XE34QXJY9R\\\",\\\"AW-11411739468\\\/pxgICKb51vYYEMymxcEq\\\"]},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-XE34QXJY9R\\\"}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"a3321ca85cf5aaf6b57585fcd8d67b3a","type":"APP","apiClientId":1780363,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"795541795","configuration":"{\"pixel_id\":\"888202013283696\",\"pixel_type\":\"facebook_pixel\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"bd2f978c17a94bbb8a74d43de2165dc5","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"443449635","configuration":"{\"shopDomain\":\"6666s-ranch-nutriments-supply-shop.myshopify.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"1cc50c06a2fd060c142979e7a3df92db","type":"APP","apiClientId":2436932,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}
2022],isMerchantRequest: false,initData: {"shop":{"name":"6666 Equine Supplements","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"6666s-ranch-nutriments-supply-shop.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/6666equinesupplements.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[{"id":"8126314643747","handle":"joint-pellet","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"46018883256611","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8169581642019","handle":"pre-probiotic-powder","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"46018911174947","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8126314217763","handle":"electrolyte-paste","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"46018932080931","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8126314479907","handle":"electrolyte-powder","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"50868099121443","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"8126314807587","handle":"multi-vitamin-mineral-pellet","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"44280434524451","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}],"purchasingCompany":null},},"https://6666equinesupplements.com/cdn","7ec887c8w14f9f074p854094e1m1370c602",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"182238544163","themePublished":"true","eventMetadataId":"48a2de28-6b07-4fab-9ec2-c6e9a3a89da1","pageType":"collection","resourceId":"457085485347","shopId":"72216215843","storefrontBaseUrl":"https:\/\/6666equinesupplements.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\"]","isMerchantRequest":"false","hashVersion":"7ec887c8w14f9f074p854094e1m1370c602","publish":"custom","events":"[[\"page_viewed\",{}],[\"collection_viewed\",{\"collection\":{\"id\":\"457085485347\",\"title\":\"Legendary Equine Supplements\",\"productVariants\":[{\"price\":{\"amount\":181.66,\"currencyCode\":\"USD\"},\"product\":{\"title\":\"Equine Joint Health Pellets\",\"vendor\":\"6666s Ranch Nutriments\",\"id\":\"8126314643747\",\"untranslatedTitle\":\"Equine Joint Health Pellets\",\"url\":\"\/products\/joint-pellet\",\"type\":\"\"},\"id\":\"46018883256611\",\"image\":{\"src\":\"\/\/6666equinesupplements.com\/cdn\/shop\/files\/Transparent_Backgroun
2022d_6666_ES_2025_Joint_Health_Pellets_60_Day_Front_copy.webp?v=1764791488\"},\"sku\":\"RNJoint60\",\"title\":\"60 Day Supply\",\"untranslatedTitle\":\"60 Day Supply\"},{\"price\":{\"amount\":61.66,\"currencyCode\":\"USD\"},\"product\":{\"title\":\"Equine Complete Gut Protection\",\"vendor\":\"6666s Ranch Nutriments\",\"id\":\"8169581642019\",\"untranslatedTitle\":\"Equine Complete Gut Protection\",\"url\":\"\/products\/pre-probiotic-powder\",\"type\":\"\"},\"id\":\"46018911174947\",\"image\":{\"src\":\"\/\/6666equinesupplements.com\/cdn\/shop\/files\/Transparent_Background_6666_ES_2025_Complete_Gut_Protection_Powder_30_Serving_Front_with_Scoop_copy.webp?v=1764788995\"},\"sku\":\"RNGut30\",\"title\":\"30 Day Supply\",\"untranslatedTitle\":\"30 Day Supply\"},{\"price\":{\"amount\":28.92,\"currencyCode\":\"USD\"},\"product\":{\"title\":\"Equine Electrolyte Paste\",\"vendor\":\"6666s Ranch Nutriments\",\"id\":\"8126314217763\",\"untranslatedTitle\":\"Equine Electrolyte Paste\",\"url\":\"\/products\/electrolyte-paste\",\"type\":\"\"},\"id\":\"46018932080931\",\"image\":{\"src\":\"\/\/6666equinesupplements.com\/cdn\/shop\/files\/6ES_Electrolyte_Paste_Transparent_Backgroun
2022d_1.png?v=1789156975\"},\"sku\":\"RNElectPst3-bundle\",\"title\":\"3 Pack Bundle\",\"untranslatedTitle\":\"3 Pack Bundle\"},{\"price\":{\"amount\":36.66,\"currencyCode\":\"USD\"},\"product\":{\"title\":\"Equine Electrolyte Recover Powder\",\"vendor\":\"6666s Ranch Nutriments\",\"id\":\"8126314479907\",\"untranslatedTitle\":\"Equine Electrolyte Recover Powder\",\"url\":\"\/products\/electrolyte-powder\",\"type\":\"\"},\"id\":\"50868099121443\",\"image\":{\"src\":\"\/\/6666equinesupplements.com\/cdn\/shop\/files\/Transparent_Background_6666_ES_2025_Label_Electrolyte_Powder_30_Serving_With_Scoop_copy.webp?v=1773771146\"},\"sku\":\"RNElect30\",\"title\":\"30 Day Supply\",\"untranslatedTitle\":\"30 Day Supply\"},{\"price\":{\"amount\":37.66,\"currencyCode\":\"USD\"},\"product\":{\"title\":\"Equine Multi-Vitamin \u0026 Mineral Pellets\",\"vendor\":\"6666s Ranch Nutriments\",\"id\":\"8126314807587\",\"untranslatedTitle\":\"Equine Multi-Vitamin \u0026 Mineral Pellets\",\"url\":\"\/products\/multi-vitamin-mineral-pellet\",\"type\":\"\"},\"id\":\"44280434524451\",\"image\":{\"src\":\"\/\/6666equinesupplements.com\/cdn\/shop\/files\/Transparent_Backgroun
2022d_-_Front_-_6ES_2025_Multi_Vitamin_Mineral_30_Day_copy.webp?v=1764789828\"},\"sku\":\"RNVit30\",\"title\":\"30 Day Supply\",\"untranslatedTitle\":\"30 Day Supply\"}]}}]]"});})();</script>
2022<script> 2023 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 2024 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 2025 window.ShopifyAnalytics.meta.currency = 'USD'; 2026 var meta = {"products":[{"id":8126314643747,"gid":"gid:\/\/shopify\/Product\/8126314643747","vendor":"6666s Ranch Nutriments","type":"","handle":"joint-pellet","variants":[{"id":46018883256611,"price":18166,"name":"Equine Joint Health Pellets - 60 Day Supply","public_title":"60 Day Supply","sku":"RNJoint60"},{"id":54176667042083,"price":36366,"name":"Equine Joint Health Pellets - 120 Day Supply","public_title":"120 Day Supply","sku":"RNJoint120"}],"remote":false},{"id":8169581642019,"gid":"gid:\/\/shopify\/Product\/8169581642019","vendor":"6666s Ranch Nutriments","type":"","handle":"pre-probiotic-powder","variants":[{"id":46018911174947,"price":6166,"name":"Equine Complete Gut Protection - 30 Day Supply","public_title":"30 Day Supply","sku":"RNGut30"},{"id":46018911207715,"price":27066,"name":"Equine Complete Gut Protection - 150 Day Supply","public_title":"150 Day Supply","sku":"RNGut150"}],"remote":false},{"id":8126314217763,"gid":"gid:\/\/shopify\/Product\/8126314217763","vendor":"6666s Ranch Nutriments","type":"","handle":"electrolyte-paste","variants":[{"id":46018932080931,"price":2892,"name":"Equine Electrolyte Paste - 3 Pack Bundle","public_title":"3 Pack Bundle","sku":"RNElectPst3-bundle"},{"id":46018932113699,"price":11566,"name":"Equine Electrolyte Paste - 12 Pack Bundle","public_title":"12 Pack Bundle","sku":"RNElectPst12-bundle"}],"remote":false},{"id":8126314479907,"gid":"gid:\/\/shopify\/Product\/8126314479907","vendor":"6666s Ranch Nutriments","type":"","handle":"electrolyte-powder","variants":[{"id":50868099121443,"price":3666,"name":"Equine Electrolyte Recover Powder - 30 Day Supply","public_title":"30 Day Supply","sku":"RNElect30"},{"id":54169804505379,"price":15566,"name":"Equine Electrolyte Recover Powder - 150 Day Supply","public_title":"150 Day Supply","sku":"RNElect150"}],"remote":false},{"id":8126314807587,"gid":"gid:\/\/shopify\/Product\/8126314807587","vendor":"6666s Ranch Nutriments","type":"","handle":"multi-vitamin-mineral-pellet","variants":[{"id":44280434524451,"price":3766,"name":"Equine Multi-Vitamin \u0026 Mineral Pellets - 30 Day Supply","public_title":"30 Day Supply","sku":"RNVit30"},{"id":54169816138019,"price":16066,"name":"Equine Multi-Vitamin \u0026 Mineral Pellets - 150 Day Supply","public_title":"150 Day Supply","sku":"RNVit150"},{"id":44280434557219,"price":66066,"name":"Equine Multi-Vitamin \u0026 Mineral Pellets - 750 Day Supply","public_title":"750 Day Supply","sku":"RNVit750"}],"remote":false}],"page":{"pageType":"collection","resourceType":"collection","resourceId":457085485347,"requestId":"10aa7f81-9f22-4ac9-bd52-43a3cea39e07-1791510349"}}; 2027 for (var attr in meta) { 2028 window.ShopifyAnalytics.meta[attr] = meta[attr]; 2029 } 2030</script>
vendor: 1 bytes, line 2030
2030
2031<script class="analytics"> 2032 (function () { 2033 var customDocumentWrite = function(content) { 2034 var jquery = null; 2035 2036 if (window.jQuery) { 2037 jquery = window.jQuery; 2038 } else if (window.Checkout && window.Checkout.$) { 2039 jquery = window.Checkout.$; 2040 } 2041 2042 if (jquery) { 2043 jquery('body').append(content); 2044 } 2045 }; 2046 2047 var hasLoggedConversion = function(token) { 2048 if (token) { 2049 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 2050 } 2051 return false; 2052 } 2053 2054 var setCookieIfConversion = function(token) { 2055 if (token) { 2056 var twoMonthsFromNow = new Date(Date.now()); 2057 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 2058 2059 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 2060 } 2061 } 2062 2063 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 2064 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 2065 if (trekkie.integrations) { 2066 return; 2067 } 2068 trekkie.methods = [ 2069 'identify', 2070 'page', 2071 'ready', 2072 'track', 2073 'trackForm', 2074 'trackLink' 2075 ]; 2076 trekkie.factory = function(method) { 2077 return function() { 2078 var args = Array.prototype.slice.call(arguments); 2079 args.unshift(method); 2080 trekkie.push(args); 2081 if (method == 'track' || method == 'page') { 2082 var pageUrl; 2083 try { 2084 pageUrl = window.location.href; 2085 } catch (e) {} 2086 var pageReferrer; 2087 try { 2088 pageReferrer = document.referrer; 2089 } catch (e) {} 2090 try { 2091 if (window.__TREKKIE_SHIM_QUEUE == null) { 2092 window.__TREKKIE_SHIM_QUEUE = []; 2093 } 2094 window.__TREKKIE_SHIM_QUEUE.push({ 2095 from: 'trekkie-stub', 2096 method: method, 2097 args: args.slice(1), 2098 pageContext: { 2099 url: pageUrl, 2100 referrer: pageReferrer 2101 } 2102 }); 2103 } catch (e) { 2104 // no-op 2105 } 2106 } 2107 return trekkie; 2108 }; 2109 }; 2110 for (var i = 0; i < trekkie.methods.length; i++) { 2111 var key = trekkie.methods[i]; 2112 trekkie[key] = trekkie.factory(key); 2113 } 2114 trekkie.load = function(config) { 2115 trekkie.config = config || {}; 2116 trekkie.config.initialDocumentCookie = document.cookie; 2117 var first = document.getElementsByTagName('script')[0]; 2118var script = document.createElement('script'); 2119script.type = 'text/javascript'; 2120script.onerror = function(e) { 2121 var scriptFallback = document.createElement('script'); 2122 scriptFallback.type = 'text/javascript'; 2123 scriptFallback.onerror = function(error) { 2124 var Monorail = { 2125 produce: function produce(monorailDomain, schemaId, payload) { 2126 var currentMs = new Date().getTime(); 2127 var event = { 2128 schema_id: schemaId, 2129 payload: payload, 2130 metadata: { 2131 event_created_at_ms: currentMs, 2132 event_sent_at_ms: currentMs 2133 } 2134 }; 2135 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 2136 }, 2137 sendRequest: function sendRequest(endpointUrl, payload) { 2138 // Try the sendBeacon API 2139 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 2140 var blobData = new window.Blob([payload], { 2141 type: 'text/plain' 2142 }); 2143 2144 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 2145 return true; 2146 } // sendBeacon was not successful 2147 2148 } // XHR beacon 2149 2150 var xhr = new XMLHttpRequest(); 2151 2152 try { 2153 xhr.open('POST', endpointUrl); 2154 xhr.setRequestHeader('Content-Type', 'text/plain'); 2155 xhr.send(payload); 2156 } catch (e) { 2157 console.log(e); 2158 } 2159 2160 return false; 2161 }, 2162 isIos12: function isIos12() { 2163 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 2164 } 2165 }; 2166 Monorail.produce('monorail-edge.shopifysvc.com', 2167 'trekkie_storefront_load_errors/1.1', 2168 {shop_id: 72216215843, 2169 theme_id: 182238544163, 2170 app_name: "storefront", 2171 context_url: window.location.href, 2172 source_url: "//6666equinesupplements.com/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js"}); 2173 2174 }; 2175 scriptFallback.async = true; 2176 scriptFallback.src = '//6666equinesupplements.com/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js'; 2177 first.parentNode.insertBefore(scriptFallback, first); 2178}; 2179script.async = true; 2180script.src = '//6666equinesupplements.com/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js'; 2181first.parentNode.insertBefore(script, first); 2182 2183 }; 2184 trekkie.load( 2185 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":72216215843,"isMerchantRequest":null,"themeId":182238544163,"themeCityHash":"8511992612295791598","contentLanguage":"en","currency":"USD","eventMetadataId":"48a2de28-6b07-4fab-9ec2-c6e9a3a89da1"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 2186 ); 2187 2188 var loaded = false;
2189 trekkie.ready(function() { 2190 if (loaded) return; 2191 loaded = true; 2192 2193 window.ShopifyAnalytics.lib = window.trekkie; 2194 2195 var originalDocumentWrite = document.write; 2196 document.write = customDocumentWrite; 2197 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 2198 document.write = originalDocumentWrite; 2199 2200 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 2201 var token = match? match[1]: undefined; 2202 if (!hasLoggedConversion(token)) { 2203 setCookieIfConversion(token); 2204 window.ShopifyAnalytics.lib.track("Viewed Product Category",{"currency":"USD","category":"Collection: all-products","collectionName":"all-products","collectionId":457085485347,"nonInteraction":true},undefined,undefined,{"shopifyEmitted":true}); 2205 } 2206 }); 2207 2208 window.ShopifyAnalytics.lib.page(null,{"pageType":"collection","resourceType":"collection","resourceId":457085485347,"requestId":"10aa7f81-9f22-4ac9-bd52-43a3cea39e07-1791510349","shopifyEmitted":true}); 2209 2210 var eventsListenerScript = document.createElement('script'); 2211 eventsListenerScript.async = true; 2212 eventsListenerScript.src = "//6666equinesupplements.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 2213 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 2214})();</script>
vendor: 1 bytes, line 2214
2214
2215<script 2216 defer 2217 src="https://6666equinesupplements.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.10.1.min.js" 2218 data-application="storefront-renderer" 2219 data-shop-id="72216215843" 2220 data-render-region="gcp-us-central1" 2221 data-page-type="collection" 2222 data-theme-instance-id="182238544163" 2223 data-theme-name="6666's Theme" 2224 data-theme-version="2.2.0" 2225 data-monorail-region="shop_domain" 2226 data-resource-timing-sampling-rate="10" 2227 data-shs="true" 2228 data-shs-beacon="true" 2229 data-shs-export-with-fetch="true" 2230 data-shs-logs-sample-rate="1" 2231 data-shs-beacon-endpoint="https://6666equinesupplements.com/api/collect" 2232></script>
2232 2233<meta name="shopify-y" content="821e50e8-54bb-4613-bec8-8ede2f93575f" data-expiration="1823067949000"><meta name="shopify-s" content="3dc9259b-d28f-4d8e-8723-dce2eaa3fba3" data-expiration="1791512149000"> 2234</head> 2235<body class="m-0 min-h-full text-fs-black bg-fs-white"> 2236 2237 <!-- Google Tag Manager (noscript) -->
vendor: 71 bytes, lines 2237-2239
2237 2238 <noscript> 2239 <iframe src="//www.googletagmanager.com/ns.html?id=
2239GTM-WM2BDS5N
vendor: 88 bytes, lines 2239-2241
2239" height="0" width="0" style="display:none;visibility:hidden"></iframe> 2240 </noscript> 2241
2241<!-- End Google Tag Manager (noscript) --> 2242 2243 <a class="skip-to-content-link button sr-only" href="#MainContent"> 2244 Skip to content 2245 </a> 2246<cart-drawer 2247 x-data="CartDrawer" 2248 x-ref="cart_drawer" 2249 x-init="window.cartDrawerComponent = $data" 2250 id="cart-drawer" 2251 @cart-updated.window="renderContents($event)" 2252 @qty-updated.debounce.window="setQty($event)" 2253 @toggle-cart.window="showCartDrawer = !showCartDrawer" 2254 @keyup.escape.prevent="showCartDrawer = false" 2255 :class="drawerClasses()" 2256 class="group fixed z-1000 left-0 top-0 w-screen translate-x-0 h-full flex justify-end transition-[visibility] duration-500 drawer"> 2257 <div id="CartDrawer" class="cart-drawer"> 2258 <!-- Main drawer --> 2259 <div 2260 class="drawer__inner bg-fs-white overflow-y-scroll h-full w-screen flex flex-col group-[.active]:translate-x-0 translate-x-full ease-linear transition-transform duration-300" 2261 role="dialog" 2262 x-ref="drawer_inner" 2263 aria-modal="true" 2264 aria-label="Your cart" 2265 tabindex="-1"> 2266 <!-- Cart drawer header --> 2267 <div class="flex justify-between items-center bg-fs-tan text-fs-ltbrown p-4 relative border-b border-fs-brown/10"> 2268 <p class=" 2269font-heading text-3xl font-normal tracking-normal leading-normal sm:leading-normal md:leading-normal lg:leading-normal xl:leading-normal 2xl:leading-normal text-fs-ltbrown">Your Cart</p> 2270 <button class="drawer__close" type="button" @click="showCartDrawer = false" aria-label="Close"> 2271 2272<svg 2273 id="drawer-close" 2274 2275 2276 class=" z-1 w-3 h-3 sm:w-8 sm:h-8 align-middle fill-fs-black dark:fill-fs-white text-fs-black dark:text-fs-white hover:text-fs-red hover:fill-fs-red icon icon-close 2277" 2278 aria-hidden="true" 2279 focusable="false" 2280 role="presentation" 2281 2282> 2283 <use xlink:href="#icon-close"/> 2284</svg> 2285 </button> 2286 </div> 2287 <!-- End cart header --><!-- Empty cart --> 2288 <div class="h-full flex flex-col justify-center"> 2289 <div class="center"> 2290 <div class="text-center"> 2291 <div class="h-full p-4 flex flex-col gap-2"> 2292 <div class="mb-8"> 2293 <p class="text-2xl block mb-4 text-fs-ltbrown font-heading font-normal tracking-wider capitalize">Your cart is empty</p> 2294 2295 2296 2297<div id="Button_continue-_container" class="flex first-of-type:mt-0 0 text-left justify-center items-center "> 2298 2299 <a id="button-continue-" class="btn shrink font-subheading hover: hover: hover: " href="/collections/all"> 2300 2301 Continue Shopping 2302 </a> 2303 2304</div> 2305 </div> 2306 <div><p class="text-2xl block mb-4 text-fs-ltbrown font-heading font-normal tracking-wider capitalize">Have an account?</p> 2307 2308 2309 2310<div id="Button_continue-_container" class="flex first-of-type:mt-0 0 text-left justify-center items-center "> 2311 2312 <a id="button-continue-" class="btn shrink font-subheading hover: hover: hover: " href="/account/login"> 2313 2314 Log in to check out faster 2315 </a> 2316 2317</div> 2318</div> 2319 </div> 2320 </div> 2321 </div></div> 2322 <!-- End empty cart --> 2323 <!-- End cart footer --> 2324 </div> 2325 <!-- End main drawer --> 2326 </div> 2327</cart-drawer> 2328
2329<script> 2330 document.addEventListener('alpine:init', () => { 2331 Alpine.data('CartDrawer', () => ({ 2332 showCartDrawer: false, 2333 disableCartItems: false, 2334 emptyCart: true, 2335 2336 // Sets classes for main container 2337 drawerClasses: function() { 2338 let classes = 'animate' 2339 if (this.showCartDrawer === true) { 2340 classes = classes + ' active visible' 2341 } else { 2342 classes = classes + ' invisible' 2343 } 2344 if (this.emptyCart === true) { 2345 classes = classes + ' is-empty' 2346 } 2347 return classes 2348 }, 2349 2350 // Increase or decrease quantity of item (triggered by quantity input) 2351 setQty: function(event) { 2352 if (event.detail.index !== undefined) { 2353 this.updateQuantity(event.detail.index, event.detail.quantity) 2354 } 2355 }, 2356 2357 // Remove item from cart (triggered by trash icon) 2358 removeItem: function(e) { 2359 this.updateQuantity(e.target.dataset.index, 0) 2360 }, 2361 2362 // Renders cart drawer when cart is updated 2363 renderContents: function(response) { 2364 if (window._bogoSuppressDrawerRender) return; 2365 if (response.detail) { 2366 data = response.detail 2367 } else { 2368 data = response 2369 } 2370 if (data.status) { 2371 setTimeout(() => { 2372 window.location.reload() 2373 }, "3000") 2374 } else {
2375 this.getSectionsToRender().forEach((section => { 2376 let domELement = document.querySelector('#'+section.returnedSectionKey) 2377 if(domELement) { 2378 domELement.innerHTML = this.getSectionInnerHTML(data.sections[section.returnedSectionKey], section.selector) 2379 } 2380 })) 2381 this.$nextTick(() => this.loadCrossSells()); 2382 } 2383 }, 2384 2385 // Increase/Decrease quantity (triggered by trash icon & quantity form) 2386 updateQuantity: function (line, quantity) { 2387 this.disableCartItems = true 2388 2389 const sections = Array.prototype.map.call(this.getSectionsToRender(), function(item) { return item.returnedSectionKey; }).join(",") 2390 const config = fetchConfig(); 2391 config.body = JSON.stringify({ 2392 line, 2393 quantity, 2394 sections, 2395 sections_url: window.location.pathname 2396 }); 2397 2398 fetch(`${routes.cart_change_url}.js`, config) 2399 .then((response) => response.json()) 2400 .then((response) => { 2401 const quantityInput = document.getElementById(`Drawer-quantity-${line}`); 2402 const itemRows = document.querySelectorAll('.cart-item'); 2403 2404 if (response.error) { 2405 quantityInput.value = quantityInput.getAttribute('value'); 2406 return; 2407 } 2408 if (response.status) { 2409 } 2410 2411 const cartDrawerWrapper = this.$refs.cart_drawer; 2412 if (cartDrawerWrapper) cartDrawerWrapper.classList.toggle('is-empty', response.item_count === 0); 2413 2414 this.$dispatch('cart-updated', response); 2415 const updatedValue = response.items[line - 1] ? response.items[line - 1].quantity : undefined; 2416 let message = ''; 2417 }) 2418 .catch((error) => { 2419 console.log(error) 2420 this.$refs.cart_items.querySelectorAll('.loading-overlay').forEach((overlay) => overlay.classList.add('hidden')); 2421 const errors = document.getElementById('cart-errors') || document.getElementById('CartDrawer-CartErrors'); 2422 errors.textContent = window.cartStrings.error; 2423 }) 2424 .finally(() => { 2425 this.disableCartItems = false 2426 this.refreshCart() 2427 }); 2428 }, 2429 2430 // Refresh the cart contents 2431 refreshCart: function () { 2432 fetch('/?sections=cart-drawer,cart-icon-bubble') 2433 .then((response) => response.json()) 2434 .then((response) => { 2435 // Refresh drawer elements 2436 const drawerHtml = new DOMParser().parseFromString(response['cart
2436-drawer'], 'text/html') 2437 const drawerSelectors = ['#cart-drawer-items', '#cart-drawer-footer'] 2438 for (const selector of drawerSelectors) { 2439 const targetElement = document.querySelector(selector) 2440 const sourceElement = drawerHtml.querySelector(selector) 2441 if (targetElement && sourceElement) { 2442 targetElement.replaceWith(sourceElement) 2443 } 2444 } 2445 2446 // Refresh header icon bubble element 2447 const bubbleHtml = new DOMParser().parseFromString(response['cart-icon-bubble'], 'text/html') 2448 const targetElement = document.querySelector('#cart-icon-bubble') 2449 const sourceElement = bubbleHtml.querySelector('#shopify-section-cart-icon-bubble') 2450 if (targetElement && sourceElement) { 2451 // Preserve the target ID â source has id="shopify-section-cart-icon-bubble" 2452 // but subsequent lookups need id="cart-icon-bubble" to find it again 2453 sourceElement.id = targetElement.id 2454 targetElement.replaceWith(sourceElement) 2455 } 2456 }) 2457 .then(() => this.loadCrossSells()) 2458 .catch((error) => { 2459 console.error('Error :', error) 2460 }) 2461 }, 2462 getSectionsToRender: function() { 2463 return [ 2464 { returnedSectionKey: 'main-cart', selector: '#cart' }, 2465 { returnedSectionKey: 'cart-drawer', selector: '#cart-drawer' }, 2466 { returnedSectionKey: 'cart-icon-bubble', selector: '#shopify-section-cart-icon-bubble'}, 2467 ] 2468 }, 2469 // Fetch and render cross-sell cards for products in cart 2470 loadCrossSells: function() { 2471 const container = this.$refs.cross_sells; 2472 if (!container) return; 2473 2474 container.innerHTML = ''; 2475 2476 // Collect unique product handles and variant IDs currently in cart 2477 const cartItems = document.querySelectorAll('.cart-item[data-product-handle]'); 2478 const cartVariantIds = new Set(); 2479 const productHandles = new Set(); 2480 2481 cartItems.forEach(item => { 2482 const handle = item.dataset.productHandle; 2483 const variantId = item.dataset.variantId; 2484 if (handle) productHandles.add(handle); 2485 if (variantId) cartVariantIds.add(variantId); 2486 }); 2487 2488 // Fetch cross-sell HTML for each unique product 2489 productHandles.forEach(handle => { 2490 fetch(`/products/${handle}?view=crosssells`) 2491 .then(res => res.text()) 2492 .then(html => { 2493 if (!html.trim()) return; 2494 2495 const temp = document.createElement('div'); 2496 temp.innerHTML = html; 2497 2498 // Deduplicate: skip if the cross-sell variant is already in cart 2499 const card = temp.querySelector('[data-cross-sell-variant]'); 2500 if (card && cartVariantIds.has(card.dataset.crossSellVariant)) return; 2501 2502 container.appendChild(temp); 2503 }) 2504 .catch(err => console.error(`Cross-sell load error for ${handle}:`, err)); 2505 }); 2506 }, 2507 2508 getSectionInnerHTML: function(html, selector = '.shopify-section') { 2509 let domItem = new DOMParser().parseFromString(html, 'text/html').querySelector(selector) 2510 if (domItem) { 2511 return domItem.innerHTML 2512 } else { 2513 console.log(selector) 2514 console.log(html) 2515 return false 2516 } 2517 let returnMarkup = new DOMParser() 2518 .parseFromString(html, 'text/html') 2519 .querySelector(selector).innerHTML 2520 if (returnMarkup == null) { 2521 console.log(selector) 2522 console.log(html) 2523 } 2524 return returnMarkup 2525 }, 2526 })) 2527
2528 Alpine.data('crossSellCard', (variantId) => ({ 2529 isAdding: false, 2530 2531 async addToCart() { 2532 this.isAdding = true; 2533 try { 2534 const config = fetchConfig(); 2535 config.body = JSON.stringify({ 2536 items: [{ id: variantId, quantity: 1 }], 2537 sections: 'cart-notification-product,cart-notification-button,cart-drawer,cart-icon-bubble', 2538 sections_url: window.location.pathname, 2539 }); 2540 2541 const response = await fetch(`${routes.cart_add_url}.js`, config); 2542 const data = await response.json(); 2543 2544 if (data.status) { 2545 throw new Error(data.description || 'Could not add to cart'); 2546 } 2547 2548 this.$dispatch('cart-updated', data); 2549 } catch (error) { 2550 console.error('Cross-sell add failed:', error); 2551 } finally { 2552 this.isAdding = false; 2553 } 2554 } 2555 })) 2556 }) 2557</script>
2557 2558<div x-data="bogoController" x-init="init()" class="hidden" aria-hidden="true"></div> 2559 2560
2560<script> 2561 window.bogoConfig = { 2562 rules: [{ 2563 "handle": "booth-joint-60-to-gut-30", 2564 "name": "Booth â Joint 60 to Gut 30", 2565 "active": false, 2566 "giftVariantId": 46018911174947, 2567 "eligibleVariantIds": [46018883256611], 2568 "requiredCodes": ["FREEGUT"], 2569 "conflictingCodes": [], 2570 "maxGiftQuantity": 2, 2571 "matchTriggerQuantity": true 2572 }] 2573 }; 2574 2575 document.addEventListener('alpine:init', () => { 2576 const asBool = (v) => v === true || v === 'true'; 2577 const BOGO_LATCH_KEY = 'bogo:nonFiring'; 2578 2579 Alpine.data('bogoController', () => ({ 2580 isProcessing: false, 2581 dirty: false, 2582 rules: [], 2583 // Consecutive failed ADD mutations per rule handle. Prevents a permanently 2584 // un-addable gift (e.g. out of stock -> 422) from re-attempting on every 2585 // cart-updated forever. Resets on navigation, which is acceptable. 2586 failures: {}, 2587 // Rules whose gift Shopify actually charged for, so we retracted it rather 2588 // than let the customer pay for something the site added. Keyed by rule 2589 // handle, VALUED by the customer-cart signature at the moment we latched â 2590 // so the latch self-clears when the shopper changes anything. A one-way 2591 // latch would mean a single false observation silently kills the offer for 2592 // the rest of the page with only a console warning to show for it. 2593 nonFiring: {}, 2594 2595 async init() { 2596 // INACTIVE RULES ARE DELIBERATELY KEPT. A rule with active:false still 2597 // needs an owner to remove the lines it previously added â otherwise 2598 // flipping a promo off in the admin strands a now-charged gift in every 2599 // in-flight cart. `active` is enforced in decideForRule's `enabled` 2600 // gate, whose !enabled branch removes the rule's own line. 2601 // Only a rule with no gift variant is truly inert. 2602 this.rules = (window.bogoConfig.rules || []).filter(r => r.giftVariantId); 2603 2604 // Restore any charged-gift latches from earlier in this browsing session 2605 // BEFORE the first evaluation, so a misconfigured rule does not re-add on 2606 // every page view. 2607 this.restoreLatches(); 2608 2609 // Capture phase fires BEFORE bubble listeners. We use it to set a flag 2610 // (window._bogoSuppressDrawerRender) that gates cart-drawer's and cart.liquid's 2611 // renderContents â gated only because they have an early-return on that flag. 2612 // We deliberately do NOT stopPropagation, so cart-notification still fires 2613 // and shows the user's original product correctly. 2614 window.addEventListener('cart-updated', this.onCartUpdate.bind(this), { capture: true }); 2615 this.wrapCartNotification(); 2616 // Initial sync on page load â no event to gate against. This is also the 2617 // pass that reacts to a /discount/CODE redirect, since applying a code by 2618 // link is a navigation rather than a cart mutation. 2619 await this.runEvaluation(null); 2620 }, 2621 2622 wrapCartNotification() { 2623 const attempt = () => { 2624 const cnEl = document.querySelector('cart-notification'); 2625 if (!cnEl || !cnEl._x_dataStack || !cnEl._x_dataStack[0]) { 2626 setTimeout(attempt, 50); 2627 return; 2628 } 2629 const cn = cnEl._x_dataStack[0]; 2630 if (cn._bogoWrapped) return; 2631 cn._bogoWrapped = true; 2632 const orig = cn.showAndUpdate.bind(cn); 2633 cn.showAndUpdate = function(response) { 2634 // Full-cart responses (e.g. from cart/change.js) carry a `token` field â 2635 // those originate from cart-drawer or cart-page mutations, not from a 2636 // fresh PDP add. Hide the notification rather than re-render it with 2637 // stale "Item added" content. 2638 if (response && response.token) { 2639 this.showCartNotification = false; 2640 return; 2641 } 2642 return orig(response); 2643 }; 2644 }; 2645 attempt(); 2646 }, 2647 2648 onCartUpdate(event) { 2649 // Set the suppression flag SYNCHRONOUSLY so the bubble listeners that 2650 // fire immediately after this capture handler see it. 2651 window._bogoSuppressDrawerRender = true; 2652 this.runEvaluation(event.detail); 2653 }, 2654 2655 // Shopify does not populate discount fields on /cart.js consistently, and a 2656 // Buy X get Y code produces LINE-level allocations rather than cart-level 2657 // ones. Union every place a code can surface. For a code discount the 2658 // discount_application title IS the code string; automatic discount titles 2659 // are also collected and simply never match a configured code â unless a 2660 // merchant names an automatic discount identically to a code, which would 2661 // false-trigger. Accepted; see Known Limitations. 2662 // 2663 // Returns TWO views of the applied-code set, because the safe default 2664 // differs by direction. This asymmetry is deliberate. 2665 // 2666 // forGating ignores `applicable`. A Buy X get Y code sitting in the session 2667 // with no Y in the cart yet reports applicable:false â and that is precisely 2668 // the booth's opening state (scanned the QR, added the Joint, no Gut yet). 2669 // Honouring the flag there would leave the booth rule gated off, so no Gut 2670 // is ever added and the offer simply never works. Gating must act on intent. 2671 // 2672 // forConflict honours `applicable`. Standing down is NOT self-correcting: if 2673 // this rule yields to a code that can never fire, the customer silently never
2674 // receives the gift, indefinitely. An expired FREEGUT lingering in a session 2675 // would otherwise kill the always-on paste offer on Joint 60 forever for that 2676 // customer. Only yield to a discount that can actually claim something. 2677 appliedCodes(cart) { 2678 const forGating = new Set(); 2679 const forConflict = new Set(); 2680 (cart.discount_codes || []).forEach(d => { 2681 if (!d || !d.code) return; 2682 const code = String(d.code).toUpperCase(); 2683 forGating.add(code); 2684 if (d.applicable !== false) forConflict.add(code); 2685 }); 2686 // A discount_application title only exists once that discount has actually 2687 // allocated, so a title is positive evidence of a firing discount and 2688 // belongs in both sets. 2689 // 2690 // Gated on type === 'discount_code' so an AUTOMATIC discount that happens 2691 // to be named the same as a code cannot masquerade as one. 2692 // 2693 // Measured on the live store 2026-07-30: a code discount reports 2694 // type: "discount_code"; an AUTOMATIC discount reports type: "" â an empty 2695 // string, NOT "automatic" and not absent. So a truthiness check (`da.type &&`) 2696 // treats "" as missing and falls through to accepting automatics, which is 2697 // the exact opposite of this guard's purpose. Test for a STRING instead, so 2698 // "" is rejected while a genuinely absent field still falls through to being 2699 // accepted â losing the title path entirely would be worse than the 2700 // false-positive it protects against. 2701 const addTitle = (a) => { 2702 const da = a && a.discount_application; 2703 if (!da || !da.title) return; 2704 if (typeof da.type === 'string' && da.type !== 'discount_code') return; 2705 const code = String(da.title).toUpperCase(); 2706 forGating.add(code); 2707 forConflict.add(code); 2708 }; 2709 (cart.cart_level_discount_applications || []).forEach(addTitle); 2710 (cart.items || []).forEach(i => 2711 (i.line_level_discount_allocations || []).forEach(addTitle) 2712 ); 2713 return { forGating, forConflict }; 2714 }, 2715 2716 // A line belongs to a rule only if the rule added it. Legacy lines carry 2717 // `_auto_gift: 'true'` from before rules existed; the rule that owns that 2718 // gift variant adopts them so they can still be cleaned up. A 2719 // customer-purchased gift has no `_auto_gift` and is never touched. 2720 isOwnGiftLine(item, rule) { 2721 const tag = item.properties && item.properties._auto_gift; 2722 if (!tag) return false; 2723 return tag === rule.handle || tag === 'true'; 2724 }, 2725 2726 // Signature of the CUSTOMER's cart. Auto-added gift lines are excluded on 2727 // purpose: our own add/remove churn must not invalidate the signature, or a 2728 // retraction would immediately clear its own latch and loop. Only a real 2729 // shopper change moves this value, which is exactly when a latched rule 2730 // deserves another chance. 2731 customerSignature(cart) { 2732 return (cart.items || []) 2733 .filter(i => !(i.properties && i.properties._auto_gift)) 2734 .map(i => i.variant_id + ':' + i.quantity) 2735 .sort() 2736 .join('|'); 2737 }, 2738 2739 isLatched(rule, customerSig) { 2740 return this.nonFiring[rule.handle] === customerSig; 2741 }, 2742 2743 // The latch is persisted for the browsing session, not just the page. 2744 // Without this, a misconfigured rule replays add -> charge -> retract on 2745 // EVERY page view, and each replay opens a brief window where the cart 2746 // genuinely holds a charged gift. sessionStorage (not localStorage) so a 2747 // fixed configuration is re-tested on the shopper's next visit. 2748 latch(rule, customerSig) { 2749 this.nonFiring[rule.handle] = customerSig; 2750 try { 2751 sessionStorage.setItem(BOGO_LATCH_KEY, JSON.stringify(this.nonFiring)); 2752 } catch (e) { 2753 // Storage unavailable (private mode, quota). The in-memory latch still 2754 // works for this page; we just lose cross-page persistence. 2755 console.warn('[bogo] could not persist latch', e); 2756 } 2757 }, 2758 2759 restoreLatches() { 2760 try { 2761 const raw = sessionStorage.getItem(BOGO_LATCH_KEY); 2762 if (raw) this.nonFiring = JSON.parse(raw) || {}; 2763 } catch (e) { 2764 console.warn('[bogo] could not restore latches', e); 2765 this.nonFiring = {}; 2766 } 2767 }, 2768 2769 // Which rules are competing for this rule's trigger items right now. 2770 // `conflictingCodes` holds CODE strings; the competing rule is whichever 2771 // rule requires one of those codes. Only codes actually present in the 2772 // cart create competition. 2773 competingRules(rule, conflictCodes) { 2774 const live = (rule.conflictingCodes || []).filter(c => conflictCodes.has(c)); 2775 if (live.length === 0) return []; 2776 return this.rules.filter(other => 2777 other.handle !== rule.handle
2778 // A rule that cannot fire cannot claim anything. `this.rules` now holds 2779 // INACTIVE rules on purpose (so they can clean up their own lines), so 2780 // this check is load-bearing: without it, unchecking Active on the booth 2781 // rule would leave it still "claiming" Joint 60 and permanently starve 2782 // the always-on paste offer. 2783 && asBool(other.active) 2784 && (other.requiredCodes || []).some(rc => live.indexOf(rc) !== -1) 2785 ); 2786 }, 2787 2788 // Trigger units this rule can actually claim. 2789 // 2790 // Shopify's constraint is PER LINE, not per code: a Buy X get Y needs a 2791 // qualifying line and a gift line, and a line can only serve one discount. 2792 // So a competing offer does not switch this rule off outright â it consumes 2793 // specific items. This rule may still fire on anything the competitor 2794 // cannot claim. 2795 // 2796 // Empirically (2026-07-29): Joint 60 + Gut + paste + FREEGUT leaves nothing 2797 // spare and the paste must NOT be added; adding a Multi-Vitamin creates a 2798 // spare unit and Shopify zeroes both gifts (savings $90.58). This function 2799 // is what distinguishes those two carts. 2800 // 2801 // Exclusions: 2802 // - auto-added gift lines: they are free, and Shopify will not let a 2803 // discounted line qualify another discount 2804 // - any variant a live competing rule is eligible for: assume it claims it 2805 spareTriggerQty(cart, rule, competitors) { 2806 const claimed = new Set(); 2807 competitors.forEach(other => 2808 (other.eligibleVariantIds || []).forEach(id => claimed.add(id)) 2809 ); 2810 return (cart.items || []).reduce((sum, i) => { 2811 if (i.properties && i.properties._auto_gift) return sum; 2812 if ((rule.eligibleVariantIds || []).indexOf(i.variant_id) === -1) return sum; 2813 if (claimed.has(i.variant_id)) return sum; 2814 return sum + i.quantity; 2815 }, 0); 2816 }, 2817 2818 decideForRule(cart, rule, codes, customerSig) { 2819 const gated = (rule.requiredCodes || []).length > 0 2820 && !(rule.requiredCodes || []).some(c => codes.forGating.has(c)); 2821 const enabled = asBool(rule.active) && !gated; 2822 2823 // SHOPIFY SPLITS A LINE BY DISCOUNT ALLOCATION. Observed live 2026-07-30: a 2824 // single 3-unit gift line became "2 free" + "1 charged" as two separate 2825 // lines the moment the discount covered only part of it, and a 3-unit 2826 // qualifying line split the same way. So this rule can own MORE THAN ONE 2827 // line for the same gift variant, and ownQty must sum across all of them. 2828 // 2829 // Using a single .find() here would count our own units on the other line 2830 // as the CUSTOMER's, inflating customerQty. That mis-routes the price 2831 // backstop's log severity, and â worse â shrinks needFromUs below, so the 2832 // engine would under-add gifts whenever its line happened to be split. 2833 const ownLines = (cart.items || []).filter(i => 2834 i.variant_id === rule.giftVariantId && this.isOwnGiftLine(i, rule) 2835 ); 2836 const ownQty = ownLines.reduce((sum, i) => sum + i.quantity, 0); 2837 // Act on the CHARGED line first when one exists, so the backstop retires the 2838 // unit Shopify refused to zero rather than a free one. Otherwise any line 2839 // will do; convergence re-runs until the whole set settles. 2840 const ownLine = ownLines.find(i => i.final_line_price > 0) || ownLines[0]; 2841 2842 // Gift units the customer bought themselves. Computed up here rather than 2843 // with the quantity maths below because the price backstop needs it to tell 2844 // a real misconfiguration from Shopify simply allocating the discount to 2845 // the customer's line instead of ours. 2846 const totalGiftQty = (cart.items || []).reduce((sum, i) => 2847 i.variant_id === rule.giftVariantId ? sum + i.quantity : sum, 0); 2848 const customerQty = Math.max(0, totalGiftQty - ownQty); 2849 2850 if (!enabled) { 2851 return ownLine ? { type: 'remove', lineKey: ownLine.ke
2851y, rule } : null; 2852 } 2853 2854 // How many gift units this rule wants right now. Computed BEFORE the price 2855 // backstop even though the backstop does not use it to choose an action â 2856 // it uses it to choose a LOG LEVEL. All three calls below are pure reads of 2857 // the cart with no side effects, so hoisting them changes no behaviour. 2858 // 2859 // Overlap exclusion replaces a blunt "code present -> rule off" switch. 2860 // When no competing code is live this is simply every eligible unit. 2861 const competitors = this.competingRules(rule, codes.forConflict); 2862 const triggerQty = this.spareTriggerQty(cart, rule, competitors); 2863 2864 const max = rule.maxGiftQuantity > 0 ? rule.maxGiftQuantity : 1; 2865 let desired = 0; 2866 if (triggerQty > 0) { 2867 desired = asBool(rule.matchTriggerQuantity) 2868 ? Math.min(triggerQty, max) 2869 : Math.min(1, max); 2870 } 2871 2872 // customerQty was computed above, next to ownQty. Their units get zeroed 2873 // alongside ours, so we only ever top up the shortfall. 2874 const needFromUs = Math.max(0, desired - customerQty); 2875 2876 // PRICE BACKSTOP â the last line of defence, and the only one that 2877 // measures the thing we actually care about. 2878 // 2879 // Everything above this point is inference: which codes are applied, 2880 // which rule claims which variant, whether a competitor has spare units. 2881 // Any of it can be wrong. But the cart reports the answer directly, in 2882 // money: if the line WE added is not free, Shopify is charging for a gift 2883 // the site put in the customer's basket. Retract it, whatever the 2884 // inference layer believed. 2885 // 2886 // This subsumes the earlier metadata-based check (does the required code 2887 // appear to be firing?) and is strictly stronger, because it also catches 2888 // PARTIAL non-firing that metadata cannot see. Concretely: if the Shopify 2889 // discount's "Maximum uses per order" is 1 while max_gift_quantity is 2, 2890 // then on a 2-Joint booth order we add two Guts, FREEGUT genuinely IS 2891 // firing, and only one Gut is zeroed. The metadata check passes and the 2892 // customer is charged $61.66. This one drops the line to one unit. 2893 // 2894 // It applies to EVERY rule, not just code-gated ones, which makes the 2895 // whole engine fail-safe: spareTriggerQty being variant-granular can now 2896 // only ever cost a missed gift, never a charge. 2897 // 2898 // Cart-side pricing is reliable here â verified on the live cart page, 2899 // which showed a code-discounted Gut at $0.00 alongside an undiscounted 2900 // paste at full price in the same render. Task 1 Step 3 re-confirms it. 2901 if (ownLine && ownLine.final_line_price > 0) { 2902 const unit = ownLine.quantity > 0 2903 ? ownLine.original_line_price / ownLine.quantity 2904 : 0; 2905 // unit <= 0 means we cannot reason about partial discounting; retract all. 2906 const freeUnits = unit > 0 2907 ? Math.max(0, ownLine.quantity - Math.round(ownLine.final_line_price / unit)) 2908 : 0; 2909 // Latch against the CUSTOMER's cart state so we do not re-add on the 2910 // next pass. Cleared automatically when the shopper changes the cart. 2911 this.latch(rule, customerSig); 2912 // THREE very different situations produce a charged line, and conflating 2913 // them sends people chasing a non-bug. Only the third is a real defect, 2914 // and only the third warns â otherwise the Task 6 matrix cries wolf on 2915 // ordinary shopper behaviour and the one warning that matters gets 2916 // ignored. The ACTION taken is identical in all three cases. 2917 // 2918 // needFromUs < ownQty: this rule no longer wants this many units anyway â 2919 // the shopper removed the trigger, or a competitor claimed it. The 2920 // quantity maths below would have reduced or removed the line regardless; 2921 // the backstop merely got here first, because a line whose trigger just 2922 // left is charged from the instant it stops qualifying. This is matrix 2923 // rows 11 and 13 (remove the Joint / remove the Multi-Vitamin), both 2924 // entirely normal. 2925 // 2926 // customerQty > 0: the shopper also bought this gift variant themselves. 2927 // Shopify zeroes the earliest-added matching unit and that may be THEIR 2928 // line rather than ours (see cart-items.liquid:22-30). Retracting is 2929 // still correct â the needFromUs path would drop our line anyway once 2930 // their units cover `desired` â but nothing is misconfigured. 2931 // 2932 // Otherwise: the rule still wants these units, nobody else supplied them, 2933 // and Shopify charged anyway â the rule genuinely disagrees with its 2934 // Shopify discount. THIS is matrix row 16, and this is the one to chase. 2935 if (needFromUs < ownQty) { 2936 console.info('[bogo] gift line no longer qualifies â retracting', 2937 rule.handle, '(trigger removed or claimed by a competing offer;', 2938 'not a misconfiguration)'); 2939 } else if (customerQty > 0) { 2940 console.info('[bogo] discount landed on the customer\'s own gift line â', 2941 'retracting ours (not a misconfiguration)', rule.handle); 2942 } else { 2943 console.warn('[bogo] Shopify is charging for our gift line â retracting', 2944 rule.handle, ownLine.final_line_price, 'of', ownLine.original_line_price, 2945 '| check the discount is active, in date, and its max-uses-per-order', 2946 'matches max_gift_quantity'); 2947 } 2948 return freeUnits === 0
2949 ? { type: 'remove', lineKey: ownLine.key, rule } 2950 : { type: 'setQty', lineKey: ownLine.key, quantity: freeUnits, rule }; 2951 } 2952 2953 // INVARIANT: every quantity INCREASE is emitted as type:'add', and only 2954 // decreases use type:'setQty'. The latch in decide() blocks 'add' only, so 2955 // if a future edit ever raises a quantity via setQty, isLatched silently 2956 // stops protecting anything and a charged gift can be re-inflated. Keep 2957 // increases on the 'add' path. 2958 if (ownQty < needFromUs) { 2959 return { type: 'add', rule, quantity: needFromUs - ownQty }; 2960 } 2961 if (ownQty > needFromUs) { 2962 // ownQty is the SUM across every line this rule owns, but an action can 2963 // only target ONE lineKey. So shed the excess from `ownLine` alone and let 2964 // the convergence loop re-decide; when the gift is split across lines this 2965 // walks them down over successive passes instead of setting a single line 2966 // to the whole target (which would INFLATE the total â lines [1,2] with a 2967 // target of 2 would become [2,2]). 2968 const excess = ownQty - needFromUs; 2969 return ownLine.quantity <= excess 2970 ? { type: 'remove', lineKey: ownLine.key, rule } 2971 : { type: 'setQty', lineKey: ownLine.key, 2972 quantity: ownLine.quantity - excess, rule }; 2973 } 2974 return null; 2975 }, 2976 2977 // One action per pass. The caller re-fetches and re-decides afterwards,
2978 // because a cart mutation can invalidate other lines' keys. 2979 decide(cart) { 2980 const codes = this.appliedCodes(cart); 2981 const customerSig = this.customerSignature(cart); 2982 for (const rule of this.rules) { 2983 const action = this.decideForRule(cart, rule, codes, customerSig); 2984 if (!action) continue; 2985 // Abandon repeatedly-failing ADDs only. A failing add (out of stock, 2986 // deleted variant) is harmless to give up on. A failing REMOVE is the 2987 // opposite â giving up leaves a charged gift line sitting in the cart â 2988 // so removals retry indefinitely. 2989 if (action.type === 'add' && (this.failures[rule.handle] || 0) >= 3) continue; 2990 // A rule whose gift Shopify charged for must not re-add while the 2991 // customer's cart is unchanged. Removals and quantity reductions still 2992 // go through, so an already-charged line still gets cleaned up. 2993 if (action.type === 'add' && this.isLatched(rule, customerSig)) continue; 2994 return action; 2995 } 2996 return null; 2997 }, 2998 2999 async runEvaluation(originalDetail) { 3000 if (this.isProcessing) { 3001 this.dirty = true; 3002 return; 3003 } 3004 this.isProcessing = true; 3005 this.dirty = false; 3006 3007 let finalDetail = originalDetail; 3008 // Rules that actually gained a gift line during THIS evaluation. Only 3009 // these get surfaced in the add-to-cart popup â a gift already sitting 3010 // in the cart from an earlier interaction was not "just added" and 3011 // announcing it again would be noise. 3012 const addedGiftHandles = new Set(); 3013 3014 try { 3015 // Bounded convergence loop. Each pass performs at most one mutation, 3016 // then re-reads the cart. The cap is a backstop against a mutation 3017 // that reports success without changing the cart. 3018 let pass = 0; 3019 for (; pass < 5; pass++) { 3020 const cart = await fetch(`${window.routes.cart_url}.js`).then(r => r.json()); 3021 const action = this.decide(cart); 3022 if (!action) break; 3023 3024 let result = null; 3025 if (action.type === 'add') { 3026 result = await this.addGift(action.rule, action.quantity); 3027 if (result && action.rule) addedGiftHandles.add(action.rule.handle); 3028 } else if (action.type === 'remove') { 3029 result = await this.setLineQty(action.lineKey, 0); 3030 } else if (action.type === 'setQty') { 3031 result = await this.setLineQty(action.lineKey, action.quantity); 3032 } 3033 3034 if (!result) { 3035 // Only ADD failures are counted â see the comment in decide(). 3036 const key = action.rule && action.rule.handle; 3037 if (key && action.type === 'add') { 3038 this.failures[key] = (this.failures[key] || 0) + 1; 3039 } 3040 console.warn('[bogo] cart mutation failed', action, 3041 'add-failures:', key ? (this.failures[key] || 0) : 'n/a'); 3042 break; 3043 } 3044 if (action.type === 'add' && action.rule && action.rule.handle) { 3045 this.failures[action.rule.handle] = 0; 3046 } 3047 finalDetail = result; 3048 } 3049 if (pass === 5) { 3050 console.warn('[bogo] convergence cap reached â rules may contradict their discounts'); 3051 } 3052 } catch (e) { 3053 // Non-fatal: the cart is re-evaluated on the next cart-updated event. 3054 // Logged rather than swallowed so failures are diagnosable. 3055 console.warn('[bogo] evaluation error', e); 3056 } finally { 3057 this.isProcessing = false; 3058 } 3059 3060 // Clear the suppression flag and directly render cart-drawer / cart page 3061 // with the FINAL state. Direct method call â not an event dispatch â so 3062 // cart-notification doesn't get a second firing and flicker. 3063 window._bogoSuppressDrawerRender = false;
3064 if (finalDetail) { 3065 this.renderConsumers(finalDetail); 3066 } 3067 3068 if (addedGiftHandles.size > 0) { 3069 await this.showGiftsInNotification(originalDetail, finalDetail, addedGiftHandles); 3070 } 3071 3072 if (this.dirty) { 3073 this.dirty = false; 3074 await this.runEvaluation(null); 3075 } 3076 }, 3077 3078 // Add the gift line(s) to the add-to-cart popup, which otherwise shows only 3079 // what the customer themselves added. The popup renders from the ADD 3080 // response, which is captured before this controller adds anything â so 3081 // without this the shopper is never told a free gift arrived, and the 3082 // "View my cart (N)" count is one short. 3083 async showGiftsInNotification(originalDetail, finalDetail, addedGiftHandles) { 3084 try { 3085 const cnEl = document.querySelector('cart-notification'); 3086 const cn = cnEl && cnEl._x_dataStack && cnEl._x_dataStack[0]; 3087 // Only ever AUGMENT a popup that is already open. A mutation from the 3088 // cart drawer or cart page deliberately hides it (see the token check 3089 // in wrapCartNotification), and resurrecting it here would undo that. 3090 if (!cn || !cn.showCartNotification) return; 3091 // Nothing to render from if the final mutation did not carry the 3092 // popup's own section markup. 3093 if (!finalDetail || !finalDetail.sections 3094 || !finalDetail.sections['cart-notification-product']) return; 3095 3096 const cart = await fetch(`${window.routes.cart_url}.js`).then(r => r.json()); 3097 const items = cart.items || []; 3098 const giftKeys = items 3099 .filter(i => i.properties && addedGiftHandles.has(i.properties._auto_gift)) 3100 .map(i => i.key); 3101 if (giftKeys.length === 0) return; 3102 3103 // MATCH THE CUSTOMER'S LINES BY VARIANT, NOT BY KEY. Shopify rewrites a 3104 // line's key when its discount allocation changes, and adding the gift 3105 // does exactly that to the qualifying line â so the key captured in the 3106 // original add response is stale by the time we get here. Observed live 3107 // 2026-07-30: the Joint went from ...93abc0 to ...cf9d08d purely because 3108 // the gift arrived and the discount began claiming it. 3109 // TWO RESPONSE SHAPES, same as cart-notification's own renderContents: 3110 // the PDP posts a form and gets back a SINGLE line item (main-product 3111 // .liquid:507-526 reads response.id directly), while the cart drawer and 3112 // Frequently Bought Together send {items: [...]}. Handling only the array 3113 // form silently no-ops on the PDP path, which is the one that matters. 3114 let addedVariantIds = []; 3115 if (originalDetail) { 3116 if (Array.isArray(originalDetail.items)) { 3117 addedVariantIds = originalDetail.items.map(i => i.variant_id || i.id); 3118 } else if (originalDetail.key) { 3119 addedVariantIds = [originalDetail.variant_id || originalDetail.id]; 3120 } 3121 } 3122 addedVariantIds = addedVariantIds.filter(Boolean); 3123 let customerKeys = items 3124 .filter(i => !(i.properties && i.properties._auto_gift) 3125 && addedVariantIds.indexOf(i.variant_id) !== -1) 3126 .map(i => i.key); 3127 // Fallback for an evaluation with no add response to learn from: keep 3128 // whatever the popup is already showing that still exists in the cart. 3129 if (customerKeys.length === 0) { 3130 const live = items.map(i => i.key); 3131 customerKeys = (cn.cartItemKeys || []).filter(k => live.indexOf(k) !== -1); 3132 } 3133 3134 const keys = []; 3135 customerKeys.concat(giftKeys).forEach(k => { 3136 if (k && keys.indexOf(k) === -1) keys.push(k); 3137 }); 3138 3139 // renderContents derives its key list from `items`, so hand it a 3140 // synthetic state: the merged keys plus the FINAL section markup. 3141 // Deliberately not showAndUpdate() â that would also re-run 3142 // loadCrossSell and flicker the upsell block. 3143 cn.renderContents({ 3144 items: keys.map(key => ({ key: key })), 3145 sections: finalDetail.sections 3146 }); 3147 3148 // The popup fetched its cross-sell on cart-updated, BEFORE this gift 3149 // existed, so cart-notification's own filter could not have caught it. 3150 // Left alone it offers a paid "Add" for the exact item now sitting a row 3151 // above it marked FREE GIFT. 3152 this.pruneCrossSell(items); 3153 } catch (e) { 3154 // Cosmetic only â the cart itself is already correct. 3155 console.warn('[bogo] could not add gift to the cart notification', e); 3156 } 3157 }, 3158 3159 // Drop a cross-sell card recommending something the cart now holds. 3160 // 3161 // Runs twice on purpose. The popup's cross-sell fetch is fired at 3162 // cart-updated time and normally lands well before this controller finishes 3163 // converging (it makes two parallel requests; convergence makes four 3164 // sequential ones), so the immediate pass is the one that matters. But the 3165 // ordering is not guaranteed, and a cross-sell that arrives late would 3166 // repopulate a container we had already cleared â hence one delayed 3167 // re-check. Cheap, and the alternative is a contradictory paid Add sitting 3168 // under a FREE GIFT row. 3169 pruneCrossSell(items) { 3170 const prune = () => { 3171 const container = document.querySelector('.cross-sell-notification'); 3172 if (!container) return; 3173 const card = container.querySelector('[data-cross-sell-variant]'); 3174 if (!card) return; 3175 const variantId = String(card.getAttribute('data-cross-sell-variant')); 3176 if (items.some(i => String(i.variant_id) === variantId)) { 3177 container.innerHTML = ''; 3178 } 3179 }; 3180 prune(); 3181 setTimeout(prune, 800); 3182 }, 3183 3184 renderConsumers(detail) { 3185 const drawerEl = document.querySelector('[x-data="CartDrawer"]'); 3186 if (drawerEl && drawerEl._x_dataStack && drawerEl._x_dataStack[0]) { 3187 drawerEl._x_dataStack[0].renderContents(detail); 3188 } 3189 const cartEl = document.querySelector('[x-data="Cart"]'); 3190 if (cartEl && cartEl._x_dataStack && cartEl._x_dataStack[0]) { 3191 cartEl._x_dataStack[0].renderContents(detail); 3192 } 3193 }, 3194 3195 async addGift(rule, quantity) { 3196 const config = fetchConfig(); 3197 config.body = JSON.stringify({ 3198 items: [{ 3199 id: rule.giftVariantId, 3200 quantity: quantity, 3201 properties: { _auto_gift: rule.handle } 3202 }], 3203 // cart-notification-* are requested so a converged gift can be shown in 3204 // the add-to-cart popup; see showGiftsInNotification(). 3205 sections: 'main-cart,cart-drawer,cart-icon-bubble,cart-notification-product,cart-notification-button', 3206 sections_url: window.location.pathname 3207 }); 3208 const response = await fetch(`${window.routes.cart_add_url}
3208.js`, config); 3209 if (!response.ok) return null; 3210 return await response.json(); 3211 }, 3212 3213 async setLineQty(lineKey, quantity) { 3214 const config = fetchConfig(); 3215 config.body = JSON.stringify({ 3216 id: lineKey, 3217 quantity: quantity, 3218 // cart-notification-* are requested so a converged gift can be shown in 3219 // the add-to-cart popup; see showGiftsInNotification(). 3220 sections: 'main-cart,cart-drawer,cart-icon-bubble,cart-notification-product,cart-notification-button', 3221 sections_url: window.location.pathname 3222 }); 3223 const response = await fetch(`${window.routes.cart_change_url}.js`, config); 3224 if (!response.ok) return null; 3225 return await response.json(); 3226 } 3227 })); 3228 }); 3229 </script>
3229<!-- BEGIN sections: header-group --> 3230<header id="shopify-section-sections--25592569594147__header" class="shopify-section shopify-section-group-header-group section-header z-50"><style> 3231 .header_sticky { 3232 transform: translate3d(0, -100%, 0); 3233 z-index: 20; 3234 } 3235 .header_sticky #logo img { 3236 width: 70%; 3237 } 3238 .header_animate { 3239 transform: translateZ(0); 3240 transition: transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1); 3241 } 3242 .header__heading-logo { 3243 transition: width 0.3s cubic-bezier(0.52, 0, 0.61, 0.99); 3244 } 3245</style> 3246<sticky-header x-ref="header" hidden="header" x-data="Header" @scroll.window="scrollHandler" :class="stuck ? 'fixed top-0 left-0 right-0 transition-none header_sticky' : 'relative'" class="block shadow-lg bg-fs-red mt-0 mb-0"> 3247 <div class="pb-3"> 3248 <!-- Announcement Banner --> 3249 3250<div id="slogan-banner" x-ref="slogan-banner" class="flex justify-center items-center py-1 bg-fs-tan"> 3251 3252 3253 3254 3255 3256 3257 3258<div id="textblock_sections--25592569594147__header_container" class="flex w-full mb-0 mt-0 pb-0 pt-0 text-center justify-center items-center container"> 3259 <div class="flex items-center"> 3260 3261 3262 3263 <h4 id="heading_sections--25592569594147__header" class="w-full text-fs-dkgray text-base leading-normal md:text-xl sm:leading-normal md:leading-normal lg:leading-normal xl:leading-normal 2xl:leading-normal font-body font-normal tracking-wider uppercase"> 3264 <span class="mx-1"><strong>Free Shipping</strong> on U.S. Orders over $75</span> 3265 </h4> 3266 3267 3268 </div> 3269</div> 3270 3271</div> 3272 3273 3274 <!-- Main Header --> 3275 <div class="header grid grid-cols-6 container mx-auto pt-3"> 3276 <!-- Mobile menu --> 3277<header-drawer x-data="{show: false}" class="flex justify-start items-center lg:hidden"> 3278 <details id="Details-menu-drawer-container" class="group dropdown static flex justify-center rounded"> 3279 <summary @click="show = true" class="text-fs-white list-none link focus-inset" aria-label="Menu"> 3280 <span> 3281 3282<svg 3283 3284 class="group-open:hidden z-1 w-5 h-5 sm:w-8 sm:h-8 align-middle fill-current dark:fill-fs-white text-current dark:text-fs-white hover:text-current hover:fill-current icon icon-hamburger 3285" 3286 aria-hidden="true" 3287 focusable="false" 3288 role="presentation" 3289 3290> 3291 <use xlink:href="#icon-hamburger"/> 3292</svg> 3293 3294<svg 3295 3296 class="hidden group-open:block z-1 w-6 h-6 sm:w-8 sm:h-8 align-middle fill-current dark:fill-fs-white text-current dark:text-fs-white hover:text-current hover:fill-current icon icon-close 3297" 3298 aria-hidden="true" 3299 focusable="false" 3300 role="presentation" 3301 3302> 3303 <use xlink:href="#icon-close"/> 3304</svg> 3305 </span> 3306 </summary> 3307 <div x-show="show" x-transition.duration.500ms id="menu-drawer" class="dropdown-content block motion-reduce bg-fs-white absolute w-full visible z-50 left-0 p-0 top-full overflow-x-hidden overflow-y-scroll shadow-lg" tabindex="-1"> 3308 <div class="h-full relative"> 3309 <div class="p-6"> 3310 <nav class="mb-2 border-b border-fs-black/30"> 3311 <ul class="mb-4 m-0 p-0 list-none"><li class="border-b border-fs-black/10 last:border-b-0"><a href="/collections/all-products" class="font-heading text-3xl text-fs-brown hover:text-fs-red block py-3 menu-drawer__menu-item--active" aria-current="page"> 3312 Products 3313 </a></li><li class="border-b border-fs-black/10 last:border-b-0"><a href="/pages/our-science" class="font-heading text-3xl text-fs-brown hover:text-fs-red block py-3"> 3314 Science 3315 </a></li><li class="border-b border-fs-black/10 last:border-b-0"><a href="/pages/6666s" class="font-heading text-3xl text-fs-brown hover:text-fs-red block py-3"> 3316 6666 3317 </a></li><li class="border-b border-fs-black/10 last:border-b-0"><div x-data="{ sub: false }"> 3318 <div class="flex items-center justify-between gap-2"> 3319 <a href="/pages/about" 3320 class="font-heading text-3xl text-fs-brown hover:text-fs-red flex-1 py-3" 3321 > 3322 About 3323 </a> 3324 <button type="button" 3325 @click.stop="sub = !sub" 3326 :aria-expanded="sub.toString()" 3327 aria-label="Toggle submenu for About" 3328 class="p-3 text-fs-brown hover:text-fs-red shrink-0"> 3329 <svg class="w-4 h-4 transition-transform duration-200" 3330 :class="{ 'rotate-90': sub }"
3331 viewBox="0 0 10 6" 3332 aria-hidden="true"> 3333 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"/> 3334 </svg> 3335 </button> 3336 </div> 3337 <ul x-show="sub" 3338 x-cloak 3339 x-transition.duration.200ms 3340 class="m-0 pb-2 pl-4 list-none"><li><a href="/blogs/6666-equine-supplements-ambassadors" 3341 class="font-body text-lg text-fs-brown hover:text-fs-red block py-2" 3342 > 3343 Ambassadors 3344 </a></li></ul> 3345 </div></li><li class="border-b border-fs-black/10 last:border-b-0"><a href="/blogs/news" class="font-heading text-3xl text-fs-brown hover:text-fs-red block py-3"> 3346 Blog 3347 </a></li><li class="border-b border-fs-black/10 last:border-b-0"><a href="/pages/store-locator" class="font-heading text-3xl text-fs-brown hover:text-fs-red block py-3"> 3348 Dealers 3349 </a></li><li class="border-b border-fs-black/10 last:border-b-0"><a href="/pages/contact" class="font-heading text-3xl text-fs-brown hover:text-fs-red block py-3"> 3350 Contact 3351 </a></li></ul> 3352 </nav> 3353 <div> 3354 3355 3356 3357<ul class="flex gap-4 " id="utility_links" x-data><li class="inline-flex mr-4"> 3358 <a href="/account/login" class="text-fs-dkgray hover:text-fs-black uppercase text-sm font-bold flex items-center justify-center py-4 flex relative" aria-label="My Account"> 3359 3360<svg 3361 3362 class="flex mr-1 group-hover:scale-110 z-1 w-5 h-5 sm:w-6 sm:h-6 align-middle fill-fs-dkgray dark:fill-fs-white text-fs-dkgray dark:text-fs-white hover:text-fs-black hover:fill-fs-black icon icon-account 3363" 3364 aria-hidden="true" 3365 focusable="false" 3366 role="presentation" 3367 3368> 3369 <use xlink:href="#icon-account"/> 3370</svg> 3371 <span class="">My Account</span> 3372 </a> 3373 </li></ul>
3373<script> 3374 document.addEventListener('alpine:init', () => { 3375 Alpine.data('headerSearch', () => ({ 3376 showSearch: false, 3377 predictiveOpen: false, 3378 hasResults: false, 3379 searchTerm: '', 3380 cachedResults: {}, 3381 body: document.querySelector('body'), 3382 3383 init() { 3384 // Watch for changes to `showSearch` and toggle `overflow-hidden` on the body 3385 this.$watch('showSearch', (value) => { 3386 if (value) { 3387 this.body.classList.add('overflow-hidden'); 3388 } else { 3389 this.body.classList.remove('overflow-hidden'); 3390 this.predictiveOpen = false 3391 this.searchTerm = '' 3392 } 3393 }) 3394 // Close predictive search when searchTerm is empty 3395 this.$watch('searchTerm', (value) => { 3396 if (value === '') { 3397 this.predictiveOpen = false 3398 } else { 3399 this.predictiveOpen = true 3400 } 3401 }) 3402 }, 3403 3404 getSearchResults() { 3405 const queryKey = this.searchTerm.replace(' ', '-').toLowerCase(); 3406 3407 // If we've cached this search, load it 3408 if (this.cachedResults[queryKey]) { 3409 this.$refs.searchResults.innerHTML = this.cachedResults[queryKey] 3410 return 3411 } 3412 3413 fetch(`${routes.predictive_search_url}?q=${encodeURIComponent(this.searchTerm)}§ion_id=predictive-search&resources[options][fields]=title,product_type,variants.title,body`) 3414 .then((response) => { 3415 if (!response.ok) { 3416 var error = new Error(response.status); 3417 this.predictiveOpen = false 3418 this.hasResults = false 3419 throw error; 3420 } 3421 3422 return response.text(); 3423 }) 3424 .then((text) => { 3425 const resultsMarkup = new DOMParser() 3426 .parseFromString(text, 'text/html') 3427 .querySelector('#shopify-section-predictive-search').innerHTML; 3428 3429 // Save bandwidth keeping the cache in all instances synced 3430 this.cachedResults[queryKey] = resultsMarkup 3431 this.hasResults = true 3432 3433 this.$refs.searchResults.innerHTML = resultsMarkup 3434 }) 3435 .catch((error) => { 3436 if (error?.code === 20) { 3437 // Code 20 means the call was aborted 3438 return; 3439 } 3440 this.predictiveOpen = false; 3441 throw error; 3442 }) 3443 }, 3444 })) 3445 }) 3446</script>
3446 3447 3448<ul class="flex gap-2 justify-start mt-0"><li> 3449 <a target="_blank" href="https://www.facebook.com/6666equinesupplements"> 3450 3451<svg 3452 3453 class="flex hover:scale-105 z-1 w-10 h-10 sm:w-10 sm:h-10 align-middle fill-fs-black dark:fill-fs-white text-fs-black dark:text-fs-white hover:text-fs-black hover:fill-fs-black icon icon-facebook 3454" 3455 aria-hidden="true" 3456 focusable="false" 3457 role="presentation" 3458 3459> 3460 <use xlink:href="#icon-facebook"/> 3461</svg> 3462 <span class="sr-only">Facebook</span> 3463 </a> 3464 </li><li> 3465 <a target="_blank" href="https://www.instagram.com/6666equinesupplements/"> 3466 3467<svg 3468 3469 class="flex hover:scale-105 z-1 w-10 h-10 sm:w-10 sm:h-10 align-middle fill-fs-black dark:fill-fs-white text-fs-black dark:text-fs-white hover:text-fs-black hover:fill-fs-black icon icon-instagram 3470" 3471 aria-hidden="true" 3472 focusable="false" 3473 role="presentation" 3474 3475> 3476 <use xlink:href="#icon-instagram"/> 3477</svg> 3478 <span class="sr-only">Instagram</span> 3479 </a> 3480 </li><li> 3481 <a target="_blank" href="https://www.youtube.com/@6666EquineSupplements"> 3482 3483<svg 3484 3485 class="flex hover:scale-105 z-1 w-10 h-10 sm:w-10 sm:h-10 align-middle fill-fs-black dark:fill-fs-white text-fs-black dark:text-fs-white hover:text-fs-black hover:fill-fs-black icon icon-youtube 3486" 3487 aria-hidden="true" 3488 focusable="false" 3489 role="presentation" 3490 3491> 3492 <use xlink:href="#icon-youtube"/> 3493</svg> 3494 <span class="sr-only">YouTube</span> 3495 </a> 3496 </li><li> 3497 <a target="_blank" href="https://www.tiktok.com/@6666equinesupplements"> 3498 3499<svg 3500 3501 class="flex hover:scale-105 z-1 w-10 h-10 sm:w-10 sm:h-10 align-middle fill-fs-black dark:fill-fs-white text-fs-black dark:text-fs-white hover:text-fs-black hover:fill-fs-black icon icon-tiktok 3502" 3503 aria-hidden="true" 3504 focusable="false" 3505 role="presentation" 3506 3507> 3508 <use xlink:href="#icon-tiktok"/> 3509</svg> 3510 <span class="sr-only">TikTok</span> 3511 </a> 3512 </li><li> 3513 <a target="_blank" href="https://www.linkedin.com/company/6666-equine-supplements/"> 3514 3515<svg 3516 3517 class="flex hover:scale-105 z-1 w-10 h-10 sm:w-10 sm:h-10 align-middle fill-fs-black dark:fill-fs-white text-fs-black dark:text-fs-white hover:text-fs-black hover:fill-fs-black icon icon-linkedin 3518" 3519 aria-hidden="true" 3520 focusable="false" 3521 role="presentation" 3522 3523> 3524 <use xlink:href="#icon-linkedin"/> 3525</svg> 3526 <span class="sr-only">LinkedIn</span> 3527 </a> 3528 </li></ul> 3529 </div> 3530 </div> 3531 </div> 3532 </div> 3533 </details> 3534</header-drawer> 3535<!-- End mobile menu --> 3536 3537 <!-- Desktop menu left side --> 3538 3539 <!-- End desktop menu left side --> 3540 3541 <!-- Logo --> 3542 <h1 id="logo" class="transition-top duration-500 col-span-2 lg:col-span-1 sm:col-start-3 lg:col-start-1 justify-self-center lg:justify-self-start"> 3543 <a href="/" class=" link link--text focus-inset"><img src="//6666equinesupplements.com/cdn/shop/t/18/assets/logo-white.svg?v=122655505098408415071764341724" 3544 alt="6666 Equine Supplements" 3545 width="160" 3546 height="107.242" 3547 class="header__heading-logo w-full h-auto max-w-40"> 3548 </a> 3549 </h1> 3550 <!-- End logo --> 3551 3552 <div id="header_menu_right" class="col-span-5 flex-row justify-end items-center hidden lg:flex"> 3553 <!-- Desktop menu right aligned --> 3554 3555 3556 3557<nav class="items-center mr-6"> 3558 <ul class="inline-flex flex-wrap list-none m-0 p-0"><li class="flex"> 3559 <a href="/collections/all-products" class="font-heading text-xl font-normal tracking-normal text-fs-white hover:text-fs-tan flex item-center p-2 xl:p-5 group" aria-current="page"> 3560 <span class="relative before:absolute before:block before:w-full before:h-0.5 before:bottom-0 before:left-0 before:bg-fs-tan before:scale-x-0 before:group-hover:scale-x-100 before:scale-x-100 before:ease-in before:transition-transform before:transition-500">Products</span> 3561 </a> 3562 </li><li class="flex"> 3563 <a href="/pages/our-science" class="font-heading text-xl font-normal tracking-normal text-fs-white hover:text-fs-tan flex item-center p-2 xl:p-5 group">
3564 <span class="relative before:absolute before:block before:w-full before:h-0.5 before:bottom-0 before:left-0 before:bg-fs-tan before:scale-x-0 before:group-hover:scale-x-100 before:ease-in before:transition-transform before:transition-500">Science</span> 3565 </a> 3566 </li><li class="flex"> 3567 <a href="/pages/6666s" class="font-heading text-xl font-normal tracking-normal text-fs-white hover:text-fs-tan flex item-center p-2 xl:p-5 group"> 3568 <span class="relative before:absolute before:block before:w-full before:h-0.5 before:bottom-0 before:left-0 before:bg-fs-tan before:scale-x-0 before:group-hover:scale-x-100 before:ease-in before:transition-transform before:transition-500">6666</span> 3569 </a> 3570 </li><li class="flex relative" 3571 x-data="{ open: false }" 3572 @mouseenter="open = true" 3573 @mouseleave="open = false" 3574 @focusin="open = true" 3575 @focusout="if (!$el.contains($event.relatedTarget)) open = false"> 3576 <a href="/pages/about" 3577 class="font-heading text-xl font-normal tracking-normal text-fs-white hover:text-fs-tan flex items-center p-2 xl:p-5 group" 3578 3579 :aria-expanded="open.toString()"> 3580 <span class="relative before:absolute before:block before:w-full before:h-0.5 before:bottom-0 before:left-0 before:bg-fs-tan before:scale-x-0 before:group-hover:scale-x-100 before:ease-in before:transition-transform before:transition-500">About</span> 3581 <span class="ml-1 transition-transform duration-200" :class="{ 'rotate-180': open }"> 3582 <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6"> 3583 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"> 3584</svg> 3585 3586 </span> 3587 </a> 3588 <div x-show="open" 3589 x-cloak 3590 x-transition:enter="transition ease-out duration-200" 3591 x-transition:enter-start="opacity-0 -translate-y-1" 3592 x-transition:enter-end="opacity-100 translate-y-0" 3593 x-transition:leave="transition ease-in duration-150" 3594 x-transition:leave-start="opacity-100 translate-y-0" 3595 x-transition:leave-end="opacity-0 -translate-y-1" 3596 class="absolute top-full left-0 z-50 min-w-48 bg-fs-tan shadow-lg py-2"> 3597 <ul class="list-none m-0 p-0"><li class="flex"> 3598 <a href="/blogs/6666-equine-supplements-ambassadors" 3599 class="font-subheading text-sm font-bold uppercase tracking-widest text-fs-brown hover:text-fs-red block w-full px-5 py-2 whitespace-nowrap" 3600 > 3601 Ambassadors 3602 </a> 3603 </li></ul> 3604 </div> 3605 </li><li class="flex"> 3606 <a href="/blogs/news" class="font-heading text-xl font-normal tracking-normal text-fs-white hover:text-fs-tan flex item-center p-2 xl:p-5 group"> 3607 <span class="relative before:absolute before:block before:w-full before:h-0.5 before:bottom-0 before:left-0 before:bg-fs-tan before:scale-x-0 before:group-hover:scale-x-100 before:ease-in before:transition-transform before:transition-500">Blog</span> 3608 </a> 3609 </li><li class="flex"> 3610 <a href="/pages/store-locator" class="font-heading text-xl font-normal tracking-normal text-fs-white hover:text-fs-tan flex item-center p-2 xl:p-5 group">
3611 <span class="relative before:absolute before:block before:w-full before:h-0.5 before:bottom-0 before:left-0 before:bg-fs-tan before:scale-x-0 before:group-hover:scale-x-100 before:ease-in before:transition-transform before:transition-500">Dealers</span> 3612 </a> 3613 </li><li class="flex"> 3614 <a href="/pages/contact" class="font-heading text-xl font-normal tracking-normal text-fs-white hover:text-fs-tan flex item-center p-2 xl:p-5 group"> 3615 <span class="relative before:absolute before:block before:w-full before:h-0.5 before:bottom-0 before:left-0 before:bg-fs-tan before:scale-x-0 before:group-hover:scale-x-100 before:ease-in before:transition-transform before:transition-500">Contact</span> 3616 </a> 3617 </li></ul> 3618 </nav> 3619 3620 3621 3622 <!-- End desktop menu right aligned --> 3623 3624 <!-- Desktop menu right side --> 3625 3626 <!-- End desktop menu right side --> 3627 3628 <!-- Desktop utility links --> 3629 3630 3631<ul class="flex gap-4 " id="utility_links" x-data><li class="inline-flex"> 3632 <a x-ref="cartIconBubble" @click.prevent.debounce="$dispatch('toggle-cart')" @keydown.space.prevent="$dispatch('toggle-cart')" href="/cart" class="text-fs-white hover:text-fs-tan uppercase text-sm font-bold flex items-center justify-center py-4 flex relative group" role="button" aria-haspopup="dialog"> 3633 3634<svg 3635 3636 class="flex group-hover:scale-110 z-1 w-5 h-5 sm:w-7 sm:h-7 align-middle fill-fs-white dark:fill-fs-white text-fs-white dark:text-fs-white hover:text-fs-tan hover:fill-fs-tan icon icon-cart 3637" 3638 aria-hidden="true" 3639 focusable="false" 3640 role="presentation" 3641 3642> 3643 <use xlink:href="#icon-cart"/> 3644</svg> 3645 <span class="sr-only">Cart</span> 3646 3647 <div id="cart-icon-bubble"> 3648 3649 3650 3651 </div> 3652 3653 </a> 3654 </li><li class="inline-flex"> 3655 <a href="/account/login" class="text-fs-white hover:text-fs-tan uppercase text-sm font-bold flex items-center justify-center py-4 flex relative group" aria-label="My Account"> 3656 3657<svg 3658 3659 class="flex group-hover:scale-110 z-1 w-5 h-5 sm:w-7 sm:h-7 align-middle fill-fs-white dark:fill-fs-white text-fs-white dark:text-fs-white hover:text-fs-tan hover:fill-fs-tan icon icon-account 3660" 3661 aria-hidden="true" 3662 focusable="false" 3663 role="presentation" 3664 3665> 3666 <use xlink:href="#icon-account"/> 3667</svg> 3668 <span class="sr-only">My Account</span> 3669 </a> 3670 </li><li class="inline-flex"> 3671 <details-modal class="inline-flex" x-data="headerSearch"> 3672 <details class="block" x-ref="searchDetails"> 3673 <summary class="inline-block cursor-pointer" aria-haspopup="dialog" aria-label="Search"> 3674 <span @click="showSearch = true" class="text-fs-white hover:text-fs-tan uppercase text-sm font-bold flex items-center justify-center py-4 flex relative group"> 3675 3676<svg 3677 3678 class="flex group-hover:scale-110 z-1 w-5 h-5 sm:w-7 sm:h-7 align-middle fill-fs-white dark:fill-fs-white text-fs-white dark:text-fs-white hover:text-fs-tan hover:fill-fs-tan icon icon-search 3679" 3680 aria-hidden="true" 3681 focusable="false" 3682 role="presentation" 3683 3684> 3685 <use xlink:href="#icon-search"/> 3686</svg> 3687 </span> 3688 </summary> 3689 <div x-show="showSearch" :class="showSearch ? 'opacity-100 z-50' : 'opacity-0'" class="absolute top-0 left-0 right-0 bottom-0 bg-fs-red flex justify-center items-center h-full min-h-[calc(100%+2px)] border-b border-fs-black transition-all duration-300" role="dialog" aria-modal="true" aria-label="Search"> 3690 <div class="modal-overlay block after:absolute after:bg-fs-black/50 after:top-full after:left-0 after:right-0 after:h-screen"></div> 3691 <div class="flex justify-center items-center w-full h-full container search-modal__content search-modal__content-bottom" tabindex="-1"> 3692 <predictive-search class="max-w-screen-md relative w-full flex search-modal__form" data-loading-text="Loading..."> 3693 <form @click.outside="showSearch = false; $refs.searchDetails.open = false" action="/search" method="get" role="search" class="max-w-screen-md w-full flex justify-center items-center search search-modal__form"> 3694 <div class="field relative w-full flex"> 3695 <input class="grow text-left py-2 px-4 w-full text-lg appearance-none search__input field__input" 3696 x-model="searchTerm" 3697 @input.debounce="getSearchResults" 3698 @focus="getSearchResults" 3699 id="Search-In-Modal" 3700 type="search" 3701 name="q" 3702 value="" 3703 placeholder="Search" 3704 role="combobox" 3705 aria-expanded="false" 3706 aria-owns="predictive-search-results" 3707 aria-controls="predictive-search-results" 3708 aria-haspopup="listbox"
3709 aria-autocomplete="list" 3710 autocorrect="off" 3711 autocomplete="off" 3712 autocapitalize="off" 3713 spellcheck="false" 3714 > 3715 <label class="sr-only field__label" for="Search-In-Modal">Search</label> 3716 <input type="hidden" name="options[prefix]" value="last"> 3717 <button @click.prevent="searchTerm = ''" x-show="searchTerm" type="reset" class="absolute right-8 sm:right-12 top-3 border-r border-fs-ltbrown/50 pr-2 reset__button field__button" aria-label="Clear search term"> 3718 3719<svg 3720 3721 class="rounded-full border border-fs-brown/50 hover:border-fs-brown p-1 z-1 w-4 h-4 sm:w-5 sm:h-5 align-middle fill-fs-brown/50 dark:fill-fs-white text-fs-brown/50 dark:text-fs-white hover:text-fs-brown hover:fill-fs-brown icon icon-close 3722" 3723 aria-hidden="true" 3724 focusable="false" 3725 role="presentation" 3726 3727> 3728 <use xlink:href="#icon-close"/> 3729</svg> 3730 </button> 3731 <button class="absolute right-2 top-3 md:top-2 search__button field__button" aria-label="Search"> 3732 3733<svg 3734 3735 class="mr-0 z-1 w-5 h-5 sm:w-7 sm:h-7 align-middle fill-fs-red dark:fill-fs-white text-fs-red dark:text-fs-white hover:text-fs-black hover:fill-fs-black icon icon-search 3736" 3737 aria-hidden="true" 3738 focusable="false" 3739 role="presentation" 3740 3741> 3742 <use xlink:href="#icon-search"/> 3743</svg> 3744 </button> 3745 </div> 3746 <div x-show="predictiveOpen" class="max-h-screen overflow-y-scroll absolute top-full w-full bg-fs-tan text-fs-black shadow rounded-b-lg predictive-search predictive-search--header" tabindex="-1" x-ref="searchResults"> 3747 <div aria-hidden="true" class="w-full py-4 text-center predictive-search__loading-state"> 3748 3749<span class="loading loading-bars loading-md "></span> 3750 </div> 3751 </div> 3752 <span class="predictive-search-status sr-only" role="status" aria-hidden="true"></span> 3753 </form> 3754 </predictive-search> 3755 <button type="button" class="flex justify-center items-center ml-2 search-modal__close-button modal__close-button link link--text focus-inset" aria-label="Close"> 3756 3757<svg 3758 3759 class="flex group-hover:scale-110 hidden z-1 w-5 h-5 sm:w-7 sm:h-7 align-middle fill-fs-white dark:fill-fs-white text-fs-white dark:text-fs-white hover:text-fs-tan hover:fill-fs-tan icon icon-close 3760" 3761 aria-hidden="true" 3762 focusable="false" 3763 role="presentation" 3764 3765> 3766 <use xlink:href="#icon-close"/> 3767</svg> 3768 </button> 3769 </div> 3770 </div> 3771 </details> 3772 </details-modal> 3773 </li></ul>
3773<script> 3774 document.addEventListener('alpine:init', () => { 3775 Alpine.data('headerSearch', () => ({ 3776 showSearch: false, 3777 predictiveOpen: false, 3778 hasResults: false, 3779 searchTerm: '', 3780 cachedResults: {}, 3781 body: document.querySelector('body'), 3782 3783 init() { 3784 // Watch for changes to `showSearch` and toggle `overflow-hidden` on the body 3785 this.$watch('showSearch', (value) => { 3786 if (value) { 3787 this.body.classList.add('overflow-hidden'); 3788 } else { 3789 this.body.classList.remove('overflow-hidden'); 3790 this.predictiveOpen = false 3791 this.searchTerm = '' 3792 } 3793 }) 3794 // Close predictive search when searchTerm is empty 3795 this.$watch('searchTerm', (value) => { 3796 if (value === '') { 3797 this.predictiveOpen = false 3798 } else { 3799 this.predictiveOpen = true 3800 } 3801 }) 3802 }, 3803 3804 getSearchResults() { 3805 const queryKey = this.searchTerm.replace(' ', '-').toLowerCase(); 3806 3807 // If we've cached this search, load it 3808 if (this.cachedResults[queryKey]) { 3809 this.$refs.searchResults.innerHTML = this.cachedResults[queryKey] 3810 return 3811 } 3812 3813 fetch(`${routes.predictive_search_url}?q=${encodeURIComponent(this.searchTerm)}§ion_id=predictive-search&resources[options][fields]=title,product_type,variants.title,body`) 3814 .then((response) => { 3815 if (!response.ok) { 3816 var error = new Error(response.status); 3817 this.predictiveOpen = false 3818 this.hasResults = false 3819 throw error; 3820 } 3821 3822 return response.text(); 3823 }) 3824 .then((text) => { 3825 const resultsMarkup = new DOMParser() 3826 .parseFromString(text, 'text/html') 3827 .querySelector('#shopify-section-predictive-search').innerHTML; 3828 3829 // Save bandwidth keeping the cache in all instances synced 3830 this.cachedResults[queryKey] = resultsMarkup 3831 this.hasResults = true 3832 3833 this.$refs.searchResults.innerHTML = resultsMarkup 3834 }) 3835 .catch((error) => { 3836 if (error?.code === 20) { 3837 // Code 20 means the call was aborted 3838 return; 3839 } 3840 this.predictiveOpen = false; 3841 throw error; 3842 }) 3843 }, 3844 })) 3845 }) 3846</script>
3846 3847 <!-- End Desktop utility links --> 3848 </div> 3849 <!-- Mobile utility links --> 3850 3851 3852<ul class="flex gap-4 justify-end items-center col-span-3 sm:col-span-2 lg:hidden" id="utility_links" x-data><li class="inline-flex flex"> 3853 <a x-ref="cartIconBubble" @click.prevent.debounce="$dispatch('toggle-cart')" @keydown.space.prevent="$dispatch('toggle-cart')" href="/cart" class="text-fs-white hover:text-fs-tan uppercase text-sm font-bold flex items-center justify-center py-4 flex relative group" role="button" aria-haspopup="dialog"> 3854 3855<svg 3856 3857 class="flex group-hover:scale-110 z-1 w-5 h-5 sm:w-7 sm:h-7 align-middle fill-fs-white dark:fill-fs-white text-fs-white dark:text-fs-white hover:text-fs-tan hover:fill-fs-tan icon icon-cart 3858" 3859 aria-hidden="true" 3860 focusable="false" 3861 role="presentation" 3862 3863> 3864 <use xlink:href="#icon-cart"/> 3865</svg> 3866 <span class="sr-only">Cart</span> 3867 3868 <div id="cart-icon-bubble"> 3869 3870 3871 3872 </div> 3873 3874 </a> 3875 </li><li class="inline-flex flex"> 3876 <details-modal class="inline-flex" x-data="headerSearch"> 3877 <details class="block" x-ref="searchDetails"> 3878 <summary class="inline-block cursor-pointer" aria-haspopup="dialog" aria-label="Search"> 3879 <span @click="showSearch = true" class="text-fs-white hover:text-fs-tan uppercase text-sm font-bold flex items-center justify-center py-4 flex relative group"> 3880 3881<svg 3882 3883 class="flex group-hover:scale-110 z-1 w-5 h-5 sm:w-7 sm:h-7 align-middle fill-fs-white dark:fill-fs-white text-fs-white dark:text-fs-white hover:text-fs-tan hover:fill-fs-tan icon icon-search 3884" 3885 aria-hidden="true" 3886 focusable="false" 3887 role="presentation" 3888 3889> 3890 <use xlink:href="#icon-search"/> 3891</svg> 3892 </span> 3893 </summary> 3894 <div x-show="showSearch" :class="showSearch ? 'opacity-100 z-50' : 'opacity-0'" class="absolute top-0 left-0 right-0 bottom-0 bg-fs-red flex justify-center items-center h-full min-h-[calc(100%+2px)] border-b border-fs-black transition-all duration-300" role="dialog" aria-modal="true" aria-label="Search"> 3895 <div class="modal-overlay block after:absolute after:bg-fs-black/50 after:top-full after:left-0 after:right-0 after:h-screen"></div> 3896 <div class="flex justify-center items-center w-full h-full container search-modal__content search-modal__content-bottom" tabindex="-1"> 3897 <predictive-search class="max-w-screen-md relative w-full flex search-modal__form" data-loading-text="Loading..."> 3898 <form @click.outside="showSearch = false; $refs.searchDetails.open = false" action="/search" method="get" role="search" class="max-w-screen-md w-full flex justify-center items-center search search-modal__form"> 3899 <div class="field relative w-full flex"> 3900 <input class="grow text-left py-2 px-4 w-full text-lg appearance-none search__input field__input" 3901 x-model="searchTerm" 3902 @input.debounce="getSearchResults" 3903 @focus="getSearchResults" 3904 id="Search-In-Modal" 3905 type="search" 3906 name="q" 3907 value="" 3908 placeholder="Search" 3909 role="combobox" 3910 aria-expanded="false" 3911 aria-owns="predictive-search-results" 3912 aria-controls="predictive-search-results" 3913 aria-haspopup="listbox"
3914 aria-autocomplete="list" 3915 autocorrect="off" 3916 autocomplete="off" 3917 autocapitalize="off" 3918 spellcheck="false" 3919 > 3920 <label class="sr-only field__label" for="Search-In-Modal">Search</label> 3921 <input type="hidden" name="options[prefix]" value="last"> 3922 <button @click.prevent="searchTerm = ''" x-show="searchTerm" type="reset" class="absolute right-8 sm:right-12 top-3 border-r border-fs-ltbrown/50 pr-2 reset__button field__button" aria-label="Clear search term"> 3923 3924<svg 3925 3926 class="rounded-full border border-fs-brown/50 hover:border-fs-brown p-1 z-1 w-4 h-4 sm:w-5 sm:h-5 align-middle fill-fs-brown/50 dark:fill-fs-white text-fs-brown/50 dark:text-fs-white hover:text-fs-brown hover:fill-fs-brown icon icon-close 3927" 3928 aria-hidden="true" 3929 focusable="false" 3930 role="presentation" 3931 3932> 3933 <use xlink:href="#icon-close"/> 3934</svg> 3935 </button> 3936 <button class="absolute right-2 top-3 md:top-2 search__button field__button" aria-label="Search"> 3937 3938<svg 3939 3940 class="mr-0 z-1 w-5 h-5 sm:w-7 sm:h-7 align-middle fill-fs-red dark:fill-fs-white text-fs-red dark:text-fs-white hover:text-fs-black hover:fill-fs-black icon icon-search 3941" 3942 aria-hidden="true" 3943 focusable="false" 3944 role="presentation" 3945 3946> 3947 <use xlink:href="#icon-search"/> 3948</svg> 3949 </button> 3950 </div> 3951 <div x-show="predictiveOpen" class="max-h-screen overflow-y-scroll absolute top-full w-full bg-fs-tan text-fs-black shadow rounded-b-lg predictive-search predictive-search--header" tabindex="-1" x-ref="searchResults"> 3952 <div aria-hidden="true" class="w-full py-4 text-center predictive-search__loading-state"> 3953 3954<span class="loading loading-bars loading-md "></span> 3955 </div> 3956 </div> 3957 <span class="predictive-search-status sr-only" role="status" aria-hidden="true"></span> 3958 </form> 3959 </predictive-search> 3960 <button type="button" class="flex justify-center items-center ml-2 search-modal__close-button modal__close-button link link--text focus-inset" aria-label="Close"> 3961 3962<svg 3963 3964 class="flex group-hover:scale-110 hidden z-1 w-5 h-5 sm:w-7 sm:h-7 align-middle fill-fs-white dark:fill-fs-white text-fs-white dark:text-fs-white hover:text-fs-tan hover:fill-fs-tan icon icon-close 3965" 3966 aria-hidden="true" 3967 focusable="false" 3968 role="presentation" 3969 3970> 3971 <use xlink:href="#icon-close"/> 3972</svg> 3973 </button> 3974 </div> 3975 </div> 3976 </details> 3977 </details-modal> 3978 </li></ul>
3978<script> 3979 document.addEventListener('alpine:init', () => { 3980 Alpine.data('headerSearch', () => ({ 3981 showSearch: false, 3982 predictiveOpen: false, 3983 hasResults: false, 3984 searchTerm: '', 3985 cachedResults: {}, 3986 body: document.querySelector('body'), 3987 3988 init() { 3989 // Watch for changes to `showSearch` and toggle `overflow-hidden` on the body 3990 this.$watch('showSearch', (value) => { 3991 if (value) { 3992 this.body.classList.add('overflow-hidden'); 3993 } else { 3994 this.body.classList.remove('overflow-hidden'); 3995 this.predictiveOpen = false 3996 this.searchTerm = '' 3997 } 3998 }) 3999 // Close predictive search when searchTerm is empty 4000 this.$watch('searchTerm', (value) => { 4001 if (value === '') { 4002 this.predictiveOpen = false 4003 } else { 4004 this.predictiveOpen = true 4005 } 4006 }) 4007 }, 4008 4009 getSearchResults() { 4010 const queryKey = this.searchTerm.replace(' ', '-').toLowerCase(); 4011 4012 // If we've cached this search, load it 4013 if (this.cachedResults[queryKey]) { 4014 this.$refs.searchResults.innerHTML = this.cachedResults[queryKey] 4015 return 4016 } 4017 4018 fetch(`${routes.predictive_search_url}?q=${encodeURIComponent(this.searchTerm)}§ion_id=predictive-search&resources[options][fields]=title,product_type,variants.title,body`) 4019 .then((response) => { 4020 if (!response.ok) { 4021 var error = new Error(response.status); 4022 this.predictiveOpen = false 4023 this.hasResults = false 4024 throw error; 4025 } 4026 4027 return response.text(); 4028 }) 4029 .then((text) => { 4030 const resultsMarkup = new DOMParser() 4031 .parseFromString(text, 'text/html') 4032 .querySelector('#shopify-section-predictive-search').innerHTML; 4033 4034 // Save bandwidth keeping the cache in all instances synced 4035 this.cachedResults[queryKey] = resultsMarkup 4036 this.hasResults = true 4037 4038 this.$refs.searchResults.innerHTML = resultsMarkup 4039 }) 4040 .catch((error) => { 4041 if (error?.code === 20) { 4042 // Code 20 means the call was aborted 4043 return; 4044 } 4045 this.predictiveOpen = false; 4046 throw error; 4047 }) 4048 }, 4049 })) 4050 }) 4051</script>
4051 4052 <!-- End Mobile utility links --> 4053 </div> 4054 </div> 4055</sticky-header> 4056<!-- Notifications --> 4057 4058<cart-notification x-data="CartNotifications" @cart-updated.window="showAndUpdate($event.detail)" @keyup.escape.prevent="showCartNotification = false"> 4059 <div id="cart-notification-wrapper" class="cart-notification-wrapper relative"> 4060 <div :class="showCartNotification ? 'animate active translate-x-2 visible' : 'animate translate-x-cart invisible'" 4061 id="cart-notification" 4062 class="cart-notification z-1000 focus-inset p-4 fixed shadow hidden top-4 right-4 w-auto bg-fs-tan" 4063 aria-modal="true" 4064 aria-label="Item added to your cart" 4065 role="dialog" 4066 tabindex="-1" 4067 @mouseenter="pauseAutoHide()" 4068 @mouseleave="resumeAutoHide()" 4069 > 4070 <!-- Notifications header --> 4071 <div class="flex items-center justify-center"> 4072 <h2 class="font-body cart-notification__heading flex items-center grow m-0 mr-2"> 4073 4074<svg 4075 id="sections--25592569594147__header" 4076 4077 4078 class="mr-2 z-1 w-3 h-3 sm:w-4 sm:h-4 align-middle fill-fs-red dark:fill-fs-white text-fs-red dark:text-fs-white hover:text-fs-red hover:fill-fs-red icon icon-checkmark 4079" 4080 aria-hidden="true" 4081 focusable="false" 4082 role="presentation" 4083 4084> 4085 <use xlink:href="#icon-checkmark"/> 4086</svg> 4087 <span x-text="cartItemKeys.length > 1 ? 'Items added to your cart' : 'Item added to your cart'">Item added to your cart</span> 4088 </h2> 4089 <button type="button" class="" aria-label="Close" @click.prevent="showCartNotification = false"> 4090 4091<svg 4092 id="sections--25592569594147__header" 4093 4094 4095 class=" z-1 w-3 h-3 sm:w-4 sm:h-4 align-middle fill-fs-black/50 dark:fill-fs-white text-fs-black/50 dark:text-fs-white hover:text-fs-black hover:fill-fs-black icon icon-close 4096" 4097 aria-hidden="true" 4098 focusable="false" 4099 role="presentation" 4100 4101> 4102 <use xlink:href="#icon-close"/> 4103</svg> 4104 </button> 4105 </div> 4106 <!-- End notifications header --> 4107 <!-- Notifications product --> 4108 <div id="cart-notification-product" class="flex flex-col gap-4 overflow-y-auto max-h-[50vh] pt-6 pb-2"></div> 4109 <!-- End notifications product --> 4110 <!-- Cross-sell --> 4111 <div class="cross-sell-notification" x-ref="cross_sell_notification"></div> 4112 <!-- End cross-sell --> 4113 <!-- Notifications footer --> 4114 <div class="text-center"> 4115 <a @click.prevent.debounce="$dispatch('toggle-cart')" href="/cart" id="cart-notification-button" class="btn btn-sixes btn-block mt-4">View My Cart</a> 4116 <form action="/cart" method="post" id="cart-notification-form"> 4117 <button class="btn btn-sixes btn-block mt-4" name="checkout"> 4118 Check out 4119 </button> 4120 </form> 4121 </div> 4122 <!-- End notifications footer --> 4123 </div> 4124 </div> 4125</cart-notification> 4126<style data-shopify> 4127 .cart-notification.animate { 4128 transition: transform .5s ease, visibility 0s .5s ease; 4129 display: block; 4130 } 4131 4132 .cart-notification.active { 4133 transition: transform .5s ease, visibility 0s; 4134 } 4135</style>
4136<script> 4137 document.addEventListener('alpine:init', () => { 4138 Alpine.data('CartNotifications', () => ({ 4139 showCartNotification: false, 4140 cartItemKey: null, 4141 cartItemKeys: [], 4142 _hideTimer: null, 4143 _isHovered: false, 4144 4145 pauseAutoHide: function() { 4146 this._isHovered = true; 4147 if (this._hideTimer) { 4148 clearTimeout(this._hideTimer); 4149 this._hideTimer = null; 4150 } 4151 }, 4152 4153 resumeAutoHide: function() { 4154 this._isHovered = false; 4155 this._scheduleHide(3000); 4156 }, 4157 4158 _scheduleHide: function(delay) { 4159 if (this._hideTimer) clearTimeout(this._hideTimer); 4160 this._hideTimer = setTimeout(() => { 4161 this.showCartNotification = false; 4162 this._hideTimer = null; 4163 }, delay); 4164 }, 4165 4166 showAndUpdate: function (response) { 4167 this.renderContents(response) 4168 this.loadCrossSell(response) 4169 this.showCartNotification = true 4170 }, 4171 4172 renderContents: function(parsedState) { 4173 // Handle single-item (.key) and multi-item (.items) responses 4174 if (parsedState.items && Array.isArray(parsedState.items)) { 4175 this.cartItemKeys = parsedState.items.map(item => item.key); 4176 } else if (parsedState.key) { 4177 this.cartItemKeys = [parsedState.key]; 4178 } else { 4179 this.cartItemKeys = []; 4180 } 4181 // Backward compat for anything reading cartItemKey 4182 this.cartItemKey = this.cartItemKeys[0] || null; 4183 4184 // Extract HTML for all added items from the section response 4185 // (cart-notification-product.liquid renders every cart item; 4186 // we select only the ones that were just added by key) 4187 const productHtml = parsedState.sections?.['cart-notification-product']; 4188 if (productHtml) { 4189 const doc = new DOMParser().parseFromString(productHtml, 'text/html'); 4190 let itemsMarkup = ''; 4191 this.cartItemKeys.forEach(key => { 4192 const el = doc.querySelector('[id="cart-notification-product-' + key + '"]'); 4193 if (el) itemsMarkup += el.outerHTML; 4194 }); 4195 const container = document.getElementById('cart-notification-product'); 4196 if (container) container.innerHTML = itemsMarkup; 4197 } 4198 4199 // Button (cart count text) 4200 const buttonHtml = parsedState.sections?.['cart-notification-button']; 4201 if (buttonHtml) { 4202 const el = document.getElementById('cart-notification-button'); 4203 if (el) el.innerHTML = this.getSectionInnerHTML(buttonHtml); 4204 } 4205 4206 // Icon bubble 4207 const bubbleHtml = parsedState.sections?.['cart-icon-bubble']; 4208 if (bubbleHtml) { 4209 const el = document.getElementById('cart-icon-bubble'); 4210 if (el) el.innerHTML = this.getSectionInnerHTML(bubbleHtml); 4211 } 4212 4213 // Show the popup and schedule auto-hide (skipped if hovered) 4214 this.showCartNotification = true; 4215 if (!this._isHovered) { 4216 this._scheduleHide(10000); 4217 } 4218 }, 4219 4220 // Load cross-sell for the just-added product(s) 4221 loadCrossSell: function(response) { 4222 const container = this.$refs.cross_sell_notification; 4223 if (!container) return; 4224 4225 container.innerHTML = ''; 4226 4227 // Get handle(s) from the add-to-cart response 4228 const handles = new Set(); 4229 if (response.items && Array.isArray(response.items)) { 4230 response.items.forEach(item => { if (item.handle) handles.add(item.handle); }); 4231 } else if (response.handle) { 4232 handles.add(response.handle); 4233 } 4234 4235 if (handles.size === 0) return; 4236 4237 // Fetch cross-sell for the first added product 4238 const handle = handles.values().next().value; 4239 Promise.all([ 4240 fetch(`/products/${handle}?view=crosssells`).then(res => res.text()), 4241 fetch('/cart.js').then(res => res.json()).catch(() => null), 4242 ]) 4243 .then(([html, cart]) => { 4244 if (!html.trim()) return; 4245 // Never recommend something the cart already holds â offering an "Add" 4246 // for an item the customer just bought is noise, and for a free gift it 4247 // is a flat contradiction (a $61.66 Add directly under its own FREE GIFT 4248 // row). Note this only catches what is in the cart RIGHT NOW; a gift the 4249 // BOGO controller has not added yet is caught after it converges, in 4250 // bogo-controller.liquid's pruneCrossSell(). 4251 if (cart && Array.isArray(cart.items) 4252 && this.crossSellIsInCart(html, cart.items)) { 4253 return; 4254 } 4255 container.innerHTML = html; 4256 }) 4257 .catch(err => console.error(`Notification cross-sell error:`, err)); 4258 }, 4259 4260 // Does the cross-sell markup recommend a variant the cart already contains? 4261 crossSellIsInCart: function(html, items) { 4262 const card = new DOMParser() 4263 .parseFromString(html, 'text/html') 4264 .querySelector('[data-cross-sell-variant]'); 4265 if (!card) return false;
4266 const variantId = String(card.getAttribute('data-cross-sell-variant')); 4267 return items.some(item => String(item.variant_id) === variantId); 4268 }, 4269 4270 getSectionInnerHTML: function(html, selector = '.shopify-section') { 4271 return new DOMParser() 4272 .parseFromString(html, 'text/html') 4273 .querySelector(selector).innerHTML; 4274 } 4275 })) 4276 }) 4277</script>
4277 4278<!-- End notifications --> 4279
4280<script> 4281 document.addEventListener('alpine:init', () => { 4282 Alpine.data('Header', () => ({ 4283 stuck: false, 4284 headerHeight: 0, 4285 sloganBannerHeight: 0, 4286 hideBannerOnScroll: true, 4287 4288 init() { 4289 this.$nextTick(() => { 4290 setTimeout(() => { 4291 const sloganBanner = document.getElementById('slogan-banner') 4292 if(sloganBanner) { 4293 this.sloganBannerHeight = sloganBanner.offsetHeight; 4294 } 4295 this.headerHeight = this.$refs.header.offsetHeight 4296 document.querySelector('header').setAttribute('style', `height:${this.headerHeight}px`) 4297 },50) 4298 }); 4299 }, 4300 4301 scrollHandler: function (e) { 4302 var stickyHeader = this.$refs.header 4303 if (window.scrollY > this.headerHeight + this.sloganBannerHeight) { 4304 if (this.stuck === true) { 4305 return 4306 } 4307 setTimeout(function() { 4308 stickyHeader.classList.add('header_animate') 4309 stickyHeader.classList.add('scrolled-past-header') 4310 stickyHeader.classList.add('bg-fs-red/95') 4311 stickyHeader.classList.remove('bg-fs-red') 4312 }, 100) 4313 this.stuck = true 4314 } 4315 else if (window.scrollY < this.sloganBannerHeight) { 4316 stickyHeader.classList.remove('header_animate') 4317 stickyHeader.classList.remove('scrolled-past-header') 4318 stickyHeader.classList.add('bg-fs-red') 4319 stickyHeader.classList.remove('bg-fs-red/95') 4320 this.stuck = false 4321 } 4322 } 4323 })) 4324 }) 4325</script>
4325</header> 4326<!-- END sections: header-group --> 4327 4328 <main id="MainContent" class="content-for-layout focus-none" role="main" tabindex="-1"> 4329 4330 4331 <section id="shopify-section-template--25592570609955__free_shipping" class="shopify-section section relative overflow-hidden"> 4332 4333<div class="bg-fs-tan template--25592570609955__free_shipping pt-3 pb-3 mt-0 mb-0"> 4334 <div class="grid gap-6 grid-cols-1 md:grid-cols-1 items-center justify-center items-center justify-center container mx-auto"> 4335 <div class="flex flex-col m-0 col-span-1 md:col-span-1"><div > 4336 4337 4338 4339 4340 4341 4342 4343<div id="textblock_template--25592570609955__free_shipping_container" class="flex w-full mb-0 mt-0 pb-0 pt-0 text-center justify-center items-center"> 4344 <div class="flex items-center"> 4345 4346 4347 4348 <h4 id="heading_template--25592570609955__free_shipping" class="w-full text-fs-red text-3xl leading-normal sm:text-3xl md:text-3xl lg:text-3xl xl:text-3xl 2xl:text-3xl sm:leading-normal md:leading-normal lg:leading-normal xl:leading-normal 2xl:leading-normal drop-shadow font-subheading font-semibold tracking-normal uppercase"> 4349 15% Off First Time Orders: use code 666615 4350 </h4> 4351 4352 4353 </div> 4354</div> 4355 4356 </div> 4357 4358 </div> 4359 </div> 4360</div> 4361</section><div id="shopify-section-template--25592570609955__product-grid" class="shopify-section section"><style data-shopify>@media (min-width: 768px) { 4362 ul#product-grid li a.card { 4363 margin-right: calc(2rem / 2); 4364 margin-left: calc(2rem / 2); 4365 } 4366 ul#product-grid li:nth-of-type(3n + 1) a.card { 4367 margin-left: 0; 4368 } 4369 ul#product-grid li:nth-of-type(3n + 3) a.card, ul#product-grid li:last-of-type a.card { 4370 margin-right: 0; 4371 } 4372 }</style><div class="section-template--25592570609955__product-grid pt-8 pb-8 bg-fs-white"> 4373 <div id="product_collection-template--25592570609955__product-grid" class="container mx-auto"><!-- Products --> 4374 <div class="product-grid-container" id="ProductGridContainer"><div class="collection"> 4375 <div class="loading-overlay"></div> 4376 <ul id="product-grid" data-id="template--25592570609955__product-grid" class="flex flex-wrap gap-y-8 justify-center"> 4377 4378 4379<!-- Horizontal card --> 4380 <li class="basis-full md:basis-1/3 shrink-0"> 4381 4382 <a href="/products/joint-pellet" id="CardLink-template--25592570609955__product-grid-8126314643747" class="card h-full rounded-none border border-fs-black/10 hover:shadow-md relative no-underline group bg-fs-tan" aria-labelledby="CardLink-template--25592570609955__product-grid-8126314643747 Badge-template--25592570609955__product-grid-8126314643747"> 4383 4384<figure class="group py-4 m-0"> 4385 <div class="flex items-center justify-center px-4"> 4386 4387 <img src="//6666equinesupplements.com/cdn/shop/files/Transparent_Backgroun
4387d_6666_ES_2025_Joint_Health_Pellets_60_Day_Front_copy.webp?crop=center&height=300&pad_color=F0EEE8&v=1764791488&width=300" alt="Equine Joint Health Pellets" srcset="//6666equinesupplements.com/cdn/shop/files/Transparent_Background_6666_ES_2025_Joint_Health_Pellets_60_Day_Front_copy.webp?crop=center&height=300&pad_color=F0EEE8&v=1764791488&width=300 300w" width="300" height="300" loading="lazy" class="transition-all duration-500 ease-in-out transform hover:scale-110"> 4388</div> 4389 </figure> 4390 4391 4392 4393 4394 4395 4396 4397 <div class="card-body gap-0 grow text-left px-4"> 4398 4399 4400 4401 4402 4403 4404 4405 4406 4407 <div > 4408 4409 4410 4411 4412 4413 4414 4415 4416<div id="textblock_subtitle_container" class="flex w-full mb-0 mt-0 pb-0 pt-0 text-left justify-start items-center"> 4417 <div class="flex items-center"> 4418 4419 4420 4421 <h3 id="heading_subtitle" class="w-full text-fs-dkgray text-base leading-normal md:text-xs sm:leading-normal md:leading-normal lg:leading-normal xl:leading-normal 2xl:leading-normal font-subheading font-bold tracking-widest uppercase"> 4422 Advanced Equine Joint Support 4423 </h3> 4424 4425 4426 </div> 4427</div> 4428 4429 </div> 4430 4431 4432 4433<div > 4434 4435 4436 4437 4438 4439 4440 4441<div id="textblock_title_container" class="flex w-full mb-4 mt-0 pb-0 pt-0 text-left justify-start items-center"> 4442 <div class="flex items-center"> 4443 4444 4445 4446 <h2 id="heading_title" class="w-full text-fs-red text-3xl leading-tight md:text-3xl sm:leading-tight md:leading-tight lg:leading-tight xl:leading-tight 2xl:leading-tight font-serif font-bold tracking-normal"> 4447 Equine Joint Health Pellets 4448 </h2> 4449 4450 4451 </div> 4452</div> 4453 4454 </div> 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 <div > 4465<div id="price" x-data="{ 4466 regularPrice: 18166, 4467 compareAtPrice: false, 4468 varies: true, 4469 template: 'collection', 4470 flash: false, 4471 4472 priceChange() { 4473 const variant = this.$store.storeData.selectedVariant 4474 const mode = this.$store.storeData.mode 4475 const subPrice = this.$store.storeData.selectedSubscriptionPrice 4476 4477 const newPrice = (mode === 'subscription' && subPrice) ? subPrice : variant.price 4478 this.compareAtPrice = variant.compare_at_price ? variant.compare_at_price : false 4479 this.flashPrice(newPrice) 4480 }, 4481 4482 subscriptionPriceChange() { 4483 const variant = this.$store.storeData.selectedVariant 4484 const mode = this.$store.storeData.mode 4485 const subPrice = this.$store.storeData.selectedSubscriptionPrice 4486 4487 const newPrice = (mode === 'subscription' && subPrice) ? subPrice : variant.price 4488 this.flashPrice(newPrice) 4489 }, 4490 4491 flashPrice(newPrice) { 4492 if (newPrice != this.regularPrice) { 4493 this.flash = false 4494 void this.$el.offsetWidth 4495 this.regularPrice = newPrice 4496 this.flash = true 4497 setTimeout(() => { this.flash = false }, 400) 4498 } 4499 }, 4500 4501 showFrom() { 4502 if (this.varies && this.template != 'product') { 4503 return true 4504 } else { 4505 return false 4506 } 4507 }, 4508 }" x-transition:opacity @variant-updated.window="priceChange" @subscription-plan:change.window="subscriptionPriceChange" class="price flex items-center text-fs-black mb-4 text-base md: font-body font-bold tracking-normal leading-normal md:leading-normal sm:text-base lg:text-base xl:text-base 2xl:text-base justify-start"> 4509 <div id="price_container"> 4510 <span class="sr-only sr-only--inline">Regular Price</span> 4511 <span x-money.shopify="compareAtPrice" :class="compareAtPrice === false ? 'hidden' : ''" class="line-through text-base text-fs-black mr-1"> 4512 4513 </span><span class="sr-only">Regular price</span> 4514 <span x-show="showFrom()">From </span> 4515 <span x-money.shopify="regularPrice" :class="flash ? 'text-fs-red transition-colors duration-300' : 'transition-colors duration-300'" class="mr-2">$181.66</span> 4516 4517 4518 <small class=" hidden">
4519 <span class="sr-only">Unit price</span> 4520 <span class="price-item"> 4521 <span></span> 4522 <span class="hidden" aria-hidden="true">/</span> 4523 <span class="sr-only"> per </span> 4524 <span> 4525 </span> 4526 </span> 4527 </small> 4528 </div> 4529 4530 4531<div id="price-badges"> 4532 <div x-data="priceBadges" @variant-updated.window="priceBadgesChange" id="badges" class="flex"><div x-show="$store.storeData.showSaleBadge" id="on-sale" class="flex flex-nowrap flex-row items-center justify-center"> 4533 <span class="badge badge-lg font-normal leading-extra-tight font-body uppercase ml-0.5 price__badge-sale text-fs-red"> 4534 4535 4536<svg 4537 id="sale-badge" 4538 4539 4540 class="mr-2 z-1 w-5 h-5 sm:w-5 sm:h-5 align-middle fill-fs-red dark:fill-fs-white text-fs-red dark:text-fs-white hover:text-current hover:fill-current icon icon-tag 4541" 4542 aria-hidden="true" 4543 focusable="false" 4544 role="presentation" 4545 4546> 4547 <use xlink:href="#icon-tag"/> 4548</svg> 4549 4550 Sale 4551 </span> 4552 </div> 4553 <div x-show="$store.storeData.showSoldOutBadge" id="sold-out" class="flex flex-nowrap flex-row items-center justify-center"> 4554 <span class="badge badge-lg font-normal leading-extra-tight font-body uppercase ml-0.5 price__badge-sold-out text-fs-red"> 4555 4556 4557<svg 4558 id="soldout-badge" 4559 4560 4561 class="mr-2 z-1 w-5 h-5 sm:w-5 sm:h-5 align-middle fill-fs-red dark:fill-fs-white text-fs-red dark:text-fs-white hover:text-current hover:fill-current icon icon-fire-solid 4562" 4563 aria-hidden="true" 4564 focusable="false" 4565 role="presentation" 4566 4567> 4568 <use xlink:href="#icon-fire-solid"/> 4569</svg> 4570 4571 Hot Product 4572 </span> 4573 </div> 4574 </div> 4575</div>
4576<script> 4577 document.addEventListener('alpine:init', () => { 4578 Alpine.data('priceBadges', () => ({ 4579 priceBadgesChange() { 4580 if (this.$store.storeData.selectedVariant.inventory_management === 'shopify' && this.$store.storeData.stockQuantity() <= 0) { 4581 console.log('shopify lt 0') 4582 this.$store.storeData.showSoldOutBadge = true 4583 } 4584 else if (this.$store.storeData.selectedVariant.inventory_management === '' && this.$store.storeData.selectedVariant.available === false) { 4585 console.log('not available') 4586 this.$store.storeData.showSoldOutBadge = true 4587 } else { 4588 this.$store.storeData.showSoldOutBadge = false 4589 } 4590 // this.$store.storeData.showSoldOutBadge = this.$store.storeData.selectedVariant.available !== true 4591 if (this.$store.storeData.selectedVariant.compare_at_price) { 4592 if (this.$store.storeData.selectedVariant.compare_at_price > this.$store.storeData.selectedVariant.price) { 4593 this.$store.storeData.showSaleBadge = true 4594 } else { 4595 this.$store.storeData.showSaleBadge = false 4596 } 4597 } else { 4598 this.$store.storeData.showSaleBadge = false 4599 } 4600 } 4601 })) 4602 }) 4603</script>
4603 4604</div></div> 4605 4606 4607 4608 4609 4610 <div > 4611 4612 4613 4614 4615 4616 4617 4618 4619<div id="textblock_short_description_container" class="flex w-full mb-6 mt-0 pb-0 pt-0 text-left justify-start items-center"> 4620 <div class="flex items-center"> 4621 4622 4623 4624 <div id="heading_short_description" class="max-w-none prose marker-check prose-ul:text-left prose-ol:text-left prose-p: prose-li: prose-p:mb-6 prose-li:mb-6 prose-p:text-fs-black prose-p:text-base prose-p:leading-normal md:prose-p:text-xs sm:prose-p:leading-normal md:prose-p:leading-normal lg:prose-p:leading-normal xl:prose-p:leading-normal 2xl:prose-p:leading-normal prose-p:font-sans prose-p:font-normal prose-p:tracking-normal prose-li:text-base prose-li:leading-normal md:prose-li:text-xs sm:prose-li:leading-normal md:prose-li:leading-normal lg:prose-li:leading-normal xl:prose-li:leading-normal 2xl:prose-li:leading-normal prose-li:text-fs-black prose-li:font-sans prose-li:font-normal prose-li:tracking-normal"> 4625 <p>Most joint supplements are only half the solution. Four Sixes Joint Health covers cartilage, comfort, inflammatory response, and the gut-joint connection in one scoop.<br /> 4626<br /> 4627</p> 4628 </div> 4629 4630 4631 </div> 4632</div> 4633 4634 </div> 4635 4636 4637 4638 4639 4640<div class="mt-auto mb-0 "> 4641 4642 4643<buy-buttons @variant-updated.window="cartButtonChange" x-data="BuyButtons" class="product-form"> 4644 <div x-ref="error_wrapper" class="mb-2 alert alert-error hidden" role="alert"> 4645 4646<svg 4647 4648 class="inline-block z-1 w-3 h-3 sm:w-6 sm:h-6 align-middle fill-fs-black dark:fill-fs-white text-fs-black dark:text-fs-white hover:text-fs-black hover:fill-fs-black icon icon-exclamation-circle-outline 4649" 4650 aria-hidden="true" 4651 focusable="false" 4652 role="presentation" 4653 4654> 4655 <use xlink:href="#icon-exclamation-circle-outline"/> 4656</svg> 4657 <span @product_form_message="handleErrorMessage" x-ref="error_message" x-text="errorMessage" class=""></span> 4658 </div> 4659 <div class="product-form__buttons"> 4660 <button 4661 x-ref="submit_button" 4662 @click.debounce.prevent="addToCart" 4663 id="ProductSubmitButton-template--25592570609955__product-grid" 4664 type="submit" 4665 name="add" 4666 :disabled="$store.storeData.cartButtonDisabled" 4667 :aria-disabled="$store.storeData.cartButtonDisabled" 4668 :class="$store.storeData.cartButtonDisabled ? 'btn-disabled' : ''" 4669 class="product-form__submit btn btn-sixes btn-block text-xl font-subheading"> 4670 <span x-text="$store.storeData.cartButtonText">Add to Cart</span> 4671 <div x-show="$store.storeData.showCartButtonSpinner" x-ref="loading_spinner" class="flex justify-center"> 4672 4673<span class="loading loading-bars loading-md ml-2 loading-overlay__spinner"></span> 4674 </div> 4675 </button> 4676 <p x-show="$store.storeData.backOrder" x-text="backOrderMessage" class="mt-2 text-sm text-fs-red text-center"></p></div> 4677 </buy-buttons>
4677<script> 4678 document.addEventListener('alpine:init', () => { 4679 Alpine.data('BuyButtons', () => ({ 4680 errorMessage: false, 4681 backOrderMessage: window.variantStrings.backOrderMessage, 4682 4683 init() { 4684 this.$store.storeData.showCartButtonSpinner = false 4685 4686 // Default button text 4687 this.$store.storeData.cartButtonText = "Add to Cart" 4688 4689 }, 4690 4691 cartButtonChange() { 4692 if (this.$store.storeData.selectedVariant.available === true && this.$store.storeData.selectedVariant.inventory_management === 'shopify') { 4693 this.$store.storeData.cartButtonText = window.variantStrings.backOrder 4694 this.$store.storeData.cartButtonDisabled = false 4695 this.$store.storeData.backOrder = true 4696 } 4697 else if (this.$store.storeData.selectedVariant.available === false) { 4698 this.$store.storeData.cartButtonText = window.variantStrings.soldOut 4699 this.$store.storeData.cartButtonDisabled = true 4700 this.$store.storeData.backOrder = false 4701 } else { 4702 this.$store.storeData.cartButtonText = window.variantStrings.addToCart 4703 this.$store.storeData.cartButtonDisabled = false 4704 this.$store.storeData.backOrder = false 4705 } 4706 } 4707 })) 4708 }) 4709</script>
4709</div> 4710 4711 4712 4713 4714 </div> 4715 </a> 4716 </li> 4717 <!-- End horizontal card --> 4718 4719 4720 4721<!-- Horizontal card --> 4722 <li class="basis-full md:basis-1/3 shrink-0"> 4723 4724 <a href="/products/pre-probiotic-powder" id="CardLink-template--25592570609955__product-grid-8169581642019" class="card h-full rounded-none border border-fs-black/10 hover:shadow-md relative no-underline group bg-fs-tan" aria-labelledby="CardLink-template--25592570609955__product-grid-8169581642019 Badge-template--25592570609955__product-grid-8169581642019"> 4725 4726<figure class="group py-4 m-0"> 4727 <div class="flex items-center justify-center px-4"> 4728 4729 <img src="//6666equinesupplements.com/cdn/shop/files/Transparent_Background_6666_ES_2025_Complete_Gut_Protection_Powder_30_Serving_Front_with_Scoop_copy.webp?crop=center&height=300&pad_color=F0EEE8&v=1764788995&width=300" alt="Equine Complete Gut Protection" srcset="//6666equinesupplements.com/cdn/shop/files/Transparent_Backgroun
4729d_6666_ES_2025_Complete_Gut_Protection_Powder_30_Serving_Front_with_Scoop_copy.webp?crop=center&height=300&pad_color=F0EEE8&v=1764788995&width=300 300w" width="300" height="300" loading="lazy" class="transition-all duration-500 ease-in-out transform hover:scale-110"> 4730</div> 4731 </figure> 4732 4733 4734 4735 4736 4737 4738 4739 <div class="card-body gap-0 grow text-left px-4"> 4740 4741 4742 4743 4744 4745 4746 4747 4748 4749 <div > 4750 4751 4752 4753 4754 4755 4756 4757 4758<div id="textblock_subtitle_container" class="flex w-full mb-0 mt-0 pb-0 pt-0 text-left justify-start items-center"> 4759 <div class="flex items-center"> 4760 4761 4762 4763 <h3 id="heading_subtitle" class="w-full text-fs-dkgray text-base leading-normal md:text-xs sm:leading-normal md:leading-normal lg:leading-normal xl:leading-normal 2xl:leading-normal font-subheading font-bold tracking-widest uppercase"> 4764 Gastric & Hindgut Health All-in-One 4765 </h3> 4766 4767 4768 </div> 4769</div> 4770 4771 </div> 4772 4773 4774 4775<div > 4776 4777 4778 4779 4780 4781 4782 4783<div id="textblock_title_container" class="flex w-full mb-4 mt-0 pb-0 pt-0 text-left justify-start items-center"> 4784 <div class="flex items-center"> 4785 4786 4787 4788 <h2 id="heading_title" class="w-full text-fs-red text-3xl leading-tight md:text-3xl sm:leading-tight md:leading-tight lg:leading-tight xl:leading-tight 2xl:leading-tight font-serif font-bold tracking-normal"> 4789 Equine Complete Gut Protection 4790 </h2> 4791 4792 4793 </div> 4794</div> 4795 4796 </div> 4797 4798 4799 4800 4801 4802 4803 4804 4805 4806 <div > 4807<div id="price" x-data="{ 4808 regularPrice: 6166, 4809 compareAtPrice: false, 4810 varies: true, 4811 template: 'collection', 4812 flash: false, 4813 4814 priceChange() { 4815 const variant = this.$store.storeData.selectedVariant 4816 const mode = this.$store.storeData.mode 4817 const subPrice = this.$store.storeData.selectedSubscriptionPrice 4818 4819 const newPrice = (mode === 'subscription' && subPrice) ? subPrice : variant.price 4820 this.compareAtPrice = variant.compare_at_price ? variant.compare_at_price : false 4821 this.flashPrice(newPrice) 4822 }, 4823 4824 subscriptionPriceChange() { 4825 const variant = this.$store.storeData.selectedVariant 4826 const mode = this.$store.storeData.mode 4827 const subPrice = this.$store.storeData.selectedSubscriptionPrice 4828 4829 const newPrice = (mode === 'subscription' && subPrice) ? subPrice : variant.price 4830 this.flashPrice(newPrice) 4831 }, 4832 4833 flashPrice(newPrice) { 4834 if (newPrice != this.regularPrice) { 4835 this.flash = false 4836 void this.$el.offsetWidth 4837 this.regularPrice = newPrice 4838 this.flash = true 4839 setTimeout(() => { this.flash = false }, 400) 4840 } 4841 }, 4842 4843 showFrom() { 4844 if (this.varies && this.template != 'product') { 4845 return true 4846 } else { 4847 return false 4848 } 4849 }, 4850 }" x-transition:opacity @variant-updated.window="priceChange" @subscription-plan:change.window="subscriptionPriceChange" class="price flex items-center text-fs-black mb-4 text-base md: font-body font-bold tracking-normal leading-normal md:leading-normal sm:text-base lg:text-base xl:text-base 2xl:text-base justify-start"> 4851 <div id="price_container"> 4852 <span class="sr-only sr-only--inline">Regular Price</span> 4853 <span x-money.shopify="compareAtPrice" :class="compareAtPrice === false ? 'hidden' : ''" class="line-through text-base text-fs-black mr-1"> 4854 4855 </span><span class="sr-only">Regular price</span> 4856 <span x-show="showFrom()">From </span> 4857 <span x-money.shopify="regularPrice" :class="flash ? 'text-fs-red transition-colors duration-300' : 'transition-colors duration-300'" class="mr-2">$61.66</span> 4858 4859 4860 <small class=" hidden">
4861 <span class="sr-only">Unit price</span> 4862 <span class="price-item"> 4863 <span></span> 4864 <span class="hidden" aria-hidden="true">/</span> 4865 <span class="sr-only"> per </span> 4866 <span> 4867 </span> 4868 </span> 4869 </small> 4870 </div> 4871 4872 4873<div id="price-badges"> 4874 <div x-data="priceBadges" @variant-updated.window="priceBadgesChange" id="badges" class="flex"><div x-show="$store.storeData.showSaleBadge" id="on-sale" class="flex flex-nowrap flex-row items-center justify-center"> 4875 <span class="badge badge-lg font-normal leading-extra-tight font-body uppercase ml-0.5 price__badge-sale text-fs-red"> 4876 4877 4878<svg 4879 id="sale-badge" 4880 4881 4882 class="mr-2 z-1 w-5 h-5 sm:w-5 sm:h-5 align-middle fill-fs-red dark:fill-fs-white text-fs-red dark:text-fs-white hover:text-current hover:fill-current icon icon-tag 4883" 4884 aria-hidden="true" 4885 focusable="false" 4886 role="presentation" 4887 4888> 4889 <use xlink:href="#icon-tag"/> 4890</svg> 4891 4892 Sale 4893 </span> 4894 </div> 4895 <div x-show="$store.storeData.showSoldOutBadge" id="sold-out" class="flex flex-nowrap flex-row items-center justify-center"> 4896 <span class="badge badge-lg font-normal leading-extra-tight font-body uppercase ml-0.5 price__badge-sold-out text-fs-red"> 4897 4898 4899<svg 4900 id="soldout-badge" 4901 4902 4903 class="mr-2 z-1 w-5 h-5 sm:w-5 sm:h-5 align-middle fill-fs-red dark:fill-fs-white text-fs-red dark:text-fs-white hover:text-current hover:fill-current icon icon-fire-solid 4904" 4905 aria-hidden="true" 4906 focusable="false" 4907 role="presentation" 4908 4909> 4910 <use xlink:href="#icon-fire-solid"/> 4911</svg> 4912 4913 Hot Product 4914 </span> 4915 </div> 4916 </div> 4917</div>
4918<script> 4919 document.addEventListener('alpine:init', () => { 4920 Alpine.data('priceBadges', () => ({ 4921 priceBadgesChange() { 4922 if (this.$store.storeData.selectedVariant.inventory_management === 'shopify' && this.$store.storeData.stockQuantity() <= 0) { 4923 console.log('shopify lt 0') 4924 this.$store.storeData.showSoldOutBadge = true 4925 } 4926 else if (this.$store.storeData.selectedVariant.inventory_management === '' && this.$store.storeData.selectedVariant.available === false) { 4927 console.log('not available') 4928 this.$store.storeData.showSoldOutBadge = true 4929 } else { 4930 this.$store.storeData.showSoldOutBadge = false 4931 } 4932 // this.$store.storeData.showSoldOutBadge = this.$store.storeData.selectedVariant.available !== true 4933 if (this.$store.storeData.selectedVariant.compare_at_price) { 4934 if (this.$store.storeData.selectedVariant.compare_at_price > this.$store.storeData.selectedVariant.price) { 4935 this.$store.storeData.showSaleBadge = true 4936 } else { 4937 this.$store.storeData.showSaleBadge = false 4938 } 4939 } else { 4940 this.$store.storeData.showSaleBadge = false 4941 } 4942 } 4943 })) 4944 }) 4945</script>
4945 4946</div></div> 4947 4948 4949 4950 4951 4952 <div > 4953 4954 4955 4956 4957 4958 4959 4960 4961<div id="textblock_short_description_container" class="flex w-full mb-6 mt-0 pb-0 pt-0 text-left justify-start items-center"> 4962 <div class="flex items-center"> 4963 4964 4965 4966 <div id="heading_short_description" class="max-w-none prose marker-check prose-ul:text-left prose-ol:text-left prose-p: prose-li: prose-p:mb-6 prose-li:mb-6 prose-p:text-fs-black prose-p:text-base prose-p:leading-normal md:prose-p:text-xs sm:prose-p:leading-normal md:prose-p:leading-normal lg:prose-p:leading-normal xl:prose-p:leading-normal 2xl:prose-p:leading-normal prose-p:font-sans prose-p:font-normal prose-p:tracking-normal prose-li:text-base prose-li:leading-normal md:prose-li:text-xs sm:prose-li:leading-normal md:prose-li:leading-normal lg:prose-li:leading-normal xl:prose-li:leading-normal 2xl:prose-li:leading-normal prose-li:text-fs-black prose-li:font-sans prose-li:font-normal prose-li:tracking-normal"> 4967 <p>Most gut supplements support the stomach or the hindgut. Complete Gut Protection supports both in one daily scoop.<br /> 4968<br /> 4969</p> 4970 </div> 4971 4972 4973 </div> 4974</div> 4975 4976 </div> 4977 4978 4979 4980 4981 4982<div class="mt-auto mb-0 "> 4983 4984 4985<buy-buttons @variant-updated.window="cartButtonChange" x-data="BuyButtons" class="product-form"> 4986 <div x-ref="error_wrapper" class="mb-2 alert alert-error hidden" role="alert"> 4987 4988<svg 4989 4990 class="inline-block z-1 w-3 h-3 sm:w-6 sm:h-6 align-middle fill-fs-black dark:fill-fs-white text-fs-black dark:text-fs-white hover:text-fs-black hover:fill-fs-black icon icon-exclamation-circle-outline 4991" 4992 aria-hidden="true" 4993 focusable="false" 4994 role="presentation" 4995 4996> 4997 <use xlink:href="#icon-exclamation-circle-outline"/> 4998</svg> 4999 <span @product_form_message="handleErrorMessage" x-ref="error_message" x-text="errorMessage" class=""></span> 5000 </div> 5001 <div class="product-form__buttons"> 5002 <button 5003 x-ref="submit_button" 5004 @click.debounce.prevent="addToCart" 5005 id="ProductSubmitButton-template--25592570609955__product-grid" 5006 type="submit" 5007 name="add" 5008 :disabled="$store.storeData.cartButtonDisabled" 5009 :aria-disabled="$store.storeData.cartButtonDisabled" 5010 :class="$store.storeData.cartButtonDisabled ? 'btn-disabled' : ''" 5011 class="product-form__submit btn btn-sixes btn-block text-xl font-subheading"> 5012 <span x-text="$store.storeData.cartButtonText">Add to Cart</span> 5013 <div x-show="$store.storeData.showCartButtonSpinner" x-ref="loading_spinner" class="flex justify-center"> 5014 5015<span class="loading loading-bars loading-md ml-2 loading-overlay__spinner"></span> 5016 </div> 5017 </button> 5018 <p x-show="$store.storeData.backOrder" x-text="backOrderMessage" class="mt-2 text-sm text-fs-red text-center"></p></div> 5019 </buy-buttons>
5019<script> 5020 document.addEventListener('alpine:init', () => { 5021 Alpine.data('BuyButtons', () => ({ 5022 errorMessage: false, 5023 backOrderMessage: window.variantStrings.backOrderMessage, 5024 5025 init() { 5026 this.$store.storeData.showCartButtonSpinner = false 5027 5028 // Default button text 5029 this.$store.storeData.cartButtonText = "Add to Cart" 5030 5031 }, 5032 5033 cartButtonChange() { 5034 if (this.$store.storeData.selectedVariant.available === true && this.$store.storeData.selectedVariant.inventory_management === 'shopify') { 5035 this.$store.storeData.cartButtonText = window.variantStrings.backOrder 5036 this.$store.storeData.cartButtonDisabled = false 5037 this.$store.storeData.backOrder = true 5038 } 5039 else if (this.$store.storeData.selectedVariant.available === false) { 5040 this.$store.storeData.cartButtonText = window.variantStrings.soldOut 5041 this.$store.storeData.cartButtonDisabled = true 5042 this.$store.storeData.backOrder = false 5043 } else { 5044 this.$store.storeData.cartButtonText = window.variantStrings.addToCart 5045 this.$store.storeData.cartButtonDisabled = false 5046 this.$store.storeData.backOrder = false 5047 } 5048 } 5049 })) 5050 }) 5051</script>
5051</div> 5052 5053 5054 5055 5056 </div> 5057 </a> 5058 </li> 5059 <!-- End horizontal card --> 5060 5061 5062 5063<!-- Horizontal card --> 5064 <li class="basis-full md:basis-1/3 shrink-0"> 5065 5066 <a href="/products/electrolyte-paste" id="CardLink-template--25592570609955__product-grid-8126314217763" class="card h-full rounded-none border border-fs-black/10 hover:shadow-md relative no-underline group bg-fs-tan" aria-labelledby="CardLink-template--25592570609955__product-grid-8126314217763 Badge-template--25592570609955__product-grid-8126314217763"> 5067 5068<figure class="group py-4 m-0"> 5069 <div class="flex items-center justify-center px-4"> 5070 5071 <img src="//6666equinesupplements.com/cdn/shop/files/6ES_Electrolyte_Paste_Transparent_Background_1.png?crop=center&height=300&pad_color=F0EEE8&v=1789156975&width=300" alt="Equine Electrolyte Paste" srcset="//6666equinesupplements.com/cdn/shop/files/6ES_Electrolyte_Paste_Transparent_Backgroun
5071d_1.png?crop=center&height=300&pad_color=F0EEE8&v=1789156975&width=300 300w" width="300" height="300" loading="lazy" class="transition-all duration-500 ease-in-out transform hover:scale-110"> 5072</div> 5073 </figure> 5074 5075 5076 5077 5078 5079 5080 5081 <div class="card-body gap-0 grow text-left px-4"> 5082 5083 5084 5085 5086 5087 5088 5089 5090 5091 <div > 5092 5093 5094 5095 5096 5097 5098 5099 5100<div id="textblock_subtitle_container" class="flex w-full mb-0 mt-0 pb-0 pt-0 text-left justify-start items-center"> 5101 <div class="flex items-center"> 5102 5103 5104 5105 <h3 id="heading_subtitle" class="w-full text-fs-dkgray text-base leading-normal md:text-xs sm:leading-normal md:leading-normal lg:leading-normal xl:leading-normal 2xl:leading-normal font-subheading font-bold tracking-widest uppercase"> 5106 On-the-Go Equine Hydration Formula 5107 </h3> 5108 5109 5110 </div> 5111</div> 5112 5113 </div> 5114 5115 5116 5117<div > 5118 5119 5120 5121 5122 5123 5124 5125<div id="textblock_title_container" class="flex w-full mb-4 mt-0 pb-0 pt-0 text-left justify-start items-center"> 5126 <div class="flex items-center"> 5127 5128 5129 5130 <h2 id="heading_title" class="w-full text-fs-red text-3xl leading-tight md:text-3xl sm:leading-tight md:leading-tight lg:leading-tight xl:leading-tight 2xl:leading-tight font-serif font-bold tracking-normal"> 5131 Equine Electrolyte Paste 5132 </h2> 5133 5134 5135 </div> 5136</div> 5137 5138 </div> 5139 5140 5141 5142 5143 5144 5145 5146 5147 5148 <div > 5149<div id="price" x-data="{ 5150 regularPrice: 2892, 5151 compareAtPrice: false, 5152 varies: true, 5153 template: 'collection', 5154 flash: false, 5155 5156 priceChange() { 5157 const variant = this.$store.storeData.selectedVariant 5158 const mode = this.$store.storeData.mode 5159 const subPrice = this.$store.storeData.selectedSubscriptionPrice 5160 5161 const newPrice = (mode === 'subscription' && subPrice) ? subPrice : variant.price 5162 this.compareAtPrice = variant.compare_at_price ? variant.compare_at_price : false 5163 this.flashPrice(newPrice) 5164 }, 5165 5166 subscriptionPriceChange() { 5167 const variant = this.$store.storeData.selectedVariant 5168 const mode = this.$store.storeData.mode 5169 const subPrice = this.$store.storeData.selectedSubscriptionPrice 5170 5171 const newPrice = (mode === 'subscription' && subPrice) ? subPrice : variant.price 5172 this.flashPrice(newPrice) 5173 }, 5174 5175 flashPrice(newPrice) { 5176 if (newPrice != this.regularPrice) { 5177 this.flash = false 5178 void this.$el.offsetWidth 5179 this.regularPrice = newPrice 5180 this.flash = true 5181 setTimeout(() => { this.flash = false }, 400) 5182 } 5183 }, 5184 5185 showFrom() { 5186 if (this.varies && this.template != 'product') { 5187 return true 5188 } else { 5189 return false 5190 } 5191 }, 5192 }" x-transition:opacity @variant-updated.window="priceChange" @subscription-plan:change.window="subscriptionPriceChange" class="price flex items-center text-fs-black mb-4 text-base md: font-body font-bold tracking-normal leading-normal md:leading-normal sm:text-base lg:text-base xl:text-base 2xl:text-base justify-start"> 5193 <div id="price_container"> 5194 <span class="sr-only sr-only--inline">Regular Price</span> 5195 <span x-money.shopify="compareAtPrice" :class="compareAtPrice === false ? 'hidden' : ''" class="line-through text-base text-fs-black mr-1"> 5196 5197 </span><span class="sr-only">Regular price</span> 5198 <span x-show="showFrom()">From </span> 5199 <span x-money.shopify="regularPrice" :class="flash ? 'text-fs-red transition-colors duration-300' : 'transition-colors duration-300'" class="mr-2">
5199$28.92</span> 5200 5201 5202 <small class=" hidden"> 5203 <span class="sr-only">Unit price</span> 5204 <span class="price-item"> 5205 <span></span> 5206 <span class="hidden" aria-hidden="true">/</span> 5207 <span class="sr-only"> per </span> 5208 <span> 5209 </span> 5210 </span> 5211 </small> 5212 </div> 5213 5214 5215<div id="price-badges"> 5216 <div x-data="priceBadges" @variant-updated.window="priceBadgesChange" id="badges" class="flex"><div x-show="$store.storeData.showSaleBadge" id="on-sale" class="flex flex-nowrap flex-row items-center justify-center"> 5217 <span class="badge badge-lg font-normal leading-extra-tight font-body uppercase ml-0.5 price__badge-sale text-fs-red"> 5218 5219 5220<svg 5221 id="sale-badge" 5222 5223 5224 class="mr-2 z-1 w-5 h-5 sm:w-5 sm:h-5 align-middle fill-fs-red dark:fill-fs-white text-fs-red dark:text-fs-white hover:text-current hover:fill-current icon icon-tag 5225" 5226 aria-hidden="true" 5227 focusable="false" 5228 role="presentation" 5229 5230> 5231 <use xlink:href="#icon-tag"/> 5232</svg> 5233 5234 Sale 5235 </span> 5236 </div> 5237 <div x-show="$store.storeData.showSoldOutBadge" id="sold-out" class="flex flex-nowrap flex-row items-center justify-center"> 5238 <span class="badge badge-lg font-normal leading-extra-tight font-body uppercase ml-0.5 price__badge-sold-out text-fs-red"> 5239 5240 5241<svg 5242 id="soldout-badge" 5243 5244 5245 class="mr-2 z-1 w-5 h-5 sm:w-5 sm:h-5 align-middle fill-fs-red dark:fill-fs-white text-fs-red dark:text-fs-white hover:text-current hover:fill-current icon icon-fire-solid 5246" 5247 aria-hidden="true" 5248 focusable="false" 5249 role="presentation" 5250 5251> 5252 <use xlink:href="#icon-fire-solid"/> 5253</svg> 5254 5255 Hot Product 5256 </span> 5257 </div> 5258 </div> 5259</div>
5260<script> 5261 document.addEventListener('alpine:init', () => { 5262 Alpine.data('priceBadges', () => ({ 5263 priceBadgesChange() { 5264 if (this.$store.storeData.selectedVariant.inventory_management === 'shopify' && this.$store.storeData.stockQuantity() <= 0) { 5265 console.log('shopify lt 0') 5266 this.$store.storeData.showSoldOutBadge = true 5267 } 5268 else if (this.$store.storeData.selectedVariant.inventory_management === '' && this.$store.storeData.selectedVariant.available === false) { 5269 console.log('not available') 5270 this.$store.storeData.showSoldOutBadge = true 5271 } else { 5272 this.$store.storeData.showSoldOutBadge = false 5273 } 5274 // this.$store.storeData.showSoldOutBadge = this.$store.storeData.selectedVariant.available !== true 5275 if (this.$store.storeData.selectedVariant.compare_at_price) { 5276 if (this.$store.storeData.selectedVariant.compare_at_price > this.$store.storeData.selectedVariant.price) { 5277 this.$store.storeData.showSaleBadge = true 5278 } else { 5279 this.$store.storeData.showSaleBadge = false 5280 } 5281 } else { 5282 this.$store.storeData.showSaleBadge = false 5283 } 5284 } 5285 })) 5286 }) 5287</script>
5287 5288</div></div> 5289 5290 5291 5292 5293 5294 <div > 5295 5296 5297 5298 5299 5300 5301 5302 5303<div id="textblock_short_description_container" class="flex w-full mb-6 mt-0 pb-0 pt-0 text-left justify-start items-center"> 5304 <div class="flex items-center"> 5305 5306 5307 5308 <div id="heading_short_description" class="max-w-none prose marker-check prose-ul:text-left prose-ol:text-left prose-p: prose-li: prose-p:mb-6 prose-li:mb-6 prose-p:text-fs-black prose-p:text-base prose-p:leading-normal md:prose-p:text-xs sm:prose-p:leading-normal md:prose-p:leading-normal lg:prose-p:leading-normal xl:prose-p:leading-normal 2xl:prose-p:leading-normal prose-p:font-sans prose-p:font-normal prose-p:tracking-normal prose-li:text-base prose-li:leading-normal md:prose-li:text-xs sm:prose-li:leading-normal md:prose-li:leading-normal lg:prose-li:leading-normal xl:prose-li:leading-normal 2xl:prose-li:leading-normal prose-li:text-fs-black prose-li:font-sans prose-li:font-normal prose-li:tracking-normal"> 5309 <p>Many electrolytes are mostly sugar. This one replaces what sweat takes and gets horses drinking, in a tasty cherry-vanilla flavor. <br /> 5310<br /> 5311</p> 5312 </div> 5313 5314 5315 </div> 5316</div> 5317 5318 </div> 5319 5320 5321 5322 5323 5324<div class="mt-auto mb-0 "> 5325 5326 5327<buy-buttons @variant-updated.window="cartButtonChange" x-data="BuyButtons" class="product-form"> 5328 <div x-ref="error_wrapper" class="mb-2 alert alert-error hidden" role="alert"> 5329 5330<svg 5331 5332 class="inline-block z-1 w-3 h-3 sm:w-6 sm:h-6 align-middle fill-fs-black dark:fill-fs-white text-fs-black dark:text-fs-white hover:text-fs-black hover:fill-fs-black icon icon-exclamation-circle-outline 5333" 5334 aria-hidden="true" 5335 focusable="false" 5336 role="presentation" 5337 5338> 5339 <use xlink:href="#icon-exclamation-circle-outline"/> 5340</svg> 5341 <span @product_form_message="handleErrorMessage" x-ref="error_message" x-text="errorMessage" class=""></span> 5342 </div> 5343 <div class="product-form__buttons"> 5344 <button 5345 x-ref="submit_button" 5346 @click.debounce.prevent="addToCart" 5347 id="ProductSubmitButton-template--25592570609955__product-grid" 5348 type="submit" 5349 name="add" 5350 :disabled="$store.storeData.cartButtonDisabled" 5351 :aria-disabled="$store.storeData.cartButtonDisabled" 5352 :class="$store.storeData.cartButtonDisabled ? 'btn-disabled' : ''" 5353 class="product-form__submit btn btn-sixes btn-block text-xl font-subheading"> 5354 <span x-text="$store.storeData.cartButtonText">Add to Cart</span> 5355 <div x-show="$store.storeData.showCartButtonSpinner" x-ref="loading_spinner" class="flex justify-center"> 5356 5357<span class="loading loading-bars loading-md ml-2 loading-overlay__spinner"></span> 5358 </div> 5359 </button> 5360 <p x-show="$store.storeData.backOrder" x-text="backOrderMessage" class="mt-2 text-sm text-fs-red text-center"></p></div> 5361 </buy-buttons>
5361<script> 5362 document.addEventListener('alpine:init', () => { 5363 Alpine.data('BuyButtons', () => ({ 5364 errorMessage: false, 5365 backOrderMessage: window.variantStrings.backOrderMessage, 5366 5367 init() { 5368 this.$store.storeData.showCartButtonSpinner = false 5369 5370 // Default button text 5371 this.$store.storeData.cartButtonText = "Add to Cart" 5372 5373 }, 5374 5375 cartButtonChange() { 5376 if (this.$store.storeData.selectedVariant.available === true && this.$store.storeData.selectedVariant.inventory_management === 'shopify') { 5377 this.$store.storeData.cartButtonText = window.variantStrings.backOrder 5378 this.$store.storeData.cartButtonDisabled = false 5379 this.$store.storeData.backOrder = true 5380 } 5381 else if (this.$store.storeData.selectedVariant.available === false) { 5382 this.$store.storeData.cartButtonText = window.variantStrings.soldOut 5383 this.$store.storeData.cartButtonDisabled = true 5384 this.$store.storeData.backOrder = false 5385 } else { 5386 this.$store.storeData.cartButtonText = window.variantStrings.addToCart 5387 this.$store.storeData.cartButtonDisabled = false 5388 this.$store.storeData.backOrder = false 5389 } 5390 } 5391 })) 5392 }) 5393</script>
5393</div> 5394 5395 5396 5397 5398 </div> 5399 </a> 5400 </li> 5401 <!-- End horizontal card --> 5402 5403 5404 5405<!-- Horizontal card --> 5406 <li class="basis-full md:basis-1/3 shrink-0"> 5407 5408 <a href="/products/electrolyte-powder" id="CardLink-template--25592570609955__product-grid-8126314479907" class="card h-full rounded-none border border-fs-black/10 hover:shadow-md relative no-underline group bg-fs-tan" aria-labelledby="CardLink-template--25592570609955__product-grid-8126314479907 Badge-template--25592570609955__product-grid-8126314479907"> 5409 5410<figure class="group py-4 m-0"> 5411 <div class="flex items-center justify-center px-4"> 5412 5413 <img src="//6666equinesupplements.com/cdn/shop/files/Transparent_Background_6666_ES_2025_Label_Electrolyte_Powder_30_Serving_With_Scoop_copy.webp?crop=center&height=300&pad_color=F0EEE8&v=1773771146&width=300" alt="Equine Electrolyte Recover Powder" srcset="//6666equinesupplements.com/cdn/shop/files/Transparent_Backgroun
5413d_6666_ES_2025_Label_Electrolyte_Powder_30_Serving_With_Scoop_copy.webp?crop=center&height=300&pad_color=F0EEE8&v=1773771146&width=300 300w" width="300" height="300" loading="lazy" class="transition-all duration-500 ease-in-out transform hover:scale-110"> 5414</div> 5415 </figure> 5416 5417 5418 5419 5420 5421 5422 5423 <div class="card-body gap-0 grow text-left px-4"> 5424 5425 5426 5427 5428 5429 5430 5431 5432 5433 <div > 5434 5435 5436 5437 5438 5439 5440 5441 5442<div id="textblock_subtitle_container" class="flex w-full mb-0 mt-0 pb-0 pt-0 text-left justify-start items-center"> 5443 <div class="flex items-center"> 5444 5445 5446 5447 <h3 id="heading_subtitle" class="w-full text-fs-dkgray text-base leading-normal md:text-xs sm:leading-normal md:leading-normal lg:leading-normal xl:leading-normal 2xl:leading-normal font-subheading font-bold tracking-widest uppercase"> 5448 Daily Equine Hydration Formula 5449 </h3> 5450 5451 5452 </div> 5453</div> 5454 5455 </div> 5456 5457 5458 5459<div > 5460 5461 5462 5463 5464 5465 5466 5467<div id="textblock_title_container" class="flex w-full mb-4 mt-0 pb-0 pt-0 text-left justify-start items-center"> 5468 <div class="flex items-center"> 5469 5470 5471 5472 <h2 id="heading_title" class="w-full text-fs-red text-3xl leading-tight md:text-3xl sm:leading-tight md:leading-tight lg:leading-tight xl:leading-tight 2xl:leading-tight font-serif font-bold tracking-normal"> 5473 Equine Electrolyte Recover Powder 5474 </h2> 5475 5476 5477 </div> 5478</div> 5479 5480 </div> 5481 5482 5483 5484 5485 5486 5487 5488 5489 5490 <div > 5491<div id="price" x-data="{ 5492 regularPrice: 3666, 5493 compareAtPrice: false, 5494 varies: true, 5495 template: 'collection', 5496 flash: false, 5497 5498 priceChange() { 5499 const variant = this.$store.storeData.selectedVariant 5500 const mode = this.$store.storeData.mode 5501 const subPrice = this.$store.storeData.selectedSubscriptionPrice 5502 5503 const newPrice = (mode === 'subscription' && subPrice) ? subPrice : variant.price 5504 this.compareAtPrice = variant.compare_at_price ? variant.compare_at_price : false 5505 this.flashPrice(newPrice) 5506 }, 5507 5508 subscriptionPriceChange() { 5509 const variant = this.$store.storeData.selectedVariant 5510 const mode = this.$store.storeData.mode 5511 const subPrice = this.$store.storeData.selectedSubscriptionPrice 5512 5513 const newPrice = (mode === 'subscription' && subPrice) ? subPrice : variant.price 5514 this.flashPrice(newPrice) 5515 }, 5516 5517 flashPrice(newPrice) { 5518 if (newPrice != this.regularPrice) { 5519 this.flash = false 5520 void this.$el.offsetWidth 5521 this.regularPrice = newPrice 5522 this.flash = true 5523 setTimeout(() => { this.flash = false }, 400) 5524 } 5525 }, 5526 5527 showFrom() { 5528 if (this.varies && this.template != 'product') { 5529 return true 5530 } else { 5531 return false 5532 } 5533 }, 5534 }" x-transition:opacity @variant-updated.window="priceChange" @subscription-plan:change.window="subscriptionPriceChange" class="price flex items-center text-fs-black mb-4 text-base md: font-body font-bold tracking-normal leading-normal md:leading-normal sm:text-base lg:text-base xl:text-base 2xl:text-base justify-start"> 5535 <div id="price_container"> 5536 <span class="sr-only sr-only--inline">Regular Price</span> 5537 <span x-money.shopify="compareAtPrice" :class="compareAtPrice === false ? 'hidden' : ''" class="line-through text-base text-fs-black mr-1"> 5538 5539 </span><span class="sr-only">Regular price</span> 5540 <span x-show="showFrom()">From </span> 5541 <span x-money.shopify="regularPrice" :class="flash ? 'text-fs-red transition-colors duration-300' : 'transition-colors duration-300'" class="mr-2">$36.66</span> 5542 5543 5544 <small class=" hidden">
5545 <span class="sr-only">Unit price</span> 5546 <span class="price-item"> 5547 <span></span> 5548 <span class="hidden" aria-hidden="true">/</span> 5549 <span class="sr-only"> per </span> 5550 <span> 5551 </span> 5552 </span> 5553 </small> 5554 </div> 5555 5556 5557<div id="price-badges"> 5558 <div x-data="priceBadges" @variant-updated.window="priceBadgesChange" id="badges" class="flex"><div x-show="$store.storeData.showSaleBadge" id="on-sale" class="flex flex-nowrap flex-row items-center justify-center"> 5559 <span class="badge badge-lg font-normal leading-extra-tight font-body uppercase ml-0.5 price__badge-sale text-fs-red"> 5560 5561 5562<svg 5563 id="sale-badge" 5564 5565 5566 class="mr-2 z-1 w-5 h-5 sm:w-5 sm:h-5 align-middle fill-fs-red dark:fill-fs-white text-fs-red dark:text-fs-white hover:text-current hover:fill-current icon icon-tag 5567" 5568 aria-hidden="true" 5569 focusable="false" 5570 role="presentation" 5571 5572> 5573 <use xlink:href="#icon-tag"/> 5574</svg> 5575 5576 Sale 5577 </span> 5578 </div> 5579 <div x-show="$store.storeData.showSoldOutBadge" id="sold-out" class="flex flex-nowrap flex-row items-center justify-center"> 5580 <span class="badge badge-lg font-normal leading-extra-tight font-body uppercase ml-0.5 price__badge-sold-out text-fs-red"> 5581 5582 5583<svg 5584 id="soldout-badge" 5585 5586 5587 class="mr-2 z-1 w-5 h-5 sm:w-5 sm:h-5 align-middle fill-fs-red dark:fill-fs-white text-fs-red dark:text-fs-white hover:text-current hover:fill-current icon icon-fire-solid 5588" 5589 aria-hidden="true" 5590 focusable="false" 5591 role="presentation" 5592 5593> 5594 <use xlink:href="#icon-fire-solid"/> 5595</svg> 5596 5597 Hot Product 5598 </span> 5599 </div> 5600 </div> 5601</div>
5602<script> 5603 document.addEventListener('alpine:init', () => { 5604 Alpine.data('priceBadges', () => ({ 5605 priceBadgesChange() { 5606 if (this.$store.storeData.selectedVariant.inventory_management === 'shopify' && this.$store.storeData.stockQuantity() <= 0) { 5607 console.log('shopify lt 0') 5608 this.$store.storeData.showSoldOutBadge = true 5609 } 5610 else if (this.$store.storeData.selectedVariant.inventory_management === '' && this.$store.storeData.selectedVariant.available === false) { 5611 console.log('not available') 5612 this.$store.storeData.showSoldOutBadge = true 5613 } else { 5614 this.$store.storeData.showSoldOutBadge = false 5615 } 5616 // this.$store.storeData.showSoldOutBadge = this.$store.storeData.selectedVariant.available !== true 5617 if (this.$store.storeData.selectedVariant.compare_at_price) { 5618 if (this.$store.storeData.selectedVariant.compare_at_price > this.$store.storeData.selectedVariant.price) { 5619 this.$store.storeData.showSaleBadge = true 5620 } else { 5621 this.$store.storeData.showSaleBadge = false 5622 } 5623 } else { 5624 this.$store.storeData.showSaleBadge = false 5625 } 5626 } 5627 })) 5628 }) 5629</script>
5629 5630</div></div> 5631 5632 5633 5634 5635 5636 <div > 5637 5638 5639 5640 5641 5642 5643 5644 5645<div id="textblock_short_description_container" class="flex w-full mb-6 mt-0 pb-0 pt-0 text-left justify-start items-center"> 5646 <div class="flex items-center"> 5647 5648 5649 5650 <div id="heading_short_description" class="max-w-none prose marker-check prose-ul:text-left prose-ol:text-left prose-p: prose-li: prose-p:mb-6 prose-li:mb-6 prose-p:text-fs-black prose-p:text-base prose-p:leading-normal md:prose-p:text-xs sm:prose-p:leading-normal md:prose-p:leading-normal lg:prose-p:leading-normal xl:prose-p:leading-normal 2xl:prose-p:leading-normal prose-p:font-sans prose-p:font-normal prose-p:tracking-normal prose-li:text-base prose-li:leading-normal md:prose-li:text-xs sm:prose-li:leading-normal md:prose-li:leading-normal lg:prose-li:leading-normal xl:prose-li:leading-normal 2xl:prose-li:leading-normal prose-li:text-fs-black prose-li:font-sans prose-li:font-normal prose-li:tracking-normal"> 5651 <p>Salt first, no sugar. One daily scoop replaces what sweat takes, with B vitamins and organic trace minerals to keep hard-working horses drinking.</p> 5652 </div> 5653 5654 5655 </div> 5656</div> 5657 5658 </div> 5659 5660 5661 5662 5663 5664<div class="mt-auto mb-0 "> 5665 5666 5667<buy-buttons @variant-updated.window="cartButtonChange" x-data="BuyButtons" class="product-form"> 5668 <div x-ref="error_wrapper" class="mb-2 alert alert-error hidden" role="alert"> 5669 5670<svg 5671 5672 class="inline-block z-1 w-3 h-3 sm:w-6 sm:h-6 align-middle fill-fs-black dark:fill-fs-white text-fs-black dark:text-fs-white hover:text-fs-black hover:fill-fs-black icon icon-exclamation-circle-outline 5673" 5674 aria-hidden="true" 5675 focusable="false" 5676 role="presentation" 5677 5678> 5679 <use xlink:href="#icon-exclamation-circle-outline"/> 5680</svg> 5681 <span @product_form_message="handleErrorMessage" x-ref="error_message" x-text="errorMessage" class=""></span> 5682 </div> 5683 <div class="product-form__buttons"> 5684 <button 5685 x-ref="submit_button" 5686 @click.debounce.prevent="addToCart" 5687 id="ProductSubmitButton-template--25592570609955__product-grid" 5688 type="submit" 5689 name="add" 5690 :disabled="$store.storeData.cartButtonDisabled" 5691 :aria-disabled="$store.storeData.cartButtonDisabled" 5692 :class="$store.storeData.cartButtonDisabled ? 'btn-disabled' : ''" 5693 class="product-form__submit btn btn-sixes btn-block text-xl font-subheading"> 5694 <span x-text="$store.storeData.cartButtonText">Add to Cart</span> 5695 <div x-show="$store.storeData.showCartButtonSpinner" x-ref="loading_spinner" class="flex justify-center"> 5696 5697<span class="loading loading-bars loading-md ml-2 loading-overlay__spinner"></span> 5698 </div> 5699 </button> 5700 <p x-show="$store.storeData.backOrder" x-text="backOrderMessage" class="mt-2 text-sm text-fs-red text-center"></p></div> 5701 </buy-buttons>
5701<script> 5702 document.addEventListener('alpine:init', () => { 5703 Alpine.data('BuyButtons', () => ({ 5704 errorMessage: false, 5705 backOrderMessage: window.variantStrings.backOrderMessage, 5706 5707 init() { 5708 this.$store.storeData.showCartButtonSpinner = false 5709 5710 // Default button text 5711 this.$store.storeData.cartButtonText = "Add to Cart" 5712 5713 }, 5714 5715 cartButtonChange() { 5716 if (this.$store.storeData.selectedVariant.available === true && this.$store.storeData.selectedVariant.inventory_management === 'shopify') { 5717 this.$store.storeData.cartButtonText = window.variantStrings.backOrder 5718 this.$store.storeData.cartButtonDisabled = false 5719 this.$store.storeData.backOrder = true 5720 } 5721 else if (this.$store.storeData.selectedVariant.available === false) { 5722 this.$store.storeData.cartButtonText = window.variantStrings.soldOut 5723 this.$store.storeData.cartButtonDisabled = true 5724 this.$store.storeData.backOrder = false 5725 } else { 5726 this.$store.storeData.cartButtonText = window.variantStrings.addToCart 5727 this.$store.storeData.cartButtonDisabled = false 5728 this.$store.storeData.backOrder = false 5729 } 5730 } 5731 })) 5732 }) 5733</script>
5733</div> 5734 5735 5736 5737 5738 </div> 5739 </a> 5740 </li> 5741 <!-- End horizontal card --> 5742 5743 5744 5745<!-- Horizontal card --> 5746 <li class="basis-full md:basis-1/3 shrink-0"> 5747 5748 <a href="/products/multi-vitamin-mineral-pellet" id="CardLink-template--25592570609955__product-grid-8126314807587" class="card h-full rounded-none border border-fs-black/10 hover:shadow-md relative no-underline group bg-fs-tan" aria-labelledby="CardLink-template--25592570609955__product-grid-8126314807587 Badge-template--25592570609955__product-grid-8126314807587"> 5749 5750<figure class="group py-4 m-0"> 5751 <div class="flex items-center justify-center px-4"> 5752 5753 <img src="//6666equinesupplements.com/cdn/shop/files/Transparent_Background_-_Front_-_6ES_2025_Multi_Vitamin_Mineral_30_Day_copy.webp?crop=center&height=300&pad_color=F0EEE8&v=1764789828&width=300" alt="Equine Multi-Vitamin & Mineral Pellets" srcset="//6666equinesupplements.com/cdn/shop/files/Transparent_Backgroun
5753d_-_Front_-_6ES_2025_Multi_Vitamin_Mineral_30_Day_copy.webp?crop=center&height=300&pad_color=F0EEE8&v=1764789828&width=300 300w" width="300" height="300" loading="lazy" class="transition-all duration-500 ease-in-out transform hover:scale-110"> 5754</div> 5755 </figure> 5756 5757 5758 5759 5760 5761 5762 5763 <div class="card-body gap-0 grow text-left px-4"> 5764 5765 5766 5767 5768 5769 5770 5771 5772 5773 <div > 5774 5775 5776 5777 5778 5779 5780 5781 5782<div id="textblock_subtitle_container" class="flex w-full mb-0 mt-0 pb-0 pt-0 text-left justify-start items-center"> 5783 <div class="flex items-center"> 5784 5785 5786 5787 <h3 id="heading_subtitle" class="w-full text-fs-dkgray text-base leading-normal md:text-xs sm:leading-normal md:leading-normal lg:leading-normal xl:leading-normal 2xl:leading-normal font-subheading font-bold tracking-widest uppercase"> 5788 Essential Daily Nutrients 5789 </h3> 5790 5791 5792 </div> 5793</div> 5794 5795 </div> 5796 5797 5798 5799<div > 5800 5801 5802 5803 5804 5805 5806 5807<div id="textblock_title_container" class="flex w-full mb-4 mt-0 pb-0 pt-0 text-left justify-start items-center"> 5808 <div class="flex items-center"> 5809 5810 5811 5812 <h2 id="heading_title" class="w-full text-fs-red text-3xl leading-tight md:text-3xl sm:leading-tight md:leading-tight lg:leading-tight xl:leading-tight 2xl:leading-tight font-serif font-bold tracking-normal"> 5813 Equine Multi-Vitamin & Mineral Pellets 5814 </h2> 5815 5816 5817 </div> 5818</div> 5819 5820 </div> 5821 5822 5823 5824 5825 5826 5827 5828 5829 5830 <div > 5831<div id="price" x-data="{ 5832 regularPrice: 3766, 5833 compareAtPrice: false, 5834 varies: true, 5835 template: 'collection', 5836 flash: false, 5837 5838 priceChange() { 5839 const variant = this.$store.storeData.selectedVariant 5840 const mode = this.$store.storeData.mode 5841 const subPrice = this.$store.storeData.selectedSubscriptionPrice 5842 5843 const newPrice = (mode === 'subscription' && subPrice) ? subPrice : variant.price 5844 this.compareAtPrice = variant.compare_at_price ? variant.compare_at_price : false 5845 this.flashPrice(newPrice) 5846 }, 5847 5848 subscriptionPriceChange() { 5849 const variant = this.$store.storeData.selectedVariant 5850 const mode = this.$store.storeData.mode 5851 const subPrice = this.$store.storeData.selectedSubscriptionPrice 5852 5853 const newPrice = (mode === 'subscription' && subPrice) ? subPrice : variant.price 5854 this.flashPrice(newPrice) 5855 }, 5856 5857 flashPrice(newPrice) { 5858 if (newPrice != this.regularPrice) { 5859 this.flash = false 5860 void this.$el.offsetWidth 5861 this.regularPrice = newPrice 5862 this.flash = true 5863 setTimeout(() => { this.flash = false }, 400) 5864 } 5865 }, 5866 5867 showFrom() { 5868 if (this.varies && this.template != 'product') { 5869 return true 5870 } else { 5871 return false 5872 } 5873 }, 5874 }" x-transition:opacity @variant-updated.window="priceChange" @subscription-plan:change.window="subscriptionPriceChange" class="price flex items-center text-fs-black mb-4 text-base md: font-body font-bold tracking-normal leading-normal md:leading-normal sm:text-base lg:text-base xl:text-base 2xl:text-base justify-start"> 5875 <div id="price_container"> 5876 <span class="sr-only sr-only--inline">Regular Price</span> 5877 <span x-money.shopify="compareAtPrice" :class="compareAtPrice === false ? 'hidden' : ''" class="line-through text-base text-fs-black mr-1"> 5878 5879 </span><span class="sr-only">Regular price</span> 5880 <span x-show="showFrom()">From </span> 5881 <span x-money.shopify="regularPrice" :class="flash ? 'text-fs-red transition-colors duration-300' : 'transition-colors duration-300'" class="mr-2">$37.66</span> 5882 5883 5884 <small class=" hidden">
5885 <span class="sr-only">Unit price</span> 5886 <span class="price-item"> 5887 <span></span> 5888 <span class="hidden" aria-hidden="true">/</span> 5889 <span class="sr-only"> per </span> 5890 <span> 5891 </span> 5892 </span> 5893 </small> 5894 </div> 5895 5896 5897<div id="price-badges"> 5898 <div x-data="priceBadges" @variant-updated.window="priceBadgesChange" id="badges" class="flex"><div x-show="$store.storeData.showSaleBadge" id="on-sale" class="flex flex-nowrap flex-row items-center justify-center"> 5899 <span class="badge badge-lg font-normal leading-extra-tight font-body uppercase ml-0.5 price__badge-sale text-fs-red"> 5900 5901 5902<svg 5903 id="sale-badge" 5904 5905 5906 class="mr-2 z-1 w-5 h-5 sm:w-5 sm:h-5 align-middle fill-fs-red dark:fill-fs-white text-fs-red dark:text-fs-white hover:text-current hover:fill-current icon icon-tag 5907" 5908 aria-hidden="true" 5909 focusable="false" 5910 role="presentation" 5911 5912> 5913 <use xlink:href="#icon-tag"/> 5914</svg> 5915 5916 Sale 5917 </span> 5918 </div> 5919 <div x-show="$store.storeData.showSoldOutBadge" id="sold-out" class="flex flex-nowrap flex-row items-center justify-center"> 5920 <span class="badge badge-lg font-normal leading-extra-tight font-body uppercase ml-0.5 price__badge-sold-out text-fs-red"> 5921 5922 5923<svg 5924 id="soldout-badge" 5925 5926 5927 class="mr-2 z-1 w-5 h-5 sm:w-5 sm:h-5 align-middle fill-fs-red dark:fill-fs-white text-fs-red dark:text-fs-white hover:text-current hover:fill-current icon icon-fire-solid 5928" 5929 aria-hidden="true" 5930 focusable="false" 5931 role="presentation" 5932 5933> 5934 <use xlink:href="#icon-fire-solid"/> 5935</svg> 5936 5937 Hot Product 5938 </span> 5939 </div> 5940 </div> 5941</div>
5942<script> 5943 document.addEventListener('alpine:init', () => { 5944 Alpine.data('priceBadges', () => ({ 5945 priceBadgesChange() { 5946 if (this.$store.storeData.selectedVariant.inventory_management === 'shopify' && this.$store.storeData.stockQuantity() <= 0) { 5947 console.log('shopify lt 0') 5948 this.$store.storeData.showSoldOutBadge = true 5949 } 5950 else if (this.$store.storeData.selectedVariant.inventory_management === '' && this.$store.storeData.selectedVariant.available === false) { 5951 console.log('not available') 5952 this.$store.storeData.showSoldOutBadge = true 5953 } else { 5954 this.$store.storeData.showSoldOutBadge = false 5955 } 5956 // this.$store.storeData.showSoldOutBadge = this.$store.storeData.selectedVariant.available !== true 5957 if (this.$store.storeData.selectedVariant.compare_at_price) { 5958 if (this.$store.storeData.selectedVariant.compare_at_price > this.$store.storeData.selectedVariant.price) { 5959 this.$store.storeData.showSaleBadge = true 5960 } else { 5961 this.$store.storeData.showSaleBadge = false 5962 } 5963 } else { 5964 this.$store.storeData.showSaleBadge = false 5965 } 5966 } 5967 })) 5968 }) 5969</script>
5969 5970</div></div> 5971 5972 5973 5974 5975 5976 <div > 5977 5978 5979 5980 5981 5982 5983 5984 5985<div id="textblock_short_description_container" class="flex w-full mb-6 mt-0 pb-0 pt-0 text-left justify-start items-center"> 5986 <div class="flex items-center"> 5987 5988 5989 5990 <div id="heading_short_description" class="max-w-none prose marker-check prose-ul:text-left prose-ol:text-left prose-p: prose-li: prose-p:mb-6 prose-li:mb-6 prose-p:text-fs-black prose-p:text-base prose-p:leading-normal md:prose-p:text-xs sm:prose-p:leading-normal md:prose-p:leading-normal lg:prose-p:leading-normal xl:prose-p:leading-normal 2xl:prose-p:leading-normal prose-p:font-sans prose-p:font-normal prose-p:tracking-normal prose-li:text-base prose-li:leading-normal md:prose-li:text-xs sm:prose-li:leading-normal md:prose-li:leading-normal lg:prose-li:leading-normal xl:prose-li:leading-normal 2xl:prose-li:leading-normal prose-li:text-fs-black prose-li:font-sans prose-li:font-normal prose-li:tracking-normal"> 5991 <p>One daily scoop fills the nutritional gaps with chelated trace minerals, not cheap sulfates. Supports immunity, performance, recovery, growth, and overall wellness.</p> 5992 </div> 5993 5994 5995 </div> 5996</div> 5997 5998 </div> 5999 6000 6001 6002 6003 6004<div class="mt-auto mb-0 "> 6005 6006 6007<buy-buttons @variant-updated.window="cartButtonChange" x-data="BuyButtons" class="product-form"> 6008 <div x-ref="error_wrapper" class="mb-2 alert alert-error hidden" role="alert"> 6009 6010<svg 6011 6012 class="inline-block z-1 w-3 h-3 sm:w-6 sm:h-6 align-middle fill-fs-black dark:fill-fs-white text-fs-black dark:text-fs-white hover:text-fs-black hover:fill-fs-black icon icon-exclamation-circle-outline 6013" 6014 aria-hidden="true" 6015 focusable="false" 6016 role="presentation" 6017 6018> 6019 <use xlink:href="#icon-exclamation-circle-outline"/> 6020</svg> 6021 <span @product_form_message="handleErrorMessage" x-ref="error_message" x-text="errorMessage" class=""></span> 6022 </div> 6023 <div class="product-form__buttons"> 6024 <button 6025 x-ref="submit_button" 6026 @click.debounce.prevent="addToCart" 6027 id="ProductSubmitButton-template--25592570609955__product-grid" 6028 type="submit" 6029 name="add" 6030 :disabled="$store.storeData.cartButtonDisabled" 6031 :aria-disabled="$store.storeData.cartButtonDisabled" 6032 :class="$store.storeData.cartButtonDisabled ? 'btn-disabled' : ''" 6033 class="product-form__submit btn btn-sixes btn-block text-xl font-subheading"> 6034 <span x-text="$store.storeData.cartButtonText">Add to Cart</span> 6035 <div x-show="$store.storeData.showCartButtonSpinner" x-ref="loading_spinner" class="flex justify-center"> 6036 6037<span class="loading loading-bars loading-md ml-2 loading-overlay__spinner"></span> 6038 </div> 6039 </button> 6040 <p x-show="$store.storeData.backOrder" x-text="backOrderMessage" class="mt-2 text-sm text-fs-red text-center"></p></div> 6041 </buy-buttons>
6041<script> 6042 document.addEventListener('alpine:init', () => { 6043 Alpine.data('BuyButtons', () => ({ 6044 errorMessage: false, 6045 backOrderMessage: window.variantStrings.backOrderMessage, 6046 6047 init() { 6048 this.$store.storeData.showCartButtonSpinner = false 6049 6050 // Default button text 6051 this.$store.storeData.cartButtonText = "Add to Cart" 6052 6053 }, 6054 6055 cartButtonChange() { 6056 if (this.$store.storeData.selectedVariant.available === true && this.$store.storeData.selectedVariant.inventory_management === 'shopify') { 6057 this.$store.storeData.cartButtonText = window.variantStrings.backOrder 6058 this.$store.storeData.cartButtonDisabled = false 6059 this.$store.storeData.backOrder = true 6060 } 6061 else if (this.$store.storeData.selectedVariant.available === false) { 6062 this.$store.storeData.cartButtonText = window.variantStrings.soldOut 6063 this.$store.storeData.cartButtonDisabled = true 6064 this.$store.storeData.backOrder = false 6065 } else { 6066 this.$store.storeData.cartButtonText = window.variantStrings.addToCart 6067 this.$store.storeData.cartButtonDisabled = false 6068 this.$store.storeData.backOrder = false 6069 } 6070 } 6071 })) 6072 }) 6073</script>
6073</div> 6074 6075 6076 6077 6078 </div> 6079 </a> 6080 </li> 6081 <!-- End horizontal card --> 6082</ul></div></div> 6083 <!-- End products --> 6084 </div> 6085</div></div><section id="shopify-section-template--25592570609955__image_video_block_GYAYGt" class="shopify-section section"> 6086 6087 6088 6089<style data-shopify> 6090 /* Forms app */ 6091 #image_banner_wrapper_template--25592570609955__image_video_block_GYAYGt form-embed { 6092 --inline-container-max-width: 100%; 6093 }</style><!-- Wrapper --> 6094<div id="image_banner_wrapper_template--25592570609955__image_video_block_GYAYGt" class="relative flex after:z-1 after:bg-fs-black after:absolute after:top-0 after:left-0 after:h-full after:w-full after:opacity-0 md:pt-4 md:pb-0 pt-4 pb-0"> 6095 <!-- Media --> 6096 <div id="image_banner_media_template--25592570609955__image_video_block_GYAYGt" class="z-1"> 6097 <img src="//6666equinesupplements.com/cdn/shop/files/Fuel_for_the_ranch_and_arena_5.png?v=1787750350&width=1920" alt="" srcset="//6666equinesupplements.com/cdn/shop/files/Fuel_for_the_ranch_and_arena_5.png?v=1787750350&width=1920 1920w, //6666equinesupplements.com/cdn/shop/files/Fuel_for_the_ranch_and_arena_5.png?v=1787750350&width=1600 1600w, //6666equinesupplements.com/cdn/shop/files/Fuel_for_the_ranch_and_arena_5.png?v=1787750350&width=1366 1366w, //6666equinesupplements.com/cdn/shop/files/Fuel_for_the_ranch_and_arena_5.png?v=1787750350&width=1024 1024w, //6666equinesupplements.com/cdn/shop/files/Fuel_for_the_ranch_and_arena_5.png?v=1787750350&width=768 768w, //6666equinesupplements.com/cdn/shop/files/Fuel_for_the_ranch_and_arena_5.png?v=1787750350&width=640 640w, //6666equinesupplements.com/cdn/shop/files/Fuel_for_the_ranch_and_arena_5.png?v=1787750350&width=250 250w" width="1920" height="485" loading="lazy" class="block max-w-full absolute top-0 left-0 w-full h-full object-cover oject-center"> 6098 6099 </div> 6100 <!-- End media --> 6101 <!-- Video mute button (only shown when video exists) --><!-- Content --> 6102 <div id="image_banner_content_template--25592570609955__image_video_block_GYAYGt" class="container mx-auto z-2 relative flex flex-col md:items-center md:justify-center items-center justify-center"> 6103 <div class="w-full md:w-auto"> 6104 6105<h2><span class=" 6106block w-full font-body text-7xl md:text-7xl font-black tracking-widest leading-none sm:leading-none md:leading-none lg:leading-none xl:leading-none 2xl:leading-none uppercase text-center text-fs-white drop-shadow-double mb-0" >Fuel 6107 </span><span class=" 6108block w-full font-body text-3xl md:text-3xl font-normal tracking-widest leading-normal sm:leading-normal md:leading-normal lg:leading-normal xl:leading-normal 2xl:leading-normal uppercase text-center text-fs-white drop-shadow-double mb-0" >for the Ranch and Arena⢠6109 </span></h2> 6110</div><div class="w-full md:w-auto mt-8"> 6111 6112 6113 6114 6115 6116 </div></div> 6117</div> 6118<!-- End wrapper -->
6119<script> 6120 document.addEventListener('alpine:init', () => { 6121 Alpine.data('BannerVideo', () => ({ 6122 muted: true, 6123 6124 toggleMute() { 6125 this.muted = !this.muted; 6126 // Directly control the video element's muted property 6127 this.$refs.video.muted = this.muted; 6128 }, 6129 6130 playVideo() { 6131 // Start playing the video 6132 this.$refs.video.play(); 6133 // Unmute the video programmatically 6134 this.$refs.video.muted = false; 6135 // Update component state 6136 this.muted = false; 6137 } 6138 })) 6139 }) 6140</script>
6140 6141</section> 6142 6143 </main> 6144 6145 <!-- BEGIN sections: footer-group --> 6146<div id="shopify-section-sections--25592569561379__footer" class="shopify-section shopify-section-group-footer-group"><footer class="flex flex-col text-fs-tan bg-fs-red mt-0 mb-0 pt-0 pb-0"><div id="footer_block" class="footer grid grid-cols-1 place-items-stretch gap-10 footer__content-top container mx-auto section-sections--25592569561379__footer"><div class="flex flex-col justify-center w-full"> 6147 6148 6149 6150 6151 6152 6153<div id="textblock_rich_text_prPEFD_container" class="flex w-full mb-0 mt-4 pb-0 pt-0 text-center justify-center items-center w-full"> 6154 <div class="flex items-center"> 6155 6156 6157 6158 <p id="heading_rich_text_prPEFD" class="w-full text-fs-white text-xl leading-none sm:text-xl md:text-xl lg:text-xl xl:text-xl 2xl:text-xl sm:leading-none md:leading-none lg:leading-none xl:leading-none 2xl:leading-none font-body tracking-wider uppercase"> 6159 Customer Service: <a href="tel:806-660-6666"><strong>806-660-6666</strong></a> 6160 </p> 6161 6162 6163 </div> 6164</div> 6165 6166</div></div><div class="bg-fs-red text-fs-white py-4"> 6167 <div class="w-full mb-4 [&_h4]:leading-7"> 6168<ul class="flex gap-2 justify-center"><li> 6169 <a target="_blank" href="https://www.facebook.com/6666equinesupplements"> 6170 6171<svg 6172 6173 class="flex hover:scale-105 z-1 w-10 h-10 sm:w-12 sm:h-12 align-middle fill-fs-tan dark:fill-fs-white text-fs-tan dark:text-fs-white hover:text-white hover:fill-white icon icon-facebook 6174" 6175 aria-hidden="true" 6176 focusable="false" 6177 role="presentation" 6178 6179> 6180 <use xlink:href="#icon-facebook"/> 6181</svg> 6182 <span class="sr-only">Facebook</span> 6183 </a> 6184 </li><li> 6185 <a target="_blank" href="https://www.instagram.com/6666equinesupplements/"> 6186 6187<svg 6188 6189 class="flex hover:scale-105 z-1 w-10 h-10 sm:w-12 sm:h-12 align-middle fill-fs-tan dark:fill-fs-white text-fs-tan dark:text-fs-white hover:text-white hover:fill-white icon icon-instagram 6190" 6191 aria-hidden="true" 6192 focusable="false" 6193 role="presentation" 6194 6195> 6196 <use xlink:href="#icon-instagram"/> 6197</svg> 6198 <span class="sr-only">Instagram</span> 6199 </a> 6200 </li><li> 6201 <a target="_blank" href="https://www.youtube.com/@6666EquineSupplements"> 6202 6203<svg 6204 6205 class="flex hover:scale-105 z-1 w-10 h-10 sm:w-12 sm:h-12 align-middle fill-fs-tan dark:fill-fs-white text-fs-tan dark:text-fs-white hover:text-white hover:fill-white icon icon-youtube 6206" 6207 aria-hidden="true" 6208 focusable="false" 6209 role="presentation" 6210 6211> 6212 <use xlink:href="#icon-youtube"/> 6213</svg> 6214 <span class="sr-only">YouTube</span> 6215 </a> 6216 </li><li> 6217 <a target="_blank" href="https://www.tiktok.com/@6666equinesupplements"> 6218 6219<svg 6220 6221 class="flex hover:scale-105 z-1 w-10 h-10 sm:w-12 sm:h-12 align-middle fill-fs-tan dark:fill-fs-white text-fs-tan dark:text-fs-white hover:text-white hover:fill-white icon icon-tiktok 6222" 6223 aria-hidden="true" 6224 focusable="false" 6225 role="presentation" 6226 6227> 6228 <use xlink:href="#icon-tiktok"/> 6229</svg> 6230 <span class="sr-only">TikTok</span> 6231 </a> 6232 </li><li> 6233 <a target="_blank" href="https://www.linkedin.com/company/6666-equine-supplements/"> 6234 6235<svg 6236 6237 class="flex hover:scale-105 z-1 w-10 h-10 sm:w-12 sm:h-12 align-middle fill-fs-tan dark:fill-fs-white text-fs-tan dark:text-fs-white hover:text-white hover:fill-white icon icon-linkedin 6238" 6239 aria-hidden="true" 6240 focusable="false" 6241 role="presentation" 6242 6243> 6244 <use xlink:href="#icon-linkedin"/> 6245</svg> 6246 <span class="sr-only">LinkedIn</span> 6247 </a> 6248 </li></ul></div> 6249 <div class="container mx-auto flex-col justify-center items-center grid gap-4 text-base"><ul class="list-none text-center flex flex-col md:flex-row flex-wrap justify-center items-center gap-1 md:gap-0"> 6250 6251 <li class="md:px-2 md:border-r md:border-fs-white md:last:border-none"> 6252 <a class="link text-fs-tan hover:text-fs-white" href="/pages/become-a-dealer">Become a Dealer</a> 6253 </li> 6254 6255 <li class="md:px-2 md:border-r md:border-fs-white md:last:border-none"> 6256 <a class="link text-fs-tan hover:text-fs-white" href="/policies/refund-policy">Return/Refund policy</a> 6257 </li> 6258 6259 <li class="md:px-2 md:border-r md:border-fs-white md:last:border-none"> 6260 <a class="link text-fs-tan hover:text-fs-white" href="/policies/terms-of-service">Terms of Service</a> 6261 </li> 6262 6263 <li class="md:px-2 md:border-r md:border-fs-white md:last:border-none"> 6264 <a class="link text-fs-tan hover:text-fs-white" href="/policies/privacy-policy">Privacy Policy</a> 6265 </li> 6266 6267 <li class="md:px-2 md:border-r md:border-fs-white md:last:border-none"> 6268 <a class="link text-fs-tan hover:text-fs-white" href="/blogs/press">Press</a> 6269 </li> 6270 6271 </ul><small class="w-full block font-subheading tracking-widest text-fs-white uppercase text-center text-xs">© 2026, <a href="/" title="">6666 Equine Supplements</a> | FOUR SIXES and 6666 are trademarks of 6666 Brand, LLC and used under license to FullBucket Health.</small> 6272 </div> 6273 </div> 6274</footer></div><section id="shopify-section-sections--25592569561379__popup" class="shopify-section shopify-section-group-footer-group section"><div x-data="Popup"> 6275 <label for="primary_modal" class="sr-only">Popup toggle</label> 6276 <input type="checkbox" id="primary_modal" :checked="show" class="modal-toggle" aria-label="Popup toggle"> 6277 <div class="modal" x-show="show" x-transition> 6278 <div id="section-sections--25592569561379__popup" class="modal-box rounded max-h-fit w-11/12 max-w-xl pt-0 px-0 flex flex-col gap-y-4 justify-center relative border-solid border border-black/60 bg-fs-tan/ pb-32"> 6279 <div class="modal-action absolute right-0 top-0 mt-0 z-20"> 6280 <label 6281 for="primary_modal" 6282 onclick="localStorage.setItem('hide_popup_disable', true)" 6283 class="btn btn-sm btn-circle bg-transparent hover:bg-transparent text-white/50 hover:text-white border-none" 6284 > 6285 6286<svg 6287 id="popup_icon" 6288 6289 6290 class=" z-1 w-4 h-4 sm:w-4 sm:h-4 align-middle fill-fs-tan dark:fill-fs-white text-fs-tan dark:text-fs-white hover:text-fs-white hover:fill-fs-white icon icon-close 6291" 6292 aria-hidden="true" 6293 focusable="false" 6294 role="presentation" 6295 6296> 6297 <use xlink:href="#icon-close"/> 6298</svg> 6299 </label> 6300 </div> 6301 6302 6303 6304 6305 6306 6307 6308<div id="textblock_heading_container" class="flex w-full 0 mt-0 pb-0 pt-0 text-center justify-center items-center bg-fs-brown z-10 py-3 px-6"> 6309 <div class="flex items-center"> 6310 6311 6312 6313 <h2 id="heading_heading" class="w-full text-fs-tan text-xl leading-normal md:text-3xl sm:leading-normal md:leading-normal lg:leading-normal xl:leading-normal 2xl:leading-normal font-heading font-bold tracking-wider up
6313percase"> 6314 Join the List for Free Stuff! 6315 </h2> 6316 6317 6318 </div> 6319</div> 6320 6321 6322 6323 <div class="z-10 px-8 md:px-12 w-full mx-auto"> 6324 6325<form method="post" action="/contact#contact_form" id="contact_form" accept-charset="UTF-8" class="newsletter-form "><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="â" /> 6326<input class="input" type="hidden" name="contact[tags]" value="newsletter"> 6327 <div class="join join-horizontal w-full "> 6328 <input 6329 id="NewsletterForm--sections--25592569561379__popup" 6330 type="email" 6331 name="contact[email]" 6332 class="input input-md input-bordered join-item grow focus:outline-0 bg-white border-fs-brown" 6333 value="" 6334 aria-required="true" 6335 autocorrect="off" 6336 autocapitalize="off" 6337 autocomplete="email" 6338 6339 placeholder="Enter your email" 6340 required 6341 /> 6342 <label class="field__label hidden" for="NewsletterForm--sections--25592569561379__popup">Enter your email</label> 6343 <button 6344 type="submit" 6345 class="btn btn-md btn-square btn-bordered join-item focus:outline-0 text-fs-tan bg-fs-brown/70 hover:bg-fs-brown border-fs-brown hover:border-fs-brown" 6346 name="commit" 6347 id="Subscribe" 6348 aria-label="Subscribe" 6349 > 6350 6351<svg 6352 id="sections--25592569561379__popup" 6353 6354 6355 class=" z-1 w-3 h-3 sm:w-6 sm:h-6 align-middle fill-current dark:fill-fs-white text-current dark:text-fs-white hover:text-current hover:fill-current icon icon-chevron-right 6356" 6357 aria-hidden="true" 6358 focusable="false" 6359 role="presentation" 6360 6361> 6362 <use xlink:href="#icon-chevron-right"/> 6363</svg> 6364 </button> 6365 </div></form> 6366 </div> 6367 6368<div class="prose text-base py-0 relative z-10 px-8 md:px-12 text-fs-black text-center"> 6369 We share our best practices, sneak peeks at what weâre working on and, early discounts. One thing we will never ever share is your info to anyone outside our fences. 6370 </div> 6371<div class="absolute bottom-0 w-full z-0 h-auto"> 6372 <img src="//6666equinesupplements.com/cdn/shop/files/barn-clouds-square.png?v=1687974731&width=750" alt="" srcset="//6666equinesupplements.com/cdn/shop/files/barn-clouds-square.png?v=1687974731&width=352 352w, //6666equinesupplements.com/cdn/shop/files/barn-clouds-square.png?v=1687974731&width=750 750w" width="750" height="579" loading="lazy" class="max-w-none h-auto w-full object-cover object-[center_bottom]" style="object-position:48.8986% 83.6495%;"> 6373 </div> 6374 </div> 6375 </div> 6376</div>
6377<script> 6378 document.addEventListener('alpine:init', () => { 6379 // Get the excluded pages from the popup config 6380 let pagesList = ["\/"]; 6381 let negate = true; 6382 Alpine.data('Popup', () => ({ 6383 show: false, 6384 6385 init() { 6386 // Determine if the current page is excluded or not 6387 let isPageExcluded = pagesList.includes('/collections/all-products') 6388 6389 if (negate) { 6390 // If negate is true, reverse the exclusion logic 6391 isPageExcluded = !isPageExcluded 6392 } 6393 // Only show if the page is not in the excluded list 6394 if(isPageExcluded) { 6395 this.show = false 6396 } else { 6397 if (!localStorage.getItem('hide_popup_disable')) { 6398 setTimeout(() => { 6399 this.show = !localStorage.getItem('hide_popup_disable') 6400 }, "5000"); 6401 // setTimeout(() => this.show = !localStorage.getItem('hide_popup_disable'), 5000) 6402 } else { 6403 this.show = !localStorage.getItem('hide_popup_disable') 6404 } 6405 } 6406 } 6407 })) 6408 }) 6409</script>
6409 6410</section> 6411<!-- END sections: footer-group --> 6412 6413 <ul hidden> 6414 <li id="a11y-refresh-page-message">Choosing a selection results in a full page refresh.</li> 6415 <li id="a11y-new-window-message">Opens in a new window.</li> 6416 </ul> 6417 6418
6418<script> 6419 window.shopUrl = 'https://6666equinesupplements.com'; 6420 window.routes = { 6421 cart_add_url: '/cart/add', 6422 cart_change_url: '/cart/change', 6423 cart_update_url: '/cart/update', 6424 cart_url: '/cart', 6425 predictive_search_url: '/search/suggest' 6426 }; 6427 window.cartStrings = { 6428 error: `There was an error while updating your cart. Please try again.`, 6429 quantityError: `You can only add [quantity] of this item to your cart.` 6430 } 6431 window.variantStrings = { 6432 addToCart: `Add to cart`, 6433 soldOut: `Sold out`, 6434 backOrder: `Backorder`, 6435 backOrderMessage: `Order now & we'll ship your product as soon as it's back in stock`, 6436 unavailable: `Unavailable`, 6437 unavailable_with_option: `[value] - Unavailable`, 6438 } 6439 6440 window.accessibilityStrings = { 6441 imageAvailable: `Image [index] is now available in gallery view`, 6442 shareSuccess: `Link copied to clipboard`, 6443 pauseSlideshow: `Pause slideshow`, 6444 playSlideshow: `Play slideshow`, 6445 } 6446 </script>
6446<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="0" height="0"> 6447<defs> 6448 <symbol id="icon-account" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"> 6449 <path stroke-linecap="round" stroke-linejoin="round" d="M15.75 6a3.75 3.75 0 11-7.5 0 3.75 3.75 0 017.5 0zM4.501 20.118a7.5 7.5 0 0114.998 0A17.933 17.933 0 0112 21.75c-2.676 0-5.216-.584-7.499-1.632z" /> 6450 </symbol> 6451 6452 <symbol id="icon-account-solid" viewBox="0 0 24 24" fill="currentColor" class="w-6 h-6"> 6453 <path fill-rule="evenodd" d="M7.5 6a4.5 4.5 0 119 0 4.5 4.5 0 01-9 0zM3.751 20.105a8.25 8.25 0 0116.498 0 .75.75 0 01-.437.695A18.683 18.683 0 0112 22.5c-2.786 0-5.433-.608-7.812-1.7a.75.75 0 01-.437-.695z" clip-rule="evenodd" /> 6454 </symbol> 6455 6456 <symbol id="icon-arrow" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"> 6457 <path stroke-linecap="round" stroke-linejoin="round" d="M13.5 4.5L21 12m0 0l-7.5 7.5M21 12H3" /> 6458 </symbol> 6459 6460 <symbol id="icon-arrow-left" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"> 6461 <path stroke-linecap="round" stroke-linejoin="round" d="M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18" /> 6462 </symbol> 6463 6464 <symbol id="icon-arrow-path" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"> 6465 <path stroke-linecap="round" stroke-linejoin="round" d="M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0l3.181 3.183a8.25 8.25 0 0013.803-3.7M4.031 9.865a8.25 8.25 0 0113.803-3.7l3.181 3.182m0-4.991v4.99" /> 6466 </symbol> 6467 6468 <symbol id="icon-bank-notes-solid" viewBox="0 0 24 24" fill="currentColor" class="w-6 h-6"> 6469 <path d="M10.464 8.746c.227-.18.497-.311.786-.394v2.795a2.252 2.252 0 01-.786-.393c-.394-.313-.546-.681-.546-1.004 0-.323.152-.691.546-1.004zM12.75 15.662v-2.824c.347.085.664.228.921.421.427.32.579.686.579.991 0 .305-.152.671-.579.991a2.534 2.534 0 01-.921.42z" /> 6470 <path fill-rule="evenodd" d="M12 2.25c-5.385 0-9.75 4.365-9.75 9.75s4.365 9.75 9.75 9.75 9.75-4.365 9.75-9.75S17.385 2.25 12 2.25zM12.75 6a.75.75 0 00-1.5 0v.816a3.836 3.836 0 00-1.72.756c-.712.566-1.112 1.35-1.112 2.178 0 .829.4 1.612 1.113 2.178.502.4 1.102.647 1.719.756v2.978a2.536 2.536 0 01-.921-.421l-.879-.66a.75.75 0 00-.9 1.2l.879.66c.533.4 1.169.645 1.821.75V18a.75.75 0 001.5 0v-.81a4.124 4.124 0 001.821-.749c.745-.559 1.179-1.344 1.179-2.191 0-.847-.434-1.632-1.179-2.191a4.122 4.122 0 00-1.821-.75V8.354c.29.082.559.213.786.393l.415.33a.75.75 0 00.933-1.175l-.415-.33a3.836 3.836 0 00-1.719-.755V6z" clip-rule="evenodd" /> 6471 </symbol> 6472 6473 <symbol id="icon-calendar-days-solid" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" class="w-6 h-6"> 6474 <path d="M12.75 12.75a.75.75 0 11-1.5 0 .75.75 0 011.5 0zM7.5 15.75a.75.75 0 100-1.5.75.75 0 000 1.5zM8.25 17.25a.75.75 0 11-1.5 0 .75.75 0 011.5 0zM9.75 15.75a.75.75 0 100-1.5.75.75 0 000 1.5zM10.5 17.25a.75.75 0 11-1.5 0 .75.75 0 011.5 0zM12 15.75a.75.75 0 100-1.5.75.75 0 000 1.5zM12.75 17.25a.75.75 0 11-1.5 0 .75.75 0 011.5 0zM14.25 15.75a.75.75 0 100-1.5.75.75 0 000 1.5zM15 17.25a.75.75 0 11-1.5 0 .75.75 0 011.5 0zM16.5 15.75a.75.75 0 100-1.5.75.75 0 000 1.5zM15 12.75a.75.75 0 11-1.5 0 .75.75 0 011.5 0zM16.5 13.5a.75.75 0 100-1.5.75.75 0 000 1.5z" /> 6475 <path fill-rule="evenodd" d="M6.75 2.25A.75.75 0 017.5 3v1.5h9V3A.75.75 0 0118 3v1.5h.75a3 3 0 013 3v11.25a3 3 0 01-3 3H5.25a3 3 0 01-3-3V7.5a3 3 0 013-3H6V3a.75.75 0 01.75-.75zm13.5 9a1.5 1.5 0 00-1.5-1.5H5.25a1.5 1.5 0 00-1.5 1.5v7.5a1.5 1.5 0 001.5 1.5h13.5a1.5 1.5 0 001.5-1.5v-7.5z" clip-rule="evenodd" /> 6476 </symbol> 6477 6478 <symbol id="icon-caret" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"> 6479 <path stroke-linecap="round" stroke-linejoin="round" d="M19.5 8.25l-7.5 7.5-7.5-7.5" /> 6480 </symbol> 6481 6482 <symbol id="icon-caret-left" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"> 6483 <path stroke-linecap="round" stroke-linejoin="round" d="M15.75 19.5L8.25 12l7.5-7.5" /> 6484 </symbol> 6485 6486 <symbol id="icon-caret-right" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"> 6487 <path stroke-linecap="round" stroke-linejoin="round" d="M8.25 4.5l7.5 7.5-7.5 7.5" /> 6488 </symbol> 6489 6490 <svg id="icon-cart" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"> 6491 <path stroke-linecap="round" stroke-linejoin="round" d="M2.25 3h1.386c.51 0 .955.343 1.087.835l.383 1.437M7.5 14.25a3 3 0 00-3 3h15.75m-12.75-3h11.218c1.121-2.3 2.1-4.684 2.924-7.138a60.114 60.114 0 00-16.536-1.84M7.5 14.25L5.106 5.272M6 20.25a.75.75 0 11-1.5 0 .75.75 0 011.5 0zm12.75 0a.75.75 0 11-1.5 0 .75.75 0 011.5 0z" /> 6492 </svg> 6493 6494 <symbol id="icon-cart-solid" viewBox="0 0 24 24" class="w-6 h-6"> 6495 <path d="M2.25 2.25a.75.75 0 000 1.5h1.386c.17 0 .318.114.362.278l2.558 9.592a3.752 3.752 0 00-2.806 3.63c0 .414.336.75.75.75h15.75a.75.75 0 000-1.5H5.378A2.25 2.25 0 017.5 15h11.218a.75.75 0 00.674-.421 60.358 60.358 0 002.96-7.228.75.75 0 00-.525-.965A60.864 60.864 0 005.68 4.509l-.232-.867A1.875 1.875 0 003.636 2.25H2.25zM3.75 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0zM16.5 20.25a1.5 1.5 0 113 0 1.5 1.5 0 01-3 0z" /> 6496 </symbol> 6497 6498 <symbol id="icon-chat-bubble-oval-solid" viewBox="0 0 24 24" fill="currentColor" class="w-6 h-6"> 6499 <path fill-rule="evenodd" d="M4.804 21.644A6.707 6.707 0 006 21.75a6.721 6.721 0 003.583-1.029c.774.182 1.584.279 2.417.279 5.322 0 9.75-3.97 9.75-9 0-5.03-4.428-9-9.75-9s-9.75 3.97-9.75 9c0 2.409 1.025 4.587 2.674 6.192.232.226.277.428.254.543a3.73 3.73 0 01-.814 1.686.75.75 0 00.44 1.223zM8.25 10.875a1.125 1.125 0 100 2.25 1.125 1.125 0 000-2.25zM10.875 12a1.125 1.125 0 112.25 0 1.125 1.125 0 01-2.25 0zm4.875-1.125a1.125 1.125 0 100 2.25 1.125 1.125 0 000-2.25z" clip-rule="evenodd" /> 6500 </symbol> 6501 6502 <symbol id="icon-checkmark-circle-solid" viewBox="0 0 24 24" fill="currentColor" class="w-6 h-6"> 6503 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zm13.36-1.814a.75.75 0 10-1.22-.872l-3.236 4.53L9.53 12.22a.75.75 0 00-1.06 1.06l2.25 2.25a.75.75 0 001.14-.094l3.75-5.25z" clip-rule="evenodd" /> 6504 </symbol> 6505 6506 <symbol id="icon-checkmark" viewBox="0 0 24 24" fill="currentColor" class="w-6 h-6"> 6507 <path fill-rule="evenodd" d="M19.916 4.626a.75.75 0 01.208 1.04l-9 13.5a.75.75 0 01-1.154.114l-6-6a.75.75 0 011.06-1.06l5.353 5.353 8.493-12.739a.75.75 0 011.04-.208z" clip-rule="evenodd" /> 6508 </symbol> 6509 6510 <symbol id="icon-chevron-dblright" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6 icon-chevron-dblright"> 6511 <path stroke-linecap="round" stroke-linejoin="round" d="M11.25 4.5l7.5 7.5-7.5 7.5m-6-15l7.5 7.5-7.5 7.5" /> 6512 </symbol> 6513 6514 <symbol id="icon-chevron-right" fill="currentColor" viewBox="0 0 24 24" stroke-width="1.5" class="w-5 h-5 icon-chevron-right"> 6515 <path fill-rule="evenodd" d="M16.28 11.47a.75.75 0 010 1.06l-7.5 7.5a.75.75 0 01-1.06-1.06L14.69 12 7.72 5.03a.75.75 0 011.06-1.06l7.5 7.5z" clip-rule="evenodd" /> 6516 </symbol> 6517 6518 <symbol id="icon-chevron-dblleft" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6 icon-chevron-dblleft"> 6519 <path stroke-linecap="round" stroke-linejoin="round" d="M18.75 19.5l-7.5-7.5 7.5-7.5m-6 15L5.25 12l7.5-7.5" /> 6520 </symbol> 6521 6522 <symbol id="icon-chevron-left" fill="currentColor" viewBox="0 0 24 24" stroke-width="1.5" class="w-5 h-5 icon-chevron-left"> 6523 <path fill-rule="evenodd" d="M7.72 12.53a.75.75 0 010-1.06l7.5-7.5a.75.75 0 111.06 1.06L9.31 12l6.97 6.97a.75.75 0 11-1.06 1.06l-7.5-7.5z" clip-rule="evenodd" /> 6524 </symbol> 6525 6526 <symbol id="icon-clock-outline" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"> 6527 <path stroke-linecap="round" stroke-linejoin="round" d="M12 6v6h4.5m4.5 0a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z" /> 6528 </symbol> 6529 6530 <symbol id="icon-close" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"> 6531 <path stroke-linecap="round" stroke-linejoin="round" d="M4.5 19.5l15-15m-15 0l15 15" /> 6532 </symbol> 6533 6534 <symbol id="icon-contact" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"> 6535 <path stroke-linecap="round" stroke-linejoin="round" d="M2.25 6.75c0 8.284 6.716 15 15 15h2.25a2.25 2.25 0 002.25-2.25v-1.372c0-.516-.351-.966-.852-1.091l-4.423-1.106c-.44-.11-.902.055-1.173.417l-.97 1.293c-.282.376-.769.542-1.21.38a12.035 12.035 0 01-7.143-7.143c-.162-.441.004-.928.38-1.21l1.293-.97c.363-.271.527-.734.417-1.173L6.963 3.102a1.125 1.125 0 00-1.091-.852H4.5A2.25 2.25 0 002.25 4.5v2.25z" /> 6536 </symbol> 6537 6538 <symbol id="icon-contact-solid" viewBox="0 0 24 24" class="w-6 h-6"> 6539 <path fill-rule="evenodd" d="M1.5 4.5a3 3 0 013-3h1.372c.86 0 1.61.586 1.819 1.42l1.105 4.423a1.875 1.875 0 01-.694 1.955l-1.293.97c-.135.101-.164.249-.126.352a11.285 11.285 0 006.697 6.697c.103.038.25.009.352-.126l.97-1.293a1.875 1.875 0 011.955-.694l4.423 1.105c.834.209 1.42.959 1.42 1.82V19.5a3 3 0 01-3 3h-2.25C8.552 22.5 1.5 15.448 1.5 6.75V4.5z" clip-rule="evenodd" /> 6540 </symbol> 6541 6542 <symbol id="icon-credit-card-outline" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"> 6543 <path stroke-linecap="round" stroke-linejoin="round" d="M2.25 8.25h19.5M2.25 9h19.5m-16.5 5.25h6m-6 2.25h3m-3.75 3h15a2.25 2.25 0 0 0 2.25-2.25V6.75A2.25 2.25 0 0 0 19.5 4.5h-15a2.25 2.25 0 0 0-2.25 2.25v10.5A2.25 2.25 0 0 0 4.5 19.5Z" /> 6544 </symbol> 6545 6546 <symbol id="icon-envelope" viewBox="0 0 24 24" class="w-6 h-6"> 6547 <path d="M1.5 8.67v8.58a3 3 0 003 3h15a3 3 0 003-3V8.67l-8.928 5.493a3 3 0 01-3.144 0L1.5 8.67z" /> 6548 <path d="M22.5 6.908V6.75a3 3 0 00-3-3h-15a3 3 0 00-3 3v.158l9.714 5.978a1.5 1.5 0 001.572 0L22.5 6.908z" /> 6549 </symbol> 6550 6551 <symbol id="icon-exclamation-circle-solid" viewBox="0 0 24 24" fill="currentColor" class="w-6 h-6"> 6552 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z" clip-rule="evenodd" /> 6553 </symbol> 6554 6555 <symbol id="icon-exclamation-circle-outline" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"> 6556 <path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3.75m9-.75
6556a9 9 0 11-18 0 9 9 0 0118 0zm-9 3.75h.008v.008H12v-.008z" /> 6557 </symbol> 6558 6559 <symbol id="icon-exclamation-circle-solid" viewBox="0 0 24 24" fill="currentColor" class="w-6 h-6"> 6560 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12ZM12 8.25a.75.75 0 0 1 .75.75v3.75a.75.75 0 0 1-1.5 0V9a.75.75 0 0 1 .75-.75Zm0 8.25a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Z" clip-rule="evenodd" /> 6561 </symbol> 6562 6563 <symbol id="icon-fire-solid" viewBox="0 0 24 24" fill="currentColor" class="w-6 h-6"> 6564 <path fill-rule="evenodd" d="M12.963 2.286a.75.75 0 0 0-1.071-.136 9.742 9.742 0 0 0-3.539 6.176 7.547 7.547 0 0 1-1.705-1.715.75.75 0 0 0-1.152-.082A9 9 0 1 0 15.68 4.534a7.46 7.46 0 0 1-2.717-2.248ZM15.75 14.25a3.75 3.75 0 1 1-7.313-1.172c.628.465 1.35.81 2.133 1a5.99 5.99 0 0 1 1.925-3.546 3.75 3.75 0 0 1 3.255 3.718Z" clip-rule="evenodd" /> 6565 </symbol> 6566 6567 <symbol id="icon-fire-micro" viewBox="0 0 16 16" fill="currentColor" class="w-4 h-4"> 6568 <path fill-rule="evenodd" d="M8.074.945A4.993 4.993 0 0 0 6 5v.032c.004.6.114 1.176.311 1.709.16.428-.204.91-.61.7a5.023 5.023 0 0 1-1.868-1.677c-.202-.304-.648-.363-.848-.058a6 6 0 1 0 8.017-1.901l-.004-.007a4.98 4.98 0 0 1-2.18-2.574c-.116-.31-.477-.472-.744-.28Zm.78 6.178a3.001 3.001 0 1 1-3.473 4.341c-.205-.365.215-.694.62-.59a4.008 4.008 0 0 0 1.873.03c.288-.065.413-.386.321-.666A3.997 3.997 0 0 1 8 8.999c0-.585.126-1.14.351-1.641a.42.42 0 0 1 .503-.235Z" clip-rule="evenodd" /> 6569 </symbol> 6570 6571 <symbol id="icon-fire-outline" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"> 6572 <path stroke-linecap="round" stroke-linejoin="round" d="M15.362 5.214A8.252 8.252 0 0 1 12 21 8.25 8.25 0 0 1 6.038 7.047 8.287 8.287 0 0 0 9 9.601a8.983 8.983 0 0 1 3.361-6.867 8.21 8.21 0 0 0 3 2.48Z" /> 6573 <path stroke-linecap="round" stroke-linejoin="round" d="M12 18a3.75 3.75 0 0 0 .495-7.468 5.99 5.99 0 0 0-1.925 3.547 5.975 5.975 0 0 1-2.133-1.001A3.75 3.75 0 0 0 12 18Z" /> 6574 </symbol> 6575 6576 <symbol id="icon-gift" viewBox="0 0 24 24" class="w-6 h-6"> 6577 <path d="M9.375 3a1.875 1.875 0 000 3.75h1.875v4.5H3.375A1.875 1.875 0 011.5 9.375v-.75c0-1.036.84-1.875 1.875-1.875h3.193A3.375 3.375 0 0112 2.753a3.375 3.375 0 015.432 3.997h3.943c1.035 0 1.875.84 1.875 1.875v.75c0 1.036-.84 1.875-1.875 1.875H12.75v-4.5h1.875a1.875 1.875 0 10-1.875-1.875V6.75h-1.5V4.875C11.25 3.839 10.41 3 9.375 3zM11.25 12.75H3v6.75a2.25 2.25 0 002.25 2.25h6v-9zM12.75 12.75v9h6.75a2.25 2.25 0 002.25-2.25v-6.75h-9z" /> 6578 </symbol> 6579 6580 <symbol id="icon-hamburger" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"> 6581 <path stroke-linecap="round" stroke-linejoin="round" d="M3.75 6.75h16.5M3.75 12h16.5m-16.5 5.25h16.5" /> 6582 </symbol> 6583 6584 <symbol id="icon-hours" viewBox="0 0 24 24" class="w-6 h-6"> 6585 <path fill-rule="evenodd" d="M12 2.25c-5.385 0-9.75 4.365-9.75 9.75s4.365 9.75 9.75 9.75 9.75-4.365 9.75-9.75S17.385 2.25 12 2.25zM12.75 6a.75.75 0 00-1.5 0v6c0 .414.336.75.75.75h4.5a.75.75 0 000-1.5h-3.75V6z" clip-rule="evenodd" /> 6586 </symbol> 6587 6588 <symbol id="icon-information-circle-outline" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"> 6589 <path stroke-linecap="round" stroke-linejoin="round" d="m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z" /> 6590 </symbol> 6591 6592 <symbol id="icon-listbullet" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-6"> 6593 <path stroke-linecap="round" stroke-linejoin="round" d="M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75V6.75Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0ZM3.75 12h.007v.008H3.75V12Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm-.375 5.25h.007v.008H3.75v-.008Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z" /> 6594 </symbol> 6595 6596 <symbol id="icon-location" viewBox="0 0 24 24" class="w-6 h-6"> 6597 <path fill-rule="evenodd" d="M11.54 22.351l.07.04.028.016a.76.76 0 00.723 0l.028-.015.071-.041a16.975 16.975 0 001.144-.742 19.58 19.58 0 002.683-2.282c1.944-1.99 3.963-4.98 3.963
6597-8.827a8.25 8.25 0 00-16.5 0c0 3.846 2.02 6.837 3.963 8.827a19.58 19.58 0 002.682 2.282 16.975 16.975 0 001.145.742zM12 13.5a3 3 0 100-6 3 3 0 000 6z" clip-rule="evenodd" /> 6598 </symbol> 6599 6600 <symbol id="icon-minus-small" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"> 6601 <path stroke-linecap="round" stroke-linejoin="round" d="M18 12H6" /> 6602 </symbol> 6603 6604 <symbol id="icon-pause" viewBox="0 0 24 24" fill="currentColor" class="w-6 h-6"> 6605 <path fill-rule="evenodd" d="M6.75 5.25a.75.75 0 01.75-.75H9a.75.75 0 01.75.75v13.5a.75.75 0 01-.75.75H7.5a.75.75 0 01-.75-.75V5.25zm7.5 0A.75.75 0 0115 4.5h1.5a.75.75 0 01.75.75v13.5a.75.75 0 01-.75.75H15a.75.75 0 01-.75-.75V5.25z" clip-rule="evenodd" /> 6606 </symbol> 6607 6608 <symbol id="icon-play" viewBox="0 0 24 24" fill="currentColor" class="w-6 h-6"> 6609 <path fill-rule="evenodd" d="M4.5 5.653c0-1.426 1.529-2.33 2.779-1.643l11.54 6.348c1.295.712 1.295 2.573 0 3.285L7.28 19.991c-1.25.687-2.779-.217-2.779-1.643V5.653z" clip-rule="evenodd" /> 6610 </symbol> 6611 6612 <symbol id="icon-play-circle" viewBox="0 0 24 24" fill="currentColor" class="w-6 h-6"> 6613 <path fill-rule="evenodd" d="M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12Zm14.024-.983a1.125 1.125 0 0 1 0 1.966l-5.603 3.113A1.125 1.125 0 0 1 9 15.113V8.887c0-.857.921-1.4 1.671-.983l5.603 3.113Z" clip-rule="evenodd" /> 6614 </symbol> 6615 6616 <symbol id="icon-plus-small" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"> 6617 <path stroke-linecap="round" stroke-linejoin="round" d="M12 6v12m6-6H6" /> 6618 </symbol> 6619 6620 <symbol id="icon-speaker-wave-solid" viewBox="0 0 24 24" fill="currentColor" class="size-6"> 6621 <path d="M13.5 4.06c0-1.336-1.616-2.005-2.56-1.06l-4.5 4.5H4.508c-1.141 0-2.318.664-2.66 1.905A9.76 9.76 0 0 0 1.5 12c0 .898.121 1.768.35 2.595.341 1.24 1.518 1.905 2.659 1.905h1.93l4.5 4.5c.945.945 2.561.276 2.561-1.06V4.06ZM18.584 5.106a.75.75 0 0 1 1.06 0c3.808 3.807 3.808 9.98 0 13.788a.75.75 0 0 1-1.06-1.06 8.25 8.25 0 0 0 0-11.668.75.75 0 0 1 0-1.06Z" /> 6622 <path d="M15.932 7.757a.75.75 0 0 1 1.061 0 6 6 0 0 1 0 8.486.75.75 0 0 1-1.06-1.061 4.5 4.5 0 0 0 0-6.364.75.75 0 0 1 0-1.06Z" /> 6623 </symbol> 6624 6625 <symbol id="icon-speaker-x-solid" viewBox="0 0 24 24" fill="currentColor" class="size-6"> 6626 <path d="M13.5 4.06c0-1.336-1.616-2.005-2.56-1.06l-4.5 4.5H4.508c-1.141 0-2.318.664-2.66 1.905A9.76 9.76 0 0 0 1.5 12c0 .898.121 1.768.35 2.595.341 1.24 1.518 1.905 2.659 1.905h1.93l4.5 4.5c.945.945 2.561.276 2.561-1.06V4.06ZM17.78 9.22a.75.75 0 1 0-1.06 1.06L18.44 12l-1.72 1.72a.75.75 0 1 0 1.06 1.06l1.72-1.72 1.72 1.72a.75.75 0 1 0 1.06-1.06L20.56 12l1.72-1.72a.75.75 0 1 0-1.06-1.06l-1.72 1.72-1.72-1.72Z" /> 6627 </symbol> 6628 6629 6630 <symbol id="icon-search" viewBox="0 0 24 24" stroke-width="1.5" fill="currentColor" class="w-6 h-6"> 6631 <path fill-rule="evenodd" d="M10.5 3.75a6.75 6.75 0 100 13.5 6.75 6.75 0 000-13.5zM2.25 10.5a8.25 8.25 0 1114.59 5.28l4.69 4.69a.75.75 0 11-1.06 1.06l-4.69-4.69A8.25 8.25 0 012.25 10.5z" clip-rule="evenodd" /> 6632 </symbol> 6633 6634 <symbol id="icon-success" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-8 h-8 mr-1"> 6635 <path stroke-linecap="round" stroke-linejoin="round" d="M9 12.75L11.25 15 15 9.75M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /> 6636 </symbol> 6637 6638 <symbol id="icon-star" viewBox="0 0 24 24" fill="currentColor" class="w-6 h-6"> 6639 <path fill-rule="evenodd" d="M10.788 3.21c.448-1.077 1.976-1.077 2.424 0l2.082 5.007 5.404.433c1.164.093 1.636 1.545.749 2.305l-4.117 3.527 1.257 5.273c.271 1.136-.964 2.033-1.96 1.425L12 18.354 7.373 21.18c-.996.608-2.231-.29-1.96-1.425l1.257-5.273-4.117-3.527c-.887-.76-.415-2.212.749-2.305l5.404-.433 2.082-5.006z" clip-rule="evenodd" /> 6640 </symbol> 6641 6642 <symbol id="icon-tag-solid" viewBox="0 0 24 24" fill="currentColor" class="w-6 h-6"> 6643 <path fill-rule="evenodd" d="M5.25 2.25a3 3 0 00-3 3v4.318a3 3 0 00.879 2.121l9.58 9.581c.92.92 2.39 1.186 3.548.428a18.849 18.849 0 005.441-5.44c.758-1.16.492-2.629-.428-3.548l-9.58-9.581a3 3 0 00-2.122-.879H5.25zM6.375 7.5a1.125 1.125 0 100-2.25 1.125 1.125 0 000 2.25z" clip-rule="evenodd" /> 6644 </symbol> 6645 6646 <symbol id="icon-thumb" viewBox="0 0 24 24" class="w-6 h-6"> 6647 <path d="M7.493 18.75c-.425 0-.82-.236-.975-.632A7.48 7.48 0 016 15.375c0-1.75.599-3.358 1.602-4.634.151-.192.373-.309.6-.397.473-.183.89-.514 1.212-.924a9.042 9.042 0 012.861-2.4c.723-.384 1.35-.956 1.653-1.715a4.498 4.498 0 00.322-1.672V3a.75.75 0 01.75-.75 2.25 2.25 0 012.25 2.25c0 1.152-.26 2.243-.723 3.218-.266.558.107 1.282.725 1.282h3.126c1.026 0 1.945.694 2.054 1.715.045.422.068.85.068 1.285a11.95 11.95 0 01-2.649 7.521c-.388.482-.987.729-1.605.729H14.23c-.483 0-.964-.078-1.423-.23l-3.114-1.04a4.501 4.501 0 00-1.423-.23h-.777zM2.331 10.977a11.969 11.969 0 00-.831 4.398 12 12 0 00.52 3.507c.26.85 1.084 1.368 1.973 1.368H4.9c.445 0 .72-.498.523-.898a8.963 8.963 0 01-.924-3.977c0-1.708.476-3.305 1.302-4.666.245-.403-.028-.959-.5-.959H4.25c-.832 0-1.612.453-1.918 1.227z" /> 6648 </symbol> 6649 6650 <symbol id="icon-trash-outline" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6"> 6651 <path stroke-linecap="round" stroke-linejoin="round" d="M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0" /> 6652 </symbol> 6653 6654 <symbol id="icon-trash-solid" viewBox="0 0 24 24" fill="currentColor" class="w-6 h-6"> 6655 <path fill-rule="evenodd" d="M16.5 4.478v.227a48.816 48.816 0 013.878.512.75.75 0 11-.256 1.478l-.209-.035-1.005 13.07a3 3 0 01-2.991 2.77H8.084a3 3 0 01-2.991-2.77L4.087 6.66l-.209.035a.75.75 0 01-.256-1.478A48.567 48.567 0 017.5 4.705v-.227c0-1.564 1.213-2.9 2.816-2.951a52.662 52.662 0 013.369 0c1.603.051 2.815 1.387 2.815 2.951zm-6.136-1.452a51.196 51.196 0 013.273 0C14.39 3.05 15 3.684 15 4.478v.113a49.488 49.488 0 00-6 0v-.113c0-.794.609-1.428 1.364-1.452zm-.355 5.945a.75.75 0 10-1.5.058l.347 9a.75.75 0 101.499-.058l-.346-9zm5.48.058a.75.75 0 10-1.498-.058l-.347 9a.75.75 0 001.5.058l.345-9z" clip-rule="evenodd" /> 6656 </symbol> 6657 6658 <symbol id="icon-truck-solid" viewBox="0 0 24 24" fill="currentColor" class="w-6 h-6"> 6659 <path d="M3.375 4.5C2.339 4.5 1.5 5.34 1.5 6.375V13.5h12V6.375c0-1.036-.84-1.875-1.875-1.875h-8.25zM13.5 15h-12v2.625c0 1.035.84 1.875 1.875 1.875h.375a3 3 0 116 0h3a.75.75 0 00.75-.75V15z" /> 6660 <path d="M8.25 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0zM15.75 6.75a.75.75 0 00-.75.75v11.25c0 .087.015.17.042.248a3 3 0 015.958.464c.853-.175 1.522-.935 1.464-1.883a18.659 18.659 0 00-3.732-10.104 1.837 1.837 0 00-1.47-.725H15.75z" /> 6661 <path d="M19.5 19.5a1.5 1.5 0 10-3 0 1.5 1.5 0 003 0z" /> 6662 </symbol> 6663 6664</defs> 6665</svg><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="0" height="0"> 6666 <defs> 6667 <symbol viewBox="0 0 30 30" id="icon-facebook"> 6668 <path d="M24 4H6a2 2 0 00-2 2v18a2 2 0 002 2h10v-9h-3v-3h3v-1.611C16 9.339 17.486 8 20.021 8c1.214 0 1.856.09 2.16.131V11h-1.729C19.376 11 19 11.568 19 12.718V14h3.154l-.428 3H19v9h5a2 2 0 002-2V6a2 2 0 00-2-2z"/> 6669 </symbol> 6670 <symbol viewBox="0 0 30 30" id="icon-facebook-messenger"> 6671 <path d="M15 3C8.373 3 3 8.149 3 14.5c0 3.401 1.55 6.447 4 8.5
667153V28l4.836-2.418c1.01.264 2.067.418 3.164.418 6.627 0 12-5.149 12-11.5S21.627 3 15 3zm-1.139 8.357l2.951 2.956 5.272-2.956-5.945 6.444-2.883-3.098-5.41 3.027 6.015-6.373z"/> 6672 </symbol> 6673 <symbol viewBox="0 0 100 87" id="icon-icon-vimeo"> 6674 <path d="M100 20.4c-.5 9.7-7.3 23-20.4 40C66 78.1 54.5 87 45 87c-5.8 0-10.7-5.4-14.7-16.2l-8.1-29.6C19.2 30.4 16 25 12.6 25c-.8 0-3.4 1.6-7.9 4.7l-4.7-6 14.6-13c6.6-5.8 11.5-8.8 14.8-9C37.2.8 42 6.1 43.8 17.5c2 12.3 3.3 20 4 23 2.3 10.2 4.7 15.3 7.4 15.3 2.1 0 5.3-3.3 9.5-10a39.2 39.2 0 006.7-15c.6-5.8-1.7-8.7-6.7-8.7-2.4 0-4.9.6-7.4 1.7C62.2 7.7 71.6-.1 85.4.4c10.3.3 15.1 7 14.6 20"/> 6675 </symbol> 6676 <symbol viewBox="0 0 30 30" id="icon-instagram"> 6677 <path d="M9.998 3C6.139 3 3 6.142 3 10.002v10C3 23.861 6.142 27 10.002 27h10C23.861 27 27 23.858 27 19.998v-10C27 6.139 23.858 3 19.998 3h-10zM22 7a1 1 0 110 2 1 1 0 010-2zm-7 2c3.309 0 6 2.691 6 6s-2.691 6-6 6-6-2.691-6-6 2.691-6 6-6zm0 2a4 4 0 00-4 4 4 4 0 004 4 4 4 0 004-4 4 4 0 00-4-4z"/> 6678 </symbol> 6679 <symbol viewBox="0 0 30 30" id="icon-linkedin"> 6680 <path d="M24 4H6a2 2 0 00-2 2v18a2 2 0 002 2h18a2 2 0 002-2V6a2 2 0 00-2-2zM10.954 22h-2.95v-9.492h2.95V22zM9.449 11.151a1.72 1.72 0 110-3.44 1.72 1.72 0 010 3.44zM22.004 22h-2.948v-4.616c0-1.101-.02-2.517-1.533-2.517-1.535 0-1.771 1.199-1.771 2.437V22h-2.948v-9.492h2.83v1.297h.04c.394-.746 1.356-1.533 2.791-1.533 2.987 0 3.539 1.966 3.539 4.522V22z"/> 6681 </symbol> 6682 <symbol viewBox="0 0 30 30" id="icon-pinterest"> 6683 <path d="M15 3C8.373 3 3 8.373 3 15c0 5.084 3.163 9.426 7.627 11.174-.105-.949-.2-2.406.042-3.442.218-.936 1.407-5.965 1.407-5.965s-.359-.719-.359-1.781c0-1.669.967-2.914 2.171-2.914 1.024 0 1.518.769 1.518 1.69 0 1.03-.655 2.569-.994 3.995-.283 1.195.599 2.169 1.777 2.169 2.133 0 3.772-2.249 3.772-5.495 0-2.873-2.064-4.882-5.012-4.882-3.414 0-5.418 2.561-5.418 5.208 0 1.031.397 2.137.893 2.739a.359.359 0 01.083.344c-.091.379-.293 1.194-.333 1.361-.052.22-.174.266-.401.16-1.499-.698-2.436-2.889-2.436-4.649 0-3.785 2.75-7.262 7.929-7.262 4.163 0 7.398 2.966 7.398 6.931 0 4.136-2.608 7.464-6.227 7.464-1.216 0-2.359-.632-2.75-1.378 0 0-.602 2.291-.748 2.853-.271 1.042-1.002 2.349-1.492 3.146C12.57 26.812 13.763 27 15 27c6.627 0 12-5.373 12-12S21.627 3 15 3z"/> 6684 </symbol> 6685 <symbol viewBox="0 0 30 30" id="icon-snapchat"> 6686 <path d="M15.22 5c.894 0 3.921.241 5.347 3.336.476 1.033.358 2.842.263 4.296l-.004.064-.037.587c.023.023.205.192.617.208h.001c.313-.012.673-.108 1.067-.287a.818.818 0 01.332-.064c.134 0 .269.025.381.071l.007.003c.319.109.528.326.533.553.004.213-.164.534-.988.849-.085.033-.194.066-.311.102-.471.145-1.182.364-1.4.861-.119.272-.081.603.114.985l.005.011c.059.134 1.483 3.278 4.662 3.785.117.019.201.12.194.235a.407.407 0 01-.032.129c-.131.297-.722.718-2.79 1.027-.169.025-.235.238-.335.685a6.94 6.94 0 01-.125.491c-.044.145-.138.214-.296.214H22.4c-.109 0-.266-.019-.463-.056a6.39 6.39 0 00-1.242-.127c-.291 0-.593.025-.896.073-.621.1-1.147.461-1.704.842-.814.554-1.65 1.127-2.954 1.127a3.08 3.08 0 01-.168-.005 1.285 1.285 0 01-.109.005c-1.303 0-2.14-.573-2.949-1.126-.558-.382-1.085-.744-1.707-.843a5.746 5.746 0 00-.896-.073c-.525 0-.94.078-1.242.135a2.8 2.8 0 01-.463.065c-.126 0-.262-.026-.322-.223a7.307 7.307 0 01-.125-.494c-.093-.41-.158-.662-.335-.688-2.067-.309-2.659-.731-2.79-1.03a.401.401 0 01-.032-.128.229.229 0 01.194-.235c3.177-.507 4.602-3.653 4.662-3.786l.005-.011c.194-.382.233-.714.114-.985-.218-.498-.929-.716-1.4-.861a4.984 4.984 0 01-.311-.102c-.94-.36-1.017-.729-.981-.917.063-.321.505-.545.863-.545a.62.62 0 01.257.05c.423.192.804.289 1.132.289.454 0 .653-.185.676-.209l-.04-.65c-.094-1.454-.211-3.261.263-4.294 1.424-3.094 4.446-3.334 5.337-3.334L15.167 5h.053m0-2h-.053l-.392.007v-.002c-1.193 0-5.233.324-7.154 4.497-.484 1.052-.562 2.356-.526 3.652-1.151.023-2.498.778-2.77 2.157-.099.509-.229 2.23 2.227 3.172l.041.015c-.491.701-1.394 1.677-2.71 1.887a2.218 2.218 0 00-1.876 2.321c.018.286.082.552.191.805.513 1.17 1.756 1.702 3.177 2.012.307.994 1.181 1.633 2.233 1.633.305 0 .581-.052.825-.
6686098.271-.051.541-.102.88-.102.186 0 .381.016.582.048.174.028.568.297.884.514.916.627 2.161 1.48 4.085 1.48l.125-.002c.05.003.101.004.152.004 1.915 0 3.161-.849 4.071-1.469.351-.24.728-.498.905-.526a3.73 3.73 0 01.578-.047c.319 0 .569.035.869.092.33.062.595.091.835.091 1.062 0 1.926-.635 2.231-1.618 1.419-.308 2.661-.837 3.17-1.992.117-.271.181-.537.198-.808a2.228 2.228 0 00-1.869-2.338c-1.321-.211-2.226-1.187-2.716-1.887l.042-.016c2.004-.767 2.283-2.053 2.271-2.751-.022-1.069-.743-2.002-1.842-2.396a2.95 2.95 0 00-.975-.195c.033-1.272-.047-2.601-.526-3.643C20.461 3.325 16.415 3 15.22 3z"/> 6687 </symbol> 6688 <symbol viewBox="0 0 30 30" id="icon-tiktok"> 6689 <path d="M24 4H6a2 2 0 00-2 2v18a2 2 0 002 2h18a2 2 0 002-2V6a2 2 0 00-2-2zm-1.311 9.474a4.27 4.27 0 01-3.967-1.911v6.577a4.861 4.861 0 11-4.861-4.862c.102 0 .201.009.3.015v2.396c-.1-.012-.197-.03-.3-.03a2.481 2.481 0 000 4.962c1.371 0 2.581-1.08 2.581-2.45l.024-11.17h2.289a4.268 4.268 0 003.934 3.811v2.662z"/> 6690 </symbol> 6691 <symbol viewBox="0 0 30 30" id="icon-tumblr"> 6692 <path d="M24 4H6a2 2 0 00-2 2v18a2 2 0 002 2h18a2 2 0 002-2V6a2 2 0 00-2-2zm-4 17.714c0 .055-.022.11-.066.143-.055.055-1.629 1.143-4.505 1.143C11.979 23 12 18.87 12 18.429v-4.571H9.913a.198.198 0 01-.199-.199V11.76c0-.088.045-.154.121-.187.033-.011 3.307-1.453 3.307-4.373a.2.2 0 01.2-.2h1.889c.11 0 .198.088.198.199v4.373h3.23c.099 0 .199.088.199.199v1.889c0 .11-.099.198-.199.198h-3.23v4.571c0 .066-.105 1.456 1.371 1.456 1.213 0 2.88-.397 2.891-.397a.183.183 0 01.199-.011c.065.033.11.099.11.176v2.061z"/> 6693 </symbol> 6694 <symbol viewBox="0 0 30 30" id="icon-twitter"> 6695 <path d="M28 6.937c-.957.425-1.985.711-3.064.84a5.343 5.343 0 002.345-2.951 10.696 10.696 0 01-3.388 1.295 5.334 5.334 0 00-9.089 4.864A15.143 15.143 0 013.809 5.411a5.321 5.321 0 00-.721 2.683 5.33 5.33 0 002.372 4.439 5.323 5.323 0 01-2.416-.667v.067a5.335 5.335 0 004.279 5.23 5.336 5.336 0 01-2.409.092 5.34 5.34 0 004.983 3.705 10.699 10.699 0 01-6.625 2.284c-.43 0-.855-.025-1.273-.075a15.102 15.102 0 008.177 2.396c9.812 0 15.176-8.128 15.176-15.177 0-.231-.005-.461-.015-.69A10.855 10.855 0 0028 6.937z"/> 6696 </symbol> 6697 <symbol viewBox="0 0 30 30" id="icon-whatsapp"> 6698 <path d="M15 3C8.373 3 3 8.373 3 15c0 2.251.632 4.35 1.71 6.15L3.108 27l5.975-1.568A11.935 11.935 0 0015 27c6.627 0 12-5.373 12-12S21.627 3 15 3zm-4.107 6.402c.195 0 .395 0 .568.008.214.005.447.02.67.514.265.586.842 2.056.916 2.205.074.149.126.324.023.52-.098.2-.149.32-.293.497-.149.172-.312.386-.447.516-.149.15-.303.312-.13.61.171.296.769 1.27 1.652 2.056 1.135 1.014 2.092 1.326 2.39 1.475.298.149.47.126.643-.074.177-.195.743-.865.943-1.163.195-.298.394-.246.664-.148.274.098 1.735.818 2.033.967.298.149.494.223.569.344.077.125.077.72-.17 1.414-.247.693-1.46 1.363-2.004 1.41-.55.05-1.061.246-3.568-.74-3.024-1.191-4.932-4.289-5.08-4.489-.15-.195-1.211-1.61-1.211-3.07 0-1.465.768-2.183 1.037-2.48.274-.299.595-.372.795-.372z"/> 6699 </symbol> 6700 <symbol id="icon-youtube" viewBox="0 0 512 512"> 6701 <path d="M438.266 73.731c-15.016-15.02-33.108-22.53-54.262-22.53H128.002c-21.153 0-39.245 7.51-54.268 22.53C58.714 88.754 51.203 106.845 51.203 128v255.999c0 21.152 7.511 39.245 22.531 54.268C88.757 453.29 106.85 460.8 128.002 460.8h256c21.153 0 39.245-7.511 54.261-22.534 15.023-15.023 22.534-33.115 22.534-54.268v-256c0-21.154-7.512-39.248-22.531-54.267ZM293.07 110.396h17.868v72.53c0 4.269.083 6.58.261 6.936.18 2.845 1.606 4.266 4.27 4.266 3.556 0 7.293-2.753 11.2-8.264v-75.468h17.868v98.667h-17.874v-10.671c-7.288 7.998-14.13 12.002-20.53 12.002-5.686 0-9.51-2.398-11.468-7.2-1.068-3.197-1.595-8.088-1.595-14.667v-78.13Zm-67.467 32.002c0-10.31 1.867-18.046 5.6-23.2 4.8-6.754 11.731-10.134 20.797-10.134 8.714 0 15.649 3.382 20.8 10.134 3.735 5.155 5.602 12.89 5.602 23.2v34.667c0 10.668-1.867 18.402-5.603 23.2-5.15 6.759-12.085 10.136-20.798 10.136-9.067 0-15.998-3.38-20.797-10.136-3.734-5.155-5.6-12.889-5.6-23.2v-34.667ZM177.601 76.53l14.135 52.003 13.6-52.003h20l-24.001 78.933h.004v53.6h-19.733v-53.6c-1.958-9.777-6.046-23.822-12.268-42.131l-6.134-18.401-6.402-18.401h20.8ZM397.341 398.4c-1.778 7.64-5.556 14.128-11.339 19.467-5.773 5.331-12.481 8.444-20.128 9.336-24.353 2.663-60.98 3.998-109.867 3.998s-85.512-1.336-109.866-3.998c-7.643-.892-14.353-4.005-20.133-9.336-5.778-5.339-9.554-11.826-11.332-19.467-3.554-14.936-5.332-38.049-5.332-69.335 0-30.761 1.778-53.864 5.332-69.335 1.78-7.822 5.555-14.356 11.332-19.603 5.78-5.246 12.578-8.313 20.401-9.2 24.174-2.671 60.708-4.002 109.599-4.002 49.068 0 85.692 1.335 109.866 4.001 7.647.89 14.393 3.954 20.262 9.201 5.868 5.244 9.695 11.777 11.471 19.603 3.372 14.755 5.064 37.865 5.064 69.335 0 31.285-1.778 54.395-5.33 69.335Z"/><path d="M131.2 279.733H152v112.799h19.733V279.734h21.334v-18.668H131.2v18.668Zm97.602 89.6c-3.91 5.507-7.645 8.263-11.2 8.263-2.489 0-3.822-1.333-4-3.998-.178-.355-.268-2.666-.268-6.936V294.66h-17.6v77.333c0 6.757.535 11.557 1.602 14.396 1.6 4.98 5.334 7.466 11.2 7.466 6.577 0 13.333-3.998 20.266-11.999v10.67h17.864v-97.86h-17.864v74.667Zm69.07-76.003c-6.399 0-12.446 3.555-18.13 10.67v-42.934h-17.867v131.466h17.868v-9.6c5.862 7.286 11.913 10.93 18.13 10.93 7.29 0 12-3.733 14.128-11.2 1.246-3.733 1.866-10.222 1.866-19.466v-38.931c0-9.424-.627-16.002-1.866-19.735-2.13-7.467-6.838-11.2-14.128-11.2Zm-1.6 71.203c0 8.71-2.577 13.06-7.736 13.066-3.016 0-5.955-1.425-8.8-4.27v-59.734c2.845-2.837 5.783-4.262 8.8-4.262 5.16 0 7.735 4.439 7.735 13.329v41.871Zm66.39-.135c0 1.867-.045 3.33-.127 4.399-.087 1.067-.136 1.69-.136 1.866-1.064 4.619-3.733 6.93-8 6.93-6.044 0-9.068-4.533-9.068-13.598v-17.33H380.8v-20.272c0-10.308-1.864-17.95-5.6-22.93-4.795-6.755-11.731-10.137-20.8-10.137s-16.176 3.382-21.335 10.136c-3.555 4.801-5.332 12.45-5.332 22.931v34.402c0 10.49 1.867 18.137 5.6 22.938 5.159 6.753 12.357 10.135 21.605 10.135 9.422 0 16.53-3.554 21.335-10.669 2.132-3.203 3.471-6.757 4.002-10.666.352-2.49.53-6.313.53-11.468v-2.4h-18.136v5.734h-.005Zm-17.324-41.469c0-9.065 2.934-13.597 8.8-13.597s8.8 4.532 8.8 13.597V332h-17.6v-9.071ZM252 194.129c5.69 0 8.533-4.532 8.533-13.598V138.93c0-9.243-2.843-13.868-8.532-13.868s-8.533 4.626-8.533 13.868v41.6c0 9.064 2.844 13.598 8.533 13.598Z"/> 6702 </symbol> 6703 <symbol viewBox="0 0 30 30" id="icon-youtube-orig"> 6704 <path d="M7.414 3L9.19 9.412v3.076h1.538V9.412L12.525 3h-1.548l-.645 2.918a33.19 33.19 0 00-.35 1.818h-.046a27.26 27.26 0 00-.35-1.83L8.965 3h-1.55zm6.904 2.42c-.52 0-.941.102-1.261.31-.321.207-.556.539-.707.99-.15.454-.227 1.052-.227 1.798v1.005c0 .738.067 1.33.2 1.776.131.445.352.773.665.984.313.211.745.318 1.295.319.535 0 .962-.105 1.274-.313.312-.208.538-.533.677-.982.14-.45.21-1.043.21-1.782V8.518c0-.746-.072-1.342-.215-1.791-.143-.448-.368-.78-.678-.99-.31-.212-.72-.317-1.233-.317zm2.934.137v5.177c0 .641.11 1.113.328 1.414.22.301.558.452 1.018.452.663 0 1.16-.32 1.492-.961h.033l.137.847h1.22v-6.93h-1.558v5.505a.765.765 0 01-.277.318.688.688 0 01-.391.125.353.353 0 01-.34-.2c-.068-.131-.102-.35-.102-.66V5.558h-1.56zm-2.969.937c.218 0 .373.116.46.346.086.229.128.592.128 1.09v2.16c0 .513-.043.881-.129 1.107-.086.226-.24.34-.457.34-.218 0-.37-.
6704114-.453-.34-.084-.226-.125-.595-.125-1.107V7.93c0-.497.045-.86.13-1.09.087-.23.235-.346.446-.346zM6.5 13.9A2.5 2.5 0 004 16.4v8a2.5 2.5 0 002.5 2.5h17a2.5 2.5 0 002.5-2.5v-8a2.5 2.5 0 00-2.5-2.5h-17zm8.559 2.3h1.27v3.083h.009c.114-.223.276-.402.486-.539.21-.137.438-.205.68-.205.312 0 .555.083.732.248.177.165.308.434.387.803.079.37.12.882.12 1.537v.924c0 .872-.105 1.513-.315 1.924-.21.41-.54.617-.985.617-.248 0-.473-.058-.677-.172a1.11 1.11 0 01-.457-.469h-.03l-.133.553H15.06v-8.305zm-7.875.296h3.904v1.06H9.779v6.948H8.49v-6.947H7.184v-1.06zm13.933 2.047c.451 0 .8.081 1.041.246.241.166.413.424.512.773.098.35.146.835.146 1.452v1.004h-2.203v.296c0 .376.01.657.033.844.023.187.07.325.14.41.07.086.177.13.323.13.197 0 .333-.077.407-.23.073-.151.113-.407.119-.763l1.135.066c.006.05.01.122.01.211 0 .541-.148.945-.444 1.211-.296.268-.715.403-1.256.403-.649 0-1.103-.205-1.365-.612-.262-.407-.39-1.037-.39-1.89v-1.022c0-.878.135-1.519.405-1.924s.732-.605 1.387-.605zm-8.168.107h1.319v5.852h-.004v.002h-1.032l-.113-.717h-.03c-.28.542-.699.813-1.259.813-.389 0-.674-.126-.86-.381-.184-.254-.277-.654-.277-1.194v-4.373h1.32v4.297c0 .26.03.449.087.559.058.112.152.166.287.166a.576.576 0 00.328-.106.655.655 0 00.234-.267v-4.65zm8.14.782c-.14 0-.245.04-.312.123-.067.083-.111.218-.132.406a7.745 7.745 0 00-.034.853v.42h.963v-.42c0-.376-.012-.66-.037-.853-.025-.195-.07-.33-.137-.41-.067-.08-.17-.12-.31-.12zm-4.179.043a.506.506 0 00-.353.152.833.833 0 00-.229.39v3.323a.581.581 0 00.225.228c.092.05.192.078.3.078.14 0 .252-.05.334-.152.083-.102.142-.273.176-.515a7.38 7.38 0 00.053-1.002v-.754c0-.458-.014-.812-.043-1.06-.028-.249-.08-.426-.152-.53a.358.358 0 00-.31-.158z"/> 6705 </symbol> 6706 </defs> 6707</svg><div id="shopify-block-AZFd6aGFnS21FS1hVa__13768625480086291342" class="shopify-block shopify-app-block">
6707<script> 6708 window['ShopifyForms'] = { 6709 ...window['ShopifyForms'], 6710 currentPageType: "collection" 6711 }; 6712</script>
6712 6713 6714 6715</div><div id="shopify-block-AakNoTzR0N0NkN3Z2W__11532412952436166569" class="shopify-block shopify-app-block"> 6716 6717 6718 <!-- __LXV: 1791215992370;__LXR: https://loox.io;__LXC: 2FTak8OAiF; -->
6718<script>var loox_global_hash = '1791215992370'; 6719var loox_bundle_reviews_enabled = false;</script>
6719<style>.loox-reviews-default { max-width: 1200px; margin: 0 auto; }.loox-rating .loox-icon { color:#A02122; } 6720:root { --lxs-rating-icon-color: #A02122; }</style> 6721 6722 6723 6724 6725 6726 6727 6728</div>
6728<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
6728 6729</body> 6730</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.