1<!doctype html> 2 3<html class="no-js" lang="en"> 4 <head> 5 6
6<script src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" type="text/javascript" charset="UTF-8" data-domain-script="6ce3bed6-c59b-4534-8cbf-36e64e1d6509"></script>
6 7
7<script type="text/javascript">function OptanonWrapper() { }</script>
7 8 9 10 <!-- Google Tag Manager --> 11
11<script>
vendor: 368 bytes, lines 11-16
11 12 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 13 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 14 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 15 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 16 })(window,document,'script','dataLayer',"
16GTM-WMDKN99
vendor: 12 bytes, lines 16-17
16"); 17
17</script>
17 18 <!-- End Google Tag Manager --> 19 20 21 22
22<script type="text/javascript"> 23 document.addEventListener('click',function(e){ 24 if(e.target && e.target.id == 'onetrust-accept-btn-handler'){ 25 Bloom.AgeGate.trap = focusTrap.createFocusTrap('#bloom-age-gate-foreground'); 26 Bloom.AgeGate.trap.activate(); 27 } 28 }); 29 </script>
29 30 31 32 33 <meta charset="utf-8"> 34 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 35 <meta name="viewport" content="width=device-width, initial-scale=1.0, height=device-height, minimum-scale=1.0, maximum-scale=1.0"> 36 <meta name="theme-color" content=""> 37 38 <title> 39 Account – To Kalon Vineyard Company 40 </title><link rel="canonical" href="https://tokalonvineyardcompany.com/account/login"><link rel="shortcut icon" href="//tokalonvineyardcompany.com/cdn/shop/files/Web_PNG-To_Kalon_Vineyard_Co_Logo_-_Monogram_96x.png?v=1642805736" type="image/png"><meta property="og:type" content="website"> 41 <meta property="og:title" content="Account"><meta property="og:url" content="https://tokalonvineyardcompany.com/account/login"> 42<meta property="og:site_name" content="To Kalon Vineyard Company"><meta name="twitter:card" content="summary"><meta name="twitter:title" content="Account"> 43 <meta name="twitter:description" content="Account"> 44 <style> 45 @font-face { 46 font-family: "Libre Franklin"; 47 font-weight: 600; 48 font-style: normal; 49 font-display: fallback; 50 src: url("//tokalonvineyardcompany.com/cdn/fonts/libre_franklin/librefranklin_n6.c976b0b721ea92417572301ef17640150832a2b9.woff2") format("woff2"), 51 url("//tokalonvineyardcompany.com/cdn/fonts/libre_franklin/librefranklin_n6.bb41783c980fb0a0dad0f0403cbcc7159efe6030.woff") format("woff"); 52} 53 54 @font-face { 55 font-family: Alegreya; 56 font-weight: 400; 57 font-style: normal; 58 font-display: fallback; 59 src: url("//tokalonvineyardcompany.com/cdn/fonts/alegreya/alegreya_n4.9d59d35c9865f13cc7223c9847768350c0c7301a.woff2") format("woff2"), 60 url("//tokalonvineyardcompany.com/cdn/fonts/alegreya/alegreya_n4.a883043573688913d15d350b7a40349399b2ef99.woff") format("woff"); 61} 62 63 64 @font-face { 65 font-family: Alegreya; 66 font-weight: 700; 67 font-style: normal; 68 font-display: fallback; 69 src: url("//tokalonvineyardcompany.com/cdn/fonts/alegreya/alegreya_n7.94acea1149930a7b242e750715301e9002cdbb09.woff2") format("woff2"), 70 url("//tokalonvineyardcompany.com/cdn/fonts/alegreya/alegreya_n7.44924b4ad31cd43b056fd2b37a197352574886fd.woff") format("woff"); 71} 72 73 @font-face { 74 font-family: Alegreya; 75 font-weight: 400; 76 font-style: italic; 77 font-display: fallback; 78 src: url("//tokalonvineyardcompany.com/cdn/fonts/alegreya/alegreya_i4.8dee6f2ed2ce33b7dc66259131d71ed090011461.woff2") format("woff2"), 79 url("//tokalonvineyardcompany.com/cdn/fonts/alegreya/alegreya_i4.f1e64827a79062bc46c078ea2821c6711f0f09ad.woff") format("woff"); 80} 81 82 @font-face { 83 font-family: Alegreya; 84 font-weight: 700; 85 font-style: italic; 86 font-display: fallback; 87 src: url("//tokalonvineyardcompany.com/cdn/fonts/alegreya/alegreya_i7.5e65007906c5f78bc33208b7b54b20b3c445ca0e.woff2") format("woff2"), 88 url("//tokalonvineyardcompany.com/cdn/fonts/alegreya/alegreya_i7.4848fae5074f900a889cf3e9420385da30033d27.woff") format("woff"); 89} 90 91 92 :root { 93 --heading-font-family : "Libre Franklin"; 94 --heading-font-weight : 600; 95 --heading-font-style : normal; 96 97 --text-font-family : Alegreya; 98 --text-font-weight : 400; 99 --text-font-style : normal; 100 101 --base-text-font-size : 16px; 102 --default-text-font-size: 14px;--background : #ffffff; 103 --background-rgb : 255, 255, 255; 104 --light-background : #c6c5c4; 105 --light-background-rgb: 198, 197, 196; 106 --heading-color : #000000; 107 --text-color : #525252; 108 --text-color-rgb : 82, 82, 82; 109 --text-color-light : #525252; 110 --text-color-light-rgb: 82, 82, 82; 111 --link-color : #000000; 112 --link-color-rgb : 0, 0, 0; 113 --border-color : #e5e5e5; 114 --border-color-rgb : 229, 229, 229; 115 116 --button-background : #525252; 117 --button-background-rgb: 82, 82, 82; 118 --button-text-color : #ffffff; 119 120 --header-background : #525252; 121 --header-heading-color : #ffffff; 122 --header-light-text-color : #ffffff; 123 --header-border-color : #6c6c6c; 124 125 --footer-background : #000000; 126 --footer-text-color : #ffffff; 127 --footer-heading-color : #ffffff; 128 --footer-border-color : #262626; 129 130 --navigation-background : #525252; 131 --navigation-background-rgb : 82, 82, 82; 132 --navigation-text-color : #ffffff; 133 --navigation-text-color-light: rgba(255, 255, 255, 0.5); 134 --navigation-border-color : rgba(255, 255, 255, 0.25); 135 136 --newsletter-popup-background : #525252; 137 --newsletter-popup-text-color : #ffffff; 138 --newsletter-popup-text-color-rgb : 255, 255, 255; 139 140 --secondary-elements-background : #525252; 141 --secondary-elements-background-rgb : 82, 82, 82; 142 --secondary-elements-text-color : #ffffff; 143 --secondary-elements-text-color-light : rgba(255, 255, 255, 0.5); 144 --secondary-elements-border-color : rgba(255, 255, 255, 0.25); 145 146 --product-sale-price-color : #e22120; 147 --product-sale-price-color-rgb: 226, 33, 32; 148 149 /* Shopify related variables */ 150 --payment-terms-background-color: #ffffff; 151 152 /* Products */ 153 154 --horizontal-spacing-four-products-per-row: 100px; 155 --horizontal-spacing-two-products-per-row : 100px; 156 157 158 --vertical-spacing-four-products-per-row: 100px; 159 --vertical-spacing-two-products-per-row : 125px; 160 161 /* Animation */ 162 --drawer-transition-timing: cubic-bezier(0.645, 0.045, 0.355, 1); 163 --header-base-height: 80px; /* We set a default for browsers that do not support CSS variables */ 164 165 /* Cursors */ 166 --cursor-zoom-in-svg : url(//tokalonvineyardcompany.com/cdn/shop/t/4/assets/cursor-zoom-in.svg?v=76055925073701179721647047384); 167 --cursor-zoom-in-2x-svg : url(//tokalonvineyardcompany.com/cdn/shop/t/4/assets/cursor-zoom-in-2x.svg?v=71793136295944084391647047384); 168 } 169</style> 170
171<script> 172 // IE11 does not have support for CSS variables, so we have to polyfill them 173 if (!(((window || {}).CSS || {}).supports && window.CSS.supports('(--a: 0)'))) { 174 const script = document.createElement('script'); 175 script.type = 'text/javascript'; 176 script.src = 'https://cdn.jsdelivr.net/npm/css-vars-ponyfill@2'; 177 script.onload = function() { 178 cssVars({}); 179 }; 180 181 document.getElementsByTagName('head')[0].appendChild(script); 182 } 183</script>
183 184 185
185<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
185<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/61779837174/digital_wallets/dialog"> 186<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
186<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=1817182454"></script>
186 187<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
188<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=1817182454&shop_id=61779837174" crossorigin="anonymous"></script>
vendor: 1 bytes, line 188
188
189<script id="shopify-features" type="application/json">{"accessToken":"710d138c3beb7bca007242175cb517da","betas":["rich-media-storefront-analytics"],"domain":"tokalonvineyardcompany.com","predictiveSearch":true,"shopId":61779837174,"locale":"en"}</script>
vendor: 1 bytes, line 189
189
190<script>var Shopify = Shopify || {}; 191Shopify.shop = "tokalonvineyardcompany.myshopify.com"; 192Shopify.locale = "en"; 193Shopify.currency = {"active":"USD","rate":"1.0"}; 194Shopify.country = "US"; 195Shopify.theme = {"name":"shopify-tokalonvineyardcompany-theme\/main","id":129772126454,"schema_name":"Prestige","schema_version":"5.0.0","theme_store_id":null,"role":"main"}; 196Shopify.theme.handle = "null"; 197Shopify.theme.style = {"id":null,"handle":null}; 198Shopify.cdnHost = "tokalonvineyardcompany.com/cdn"; 199Shopify.routes = Shopify.routes || {}; 200Shopify.routes.root = "/"; 201Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 202Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 203Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 204Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 204
204
205<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 205
205
206<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 206
206
207<script> 208 window.ShopifyPay = window.ShopifyPay || {}; 209 window.ShopifyPay.apiHost = "shop.app\/pay"; 210 window.ShopifyPay.redirectState = null; 211</script>
vendor: 1 bytes, line 211
211
212<script> 213 window.Shopify = window.Shopify || {}; 214 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 215 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 216 window.Shopify.SignInWithShop.eligible = false; 217</script>
vendor: 1 bytes, line 217
217
218<script id="shop-js-analytics" type="application/json">{"pageType":"customers/login"}</script>
vendor: 1 bytes, line 218
218
219<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 219
219
220<script type="module"> 221 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 222 223 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 224 225</script>
vendor: 1 bytes, line 225
225
226<script> 227 window.Shopify = window.Shopify || {}; 228 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 229 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"]}; 230</script>
vendor: 1 bytes, line 230
230
231<script>(function() { 232 var isLoaded = false; 233 function asyncLoad() { 234 if (isLoaded) return; 235 isLoaded = true; 236 var urls = ["https:\/\/static.klaviyo.com\/onsite\/js\/klaviyo.js?company_id=RBQqnP\u0026shop=tokalonvineyardcompany.myshopify.com","https:\/\/static.klaviyo.com\/onsite\/js\/klaviyo.js?company_id=RBQqnP\u0026shop=tokalonvineyardcompany.myshopify.com"]; 237 for (var i = 0; i < urls.length; i++) { 238 var s = document.createElement('script'); 239 s.type = 'text/javascript'; 240 s.async = true; 241 s.src = urls[i]; 242 var x = document.getElementsByTagName('script')[0]; 243 x.parentNode.insertBefore(s, x); 244 } 245 }; 246 if(window.attachEvent) { 247 window.attachEvent('onload', asyncLoad); 248 } else { 249 window.addEventListener('load', asyncLoad, false); 250 } 251})();</script>
vendor: 1 bytes, line 251
251
252<script id="__st">var __st={"a":61779837174,"offset":-25200,"reqid":"f0cef07c-d36b-4ba2-942d-11a71920c55e-1791147583","pageurl":"tokalonvineyardcompany.com\/account\/login?return_url=%2Faccount","u":"2dfa3302a07e"};</script>
vendor: 1 bytes, line 252
252
253<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 253
253
254<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 254
254
255<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//tokalonvineyardcompany.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 255
255
256<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 = "//tokalonvineyardcompany.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>
256<script crossorigin="anonymous" defer="defer" src="//tokalonvineyardcompany.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 256
256
257<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 257
257
258<script> 259 window.Shopify = window.Shopify || {}; 260 window.Shopify.MCP = window.Shopify.MCP || {}; 261 window.Shopify.MCP.enabled = true; 262 window.Shopify.MCP.shop = "tokalonvineyardcompany.myshopify.com"; 263 window.Shopify.MCP.mcpEndpoint = "https:\/\/tokalonvineyardcompany.com\/api\/mcp"; 264 window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n - What is your return policy?\n - What is your shipping policy?\n - What is your phone number?\n - What are your hours of operation?\"\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."}},"required":["query"]}}]; 265</script>
vendor: 1 bytes, line 265
265
266<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("\/\/tokalonvineyardcompany.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 267</script>
vendor: 1 bytes, line 267
267
268<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://tokalonvineyardcompany.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 269</script>
vendor: 1 bytes, line 269
269
270<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 271 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); 272</script>
vendor: 1 bytes, line 272
272
273<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})}})); 274</script>
274 275<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://tokalonvineyardcompany.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 276<style id="shopify-accelerated-checkout-cart"> 277 #shopify-buyer-consent { 278 margin-top: 1em; 279 display: inline-block; 280 width: 100%; 281} 282 283#shopify-buyer-consent.hidden { 284 display: none; 285} 286 287#shopify-subscription-policy-button { 288 background: none; 289 border: none; 290 padding: 0; 291 text-decoration: underline; 292 font-size: inherit; 293 cursor: pointer; 294} 295 296#shopify-subscription-policy-button::before { 297 box-shadow: none; 298} 299 300 </style> 301
302<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
302 303 304 <link rel="stylesheet" href="//tokalonvineyardcompany.com/cdn/shop/t/4/assets/theme.css?v=164150090310563651481770927191"> 305 <link rel="stylesheet" href="//tokalonvineyardcompany.com/cdn/shop/t/4/assets/bloom_custom.css?v=144179787168686865561679588355"> 306 <link rel="stylesheet" href="//tokalonvineyardcompany.com/cdn/shop/t/4/assets/custom_fonts.css?v=23650043714985659201790869642"> 307 <link rel="stylesheet" href="https://use.typekit.net/ryt1sio.css"> 308 309
309<script>// This allows to expose several variables to the global scope, to be used in scripts 310 window.theme = { 311 pageType: "customers\/login", 312 moneyFormat: "${{amount}}", 313 moneyWithCurrencyFormat: "${{amount}} USD", 314 productImageSize: "natural", 315 searchMode: "product", 316 showPageTransition: true, 317 showElementStaggering: true, 318 showImageZooming: false 319 }; 320 321 window.routes = { 322 rootUrl: "\/", 323 rootUrlWithoutSlash: '', 324 cartUrl: "\/cart", 325 cartAddUrl: "\/cart\/add", 326 cartChangeUrl: "\/cart\/change", 327 searchUrl: "\/search", 328 productRecommendationsUrl: "\/recommendations\/products" 329 }; 330 331 window.languages = { 332 cartAddNote: "Add Order Note", 333 cartEditNote: "Edit Order Note", 334 productImageLoadingError: "This image could not be loaded. Please try to reload the page.", 335 productFormAddToCart: "Add to cart", 336 productFormUnavailable: "Unavailable", 337 productFormSoldOut: "Sold Out", 338 shippingEstimatorOneResult: "1 option available:", 339 shippingEstimatorMoreResults: "{{count}} options available:", 340 shippingEstimatorNoResults: "No shipping could be found" 341 }; 342 343 window.lazySizesConfig = { 344 loadHidden: false, 345 hFac: 0.5, 346 expFactor: 2, 347 ricTimeout: 150, 348 lazyClass: 'Image--lazyLoad', 349 loadingClass: 'Image--lazyLoading', 350 loadedClass: 'Image--lazyLoaded' 351 }; 352 353 document.documentElement.className = document.documentElement.className.replace('no-js', 'js'); 354 document.documentElement.style.setProperty('--window-height', window.innerHeight + 'px'); 355 356 // We do a quick detection of some features (we could use Modernizr but for so little...) 357 (function() { 358 document.documentElement.className += ((window.CSS && window.CSS.supports('(position: sticky) or (position: -webkit-sticky)')) ? ' supports-sticky' : ' no-supports-sticky'); 359 document.documentElement.className += (window.matchMedia('(-moz-touch-enabled: 1), (hover: none)')).matches ? ' no-supports-hover' : ' supports-hover'; 360 }()); 361 </script>
361 362 363
363<script src="//tokalonvineyardcompany.com/cdn/shop/t/4/assets/lazysizes.min.js?v=174358363404432586981640718601" async></script>
363<script src="https://polyfill-fastly.net/v3/polyfill.min.js?unknown=polyfill&features=fetch,Element.prototype.closest,Element.prototype.remove,Element.prototype.classList,Array.prototype.includes,Array.prototype.fill,Object.assign,CustomEvent,IntersectionObserver,IntersectionObserverEntry,URL" defer></script>
363 364
364<script src="//tokalonvineyardcompany.com/cdn/shop/t/4/assets/libs.min.js?v=26178543184394469741640718606" defer></script>
364 365
365<script src="//tokalonvineyardcompany.com/cdn/shop/t/4/assets/theme.min.js?v=91404899630964279711640718605" defer></script>
365 366
366<script src="//tokalonvineyardcompany.com/cdn/shop/t/4/assets/custom.js?v=64136569406373222141779135903" defer></script>
366 367 368
368<script> 369 (function () { 370 window.onpageshow = function() { 371 if (window.theme.showPageTransition) { 372 var pageTransition = document.querySelector('.PageTransition'); 373 374 if (pageTransition) { 375 pageTransition.style.visibility = 'visible'; 376 pageTransition.style.opacity = '0'; 377 } 378 } 379 380 // When the page is loaded from the cache, we have to reload the cart content 381 document.documentElement.dispatchEvent(new CustomEvent('cart:refresh', { 382 bubbles: true 383 })); 384 }; 385 })(); 386 </script>
386 387 388 389 390 391
391<script type="application/ld+json"> 392 { 393 "@context": "http://schema.org", 394 "@type": "BreadcrumbList", 395 "itemListElement": [{ 396 "@type": "ListItem", 397 "position": 1, 398 "name": "Translation missing: en.general.breadcrumb.home", 399 "item": "https://tokalonvineyardcompany.com" 400 }] 401 } 402 </script>
402 403 404 405 406 407
407<script> 408 /* Helper */ 409 window.setCookie = function(cname, cvalue, exdays) { 410 const d = new Date(); 411 d.setTime( d.getTime() + ( exdays*24*60*60*1000 ) ); 412 let expires = "expires="+ d.toUTCString(); 413 document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; 414 } 415 window.getCookie = function(cname) { 416 let name = cname + "="; 417 let decodedCookie = decodeURIComponent(document.cookie); 418 let ca = decodedCookie.split(';'); 419 for(let i = 0; i <ca.length; i++) { 420 let c = ca[i]; 421 while (c.charAt(0) == ' ') { 422 c = c.substring(1); 423 } 424 if (c.indexOf(name) == 0) { 425 return c.substring(name.length, c.length); 426 } 427 } 428 return ""; 429 } 430 </script>
430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 <!-- Get data for product specs ========================= --> 472
472<script> 473 window.Bloom = window.Bloom || {}; 474 Bloom.data = Bloom.data || {}; 475 Bloom.data.products = {}; 476 477 </script>
477 478 479 480 481<link href="https://bloomapp-production.herokuapp.com/assets/uikit/css/uikit.min.css" rel="stylesheet" type="text/css" media="all" /> 482
483<script src="https://cdnjs.cloudflare.com/ajax/libs/uikit/3.0.0-rc.20/js/uikit.min.js"></script>
vendor: 1 bytes, line 483
483
484<script src="https://cdnjs.cloudflare.com/ajax/libs/uikit/3.0.0-rc.20/js/uikit-icons.min.js"></script>
484 485
486<script src='https://js.stripe.com/v3/'></script>
486 487
488<script src="//tokalonvineyardcompany.com/cdn/shop/t/4/assets/bloom-storefront-dependencies.js?v=108351290287992699821702427181"></script>
488 489 490 491 492 493
493<script defer src="//tokalonvineyardcompany.com/cdn/shop/t/4/assets/bloom-storefront-bundle.js?v=93211184122881702491708546605"></script>
493 494 495 <link rel="preload" href="//tokalonvineyardcompany.com/cdn/shop/t/4/assets/bloom-storefront-bundle.css?v=29875504305437651671648606751" as="style" onload="this.onload=null;this.rel='stylesheet'" /> 496 <noscript><link rel="stylesheet" href="//tokalonvineyardcompany.com/cdn/shop/t/4/assets/bloom-storefront-bundle.css?v=29875504305437651671648606751"></noscript> 497 498 499 500 501
502<script> 503/** 504 * String.prototype.padStart() polyfill 505 */ 506String.prototype.padStart||(String.prototype.padStart=function(t,i){return t>>=0,i=String(void 0!==i?i:" "),this.length>t?String(this):((t-=this.length)>i.length&&(i+=i.repeat(t/i.length)),i.slice(0,t)+String(this))}); 507 508/* Object.assign polyfill */ 509"function"!=typeof Object.assign&&Object.defineProperty(Object,"assign",{value:function(e,t){"use strict";if(null==e)throw new TypeError("Cannot convert undefined or null to object");for(var n=Object(e),r=1;r<arguments.length;r++){var o=arguments[r];if(null!=o)for(var c in o)Object.prototype.hasOwnProperty.call(o,c)&&(n[c]=o[c])}return n},writable:!0,configurable:!0}); 510 511/* Promise polyfill */ 512!function(e){("object"!=typeof exports||"undefined"==typeof module)&&"function"==typeof define&&define.amd?define(e):e()}(function(){"use strict";function e(n){var t=this.constructor;return this.then(function(e){return t.resolve(n()).then(function(){return e})},function(e){return t.resolve(n()).then(function(){return t.reject(e)})})}var n=setTimeout;function a(e){return e&&"undefined"!=typeof e.length}function o(){}function i(e){if(!(this instanceof i))throw new TypeError("Promises must be constructed via new");if("function"!=typeof e)throw new TypeError("not a function");this._state=0,this._handled=!1,this._value=undefined,this._deferreds=[],s(e,this)}function r(o,r){for(;3===o._state;)o=o._value;0!==o._state?(o._handled=!0,i._immediateFn(function(){var e=1===o._state?r.onFulfilled:r.onRejected;if(null!==e){var n;try{n=e(o._value)}catch(t){return void u(r.promise,t)}f(r.promise,n)}else(1===o._state?f:u)(r.promise,o._value)})):o._deferreds.push(r)}function f(e,n){try{if(n===e)throw new TypeError("A promise cannot be resolved with itself.");if(n&&("object"==typeof n||"function"==typeof n)){var t=n.then;if(n instanceof i)return e._state=3,e._value=n,void c(e);if("function"==typeof t)return void s(function o(e,n){return function(){e.apply(n,arguments)}}(t,n),e)}e._state=1,e._value=n,c(e)}catch(r){u(e,r)}}function u(e,n){e._state=2,e._value=n,c(e)}function c(e){2===e._state&&0===e._deferreds.length&&i._immediateFn(function(){e._handled||i._unhandledRejectionFn(e._value)});for(var n=0,t=e._deferreds.length;n<t;n++)r(e,e._deferreds[n]);e._deferreds=null}function l(e,n,t){this.onFulfilled="function"==typeof e?e:null,this.onRejected="function"==typeof n?n:null,this.promise=t}function s(e,n){var t=!1;try{e(function(e){t||(t=!0,f(n,e))},function(e){t||(t=!0,u(n,e))})}catch(o){if(t)return;t=!0,u(n,o)}}i.prototype["catch"]=function(e){return this.then(null,e)},i.prototype.then=function(e,n){var t=new this.constructor(o);return r(this,new l(e,n,t)),t},i.prototype["finally"]=e,i.all=function(n){return new i(function(r,i){if(!a(n))return i(new TypeError("Promise.all accepts an array"));var f=Array.prototype.slice.call(n);if(0===f.length)return r([]);var u=f.length;function c(n,e){try{if(e&&("object"==typeof e||"function"==typeof e)){var t=e.then;if("function"==typeof t)return void t.call(e,function(e){c(n,e)},i)}f[n]=e,0==--u&&r(f)}catch(o){i(o)}}for(var e=0;e<f.length;e++)c(e,f[e])})},i.resolve=function(n){return n&&"object"==typeof n&&n.constructor===i?n:new i(function(e){e(n)})}
512,i.reject=function(t){return new i(function(e,n){n(t)})},i.race=function(r){return new i(function(e,n){if(!a(r))return n(new TypeError("Promise.race accepts an array"));for(var t=0,o=r.length;t<o;t++)i.resolve(r[t]).then(e,n)})},i._immediateFn="function"==typeof setImmediate?function(e){setImmediate(e)}:function(e){n(e,0)},i._unhandledRejectionFn=function(e){void 0!==console&&console&&console.warn("Possible Unhandled Promise Rejection:",e)};var t=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw Error("unable to locate global object")}();"function"!=typeof t.Promise?t.Promise=i:t.Promise.prototype["finally"]||(t.Promise.prototype["finally"]=e)}); 513 514/* https://github.com/madmurphy/cookies.js (GPL3) */ 515!function(){function e(e,o,t,n,r,s,i){var c="";if(t)switch(t.constructor){case Number:c=t===1/0?"; expires=Fri, 31 Dec 9999 23:59:59 GMT":"; max-age="+t;break;case String:c="; expires="+t;break;case Date:c="; expires="+t.toUTCString()}return encodeURIComponent(e)+"="+encodeURIComponent(o)+c+(r?"; domain="+r:"")+(n?"; path="+n:"")+(s?"; secure":"")+(i&&"no_restriction"!==i.toString().toLowerCase()?"lax"===i.toString().toLowerCase()||1===Math.ceil(i)||!0===i?"; samesite=lax":"none"===i.toString().toLowerCase()||i<0?"; samesite=none":"; samesite=strict":"")}var o=/[\-\.\+\*]/g,t=/^(?:expires|max\-age|path|domain|secure|samesite|httponly)$/i;window.docCookies={getItem:function(e){return e&&decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*"+encodeURIComponent(e).replace(o,"\\$&")+"\\s*\\=\\s*([^;]*).*$)|^.*$"),"$1"))||null},setItem:function(o,n,r,s,i,c,a){return!(!o||t.test(o))&&(document.cookie=e(o,n,r,s,i,c,a),!0)},removeItem:function(o,t,n,r,s){return!!this.hasItem(o)&&(document.cookie=e(o,"","Thu, 01 Jan 1970 00:00:00 GMT",t,n,r,s),!0)},hasItem:function(e){return!(!e||t.test(e))&&new RegExp("(?:^|;\\s*)"+encodeURIComponent(e).replace(o,"\\$&")+"\\s*\\=").test(document.cookie)},keys:function(){for(var e=document.cookie.replace(/((?:^|\s*;)[^\=]+)(?=;|$)|^\s*|\s*(?:\=[^;]*)?(?:\1|$)/g,"").split(/\s*(?:\=[^;]*)?;\s*/),o=e.length,t=0;t<o;t++)e[t]=decodeURIComponent(e[t]);return e},clear:function(e,o,t,n){for(var r=this.keys(),s=r.length,i=0;i<s;i++)this.removeItem(r[i],e,o,t,n)}}}(),"undefined"!=typeof module&&void 0!==module.exports&&(module.exports=docCookies); 516 517/* https://github.com/lifaon74/url-polyfill/blob/master/url-polyfill.min.js */ 518(function(t){var e=function(){try{return!!Symbol.iterator}catch(e){return false}};var r=e();var n=function(t){var e={next:function(){var e=t.shift();return{done:e===void 0,value:e}}};if(r){e[Symbol.iterator]=function(){return e}}return e};var i=function(e){return encodeURIComponent(e).replace(/%20/g,"+")};var o=function(e){return decodeURIComponent(String(e).replace(/\+/g," "))};var a=function(){var a=function(e){Object.defineProperty(this,"_entries",{writable:true,value:{}});var t=typeof e;if(t==="undefined"){}else if(t==="string"){if(e!==""){this._fromString(e)}}else if(e instanceof a){var r=this;e.forEach(function(e,t){r.append(t,e)})}else if(e!==null&&t==="object"){if(Object.prototype.toString.call(e)==="[object Array]"){for(var n=0;n<e.length;n++){var i=e[n];if(Object.prototype.toString.call(i)==="[object Array]"||i.length!==2){this.append(i[0],i[1])}else{throw new TypeError("Expected [string, any] as entry at index "+n+" of URLSearchParams's input")}}}else{for(var o in e){if(e.hasOwnProperty(o)){this.append(o,e[o])}}}}else{throw new TypeError("Unsupported input's type for URLSearchParams")}};var e=a.prototype;e.append=function(e,t){if(e in this._entries){this._entries[e].push(String(t))}else{this._entries[e]=[String(t)]}};e.delete=function(e){delete this._entries[e]};e.get=function(e){return e in this._entries?this._entries[e][0]:null};e.getAll=function(e){return e in this._entries?this._entries[e].slice(0):[]};e.has=function(e){return e in this._entries};e.set=function(e,t){this._entries[e]=[String(t)]};e.forEach=function(e,t){var r;for(var n in this._entries){if(this._entries.hasOwnProperty(n)){r=this._entries[n];for(var i=0;i<r.length;i++){e.call(t,r[i],n,this)}}}};e.keys=function(){var r=[];this.forEach(function(e,t){r.push(t)});return n(r)};e.values=function(){var t=[];this.forEach(function(e){t.push(e)});return n(t)};e.entries=function(){var r=[];this.forEach(function(e,t){r.push([t,e])});return n(r)};if(r){e[Symbol.iterator]=e.entries}e.toString=function(){var r=[];this.forEach(function(e,t){r.push(i(t)+"="+i(e))});return r.join("&")};t.URLSearchParams=a};var s=function(){try{var e=t.URLSearchParams;return new e("?a=1").toString()==="a=1"&&typeof e.prototype.set==="function"&&typeof e.prototype.entries==="function"}catch(e){return false}};if(!s()){a()}var f=t.URLSearchParams.prototype;if(typeof f.sort!=="function"){f.sort=function(){var r=this;var n=[];this.forEach(function(e,t){n.push([t,e]);if(!r._entries){r.delete(t)}});n.sort(function(e,t){if(e[0]<t[0]){return-1}else if(e[0]>t[0]){return+1}else{return 0}});if(r._entries){r._entries={}}for(var e=0;e<n.length;e++){this.append(n[e][0],n[e][1])}}}if(typeof f._fromString!=="function"){Object.defineProperty(f,"_fromString",{enumerable:false,configurable:false,writable:false,value:function(e){if(this._entries){this._entries={}}else{var r=[];this.forEach(function(e,t){r.push(t)});for(var t=0;t<r.length;t++){this.delete(r[t])}}e=e.replace(/^\?/,"");var n=e.split("&");var i;for(var t=0;t<n.length;t++){i=n[t].split("=");this.append(o(i[0]),i.length>1?o(i[1]):"")}}})}})(typeof global!=="undefined"?global:typeof window!=="undefined"?window:typeof self!=="undefined"?self:this);(function(u){var e=function(){try{var e=new u.URL("b","http://a");e.pathname="c d";return e.href==="http://a/c%20d"&&e.searchParams}catch(e){return false}};var t=function(){var t=u.URL;var e=function(e,t){if(typeof e!=="string")e=String(e);if(t&&typeof t!=="string")t=String(t);var r=document,n;if(t&&(u.location===void 0||t!==u.location.href)){t=t.toLowerCase();r=document.implementation.createHTMLDocument("");n=r.createElement("base");n.href=t;r.head.appendChild(n);try{if(n.href.indexOf(t)!==0)throw new Error(n.href)}catch(e){throw new Error("URL unable to set base "+t+" due to "+e)}}var i=r.createElement("a");i.href=e;if(n){r.body.appendChild(i);i.href=i.href}var o=r.createElement("input");o.type="url";o.value=e;if(i.protocol===":"||!/:/.test(i.href)||!o.checkValidity()&&!t){throw new TypeError("Invalid URL")}Object.defineProperty(this,"_anchorElement",{value:i});var a=new u.URLSearchParams(this.search);var s=true;var f=true;var c=this;["append","delete","set"].forEach(function(e){var t=a[e];a[e]=function(){t.apply(a,arguments);if(s){f=false;c.search=a.toString();f=true}}});Object.defineProperty(this,"searchParams",{value:a,enumerable:true});var h=void 0;Object.defineProperty(this,"_updateSearchParams",{enumerable:false,configurable:false,writable:false,value:function(){if(this.search!==h){h=this.search;if(f){s=false;this.searchParams._fromString(this.search);s=true}}}})};var r=e.prototype;var n=function(t){Object.defineProperty(r,t,{get:function(){return this._anchorElement[t]},set:function(e){this._anchorElement[t]=e},enumerable:true})};["hash","host","hostname","port","protocol"].forEach(function(e){n(e)});Object.defineProperty(r,"search",{get:function(){return this._anchorElement["search"]}
518,set:function(e){this._anchorElement["search"]=e;this._updateSearchParams()},enumerable:true});Object.defineProperties(r,{toString:{get:function(){var e=this;return function(){return e.href}}},href:{get:function(){return this._anchorElement.href.replace(/\?$/,"")},set:function(e){this._anchorElement.href=e;this._updateSearchParams()},enumerable:true},pathname:{get:function(){return this._anchorElement.pathname.replace(/(^\/?)/,"/")},set:function(e){this._anchorElement.pathname=e},enumerable:true},origin:{get:function(){var e={"http:":80,"https:":443,"ftp:":21}[this._anchorElement.protocol];var t=this._anchorElement.port!=e&&this._anchorElement.port!=="";return this._anchorElement.protocol+"//"+this._anchorElement.hostname+(t?":"+this._anchorElement.port:"")},enumerable:true},password:{get:function(){return""},set:function(e){},enumerable:true},username:{get:function(){return""},set:function(e){},enumerable:true}});e.createObjectURL=function(e){return t.createObjectURL.apply(t,arguments)};e.revokeObjectURL=function(e){return t.revokeObjectURL.apply(t,arguments)};u.URL=e};if(!e()){t()}if(u.location!==void 0&&!("origin"in u.location)){var r=function(){return u.location.protocol+"//"+u.location.hostname+(u.location.port?":"+u.location.port:"")};try{Object.defineProperty(u.location,"origin",{get:r,enumerable:true})}catch(e){setInterval(function(){u.location.origin=r()},100)}}})(typeof global!=="undefined"?global:typeof window!=="undefined"?window:typeof self!=="undefined"?self:this); 519 520/** 521 * Minified by jsDelivr using Terser v5.3.5. 522 * Original file: /npm/[email protected]/index.js 523 * 524 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files 525 */ 526/** 527 * 528 * 529 * @author Jerry Bendy <[email protected]> 530 * @licence MIT 531 * 532 */ 533!function(t){"use strict";var r,n=function(){try{if(t.URLSearchParams&&"bar"===new t.URLSearchParams("foo=bar").get("foo"))return t.URLSearchParams}catch(t){}return null}(),e=n&&"a=1"===new n({a:1}).toString(),o=n&&"+"===new n("s=%2B").get("s"),i=!n||((r=new n).append("s"," &"),"s=+%26"===r.toString()),a=f.prototype,c=!(!t.Symbol||!t.Symbol.iterator);if(!(n&&e&&o&&i)){var s;a.append=function(t,r){_(this.__URLSearchParams__,t,r)},a.delete=function(t){delete this.__URLSearchParams__[t]},a.get=function(t){var r=this.__URLSearchParams__;return this.has(t)?r[t][0]:null},a.getAll=function(t){var r=this.__URLSearchParams__;return this.has(t)?r[t].slice(0):[]},a.has=function(t){return y(this.__URLSearchParams__,t)},a.set=function(t,r){this.__URLSearchParams__[t]=[""+r]},a.toString=function(){var t,r,n,e,o=this.__URLSearchParams__,i=[];for(r in o)for(n=h(r),t=0,e=o[r];t<e.length;t++)i.push(n+"="+h(e[t]));return i.join("&")},!!o&&n&&!e&&t.Proxy?(s=new Proxy(n,{construct:function(t,r){return new t(new f(r[0]).toString())}})).toString=Function.prototype.toString.bind(f):s=f,Object.defineProperty(t,"URLSearchParams",{value:s});var u=t.URLSearchParams.prototype;u.polyfill=!0,u.forEach=u.forEach||function(t,r){var n=S(this.toString());Object.getOwnPropertyNames(n).forEach((function(e){n[e].forEach((function(n){t.call(r,n,e,this)}),this)}),this)},u.sort=u.sort||function(){var t,r,n,e=S(this.toString()),o=[];for(t in e)o.push(t);for(o.sort(),r=0;r<o.length;r++)this.delete(o[r]);for(r=0;r<o.length;r++){var i=o[r],a=e[i];for(n=0;n<a.length;n++)this.append(i,a[n])}},u.keys=u.keys||function(){var t=[];return this.forEach((function(r,n){t.push(n)})),p(t)},u.values=u.values||function(){var t=[];return this.forEach((function(r){t.push(r)})),p(t)},u.entries=u.entries||function(){var t=[];return this.forEach((function(r,n){t.push([n,r])})),p(t)},c&&(u[t.Symbol.iterator]=u[t.Symbol.iterator]||u.entries)}function f(t){((t=t||"")instanceof URLSearchParams||t instanceof f)&&(t=t.toString()),this.__URLSearchParams__=S(t)}function h(t){var r={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'\(\)~]|%20|%00/g,(function(t){return r[t]}))}function l(t){return t.replace(/[ +]/g,"%20").replace(/(%[a-f0-9]{2})+/gi,(function(t){return decodeURIComponent(t)}))}function p(r){var n={next:function(){var t=r.shift();return{done:void 0===t,value:t}}};return c&&(n[t.Symbol.iterator]=function(){return n}),n}function S(t){var r={};if("object"==typeof t)if(g(t))for(var n=0;n<t.length;n++){var e=t[n];if(!g(e)||2!==e.length)throw new TypeError("Failed to construct 'URLSearchParams': Sequence initializer must only contain pair elements");_(r,e[0],e[1])}else for(var o in t)t.hasOwnProperty(o)&&_(r,o,t[o]);
533else{0===t.indexOf("?")&&(t=t.slice(1));for(var i=t.split("&"),a=0;a<i.length;a++){var c=i[a],s=c.indexOf("=");-1<s?_(r,l(c.slice(0,s)),l(c.slice(s+1))):c&&_(r,l(c),"")}}return r}function _(t,r,n){var e="string"==typeof n?n:null!=n&&"function"==typeof n.toString?n.toString():JSON.stringify(n);y(t,r)?t[r].push(e):t[r]=[e]}function g(t){return!!t&&"[object Array]"===Object.prototype.toString.call(t)}function y(t,r){return Object.prototype.hasOwnProperty.call(t,r)}}("undefined"!=typeof global?global:"undefined"!=typeof window?window:this); 534</script>
534 535 536 537
538<script type="text/javascript"> 539window.Bloom = window.Bloom || {}; 540window.Bloom.storefront = window.Bloom.storefront || {}; 541window.Bloom.storefront.utilities = window.Bloom.storefront.utilities || {}; 542window.Bloom.storefront.utilities._ = window.Bloom.storefront.utilities._ || {}; 543 544// Adapted from https://matthiashager.com/converting-snake-case-to-camel-case-object-keys-with-javascript 545Bloom.storefront.utilities._.isArray = function(a) { 546 return Array.isArray(a); 547}; 548 549Bloom.storefront.utilities._.isObject = function(o) { 550 return o === Object(o) && !Bloom.storefront.utilities._.isArray(o) && typeof o !== 'function'; 551}; 552 553Bloom.storefront.utilities._.toCamel = function(s) { 554 return s.replace(/([-_][a-z])/ig, function($1) { 555 return $1.toUpperCase() 556 .replace('-', '') 557 .replace('_', ''); 558 }); 559}; 560 561Bloom.storefront.utilities._.keysToCamel = function(o) { 562 if (Bloom.storefront.utilities._.isObject(o)) { 563 const n = {}; 564 565 Object.keys(o) 566 .forEach(function(k) { 567 n[Bloom.storefront.utilities._.toCamel(k)] = Bloom.storefront.utilities._.keysToCamel(o[k]); 568 }); 569 570 return n; 571 } else if (Bloom.storefront.utilities._.isArray(o)) { 572 return o.map(function(i) { 573 return Bloom.storefront.utilities._.keysToCamel(i); 574 }); 575 } 576 577 return o; 578}; 579 580window.Bloom.storefront.data = window.Bloom.storefront.data || {"clubs":null,"products":null,"settings":{"app_proxy_path":"\/apps\/wine-club","is_sales_channel":true,"is_bloom_v1":true,"gateway":"bloom_payments","gateway_is_live_mode":true,"bloom_payments_key":"pk_live_p8pFV215m3ereYJOYEI7KBad","gateway_client_key":"","always_use_bloom_checkout":false,"automatic_discount_codes":"","discount_field_visible":false,"log_club_signup_errors_in_sentry":false,"strong_checkout_control":false,"use_v1_discounts":false,"require_intended_shipping_province":false,"bloom_cart_config":{}},"pick_up_locations":[],"gliding_eagle_country_codes":null}; 581window.Bloom.storefront.data.clubs = window.Bloom.storefront.data.clubs || [{"id":740,"name":"To Kalon Vineyard Company","description":"","club_type":"allocation","levels":[{"id":112810,"name":"To Kalon Vineyard Company Membership","club_id":740,"delivery_option":"ship_only","is_giftable":false,"gift_instructions":null},{"id":112727,"name":"Membership Allocation - 4","club_id":740,"delivery_option":"ship_only","is_giftable":false,"gift_instructions":"\u003cp\u003eYou are giving this membership as a gift. As the gift-giver, the membership is yours, and you will pay for each shipment.\u003c\/p\u003e"},{"id":112648,"name":"Membership Allocation - 3","club_id":740,"delivery_option":"ship_only","is_giftable":false,"gift_instructions":"\u003cp\u003eYou are giving this membership as a gift. As the gift-giver, the membership is yours, and you will pay for each shipment.\u003c\/p\u003e"},{"id":113728,"name":"Lapsed Members","club_id":740,"delivery_option":"pickup_and_ship","is_giftable":false,"gift_instructions":null},{"id":113165,"name":"Event Sign Ups","club_id":740,"delivery_option":"pickup_and_ship","is_giftable":false,"gift_instructions":null},{"id":112647,"name":"Membership Allocation - 2","club_id":740,"delivery_option":"ship_only","is_giftable":false,"gift_instructions":"\u003cp\u003eYou are giving this membership as a gift. As the gift-giver, the membership is yours, and you will pay for each shipment.\u003c\/p\u003e"},{"id":112646,"name":"Membership Allocation - 1","club_id":740,"delivery_option":"ship_only","is_giftable":false,"gift_instructions":"\u003cp\u003eYou are giving this membership as a gift. As the gift-giver, the membership is yours, and you will pay for each shipment.\u003c\/p\u003e"},{"id":112590,"name":"Membership Allocation - Waitlist","club_id":740,"delivery_option":"pickup_and_ship","is_giftable":false,"gift_instructions":"\u003cp\u003eYou are giving this membership as a gift. As the gift-giver, the membership is yours, and you will pay for each shipment.\u003c\/p\u003e"}]},{"id":867,"name":"Traditional Club","description":"","club_type":"traditional","levels":[]},{"id":868,"name":"Subscription Club","description":"","club_type":"subscription","levels":[{"id":113226,"name":"Product subscriptions","club_id":868,"delivery_option":"pickup_and_ship","is_giftable":false,"gift_instructions":null}]}]; 582window.Bloom.storefront.data.subscriptionVariants = window.Bloom.storefront.data.subscriptionVariants || []; 583 584(function() { 585 var subVariantIndex;})(); 586 587(function() { 588 589 var clubIndex, levelIindex;clubIndex = Bloom.storefront.data.clubs.findIndex(function(c) { return c.id === 740 }); 590 if (clubIndex !== -1) { 591 levelIindex = (Bloom.storefront.data.clubs[clubIndex]||{}).levels.findIndex(function(l) { return l.id === 112810 }); 592 if (levelIindex !== -1) { 593 (Bloom.storefront.data.clubs[clubIndex]||{}).levels[levelIindex] = {"id":112810,"name":"To Kalon Vineyard Company Membership","club_id":740,"delivery_option":"ship_only","is_giftable":false,"gift_instructions":null,"rank":null,"customer_tag":"CLUB-LEVEL-112810","collect_billing_information":true,"collect_shipping_information":false,"shipping":{"type":"use_store_shipping_rates","flat_rate":null,"upsell":false,"handle":"bloom-to_kalon_vineyard_company"},"discounts":[],"frequencies":[{"id":1790,"amount":"not_applicable","display_amount":"Not applicable","label":null,"value":0,"display_value":"zero","unit":"month"}],"releases":[],"preference_groups":[{"id":101049,"membership_level_id":112810,"values":[]},{"id":101565,"membership_level_id":112810,"values":[{"id":569,"name":"Test Group","field_id":17,"field_name":"Allocation","rank":6}]},{"id":101053,"membership_level_id":112810,"values":[{"id":193,"name":"Group D","field_id":17,"field_name":"Allocation","rank":4}]},{"id":103327,"membership_level_id":112810,"values":[{"id":2307,"name":"Group E","field_id":17,"field_name":"Allocation","rank":5}]},{"id":101051,"membership_level_id":112810,"values":[{"id":191,"name":"Group B","field_id":17,"field_name":"Allocation","rank":2}]},{"id":101050,"membership_level_id":112810,"values":[{"id":190,"name":"Group A","field_id":17,"field_name":"Allocation","rank":1}]},{"id":101052,"membership_level_id":112810,"values":[{"id":192,"name":"Group C","field_id":17,"field_name":"Allocation","rank":3}]}]} 594 } 595 }clubIndex = Bloom.storefront.data.clubs.findIndex(function(c) { return c.id === 740 }); 596 if (clubIndex !== -1) { 597 levelIindex = (Bloom.storefront.data.clubs[clubIndex]||{}).levels.findIndex(function(l) { return l.id === 112727 }); 598 if (levelIindex !== -1) { 599 (Bloom.storefront.data.clubs[clubIndex]||{}).levels[levelIindex] = {"id":112727,"name":"Membership Allocation - 4","club_id":740,"delivery_option":"ship_only","is_giftable":false,"gift_instructions":"\u003cp\u003eYou are giving this membership as a gift. As the gift-giver, the membership is yours, and you will pay for each shipment.\u003c\/p\u003e","rank":null,"customer_tag":"CLUB-LEVEL-112727","collect_billing_information":true,"collect_shipping_information":true,"shipping":{"type":"use_store_shipping_rates","flat_rate":null,"upsell":false,"handle":"bloom-to_kalon_vineyard_company"},"discounts":[{"code":"CLUB-LEVEL-112727","tag":"CLUB-LEVEL-112727","value":0,"type":"percentage","minimum_quantity":0,"discount_name":""}],"frequencies":[{"id":1700,"amount":"not_applicable","display_amount":"Not applicable","label":"","value":0,"display_value":"zero","unit":"month"}],"releases":[],"preference_groups":[{"id":100908,"membership_level_id":112727,"values":[]}]} 600 } 601 }clubIndex = Bloom.storefront.data.clubs.findIndex(function(c) { return c.id === 740 }); 602 if (clubIndex !== -1) { 603 levelIindex = (Bloom.storefront.data.clubs[clubIndex]||{}).levels.findIndex(function(l) { return l.id === 112648 }); 604 if (levelIindex !== -1) { 605 (Bloom.storefront.data.clubs[clubIndex]||{}).levels[levelIindex] = {"id":112648,"name":"Membership Allocation - 3","club_id":740,"delivery_option":"ship_only","is_giftable":false,"gift_instructions":"\u003cp\u003eYou are giving this membership as a gift. As the gift-giver, the membership is yours, and you will pay for each shipment.\u003c\/p\u003e","rank":null,"customer_tag":"CLUB-LEVEL-112648","collect_billing_information":false,"collect_shipping_information":false,"shipping":{"type":"use_store_shipping_rates","flat_rate":null,"upsell":false,"handle":"bloom-to_kalon_vineyard_company"},"discounts":[{"code":"CLUB-LEVEL-112648","tag":"CLUB-LEVEL-112648","value":0,"type":"percentage","minimum_quantity":0,"discount_name":""}],"frequencies":[{"id":1608,"amount":"not_applicable","display_amount":"Not applicable","label":"","value":0,"display_value":"zero","unit":"month"}],"releases":[],"preference_groups":[{"id":100942,"membership_level_id":112648,"values":[]}]} 606 } 607 }clubIndex = Bloom.storefront.data.clubs.findIndex(function(c) { return c.id === 740 }); 608 if (clubIndex !== -1) { 609 levelIindex = (Bloom.storefront.data.clubs[clubIndex]||{}).levels.findIndex(function(l) { return l.id === 113728 }); 610 if (levelIindex !== -1) { 611 (Bloom.storefront.data.clubs[clubIndex]||{}).levels[levelIindex] = {"id":113728,"name":"Lapsed Members","club_id":740,"delivery_option":"pickup_and_ship","is_giftable":false,"gift_instructions":null,"rank":null,"customer_tag":"CLUB-LEVEL-113728","collect_billing_information":false,"collect_shipping_information":true,"shipping":{"type":"use_store_shipping_rates","flat_rate":null,"upsell":false,"handle":"bloom-to_kalon_vineyard_company"},"discounts":[],"frequencies":[{"id":2716,"amount":"not_applicable","display_amount":"Not applicable","label":null,"value":0,"display_value":"zero","unit":"month"}],"releases":[],"preference_groups":[{"id":103356,"membership_level_id":113728,"values":[]}]} 612 } 613 }clubIndex = Bloom.storefront.data.clubs.findIndex(function(c) { return c.id === 740 }); 614 if (clubIndex !== -1) { 615 levelIindex = (Bloom.storefront.data.clubs[clubIndex]||{}).levels.findIndex(function(l) { return l.id === 113165 }); 616 if (levelIindex !== -1) { 617 (Bloom.storefront.data.clubs[clubIndex]||{}).levels[levelIindex] = {"id":113165,"name":"Event Sign Ups","club_id":740,"delivery_option":"pickup_and_ship","is_giftable":false,"gift_instructions":null,"rank":null,"customer_tag":"CLUB-LEVEL-113165","collect_billing_information":false,"collect_shipping_information":false,"shipping":{"type":"use_store_shipping_rates","flat_rate":null,"upsell":false,"handle":"bloom-to_kalon_vineyard_company"},"discounts":[],"frequencies":[{"id":2150,"amount":"not_applicable","display_amount":"Not applicable","label":null,"value":0,"display_value":"zero","unit":"month"}],"releases":[],"preference_groups":[{"id":101821,"membership_level_id":113165,"values":[]}]} 618 } 619 }clubIndex = Bloom.storefront.data.clubs.findIndex(function(c) { return c.id === 740 }); 620 if (clubIndex !== -1) { 621 levelIindex = (Bloom.storefront.data.clubs[clubIndex]||{}).levels.findIndex(function(l) { return l.id === 112647 }); 622 if (levelIindex !== -1) { 623 (Bloom.storefront.data.clubs[clubIndex]||{}).levels[levelIindex] = {"id":112647,"name":"Membership Allocation - 2","club_id":740,"delivery_option":"ship_only","is_giftable":false,"gift_instructions":"\u003cp\u003eYou are giving this membership as a gift. As the gift-giver, the membership is yours, and you will pay for each shipment.\u003c\/p\u003e","rank":null,"customer_tag":"CLUB-LEVEL-112647","collect_billing_information":false,"collect_shipping_information":false,"shipping":{"type":"use_store_shipping_rates","flat_rate":null,"upsell":false,"handle":"bloom-to_kalon_vineyard_company"},"discounts":[{"code":"CLUB-LEVEL-112647","tag":"CLUB-LEVEL-112647","value":0,"type":"percentage","minimum_quantity":0,"discount_name":""}],"frequencies":[{"id":1607,"amount":"not_applicable","display_amount":"Not applicable","label":"","value":0,"display_value":"zero","unit":"month"}],"releases":[],"preference_groups":[{"id":100946,"membership_level_id":112647,"values":[]}]} 624 } 625 }clubIndex = Bloom.storefront.data.clubs.findIndex(function(c) { return c.id === 740 }); 626 if (clubIndex !== -1) { 627 levelIindex = (Bloom.storefront.data.clubs[clubIndex]||{}).levels.findIndex(function(l) { return l.id === 112646 }); 628 if (levelIindex !== -1) { 629 (Bloom.storefront.data.clubs[clubIndex]||{}).levels[levelIindex] = {"id":112646,"name":"Membership Allocation - 1","club_id":740,"delivery_option":"ship_only","is_giftable":false,"gift_instructions":"\u003cp\u003eYou are giving this membership as a gift. As the gift-giver, the membership is yours, and you will pay for each shipment.\u003c\/p\u003e","rank":null,"customer_tag":"CLUB-LEVEL-112646","collect_billing_information":false,"collect_shipping_information":false,"shipping":{"type":"use_store_shipping_rates","flat_rate":null,"upsell":false,"handle":"bloom-to_kalon_vineyard_company"},"discounts":[{"code":"CLUB-LEVEL-112646","tag":"CLUB-LEVEL-112646","value":0,"type":"percentage","minimum_quantity":0,"discount_name":""}],"frequencies":[{"id":1606,"amount":"not_applicable","display_amount":"Not applicable","label":"","value":0,"display_value":"zero","unit":"month"}],"releases":[],"preference_groups":[{"id":100948,"membership_level_id":112646,"values":[]}]} 630 } 631 }clubIndex = Bloom.storefront.data.clubs.findIndex(function(c) { return c.id === 740 }); 632 if (clubIndex !== -1) { 633 levelIindex = (Bloom.storefront.data.clubs[clubIndex]||{}).levels.findIndex(function(l) { return l.id === 112590 }); 634 if (levelIindex !== -1) { 635 (Bloom.storefront.data.clubs[clubIndex]||{}).levels[levelIindex] = {"id":112590,"name":"Membership Allocation - Waitlist","club_id":740,"delivery_option":"pickup_and_ship","is_giftable":false,"gift_instructions":"\u003cp\u003eYou are giving this membership as a gift. As the gift-giver, the membership is yours, and you will pay for each shipment.\u003c\/p\u003e","rank":null,"customer_tag":"CLUB-LEVEL-112590","collect_billing_information":false,"collect_shipping_information":false,"shipping":{"type":"use_store_shipping_rates","flat_rate":null,"upsell":false,"handle":"bloom-to_kalon_vineyard_company"},"discounts":[],"frequencies":[{"id":1545,"amount":"not_applicable","display_amount":"Not applicable","label":"","value":0,"display_value":"zero","unit":"month"}],"releases":[],"preference_groups":[{"id":100914,"membership_level_id":112590,"values":[]}]} 636 } 637 }clubIndex = Bloom.storefront.data.clubs.findIndex(function(c) { return c.id === 868 }); 638 if (clubIndex !== -1) { 639 levelIindex = (Bloom.storefront.data.clubs[clubIndex]||{}).levels.findIndex(function(l) { return l.id === 113226 }); 640 if (levelIindex !== -1) { 641 (Bloom.storefront.data.clubs[clubIndex]||{}).levels[levelIindex] = {"id":113226,"name":"Product subscriptions","club_id":868,"delivery_option":"pickup_and_ship","is_giftable":false,"gift_instructions":null,"rank":null,"customer_tag":"CLUB-LEVEL-113226","collect_billing_information":true,"collect_shipping_information":true,"shipping":{"type":"use_store_shipping_rates","flat_rate":null,"upsell":false,"handle":"bloom-subscription_club"},"discounts":[],"frequencies":[{"id":2211,"amount":"not_applicable","display_amount":"Not applicable","label":null,"value":0,"display_value":"zero","unit":"month"}],"releases":[],"preference_groups":[{"id":101963,"membership_level_id":113226,"values":[]}]} 642 } 643 }})(); 644 645window.Bloom.storefront.data.clubs = Bloom.storefront.utilities._.keysToCamel(window.Bloom.storefront.data.clubs); 646window.Bloom.storefront.data.subscriptionVariants = Bloom.storefront.utilities._.keysToCamel(window.Bloom.storefront.data.subscriptionVariants); 647 648</script>
648 649 650
651<script type="text/javascript"> 652 653window.Bloom.storefront.settings = window.Bloom.storefront.settings || {}; 654window.Bloom.storefront.state = window.Bloom.storefront.state || {}; 655window.Bloom.storefront.data.customer = window.Bloom.storefront.data.customer || { 656 id: "", 657 firstName: "", 658 lastName: "", 659 phone: "", 660 email: "", 661 hasAccount: null, 662 tags: "", 663 addresses: [] 664} 665window.Bloom.storefront.data.billingCountries = window.Bloom.storefront.data.billingCountries || ["US"]; 666window.Bloom.storefront.data.shippingCountries = window.Bloom.storefront.data.shippingCountries || [{"name":"United States","code":"US","provinces":[{"name":"Alabama","code":"AL"},{"name":"Arizona","code":"AZ"},{"name":"California","code":"CA"},{"name":"Colorado","code":"CO"},{"name":"Connecticut","code":"CT"},{"name":"District of Columbia","code":"DC"},{"name":"Florida","code":"FL"},{"name":"Georgia","code":"GA"},{"name":"Hawaii","code":"HI"},{"name":"Iowa","code":"IA"},{"name":"Idaho","code":"ID"},{"name":"Illinois","code":"IL"},{"name":"Kansas","code":"KS"},{"name":"Kentucky","code":"KY"},{"name":"Massachusetts","code":"MA"},{"name":"Maryland","code":"MD"},{"name":"Michigan","code":"MI"},{"name":"Minnesota","code":"MN"},{"name":"Missouri","code":"MO"},{"name":"Montana","code":"MT"},{"name":"North Carolina","code":"NC"},{"name":"North Dakota","code":"ND"},{"name":"Nebraska","code":"NE"},{"name":"New Hampshire","code":"NH"},{"name":"New Mexico","code":"NM"},{"name":"Nevada","code":"NV"},{"name":"New York","code":"NY"},{"name":"Ohio","code":"OH"},{"name":"Oregon","code":"OR"},{"name":"Pennsylvania","code":"PA"},{"name":"South Carolina","code":"SC"},{"name":"South Dakota","code":"SD"},{"name":"Tennessee","code":"TN"},{"name":"Texas","code":"TX"},{"name":"Virginia","code":"VA"},{"name":"Vermont","code":"VT"},{"name":"Washington","code":"WA"},{"name":"Wisconsin","code":"WI"},{"name":"West Virginia","code":"WV"},{"name":"Wyoming","code":"WY"}]}]; 667window.Bloom.storefront.data.products = window.Bloom.storefront.data.products || []; 668 669window.Bloom.storefront.data.products = Object.values({"9256881783030":{"id":"9256881783030","abv":14.8,"variants":[{"id":"49864193769718","price":750.0,"title":"","complete_title":"2023 H.W.C. 3 Bottle Collection","base_container":"bottle","base_count":3,"quantity_unit":"set","display_bundle_items":true}]},"9256881258742":{"id":"9256881258742","abv":14.5,"variants":[{"id":"49864188985590","price":675.0,"title":"","complete_title":"2023 Eliza's 3 Bottle Collection","base_container":"bottle","base_count":3,"quantity_unit":"set","display_bundle_items":true}]},"9256880865526":{"id":"9256880865526","abv":14.5,"variants":[{"id":"49864181285110","price":225.0,"title":"","complete_title":"2023 ELIZA'S RED WINE","base_count":1,"display_bundle_items":true}]},"9256880210166":{"id":"9256880210166","abv":14.5,"variants":[{"id":"49864178499830","price":675.0,"title":"","complete_title":"2023 Highest Beauty 3 Bottle Collection","base_container":"bottle","base_count":3,"quantity_unit":"set","display_bundle_items":true}]},"9256879227126":{"id":"9256879227126","abv":14.5,"variants":[{"id":"49864171225334","price":225.0,"title":"","complete_title":"2023 HIGHEST BEAUTY CABERNET SAUVIGNON","base_count":1,"display_bundle_items":true}]},"9181070033142":{"id":"9181070033142","variants":[{"id":"49174925607158","price":275.0,"title":"","complete_title":"2018 H.W.C. 1 Bottle Set","base_count":1,"display_bundle_items":true}]},"9172093567222":{"id":"9172093567222","abv":14.0,"variants":[{"id":"49133699891446","price":275.0,"title":"","complete_title":"2018 H.W.C. CABERNET SAUVIGNON 750mL","base_container":"","base_count":1,"quantity_unit":"bottle","display_bundle_items":true}]},"9172091109622":{"id":"9172091109622","abv":14.0,"variants":[{"id":"49133688193270","price":275.0,"title":"","complete_title":"2018 H.W.C. 1 Bottle Set","base_container":"bottle","base_count":1,"quantity_unit":"set","display_bundle_items":false}]},"9168380625142":{"id":"9168380625142","abv":14.0,"variants":[{"id":"49097252503798","price":700.0,"title":"","complete_title":"2022 THE BOSS⢠3 Bottle Collection","base_count":1,"display_bundle_items":true}]},"8998277677302":{"id":"8998277677302","abv":14.8,"variants":[{"id":"48075645616374","price":750.0,"title":"","complete_title":"2022 H.W.C. 3 Bottle Collection","base_container":"bottle","base_count":3,"quantity_unit":"set","display_bundle_items":true}]},"8998273089782":{"id":"8998273089782","abv":14.8,"variants":[{"id":"48075622875382","price":250.0,"title":"","complete_title":"2022 H.W.C. CABERNET SAUVIGNON","base_count":1,"display_bundle_items":true}]},"8994668445942":{"id":"8994668445942","abv":14.5,"variants":[{"id":"48031009079542","price":675.0,"title":"","complete_title":"2022 Highest Beauty 3 Bottle Collection","base_container":"bottle","base_count":3,"quantity_unit":"set","display_bundle_items":true}]},"8994668118262":{"id":"8994668118262","abv":14.5,"variants":[{"id":"48031008719094","price":225.0,"title":"","complete_title":"2022 HIGHEST BEAUTY CABERNET SAUVIGNON","base_count":1,"display_bundle_items":true}]},"8994667495670":{"id":"8994667495670","abv":14.5,"variants":[{"id":"48031007211766","price":675.0,"title":"","complete_title":"2022 Eliza's 3 Bottle Collection","base_container":"bottle","base_count":3,"quantity_unit":"set","display_bundle_items":true}]}
669,"8994664055030":{"id":"8994664055030","abv":14.5,"variants":[{"id":"48031000789238","price":225.0,"title":"","complete_title":"2022 ELIZA'S RED WINE","base_count":1,"display_bundle_items":true}]},"8913815142646":{"id":"8913815142646","variants":[{"id":"47531525898486","price":0.0,"title":"","complete_title":"Custom Notecard Royal White Cement","base_count":1,"display_bundle_items":true}]},"8905645490422":{"id":"8905645490422","variants":[{"id":"47490831876342","price":0.0,"title":"","complete_title":"Invoice product","base_count":1,"display_bundle_items":true}]},"8881613078774":{"id":"8881613078774","abv":14.5,"variants":[{"id":"47395048227062","price":225.0,"title":"","complete_title":"2021 ELIZA'S RED WINE","base_count":1,"display_bundle_items":true}]},"8881610359030":{"id":"8881610359030","abv":14.8,"variants":[{"id":"47395037675766","price":250.0,"title":"","complete_title":"2021 H.W.C. CABERNET SAUVIGNON","base_count":1,"display_bundle_items":true}]},"8879636938998":{"id":"8879636938998","abv":14.5,"variants":[{"id":"47381381873910","price":225.0,"title":"","complete_title":"2021 HIGHEST BEAUTY CABERNET SAUVIGNON","base_count":1,"display_bundle_items":true}]},"8847227191542":{"id":"8847227191542","abv":14.0,"variants":[{"id":"47246768636150","price":350.0,"title":"","complete_title":"2019 H.W.C. CABERNET SAUVIGNON 1 Bottle Gift Set","base_container":"bottle","base_count":1,"quantity_unit":"set","display_bundle_items":true}]},"8847186297078":{"id":"8847186297078","abv":14.0,"variants":[{"id":"47246633500918","price":700.0,"title":"","complete_title":"2021 THE BOSS⢠3 BOTTLE COLLECTION","base_count":1,"display_bundle_items":true}]},"8358919340278":{"id":"8358919340278","abv":14.5,"variants":[{"id":"45973074903286","price":675.0,"title":"","complete_title":"2021 Eliza's 3 Bottle Collection","base_container":"bottle","base_count":3,"quantity_unit":"set","display_bundle_items":true}]},"8358918258934":{"id":"8358918258934","abv":14.5,"variants":[{"id":"45973070250230","price":675.0,"title":"","complete_title":"2021 Highest Beauty 3 Bottle Collection","base_container":"bottle","base_count":3,"quantity_unit":"set","display_bundle_items":true}]},"8358905512182":{"id":"8358905512182","abv":14.8,"variants":[{"id":"45973055275254","price":750.0,"title":"","complete_title":"2021 H.W.C. 3 Bottle Collection","base_container":"bottle","base_count":3,"quantity_unit":"set","display_bundle_items":true}]},"8218823196918":{"id":"8218823196918","abv":14.5,"variants":[{"id":"45565858971894","price":250.0,"title":"","complete_title":"2017 HIGHEST BEAUTY CABERNET SAUVIGNON + BOX","base_count":1,"display_bundle_items":false}]},"8218816905462":{"id":"8218816905462","variants":[{"id":"45565841834230","price":75.0,"title":"","complete_title":"New product","base_count":1,"display_bundle_items":true}]},"8177869390070":{"id":"8177869390070","variants":[{"id":"45428729086198","price":0.0,"title":"","complete_title":"To Kalon Vineyard Company 1 Bottle Box and Shipper","base_count":1,"display_bundle_items":true}]},"8173379846390":{"id":"8173379846390","abv":14.5,"variants":[{"id":"45413213208822","price":250.0,"title":"","complete_title":"To Kalon Vineyard Company 2019 Highest Beauty Photo Set","base_container":"bottle","base_count":1,"quantity_unit":"set","display_bundle_items":true}]},"7901909811446":{"id":"7901909811446","variants":[{"id":"44641830371574","price":2.0,"title":"","complete_title":"Note Card Blank","base_count":1,"display_bundle_items":true}]},"7893113929974":{"id":"7893113929974","abv":14.8,"variants":[{"id":"44620360057078","price":825.0,"title":"","complete_title":"2019 H.W.C. 3 Bottle Collection","base_count":1,"display_bundle_items":true}]},"7887593734390":{"id":"7887593734390","variants":[{"id":"44599812030710","price":50.0,"title":"","complete_title":"Shipping Upgrade","base_count":1,"display_bundle_items":true}]},"7818680500470":{"id":"7818680500470","abv":14.5,"variants":[{"id":"44354181431542","price":225.0,"title":"","complete_title":"2019 HIGHEST BEAUTY CABERNET SAUVIGNON","base_count":1,"display_bundle_items":true}]},"7818678698230":{"id":"7818678698230","abv":15.0,"variants":[{"id":"44354172354806","price":275.0,"title":"","complete_title":"2019 H.W.C. CABERNET SAUVIGNON","base_container":"bottle","base_count":1,"quantity_unit":"set","display_bundle_items":false}]},"7790151598326":{"id":"7790151598326","abv":14.5,"variants":[{"id":"44260717002998","price":705.0,"title":"","complete_title":"2019 Eliza's 3 Bottle Collection","base_container":"bottle","base_count":3,"quantity_unit":"set","display_bundle_items":true}]},"7790145405174":{"id":"7790145405174","abv":14.0,"variants":[{"id":"44260631576822","price":725.0,"title":"","complete_title":"2019 THE BOSS⢠3 BOTTLE COLLECTION","base_container":"bottle","base_count":3,"quantity_unit":"set","display_bundle_items":true}]},"7790133739766":{"id":"7790133739766","abv":14.5,"variants":[{"id":"44260490903798","price":675.0,"title":"","complete_title":"2019 Highest Beauty 3 Bottle Collection","base_container":"bottle","base_count":3,"quantity_unit":"set","display_bundle_items":true}]},"7780571349238":{"id":"7780571349238","abv":15.0,"variants":[{"id":"44221363388662","price":235.0,"title":"","complete_title":"2019 ELIZA'S RED WINE","base_count":1,"display_bundle_items":true}]},"7691256856822":{"id":"7691256856822","abv":14.5,"variants":[{"id":"43546333446390","price":750.0,"title":"","complete_title":"2017 Highest Beauty 3 Bottle Collection","base_container":"bottle","base_count":3,"quantity_unit":"set","display_bundle_items":true}]},"7680090407158":{"id":"7680090407158","abv":14.5,"variants":[{"id":"43386068369654","price":750.0,"title":"","complete_title":"2016 HIGHEST BEAUTY 3 Bottle Collection","base_count":1,"display_bundle_items":true}]},"7680086081782":{"id":"7680086081782","abv":14.5,"variants":[{"id":"43385971179766","price":250.0,"title":"","complete_title":"2016 HIGHEST BEAUTY CABERNET SAUVIGNON","base_count":1,"display_bundle_items":true}]},"7680063045878":{"id":"7680063045878","variants":[{"id":"43385756385526","price":0.0,"title":"","complete_title":"To Kalon Vineyard Co 3 Bottle Black Box","base_count":1,"display_bundle_items":true}]},"7592466055414":{"id":"7592466055414","abv":14.5,"variants":[{"id":"42699418403062","price":675.0,"title":"","complete_title":"2018 ELIZA'S RED WINE 3 Bottle Collection","base_count":1,"display_bundle_items":true}]},"7592465301750":{"id":"7592465301750","abv":14.0,"variants":[{"id":"42699412046070","price":825.0,"title":"","complete_title":"2018 H.W.C. 3 Bottle Collection","base_count":1,"display_bundle_items":true}]},"7592449442038":{"id":"7592449442038","abv":14.5,"variants":[{"id":"42699247649014","price":675.0,"title":"","complete_title":"2018 Highest Beauty 3 Bottle Collection","base_container":"bottle","base_count":3,"quantity_unit":"set","display_bundle_items":true}]},"7538318901494":{"id":"7538318901494","abv":14.0,"variants":[{"id":"42450659999990","price":275.0,"title":"","complete_title":"2018 H.W.C. CABERNET SAUVIGNON","base_container":"","base_count":1,"quantity_unit":"bottle","display_bundle_items":true}]},"7538315559158":{"id":"7538315559158","abv":14.5,"variants":[{"id":"42450644730102","price":225.0,"title":"","complete_title":"2018 ELIZA'S RED WINE","base_container":"","base_count":1,"quantity_unit":"bottle","display_bundle_items":true}]},"7535957049590":{"id":"7535957049590","abv":14.5,"variants":[{"id":"42440873771254","price":225.0,"title":"","complete_title":"2018 HIGHEST BEAUTY CABERNET SAUVIGNON","base_container":"bottle","base_count":1,"quantity_unit":"bottle","display_bundle_items":true}]},"7529604907254":{"id":"7529604907254","abv":14.5,"variants":[{"id":"42421972730102","price":250.0,"title":"","complete_title":"2017 HIGHEST BEAUTY CABERNET SAUVIGNON","base_container":"bottle","base_count":1,"quantity_unit":"bottle","display_bundle_items":true}]}} || {}); 670 671Bloom.storefront.data.settings = Bloom.storefront.data.settings || {} 672Bloom.storefront.data.settings.app_proxy_path = Bloom.storefront.data.settings.app_proxy_path || '/apps/wine-club' 673 674Bloom.storefront.settings.clickEvents = ['click', 'mousedown', 'mouseup', 'dblclick'] 675Bloom.storefront.settings.dob = { 676 show: true, 677 minimumAge: 21, 678 cartAttributeName: "Customer date of birth" 679} 680 681Bloom.storefront.settings.cart = Bloom.storefront.settings.cart || Bloom.storefront.utilities._.keysToCamel( 682 Bloom.storefront.data.settings.bloom_cart_config 683) 684 685Bloom.storefront.settings.isBloomV1 = Bloom.storefront.data.settings.is_bloom_v1; 686 687Bloom.Cookie = function(name) { 688 var current = new Date(); 689 var expiresAt = new Date(current.getFullYear(), current.getMonth() + 1, current.getDate()) 690 var json = {} 691 var path = "/"; 692 693 var load = function() { 694 try { 695 return json = JSON.parse(atob(decodeURIComponent(docCookies.getItem(name)))) 696 } catch (e) { 697 docCookies.removeItem(name) 698 return json = {} 699 } 700 } 701 702 var save = function() { 703 docCookies.setItem(name, btoa(JSON.stringify(json)), expiresAt, path, null, true, 'none') 704 } 705 706 Object.assign(this, { 707 getValue: function(key) { 708 load() 709 return json && json[key] 710 }, 711 setValue: function(key, value, expiresAt) { 712 load() 713 json[key] = value 714 save() 715 }, 716 clear: function() { 717 docCookies.removeItem(name, path, null, true, 'none') 718 } 719 }) 720} 721 722</script>
722 723 724<link href="//tokalonvineyardcompany.com/cdn/shop/t/4/assets/bloom-shopify.css?v=150690944846100254181670996994" rel="stylesheet" type="text/css" media="all" />
725<script src="//tokalonvineyardcompany.com/cdn/shop/t/4/assets/bloom-shopify.js?v=19910672299947860551734559022"></script>
725 726
727<script type="text/javascript"> 728 729window.bloom = window.bloom || {} 730var bloomShopify = new BloomShopify() 731window.bloom = Object.assign(window.bloom, bloomShopify) 732var bloomCart = bloomShopify.shoppingCart() 733 734Bloom.storefront.utilities._.formatDateString = function(dateString) { 735 if (!dateString || typeof dateString.padStart !== "function") { return dateString } 736 formattedDateString = dateString.split('-').map(function(datePart) { return datePart.padStart(2, "0") }).join('-') 737 var date = new Date(formattedDateString) 738 if (date.toString() !== "Invalid Date") { 739 return formattedDateString 740 } else { 741 return dateString 742 } 743} 744 745Bloom.storefront.utilities._.setDob = function(dob) { 746 var dobString = Bloom.storefront.utilities._.formatDateString(dob); 747 var date = new Date(dobString||""); 748 if (date.toString() !== "Invalid Date") { 749 Bloom.storefront.state.dob = dobString; 750 } else { 751 Bloom.storefront.state.dob = ""; 752 } 753} 754 755Bloom.storefront.utilities._.getDobObject = function() { 756 var dobString = Bloom.storefront.utilities._.formatDateString(Bloom.storefront.state.dob); 757 var date = new Date(dobString); 758 if (date.toString() !== "Invalid Date") { 759 var splitDobString = dobString.split('-') 760 if (splitDobString.length > 0) { 761 return { 762 date: date, 763 dateString: dobString, 764 year: splitDobString[0], 765 month: splitDobString[1], 766 day: splitDobString[2] 767 } 768 } 769 } else { 770 return {} 771 } 772} 773 774Bloom.storefront.utilities._.dobIsValid = function() { 775 var dob = Bloom.storefront.utilities._.getDobObject().date 776 var legalAge = (new Date().setFullYear( new Date().getFullYear() - Bloom.storefront.settings.dob.minimumAge )) 777 return dob < legalAge 778} 779 780Bloom.storefront.utilities._.saveDobToCart = function() { 781 var dobString = Bloom.storefront.utilities._.getDobObject().dateString 782 if (dobString) { 783 var attributes = {} 784 attributes[Bloom.storefront.settings.dob.cartAttributeName] = dobString 785 fetch('/cart/update.js', { 786 method: 'POST', 787 headers: {'Content-Type': 'application/json'}, 788 body: JSON.stringify({ attributes: attributes }) 789 }); 790 } 791} 792 793Bloom.storefront.utilities._.setDob("") 794Bloom.storefront.state.cartRequiresDob = false; 795 796 797 798 799Bloom.storefront.utilities.getJSON = function(url, successCallback, failCallback) { 800 var request = new XMLHttpRequest(); 801 var errorMessage = "An unexpected error occured. Please try again later."; 802 request.open('GET', url, true); 803 request.onload = function() { 804 var json = JSON.parse(request.responseText); 805 if (request.status >= 200 && request.status < 400) { 806 successCallback(json) 807 } else { 808 failCallback(json) 809 } 810 }; 811 request.onerror = function() { 812 failCallback(errorMessage) 813 }; 814 request.send(); 815}; 816 817Bloom.storefront.utilities.postFormData = function(url, data, successCallback, failCallback) { 818 var request = new XMLHttpRequest(); 819 request.open('POST', url, true); 820 request.onload = function() { 821 var json = JSON.parse(request.responseText); 822 if (request.status >= 200 && request.status < 400) { 823 successCallback(json) 824 } else { 825 failCallback(json) 826 } 827 }; 828 request.onerror = function(error) { 829 failCallback(error) 830 }; 831 request.send(data); 832} 833 834Bloom.storefront.utilities._.toCamel = (s) => { 835 return s.replace(/([-_][a-z0-9])/ig, ($1) => { 836 return $1.toUpperCase() 837 .replace('-', '') 838 .replace('_', ''); 839 }); 840}; 841 842Bloom.storefront.utilities._.isObject = function (o) { 843 return o === Object(o) && !Array.isArray(o) && typeof o !== 'function'; 844}; 845 846Bloom.storefront.utilities._.keysToCamel = function (o) { 847 if (Bloom.storefront.utilities._.isObject(o)) { 848 const n = {}; 849 850 Object.keys(o) 851 .forEach((k) => { 852 n[Bloom.storefront.utilities._.toCamel(k)] = Bloom.storefront.utilities._.keysToCamel(o[k]); 853 }); 854 855 return n; 856 } else if (Array.isArray(o)) { 857 return o.map((i) => { 858 return Bloom.storefront.utilities._.keysToCamel(i); 859 }); 860 } 861 862 return o; 863}; 864 865Bloom.storefront.utilities.addToCart = function(variantOrMembershipLevelId, quantity, properties, target) { 866 variantOrMembershipLevelId = variantOrMembershipLevelId || '' 867 quantity = quantity || 1 868 properties = properties || {} 869 target = target || 'cart' 870 if (['cart', 'checkout', 'ajax_cart'].includes(target)) { 871 return bloomCart.add([{ id: variantOrMembershipLevelId, quantity: quantity, properties: properties }]).then(function(response) { 872 if (target === 'checkout') { 873 bloom.goToBloomCheckout() 874 } else if (target === 'ajax_cart') { 875 bloom.openThemeAjaxCart({ variant: variantOrMembershipLevelId, quantity: quantity || 1 }) 876 } else { 877 bloom.goToShopifyCart() 878 } 879 }) 880 } else { 881 if (!Bloom.storefront.utilities._.recurringOptions) return 882 var membershipLevel = Bloom.storefront.data.clubs.flatMap(function(c) { return c.levels }).find(function(l) { return l.id === parseInt(variantOrMembershipLevelId) }) 883 var selectionsAttributes = Bloom.storefront.utilities._.recurringOptions.membershipSelectionsForLineItemProperties(membershipLevel, properties, quantity) 884 var bloomStorage = bloom.storage() 885 var idempotencyKey = bloomStorage.getItem("membership.idempotencyKey") || Bloom.storefront.utilities._.generateHash() 886 bloomStorage.setItem('membership', { 887 membershipLevelId: variantOrMembershipLevelId, 888 frequencyId: membershipLevel.frequencies[0].id, 889 selectionsAttributes: selectionsAttributes, 890 idempotencyKey: idempotencyKey 891 }) 892 window.location = target 893 } 894} 895 896Bloom.storefront.utilities._coverButton = function(button, i) { 897 var checkoutButtonContainer = Bloom.storefront.utilities._.closestAncestor(button, '[data-bloom-checkout-container]'); 898 var checkoutBlocker; 899 var buttonComputedStyles = window && window.getComputedStyle(button); 900 var originalDisplay = button.style.display; 901 if (!checkoutButtonContainer) { 902 checkoutButtonContainer = document.createElement("span"); 903 checkoutButtonContainer.setAttribute('data-bloom-checkout-container', ""); 904 checkoutButtonContainer.style.position = 'relative'; 905 checkoutButtonContainer.style.display = buttonComputedStyles.display; 906 checkoutButtonContainer.style.margin = buttonComputedStyles.margin; 907 checkoutButtonContainer.style.width = button.style.width; 908 checkoutBlocker = document.createElement("span"); 909 checkoutBlocker.setAttribute('data-bloom-checkout-blocker', ""); 910 checkoutBlocker.style.position = "absolute";
911 checkoutBlocker.style.left = "0px"; 912 checkoutBlocker.style.top = "0px"; 913 checkoutBlocker.style.right = "0px"; 914 checkoutBlocker.style.bottom = "0px"; 915 checkoutBlocker.style.zIndex = "1"; 916 button.style.display = "none"; 917 button.style.margin = "0px"; 918 button.style.opacity = "0.3" 919 button.insertAdjacentElement('afterend', checkoutButtonContainer); 920 button.style.display = originalDisplay; 921 checkoutButtonContainer.appendChild(button); 922 checkoutButtonContainer.appendChild(checkoutBlocker); 923 } 924} 925 926Bloom.storefront.utilities._uncoverButton = function(button, i) { 927 var checkoutButtonContainer = Bloom.storefront.utilities._.closestAncestor(button, '[data-bloom-checkout-container]'); 928 if (checkoutButtonContainer) { 929 checkoutButtonContainer.insertAdjacentElement('afterend', button); 930 button.style.margin = checkoutButtonContainer.style.margin; 931 button.style.opacity = "1" 932 checkoutButtonContainer.parentNode.removeChild(checkoutButtonContainer); 933 } 934 935 Bloom.storefront.utilities._.getCart(function(cart) { 936 var form = Bloom.storefront.utilities._.closestAncestor(button, "form") 937 Bloom.storefront.utilities._.refreshFormActionDiscountCodeForCart(form, cart); 938 }) 939} 940 941Bloom.storefront.utilities.disableCheckout = function() { 942 console.log("Disabling checkout") 943 Array.prototype.forEach.call(document.querySelectorAll('[href*="checkout"]'), Bloom.storefront.utilities._coverButton) 944 Array.prototype.forEach.call(document.querySelectorAll('[name="checkout"]'), Bloom.storefront.utilities._coverButton) 945 Array.prototype.forEach.call(document.querySelectorAll('[action*="checkout"] [type="submit"]'), Bloom.storefront.utilities._coverButton) 946} 947 948Bloom.storefront.utilities.enableCheckout = function() { 949 console.log("Enabling checkout") 950 Array.prototype.forEach.call(document.querySelectorAll('[href*="checkout"]'), Bloom.storefront.utilities._uncoverButton) 951 Array.prototype.forEach.call(document.querySelectorAll('[name="checkout"]'), Bloom.storefront.utilities._uncoverButton) 952 Array.prototype.forEach.call(document.querySelectorAll('[action*="checkout"] [type="submit"]'), Bloom.storefront.utilities._uncoverButton) 953} 954 955Bloom.storefront.utilities.cartItemHasAlcohol = function(item) { 956 return !!parseInt((Bloom.storefront.data.products.find(function(p) { return p.id.toString() === item.product_id.toString() })||{}).abv) 957} 958 959Bloom.storefront.utilities.cartItemIsRecharge = function(item) { 960 return Object.keys(item.properties || []).some(function(p) { return p.toLowerCase().includes("shipping_interval") }); 961} 962 963Bloom.storefront.utilities.cartItemIsRecurring = function(item) { 964 var clubNames = ["subscription"].concat(Bloom.storefront.data.clubs.map(function(c) { return c.name.toLowerCase() })) 965 return clubNames.includes(item.product_title.toLowerCase()) || Object.keys(item.properties || []).some(function(p) { return clubNames.includes(p.toLowerCase()) }) 966} 967 968Bloom.storefront.utilities.cartItemRequiresDob = function(item) { 969 return Bloom.storefront.utilities.cartItemHasAlcohol(item) || Bloom.storefront.utilities.cartItemIsRecurring(item) 970} 971 972Bloom.storefront.utilities.cartRequiresDob = function(cart) { 973 return !!cart.items.some(Bloom.storefront.utilities.cartItemRequiresDob) 974} 975 976Bloom.storefront.utilities._.checkoutIsBlocked = function() { 977 return Bloom.storefront.settings.dob.show && Bloom.storefront.state.cartRequiresDob && !Bloom.storefront.utilities._.dobIsValid(); 978} 979 980Bloom.storefront.utilities.renderCheckout = function() { 981 Bloom.storefront.utilities._.ignoreDom() 982 if (Bloom.storefront.utilities._.checkoutIsBlocked()) { 983 Bloom.storefront.utilities.disableCheckout(); 984 } else { 985 Bloom.storefront.utilities.enableCheckout(); 986 } 987 Bloom.storefront.utilities._.observeDom() 988} 989 990Bloom.storefront.utilities._.initializeClubSignups = function(event) { 991 var el = Bloom.storefront.utilities._.closestAncestor(event.target, '[data-bloom-club-signup]'); 992 var clubInput = el.querySelector('[data-bloom-club-signup-club]') 993 var targetInput = el.querySelector('[data-bloom-club-signup-target]') 994 var defaultVariantInput = el.querySelector('[data-bloom-club-signup-default-variant]') 995 var levelInput = el.querySelector('[data-bloom-club-signup-level]') 996 var variantInput = el.querySelector('[data-bloom-club-signup-variant]') 997 var optionsInput = el.querySelector('[data-bloom-club-signup-variant]') 998 var button = el.querySelector('[data-bloom-club-signup-button]') 999 1000 if (variantInput && variantInput.options) { 1001 var selectedLevelId = variantInput.options[variantInput.selectedIndex].dataset.bloomClubSignupOption; 1002 var options = Bloom.storefront.utilities.makeArray(el.querySelectorAll('[data-bloom-club-signup-options]')).forEac
1002h(function(optionsEl) { 1003 var isSelected = optionsEl.dataset.bloomClubSignupOptions === selectedLevelId 1004 if (isSelected) { 1005 optionsEl.style.display = "inherit" 1006 } else { 1007 optionsEl.style.display = "none" 1008 } 1009 Bloom.storefront.utilities.makeArray(optionsEl.querySelectorAll('input')).forEach(function(input) { 1010 input.disabled = !isSelected 1011 input.checked = false 1012 }) 1013 }) 1014 } 1015 1016 button.addEventListener('click', function(event) { 1017 var options = [] 1018 Bloom.storefront.utilities.makeArray(el.querySelectorAll('[data-bloom-club-signup-options-input]')).forEach(function(option) { 1019 if (option.checked) { 1020 options.push(option.value) 1021 } 1022 }) 1023 var levelName = ((variantInput.options||[])[(variantInput.selectedIndex||0)]||{}).text || (levelInput||{}).value 1024 var variantId = variantInput.value || defaultVariantInput.value 1025 var properties = {} 1026 properties[clubInput.value] = levelName 1027 1028 if (options.length > 0) { 1029 var keyName = 'Selection' 1030 if (options.length > 1) { 1031 keyName = keyName + 's' 1032 } 1033 properties[keyName] = options.join(', ') 1034 } 1035 1036 Bloom.storefront.utilities.addToCart(variantId, 1, properties, targetInput.value) 1037 }) 1038} 1039 1040Bloom.storefront.utilities._.disableButton = function(button) { 1041 var spinner = document.createElement('span'); 1042 spinner.classList.add("uk-vertical-align-middle"); 1043 spinner.setAttribute('data-uk-spinner', ''); 1044 spinner.style.marginLeft = "0.5em" 1045 button.parentNode.insertBefore(spinner, button.nextSibling); 1046 // HACK: Some forms rely on checking the value of the button that was clicked. Bizarrely, 1047 // Chrome doesn't include the buttons value in the POST request if you disable the button 1048 // on submit. We get around that here by setting a slight timeout before disabling. 1049 setTimeout(function() { 1050 button.disabled = true; 1051 }) 1052} 1053 1054Bloom.storefront.utilities._.enableButton = function(button) { 1055 Bloom.storefront.utilities.makeArray(button.parentNode.querySelectorAll('[data-uk-spinner]')).forEach(function(el) { 1056 el.parentNode.removeChild(el); 1057 }) 1058 button.disabled = false; 1059} 1060 1061Bloom.storefront.utilities._.handleClubSignupSubmit = function(event) { 1062 Bloom.storefront.utilities._.cancelEvent(event) 1063 var form = event.target 1064 var errorEl = form.querySelector('[data-bloom-club-signup-error]') 1065 var button = form.querySelector('[data-bloom-club-signup-button]') 1066 errorEl.style.display = "none"; 1067 Bloom.storefront.utilities._.disableButton(button) 1068 var formData = new FormData(form); 1069 Bloom.storefront.utilities.postFormData(Bloom.storefront.data.settings.app_proxy_path + '/api/members', formData, function(response) { 1070 window.location = response.redirect_url 1071 }, function(error) { 1072 errorEl.innerHTML = error; 1073 errorEl.style.display = "block"; 1074 Bloom.storefront.utilities._.enableButton(button) 1075 }) 1076} 1077 1078Bloom.storefront.utilities._.initializeDobSelectors = function() { 1079 Bloom.storefront.utilities.makeArray(document.querySelectorAll('[data-date-selector]')).forEach(function(el) { 1080 if (!Bloom.storefront.state.cartRequiresDob) { 1081 el.style.display = 'none'; 1082 } else { 1083 el.style.display = 'inline-block'; 1084 } 1085 }) 1086 1087 Bloom.storefront.utilities.renderCheckout(); 1088} 1089 1090Bloom.storefront.utilities._.handleDateInputChange = function(event) { 1091 var dateInputEl = Bloom.storefront.utilities._.closestAncestor(event.target, '[data-date-input]') 1092 var dateString = Bloom.storefront.utilities._.getDateInputValue(dateInputEl) 1093 Bloom.storefront.utilities._.setDob(dateString) 1094 Bloom.storefront.utilities._.saveDobToCart() 1095 Bloom.storefront.utilities._.renderDateInputs() 1096} 1097 1098Bloom.storefront.utilities._.getDateInputValue = function(dateInputEl) { 1099 var dobMonthSelect = dateInputEl.querySelector('[data-date-input-select="month"]') 1100 var dobDaySelect = dateInputEl.querySelector('[data-date-input-select="day"]') 1101 var dobYearSelect = dateInputEl.querySelector('[data-date-input-select="year"]') 1102 1103 if (!(dobMonthSelect && dobDaySelect && dobYearSelect)) return; 1104 1105 var month = dobMonthSelect.options[dobMonthSelect.selectedIndex].value 1106 var day = dobDaySelect.options[dobDaySelect.selectedIndex].value 1107 var year = dobYearSelect.options[dobYearSelect.selectedIndex].value 1108 1109 return year && month && day && Bloom.storefront.utilities._.formatDateString(year + '-' + month + '-' + day) 1110} 1111 1112Bloom.storefront.utilities._.setDateInputNumberOfDays = function(dateInputEl) { 1113 Bloom.storefront.utilities._.ignoreDom() 1114 var dobMonthSelect = dateInputEl.querySelector('[data-date-input-select="month"]') 1115 var dobDaySelect = dateInputEl.querySelector('[data-date-input-select="day"]') 1116 var dobYearSelect = dateInputEl.querySelector('[data-date-input-select="year"]') 1117 1118 if (!(dobMonthSelect && dobDaySelect && dobYearSelect)) return; 1119
1120 var month = dobMonthSelect.options[dobMonthSelect.selectedIndex].value 1121 var day = dobDaySelect.options[dobDaySelect.selectedIndex].value 1122 var year = dobYearSelect.options[dobYearSelect.selectedIndex].value 1123 var currentDobString = year && month && day && (year + '-' + month + '-' + day) 1124 1125 var currentDaysCount = dobDaySelect.querySelectorAll('option').length - 1 1126 var newDaysCount = new Date(year || new Date().getFullYear(), month || new Date().getMonth() + 1, 0).getDate() 1127 1128 if (currentDaysCount !== newDaysCount) { 1129 dobDaySelect.innerHTML = '<option value="">Day</option>' 1130 for (var i = 1; i <= newDaysCount; i++) { 1131 var option = document.createElement("option"); 1132 option.value = i; 1133 option.text = i; 1134 if (i === parseInt(day)) { 1135 option.selected = true 1136 } 1137 dobDaySelect.appendChild(option); 1138 } 1139 } 1140 Bloom.storefront.utilities._.observeDom() 1141} 1142 1143Bloom.storefront.utilities._.renderDateInputs = function() { 1144 var dateInputs = Bloom.storefront.utilities.makeArray(document.querySelectorAll('[data-date-input]')) 1145 dateInputs.forEach(Bloom.storefront.utilities._.setDateInputValue) 1146 dateInputs.forEach(Bloom.storefront.utilities._.setDateInputNumberOfDays) 1147} 1148 1149Bloom.storefront.utilities._.setDateInputValue = function(dateInputEl) { 1150 var dobObject = Bloom.storefront.utilities._.getDobObject() 1151 if (dobObject.dateString) { 1152 var dobMonthSelect = dateInputEl.querySelector('[data-date-input-select="month"]') 1153 var dobDaySelect = dateInputEl.querySelector('[data-date-input-select="day"]') 1154 var dobYearSelect = dateInputEl.querySelector('[data-date-input-select="year"]') 1155 1156 var dateElementMap = { year: dobYearSelect, month: dobMonthSelect, day: dobDaySelect } 1157 Object.keys(dateElementMap).forEach(function(dateElement) { 1158 var el = dateElementMap[dateElement] 1159 if (el) { 1160 Bloom.storefront.utilities.makeArray(el.querySelectorAll('option')).forEach(function(option, i) { 1161 if (option.value.toString() === dobObject[dateElement].toString()) { 1162 el.selectedIndex = i 1163 } 1164 }) 1165 } 1166 }) 1167 } 1168} 1169 1170Bloom.storefront.utilities.domModified = Bloom.storefront.utilities.debounce(function() { 1171 Bloom.storefront.utilities.triggerCustomEvent(document, 'bloom:domModified', {}) 1172}); 1173 1174Bloom.storefront.utilities._.getDiscountCodeForCart = function(cart) { 1175 if (!window.RecurringOptions) return; 1176 if (!!Bloom.storefront.data.settings.use_v1_discounts) return; 1177 var discount = Bloom.storefront.utilities._.recurringOptions.discountForCustomerTagsAndLineItems( 1178 Bloom.storefront.data.customer.tags, 1179 cart.items, 1180 Bloom.storefront.data.settings.automatic_discount_codes 1181 ) 1182 return (discount||{}).code 1183}; 1184 1185Bloom.storefront.utilities._.hasNonCodeDiscount = function() { 1186 if (!!Bloom.storefront.data.settings.use_v1_discounts) { return true; } 1187 return (typeof discountNinja !== 'undefined') && discountNinja.DiscountedCart.GetAppliedPromotions().length 1188} 1189 1190Bloom.storefront.utilities._.doNativeCheckout = function(cart) { 1191 var hasNonCodeDiscount = Bloom.storefront.utilities._.hasNonCodeDiscount(); 1192 var hasRechargeItem = cart.items.some(Bloom.storefront.utilities.cartItemIsRecharge); 1193 var cartHasRecurring = cart.items.some(Bloom.storefront.utilities.cartItemIsRecurring); 1194 return hasNonCodeDiscount || hasRechargeItem || (!Bloom.storefront.data.settings.always_use_bloom_checkout && !cartHasRecurring); 1195}; 1196 1197Bloom.storefront.utilities._.getCart = Bloom.storefront.utilities.debounce(function(successCallback) { 1198 return fetch('/cart.js') 1199 .then(function(response) { 1200 return response.json() 1201 }) 1202 .then(function(data) { 1203 successCallback(data) 1204 }); 1205}); 1206 1207Bloom.storefront.utilities.handleCheckoutClick = function(event) { 1208 var form = Bloom.storefront.utilities._.closestAncestor(event.target, "form"); 1209 var inputButton = Bloom.storefront.utilities._.closestAncestor(event.target, "input"); 1210 var button = Bloom.storefront.utilities._.closestAncestor(event.target, "button"); 1211 var anchor = Bloom.storefront.utilities._.closestAncestor(event.target, "a"); 1212 var submitElement = form || anchor || button; 1213 var isNativeCheckoutRetry = ((submitElement||{}).dataset||{}).bloomNativeCheckoutRetry == 'true'; 1214 1215 if (!isNativeCheckoutRetry && (Bloom.storefront.utilities._.checkoutIsBlocked() || !Bloom.storefront.utilities._.hasNonCodeDiscount())) { 1216 Bloom.storefront.utilities._.cancelEvent(event) 1217 } 1218 Bloom.storefront.utilities._.getCart(function(cart) { 1219 var doNativeCheckout = Bloom.storefront.utilities._.doNativeCheckout(cart) 1220 if (!doNativeCheckout) { 1221 Bloom.storefront.utilities._.cancelEvent(event) 1222 } 1223 if (Bloom.storefront.utilities._.checkoutIsBlocked()) { return false } 1224 if (Bloom.storefront.utilities._.hasNonCodeDiscount()) { return true } 1225 var discountCode = Bloom.storefront.utilities._.refreshFormActionDiscountCodeForCart(form, cart); 1226 1227 if (doNativeCheckout && !isNativeCheckoutRetry && !!submitElement) { 1228 submitElement.setAttribute('data-bloom-native-checkout-retry', 'true') 1229 if (!!discountCode && !!Bloom.storefront.data.settings.strong_checkout_control) { 1230 Bloom.storefront.utilities.checkout(discountCode, { target: 'shopify' }) 1231 } else { 1232 button && button.click(); 1233 inputButton && inputButton.click(); 1234 anchor && anchor.click(); 1235 event.target && event.target.click(); 1236 } 1237 } else if (doNativeCheckout && !submitElement) { 1238 Bloom.storefront.utilities.checkout(discountCode, { target: 'shopify' }) 1239 } else if (!doNativeCheckout) { 1240 (button||{}).disabled = true; 1241 (inputButton||{}).disabled = true; 1242 (anchor||{}).disabled = true; 1243 ((event||{}).target||{}).disabled = true;
1244 try { 1245 Bloom.storefront.utilities.checkout(discountCode, { target: 'bloom' }) 1246 } catch (e) { 1247 (button||{}).disabled = false; 1248 (inputButton||{}).disabled = false; 1249 (anchor||{}).disabled = false; 1250 ((event||{}).target||{}).disabled = false; 1251 } 1252 } 1253 }) 1254} 1255 1256Bloom.storefront.utilities._.refreshFormActionDiscountCodeForCart = function(form, cart) { 1257 if (!!Bloom.storefront.data.settings.use_v1_discounts) return; 1258 var formActionUrl = new URL((form||{}).action || window.location.pathname, window.location.origin); 1259 var formActionParams = new URLSearchParams(formActionUrl.search); 1260 var discountCode = formActionParams.get('discount'); 1261 if (!discountCode) { 1262 discountCode = Bloom.storefront.utilities._.getDiscountCodeForCart(cart); 1263 } 1264 if (discountCode && form) { 1265 if (!!Bloom.storefront.data.settings.strong_checkout_control) { 1266 formActionUrl.pathname = "/checkout" 1267 } 1268 formActionParams.set('discount', discountCode); 1269 form.action = formActionUrl.pathname + '?' + formActionParams.toString(); 1270 } 1271 return discountCode; 1272} 1273 1274Bloom.storefront.utilities.checkout = function(discountCode, options) { 1275 options = Object.assign({ target: 'bloom' }, options) 1276 if (discountCode) { 1277 bloom.setDiscountCode(discountCode) 1278 } 1279 if (options.target === 'bloom') { 1280 bloom.goToBloomCheckout() 1281 } else { 1282 bloom.goToShopifyCheckout() 1283 } 1284} 1285 1286Bloom.storefront.utilities._.domObserver = new MutationObserver(function(mutationsList, observer) { 1287 for(var i = 0; i < mutationsList.length; i++) { 1288 var mutation = mutationsList[i] 1289 // console.log(mutation) 1290 if (mutation.type === 'childList') { 1291 Bloom.storefront.utilities.domModified() 1292 } 1293 } 1294}) 1295 1296Bloom.storefront.utilities._.observeDom = function() { 1297 Bloom.storefront.utilities._.domObserver.observe(document, { childList: true, subtree: true }); 1298} 1299 1300Bloom.storefront.utilities._.ignoreDom = function() { 1301 Bloom.storefront.utilities._.domObserver.disconnect(); 1302} 1303 1304Bloom.storefront.utilities._.observeDom() 1305 1306Bloom.storefront.utilities._.handleCheckoutClickEvents = function(el, i) { 1307 Bloom.storefront.settings.clickEvents.forEach(function(eventName) { 1308 el.addEventListener(eventName, Bloom.storefront.utilities.handleCheckoutClick) 1309 }) 1310} 1311 1312Bloom.storefront.utilities.ready(function() { 1313 Bloom.storefront.utilities.makeArray(document.querySelectorAll('[href*="checkout"]')).forEach(Bloom.storefront.utilities._.handleCheckoutClickEvents); 1314 Bloom.storefront.utilities.makeArray(document.querySelectorAll('[name="checkout"]')).forEach(Bloom.storefront.utilities._.handleCheckoutClickEvents); 1315 Bloom.storefront.utilities.makeArray(document.querySelectorAll('[action*="checkout"] [type="submit"]')).forEach(Bloom.storefront.utilities._.handleCheckoutClickEvents); 1316 1317 Bloom.storefront.utilities.makeArray(document.querySelectorAll('[name="checkout_url"]')).forEach(function(el, i) { 1318 if (el.value.includes('checkout')) { 1319 el.value = '/cart'; 1320 } 1321 }); 1322 1323 Bloom.storefront.utilities.makeArray(document.querySelectorAll("[action='/account/activate']")).forEach(function(el) { 1324 var input = document.createElement("input"); 1325 input.setAttribute("type", "hidden"); 1326 input.setAttribute("name", "return_to"); 1327 input.setAttribute("value", new URL(window.location.href).searchParams.get("return_to") || ""); 1328 el.appendChild(input); 1329 }); 1330 1331 // Redirect back to cart after forgot password flow to ensure club member benefits are applied 1332 Bloom.storefront.utilities.makeArray(document.querySelectorAll("[action='/account/reset']")).forEach(function(el) { 1333 var input = document.createElement("input"); 1334 input.setAttribute("type", "hidden"); 1335 input.setAttribute("name", "return_to"); 1336 input.setAttribute("value", new URL(window.location.href).searchParams.get("return_to") || "/cart"); 1337 el.appendChild(input); 1338 }); 1339 1340 Bloom.storefront.utilities.domModified() 1341 1342 if (window.RecurringOptions) { 1343 Bloom.storefront.utilities._.recurringOptions = new window.RecurringOptions( 1344 Bloom.storefront.data.clubs.filter(function(c) { return ["traditional", "allocation"].includes(c.clubType) }), 1345 Bloom.storefront.data.clubs.filter(function(c) { return ["subscription"].includes(c.clubType) }), 1346 Bloom.storefront.data.subscriptionVariants 1347 ) 1348 } 1349 1350 // Reattach after Age Gate loads because some clients are using the age gate in weird ways 1351 window.bloom = Object.assign(window.bloom, bloomShopify) 1352}); 1353 1354if (Bloom.storefront.data.settings.is_sales_channel) {
1355 Bloom.storefront.settings.clickEvents.forEach(function(eventName) { 1356 Bloom.storefront.utilities.addDelegatedEventListener(eventName, '[href*="checkout"]', Bloom.storefront.utilities.handleCheckoutClick) 1357 Bloom.storefront.utilities.addDelegatedEventListener(eventName, '[name="checkout"]', Bloom.storefront.utilities.handleCheckoutClick) 1358 Bloom.storefront.utilities.addDelegatedEventListener(eventName, '[action*="checkout"] [type="submit"]', Bloom.storefront.utilities.handleCheckoutClick) 1359 }) 1360} 1361 1362Bloom.storefront.utilities.addDelegatedEventListener('blur', '[data-date-input-select]', Bloom.storefront.utilities._.handleDateInputChange) 1363Bloom.storefront.utilities.addDelegatedEventListener('change', '[data-date-input-select]', Bloom.storefront.utilities._.handleDateInputChange) 1364Bloom.storefront.utilities.addDelegatedEventListener('blur', '[data-date-selector]', Bloom.storefront.utilities._.initializeDobSelectors) 1365Bloom.storefront.utilities.addDelegatedEventListener('change', '[data-date-selector]', Bloom.storefront.utilities._.initializeDobSelectors) 1366 1367// Bloom.storefront.utilities.addDelegatedEventListener('blur', '[data-bloom-club-signup-variant]', Bloom.storefront.utilities._.initializeClubSignups) 1368// Bloom.storefront.utilities.addDelegatedEventListener('change', '[data-bloom-club-signup-variant]', Bloom.storefront.utilities._.initializeClubSignups) 1369 1370Bloom.storefront.utilities.addDelegatedEventListener('submit', '[data-bloom-club-signup]', Bloom.storefront.utilities._.handleClubSignupSubmit) 1371 1372Bloom.storefront.utilities.addDelegatedEventListener('click', '[data-bloom-click-disable]', function(event) { Bloom.storefront.utilities._.disableButton(event.target) }) 1373 1374Bloom.storefront.utilities.addDelegatedEventListener('change', '[name^="attributes"]', function(event) { 1375 var attributeName = event.target.getAttribute("name").substring(11, event.target.getAttribute("name").length-1); 1376 var request = new XMLHttpRequest(); 1377 request.open('POST', '/cart/update.js', true); 1378 request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'); 1379 var hasFilledInGiftField = Array.from(document.querySelectorAll('[name^="attributes"]')) 1380 .some(function(a) { 1381 var attributeName = a.getAttribute('name').substring(11, a.getAttribute("name").length-1) 1382 return a.value && ['To', 'From', 'Gift message'].map(function (gF) { return gF.toLowerCase() }).includes(attributeName.toLowerCase()) 1383 }) 1384 var attributes = {} 1385 attributes[attributeName] = event.target.value 1386 attributes['Gift'] = hasFilledInGiftField ? 'Yes' : '' 1387 request.send(Object.keys(attributes).map(function(key) { 1388 return 'attributes[' + key + ']' + '=' + attributes[key].toString() 1389 }).join('&')); 1390}) 1391 1392document.addEventListener('bloom:domModified', function(e) { 1393 Bloom.storefront.utilities.getJSON('/cart.js', function(cart) { 1394 Bloom.storefront.state.cartRequiresDob = Bloom.storefront.utilities.cartRequiresDob(cart) 1395 Bloom.storefront.utilities._.setDob(cart.attributes["Customer date of birth"]) 1396 1397 Bloom.storefront.utilities._.renderDateInputs() 1398 Bloom.storefront.utilities._.initializeDobSelectors() 1399 }, function(error) { 1400 console.log(error) 1401 }) 1402}) 1403 1404</script>
1404 1405 1406<style> 1407 .Bloom__DateOfBirth__Default .Bloom__DateInput--input_wrapper { 1408 display: inline-block; 1409 } 1410 1411 .Bloom__DateOfBirth__Default select { 1412 min-width: 5.5em; 1413 padding: 8px 10px !important; 1414 line-height: 1.42 !important; 1415 } 1416 1417 .Bloom__DateOfBirth__Default select { 1418 -webkit-appearance: none; 1419 -moz-appearance: none; 1420 appearance: none; 1421 background-image: url("https://bloomapp-production.herokuapp.com/assets/ico-select.svg"); 1422 background-repeat: no-repeat; 1423 background-position: right 10px center; 1424 padding-right: 28px; 1425 text-indent: 0.01px; 1426 text-overflow: ''; 1427 cursor: pointer; 1428 } 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 .Bloom__Button--Primary, .uk-dialog .Bloom__Button--Primary, .Bloom__Button--Primary:hover { 1460 background-color: #525252; 1461 border: 1px solid #525252; 1462 color: #ffffff; 1463 } 1464 .Bloom__Button--Secondary, .uk-dialog .Bloom__Button--Secondary, .Bloom__Button--Secondary:hover { 1465 background-color: #ffffff; 1466 border: 1px solid #ffffff; 1467 color: #525252; 1468 } 1469 .Bloom__Button--Inverted, .uk-dialog .Bloom__Button--Inverted, .Bloom__Button--Inverted:hover { 1470 background-color: #ffffff; 1471 border: 1px solid #525252; 1472 color: #525252; 1473 } 1474</style> 1475 1476 <!-- BLOOM allocations ========================= --> 1477
1477<script src="//tokalonvineyardcompany.com/cdn/shop/t/4/assets/ply.utilities.js?v=105973956941303038351647375507" type="text/javascript"></script>
1477 1478
1478<script src="//tokalonvineyardcompany.com/cdn/shop/t/4/assets/ply.allocation-select-button.js?v=84696294348811196861647375502" type="text/javascript"></script>
1478 1479
1479<script src="//tokalonvineyardcompany.com/cdn/shop/t/4/assets/ply.allocation-wishlist-quantity.js?v=671242419894840851647375502" type="text/javascript"></script>
1479 1480
1480<script src="//tokalonvineyardcompany.com/cdn/shop/t/4/assets/ply.allocation-wizard-product-details.js?v=30927842149508424531647375503" type="text/javascript"></script>
1480 1481
1481<script src="//tokalonvineyardcompany.com/cdn/shop/t/4/assets/ply.allocation-wizard-step.js?v=48559188590870558061647375504" type="text/javascript"></script>
1481 1482
1482<script src="//tokalonvineyardcompany.com/cdn/shop/t/4/assets/ply.allocation-wizard-selection-step.js?v=70103225412668401221647375503" type="text/javascript"></script>
1482 1483
1483<script src="//tokalonvineyardcompany.com/cdn/shop/t/4/assets/ply.allocation-wizard-wishlist-step.js?v=55426913426586256001647375504" type="text/javascript"></script>
1483 1484
1484<script src="//tokalonvineyardcompany.com/cdn/shop/t/4/assets/ply.allocation-wizard.js?v=96084222219994315101647375505" type="text/javascript"></script>
1484 1485
1485<script src="//sdks.shopifycdn.com/js-buy-sdk/v1/latest/index.umd.min.js"></script>
1485 1486 1487 <!-- BEGIN app block: shopify://apps/redirects-app/blocks/default_pages_redirect/01a0ef10-313e-7f91-9dcd-02616c7447f7 --> 1488 1489<!-- END app block --><meta property="og:image" content="https://cdn.shopify.com/s/files/1/0617/7983/7174/files/Web_PNG-To_Kalon_Vineyard_Co_Logo_-_Stacked_cd5f4cfb-3699-479e-8ba2-0101f4d0a167.png?v=1768515064" /> 1490<meta property="og:image:secure_url" content="https://cdn.shopify.com/s/files/1/0617/7983/7174/files/Web_PNG-To_Kalon_Vineyard_Co_Logo_-_Stacked_cd5f4cfb-3699-479e-8ba2-0101f4d0a167.png?v=1768515064" /> 1491<meta property="og:image:width" content="800" /> 1492<meta property="og:image:height" content="200" /> 1493<meta property="og:image:alt" content="To Kalon Vineyard Company logo " /> 1494<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
1495<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: 61779837174,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "customers/login"};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 1495
1495
1496<script> 1497 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 1498</script>
vendor: 1 bytes, line 1498
1498
1499<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}
1499).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: 61779837174,storefrontBaseUrl: "https://tokalonvineyardcompany.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://tokalonvineyardcompany.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"1672904950","configuration":"{\"accountID\":\"RBQqnP\",\"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":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"To Kalon Vineyard Company","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"tokalonvineyardcompany.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/tokalonvineyardcompany.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[],"purchasingCompany":null},},"https://tokalonvineyardcompany.com/cdn","5982071ew7ea472e3p69b68784m2150dfea",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"129772126454","themePublished":"true","eventMetadataId":"e937e001-14df-4f50-a1f1-73bcd7e7c3a1","shopId":"61779837174","storefrontBaseUrl":"https:\/\/tokalonvineyardcompany.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"5982071ew7ea472e3p69b68784m2150dfea","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
1499<script> 1500 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 1501 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 1502 window.ShopifyAnalytics.meta.currency = 'USD'; 1503 var meta = {"page":{"requestId":"f0cef07c-d36b-4ba2-942d-11a71920c55e-1791147583"}}; 1504 for (var attr in meta) { 1505 window.ShopifyAnalytics.meta[attr] = meta[attr]; 1506 } 1507</script>
vendor: 1 bytes, line 1507
1507
1508<script class="analytics"> 1509 (function () { 1510 var customDocumentWrite = function(content) { 1511 var jquery = null; 1512 1513 if (window.jQuery) { 1514 jquery = window.jQuery; 1515 } else if (window.Checkout && window.Checkout.$) { 1516 jquery = window.Checkout.$; 1517 } 1518 1519 if (jquery) { 1520 jquery('body').append(content); 1521 } 1522 }; 1523 1524 var hasLoggedConversion = function(token) { 1525 if (token) { 1526 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 1527 } 1528 return false; 1529 } 1530 1531 var setCookieIfConversion = function(token) { 1532 if (token) { 1533 var twoMonthsFromNow = new Date(Date.now()); 1534 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 1535 1536 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 1537 } 1538 } 1539 1540 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 1541 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 1542 if (trekkie.integrations) { 1543 return; 1544 } 1545 trekkie.methods = [ 1546 'identify', 1547 'page', 1548 'ready', 1549 'track', 1550 'trackForm', 1551 'trackLink' 1552 ]; 1553 trekkie.factory = function(method) { 1554 return function() { 1555 var args = Array.prototype.slice.call(arguments); 1556 args.unshift(method); 1557 trekkie.push(args); 1558 if (method == 'track' || method == 'page') { 1559 var pageUrl; 1560 try { 1561 pageUrl = window.location.href; 1562 } catch (e) {} 1563 var pageReferrer; 1564 try { 1565 pageReferrer = document.referrer; 1566 } catch (e) {} 1567 try { 1568 if (window.__TREKKIE_SHIM_QUEUE == null) { 1569 window.__TREKKIE_SHIM_QUEUE = []; 1570 } 1571 window.__TREKKIE_SHIM_QUEUE.push({ 1572 from: 'trekkie-stub', 1573 method: method, 1574 args: args.slice(1), 1575 pageContext: { 1576 url: pageUrl, 1577 referrer: pageReferrer 1578 } 1579 }); 1580 } catch (e) { 1581 // no-op 1582 } 1583 } 1584 return trekkie; 1585 }; 1586 }; 1587 for (var i = 0; i < trekkie.methods.length; i++) { 1588 var key = trekkie.methods[i]; 1589 trekkie[key] = trekkie.factory(key); 1590 } 1591 trekkie.load = function(config) { 1592 trekkie.config = config || {}; 1593 trekkie.config.initialDocumentCookie = document.cookie; 1594 var first = document.getElementsByTagName('script')[0]; 1595var script = document.createElement('script'); 1596script.type = 'text/javascript'; 1597script.onerror = function(e) { 1598 var scriptFallback = document.createElement('script'); 1599 scriptFallback.type = 'text/javascript'; 1600 scriptFallback.onerror = function(error) { 1601 var Monorail = { 1602 produce: function produce(monorailDomain, schemaId, payload) { 1603 var currentMs = new Date().getTime(); 1604 var event = { 1605 schema_id: schemaId, 1606 payload: payload, 1607 metadata: { 1608 event_created_at_ms: currentMs, 1609 event_sent_at_ms: currentMs 1610 } 1611 }; 1612 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 1613 }, 1614 sendRequest: function sendRequest(endpointUrl, payload) { 1615 // Try the sendBeacon API 1616 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 1617 var blobData = new window.Blob([payload], { 1618 type: 'text/plain' 1619 }); 1620 1621 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 1622 return true; 1623 } // sendBeacon was not successful 1624 1625 } // XHR beacon 1626 1627 var xhr = new XMLHttpRequest(); 1628 1629 try { 1630 xhr.open('POST', endpointUrl); 1631 xhr.setRequestHeader('Content-Type', 'text/plain'); 1632 xhr.send(payload); 1633 } catch (e) { 1634 console.log(e); 1635 } 1636 1637 return false; 1638 }, 1639 isIos12: function isIos12() { 1640 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 1641 } 1642 }; 1643 Monorail.produce('monorail-edge.shopifysvc.com', 1644 'trekkie_storefront_load_errors/1.1', 1645 {shop_id: 61779837174, 1646 theme_id: 129772126454, 1647 app_name: "storefront", 1648 context_url: window.location.href, 1649 source_url: "//tokalonvineyardcompany.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js"}); 1650 1651 }; 1652 scriptFallback.async = true; 1653 scriptFallback.src = '//tokalonvineyardcompany.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 1654 first.parentNode.insertBefore(scriptFallback, first); 1655}; 1656script.async = true; 1657script.src = '//tokalonvineyardcompany.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 1658first.parentNode.insertBefore(script, first); 1659 1660 }; 1661 trekkie.load( 1662 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":61779837174,"isMerchantRequest":null,"themeId":129772126454,"themeCityHash":"17877926767186340965","contentLanguage":"en","currency":"USD","eventMetadataId":"e937e001-14df-4f50-a1f1-73bcd7e7c3a1"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 1663 ); 1664 1665 var loaded = false;
1666 trekkie.ready(function() { 1667 if (loaded) return; 1668 loaded = true; 1669 1670 window.ShopifyAnalytics.lib = window.trekkie; 1671 1672 var originalDocumentWrite = document.write; 1673 document.write = customDocumentWrite; 1674 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 1675 document.write = originalDocumentWrite; 1676 1677 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 1678 var token = match? match[1]: undefined; 1679 if (!hasLoggedConversion(token)) { 1680 setCookieIfConversion(token); 1681 1682 } 1683 }); 1684 1685 window.ShopifyAnalytics.lib.page(null,{"requestId":"f0cef07c-d36b-4ba2-942d-11a71920c55e-1791147583","shopifyEmitted":true}); 1686 1687 var eventsListenerScript = document.createElement('script'); 1688 eventsListenerScript.async = true; 1689 eventsListenerScript.src = "//tokalonvineyardcompany.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 1690 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 1691})();</script>
vendor: 1 bytes, line 1691
1691
1692<script 1693 defer 1694 src="https://tokalonvineyardcompany.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 1695 data-application="storefront-renderer" 1696 data-shop-id="61779837174" 1697 data-render-region="gcp-us-central1" 1698 data-page-type="customers/login" 1699 data-theme-instance-id="129772126454" 1700 data-theme-name="Prestige" 1701 data-theme-version="5.0.0" 1702 data-monorail-region="shop_domain" 1703 data-resource-timing-sampling-rate="10" 1704 data-shs="true" 1705 data-shs-beacon="true" 1706 data-shs-export-with-fetch="true" 1707 data-shs-logs-sample-rate="1" 1708 data-shs-beacon-endpoint="https://tokalonvineyardcompany.com/api/collect" 1709></script>
1709 1710<meta name="shopify-y" content="00000000-0000-0000-5000-000000000000" data-expiration="1822705183000"><meta name="shopify-s" content="00000000-0000-0000-5000-000000000000" data-expiration="1791149383000"><meta name="new-cookie-storage-activated" content="t"> 1711</head><body class="prestige--v4 features--heading-large features--heading-uppercase features--show-page-transition features--show-element-staggering template-customers template-login"> 1712 <!-- Google Tag Manager (noscript) -->
vendor: 78 bytes, lines 1712-1714
1712 1713 <noscript> 1714 <iframe src="https://www.googletagmanager.com/ns.html?id=
1714GTM-WMDKN99
vendor: 94 bytes, lines 1714-1716
1714" height="0" width="0" style="display:none;visibility:hidden"></iframe> 1715 </noscript> 1716
1716<!-- End Google Tag Manager (noscript) --> 1717 1718 1719 1720 1721 <a class="PageSkipLink u-visually-hidden" href="#main">Skip to content</a> 1722 <span class="LoadingBar"></span> 1723 1724<div class="PageTransition"></div><div id="shopify-section-popup" class="shopify-section"></div> 1725 <div id="shopify-section-sidebar-menu" class="shopify-section"><section id="sidebar-menu" class="SidebarMenu Drawer Drawer--small Drawer--fromLeft" aria-hidden="true" data-section-id="sidebar-menu" data-section-type="sidebar-menu"> 1726 <header class="Drawer__Header" data-drawer-animated-left> 1727 <button class="Drawer__Close Icon-Wrapper--clickable" data-action="close-drawer" data-drawer-id="sidebar-menu" aria-label="Close navigation"><svg class="Icon Icon--close" role="presentation" viewBox="0 0 16 14"> 1728 <path d="M15 0L1 14m14 0L1 0" stroke="currentColor" fill="none" fill-rule="evenodd"></path> 1729 </svg></button> 1730 </header> 1731 1732 <div class="Drawer__Content"> 1733 <div class="Drawer__Main" data-drawer-animated-left data-scrollable> 1734 <div class="Drawer__Container"> 1735 <nav class="SidebarMenu__Nav SidebarMenu__Nav--primary" aria-label="Sidebar navigation"><div class="Collapsible"><a href="/collections/wines" class="Collapsible__Button Heading Link Link--primary u-h6">OUR WINES</a></div><div class="Collapsible"><a href="/pages/winemaker" class="Collapsible__Button Heading Link Link--primary u-h6">WINEMAKER</a></div><div class="Collapsible"><a href="/pages/vineyard" class="Collapsible__Button Heading Link Link--primary u-h6">VINEYARD</a></div><div class="Collapsible"><a href="/pages/visit" class="Collapsible__Button Heading Link Link--primary u-h6">VISIT</a></div><div class="Collapsible"><a href="/pages/join-the-list" class="Collapsible__Button Heading Link Link--primary u-h6">JOIN THE LIST</a></div><div class="Collapsible"><a href="/blogs/news" class="Collapsible__Button Heading Link Link--primary u-h6">IN THE NEWS</a></div> 1736<li class="Collapsible"> 1737 <a href="/account" class="Collapsible__Button Heading Link Link--primary u-h6">Account</a> 1738 </li></nav><nav class="SidebarMenu__Nav SidebarMenu__Nav--secondary"> 1739 <ul class="Linklist Linklist--spacingLoose"></ul> 1740 </nav> 1741 </div> 1742 </div><aside class="Drawer__Footer" data-drawer-animated-bottom><ul class="SidebarMenu__Social HorizontalList HorizontalList--spacingFill"> 1743 <li class="HorizontalList__Item"> 1744 <a href="https://www.instagram.com/ToKalonVineyardCompany" class="Link Link--primary" target="_blank" rel="noopener" aria-label="Instagram"> 1745 <span class="Icon-Wrapper--clickable"><svg class="Icon Icon--instagram" role="presentation" viewBox="0 0 32 32"> 1746 <path d="M15.994 2.886c4.273 0 4.775.019 6.464.095 1.562.07 2.406.33 2.971.552.749.292 1.283.635 1.841 1.194s.908 1.092 1.194 1.841c.216.565.483 1.41.552 2.971.076 1.689.095 2.19.095 6.464s-.019 4.775-.095 6.464c-.07 1.562-.33 2.406-.552 2.971-.292.749-.635 1.283-1.194 1.841s-1.092.908-1.841 1.194c-.565.216-1.41.483-2.971.552-1.689.076-2.19.095-6.464.095s-4.775-.019-6.464-.095c-1.562-.07-2.406-.33-2.971-.552-.749-.292-1.283-.635-1.841-1.194s-.908-1.092-1.194-1.841c-.216-.565-.483-1.41-.552-2.971-.076-1.689-.095-2.19-.095-6.464s.019-4.775.095-6.464c.07-1.562.33-2.406.552-2.971.292-.749.635-1.283 1.194-1.841s1.092-.908 1.841-1.194c.565-.216 1.41-.483 2.971-.552 1.689-.083 2.19-.095 6.464-.095zm0-2.883c-4.343 0-4.889.019-6.597.095-1.702.076-2.864.349-3.879.743-1.054.406-1.943.959-2.832 1.848S1.251 4.473.838 5.521C.444 6.537.171 7.699.095 9.407.019 11.109 0 11.655 0 15.997s.019 4.889.095 6.597c.076 1.702.349 2.864.743 3.886.406 1.054.959 1.943 1.848 2.832s1.784 1.435 2.832 1.848c1.016.394 2.178.667 3.886.743s2.248.095 6.597.095 4.889-.019 6.597-.095c1.702-.076 2.864-.349 3.886-.743 1.054-.406 1.943-.959 2.832-1.848s1.435-1.784 1.848-2.832c.394-1.016.667-2.178.743-3.886s.095-2.248.095-6.597-.019-4.889-.095-6.597c-.076-1.702-.349-2.864-.743-3.886-.406-1.054-.959-1.943-1.848-2.832S27.532 1.247 26.484.834C25.468.44 24.306.167 22.598.091c-1.714-.07-2.26-.089-6.603-.089zm0 7.778c-4.533 0-8.216 3.676-8.216 8.216s3.683 8.216 8.216 8.216 8.216-3.683 8.216-8.216-3.683-8.216-8.216-8.216zm0 13.549c-2.946 0-5.333-2.387-5.333-5.333s2.387-5.333 5.333-5.333 5.333 2.387 5.333 5.333-2.387 5.333-5.333 5.333zM26.451 7.457c0 1.059-.858 1.917-1.917 1.917s-1.917-.858-1.917-1.917c0-1.059.858-1.917 1.917-1.917s1.917.858 1.917 1.917z"></path> 1747 </svg></span> 1748 </a> 1749 </li> 1750 1751 1752 1753 </ul> 1754 1755</aside></div> 1756</section> 1757 1758</div> 1759<div id="sidebar-cart" style="display:none;
1759" class="Drawer Drawer--fromRight" aria-hidden="true" data-section-id="cart" data-section-type="cart" data-section-settings='{ 1760 "type": "drawer", 1761 "itemCount": 0, 1762 "drawer": true, 1763 "hasShippingEstimator": false 1764}'> 1765 <div class="Drawer__Header Drawer__Header--bordered Drawer__Container"> 1766 <span class="Drawer__Title Heading u-h4">Cart</span> 1767 1768 <button class="Drawer__Close Icon-Wrapper--clickable" data-action="close-drawer" data-drawer-id="sidebar-cart" aria-label="Close cart"><svg class="Icon Icon--close" role="presentation" viewBox="0 0 16 14"> 1769 <path d="M15 0L1 14m14 0L1 0" stroke="currentColor" fill="none" fill-rule="evenodd"></path> 1770 </svg></button> 1771 </div> 1772 1773 <form class="Cart Drawer__Content" action="/cart" method="POST" novalidate> 1774 <div class="Drawer__Main" data-scrollable><p class="Cart__Empty Heading u-h5">Your cart is empty</p></div></form> 1775</div> 1776<div class="PageContainer"> 1777 1778 1779 1780 1781 <!-- AGEGATE CODE --> 1782 <link rel="stylesheet" href="https://agegate.cbrands.com/css/agegate-widget.css"> 1783
1783<script src="https://agegate.cbrands.com/js/agegate-widget.js" type="text/javascript" data-access-token="bdd38f04-ae0d-4d2a-a66d-f563bf2963c2"></script>
1783 1784 <!-- END AGEGATE CODE --> 1785 1786 <div id="shopify-section-bloom-cart-panel-section" class="shopify-section"> 1787 1788 1789 1790 1791<div data-bloom-cart-config='{"enabled":false,"show_shipping_fees":false,"base_font":{"error":"json not allowed for this object"},"base_font_size":16,"button_border_radius":0,"text_link_color":"#26387b","continue_shopping_url":null,"header_text":"Your cart","close_icon_label":"","header_font":{"error":"json not allowed for this object"},"header_font_size":16,"line_item_title_font":{"error":"json not allowed for this object"},"line_item_title_font_size":16,"line_item_description_font":{"error":"json not allowed for this object"},"line_item_description_font_size":16,"quantity_picker_border_color":"#000000","quantity_picker_button_background_color":"#000000","quantity_picker_button_text_color":"#ffffff","quantity_picker_input_background_color":"#ffffff","quantity_picker_input_text_color":"#000000","quantity_picker_border_radius":0,"quantity_picker_font_size":16,"quantity_picker_padding":0.5,"quantity_picker_input_border_radius":0,"footer_message":"\u003cp\u003eSomeone 21+ must sign for deliveries\u003c\/p\u003e","legal_message":"\u003cp\u003eWARNING: Drinking distilled spirits, beer, coolers, wine and other alcoholic beverages may increase cancer risk, and during pregnancy, can cause birth defects. For more information go to \u003ca href=\"https:\/\/www.P65Warnings.ca.gov\/alcohol\" title=\"https:\/\/www.P65Warnings.ca.gov\/alcohol\"\u003ewww.P65Warnings.ca.gov\/alcohol\u003c\/a\u003e\u003c\/p\u003e","legal_message_font":{"error":"json not allowed for this object"},"legal_message_font_size":11,"footer_background_color":"#cccccc","error_background_color":"#f8cfd7","error_text_color":"#7a0d22","dob_error_message":"Please enter birth date in format MM\/DD\/YYYY","button_focus_color":"#5458e9"}'></div> 1792 1793<style> 1794 1795 1796@font-face { 1797 font-family: Alegreya; 1798 font-weight: 400; 1799 font-style: normal; 1800 src: url("//tokalonvineyardcompany.com/cdn/fonts/alegreya/alegreya_n4.9d59d35c9865f13cc7223c9847768350c0c7301a.woff2") format("woff2"), 1801 url("//tokalonvineyardcompany.com/cdn/fonts/alegreya/alegreya_n4.a883043573688913d15d350b7a40349399b2ef99.woff") format("woff"); 1802} 1803 1804@font-face { 1805 font-family: Alegreya; 1806 font-weight: 400; 1807 font-style: normal; 1808 src: url("//tokalonvineyardcompany.com/cdn/fonts/alegreya/alegreya_n4.9d59d35c9865f13cc7223c9847768350c0c7301a.woff2") format("woff2"), 1809 url("//tokalonvineyardcompany.com/cdn/fonts/alegreya/alegreya_n4.a883043573688913d15d350b7a40349399b2ef99.woff") format("woff"); 1810} 1811 1812@font-face { 1813 font-family: Alegreya; 1814 font-weight: 400; 1815 font-style: normal; 1816 src: url("//tokalonvineyardcompany.com/cdn/fonts/alegreya/alegreya_n4.9d59d35c9865f13cc7223c9847768350c0c7301a.woff2") format("woff2"), 1817 url("//tokalonvineyardcompany.com/cdn/fonts/alegreya/alegreya_n4.a883043573688913d15d350b7a40349399b2ef99.woff") format("woff"); 1818} 1819 1820@font-face { 1821 font-family: Alegreya; 1822 font-weight: 400; 1823 font-style: normal; 1824 src: url("//tokalonvineyardcompany.com/cdn/fonts/alegreya/alegreya_n4.9d59d35c9865f13cc7223c9847768350c0c7301a.woff2") format("woff2"), 1825 url("//tokalonvineyardcompany.com/cdn/fonts/alegreya/alegreya_n4.a883043573688913d15d350b7a40349399b2ef99.woff") format("woff"); 1826} 1827 1828@font-face { 1829 font-family: Alegreya; 1830 font-weight: 400; 1831 font-style: normal; 1832 src: url("//tokalonvineyardcompany.com/cdn/fonts/alegreya/alegreya_n4.9d59d35c9865f13cc7223c9847768350c0c7301a.woff2") format("woff2"), 1833 url("//tokalonvineyardcompany.com/cdn/fonts/alegreya/alegreya_n4.a883043573688913d15d350b7a40349399b2ef99.woff") format("woff"); 1834} 1835 1836 1837:root { 1838 --bloom-cart-panel-base-font-family: Alegreya, serif;
1839 --bloom-cart-panel-base-font-weight: 400; 1840 --bloom-cart-panel-base-font-style: normal; 1841 --bloom-cart-panel-base-font-size: 16px; 1842 --bloom-cart-panel-text-link-color: #26387b; 1843 --bloom-cart-panel-button-focus-color: #5458e9; 1844 1845 --bloom-cart-panel-header-font-family: Alegreya, serif; 1846 --bloom-cart-panel-header-font-weight: 400; 1847 --bloom-cart-panel-header-font-style: normal; 1848 --bloom-cart-panel-header-font-size: 16px; 1849 1850 --bloom-cart-panel-line-item-title-font-family: Alegreya, serif; 1851 --bloom-cart-panel-line-item-title-font-weight: 400; 1852 --bloom-cart-panel-line-item-title-font-style: normal; 1853 --bloom-cart-panel-line-item-title-font-size: 16px; 1854 --bloom-cart-panel-line-item-description-font-family: Alegreya, serif; 1855 --bloom-cart-panel-line-item-description-font-weight: 400; 1856 --bloom-cart-panel-line-item-description-font-style: normal; 1857 --bloom-cart-panel-line-item-description-font-size: 16px; 1858 1859 --bloom-cart-panel-quantity-picker-border-color: #000000; 1860 --bloom-cart-panel-quantity-picker-button-background-color: #000000; 1861 --bloom-cart-panel-quantity-picker-button-text-color: #ffffff; 1862 --bloom-cart-panel-quantity-picker-input-background-color: #ffffff; 1863 --bloom-cart-panel-quantity-picker-input-text-color: #000000; 1864 --bloom-cart-panel-quantity-picker-border-radius: 0px; 1865 --bloom-cart-panel-quantity-picker-font-size: 16px; 1866 --bloom-cart-panel-quantity-picker-padding-vertical: 0.5em; 1867 --bloom-cart-panel-quantity-picker-padding-horizontal: 0.75em; 1868 --bloom-product-form-option-picker-border-radius: 0px; 1869 --bloom-product-form-option-picker-border-input-radius: 0px; 1870 1871 --bloom-cart-panel-legal-message-font-family: Alegreya, serif; 1872 --bloom-cart-panel-legal-message-font-weight: 400; 1873 --bloom-cart-panel-legal-message-font-style: normal; 1874 --bloom-cart-panel-legal-message-font-size: 11px; 1875 --bloom-cart-panel-footer-background-color: #cccccc; 1876 1877 --bloom-cart-panel-error-background-color: #f8cfd7; 1878 --bloom-cart-panel-error-text-color: #7a0d22; 1879} 1880</style> 1881
1882<script> 1883 function initializeBloomCartSection() { 1884 var config = Bloom.storefront.utilities._.keysToCamel( 1885 JSON.parse(document.querySelector("[data-bloom-cart-config]").dataset["bloomCartConfig"]) 1886 ) 1887 Object.assign( 1888 config, 1889 Bloom.storefront.settings.cart 1890 ) 1891 bloom.storage().setItem('cartPanel', Object.assign({}, config, {dobSettings: Bloom.storefront.settings.dob})) 1892 } 1893 document.addEventListener('shopify:section:load', initializeBloomCartSection) 1894 initializeBloomCartSection() 1895 1896 1897</script>
1897 1898 1899 1900</div> 1901 <div id="shopify-section-cbi-cart" class="shopify-section"> 1902 1903 1904 1905 1906 <div id="cbi-cart_wrapper"> 1907 <div class="cbi-cart_overlay"></div> 1908 <div class="cbi-cart_shell" role="dialog" aria-modal="true" aria-label="Shopping cart" aria-hidden="true"> 1909 <div class="cbi-cart_container"> 1910 <div class="cbi-cart"> 1911 <div class="cbi-cart_header"> 1912 1913 <div class="cbi-cart_heading"> 1914 <h2 id="cbi-cart_title" style=" 1915 text-align: left; 1916 font-size: 24px; 1917 1918 "> 1919 Your Cart 1920 </h2> 1921 </div> 1922 1923 <div class="cbi-cart_close"> 1924 <button aria-label="Close shopping cart" id="cbi-cart_close" class="cbi-cart_close-button"> 1925 <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="#000000" id="close" role="img" aria-labelledby="cbi-cart_close-icon"> 1926 <title id="cbi-cart_close-icon"> 1927 Close 1928 </title> 1929 <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"> 1930 </path> 1931 </svg> 1932 </button> 1933</div> 1934 1935 </div> 1936 <style> 1937 .shipping-progress_carrot-container { 1938 display: flex; 1939 flex-direction: column; 1940 align-items: center; 1941 padding: 21px 21px 0px 21px; 1942 box-shadow: 0px 5px 5px rgba(0, 0, 0, 0.4); 1943 } 1944 1945 .shipping-progress_carrot { 1946 width: 100%; 1947 height: 5px; 1948 background-color: #D9D9D9; 1949 border-radius: 25px; 1950 overflow: hidden; 1951 position: relative; 1952 margin-bottom: 0px; 1953 } 1954 1955 .shipping-progress_carrot-progress { 1956 height: 100%; 1957 background-color: #c64040; 1958 transition: width 0.4s ease-in-out; 1959 width: 3%; /* Default minimum width to prevent flash */ 1960 } 1961 1962 /* Disable transition during initial load to prevent flash */ 1963 .shipping-progress_carrot-progress.no-transition { 1964 transition: none !important; 1965 } 1966 1967 .shipping-progress_buttons button { 1968 margin: 5px; 1969 padding: 10px; 1970 font-size: 16px; 1971 } 1972 .shipping-progress_shipping-progress-text{ 1973 font-size: 14px; 1974 margin-right: auto; 1975 margin-bottom: .5rem !important; 1976 width: 100%; 1977 text-align: left; 1978 color: #000000 1979 } 1980 .shipping-progress_carrot-progress-complete{ 1981 background-color: #3aa960; 1982 } 1983 .shipping-progress_free-shipping-text{ 1984 margin-right: auto; 1985 margin-bottom: .5rem !important; 1986 font-size: 14px; 1987 } 1988 1989 .shipping-progress_carrot-message { 1990 font-size: 14px; 1991 width: 100%; 1992 margin-top: 0.5rem; 1993 text-align: left; 1994 } 1995 1996 .shipping-progress_carrot-container:not(:has(.shipping-progress_carrot)) { 1997 padding: 10px 21px 0 21px; 1998 border-bottom: 1px solid #e0e0e0; 1999 box-shadow: none; 2000 } 2001 2002 .shipping-progress_primary-message { 2003 width: 100%; 2004 text-align: left; 2005 margin: 0.5rem 0; 2006 } 2007 2008</style> 2009 2010 2011 2012 2013 <div class="cbi-cart_body" style="display: block;"> 2014 <p class="cbi-cart_empty-text" style="color: #000000;display: block;">Your cart is empty.</p> 2015 <div class=cbi-cart_button-container style="display: flex;"> 2016 <a href="/collections/all" role="button" aria-label="Continue Shopping" class="cbi-cart_button button-default"> 2017 Continue Shopping 2018 </a> 2019 </div> 2020 </div> 2021 2022 <div class="cbi-cart_footer"> 2023 <div 2024 class="mini-cart-summary" 2025 id="mini-cart-summary" 2026 2027 style="display:none;" 2028 2029> 2030 <!-- Order Summary Header --> 2031 <div class="order-summary-header"> 2032 <h2 class="summary-title">Order Summary</h2> 2033 <button id="toggle-summary-details" class="toggle-summary-details"> 2034 <!-- chevron --> 2035 <svg 2036 xmlns="http://www.w3.org/2000/svg" 2037 width="16" 2038 height="16" 2039 fill="currentColor" 2040 class="bi bi-chevron-down"
2041 viewBox="0 0 16 16" 2042 > 2043 <path fill-rule="evenodd" 2044 d="M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708" /> 2045 </svg> 2046 </button> 2047 </div> 2048 2049 <!-- Discount Code Input --> 2050 <div class="discount-code-container"> 2051 2052 <div class="coupon-codes"></div> 2053 </div><div 2054 class="order-summary" 2055 id="order-summary-content"> 2056 <div class="summary-item" id="subtotal-container"> 2057 <span>Subtotal<span class="info-icon"> 2058 ? 2059 <span class="tooltip">The subtotal reflects the total price of your order before any applicable discounts. It does not include 2060 final shipping charges and taxes, if applicable.</span> 2061 </span> 2062 </span> 2063 <span id="subtotal-amount">$0.00</span> 2064 </div> 2065 2066 <!-- Total Savings --> 2067 2068 <div 2069 2070 style="display:none;" 2071 2072 class="summary-item savings" 2073 id="savings-container" 2074 > 2075 <span>Total savings</span> 2076 <span id="savings-amount">$0.00</span> 2077 </div> 2078 2079 <!-- Estimated Shipping --><div class="summary-item" id="shipping-container"> 2080 <span>Estimated shipping<span class="info-icon"> 2081 ? 2082 <span class="tooltip">Final shipping charges are provided at checkout and are based on your shipping address and the carrier 2083 services available.</span> 2084 </span> 2085 </span> 2086 <span id="shipping-amount"> </span> 2087 </div><!-- Tax --><div class="summary-item"> 2088 <span>Tax calculated at checkout<span class="info-icon"> 2089 ? 2090 <span class="tooltip">Actual taxes will be calculated based on state and local taxes for your shipping address at checkout.</span> 2091 </span> 2092 </span> 2093 <span>-</span> 2094 </div></div> 2095 2096 <div class="order-summary-divider"></div> 2097 <div class="order-summary-footer"> 2098 <!-- Estimated Total --> 2099 <div class="summary-total"> 2100 <span>Estimated total</span> 2101 <span id="estimated-total">$0.00</span> 2102 </div> 2103 <!-- Checkout Button --> 2104 <button class="checkout-button" id="checkout-button">Checkout</button> 2105 </div> 2106</div>
2106<script> 2107 window.OrderSummaryConfig = { 2108 flatRate: "0.00", 2109 shippingEnabled: false, 2110 minBottles: 1 2111 }; 2112</script>
2112 2113 2114<style> 2115 /* Order Summary Title */ 2116 .order-summary-header .summary-title { 2117 color: #000000; /* Black */ 2118 font-weight: normal; /* Regular */ 2119 font-size: 20px; /* 20 px */ 2120 } 2121 2122 /* Add Discount Code Label */ 2123 .discount-code-container .discount-label { 2124 color: #000000; /* Black */ 2125 font-weight: normal; /* Regular */ 2126 font-size: 10px; /* 10 px */ 2127 } 2128 2129 /* Apply Discount Button */ 2130 .discount-code-container .apply-discount-btn { 2131 color: #000000; /* Black */ 2132 font-weight: bold; /* Bold */ 2133 font-size: 12px; /* 12 px */ 2134 border: 1px solid #616161; /* Stroke color */ 2135 background-color: #ffffff; /* White */ 2136 } 2137 2138 /* Apply Discount Button Focus */ 2139 .discount-code-container .apply-discount-btn:focus { 2140 outline: 2px solid #000000; 2141 outline-offset: 2px; 2142 } 2143 2144 /* Apply Discount Error Message */ 2145 .coupon-feedback { 2146 color: #dc1212; /* #DC1212 */ 2147 font-weight: normal; /* Regular */ 2148 font-size: 10px; /* 10 px */ 2149 border: none; 2150 } 2151 2152 /* Subtotal and Corresponding $ Value */ 2153 #subtotal-container { 2154 color: #000000; /* Black */ 2155 font-weight: normal; /* Regular */ 2156 font-size: 16px; /* 16 px */ 2157 } 2158 2159 /* Total Savings Label */ 2160 #savings-container span:first-child { 2161 color: #000000; /* Black */ 2162 font-weight: normal; /* Regular */ 2163 font-size: 16px; /* 16 px */ 2164 } 2165 2166 /* Total Savings $ Value */ 2167 #savings-amount { 2168 color: #dc1212; /* #DC1212 */ 2169 font-weight: normal; /* Regular */ 2170 font-size: 16px; /* 16 px */ 2171 } 2172 2173 /* Estimated Shipping and Corresponding $ Value */ 2174 #shipping-container { 2175 color: #000000; /* Black */ 2176 font-weight: normal; /* Regular */ 2177 font-size: 16px; /* 16 px */ 2178 } 2179 2180 /* Included Shipping */ 2181 #shipping-container .included-shipping { 2182 color: #dc1212; /* #DC1212 */ 2183 font-weight: normal; /* Regular */ 2184 font-size: 16px; /* 16 px */ 2185 } 2186 2187 /* Tax Calculated at Checkout */ 2188 .order-summary .summary-item:last-child { 2189 color: #000000; /* Black */ 2190 font-weight: normal; /* Regular */ 2191 font-size: 16px; /* 16 px */ 2192 } 2193 2194 /* Estimated Total and Corresponding $ Value */ 2195 .summary-total { 2196 color: #000000; /* Black */ 2197 font-weight: bold; /* Bold */ 2198 font-size: 16px; /* 16 px */ 2199 } 2200</style> 2201 2202 2203 2204<style> 2205 .cbi-cart_footer-container { 2206 padding: 1.5rem; 2207 color: #000000; 2208 background-color: #f0f0f0; 2209 font-size: 14px; 2210 width: 100%; 2211 } 2212 2213 2214</style> 2215 2216<div class="cbi-cart_footer-container"> 2217 <div class="cbi-cart__footer-subcontainer"> 2218 <p>Someone 21+ must sign for deliveries.</p> 2219 </div> 2220</div> 2221 2222 2223 </div> 2224 </div> 2225 </div> 2226 </div> 2227 </div> 2228 2229<style> 2230 @font-face { 2231 font-family: Aleo; 2232 font-weight: 400; 2233 font-style: normal; 2234 src: url("//tokalonvineyardcompany.com/cdn/fonts/aleo/aleo_n4.136670fa4cfe14df9f97954729b65c53d88b12be.woff2") format("woff2"), 2235 url("//tokalonvineyardcompany.com/cdn/fonts/aleo/aleo_n4.5d64991d1f526ac4e19640bbdebcbc191ef24ad0.woff") format("woff"); 2236} 2237 2238 @font-face { 2239 font-family: Aleo; 2240 font-weight: 400; 2241 font-style: normal; 2242 src: url("//tokalonvineyardcompany.com/cdn/fonts/aleo/aleo_n4.136670fa4cfe14df9f97954729b65c53d88b12be.woff2") format("woff2"), 2243 url("//tokalonvineyardcompany.com/cdn/fonts/aleo/aleo_n4.5d64991d1f526ac4e19640bbdebcbc191ef24ad0.woff") format("woff"); 2244} 2245 2246 2247 #cbi-cart_wrapper * { 2248 font-family: Aleo !important; 2249 } 2250 2251 #cbi-cart_wrapper .cbi-cart_footer-container p { 2252 font-family: Aleo !important; 2253 } 2254 2255 /* Cart Header */ 2256 .cbi-cart_heading { 2257 color: #000000; 2258 } 2259 2260 .cbi-cart_heading h2 { 2261 text-align: left; 2262 font-size: 24px; 2263 font-family: Aleo; 2264 font-weight: normal; 2265 } 2266 2267 /* Product Name */ 2268 .cart-product-details h4 { 2269 color: #000000; 2270 font-weight: bold; 2271 font-size: 16px; 2272 line-height: 1.25; 2273 } 2274 2275 /* Product Description */ 2276 .cart-product-details .description { 2277 color: #616161; 2278 font-weight: 500; 2279 font-size: 12px; 2280 } 2281 2282 /* Variant Info */ 2283 .cart-product-details .description-variant { 2284 color: #616161; 2285 font-weight: 500; 2286 font-size: 10px; 2287 } 2288 2289 /* Total Price */ 2290 .cart-product-details .total-price { 2291 color: #000000; 2292 font-weight: bold; 2293 font-size: 10px; 2294 } 2295 2296 /* Original Total Price (Discounted) */ 2297 .cart-product-details .total-price .original-price { 2298 color: #616161; 2299 font-weight: 500; 2300 font-size: 10px; 2301 text-decoration: line-through; 2302 } 2303 2304 /* Discount Codes Badges Container */ 2305 .cart-product-details .item-coupon-codes { 2306 display: flex; 2307 flex-direction: column; 2308 justify-content: flex-start; 2309 } 2310 2311 /* Discount Codes Badges */ 2312 .cart-product-details .coupon-box { 2313 display: flex; 2314 color: #000000; 2315 background: #e7e7e7; 2316 font-size: 9px; 2317 font-weight: normal;
2318 align-items: center; 2319 white-space: nowrap; 2320 padding-top: 2px; 2321 padding-left: 10px; 2322 padding-right: 10px; 2323 width: fit-content; 2324 text-transform: uppercase; 2325 } 2326 2327 /* Quantity Picker */ 2328 .qty-increment-decrement-container { 2329 color: #000000; 2330 font-weight: normal; 2331 font-size: 12px; 2332 border: 1px solid #E3E3E3; 2333 border-radius: 4px; 2334 } 2335 2336 /* Quantity Read-Only */ 2337 .qty-increment-decrement-container input { 2338 color: #303030; 2339 font-weight: normal; 2340 font-size: 12px; 2341 background-color: #F2F2F2; 2342 } 2343 2344 /* Subscription Frequency and Quantity Labels */ 2345 .qty-increment-decrement-container label { 2346 color: #616161; 2347 font-weight: normal; 2348 font-size: 8px; 2349 } 2350 2351 /* Subscription Frequency and Quantity Selected Options */ 2352 .qty-increment-decrement-container select { 2353 color: #000000; 2354 font-weight: normal; 2355 font-size: 12px; 2356 } 2357 2358 .qty-increment-decrement-container .atc-label { 2359 font-size: 12px; 2360 color: #303030; 2361 background-color: revert; 2362 width: auto; 2363 } 2364 .qty-increment-decrement-container .atc-input { 2365 font-size: 12px; 2366 color: #303030; 2367 background-color: revert; 2368 padding: 0; 2369 width: 15%; 2370 } 2371 2372 /* Cart Error Message container */ 2373 .cart-error-message { 2374 display: flex; 2375 justify-content: space-between; 2376 align-items: center; 2377 color: #DC1212; 2378 font-weight: bold; 2379 font-size: 12px; 2380 padding: 5px 0 5px 25px; 2381 background-color: #F7D0D7; 2382 } 2383 2384 /* Cart Error Message */ 2385 .cart-error-message .close-button { 2386 padding-bottom: 10px; 2387 padding-right: 10px; 2388 cursor: pointer; 2389 border-radius: 50%; 2390 font-size: 9px; 2391 } 2392 2393 /* Min Required Bottles Banner */ 2394 .cart-minimum-bottles-message { 2395 color: #DC1212; 2396 font-weight: bold; 2397 font-size: 12px; 2398 background-color: #F7D0D7; 2399 } 2400 2401 .qty-cart-box-container { 2402 border-radius: 4px; 2403 } 2404 2405 #checkout-button { 2406 border-radius: 4px; 2407 } 2408 2409 #discount-code { 2410 border-radius: 4px; 2411 } 2412 2413 #apply-discount { 2414 border-radius: 4px; 2415 padding: 6px; 2416 } 2417 2418 .cbi-cart_button-container .cbi-cart_button { 2419 border-radius: 4px; 2420 } 2421 2422 .cbi-cart_button { 2423 padding: 8px 32px; 2424 color: #ffffff; 2425 font-size: 13px; 2426 font-weight: bold !important; 2427 background-color: #000000; 2428 width: 100%; 2429 } 2430 2431 .mini-cart-summary .checkout-button { 2432 background-color: #000000; 2433 color: #ffffff; 2434 font-weight: bold !important; 2435 font-size: 13px; 2436 } 2437 2438 .mini-cart-summary .checkout-button:focus { 2439 outline: 2px solid #000000; 2440 outline-offset: 2px; 2441 } 2442 2443 /* Flash animation for minimum bottles message */ 2444 @keyframes flashMessage { 2445 0% { background-color: transparent; } 2446 50% { background-color: #ffeb3b; } 2447 100% { background-color: transparent; } 2448 } 2449 2450 .cbi-cart_shell .button-default,.cbi-cart_shell .btn,.cbi-cart_shell .button { 2451 cursor: pointer; 2452 min-width: 10rem; 2453 text-align: center; 2454 align-items: center; 2455 padding-left: 2rem; 2456 padding-right: 2rem; 2457 padding-top: 0.75rem; 2458 padding-bottom: 0.75rem; 2459 display: inline-block; 2460} 2461.cbi-cart_shell strong { 2462 font-weight: 700; 2463} 2464 2465 /* Ensure checkout button stays above pinned footer */ 2466 2467</style> 2468
2469<script src="//tokalonvineyardcompany.com/cdn/shop/t/4/assets/cbi-cart.js?v=164912031827199139031779135902" defer></script>
vendor: 1 bytes, line 2469
2469
2470<script src="//tokalonvineyardcompany.com/cdn/shop/t/4/assets/cbi-cart-order-summary.js?v=113967901708102435841779135902" defer></script>
vendor: 1 bytes, line 2470
2470
2471<script> 2472 // Send some variables to global scope for use in cart script 2473 window.CBI_CART_ICON_SELECTOR = "#cartToggle"; 2474 window.CBI_CART_ICON_MOBILE_SELECTOR = "#cartToggleMob"; 2475 window.CBI_CART_ADD_TO_CART_FUNCTION = "addAndOpenCart"; 2476 2477 2478 window.addEventListener('DOMContentLoaded', function() { 2479 // attach correct z-index to shopify created element 2480 const cartSection = document.getElementById("shopify-section-cbi-cart") 2481 cartSection.style.zIndex = "auto"; 2482 }); 2483 2484 // Dynamically adjust bottom padding so checkout button never overlaps pinned footer 2485 (function() { 2486 function adjustCartFooterSpace() { 2487 var footer = document.querySelector('.cbi-cart_footer-container'); 2488 var scrollEl = document.querySelector('.cbi-cart'); 2489 if (!footer || !scrollEl) return; 2490 if (getComputedStyle(footer).position === 'fixed') { 2491 var h = footer.offsetHeight; 2492 // Only update if changed to avoid layout thrash 2493 if (scrollEl.__lastFooterPadding !== h) { 2494 scrollEl.style.paddingBottom = h + 'px'; 2495 scrollEl.__lastFooterPadding = h; 2496 } 2497 } 2498 } 2499 document.addEventListener('DOMContentLoaded', adjustCartFooterSpace); 2500 document.addEventListener('cart:updated', adjustCartFooterSpace); 2501 window.addEventListener('resize', adjustCartFooterSpace); 2502 // In case cart is opened later and footer renders after initial load 2503 setTimeout(adjustCartFooterSpace, 500); 2504 })(); 2505</script>
2505 2506<link rel="stylesheet" href="//tokalonvineyardcompany.com/cdn/shop/t/4/assets/cbi-cart.css?v=77446357512812318751779135902"> 2507 2508</div> 2509 <div id="shopify-section-announcement" class="shopify-section"><style> #shopify-section-announcement a {color: #ffffff;} </style></div> 2510 <div id="shopify-section-header" class="shopify-section shopify-section--header"> 2511
2511<script src="//tokalonvineyardcompany.com/cdn/shop/t/4/assets/utilities.js?v=137537359326123982021683030182" defer></script>
2511 2512
2512<script src="//tokalonvineyardcompany.com/cdn/shop/t/4/assets/cart-indicator.js?v=82592180962382752861683030180" defer></script>
2512 2513 2514<div id="Search" class="Search" aria-hidden="true"> 2515 <div class="Search__Inner"> 2516 <div class="Search__SearchBar"> 2517 <form action="/search" name="GET" role="search" class="Search__Form"> 2518 <div class="Search__InputIconWrapper"> 2519 <span class="hidden-tablet-and-up"><svg class="Icon Icon--search" role="presentation" viewBox="0 0 18 17"> 2520 <g transform="translate(1 1)" stroke="currentColor" fill="none" fill-rule="evenodd" stroke-linecap="square"> 2521 <path d="M16 16l-5.0752-5.0752"></path> 2522 <circle cx="6.4" cy="6.4" r="6.4"></circle> 2523 </g> 2524 </svg></span> 2525 <span class="hidden-phone"><svg class="Icon Icon--search-desktop" role="presentation" viewBox="0 0 21 21"> 2526 <g transform="translate(1 1)" stroke="currentColor" stroke-width="2" fill="none" fill-rule="evenodd" stroke-linecap="square"> 2527 <path d="M18 18l-5.7096-5.7096"></path> 2528 <circle cx="7.2" cy="7.2" r="7.2"></circle> 2529 </g> 2530 </svg></span> 2531 </div> 2532 2533 <input type="search" class="Search__Input Heading" name="q" autocomplete="off" autocorrect="off" autocapitalize="off" aria-label="Search..." placeholder="Search..." autofocus> 2534 <input type="hidden" name="type" value="product"> 2535 </form> 2536 2537 <button class="Search__Close Link Link--primary" data-action="close-search" aria-label="Close search"><svg class="Icon Icon--close" role="presentation" viewBox="0 0 16 14"> 2538 <path d="M15 0L1 14m14 0L1 0" stroke="currentColor" fill="none" fill-rule="evenodd"></path> 2539 </svg></button> 2540 </div> 2541 2542 <div class="Search__Results" aria-hidden="true"></div> 2543 </div> 2544</div><header id="section-header" 2545 class="Header Header--logoLeft " 2546 data-section-id="header" 2547 data-section-type="header" 2548 data-section-settings='{ 2549 "navigationStyle": "logoLeft", 2550 "hasTransparentHeader": false, 2551 "isSticky": true 2552}' 2553 role="banner"> 2554 <div class="Header__Wrapper"> 2555 <div class="Header__FlexItem Header__FlexItem--fill"> 2556 <button class="Header__Icon Icon-Wrapper Icon-Wrapper--clickable hidden-desk" aria-expanded="false" data-action="open-drawer" data-drawer-id="sidebar-menu" aria-label="Open navigation"> 2557 <span class="hidden-tablet-and-up"><svg class="Icon Icon--nav" role="presentation" viewBox="0 0 20 14"> 2558 <path d="M0 14v-1h20v1H0zm0-7.5h20v1H0v-1zM0 0h20v1H0V0z" fill="currentColor"></path> 2559 </svg></span> 2560 <span class="hidden-phone"><svg class="Icon Icon--nav-desktop" role="presentation" viewBox="0 0 24 16"> 2561 <path d="M0 15.985v-2h24v2H0zm0-9h24v2H0v-2zm0-7h24v2H0v-2z" fill="currentColor"></path> 2562 </svg></span> 2563 </button><nav class="Header__MainNav hidden-pocket hidden-lap" aria-label="Main navigation"> 2564 <ul class="HorizontalList HorizontalList--spacingExtraLoose"><li class="HorizontalList__Item " > 2565 <a href="/collections/wines" class="Heading u-h6">OUR WINES<span class="Header__LinkSpacer">OUR WINES</span></a></li><li class="HorizontalList__Item " > 2566 <a href="/pages/winemaker" class="Heading u-h6">WINEMAKER<span class="Header__LinkSpacer">WINEMAKER</span></a></li><li class="HorizontalList__Item " > 2567 <a href="/pages/vineyard" class="Heading u-h6">VINEYARD<span class="Header__LinkSpacer">VINEYARD</span></a></li><li class="HorizontalList__Item " > 2568 <a href="/pages/visit" class="Heading u-h6">VISIT<span class="Header__LinkSpacer">VISIT</span></a></li><li class="HorizontalList__Item " > 2569 <a href="/pages/join-the-list" class="Heading u-h6">JOIN THE LIST<span class="Header__LinkSpacer">JOIN THE LIST</span></a></li><li class="HorizontalList__Item " > 2570 <a href="/blogs/news" class="Heading u-h6">IN THE NEWS<span class="Header__LinkSpacer">IN THE NEWS</span></a></li></ul> 2571 </nav></div><div class="Header__FlexItem Header__FlexItem--logo"> 2572 <div class="Header__Logo"><a href="/" class="Header__LogoLink"><img class="Header__LogoImage Header__LogoImage--primary" 2573 src="//tokalonvineyardcompany.com/cdn/shop/files/Web_PNG-To_Kalon_Vineyard_Co_Logo_-_Stacked_copy_160x.png?v=1642309667" 2574 srcset="//tokalonvineyardcompany.com/cdn/shop/files/Web_PNG-To_Kalon_Vineyard_Co_Logo_-_Stacked_copy_160x.png?v=1642309667 1x, //tokalonvineyardcompany.com/cdn/shop/files/[email protected]?v=1642309667 2x" 2575 width="800" 2576 height="200" 2577 alt="To Kalon Vineyard Company logo "></a></div> 2578 </div> 2579 2580 <div class="Header__FlexItem Header__FlexItem--fill"><nav class="Header__SecondaryNav hidden-phone"> 2581 <ul class="HorizontalList HorizontalList--spacingLoose hidden-pocket hidden-lap"><li class="HorizontalList__Item"> 2582 <a href="/account" class="Heading Link Link--primary Text--subdued u-h6">Account</a> 2583 </li> 2584 2585 2586 <a id="cartToggle" href="/cart" class="Header__Icon Icon-Wrapper Icon-Wrapper--clickable " data-action="open-drawer" data-drawer-id="sidebar-cart" aria-expanded="false" aria-label="Open cart"> 2587 <div id="cart-counter" class="cart-count hidden" style="background-color: ;" data-cart-count-bubble=""> 2588 0 2589 </div>
2590 <span class="hidden-tablet-and-up"><svg class="Icon Icon--cart" role="presentation" viewBox="0 0 17 20"> 2591 <path d="M0 20V4.995l1 .006v.015l4-.002V4c0-2.484 1.274-4 3.5-4C10.518 0 12 1.48 12 4v1.012l5-.003v.985H1V19h15V6.005h1V20H0zM11 4.49C11 2.267 10.507 1 8.5 1 6.5 1 6 2.27 6 4.49V5l5-.002V4.49z" fill="currentColor"></path> 2592 </svg></span> 2593 <span class="hidden-phone"><svg class="Icon Icon--cart-desktop" role="presentation" viewBox="0 0 19 23"> 2594 <path d="M0 22.985V5.995L2 6v.03l17-.014v16.968H0zm17-15H2v13h15v-13zm-5-2.882c0-2.04-.493-3.203-2.5-3.203-2 0-2.5 1.164-2.5 3.203v.912H5V4.647C5 1.19 7.274 0 9.5 0 11.517 0 14 1.354 14 4.647v1.368h-2v-.912z" fill="currentColor"></path> 2595 </svg></span> 2596 </a> 2597 2598 2599<!-- <li class="HorizontalList__Item"> 2600 <a href="/cart" class="Heading u-h6" data-action="open-drawer" data-drawer-id="sidebar-cart" aria-label="Open cart">Cart (<span class="Header__CartCount">0</span>)</a> 2601 </li> --> 2602 2603 </ul> 2604 </nav> 2605 2606 2607<!-- <a href="/cart" class="Header__Icon Icon-Wrapper Icon-Wrapper--clickable hidden-desk" data-action="open-drawer" data-drawer-id="sidebar-cart" aria-expanded="false" aria-label="Open cart"> 2608 <span class="hidden-tablet-and-up"><svg class="Icon Icon--cart" role="presentation" viewBox="0 0 17 20"> 2609 <path d="M0 20V4.995l1 .006v.015l4-.002V4c0-2.484 1.274-4 3.5-4C10.518 0 12 1.48 12 4v1.012l5-.003v.985H1V19h15V6.005h1V20H0zM11 4.49C11 2.267 10.507 1 8.5 1 6.5 1 6 2.27 6 4.49V5l5-.002V4.49z" fill="currentColor"></path> 2610 </svg></span> 2611 <span class="hidden-phone"><svg class="Icon Icon--cart-desktop" role="presentation" viewBox="0 0 19 23"> 2612 <path d="M0 22.985V5.995L2 6v.03l17-.014v16.968H0zm17-15H2v13h15v-13zm-5-2.882c0-2.04-.493-3.203-2.5-3.203-2 0-2.5 1.164-2.5 3.203v.912H5V4.647C5 1.19 7.274 0 9.5 0 11.517 0 14 1.354 14 4.647v1.368h-2v-.912z" fill="currentColor"></path> 2613 </svg></span> 2614 <span class="Header__CartDot "></span> 2615 2616 </a> --> 2617 2618 <a id="cartToggleMob" href="/cart" class="Header__Icon Icon-Wrapper Icon-Wrapper--clickable hidden-desk" data-action="open-drawer" data-drawer-id="sidebar-cart" aria-expanded="false" aria-label="Open cart"> 2619 <div id="cart-counter-mob" class="cart-count hidden" style="background-color: ;" data-cart-count-bubble=""> 2620 0 2621 </div> 2622 <span class="hidden-tablet-and-up"><svg class="Icon Icon--cart" role="presentation" viewBox="0 0 17 20"> 2623 <path d="M0 20V4.995l1 .006v.015l4-.002V4c0-2.484 1.274-4 3.5-4C10.518 0 12 1.48 12 4v1.012l5-.003v.985H1V19h15V6.005h1V20H0zM11 4.49C11 2.267 10.507 1 8.5 1 6.5 1 6 2.27 6 4.49V5l5-.002V4.49z" fill="currentColor"></path> 2624 </svg></span> 2625 <span class="hidden-phone"><svg class="Icon Icon--cart-desktop" role="presentation" viewBox="0 0 19 23"> 2626 <path d="M0 22.985V5.995L2 6v.03l17-.014v16.968H0zm17-15H2v13h15v-13zm-5-2.882c0-2.04-.493-3.203-2.5-3.203-2 0-2.5 1.164-2.5 3.203v.912H5V4.647C5 1.19 7.274 0 9.5 0 11.517 0 14 1.354 14 4.647v1.368h-2v-.912z" fill="currentColor"></path> 2627 </svg></span> 2628 </a> 2629 2630 </div> 2631 </div> 2632 2633 2634</header> 2635 2636<style>:root { 2637 --use-sticky-header: 1; 2638 --use-unsticky-header: 0; 2639 } 2640 2641 .shopify-section--header { 2642 position: -webkit-sticky; 2643 position: sticky; 2644 }.Header__LogoImage { 2645 max-width: 160px; 2646 } 2647 2648 @media screen and (max-width: 640px) { 2649 .Header__LogoImage { 2650 max-width: 100px; 2651 } 2652 }:root { 2653 --header-is-not-transparent: 1; 2654 --header-is-transparent: 0; 2655 }</style> 2656
2657<script> 2658 2659 const myInterval = setInterval(myTimer, 1000); 2660 2661 function myTimer() { 2662 if(document.getElementById("bloomCloseCart") != null){ 2663 document.getElementById("bloomCloseCart").setAttribute("data-action","close-drawer") 2664 document.getElementById("bloomCloseCart").setAttribute("data-drawer-id","sidebar-cart") 2665 document.querySelectorAll(".BloomOverlay-module__StorefrontOverlay___1hHqm")[0].setAttribute("data-action","close-drawer"); 2666 document.querySelectorAll(".BloomOverlay-module__StorefrontOverlay___1hHqm")[0].setAttribute("data-drawer-id","sidebar-cart") 2667 clearInterval(myInterval); 2668 } 2669 } 2670 2671 document.documentElement.style.setProperty('--header-height', document.getElementById('shopify-section-header').offsetHeight + 'px'); 2672</script>
2672 2673 2674</div> 2675 2676 <main id="main" role="main"> 2677 <section id="shopify-section-template--15529286140150__main_customers_login_2_D4npPz" class="shopify-section customer-login"><div class="wrapper-customer-login" data-section-id="login" data-section-type="login"> 2678 <div class="Container"> 2679 <div class="PageContent PageContent--fitScreen PageContent--extraNarrow"><form method="post" action="/account/recover" accept-charset="UTF-8"><input type="hidden" name="form_type" value="recover_customer_password" /><input type="hidden" name="utf8" value="â" /></form><form method="post" action="/account/login" id="customer_login" accept-charset="UTF-8" data-login-with-shop-sign-in="true" name="login" class="Form Form--spacingTight" style="display: block"><input type="hidden" name="form_type" value="customer_login" /><input type="hidden" name="utf8" value="â" /><header class="Form__Header"> 2680 <h1 class="Heading u-h1 uk-margin-bottom">Member Login</h1> 2681 2682 </header> 2683 2684 2685<div class="Form__Item"> 2686 <label for=customer[email] class="Form__Label">Email</label> 2687 <input type="email" class="Form__Input" id=customer[email] name=customer[email] required="required" aria-label="Email" autofocus> 2688 </div> 2689 2690 <div class="Form__Item"> 2691 <div class="flex space-between"> 2692 <label for=customer[password] class="Form__Label flex-inline-item">Password</label> 2693 <button type="button" class="Link flex-inline-item" data-action="toggle-recover-form">Forgot your password?</button> 2694 </div> 2695 <div class="Form__InputWrapper"> 2696 <input type="password" class="Form__Input" id=customer[password] name=customer[password] required="required" aria-label="Password" /> 2697 <button class="show-hide-password-btn" type="button" aria-label="show password" onclick="toggleIcon(this)"> 2698 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none"> 2699 <path fill-rule="evenodd" clip-rule="evenodd" d="M13 10C13 11.6569 11.6569 13 10 13C8.34315 13 7 11.6569 7 10C7 8.34315 8.34315 7 10 7C11.6569 7 13 8.34315 13 10ZM11.5 10C11.5 10.8284 10.8284 11.5 10 11.5C9.17157 11.5 8.5 10.8284 8.5 10C8.5 9.17157 9.17157 8.5 10 8.5C10.8284 8.5 11.5 9.17157 11.5 10Z" fill="#8A8A8A"/> 2700 <path fill-rule="evenodd" clip-rule="evenodd" d="M10 4C7.52353 4 5.65153 5.22977 4.42264 6.53216C3.80748 7.18413 3.34017 7.86704 3.02329 8.45447C2.86488 8.74811 2.73973 9.02591 2.65225 9.27169C2.57143 9.49874 2.5 9.76019 2.5 10C2.5 10.2398 2.57143 10.5013 2.65225 10.7283C2.73973 10.9741 2.86488 11.2519 3.02329 11.5455C3.34017 12.133 3.80748 12.8159 4.42264 13.4678C5.65153 14.7702 7.52353 16 10 16C12.4765 16 14.3485 14.7702 15.5774 13.4678C16.1925 12.8159 16.6598 12.133 16.9767 11.5455C17.1351 11.2519 17.2603 10.9741 17.3478 10.7283C17.4286 10.5013 17.5 10.2398 17.5 10C17.5 9.76019 17.4286 9.49874 17.3478 9.27169C17.2603 9.02591 17.1351 8.74811 16.9767 8.45447C16.6598 7.86704 16.1925 7.18413 15.5774 6.53216C14.3485 5.22977 12.4765 4 10 4ZM4.00141 10.0021L4.00103 10L4.00141 9.99793C4.00509 9.97812 4.01827 9.90708 4.0654 9.77469C4.12269 9.61374 4.21422 9.40618 4.34345 9.16663C4.60183 8.68764 4.9936 8.11275 5.51365 7.56159C6.55519 6.45773 8.05819 5.5 10 5.5C11.9418 5.5 13.4448 6.45773 14.4864 7.56159C15.0064 8.11275 15.3982 8.68764 15.6566 9.16663C15.7858 9.40618 15.8773 9.61374 15.9346 9.77469C15.9817 9.90708 15.9949 9.97813 15.9986 9.99793L15.999 10L15.9986 10.0021C15.9949 10.0219 15.9817 10.0929 15.9346 10.2253C15.8773 10.3863 15.7858 10.5938 15.6566 10.8334C15.3982 11.3124 15.0064 11.8873 14.4864 12.4384C13.4448 13.5423 11.9418 14.5 10 14.5C8.05819 14.5 6.55519 13.5423 5.51365 12.4384C4.9936 11.8873 4.60183 11.3124 4.34345 10.8334C4.21422 10.5938 4.12269 10.3863 4.0654 10.2253C4.01827 10.0929 4.00509 10.0219 4.00141 10.0021Z" fill="#8A8A8A"/> 2701 </svg> 2702</button> 2703
2703<script> 2704 function toggleIcon(ref) { 2705 var icon = ref.querySelector('svg'); 2706 var input = ref.previousElementSibling; 2707 if (input.type === 'password') { 2708 input.type = 'text'; 2709 ref.ariaLabel = 'hide password'; 2710 ref.innerHTML = ` 2711 2712 <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none"> 2713 <path d="M11.9768 4.75129C11.3812 4.59149 10.7237 4.49989 10 4.49989C7.5556 4.49989 5.80448 5.54475 4.67461 6.7331C4.11382 7.32291 3.70392 7.94942 3.43153 8.50627C3.1714 9.03805 3 9.58173 3 9.99989C3 10.418 3.1714 10.9617 3.43153 11.4935C3.6042 11.8465 3.83213 12.2275 4.11872 12.6094L5.19291 11.5352C5.02374 11.2916 4.88622 11.0537 4.77896 10.8344C4.55757 10.3818 4.5 10.0817 4.5 9.99989C4.5 9.91805 4.55757 9.61797 4.77896 9.16538C4.98809 8.73786 5.31225 8.23936 5.76168 7.76667C6.65224 6.83003 8.02612 5.99989 10 5.99989C10.2406 5.99989 10.4713 6.01221 10.6925 6.03556L11.9768 4.75129Z" fill="#8A8A8A"/> 2714 <path fill-rule="evenodd" clip-rule="evenodd" d="M4.24913 14.6002C3.96394 14.8936 3.96651 15.3627 4.25681 15.653C4.54971 15.9459 5.02458 15.9459 5.31747 15.653L6.37878 14.5917C7.35379 15.1352 8.55591 15.4999 10 15.4999C12.4504 15.4999 14.1417 14.4497 15.2397 13.2581C16.3176 12.0881 16.8276 10.7819 16.9776 10.1818C17.0075 10.0624 17.0075 9.93742 16.9776 9.81799C16.8276 9.21784 16.3176 7.91162 15.2397 6.74168C15.0822 6.57077 14.9125 6.40277 14.7301 6.24036L15.6531 5.31744C15.946 5.02455 15.946 4.54967 15.6531 4.25678C15.3627 3.96643 14.8935 3.96391 14.6001 4.24922C14.5975 4.25183 14.595 4.25443 14.5924 4.25701L4.25681 14.5926C4.25426 14.5951 4.2517 14.5977 4.24913 14.6002ZM10 13.9999C9.02209 13.9999 8.19145 13.7961 7.49389 13.4766L8.60223 12.3683C9.01165 12.6104 9.4896 12.7497 10 12.7497C11.5188 12.7497 12.75 11.5185 12.75 9.99969C12.75 9.48945 12.6107 9.0114 12.3686 8.60191L13.6674 7.3031C13.8369 7.44952 13.993 7.6023 14.1365 7.75809C14.9054 8.59255 15.3124 9.51382 15.4695 9.99989C15.3124 10.486 14.9054 11.4072 14.1365 12.2417C13.2766 13.175 11.9679 13.9999 10 13.9999ZM10 11.2497C9.91315 11.2497 9.82836 11.2409 9.74648 11.224L11.2244 9.74613C11.2412 9.82799 11.25 9.91279 11.25 9.99969C11.25 10.69 10.6904 11.2497 10 11.2497Z" fill="#8A8A8A"/> 2715 </svg>`; 2716 } else { 2717 input.type = 'password'; 2718 ref.ariaLabel = 'show password'; 2719 ref.innerHTML = `<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none"> 2720 <path fill-rule="evenodd" clip-rule="evenodd" d="M13 10C13 11.6569 11.6569 13 10 13C8.34315 13 7 11.6569 7 10C7 8.34315 8.34315 7 10 7C11.6569 7 13 8.34315 13 10ZM11.5 10C11.5 10.8284 10.8284 11.5 10 11.5C9.17157 11.5 8.5 10.8284 8.5 10C8.5 9.17157 9.17157 8.5 10 8.5C10.8284 8.5 11.5 9.17157 11.5 10Z" fill="#8A8A8A"/> 2721 <path fill-rule="evenodd" clip-rule="evenodd" d="M10 4C7.52353 4 5.65153 5.22977 4.42264 6.53216C3.80748 7.18413 3.34017 7.86704 3.02329 8.45447C2.86488 8.74811 2.73973 9.02591 2.65225 9.27169C2.57143 9.49874 2.5 9.76019 2.5 10C2.5 10.2398 2.57143 10.5013 2.65225 10.7283C2.73973 10.9741 2.86488 11.2519 3.02329 11.5455C3.34017 12.133 3.80748 12.8159 4.42264 13.4678C5.65153 14.7702 7.52353 16 10 16C12.4765 16 14.3485 14.7702 15.5774 13.4678C16.1925 12.8159 16.6598 12.133 16.9767 11.5455C17.1351 11.2519 17.2603 10.9741 17.3478 10.7283C17.4286 10.5013 17.5 10.2398 17.5 10C17.5 9.76019 17.4286 9.49874 17.3478 9.27169C17.2603 9.02591 17.1351 8.74811 16.9767 8.45447C16.6598 7.86704 16.1925 7.18413 15.5774 6.53216C14.3485 5.22977 12.4765 4 10 4ZM4.00141 10.0021L4.00103 10L4.00141 9.99793C4.00509 9.97812 4.01827 9.90708 4.0654 9.77469C4.12269 9.61374 4.21422 9.40618 4.34345 9.16663C4.60183 8.68764 4.9936 8.11275 5.51365 7.56159C6.55519 6.45773 8.05819 5.5 10 5.5C11.9418 5.5 13.4448 6.45773 14.4864 7.56159C15.0064 8.11275 15.3982 8.68764 15.6566 9.16663C15.7858 9.40618 15.8773 9.61374 15.9346 9.77469C15.9817 9.90708 15.9949 9.97813 15.9986 9.99793L15.999 10L15.9986 10.0021C15.9949 10.0219 15.9817 10.0929 15.9346 10.2253C15.8773 10.3863 15.7858 10.5938 15.6566 10.8334C15.3982 11.3124 15.0064 11.8873 14.4864 12.4384C13.4448 13.5423 11.9418 14.5 10 14.5C8.05819 14.5 6.55519 13.5423 5.51365 12.4384C4.9936 11.8873 4.60183 11.3124 4.34345 10.8334C4.21422 10.5938 4.12269 10.3863 4.0654 10.2253C4.01827 10.0929 4.00509 10.0219 4.00141 10.0021Z" fill="#8A8A8A"/> 2722 </svg>`; 2723 } 2724 } 2725</script>
2725 2726<style> 2727 .show-hide-password-btn { 2728 position: absolute; 2729 display: flex; 2730 right: 10px; 2731 top: 50%; 2732 transform: translateY(-50%); 2733 cursor: pointer; 2734 } 2735 input[type="password"]::-ms-reveal { 2736 display: none; 2737 } 2738</style> 2739 </div> 2740 </div> 2741 2742 <button type="submit" class="Form__Submit Button Button--primary Button--full">Log In</button> 2743 2744 <section class="Form__Help"> 2745 <h5 class="text-small bold">Having difficulty logging in?</h5> 2746 <div class="Form__Legend text-small"><p>Our team is here to assist. Contact us via email at <a href="mailto:[email protected] " target="_blank" title="mailto:[email protected] ">[email protected] </a>or call us at 833-401-0743 Monday â Friday between 9am-5pm PT.</p></div> 2747 </section> 2748 2749 2750 <section class="Form__CTA"> 2751 <h6 class="text-small bold strike-through-legend">New to To Kalon Vineyard Company?</h6> 2752 <div class="Form__Legend text-small"> 2753 <a href="/account/register" class="Form__Submit Button Button--secondary Button--full">Join the Waitlist</a> 2754 </div> 2755 </section> 2756 2757<input type="hidden" name="return_url" value="/account" /></form><form method="post" action="/account/recover" id="recover_customer_password" accept-charset="UTF-8" class="Form Form--spacingTight" style="display: none"><input type="hidden" name="form_type" value="recover_customer_password" /><input type="hidden" name="utf8" value="â" /> 2758 2759 2760 <header class="Form__Header"> 2761 <h1 class="Heading u-h1 uk-margin-bottom">Reset Password</h1> 2762 2763 </header> 2764 2765 2766<div class="Form__Item"> 2767 <label class="Form__Label">Email</label> 2768 <input type="email" class="Form__Input" id="recover_email" name="email" required="required" aria-label="Email" > 2769 </div> 2770 2771 <button type="submit" class="Form__Submit Button Button--primary Button--full">Reset Password</button> 2772 2773 <button type="button" data-action="toggle-recover-form" class="Form__Submit Button Button--secondary Button--full back-to-login">Back to Log In</button> 2774 2775 <section class="Form__Help"> 2776 <h6 class="text-small bold">Having difficulty logging in?</h6> 2777 <div class="Form__Legend text-small"><p>Our team is here to assist. Contact us via email at <a href="mailto:[email protected] " target="_blank" title="mailto:[email protected] ">[email protected] </a>or call us at 833-401-0743 Monday â Friday between 9am-5pm PT.</p></div> 2778 </section> 2779 2780 <div class="text-xs font-normal mt-10"> 2781 2782 </div> 2783 2784 </form> 2785 </div> 2786 </div> 2787</div> 2788 2789<style data-shopify> 2790 /* 2791 Custom CSS for the section: '.shopify-section.customer-login' 2792 */ 2793 :root { 2794 --customer-login-base-text--font-size: var(--base-text-font-size); 2795 --customer-login-small-text--font-size: 0.75rem; 2796 --customer-login-form-label--font-size: calc(var(--base-text-font-size) - 1px); 2797 --customer-login-button--font-size: calc(var(--default-text-font-size)); 2798 --customer-login-error-message--font-size: calc(var(--default-text-font-size)); 2799 } 2800 2801 /* Dynamic alignment */ 2802 #shopify-section-template--15529286140150__main_customers_login_2_D4npPz { 2803 text-align: center; 2804 } 2805 2806 /* Heading */ 2807 .features--heading-normal .shopify-section.customer-login .Rte h1, 2808 .features--heading-normal .shopify-section.customer-login .u-h1 {font-size: 27px} 2809 .shopify-section.customer-login .Form__Header {text-align: inherit;} 2810 .shopify-section.customer-login .Heading { 2811 color: #525252; 2812 font-weight: 700; 2813 text-align: inherit; 2814 } 2815 2816 /* UI Kit utility class */ 2817 .shopify-section.customer-login .uk-margin-bottom {margin-bottom: 16px !important;} 2818 2819 /* Description */ 2820 .shopify-section.customer-login .description {margin-bottom: 30px;} 2821 .shopify-section.customer-login .description > p { 2822 font-weight: 400; 2823 font-style: normal; 2824 font-size: var(--customer-login-base-text--font-size); 2825 line-height: 100%; 2826 letter-spacing: 0px; 2827 text-align: inherit; 2828 vertical-align: middle; 2829 } 2830 2831 .shopify-section.customer-login .description > p, 2832 .shopify-section.customer-login .description > h1, 2833 .shopify-section.customer-login .description > h2, 2834 .shopify-section.customer-login .description > h3, 2835 .shopify-section.customer-login .description > h4, 2836 .shopify-section.customer-login .description > h5, 2837 .shopify-section.customer-login .description > h6, 2838 .shopify-section.customer-login .description > ul 2839 { 2840 color: #000000; 2841 } 2842 2843 .shopify-section.customer-login .description ul { 2844 list-style-position: inside; 2845 } 2846 2847 /* Utility flex class: space-between */ 2848 .shopify-section.customer-login .flex.space-between {justify-content:space-between;} 2849 .shopify-section.customer-login .flex-inline-item {display: inline-block;} 2850 2851 /* Overrides to theme '.Form' elements */ 2852 .shopify-section.customer-login .Form__Header {} 2853 2854 .shopify-section.customer-login .Form__Item {margin-bottom:15px;}
2855 .shopify-section.customer-login .Form__Item + .Form__Item {margin-bottom:0;} 2856 .shopify-section.customer-login .Form__Item .flex-inline-item {padding: 0 0 8px;} 2857 2858 .shopify-section.customer-login .Form__InputWrapper { 2859 display:block; 2860 position:relative; 2861 } 2862 2863 .shopify-section.customer-login .Form__Label { 2864 color: #303030; 2865 font-weight: bolder; 2866 font-style: normal; 2867 font-size: var(--customer-login-form-label--font-size); 2868 line-height: 20px; 2869 letter-spacing: 0.2px; 2870 text-align:left; 2871 text-transform: none; 2872 vertical-align: middle; 2873 } 2874 2875 .shopify-section.customer-login .Link { 2876 color: #000000; 2877 font-weight: bolder; 2878 font-size: var(--customer-login-small-text--font-size); 2879 } 2880 2881 .shopify-section.customer-login .Form__Input { 2882 border: 1px solid #8A8A8A; 2883 -webkit-border-radius: 10px; 2884 -moz-border-radius: 10px; 2885 border-radius: 10px; 2886 color: #303030; 2887 height: 32px; 2888 padding: 0 36px 0 12px; 2889 } 2890 2891 .shopify-section.customer-login .Form__Submit {margin-top: 8px;} 2892 .shopify-section.customer-login .Form__Submit.Button { 2893 font-style: normal; 2894 font-size: var(--customer-login-button--font-size); 2895 height:32px; 2896 line-height: 1; 2897 letter-spacing: 0.2px; 2898 padding: 0px 16px; 2899 text-transform: none; 2900 } 2901 .shopify-section.customer-login .Button.Button--primary, 2902 .shopify-section.customer-login .Button.Button--secondary { 2903 -webkit-border-radius: 10px; 2904 -moz-border-radius: 10px; 2905 border-radius: 10px; 2906 } 2907 .shopify-section.customer-login .Form__Submit.Button--primary { 2908 background: #525252; 2909 border:1px solid #525252; 2910 border-bottom:2px solid #525252; 2911 color: #ffffff 2912 } 2913 2914 .shopify-section.customer-login .Form__Submit.Button--secondary { 2915 background: #ffffff; 2916 border:2px solid #525252; 2917 color: #525252; 2918 border-bottom:2px solid #525252; 2919 } 2920 2921 .shopify-section.customer-login .Form__Submit.Button--secondary.back-to-login { 2922 margin-top: 20px; 2923 } 2924 2925 .shopify-section.customer-login .Form__Submit.Button--secondary:hover:not(:disabled) { 2926 border-color: #525252 !important; 2927 color: #525252 !important; 2928 } 2929 .shopify-section.customer-login .Form__Submit.Button:active {padding-top:2px;} 2930 2931 2932 2933 #customer_login > section.Form__CTA > div > a:link, 2934 #customer_login > section.Form__CTA > div > a:hover, 2935 #customer_login > section.Form__CTA > div > a:visited { 2936 background: #ffffff; 2937 border:2px solid #525252; 2938 color: #525252; 2939 display: flex; 2940 align-items: center; 2941 justify-content: center; 2942 text-decoration: none; 2943 } 2944 2945 #customer_login > section.Form__CTA h6 { 2946 color: #525252; 2947 } 2948 2949 2950 /* Utility class: small-text */ 2951 .shopify-section.customer-login .text-small { 2952 font-weight: 400; 2953 font-style: normal; 2954 font-size: calc(var(--customer-login-small-text--font-size) + 2px); 2955 line-height: 100%; 2956 letter-spacing: 0px; 2957 } 2958 .shopify-section.customer-login .text-small.bold {font-weight: 700;} 2959 .shopify-section.customer-login .text-small. a.Link { 2960 color: #000000; 2961 } 2962 2963 /* Utility class: align-center */ 2964 .shopify-section.customer-login .align-center {text-align: center;} 2965 2966 .shopify-section.customer-login .Form__Help {margin-top:24px;} 2967 .shopify-section.customer-login .Form__Help h5 { 2968 margin-bottom:8px; 2969 color: #525252; 2970 } 2971 2972 /* .shopify-section.customer-login .Form__Help .Form__Legend.text-small { 2973 color: #000000 2974 } */ 2975 2976 .shopify-section.customer-login .Form__Legend.text-small > p { 2977 color: #000000; 2978 font-family: inherit; 2979 font-weight: inherit; 2980 font-style: inherit; 2981 font-size: inherit; 2982 line-height: 1.4; 2983 letter-spacing: inherit; 2984 vertical-align: inherit; 2985 } 2986 2987 .shopify-section.customer-login .Form__Legend.text-small > h6 { 2988 color: #000000; 2989 } 2990 2991 .shopify-section.customer-login .Form__Legend p {margin-bottom: 8px;} 2992 .shopify-section.customer-login .Form__Legend a:link, 2993 .shopify-section.customer-login .Form__Legend a:hover, 2994 .shopify-section.customer-login .Form__Legend a:visited { 2995 color: #000000; 2996 } 2997 2998 .shopify-section.customer-login .Form__Legend a[href^="tel:"]:link, 2999 .shopify-section.customer-login .Form__Legend a[href^="tel:"]:hover, 3000 .shopify-section.customer-login .Form__Legend a[href^="tel:"]:visited { 3001 font-weight:bold; 3002 } 3003 3004 .shopify-section.customer-login .Form__CTA h6 {margin-bottom:8px;} 3005 .shopify-section.customer-login .Form__CTA h6.text-small {
3006 color: #616161; 3007 line-height: 20px; 3008 } 3009 3010 /* Utility class: strike-through-legend (AI Generated) */ 3011 .shopify-section.customer-login .strike-through-legend { 3012 display: flex; /* Use flexbox to align items */ 3013 align-items: center; /* Vertically center items */ 3014 text-align: center; /* Ensure text within is centered if it wraps */ 3015 width: 100%; /* Make it full width */ 3016 margin: 24px 0 8px; /* Add vertical margin for spacing */ 3017 } 3018 .shopify-section.customer-login .strike-through-legend::before { 3019 content: ''; /* Required for pseudo-elements */ 3020 flex-grow: 1; /* Allows the line to expand and fill available space */ 3021 margin-right: 15px; /* Gap between the line and the text */ 3022 border-bottom: 1px solid #E3E3E3; /* The line itself */ 3023 } 3024 .strike-through-legend::after { 3025 content: ''; /* Required for pseudo-elements */ 3026 flex-grow: 1; /* Allows the line to expand and fill available space */ 3027 margin-left: 15px; /* Gap between the text and the line */ 3028 border-bottom: 1px solid #E3E3E3; /* The line itself */ 3029 } 3030 3031 /* Form Alert: error-alert */ 3032 .shopify-section.customer-login .Form__Alert.Alert { 3033 -webkit-border-radius: 6px; 3034 -moz-border-radius: 6px; 3035 border-radius: 6px; 3036 margin:0 0 16px; 3037 padding: 9px; 3038 vertical-align: middle; 3039 } 3040 .shopify-section.customer-login .Form__Alert.Alert p { 3041 font-weight: 400; 3042 font-style: normal; 3043 font-size: 14px; 3044 font-size: var(--customer-login-error-message--font-size); 3045 line-height: 1.1; 3046 letter-spacing: 0px; 3047 margin: 0; 3048 padding:0; 3049 } 3050 .shopify-section.customer-login .Form__Alert.Alert--error { 3051 background: #f8cfd7 3052 } 3053 .shopify-section.customer-login .Form__Alert.Alert--error p { 3054 background: none transparent; 3055 color: #7a0d22 3056 } 3057</style> 3058
3059<script> 3060 // Function to scroll to login form with error handling 3061 function scrollToLoginForm() { 3062 const loginWrapper = document.querySelector('.wrapper-customer-login'); 3063 3064 if (loginWrapper) { 3065 // Remove autofocus to prevent competing scroll behavior 3066 const inputs = document.querySelectorAll('input[autofocus]'); 3067 inputs.forEach(input => input.removeAttribute('autofocus')); 3068 3069 // Scroll to the login form with extended debugging 3070 setTimeout(function() { 3071 3072 // Get the position of the login wrapper 3073 const rect = loginWrapper.getBoundingClientRect(); 3074 const scrollTop = window.pageYOffset || document.documentElement.scrollTop; 3075 const targetPosition = rect.top + scrollTop; 3076 3077 // Method 1: Try smooth scrollIntoView first 3078 try { 3079 loginWrapper.scrollIntoView({ 3080 behavior: 'smooth', 3081 block: 'start' 3082 }); 3083 } catch (e) { 3084 console.log(e); 3085 } 3086 3087 // Method 2: Force manual scroll after a delay 3088 setTimeout(function() { 3089 const newScrollTop = window.pageYOffset || document.documentElement.scrollTop; 3090 3091 if (Math.abs(newScrollTop - targetPosition) > 50) { 3092 window.scrollTo({ 3093 top: targetPosition, 3094 behavior: 'smooth' 3095 }); 3096 } 3097 }, 100); 3098 }, 500); 3099 } 3100 } 3101 3102 document.addEventListener('DOMContentLoaded', function() { 3103 // Check if there are login form errors and scroll to form 3104 const loginErrors = document.querySelector('#customer_login .Form__Alert.Alert.Alert--error'); 3105 3106 if (loginErrors) { 3107 scrollToLoginForm(); 3108 } 3109 }); 3110</script>
3110 3111 3112</section> 3113 </main> 3114 3115 3116 <div id="shopify-section-footer" class="shopify-section shopify-section--footer"><footer id="section-footer" data-section-id="footer" data-section-type="footer" class="Footer " role="contentinfo"> 3117 <div class="Container"><div class="Footer__Inner"><div class="Footer__Block Footer__Block--logo" ><a href="/" class="Footer__LogoLink"><img class="Footer__LogoImage Footer__LogoImage--primary" 3118 src="//tokalonvineyardcompany.com/cdn/shop/files/Web_PNG-To_Kalon_Vineyard_Co_Logo_-_Monogram_97e1091a-5d01-4c6e-9689-ac82037b82fb_400x.png?v=1642806407" 3119 srcset="//tokalonvineyardcompany.com/cdn/shop/files/Web_PNG-To_Kalon_Vineyard_Co_Logo_-_Monogram_97e1091a-5d01-4c6e-9689-ac82037b82fb_400x.png?v=1642806407 1x, //tokalonvineyardcompany.com/cdn/shop/files/Web_PNG-To_Kalon_Vineyard_Co_Logo_-_Monogram_97e1091a-5d01-4c6e-9689-ac82037b82fb_400x.png?v=1642806407 2x" 3120 width="140" 3121 loading="lazy" 3122 alt="To Kalon Vineyard Co Logo"> 3123 </a></div><div class="Footer__Block Footer__Block--text" ><h2 class="Footer__Title Heading u-h5">Contact</h2><div class="Footer__Content Rte"> 3124 <p><strong>To Kalon Vineyard Company Concierge</strong><br/>Tel: <a href="tel:833-401-0743" title="tel:833-401-0743">833-401-0743</a><br/>Email: <a href="mailto:[email protected]" title="mailto:[email protected]">[email protected]</a></p> 3125 </div></div><div class="Footer__Block Footer__Block--links" ></div><div class="Footer__Block Footer__Block--links" ><h2 class="Footer__Title Heading u-h5">INFORMATION</h2> 3126 3127 <ul class="Linklist"><li class="Linklist__Item"> 3128 <a href="/pages/privacy-notice" class="Link Link--primary">Privacy Notice</a> 3129 </li><li class="Linklist__Item"> 3130 <a href="/pages/website-user-agreement" class="Link Link--primary">Website User Agreement</a> 3131 </li><li class="Linklist__Item"> 3132 <a href="https://privacyportal.onetrust.com/webform/fe81c8b3-489d-48e8-9146-d6fddac6b475/f3ab43c1-c84d-441e-9cdf-477f2bf9ceb6" class="Link Link--primary">Do Not Sell or Share My Personal Information</a> 3133 </li><li class="Linklist__Item"> 3134 <a href="/pages/returns" class="Link Link--primary">Return Policy</a> 3135 </li><li class="Linklist__Item"> 3136 <a href="/pages/faq" class="Link Link--primary">FAQ</a> 3137 </li></ul></div><div class="Footer__Block Footer__Block--text" ><h2 class="Footer__Title Heading u-h5">Follow us on instagram</h2><div class="Footer__Content Rte"> 3138 <p>Follow the latest updates from To Kalon Vineyard Company and winemaker Tony Biagi.</p> 3139 </div><ul class="Footer__Social HorizontalList HorizontalList--spacingLoose"> 3140 <li class="HorizontalList__Item"> 3141 <a href="https://www.instagram.com/ToKalonVineyardCompany" class="Link Link--primary" target="_blank" rel="noopener" aria-label="Instagram"> 3142 <span class="Icon-Wrapper--clickable"><svg class="Icon Icon--instagram" role="presentation" viewBox="0 0 32 32"> 3143 <path d="M15.994 2.886c4.273 0 4.775.019 6.464.095 1.562.07 2.406.33 2.971.552.749.292 1.283.635 1.841 1.194s.908 1.092 1.194 1.841c.216.565.483 1.41.552 2.971.076 1.689.095 2.19.095 6.464s-.019 4.775-.095 6.464c-.07 1.562-.33 2.406-.552 2.971-.292.749-.635 1.283-1.194 1.841s-1.092.908-1.841 1.194c-.565.216-1.41.483-2.971.552-1.689.076-2.19.095-6.464.095s-4.775-.019-6.464-.095c-1.562-.07-2.406-.33-2.971-.552-.749-.292-1.283-.635-1.841-1.194s-.908-1.092-1.194-1.841c-.216-.565-.483-1.41-.552-2.971-.076-1.689-.095-2.19-.095-6.464s.019-4.775.095-6.464c.07-1.562.33-2.406.552-2.971.292-.749.635-1.283 1.194-1.841s1.092-.908 1.841-1.194c.565-.216 1.41-.483 2.971-.552 1.689-.083 2.19-.095 6.464-.095zm0-2.883c-4.343 0-4.889.019-6.597.095-1.702.076-2.864.349-3.879.743-1.054.406-1.943.959-2.832 1.848S1.251 4.473.838 5.521C.444 6.537.171 7.699.095 9.407.019 11.109 0 11.655 0 15.997s.019 4.889.095 6.597c.076 1.702.349 2.864.743 3.886.406 1.054.959 1.943 1.848 2.832s1.784 1.435 2.832 1.848c1.016.394 2.178.667 3.886.743s2.248.095 6.597.095 4.889-.019 6.597-.095c1.702-.076 2.864-.349 3.886-.743 1.054-.406 1.943-.959 2.832-1.848s1.435-1.784 1.848-2.832c.394-1.016.667-2.178.743-3.886s.095-2.248.095-6.597-.019-4.889-.095-6.597c-.076-1.702-.349-2.864-.743-3.886-.406-1.054-.959-1.943-1.848-2.832S27.532 1.247 26.484.834C25.468.44 24.306.167 22.598.091c-1.714-.07-2.26-.089-6.603-.089zm0 7.778c-4.533 0-8.216 3.676-8.216 8.216s3.683 8.216 8.216 8.216 8.216-3.683 8.216-8.216-3.683-8.216-8.216-8.216zm0 13.549c-2.946 0-5.333-2.387-5.333-5.333s2.387-5.333 5.333-5.333 5.333 2.387 5.333 5.333-2.387 5.333-5.333 5.333zM26.451 7.457c0 1.059-.858 1.917-1.917 1.917s-1.917-.858-1.917-1.917c0-1.059.858-1.917 1.917-1.917s1.917.858 1.917 1.917z"></path> 3144 </svg></span> 3145 </a> 3146 </li> 3147 3148 3149 3150 </ul> 3151</div></div><div class="Footer__Aside"><div class="Footer__Copyright"><div class="Footer__StoreName Heading u-h7 Footer__Title" id="copyright"> 3152 <p>Please enjoy our products responsibly.<br/><br/>©2025 Constellation Brands, Inc., Rochester, NY.</p> 3153 </div> 3154 3155 </div><ul class="Footer__PaymentList HorizontalList"> 3156 <li class="HorizontalList__Item"><svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-american_express"><title id="pi-american_express">American Express</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#0071CE" style="fill:#0071CE;fill:color(display-p3 0.0000 0.4431 0.8078);fill-opacity:1;"/>
3156<path d="M3 0.5H35C36.3348 0.5 37.5 1.58692 37.5 3V21C37.5 22.4239 36.4239 23.5 35 23.5H3C1.66524 23.5 0.5 22.4131 0.5 21V3C0.5 1.57614 1.57614 0.5 3 0.5Z" stroke="black" stroke-opacity="0.07" style="stroke:black;stroke-opacity:0.07;"/><path d="M25.8662 6.33203V3H31L31.8662 5.5332L32.7334 3H37V14.2002H36.7998L34.8672 16.2656L36.7998 18.3594H37V21.2666H33.5996L31.9336 19.3994L30.2002 21.2666H19.4668V12.666H16L20.2666 3H24.4004L25.8662 6.33203ZM20.5996 20.2656H27V18.5322H22.666V17.3994H26.8662V15.666H22.666V14.5322H27V12.7988H20.5996V20.2656ZM30.5332 16.5322L27 20.2656H29.5996L31.8662 17.8662L34.0664 20.2656H36.7324L33.1992 16.4658L36.7324 12.7988H34.1328L31.8662 15.1992L29.7324 12.7988H27L30.5332 16.5322ZM17.666 11.7324H19.9326L20.5332 10.1992H23.999L24.666 11.7324H26.999L23.666 4.19922H20.999L17.666 11.7324ZM33.5996 4.19922L31.9326 8.86621L30.1992 4.19922H27V11.666H29.0664V6.39941L31 11.666H32.7998L34.7324 6.39941V11.666H36.7324V4.13281L33.5996 4.19922ZM23.2656 8.46582H21.2656L22.2656 5.99902L23.2656 8.46582Z" fill="white" style="fill:white;fill-opacity:1;"/></svg> 3157</li><li class="HorizontalList__Item"><svg viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" role="img" width="38" height="24" aria-labelledby="pi-diners_club"><title id="pi-diners_club">Diners Club</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path d="M12 12v3.7c0 .3-.2.3-.5.2-1.9-.8-3-3.3-2.3-5.4.4-1.1 1.2-2 2.3-2.4.4-.2.5-.1.5.2V12zm2 0V8.3c0-.3 0-.3.3-.2 2.1.8 3.2 3.3 2.4 5.4-.4 1.1-1.2 2-2.3 2.4-.4.2-.4.1-.4-.2V12zm7.2-7H13c3.8 0 6.8 3.1 6.8 7s-3 7-6.8 7h8.2c3.8 0 6.8-3.1 6.8-7s-3-7-6.8-7z" fill="#3086C8"/></svg></li><li class="HorizontalList__Item"><svg viewBox="0 0 38 24" width="38" height="24" role="img" aria-labelledby="pi-discover" fill="none" xmlns="http://www.w3.org/2000/svg"><title id="pi-discover">Discover</title><path fill="#000" opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32z" fill="#fff"/><path d="M3.57 7.16H2v5.5h1.57c.83 0 1.43-.2 1.96-.63.63-.52 1-1.3 1-2.11-.01-1.63-1.22-2.76-2.96-2.76zm1.26 4.14c-.34.3-.77.44-1.47.44h-.29V8.1h.29c.69 0 1.11.12 1.47.44.37.33.59.84.59 1.37 0 .53-.22 1.06-.59 1.39zm2.19-4.14h1.07v5.5H7.02v-5.5zm3.69 2.11c-.64-.24-.83-.4-.83-.69 0-.35.34-.61.8-.61.32 0 .59.13.86.45l.56-.73c-.46-.4-1.01-.61-1.62-.61-.97 0-1.72.68-1.72 1.58 0 .76.35 1.15 1.35 1.51.42.15.63.25.74.31.21.14.32.34.32.57 0 .45-.35.78-.83.78-.51 0-.92-.26-1.17-.73l-.69.67c.49.73 1.09 1.05 1.9 1.05 1.11 0 1.9-.74 1.9-1.81.02-.89-.35-1.29-1.57-1.74zm1.92.65c0 1.62 1.27 2.87 2.9 2.87.46 0 .86-.09 1.34-.32v-1.26c-.43.43-.81.6-1.29.6-1.08 0-1.85-.78-1.85-1.9 0-1.06.79-1.89 1.8-1.89.51 0 .9.18 1.34.62V7.38c-.47-.24-.86-.34-1.32-.34-1.61 0-2.92 1.28-2.92 2.88zm12.76.94l-1.47-3.7h-1.17l2.33 5.64h.58l2.37-5.64h-1.16l-1.48 3.7zm3.13 1.8h3.04v-.93h-1.97v-1.48h1.9v-.93h-1.9V8.1h1.97v-.94h-3.04v5.5zm7.29-3.87c0-1.03-.71-1.62-1.95-1.62h-1.59v5.5h1.07v-2.21h.14l1.48 2.21h1.32l-1.73-2.32c.81-.17 1.26-.72 1.26-1.56zm-2.16.91h-.31V8.03h.33c.67 0 1.03.28 1.03.82 0 .55-.36.85-1.05.85z" fill="#231F20"/><path d="M20.16 12.86a2.931 2.931 0 100-5.862 2.931 2.931 0 000 5.862z" fill="url(#pi-paint0_linear)"/><path opacity=".65" d="M20.16 12.86a2.931 2.931 0 100-5.862 2.931 2.931 0 000 5.862z" fill="url(#pi-paint1_linear)"/><path d="M36.57 7.506c0-.1-.07-.15-.18-.15h-.16v.48h.12v-.19l.14.19h.14l-.16-.2c.06-.01.1-.06.1-.13zm-.2.07h-.02v-.13h.02c.06 0 .09.02.09.06 0 .05-.03.07-.09.07z" fill="#231F20"/><path d="M36.41 7.176c-.23 0-.42.19-.42.42 0 .23.19.42.42.42.23 0 .42-.19.42-.42 0-.23-.19-.42-.42-.42zm0 .77c-.18 0-.34-.15-.34-.35 0-.19.15-.35.34-.35.18 0 .33.16.33.35 0 .19-.15.35-.33.35z" fill="#231F20"/><path d="M37 12.984S27.09 19.873 8.976 23h26.023a2 2 0 002-1.984l.024-3.02L37 12.985z" fill="#F48120"/><defs><linearGradient id="pi-paint0_linear" x1="21.657" y1="12.275" x2="19.632" y2="9.104" gradientUnits="userSpaceOnUse"><stop stop-color="#F89F20"/><stop offset=".25" stop-color="#F79A20"/><stop offset=".533" stop-color="#F68D20"/><stop offset=".62" stop-color="#F58720"/><stop offset=".723" stop-color="#F48120"/><stop offset="1" stop-color="#F37521"/></linearGradient><linearGradient id="pi-paint1_linear" x1="21.338" y1="12.232" x2="18.378" y2="6.446" gradientUnits="userSpaceOnUse"><stop stop-color="#F58720"/><stop offset=".359" stop-color="#E16F27"/><stop offset=".703" stop-color="#D4602C"/><stop offset=".982" stop-color="#D05B2E"/></linearGradient></defs></svg></li><li class="HorizontalList__Item"><svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-master"><title id="pi-master">Mastercard</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#1C1C1C" style="fill:#1C1C1C;fill:color(display-p3 0.1098 0.1098 0.1098);fill-opacity:1;"/>
3157<path d="M35 1C36.1 1 37 1.9 37 3V21C37 22.1 36.1 23 35 23H3C1.9 23 1 22.1 1 21V3C1 1.9 1.9 1 3 1H35Z" fill="#232323" style="fill:#232323;fill:color(display-p3 0.1373 0.1373 0.1373);fill-opacity:1;"/><path d="M14.6364 19.2727C18.8538 19.2727 22.2727 15.8538 22.2727 11.6364C22.2727 7.41892 18.8538 4 14.6364 4C10.4189 4 7 7.41892 7 11.6364C7 15.8538 10.4189 19.2727 14.6364 19.2727Z" fill="#EB001B" style="fill:#EB001B;fill:color(display-p3 0.9216 0.0000 0.1059);fill-opacity:1;"/><path d="M23.3637 19.2727C27.5811 19.2727 31 15.8538 31 11.6364C31 7.41892 27.5811 4 23.3637 4C19.1462 4 15.7273 7.41892 15.7273 11.6364C15.7273 15.8538 19.1462 19.2727 23.3637 19.2727Z" fill="#F79E1B" style="fill:#F79E1B;fill:color(display-p3 0.9686 0.6196 0.1059);fill-opacity:1;"/><path d="M22.2727 11.6362C22.2727 9.01797 20.9637 6.72706 19 5.41797C17.0364 6.83615 15.7273 9.12706 15.7273 11.6362C15.7273 14.1452 17.0364 16.5452 19 17.8543C20.9637 16.5452 22.2727 14.2543 22.2727 11.6362Z" fill="#FF5F00" style="fill:#FF5F00;fill:color(display-p3 1.0000 0.3725 0.0000);fill-opacity:1;"/></svg> 3158</li><li class="HorizontalList__Item"><svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-shopify_pay"><title id="pi-shopify_pay">Shop Pay</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000"/><path d="M35.889 0C37.05 0 38 .982 38 2.182v19.636c0 1.2-.95 2.182-2.111 2.182H2.11C.95 24 0 23.018 0 21.818V2.182C0 .982.95 0 2.111 0H35.89z" fill="#5A31F4"/><path d="M9.35 11.368c-1.017-.223-1.47-.31-1.47-.705 0-.372.306-.558.92-.558.54 0 .934.238 1.225.704a.079.079 0 00.104.03l1.146-.584a.082.082 0 00.032-.114c-.475-.831-1.353-1.286-2.51-1.286-1.52 0-2.464.755-2.464 1.956 0 1.275 1.15 1.597 2.17 1.82 1.02.222 1.474.31 1.474.705 0 .396-.332.582-.993.582-.612 0-1.065-.282-1.34-.83a.08.08 0 00-.107-.035l-1.143.57a.083.083 0 00-.036.111c.454.92 1.384 1.437 2.627 1.437 1.583 0 2.539-.742 2.539-1.98s-1.155-1.598-2.173-1.82v-.003zM15.49 8.855c-.65 0-1.224.232-1.636.646a.04.04 0 01-.069-.03v-2.64a.08.08 0 00-.08-.081H12.27a.08.08 0 00-.08.082v8.194a.08.08 0 00.08.082h1.433a.08.08 0 00.081-.082v-3.594c0-.695.528-1.227 1.239-1.227.71 0 1.226.521 1.226 1.227v3.594a.08.08 0 00.081.082h1.433a.08.08 0 00.081-.082v-3.594c0-1.51-.981-2.577-2.355-2.577zM20.753 8.62c-.778 0-1.507.24-2.03.588a.082.082 0 00-.027.109l.632 1.088a.08.08 0 00.11.03 2.5 2.5 0 011.318-.366c1.25 0 2.17.891 2.17 2.068 0 1.003-.736 1.745-1.669 1.745-.76 0-1.288-.446-1.288-1.077 0-.361.152-.657.548-.866a.08.08 0 00.032-.113l-.596-1.018a.08.08 0 00-.098-.035c-.799.299-1.359 1.018-1.359 1.984 0 1.46 1.152 2.55 2.76 2.55 1.877 0 3.227-1.313 3.227-3.195 0-2.018-1.57-3.492-3.73-3.492zM28.675 8.843c-.724 0-1.373.27-1.845.746-.026.027-.069.007-.069-.029v-.572a.08.08 0 00-.08-.082h-1.397a.08.08 0 00-.08.082v8.182a.08.08 0 00.08.081h1.433a.08.08 0 00.081-.081v-2.683c0-.036.043-.054.069-.03a2.6 2.6 0 001.808.7c1.682 0 2.993-1.373 2.993-3.157s-1.313-3.157-2.993-3.157zm-.271 4.929c-.956 0-1.681-.768-1.681-1.783s.723-1.783 1.681-1.783c.958 0 1.68.755 1.68 1.783 0 1.027-.713 1.783-1.681 1.783h.001z" fill="#fff"/></svg> 3159</li><li class="HorizontalList__Item"><svg xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-visa"><title id="pi-visa">Visa</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#142FBD" style="fill:#142FBD;fill:color(display-p3 0.0784 0.1843 0.7412);fill-opacity:1;"/><path d="M35 1C36.1 1 37 1.9 37 3V21C37 22.1 36.1 23 35 23H3C1.9 23 1 22.1 1 21V3C1 1.9 1.9 1 3 1H35Z" fill="#1532CB" style="fill:#1532CB;fill:color(display-p3 0.0824 0.1961 0.7961);fill-opacity:1;"/><path d="M29.5944 10.2167H29.2778C28.8556 11.2722 28.5389 11.8 28.2222 13.3833H30.2278C29.9111 11.8 29.9111 11.0611 29.5944 10.2167V10.2167ZM32.6556 16.4444H30.8611C30.7556 16.4444 30.7556 16.4444 30.65 16.3389L30.4389 15.3889L30.3333 15.1778H27.8C27.6944 15.1778 27.5889 15.1778 27.5889 15.3889L27.2722 16.3389C27.2722 16.4444 27.1667 16.4444 27.1667 16.4444H24.95L25.1611 15.9167L28.2222 8.73889C28.2222 8.21111 28.5389 8 29.0667 8H30.65C30.7556 8 30.8611 8 30.8611 8.21111L32.3389 15.0722C32.4444 15.4944 32.55 15.8111 32.55 16.2333C32.6556 16.3389 32.6556 16.3389 32.6556 16.4444V16.4444ZM18.5111 16.1278L18.9333 14.2278C19.0389 14.2278 19.1444 14.3333 19.1444 14.3333C19.8833 14.65 20.6222 14.8611 21.3611 14.7556C21.5722 14.7556 21.8889 14.65 22.1 14.5444C22.6278 14.3333 22.6278 13.8056 22.2056 13.3833C21.9944 13.1722 21.6778 13.0667 21.3611 12.8556C20.9389 12.6444 20.5167 12.4333 20.2 12.1167C18.9333 11.0611 19.3556 9.58333 20.0944 8.84444C20.7278 8.42222 21.0444 8 21.8889 8C23.1556 8 24.5278 8 25.1611 8.21111H25.2667C25.1611 8.84444 25.0556 9.37222 24.8444 10.0056C24.3167 9.79444 23.7889 9.58333 23.2611 9.58333C22.9444 9.58333 22.6278 9.58333 22.3111 9.68889C22.1 9.68889 21.9944 9.79444 21.8889 9.9C21.6778 10.1111 21.6778 10.4278 21.8889 10.6389L22.4167 11.0611C22.8389 11.2722 23.2611 11.4833 23.5778 11.6944C24.1056 12.0111 24.6333 12.5389 24.7389 13.1722C24.95 14.1222 24.6333 14.9667 23.7889 15.6C23.2611 16.0222 23.05 16.2333 22.3111 16.2333C20.8333 16.2333 19.6722 16.3389 18.7222 16.0222C18.6167 16.2333 18.6167 16.2333 18.5111 16.1278V16.1278ZM14.8167 16.4444C14.9222 15.7056 14.9222 15.7056 15.0278 15.3889C15.5556 13.0667 16.0833 10.6389 16.5056 8.31667C16.6111 8.10556 16.6111 8 16.8222 8H18.7222C18.5111 9.26667 18.3 10.2167 17.9833 11.3778C17.6667 12.9611 17.35 14.5444 16.9278 16.1278C16.9278 16.3389 16.8222 16.3389 16.6111 16.3389L14.8167 16.4444ZM5 8.21111C5 8.10556 5.21111 8 5.31667 8H8.90556C9.43333 8 9.85556 8.31667 9.96111 8.84444L10.9111 13.4889C10.9111 13.5944 10.9111 13.5944 11.0167 13.7C11.0167 13.5944 11.1222 13.5944 11.1222 13.5944L13.3389 8.21111C13.2333 8.10556 13.3389 8 13.4444 8H15.6611C15.6611 8.10556 15.6611 8.10556 15.5556 8.21111L12.2833 15.9167C12.1778 16.1278 12.1778
315916.2333 12.0722 16.3389C11.9667 16.4444 11.7556 16.3389 11.5444 16.3389H9.96111C9.85556 16.3389 9.75 16.3389 9.75 16.1278L8.06111 9.58333C7.85 9.37222 7.53333 9.05556 7.11111 8.95C6.47778 8.63333 5.31667 8.42222 5.10556 8.42222L5 8.21111Z" fill="white" style="fill:white;fill-opacity:1;"/></svg> 3160</li> 3161 </ul></div> 3162 </div> 3163</footer>
3163<script> 3164 for(let i=0;i < document.getElementsByTagName('footer')[0].getElementsByTagName('a').length;i++){ 3165 let item=document.getElementsByTagName('footer')[0].getElementsByTagName('a')[i] 3166 if((item.innerHTML).includes('Do Not Sell') || (item.innerHTML).includes('My Personal Information')){ 3167 document.getElementsByTagName('footer')[0].getElementsByTagName('a')[i].removeAttribute("href"); 3168 document.getElementsByTagName('footer')[0].getElementsByTagName('a')[i].removeAttribute("target"); 3169 document.getElementsByTagName('footer')[0].getElementsByTagName('a')[i].setAttribute("title",item.innerHTML); 3170 document.getElementsByTagName('footer')[0].getElementsByTagName('a')[i].setAttribute("onclick","OneTrust.ToggleInfoDisplay();"); 3171 document.getElementsByTagName('footer')[0].getElementsByTagName('a')[i].setAttribute("tabindex","0") 3172 document.getElementsByTagName('footer')[0].getElementsByTagName('a')[i].style.cursor="pointer"; 3173 document.getElementsByTagName('footer')[0].getElementsByTagName('a')[i].setAttribute("onkeypress","javascript: if(event.keyCode == 13) OneTrust.ToggleInfoDisplay();"); 3174 } 3175 } 3176</script>
3176 3177 3178
3178<script> 3179 //for DSAR OT popup 3180 document.addEventListener("DOMContentLoaded", () => { 3181 var ele = document.querySelectorAll(".footer__legal-links li a"); 3182 ele.forEach(function (atag) { 3183 if(atag.getAttribute("href") == '#dsar' || atag.getAttribute("href") == '/es#dsar'){ 3184 atag.addEventListener('click', (e) => { 3185 e.preventDefault(); 3186 OneTrust.ToggleInfoDisplay(); 3187 }); 3188 } 3189 }); 3190 if (window.location.href.indexOf("#dsar") > -1){ 3191 setTimeout(() => { 3192 OneTrust.ToggleInfoDisplay(); 3193 }, 1000) 3194 } 3195 3196 }); 3197 3198</script>
3198 3199 3200 3201<style> #shopify-section-footer .Link.Link--primary:hover {color: #f5eede; text-decoration: underline;} #shopify-section-footer .Footer a, #shopify-section-footer .Footer .Rte a {color: #ffffff; text-decoration: none;} #shopify-section-footer .Footer .Rte a hover {color: #f5eede; text-decoration: underline;} </style></div> 3202
3202<script> 3203 (function() { 3204 var templateName = "login"; 3205 var templateSuffix = null; 3206 if (templateName === 'page' && templateSuffix === 'no-footer') { 3207 document.getElementById('shopify-section-footer').style.display = 'none'; 3208 } 3209 })(); 3210 </script>
3210 3211
3211<script src="//tokalonvineyardcompany.com/cdn/shop/t/4/assets/ply.initializers.js?v=79544425501433556071647375506" type="text/javascript"></script>
3211 3212 </div> 3213
3213<script> 3214 if(document.getElementById('copyright')!= undefined){ 3215 document.getElementById('copyright').style.marginBottom ="0px" 3216 document.getElementById('copyright').style.lineHeight ="1.5" 3217 var a_taglist=document.getElementById('copyright').getElementsByTagName("a") 3218 if(document.getElementById('copyright')!=null && a_taglist.length>0){ 3219 for(let i=0;i< a_taglist.length;i++){ 3220 a_taglist[i].classList.add("Link","Link--secondary"); 3221 } 3222 } 3223 } 3224 </script>
3224 3225 <style> 3226 .StorefrontCartView-module__CartErrors___cKtQ5{ 3227 margin-left:0 !important; 3228 } 3229 </style> 3230
3230<script> 3231 /** 3232 * To convert the encode the customer ID into sha256 3233 */ 3234 var sha256 = function sha256(ascii) { 3235 function rightRotate(value, amount) { 3236 return (value>>>amount) | (value<<(32 - amount)); 3237 }; 3238 3239 var mathPow = Math.pow; 3240 var maxWord = mathPow(2, 32); 3241 var lengthProperty = 'length' 3242 var i, j; // Used as a counter across the whole file 3243 var result = '' 3244 3245 var words = []; 3246 var asciiBitLength = ascii[lengthProperty]*8; 3247 3248 //* caching results is optional - remove/add slash from front of this line to toggle 3249 // Initial hash value: first 32 bits of the fractional parts of the square roots of the first 8 primes 3250 // (we actually calculate the first 64, but extra values are just ignored) 3251 var hash = sha256.h = sha256.h || []; 3252 // Round constants: first 32 bits of the fractional parts of the cube roots of the first 64 primes 3253 var k = sha256.k = sha256.k || []; 3254 var primeCounter = k[lengthProperty]; 3255 /*/ 3256 var hash = [], k = []; 3257 var primeCounter = 0; 3258 //*/ 3259 var isComposite = {}; 3260 for (var candidate = 2; primeCounter < 64; candidate++) { 3261 if (!isComposite[candidate]) { 3262 for (i = 0; i < 313; i += candidate) { 3263 isComposite[i] = candidate; 3264 } 3265 hash[primeCounter] = (mathPow(candidate, .5)*maxWord)|0; 3266 k[primeCounter++] = (mathPow(candidate, 1/3)*maxWord)|0; 3267 } 3268 } 3269 3270 ascii += '\x80' // Append Æ' bit (plus zero padding) 3271 while (ascii[lengthProperty]%64 - 56) ascii += '\x00' // More zero padding 3272 for (i = 0; i < ascii[lengthProperty]; i++) { 3273 j = ascii.charCodeAt(i); 3274 if (j>>8) return; // ASCII check: only accept characters in range 0-255 3275 words[i>>2] |= j << ((3 - i)%4)*8; 3276 } 3277 words[words[lengthProperty]] = ((asciiBitLength/maxWord)|0); 3278 words[words[lengthProperty]] = (asciiBitLength) 3279 3280 // process each chunk 3281 for (j = 0; j < words[lengthProperty];) { 3282 var w = words.slice(j, j += 16); // The message is expanded into 64 words as part of the iteration 3283 var oldHash = hash; 3284 // This is now the undefinedworking hash", often labelled as variables a...g 3285 // (we have to truncate as well, otherwise extra entries at the end accumulate 3286 hash = hash.slice(0, 8); 3287 3288 for (i = 0; i < 64; i++) { 3289 var i2 = i + j; 3290 // Expand the message into 64 words 3291 // Used below if 3292 var w15 = w[i - 15], w2 = w[i - 2]; 3293 3294 // Iterate 3295 var a = hash[0], e = hash[4]; 3296 var temp1 = hash[7] 3297 + (rightRotate(e, 6) ^ rightRotate(e, 11) ^ rightRotate(e, 25)) // S1 3298 + ((e&hash[5])^((~e)&hash[6])) // ch 3299 + k[i] 3300 // Expand the message schedule if needed 3301 + (w[i] = (i < 16) ? w[i] : ( 3302 w[i - 16] 3303 + (rightRotate(w15, 7) ^ rightRotate(w15, 18) ^ (w15>>>3)) // s0 3304 + w[i - 7] 3305 + (rightRotate(w2, 17) ^ rightRotate(w2, 19) ^ (w2>>>10)) // s1 3306 )|0 3307 ); 3308 // This is only used once, so *could* be moved below, but it only saves 4 bytes and makes things unreadble 3309 var temp2 = (rightRotate(a, 2) ^ rightRotate(a, 13) ^ rightRotate(a, 22)) // S0 3310 + ((a&hash[1])^(a&hash[2])^(hash[1]&hash[2])); // maj 3311 3312 hash = [(temp1 + temp2)|0].concat(hash); // We don't bother trimming off the extra ones, they're harmless as long as we're truncating when we do the slice() 3313 hash[4] = (hash[4] + temp1)|0; 3314 } 3315 3316 for (i = 0; i < 8; i++) { 3317 hash[i] = (hash[i] + oldHash[i])|0; 3318 } 3319 } 3320 3321 for (i = 0; i < 8; i++) { 3322 for (j = 3; j + 1; j--) { 3323 var b = (hash[i]>>(j*8))&255; 3324 result += ((b < 16) ? 0 : '') + b.toString(16); 3325 } 3326 } 3327 return result; 3328 }; 3329 3330 window.data_layer_info = { 3331 membership_level: null, 3332 user_id: null, 3333 customer_email: "" || "" || "", 3334 page_type: meta.page.pageType, 3335 login_status: "not-logged-in", 3336 } 3337 3338 3339 3340 3341 /* For adding age gate specs */ 3342 const getCookieValue = (name) => (document.cookie.match('(^|;)\\s*' + name + '\\s*=\\s*([^;]+)')?.pop() || ''); 3343 const ageGate = getCookieValue('bloom_ag') || getCookieValue('validAge'); // validAge cookie is present when ageGate is not visible 3344 if (ageGate !== '') {
3345 data_layer_info.ageGateDisplay = 'false'; 3346 } 3347 else { 3348 data_layer_info.ageGateDisplay = 'true'; 3349 } 3350 /* tempType for newsletter template*/ 3351 /** tempType for newsletter template **/ 3352 let templateType; 3353 const url_path = window.location.href; //Need to use this variable as global 3354 let lastItem = url_path.substring(url_path.lastIndexOf('/') + 1) || 'home'; 3355 let pathName = window.location.pathname; 3356 if(pathName == '/pages/store-and-online-finder' || pathName == '/pages/get-delivery' || pathName == '/pages/retailers' || pathName == '/pages/buy-locally' || pathName == '/pages/find'){ 3357 templateType = "product-locator" 3358 } 3359 else if(meta.page.pageType == 'product'){ 3360 templateType = "product" 3361 } 3362 else if(meta.page.pageType == 'collection'){ 3363 templateType = 'product-list' 3364 } 3365 else if(meta.page.pageType == 'article'|| meta.page.pageType =='blog'){ 3366 templateType = 'recipe' 3367 } 3368 else if (window.location.href.indexOf('/search?') > 0) { 3369 templateType = 'search-results' 3370 } 3371 else{templateType = lastItem} 3372 window.dataLayer = window.dataLayer || []; 3373 </script>
3373 3374 3375 3376
3376<script> 3377 3378 </script>
3378 3379 3380 3381 3382
3382<script> 3383 /** 3384 * About : Selected product tracking on collection page 3385 * Description : Fired on selecting a product 3386*/ 3387 let select_buttons = document.querySelectorAll('.productitem'); 3388 if (select_buttons.length > 0) { 3389 for (let i = 0; i < select_buttons.length; i++) { 3390 const btn = select_buttons[i]; 3391 btn.addEventListener('click', function() { 3392 window.dataLayer = window.dataLayer || []; 3393 window.dataLayer.push({ 3394 ecommerce: null 3395 }); 3396 window.dataLayer.push({ 3397 'event': 'select_item', 3398 'currency': 'USD', 3399 'template_name': 'product-list', 3400 'ecommerce': { 3401 'items': [{ 3402 'discount': 0, 3403 'index': i, 3404 'item_category': this.dataset.collectionname, 3405 'item_id': this.dataset.productid, 3406 'item_list_id': this.dataset.collectionid, 3407 'item_list_name': this.dataset.collectionname, 3408 'item_name': this.dataset.producttitle, 3409 'item_variant': this.dataset.productvariant, 3410 'price': this.dataset.productprice, 3411 'quantity': 1 3412 }] 3413 } 3414 }) 3415 }); 3416 } 3417} 3418 3419/** 3420 * About : view list items on collection page 3421 * Description : fire when collection page is loaded 3422*/ 3423 function DL__view_item_list() { 3424 window.dataLayer = window.dataLayer || []; 3425 window.dataLayer.push({ ecommerce: null }); 3426 window.dataLayer.push({ 3427 'event': 'view_item_list', 3428 'currency' : "USD", 3429 'search_term' : "", 3430 'template_name' : 'product-list', 3431 'user_id' : data_layer_info.user_id, 3432 'membership_level' : data_layer_info.membership_level, 3433 'ecommerce':null}) 3434 } 3435window.addEventListener("load", function(){ 3436 3437}); 3438 3439/** 3440 * About : view which product page is open 3441 * Description : fire when product page is loaded 3442 */ 3443function DL__view_item() { 3444 window.dataLayer = window.dataLayer || []; 3445 window.dataLayer.push({ 3446 'ecommerce': null 3447 }); 3448 3449 window.dataLayer.push({ 3450 'event': 'view_item', 3451 'currency' : "USD", 3452 'template_name' : "product", 3453 'ecommerce': { 3454 'items' : [ 3455 { 3456 'discount' : 0, 3457 'index' : 0,'item_id' : "0", 3458 'item_list_id' : "0", 3459 'item_list_name' : "", 3460 'item_name' : "", 3461 'item_variant' : "0", 3462 'price' : "", 3463 'quantity' : 1 3464 } 3465 ] 3466 } 3467 }); 3468} 3469 3470</script>
3470 3471 3472 3473 3474 3475 <!-- Data layers script -->
3476<script> 3477/** 3478 * About : Page view tracking 3479 * Description : Fired on page load 3480 */ 3481function DL__page_view() { 3482 window.dataLayer = window.dataLayer || []; 3483 window.dataLayer.push({ 3484 'event': 'page_view', 3485 'age_gate': data_layer_info.ageGateDisplay, 3486 'page_type' : templateType, 3487 'login_status': data_layer_info.login_status, 3488 'template_name' : 'all-pages', 3489 'user_id' : data_layer_info.user_id, 3490 'membership_level' : data_layer_info.membership_level, 3491 'country' : Shopify.country 3492 }); 3493} 3494 3495 3496 3497/** 3498 * About : Login success tracking 3499 * Description : Fired on account page load 3500*/ 3501 const customer_login = document.getElementById("customer_login"); 3502 if(customer_login) { 3503 customer_login.addEventListener("submit", function() { 3504 document.cookie = "loginSuccess=true"; 3505 3506 }); 3507 } 3508 3509/** 3510 * About : Initial load of the page. 3511 * Description : Fired on page load 3512 */ 3513function DL__init() { 3514 DL__page_view(); 3515} 3516 3517window.addEventListener("load", function() { 3518 DL__init(); 3519 3520}); 3521</script>
3521 3522<!-- Data layers script --> 3523 3524 3525
3525<script src="//tokalonvineyardcompany.com/cdn/shop/t/4/assets/consentapi.js?v=64664309394126270471708585021"></script>
3525 3526
3526<script src="//tokalonvineyardcompany.com/cdn/shop/t/4/assets/vimeoplayconsent.js?v=181505621865633450261708585022"></script>
3526 3527
3527<script src="//tokalonvineyardcompany.com/cdn/shop/t/4/assets/bgvideoconsent.js?v=145336411081958285491708585021"></script>
3527 3528
3528<script> 3529 (function() { 3530 var templateName = "login"; 3531 var templateSuffix = null; 3532 if (templateName === 'page' && templateSuffix === 'no-footer') { 3533 document.getElementById('shopify-section-footer').style.display = 'none'; 3534 document.getElementById('shopify-section-club-signup-footer').style.display = 'none' } 3535 })(); 3536 </script>
3536 3537
3537<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
3537 3538</body> 3539</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.