PageSourceSearch

https://tokalonvineyardcompany.com/account/login?return_url=%2Faccount

html tokalonvineyardcompany.com collected 2026-10-04 20:59:45 UTC 223,618 bytes, 3,539 lines download raw bytes

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 &ndash; 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='{&quot;enabled&quot;:false,&quot;show_shipping_fees&quot;:false,&quot;base_font&quot;:{&quot;error&quot;:&quot;json not allowed for this object&quot;},&quot;base_font_size&quot;:16,&quot;button_border_radius&quot;:0,&quot;text_link_color&quot;:&quot;#26387b&quot;,&quot;continue_shopping_url&quot;:null,&quot;header_text&quot;:&quot;Your cart&quot;,&quot;close_icon_label&quot;:&quot;&quot;,&quot;header_font&quot;:{&quot;error&quot;:&quot;json not allowed for this object&quot;},&quot;header_font_size&quot;:16,&quot;line_item_title_font&quot;:{&quot;error&quot;:&quot;json not allowed for this object&quot;},&quot;line_item_title_font_size&quot;:16,&quot;line_item_description_font&quot;:{&quot;error&quot;:&quot;json not allowed for this object&quot;},&quot;line_item_description_font_size&quot;:16,&quot;quantity_picker_border_color&quot;:&quot;#000000&quot;,&quot;quantity_picker_button_background_color&quot;:&quot;#000000&quot;,&quot;quantity_picker_button_text_color&quot;:&quot;#ffffff&quot;,&quot;quantity_picker_input_background_color&quot;:&quot;#ffffff&quot;,&quot;quantity_picker_input_text_color&quot;:&quot;#000000&quot;,&quot;quantity_picker_border_radius&quot;:0,&quot;quantity_picker_font_size&quot;:16,&quot;quantity_picker_padding&quot;:0.5,&quot;quantity_picker_input_border_radius&quot;:0,&quot;footer_message&quot;:&quot;\u003cp\u003eSomeone 21+ must sign for deliveries\u003c\/p\u003e&quot;,&quot;legal_message&quot;:&quot;\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=\&quot;https:\/\/www.P65Warnings.ca.gov\/alcohol\&quot; title=\&quot;https:\/\/www.P65Warnings.ca.gov\/alcohol\&quot;\u003ewww.P65Warnings.ca.gov\/alcohol\u003c\/a\u003e\u003c\/p\u003e&quot;,&quot;legal_message_font&quot;:{&quot;error&quot;:&quot;json not allowed for this object&quot;},&quot;legal_message_font_size&quot;:11,&quot;footer_background_color&quot;:&quot;#cccccc&quot;,&quot;error_background_color&quot;:&quot;#f8cfd7&quot;,&quot;error_text_color&quot;:&quot;#7a0d22&quot;,&quot;dob_error_message&quot;:&quot;Please enter birth date in format MM\/DD\/YYYY&quot;,&quot;button_focus_color&quot;:&quot;#5458e9&quot;}'></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.