PageSourceSearch

https://tabanerocigars.com/pages/store-locator

html tabanerocigars.com collected 2026-09-26 14:00:02 UTC 243,314 bytes, 3,659 lines download raw bytes

1<!DOCTYPE html>
2<!--[if lt IE 7 ]><html class="ie ie6" lang="en"> <![endif]-->
3<!--[if IE 7 ]><html class="ie ie7" lang="en"> <![endif]-->
4<!--[if IE 8 ]><html class="ie ie8" lang="en"> <![endif]-->
5<!--[if IE 9 ]><html class="ie ie9" lang="en"> <![endif]-->
6<!--[if (gte IE 10)|!(IE)]><!--><html lang="en"> <!--<![endif]-->
7  <head>
8    
8<script type="application/vnd.locksmith+json" data-locksmith>{"version":"v320","locked":false,"initialized":true,"scope":"page","access_granted":true,"access_denied":false,"requires_customer":false,"manual_lock":false,"remote_lock":false,"has_timeout":false,"remote_rendered":null,"hide_resource":false,"hide_links_to_resource":false,"transparent":true,"locks":{"all":[],"opened":[]},"keys":[],"keys_signature":"b3161c01ed4c5a586263774a0f5b4f6e5d118018eac8f5b63ef850c115597974","state":{"template":"page","theme":179687194922,"product":null,"collection":null,"page":"store-locator","blog":null,"article":null,"app":null},"now":1790431202,"path":"\/pages\/store-locator","locale_root_url":"\/","canonical_url":"https:\/\/tabanerocigars.com\/pages\/store-locator","customer_id":null,"customer_id_signature":"b3161c01ed4c5a586263774a0f5b4f6e5d118018eac8f5b63ef850c115597974","cart":null}</script>
8<script data-locksmith>!function(){undefined;!function(){var s=window.Locksmith={},e=document.querySelector('script[type="application/vnd.locksmith+json"]'),n=e&&e.innerHTML;if(s.state={},s.util={},s.loading=!1,n)try{s.state=JSON.parse(n)}catch(d){}if(document.addEventListener&&document.querySelector){var o,i,a,t=[76,79,67,75,83,77,73,84,72,49,49],c=function(){i=t.slice(0)},l="style",r=function(e){e&&27!==e.keyCode&&"click"!==e.type||(document.removeEventListener("keydown",r),document.removeEventListener("click",r),o&&document.body.removeChild(o),o=null)};c(),document.addEventListener("keyup",function(e){if(e.keyCode===i[0]){if(clearTimeout(a),i.shift(),0<i.length)return void(a=setTimeout(c,1e3));c(),r(),(o=document.createElement("div"))[l].width="50%",o[l].maxWidth="1000px",o[l].height="85%",o[l].border="1px rgba(0, 0, 0, 0.2) solid",o[l].background="rgba(255, 255, 255, 0.99)",o[l].borderRadius="4px",o[l].position="fixed",o[l].top="50%",o[l].left="50%",o[l].transform="translateY(-50%) translateX(-50%)",o[l].boxShadow="0 2px 5px rgba(0, 0, 0, 0.3), 0 0 100vh 100vw rgba(0, 0, 0, 0.5)",o[l].zIndex="2147483645";var t=document.createElement("textarea");t.value=JSON.stringify(JSON.parse(n),null,2),t[l].border="none",t[l].display="block",t[l].boxSizing="border-box",t[l].width="100%",t[l].height="100%",t[l].background="transparent",t[l].padding="22px",t[l].fontFamily="monospace",t[l].fontSize="14px",t[l].color="#333",t[l].resize="none",t[l].outline="none",t.readOnly=!0,o.appendChild(t),document.body.appendChild(o),t.addEventListener("click",function(e){e.stopImmediatePropagation()}),t.select(),document.addEventListener("keydown",r),document.addEventListener("click",r)}})}s.isEmbedded=-1!==window.location.search.indexOf("_ab=0&_fd=0&_sc=1"),s.path=s.state.path||window.location.pathname,s.basePath=s.state.locale_root_url.concat("/apps/locksmith").replace(/^\/\//,"/"),s.reloading=!1,s.util.console=window.console||{log:function(){},error:function(){}},s.util.makeUrl=function(e,t){var n,o=s.basePath+e,i=[],a=s.cache();for(n in a)i.push(n+"="+encodeURIComponent(a[n]));for(n in t)i.push(n+"="+encodeURIComponent(t[n]));return s.state.customer_id&&(i.push("customer_id="+encodeURIComponent(s.state.customer_id)),i.push("customer_id_signature="+encodeURIComponent(s.state.customer_id_signature))),o+=(-1===o.indexOf("?")?"?":"&")+i.join("&")},s._initializeCallbacks=[],s.on=function(e,t){if("initialize"!==e)throw'Locksmith.on() currently only supports the "initialize" event';s._initializeCallbacks.push(t)},s.initializeSession=function(e){if(!s.isEmbedded){var t=!1,n=!0,o=!0;(e=e||{}).silent&&(o=n=!(t=!0)),s.ping({silent:t,spinner:n,reload:o,callback:function(){s._initializeCallbacks.forEach(function(e){e()})}})}},s.cache=function(e){var t={};try{var n=function i(e){return(document.cookie.match("(^|; )"+e+"=([^;]*)")||0)[2]};t=JSON.parse(decodeURIComponent(n("locksmith-params")||"{}"))}catch(d){}if(e){for(var o in e)t[o]=e[o];document.cookie="locksmith-params=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/",document.cookie="locksmith-params="+encodeURIComponent(JSON.stringify(t))+"; path=/"}return t},s.cache.cart=s.state.cart,s.cache.cartLastSaved=null,s.params=s.cache(),s.util.reload=function(){s.reloading=!0;try{window.location.href=window.location.href.replace(/#.*/,"")}catch(d){s.util.console.error("Preferred reload method failed",d),window.location.reload()}},s.cache.saveCart=function(e){if(!s.cache.cart||s.cache.cart===s.cache.cartLastSaved)return e?e():null;var t=s.cache.cartLastSaved;s.cache.cartLastSaved=s.cache.cart,fetch("/cart/update.js",{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({attributes:{locksmith:s.cache.cart}})}).then(function(e){if(!e.ok)throw new Error("Cart update failed: "+e.status);return e.json()}).then(function(){e&&e()})["catch"](function(e){if(s.cache.cartLastSaved=t,!s.reloading)throw e})},s.util.spinnerHTML='<style>body{background:#FFF}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}#loading{display:flex;width:100%;height:50vh;
8color:#777;align-items:center;justify-content:center}#loading .spinner{display:block;animation:spin 600ms linear infinite;position:relative;width:50px;height:50px}#loading .spinner-ring{stroke:currentColor;stroke-dasharray:100%;stroke-width:2px;stroke-linecap:round;fill:none}</style><div id="loading"><div class="spinner"><svg width="100%" height="100%"><svg preserveAspectRatio="xMinYMin"><circle class="spinner-ring" cx="50%" cy="50%" r="45%"></circle></svg></svg></div></div>',s.util.clobberBody=function(e){document.body.innerHTML=e},s.util.clobberDocument=function(e){e.responseText&&(e=e.responseText),document.documentElement&&document.removeChild(document.documentElement);var t=document.open("text/html","replace");t.writeln(e),t.close(),setTimeout(function(){var e=t.querySelector("[autofocus]");e&&e.focus()},100)},s.util.serializeForm=function(e){if(e&&"FORM"===e.nodeName){var t,n,o={};for(t=e.elements.length-1;0<=t;t-=1)if(""!==e.elements[t].name)switch(e.elements[t].nodeName){case"INPUT":switch(e.elements[t].type){default:case"text":case"hidden":case"password":case"button":case"reset":case"submit":o[e.elements[t].name]=e.elements[t].value;break;case"checkbox":case"radio":e.elements[t].checked&&(o[e.elements[t].name]=e.elements[t].value);break;case"file":}break;case"TEXTAREA":o[e.elements[t].name]=e.elements[t].value;break;case"SELECT":switch(e.elements[t].type){case"select-one":o[e.elements[t].name]=e.elements[t].value;break;case"select-multiple":for(n=e.elements[t].options.length-1;0<=n;n-=1)e.elements[t].options[n].selected&&(o[e.elements[t].name]=e.elements[t].options[n].value)}break;case"BUTTON":switch(e.elements[t].type){case"reset":case"submit":case"button":o[e.elements[t].name]=e.elements[t].value}}return o}},s.util.on=function(e,a,s,t){t=t||document;var c="locksmith-"+e+a,n=function(e){var t=e.target,n=e.target.parentElement,o=t&&t.className&&(t.className.baseVal||t.className)||"",i=n&&n.className&&(n.className.baseVal||n.className)||"";("string"==typeof o&&-1!==o.split(/\s+/).indexOf(a)||"string"==typeof i&&-1!==i.split(/\s+/).indexOf(a))&&!e[c]&&(e[c]=!0,s(e))};t.attachEvent?t.attachEvent(e,n):t.addEventListener(e,n,!1)},s.util.enableActions=function(e){s.util.on("click","locksmith-action",function(e){e.preventDefault();var t=e.target;t.dataset.confirmWith&&!confirm(t.dataset.confirmWith)||(t.disabled=!0,t.innerText=t.dataset.disableWith,s.post("/action",t.dataset.locksmithParams,{spinner:!1,type:"text",success:function(e){(e=JSON.parse(e.responseText)).message&&alert(e.message),s.util.reload()}}))},e)},s.util.inject=function(e,t){var n=["data","locksmith","append"];if(-1!==t.indexOf(n.join("-"))){var o=document.createElement("div");o.innerHTML=t,e.appendChild(o)}else e.innerHTML=t;var i,a,s=e.querySelectorAll("script");for(a=0;a<s.length;++a){i=s[a];var c=document.createElement("script");if(i.type&&(c.type=i.type),i.src)c.src=i.src;else{var l=document.createTextNode(i.innerHTML);c.appendChild(l)}e.appendChild(c)}var r=e.querySelector("[autofocus]");r&&r.focus()},s.post=function(e,t,n){!1!==(n=n||{}).spinner&&s.util.clobberBody(s.util.spinnerHTML);var o={};n.container===document?(o.layout=1,n.success=function(e){s.util.clobberDocument(e)}):n.container&&(o.layout=0,n.success=function(e){var t=document.getElementById(n.container);s.util.inject(t,e),t.id===t.firstChild.id&&t.parentElement.replaceChild(t.firstChild,t)}),n.form_type&&(t.form_type=n.form_type),n.include_layout_classes!==undefined&&(t.include_layout_classes=n.include_layout_classes),n.lock_id!==undefined&&(t.lock_id=n.lock_id),s.loading=!0;var i=s.util.makeUrl(e,o),a="json"===n.type||"text"===n.type;fetch(i,{method:"POST",headers:{"Content-Type":"application/json",Accept:a?"application/json":"text/html"},body:JSON.stringify(t)}).then(function(e){if(!e.ok)throw new Error("Request failed: "+e.status);return e.text()}).then(function(e){var t=n.success||s.util.clobberDocument;t(a?{responseText:e}:e)})["catch"](function(e){if(!s.reloading)if("dashboard.weglot.com"!==window.location.host){if(!n.silent)throw alert("Something went wrong! Please refresh and try again."),e;console.error(e)}else console.error(e)})["finally"](function(){s.loading=!1})},s.postResource=function(e,t){e.path=s.path,e.search=window.location.search,e.state=s.state,e.passcode&&(e.passcode=e.passcode.trim()),e.email&&(e.email=e.email.trim()),e.state.cart=s.cache.cart,e.locksmith_json=s.jsonTag,e.locksmith_json_signature=s.jsonTagSignature,s.post("/resource",e,t)},s.ping=function(e){if(!s.isEmbedded){e=e||{};s.post("/ping",{path:s.path,search:window.location.search,state:s.state},{spinner:!!e.spinner,silent:"undefined"==typeof e.silent||e.silent,type:"text",success:function(e){e&&e.responseText?(e=JSON.parse(e.responseText)).messages&&0<e.messages.length&&s.showMessages(e.messages):console.error("[Locksmith] Invalid result in ping callback:",e)}})}},s.timeoutMonitor=function(){var e=s.cache.cart;s.ping({callback:function(){e!==s.cache.cart||setTimeout(function(){s.timeoutMonitor()},6e4)}})},s.showMessages=function(e){var t=document.createElement("div");t.style.position="fixed",t.style.left=0,t.style.right=0,t.style.bottom="-50px",t.style.opacity=0,t.style.background="#191919",t.style.color="#ddd",t.style.transition="bottom 0.2s, opacity 0.2s",t.style.zIndex=999999,t.innerHTML=["<style>","  .locksmith-ab .locksmith-b { display: none; }","  .locksmith-ab.toggled .locksmith-b { display: flex; }","  .locksmith-ab.toggled .locksmith-a { display: none; }","  .locksmith-flex { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; padding: 10px 20px; }","  .locksmith-message + .locksmith-message { border-top: 1px #555 solid; }","  .locksmith-message a { color: inherit; font-weight: bold; }","  .locksmith-message a:hover { color: inherit; opacity: 0.8; }","  a.locksmith-ab-toggle { font-weight: inherit; text-decoration: underline; }","  .locksmith-text { flex-grow: 1; }","  .locksmith-cta { flex-grow: 0; text-align: right; }","  .locksmith-cta button { transform: scale(0.8); transform-origin: left; }","  .locksmith-cta > * { display: block; }","  .locksmith-cta > * + * { margin-top: 10px; }","  .locksmith-message a.locksmith-close { flex-grow: 0; text-decoration: none; margin-left: 15px; font-size: 30px; font-family: monospace; display: block; padding: 2px 10px; }","  @media screen and (max-width: 600px) {","    .locksmith-wide-only { display: none !important; }","    .locksmith-flex { padding: 0 15px; }","    .locksmith-flex > * { margin-top: 5px; margin-bottom: 5px; }","    .locksmith-cta { text-align: left; }","  }","  @media screen and (min-width: 601px) {","    .locksmith-narrow-only { display: none !important; }","  }","</style>"].join("")+e.map(function(e){return'<div class="locksmith-message">'+e+"</div>"}).join(""),document.body.appendChild(t),document.body.style.position="relative",document.body.parentElement.style.paddingBottom=t.offsetHeight+"px",setTimeout(function(){t.style.bottom=0,t.style.opacity=1},50),s.util.on("click","locksmith-ab-toggle",function(e){e.preventDefault();for(var t=e.target.parentElement;-1===t.className.split(" ").indexOf("locksmith-ab");)t=t.parentElement;-1!==t.className.split(" ").indexOf("toggled")?t.className=t.className.replace("toggled",""):t.className=t.className+" toggled"}),s.util.enableActions(t)}}()}();</script>
8
9      
9<script data-locksmith>Locksmith.cache.cart=null</script>
9
10
11  
11<script data-locksmith>Locksmith.jsonTag="{\"version\":\"v320\",\"locked\":false,\"initialized\":true,\"scope\":\"page\",\"access_granted\":true,\"access_denied\":false,\"requires_customer\":false,\"manual_lock\":false,\"remote_lock\":false,\"has_timeout\":false,\"remote_rendered\":null,\"hide_resource\":false,\"hide_links_to_resource\":false,\"transparent\":true,\"locks\":{\"all\":[],\"opened\":[]},\"keys\":[],\"keys_signature\":\"b3161c01ed4c5a586263774a0f5b4f6e5d118018eac8f5b63ef850c115597974\",\"state\":{\"template\":\"page\",\"theme\":179687194922,\"product\":null,\"collection\":null,\"page\":\"store-locator\",\"blog\":null,\"article\":null,\"app\":null},\"now\":1790431202,\"path\":\"\\\/pages\\\/store-locator\",\"locale_root_url\":\"\\\/\",\"canonical_url\":\"https:\\\/\\\/tabanerocigars.com\\\/pages\\\/store-locator\",\"customer_id\":null,\"customer_id_signature\":\"b3161c01ed4c5a586263774a0f5b4f6e5d118018eac8f5b63ef850c115597974\",\"cart\":null}";Locksmith.jsonTagSignature="ff77c7313075d9b4289f10fd09395fc649f30bc533951bdf2c372191b1d805b8"</script>
11
12    <meta charset="utf-8">
13    <meta http-equiv="cleartype" content="on">
14    <meta name="robots" content="index,follow">
15    <meta name="google-site-verification" content="4aXLU_p515CZGjWrDXOqbQKzUtqRu9DNOSIYTWGEIjg" />
16<script type="text/javascript">
17    (function(c,l,a,r,i,t,y){
18        c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
19        t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
20        y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
21    })(window, document, "clarity", "script", "ef782qeipl");
22</script>
22
23
24    <!-- Google Tag Manager -->
25<script>
vendor: 327 bytes, lines 25-29
25(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
26new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
27j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
28'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
29})(window,document,'script','dataLayer','
29GTM-KXGJRLQW
vendor: 3 bytes, line 29
29');
29</script>
29
30<!-- End Google Tag Manager -->
31       
32    
32<script type="text/javascript">
33		(function e(){var e=document.createElement("script");e.type="text/javascript",e.async=true,e.src="//staticw2.yotpo.com/u7HZf07asMX45HGHCWKPMR9SrvMWFfoOwnhFzqc2/widget.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})();
34	</script>
34
35           
36    <title>Online Cuban Cigars | Store Finder - Tabanero Cigars</title>
37    
38    
39<meta name="description" content="Find the best Cuban cigars in your area with our online store finder. Find the store closest to you or put in an online order and get your cigars today." />
40
41    
42
43    
44    <noscript><meta http-equiv="refresh" content="0;url=https://agechecker.net/noscript"></noscript>
45    
45<script>
46    (function(w,d) {
47      try{if (localStorage.getItem('ac_verified')) return console.log('[AgeChecker.Net] Already verified');}catch(e){}
48      var config = {
49        element: "input[name='checkout']",
50        key: "KCzwJvxzxdPsXZLkjvOQiqno6lVUaT4o",
51        platform_features: { shopify: { checkout_redirect: true }},
52        path: "/cart",
53        onclosed: function () {
54            try{localStorage.setItem('ac_verified', 'true');}catch(e){}
55        }
56      };
57
58      w.AgeCheckerConfig=config;if(config.path&&(w.location.pathname+w.location.search).indexOf(config.path)) return;
59      var h=d.getElementsByTagName("head")[0];var a=d.createElement("script");a.src="https://cdn.agechecker.net/static/popup/v1/popup.js";a.crossOrigin="anonymous";
60      a.onerror=function(a){w.location.href="https://agechecker.net/loaderror";};h.insertBefore(a,h.firstChild);
61    })(window, document);
62    </script>
62
63    
64    
65    <!-- Script used to keep people from going to checkout after signing up, as this would bypass AgeChecker on the cart page -->
66    
66<script>
67       if(window.location.pathname.indexOf("/challenge") != -1) {
68            var find = function() {
69            if(document.getElementById("g-recaptcha")){//if captcha, make redirect to cart page
70                function insertBefore(el, referenceNode) {
71                    referenceNode.parentNode.insertBefore(el, referenceNode);
72                }
73                var redirect = document.createElement('input');
74                redirect.type = "hidden";
75                redirect.name = "return_to";
76                redirect.value = "/cart";
77
78                insertBefore(redirect, document.querySelector('.shopify-challenge__container input[type="submit"]'));
79            }
80            else
81                setTimeout(find, 1000);
82            }
83            setTimeout(find, 1000);
84       } else if(window.location.pathname.indexOf("/register") != -1) {
85         var find = function() {
86            if(document.getElementById("create_customer")){//if captcha, make redirect to cart page
87                function insertBefore(el, referenceNode) {
88                    referenceNode.parentNode.insertBefore(el, referenceNode);
89                }
90                var redirect = document.createElement('input');
91                redirect.type = "hidden";
92                redirect.name = "return_to";
93                redirect.value = "/cart";
94
95                document.querySelector('form[id="create_customer"]').append(redirect);
96            }
97            else
98                setTimeout(find, 1000);
99            }
100            setTimeout(find, 1000);
101       }
102    </script>
102
103
104    <!-- Custom Fonts -->
105    <link href="//fonts.googleapis.com/css?family=.|Asap:light,normal,bold|Kreon:light,normal,bold|Arvo:light,normal,bold|Merriweather:light,normal,bold" rel="stylesheet" type="text/css" />
106
107    
108<meta name="google-site-verification" content="4aXLU_p515CZGjWrDXOqbQKzUtqRu9DNOSIYTWGEIjg" />
109<meta name="author" content="Tabanero Cigars">
110<meta property="og:url" content="https://tabanerocigars.com/pages/store-locator">
111<meta property="og:site_name" content="Tabanero Cigars">
112
113
114<meta property="og:type" content="website">
115<meta property="og:title" content="Online Cuban Cigars | Store Finder">
116
117<meta property="og:image" content="http://tabanerocigars.com/cdn/shop/t/14/assets/logo.png?v=18277959418408221561755142115">
118<meta property="og:image:secure_url" content="https://tabanerocigars.com/cdn/shop/t/14/assets/logo.png?v=18277959418408221561755142115">
119
120
121
122<meta property="og:description" content="Find the best Cuban cigars in your area with our online store finder. Find the store closest to you or put in an online order and get your cigars today.">
123
124
125
126
127  <meta name="twitter:site" content="@shopify">
128
129<meta name="twitter:card" content="summary">
130
131
132    
133    
134
135    <!-- Mobile Specific Metas -->
136    
137    <meta name="HandheldFriendly" content="True">
138    <meta name="MobileOptimized" content="320">
139    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> 
140
141    <!-- Stylesheets for Retina 3.1 -->
142    <link href="//tabanerocigars.com/cdn/shop/t/14/assets/styles.scss.css?v=161895242601679321191789366446" rel="stylesheet" type="text/css" media="all" />
143    <!--[if lte IE 9]>
144      <link href="//tabanerocigars.com/cdn/shop/t/14/assets/ie.css?v=16370617434440559491755142115" rel="stylesheet" type="text/css" media="all" />
145    <![endif]-->
146    <!--[if lte IE 7]>
147      
147<script src="//tabanerocigars.com/cdn/shop/t/14/assets/lte-ie7.js?v=163036231798125265921755142115" type="text/javascript"></script>
147
148    <![endif]-->
149
150    <link rel="shortcut icon" type="image/x-icon" href="//tabanerocigars.com/cdn/shop/t/14/assets/favicon.png?v=53453841180494327051755142115">
151    <link rel="canonical" href="https://tabanerocigars.com/pages/store-locator" />
152    
153    
154
155    <!-- jQuery and jQuery fallback -->
156    
156<script src="https://code.jquery.com/jquery-3.6.0.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
156
157    <!-- 
157<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
157 -->
158    <!-- 
158<script>window.jQuery || document.write("
158<script src='//tabanerocigars.com/cdn/shop/t/14/assets/jquery.min.js?v=171470576117159292311755142115'>\x3C/script>")</script>
158 -->
159    
159<script src="//tabanerocigars.com/cdn/shop/t/14/assets/app.js?v=156217830188393735351755142115" type="text/javascript"></script>
159
160    
160<script src="//tabanerocigars.com/cdn/shop/t/14/assets/cloudzoom.js?v=143460180462419703841755142115" type="text/javascript"></script>
160
161    
161<script src="//tabanerocigars.com/cdn/shopifycloud/storefront/assets/themes_support/option_selection-b017cd28.js" type="text/javascript"></script>
161        
162    
162<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
162<meta name="google-site-verification" content="4OM2u09gTn7wQQuUZTqDH1dtZQoD3kxFzoLiDjJS-SA">
163<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/10873052/digital_wallets/dialog">
164<meta id="in-context-paypal-metadata" data-shop-id="10873052" data-venmo-supported="true" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD">
165<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
165<script async="async" src="/checkouts/internal/preloads.js?locale=en-US"></script>
vendor: 1 bytes, line 165
165
166<script id="shopify-features" type="application/json">{"accessToken":"b66fc4340e67a3958529f02075dad526","betas":["rich-media-storefront-analytics"],"domain":"tabanerocigars.com","predictiveSearch":true,"shopId":10873052,"locale":"en"}</script>
vendor: 1 bytes, line 166
166
167<script>var Shopify = Shopify || {};
168Shopify.shop = "tabanero-cigars.myshopify.com";
169Shopify.locale = "en";
170Shopify.currency = {"active":"USD","rate":"1.0"};
171Shopify.country = "US";
172Shopify.theme = {"name":"[Stoq] Copy of Bold Retina RO  KG[14-08-2025]","id":179687194922,"schema_name":null,"schema_version":null,"theme_store_id":null,"role":"main"};
173Shopify.theme.handle = "null";
174Shopify.theme.style = {"id":null,"handle":null};
175Shopify.cdnHost = "tabanerocigars.com/cdn";
176Shopify.routes = Shopify.routes || {};
177Shopify.routes.root = "/";
178Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js";
179Shopify.SignInWithShop = Shopify.SignInWithShop || {};
180Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {};
181Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 181
181
182<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 182
182
183<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 183
183
184<script>
185  window.Shopify = window.Shopify || {};
186  window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {};
187  window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 };
188  window.Shopify.SignInWithShop.eligible = true;
189</script>
vendor: 1 bytes, line 189
189
190<script id="shop-js-analytics" type="application/json">{"pageType":"page"}</script>
vendor: 1 bytes, line 190
190
191<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 191
191
192<script type="module">
193  await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js");
194
195  window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true});
196
197</script>
vendor: 1 bytes, line 197
197
198<script>
199  window.Shopify = window.Shopify || {};
200  if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {};
201  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"]};
202</script>
vendor: 1 bytes, line 202
202
203<script>(function() {
204  var isLoaded = false;
205  function asyncLoad() {
206    if (isLoaded) return;
207    isLoaded = true;
208    var urls = ["\/\/www.powr.io\/powr.js?powr-token=tabanero-cigars.myshopify.com\u0026external-type=shopify\u0026shop=tabanero-cigars.myshopify.com","https:\/\/cdn.hextom.com\/js\/freeshippingbar.js?shop=tabanero-cigars.myshopify.com","\/\/cdn.shopify.com\/proxy\/f16ac8c9f791c95837627a792bd88f164d424279b104fee55ab5f1e9823b8774\/d1639lhkj5l89m.cloudfront.net\/js\/storefront\/uppromote.js?shop=tabanero-cigars.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA"];
209    for (var i = 0; i < urls.length; i++) {
210      var s = document.createElement('script');
211      s.type = 'text/javascript';
212      s.async = true;
213      s.src = urls[i];
214      var x = document.getElementsByTagName('script')[0];
215      x.parentNode.insertBefore(s, x);
216    }
217  };
218  if(window.attachEvent) {
219    window.attachEvent('onload', asyncLoad);
220  } else {
221    window.addEventListener('load', asyncLoad, false);
222  }
223})();</script>
vendor: 1 bytes, line 223
223
224<script id="__st">var __st={"a":10873052,"offset":-14400,"reqid":"11700b42-27ee-4341-a4ab-6492bc81ec87-1790431202","pageurl":"tabanerocigars.com\/pages\/store-locator","s":"pages-83114885222","u":"36e6f5c7ee83","p":"page","rtyp":"page","rid":83114885222};</script>
vendor: 1 bytes, line 224
224
225<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 225
225
226<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 226
226
227<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//tabanerocigars.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 227
227
228<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 = "//tabanerocigars.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>
228<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 228
228
229<script>
230  window.Shopify = window.Shopify || {};
231  window.Shopify.MCP = window.Shopify.MCP || {};
232  window.Shopify.MCP.enabled = true;
233  window.Shopify.MCP.shop = "tabanero-cigars.myshopify.com";
234  window.Shopify.MCP.mcpEndpoint = "https:\/\/tabanerocigars.com\/api\/mcp";
235  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"]}}];
236</script>
vendor: 1 bytes, line 236
236
237<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("\/\/tabanerocigars.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})();
238</script>
vendor: 1 bytes, line 238
238
239<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://tabanerocigars.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}};
240</script>
vendor: 1 bytes, line 240
240
241<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
242  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);
243</script>
vendor: 1 bytes, line 243
243
244<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})}}));
245</script>
245
246<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://tabanerocigars.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous">
247<style id="shopify-accelerated-checkout-cart">
248        #shopify-buyer-consent {
249  margin-top: 1em;
250  display: inline-block;
251  width: 100%;
252}
253
254#shopify-buyer-consent.hidden {
255  display: none;
256}
257
258#shopify-subscription-policy-button {
259  background: none;
260  border: none;
261  padding: 0;
262  text-decoration: underline;
263  font-size: inherit;
264  cursor: pointer;
265}
266
267#shopify-subscription-policy-button::before {
268  box-shadow: none;
269}
270
271      </style>
272
273<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
273
274    
274<script type="text/javascript" src="https://s3.amazonaws.com/lastsecondcoupon/js/freeshippingbar.js?shop=tabanero-cigars.myshopify.com"></script>
274
275    <meta name="msvalidate.01" content="09562E3AB5B7D32A03B04E412EF0C3D6" />
276    
276<script type="text/javascript">
277(function e(){var e=document.createElement("script");e.type="text/javascript",e.async=true,e.src="//staticw2.yotpo.com/u7HZf07asMX45HGHCWKPMR9SrvMWFfoOwnhFzqc2/widget.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})();
278</script>
278
279
280
281    
282
283    
283<script type="application/ld+json">
284{
285  "@context": "http://schema.org",
286  "@type": "Organization",
287  "name": "Tabanero Cigars",	
288  "url": "https://tabanerocigars.com/",
289  "logo": "https://cdn.shopify.com/s/files/1/1087/3052/t/9/assets/logo.png?v=1827795941840822156",
290  "contactPoint": [
291      {
292          "@type": "ContactPoint",
293          "contactType": "customer service",
294   "telephone":"+18134026316",
295   "email":"[email protected]",
296          "areaServed": [
297             "United States"
298          ],
299          "availableLanguage": [
300              "English"
301          ]
302      }
303  ]
304}
305</script>
vendor: 1 bytes, line 305
305
306<script type="application/ld+json">
307{
308  "@context": "http:\/\/schema.org",
309  "@type": "LocalBusiness",
310  "name": "Tabanero Cigars",	
311  "url": "https://tabanerocigars.com/",
312  "description":"WHETHER YOU ARE A NEWBIE, WANT TO BUY IT FOR A FRIEND, OR COMING WITH A PREDETERMINED LIST OF CIGARS, AT TABANERO CIGARS, WE HAVE SIMPLY THE BEST OPTIONS FOR YOU!",
313  "logo": "https://callremedyplumbing.com/wp-content/uploads/2021/06/cropped-remedy-plumbing-header-208x114.png",
314  "image": [
315  {
316  "@type": "imageObject",
317  "url": "https://cdn.shopify.com/s/files/1/1087/3052/files/AboutBanner_1fc95ada-4d78-4bd2-89cf-ee2f20f6ffca.png?5559584682953571036"
318   }
319   ],
320   "telephone":"+18134026316",
321   "email":"[email protected]",
322   "address": {
323      "@type": "PostalAddress",
324      "streetAddress": "1601 E 7th Ave",
325      "addressLocality": "Tampa, FL",
326      "postalCode": "33605",
327      "addressCountry": "United States"
328  },
329  "geo": {
330      "@type": "GeoCoordinates",
331      "latitude": "27.960149",
332      "longitude": "-82.441591"
333  },
334"openingHoursSpecification": [{
335    "@type": "OpeningHoursSpecification",
336    "dayOfWeek": [
337      "Monday",
338      "Tuesday",
339      "Wednesday",
340      "Thursday"
341    ],
342    "opens": "10:00",
343    "closes": "18:00"
344  },{
345    "@type": "OpeningHoursSpecification",
346    "dayOfWeek": [
347      "Friday",
348      "Saturday",
349      "Sunday"
350    ],
351    "opens": "10:00",
352    "closes": "20:00"
353  }],
354  "priceRange": "$$-$$$"
355}
356}
357</script>
357
358    <style>
359      
360  
361    @media screen and (max-width: 767px){
362   .evm-wiser-owl-carousel .ws-box-wrapper .evm-ws-card {
363    padding-right: 15px;
364}
365.evm-wiser-owl-carousel#presets2  .ws-box-wrapper .evm-ws-card .ws-card__header h3.ws-card__title {
366    font-size: 12px !important;
367} 
368}
369@media screen and (max-width: 590px){
370.evm_visible_text .evm-wiser-owl-carousel .owl-nav button {
371    top: -20px;
372}
373}
374@media screen and (max-width: 479px){
375.one-third.column .info .yotpo-reviews-star-ratings-widget .yotpo-widget-clear button.yotpo-sr-bottom-line-summary span.yotpo-sr-bottom-line-text {
376    font-size: 14px !important;
377}
378.one-third.column .info .yotpo-reviews-star-ratings-widget .yotpo-widget-clear button.yotpo-sr-bottom-line-summary svg {
379    width: 10px;
380    height: 10px;
381}
382.one-third.column .info span.title {
383    font-size: 14px;
384    line-height: 20px;
385}
386}
387.container .four.columns iframe {
388    width: 100%;
389}
390
391
392 
393
394    </style>
395<!-- 
395<script async src="https://cdn-widgetsrepository.yotpo.com/v1/loader/u7HZf07asMX45HGHCWKPMR9SrvMWFfoOwnhFzqc2" type="text/javascript"></script>
395 -->
396
397    
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417 
418
419
420
421
422<div class="evm-wiser-popup-mainsection"></div>	
423
424<!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 -->
425
426
427
428
429
430
431
432
433
434
435
436
437  
437<script async src="https://static.klaviyo.com/onsite/js/Smy9AK/klaviyo.js?company_id=Smy9AK"></script>
437
438  
438<script>!function(){if(!window.klaviyo){window._klOnsite=window._klOnsite||[];try{window.klaviyo=new Proxy({},{get:function(n,i){return"push"===i?function(){var n;(n=window._klOnsite).push.apply(n,arguments)}:function(){for(var n=arguments.length,o=new Array(n),w=0;w<n;w++)o[w]=arguments[w];var t="function"==typeof o[o.length-1]?o.pop():void 0,e=new Promise((function(n){window._klOnsite.push([i].concat(o,[function(i){t&&t(i),n(i)}]))}));return e}}})}catch(n){window.klaviyo=window.klaviyo||[],window.klaviyo.push=function(){var n;(n=window._klOnsite).push.apply(n,arguments)}}}}();</script>
438
439
440  
441
442
443
444
445  
445<script>
446    window.klaviyoReviewsProductDesignMode = false
447  </script>
447
448
449
450
451  <!-- BEGIN app snippet: customer-hub-data -->
451<script>
452  if (!window.customerHub) {
453    window.customerHub = {};
454  }
455  window.customerHub.storefrontRoutes = {
456    login: "/account/login?return_url=%2F%23k-hub",
457    register: "/account/register?return_url=%2F%23k-hub",
458    logout: "/account/logout",
459    profile: "/account",
460    addresses: "/account/addresses",
461  };
462  
463  window.customerHub.userId = null;
464  
465  window.customerHub.storeDomain = "tabanero-cigars.myshopify.com";
466
467  
468
469  
470    window.customerHub.storeLocale = {
471        currentLanguage: 'en',
472        currentCountry: 'US',
473        availableLanguages: [
474          
475            {
476              iso_code: 'en',
477              endonym_name: 'English'
478            }
479          
480        ],
481        availableCountries: [
482          
483            {
484              iso_code: 'US',
485              name: 'United States',
486              currency_code: 'USD'
487            }
488          
489        ]
490    };
491  
492</script>
492
493<!-- END app snippet -->
494
495
496
497
498
499
500
501<!-- END app block --><!-- BEGIN app block: shopify://apps/pagefly-ai-page-builder/blocks/app-embed/83e179f7-59a0-4589-8c66-c0dddf959200 -->
502
503<!-- BEGIN app snippet: pagefly-cro-ab-testing-main -->
504
505
506
507
508
509
510
511<script>
512  ;(function () {
513    const url = new URL(window.location)
514    const viewParam = url.searchParams.get('view')
515    if (viewParam && viewParam.includes('variant-pf-')) {
516      url.searchParams.set('pf_v', viewParam)
517      url.searchParams.delete('view')
518      window.history.replaceState({}, '', url)
519    }
520  })()
521</script>
521
522
523
524
525<script type='module'>
526  
527  window.PAGEFLY_CRO = window.PAGEFLY_CRO || {}
528
529  window.PAGEFLY_CRO['data_debug'] = {
530    original_template_suffix: "",
531    allow_ab_test: false,
532    ab_test_start_time: 0,
533    ab_test_end_time: 0,
534    today_date_time: 1790431202000,
535  }
536  window.PAGEFLY_CRO['GA4'] = { enabled: false}
537</script>
537
538
539<!-- END app snippet -->
540
541
542
543
544
545
546
547
548  
548<script src='https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-helper.js' defer='defer'></script>
548
549
550  
550<script src='https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-general-helper.js' defer='defer'></script>
550
551
552  
552<script src='https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-snap-slider.js' defer='defer'></script>
552
553
554  
554<script src='https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-slideshow-v3.js' defer='defer'></script>
554
555
556  
556<script src='https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-slideshow-v4.js' defer='defer'></script>
556
557
558  
558<script src='https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-glider.js' defer='defer'></script>
558
559
560  
560<script src='https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-slideshow-v1-v2.js' defer='defer'></script>
560
561
562  
562<script src='https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-product-media.js' defer='defer'></script>
562
563
564  
564<script src='https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-product.js' defer='defer'></script>
564
565
566
567<script id='pagefly-helper-data' type='application/json'>
568  {
569    "page_optimization": {
570      "assets_prefetching": false
571    },
572    "elements_asset_mapper": {
573      "Accordion": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-accordion.js",
574      "Accordion3": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-accordion3.js",
575      "CountDown": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-countdown.js",
576      "GMap1": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-gmap.js",
577      "GMap2": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-gmap.js",
578      "GMapBasicV2": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-gmap.js",
579      "GMapAdvancedV2": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-gmap.js",
580      "HTML.Video": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-htmlvideo.js",
581      "HTML.Video2": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-htmlvideo2.js",
582      "HTML.Video3": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-htmlvideo2.js",
583      "BackgroundVideo": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-htmlvideo2.js",
584      "Instagram": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-instagram.js",
585      "Instagram2": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-instagram.js",
586      "Insta3": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-instagram3.js",
587      "Tabs": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-tab.js",
588      "Tabs3": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-tab3.js",
589      "ProductBox": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-cart.js",
590      "FBPageBox2": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-facebook.js",
591      "FBLikeButton2": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-facebook.js",
592      "TwitterFeed2": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-twitter.js",
593      "Paragraph4": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-paragraph4.js",
594
595      "AliReviews": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-3rd-elements.js",
596      "BackInStock": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-3rd-elements.js",
597      "GloboBackInStock": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-3rd-elements.js",
598      "GrowaveWishlist": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-3rd-elements.js",
599      "InfiniteOptionsShopPad": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-3rd-elements.js",
600      "InkybayProductPersonalizer": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder
600-359/assets/pagefly-3rd-elements.js",
601      "LimeSpot": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-3rd-elements.js",
602      "Loox": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-3rd-elements.js",
603      "Opinew": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-3rd-elements.js",
604      "Powr": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-3rd-elements.js",
605      "ProductReviews": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-3rd-elements.js",
606      "PushOwl": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-3rd-elements.js",
607      "ReCharge": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-3rd-elements.js",
608      "Rivyo": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-3rd-elements.js",
609      "TrackingMore": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-3rd-elements.js",
610      "Vitals": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-3rd-elements.js",
611      "Wiser": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-3rd-elements.js"
612    },
613    "custom_elements_mapper": {
614      "pf-click-action-element": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-click-action-element.js",
615      "pf-dialog-element": "https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-dialog-element.js"
616    }
617  }
618</script>
618
619
620<script id='pagefly-heatmap-config' type='application/json'>
621  {}
622</script>
vendor: 1 bytes, line 622
622
623<script>
624  (function () {
625    var el = document.getElementById('pagefly-heatmap-config')
626    if (!el) { window.__pagefly_heatmap_config__ = {}; return }
627    try {
628      window.__pagefly_heatmap_config__ = JSON.parse(el.textContent || '{}') || {}
629    } catch (e) {
630      window.__pagefly_heatmap_config__ = {}
631    }
632  })()
633</script>
vendor: 1 bytes, line 633
633
634<script>
635  // Heatmap overlay loader. Three gates, all of them cheap, none of them trusting the URL:
636  // the visitor must have arrived on a pf_heatmap link, the SERVER must have published an
637  // overlay path in the metafield, and this page must already be one the merchant enabled
638  // tracking for. The last gate is what stops a crafted link pulling the asset onto an
639  // arbitrary storefront page. Everything else is decided inside the asset, and by the server.
640  (function () {
641    var cfg = window.__pagefly_heatmap_config__ || {}
642    var id = (window.__pagefly_page_setting__ || {}).pageId
643    if (!/[#&]pf_heatmap=/.test(window.location.hash || '')) return
644    if (!cfg.overlay_data_path || !Array.isArray(cfg.enabled_page_ids)) return
645    if (!id || cfg.enabled_page_ids.indexOf(id) === -1) return
646    var s = document.createElement('script')
647    s.src = 'https://cdn.shopify.com/extensions/01a0d61e-3051-7383-be09-dc10c7351f79/pagefly-ai-page-builder-359/assets/pagefly-heatmap-overlay.js'
648    s.defer = true
649    document.head.appendChild(s)
650  })()
651</script>
651
652
653<!-- BEGIN app snippet: pf-ai-schema -->
654<!-- END app snippet -->
655
656
657<!-- END app block --><!-- BEGIN app block: shopify://apps/gift-box/blocks/head/f53ea332-e066-453a-9116-800349284dfb -->
657<script>
658const isProductPage = window.location.pathname.includes("/products/");
659
660// Allow redirect only on product pages.
661if (isProductPage) {
662  const GHOST_PRODUCT_TYPE = "giftbox_ghost_product";
663  // Use product handle to check the type of the product.
664  const product_type = "";
665  if (product_type == GHOST_PRODUCT_TYPE) {
666    // Redirect to the GP parent URL stored in the GP's metafields.
667    const parent_product_url = '';
668    if (parent_product_url === null || parent_product_url === '') {
669      window.location.replace("/");
670    } else {
671      window.location.replace(parent_product_url);
672    }
673  }
674}
675</script>
675
676
677<script
678  src="https://giftbox.ds-cdn.com/static/main.js?shop=tabanero-cigars.myshopify.com"
679
680></script>
680
681
682
683<!-- END app block -->
683<script src="https://cdn.shopify.com/extensions/01a0ca4b-28c5-7732-959d-2591e6d4564f/free-shipping-bar-268/assets/freeshippingbar.js" type="text/javascript" defer="defer"></script>
683
684<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
685<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: 10873052,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "page"};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 685
685
686<script>
687  window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || [];
688</script>
vendor: 1 bytes, line 688
688
689<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}
689).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: 10873052,storefrontBaseUrl: "https://tabanerocigars.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://tabanerocigars.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"2773516586","configuration":"{\"shopId\":\"40974\",\"env\":\"production\",\"metaData\":\"[]\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"de1f24f7dbc015cb4d3a1ef53d018b51","type":"APP","apiClientId":2773553,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]}
689,"dataSharingState":"unrestricted"},{"id":"2661777706","configuration":"{\"appProxyPath\":\"\/apps\/pagefly\",\"analyticsEndpoint\":\"undefined\/analytics-v2\/events\",\"focusDuration\":\"3\",\"enableAdvancedTracking\":\"true\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"1e023fb0c721518c0dce4129e4d87a86","type":"APP","apiClientId":1743893,"privacyPurposes":["ANALYTICS","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"1843167530","configuration":"{\"accountID\":\"Smy9AK\",\"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":"1275461930","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"AW-966561769\\\",\\\"GT-TQK47HDT\\\"],\\\"target_country\\\":\\\"US\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":\\\"AW-966561769\\\/exQZCPnlvcYaEOmf8swD\\\"},{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":\\\"AW-966561769\\\/XfkECLTxvcYaEOmf8swD\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"AW-966561769\\\/sX4nCLHxvcYaEOmf8swD\\\",\\\"MC-PF8MZTWV8G\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"AW-966561769\\\/l8zUCPblvcYaEOmf8swD\\\",\\\"MC-PF8MZTWV8G\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"AW-966561769\\\/UdG4CK7xvcYaEOmf8swD\\\",\\\"MC-PF8MZTWV8G\\\"]},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":\\\"AW-966561769\\\/WyBXCLfxvcYaEOmf8swD\\\"},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":\\\"AW-966561769\\\/HIlDCKvxvcYaEOmf8swD\\\"}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"a3321ca85cf5aaf6b57585fcd8d67b3a","type":"APP","apiClientId":1780363,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"138150186","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["MARKETING"],"name":"Meta pixel (migrated)"}
689,{"id":"177668394","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":[],"name":"custom pixel"},{"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":"Tabanero Cigars","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"tabanero-cigars.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/tabanerocigars.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[],"purchasingCompany":null},},"https://tabanerocigars.com/cdn","c8540278we853e1abpb62b2c4amde256306",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"false","themeId":"179687194922","themePublished":"true","eventMetadataId":"b66197e1-f720-4add-8575-72a99b4dcc77","pageType":"page","resourceId":"83114885222","shopId":"10873052","storefrontBaseUrl":"https:\/\/tabanerocigars.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"c8540278we853e1abpb62b2c4amde256306","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
689<script>
690  window.ShopifyAnalytics = window.ShopifyAnalytics || {};
691  window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
692  window.ShopifyAnalytics.meta.currency = 'USD';
693  var meta = {"page":{"pageType":"page","resourceType":"page","resourceId":83114885222,"requestId":"11700b42-27ee-4341-a4ab-6492bc81ec87-1790431202"}};
694  for (var attr in meta) {
695    window.ShopifyAnalytics.meta[attr] = meta[attr];
696  }
697</script>
vendor: 1 bytes, line 697
697
698<script class="analytics">
699  (function () {
700    var customDocumentWrite = function(content) {
701      var jquery = null;
702
703      if (window.jQuery) {
704        jquery = window.jQuery;
705      } else if (window.Checkout && window.Checkout.$) {
706        jquery = window.Checkout.$;
707      }
708
709      if (jquery) {
710        jquery('body').append(content);
711      }
712    };
713
714    var hasLoggedConversion = function(token) {
715      if (token) {
716        return document.cookie.indexOf('loggedConversion=' + token) !== -1;
717      }
718      return false;
719    }
720
721    var setCookieIfConversion = function(token) {
722      if (token) {
723        var twoMonthsFromNow = new Date(Date.now());
724        twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
725
726        document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
727      }
728    }
729
730    var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
731    window.ShopifyAnalytics.lib.trekkie = window.trekkie;
732    if (trekkie.integrations) {
733      return;
734    }
735    trekkie.methods = [
736      'identify',
737      'page',
738      'ready',
739      'track',
740      'trackForm',
741      'trackLink'
742    ];
743    trekkie.factory = function(method) {
744      return function() {
745        var args = Array.prototype.slice.call(arguments);
746        args.unshift(method);
747        trekkie.push(args);
748        if (method == 'track' || method == 'page') {
749          var pageUrl;
750          try {
751            pageUrl = window.location.href;
752          } catch (e) {}
753          var pageReferrer;
754          try {
755            pageReferrer = document.referrer;
756          } catch (e) {}
757          try {
758            if (window.__TREKKIE_SHIM_QUEUE == null) {
759              window.__TREKKIE_SHIM_QUEUE = [];
760            }
761            window.__TREKKIE_SHIM_QUEUE.push({
762              from: 'trekkie-stub',
763              method: method,
764              args: args.slice(1),
765              pageContext: {
766                url: pageUrl,
767                referrer: pageReferrer
768              }
769            });
770          } catch (e) {
771            // no-op
772          }
773        }
774        return trekkie;
775      };
776    };
777    for (var i = 0; i < trekkie.methods.length; i++) {
778      var key = trekkie.methods[i];
779      trekkie[key] = trekkie.factory(key);
780    }
781    trekkie.load = function(config) {
782      trekkie.config = config || {};
783      trekkie.config.initialDocumentCookie = document.cookie;
784      var first = document.getElementsByTagName('script')[0];
785var script = document.createElement('script');
786script.type = 'text/javascript';
787script.onerror = function(e) {
788  var scriptFallback = document.createElement('script');
789  scriptFallback.type = 'text/javascript';
790  scriptFallback.onerror = function(error) {
791          var Monorail = {
792      produce: function produce(monorailDomain, schemaId, payload) {
793        var currentMs = new Date().getTime();
794        var event = {
795          schema_id: schemaId,
796          payload: payload,
797          metadata: {
798            event_created_at_ms: currentMs,
799            event_sent_at_ms: currentMs
800          }
801        };
802        return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
803      },
804      sendRequest: function sendRequest(endpointUrl, payload) {
805        // Try the sendBeacon API
806        if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
807          var blobData = new window.Blob([payload], {
808            type: 'text/plain'
809          });
810
811          if (window.navigator.sendBeacon(endpointUrl, blobData)) {
812            return true;
813          } // sendBeacon was not successful
814
815        } // XHR beacon
816
817        var xhr = new XMLHttpRequest();
818
819        try {
820          xhr.open('POST', endpointUrl);
821          xhr.setRequestHeader('Content-Type', 'text/plain');
822          xhr.send(payload);
823        } catch (e) {
824          console.log(e);
825        }
826
827        return false;
828      },
829      isIos12: function isIos12() {
830        return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
831      }
832    };
833    Monorail.produce('monorail-edge.shopifysvc.com',
834      'trekkie_storefront_load_errors/1.1',
835      {shop_id: 10873052,
836      theme_id: 179687194922,
837      app_name: "storefront",
838      context_url: window.location.href,
839      source_url: "//tabanerocigars.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js"});
840
841  };
842  scriptFallback.async = true;
843  scriptFallback.src = '//tabanerocigars.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js';
844  first.parentNode.insertBefore(scriptFallback, first);
845};
846script.async = true;
847script.src = '//tabanerocigars.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js';
848first.parentNode.insertBefore(script, first);
849
850    };
851    trekkie.load(
852      {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":10873052,"isMerchantRequest":null,"themeId":179687194922,"themeCityHash":"14344237971095911656","contentLanguage":"en","currency":"USD","eventMetadataId":"b66197e1-f720-4add-8575-72a99b4dcc77"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":false,"source":"trekkie-storefront-renderer","apiClientId":580111}}
853    );
854
855    var loaded = false;
856    trekkie.ready(function() {
857      if (loaded) return;
858      loaded = true;
859
860      window.ShopifyAnalytics.lib = window.trekkie;
861
862      var originalDocumentWrite = document.write;
863      document.write = customDocumentWrite;
864      try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
865      document.write = originalDocumentWrite;
866
867      var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
868      var token = match? match[1]: undefined;
869      if (!hasLoggedConversion(token)) {
870        setCookieIfConversion(token);
871        
872      }
873    });
874
875    window.ShopifyAnalytics.lib.page(null,{"pageType":"page","resourceType":"page","resourceId":83114885222,"requestId":"11700b42-27ee-4341-a4ab-6492bc81ec87-1790431202","shopifyEmitted":true});
876
877    var eventsListenerScript = document.createElement('script');
878    eventsListenerScript.async = true;
879    eventsListenerScript.src = "//tabanerocigars.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js";
880    document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
881})();</script>
881
882  
882<script>
883  if (!window.ga || (window.ga && typeof window.ga !== 'function')) {
884    window.ga = function ga() {
885      (window.ga.q = window.ga.q || []).push(arguments);
886      if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
887        window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"});
888      }
889      console.error("Shopify's Google Analytics stub called with:", Array.from(arguments), "\nSee https://help.shopify.com/manual/promoting-marketing/pixels/pixel-migration#google for more information.");
890    };
891    if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
892      window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"});
893    }
894  }
895</script>
vendor: 1 bytes, line 895
895
896<script
897  defer
898  src="https://tabanerocigars.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js"
899  data-application="storefront-renderer"
900  data-shop-id="10873052"
901  data-render-region="gcp-us-central1"
902  data-page-type="page"
903  data-theme-instance-id="179687194922"
904  data-theme-name=""
905  data-theme-version=""
906  data-monorail-region="shop_domain"
907  data-resource-timing-sampling-rate="10"
908  data-shs="true"
909  data-shs-beacon="true"
910  data-shs-export-with-fetch="true"
911  data-shs-logs-sample-rate="1"
912  data-shs-beacon-endpoint="https://tabanerocigars.com/api/collect"
913></script>
913
914<meta name="shopify-y" content="d563ed5d-adba-413a-9860-3b168426e49b" data-expiration="1821988802000"><meta name="shopify-s" content="2258b10a-dcb2-455e-b4c2-0ae494097f3f" data-expiration="1790433002000"><meta name="new-cookie-storage-activated" content="t">
915</head>
916  <body class="page">
917   <!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 917-918
917
918<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
918GTM-KXGJRLQW
vendor: 83 bytes, lines 918-919
918"
919height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
920<!-- End Google Tag Manager (noscript) -->
921    <div>
922      <div id="header" class="mm-fixed-top">
923        <a href="#nav" class="icon-menu"> <span>Menu</span></a>
924        <a href="https://tabanerocigars.com" title="Tabanero Cigars" class="logo-header">
925          
926          <img class="mobile-logo" src="//tabanerocigars.com/cdn/shop/t/14/assets/logo.png?v=18277959418408221561755142115" alt="Tabanero Cigars" data-src="//tabanerocigars.com/cdn/shop/t/14/assets/logo.png?v=18277959418408221561755142115"  />
927          
928        </a>
929        <a href="#cart" class="icon-cart right"> <span>Cart</span></a>
930      </div>
931      
932      <div class="hidden">
933        <div id="nav" style="z-index:100000">
934          <ul>
935            
936
937                <li ><a href="/collections/cigars">Cigars</a>
938                  <ul>
939                    
940
941                        <li ><a href="/collections/mild">Mild</a></li>
942                      
943                    
944
945                        <li ><a href="/collections/medium">Medium</a></li>
946                      
947                    
948
949                        <li ><a href="/collections/medium-to-full">Medium to Full</a></li>
950                      
951                    
952
953                        <li ><a href="/collections/full">Full</a></li>
954                      
955                    
956
957                        <li ><a href="/collections/sun-grown">Sun-Grown</a></li>
958                      
959                    
960
961                        <li ><a href="/collections/maduro">Maduro</a></li>
962                      
963                    
964
965                        <li ><a href="/collections/connecticut">Connecticut</a></li>
966                      
967                    
968
969                        <li ><a href="/collections/cigar-bundles/BUNDLE-CIGARS">Cigar Bundles</a></li>
970                      
971                    
972                  </ul>
973                </li>
974              
975            
976
977                <li ><a href="/collections/accessories">Lifestyle</a>
978                  <ul>
979                    
980
981                        <li ><a href="/collections/accessories">Accessories</a></li>
982                      
983                    
984
985                        <li ><a href="/collections/coffee-1">Coffee</a></li>
986                      
987                    
988
989                        <li ><a href="/collections/apparel">Apparel</a></li>
990                      
991                    
992
993                        <li ><a href="/collections/gifts">Gifts</a></li>
994                      
995                    
996
997                        <li ><a href="https://tabanerocigars.com/pages/tabanero-social-reserve">Social Reserve and Tours</a></li>
998                      
999                    
1000                  </ul>
1001                </li>
1002              
1003            
1004
1005                <li ><a href="/pages/about-us">About Us</a>
1006                  <ul>
1007                    
1008
1009                        <li ><a href="/pages/about-us">About Us</a></li>
1010                      
1011                    
1012
1013                        <li ><a href="/blogs/tabanero-blog">Our Blog</a></li>
1014                      
1015                    
1016
1017                        <li class="Selected"><a href="/pages/store-locator">Our Retailers</a></li>
1018                      
1019                    
1020                  </ul>
1021                </li>
1022              
1023            
1024
1025                <li ><a href="/pages/contact">Contact</a></li>
1026              
1027            
1028            
1029              
1030                <li>
1031                  <a href="/account/login" id="customer_login_link">My Account</a>
1032                </li>
1033              
1034            
1035          </ul>
1036        </div> 
1037          
1038        <form action="/cart" method="post" id="cart" style="z-index:100000">
1039          <ul data-money-format="$ {{amount}}" data-shop-currency="USD" data-shop-name="Tabanero Cigars">
1040            <li class="mm-subtitle"><a class="mm-subclose continue" href="#cart">Continue Shopping</a></li>
1041
1042            
1043              <li class="mm-label empty_cart"><a href="/cart">Your Cart is Empty</a></li>
1044            
1045          </ul>
1046        </form>
1047      </div>
1048		
1049      <div class="header mm-fixed-top header_bar">
1050        <div id="fsb_placeholder"></div>
1051        
1052
1053        <div class="container"> 
1054          <div class="four columns logo desktop-only">
1055            <a href="https://tabanerocigars.com" title="Tabanero Cigars">
1056              
1057                <img src="//tabanerocigars.com/cdn/shop/t/14/assets/logo.png?v=18277959418408221561755142115" alt="Tabanero Cigars" data-src="//tabanerocigars.com/cdn/shop/t/14/assets/logo.png?v=18277959418408221561755142115"  />
1058              
1059            </a>
1060          </div>
1061
1062          <div class="twelve columns nav mobile_hidden">
1063            <ul class="menu">
1064              
1065
1066
1067                  
1068                  
1069                  
1070
1071                    
1072                  
1073
1074                    
1075                  
1076
1077                    
1078                  
1079
1080                    
1081                  
1082
1083                    
1084                  
1085
1086                    
1087                  
1088
1089                    
1090                  
1091
1092                    
1093                  
1094                  
1095
1096                  <li><a href="/collections/cigars" class="sub-menu menu-Cigars  ">Cigars                     
1097                    <span class="arrow">▾</span></a> 
1098                    <div class="dropdown ">
1099                      <ul>
1100                        
1101                        
1102                        
1103
1104                          <li><a href="/collections/mild">Mild</a></li>
1105                          
1106
1107                          
1108                        
1109
1110                          <li><a href="/collections/medium">Medium</a></li>
1111                          
1112
1113                          
1114                        
1115
1116                          <li><a href="/collections/medium-to-full">Medium to Full</a></li>
1117                          
1118
1119                          
1120                        
1121
1122                          <li><a href="/collections/full">Full</a></li>
1123                          
1124
1125                          
1126                        
1127
1128                          <li><a href="/collections/sun-grown">Sun-Grown</a></li>
1129                          
1130
1131                          
1132                        
1133
1134                          <li><a href="/collections/maduro">Maduro</a></li>
1135                          
1136
1137                          
1138                        
1139
1140                          <li><a href="/collections/connecticut">Connecticut</a></li>
1141                          
1142
1143                          
1144                        
1145
1146                          <li><a href="/collections/cigar-bundles/BUNDLE-CIGARS">Cigar Bundles</a></li>
1147                          
1148
1149                          
1150                        
1151                      </ul>
1152                    </div>
1153                  </li>
1154                
1155              
1156
1157
1158                  
1159                  
1160                  
1161
1162                    
1163                  
1164
1165                    
1166                  
1167
1168                    
1169                  
1170
1171                    
1172                  
1173
1174                    
1175                  
1176                  
1177
1178                  <li><a href="/collections/accessories" class="sub-menu menu-Lifestyle  ">Lifestyle                     
1179                    <span class="arrow">▾</span></a> 
1180                    <div class="dropdown ">
1181                      <ul>
1182                        
1183                        
1184                        
1185
1186                          <li><a href="/collections/accessories">Accessories</a></li>
1187                          
1188
1189                          
1190                        
1191
1192                          <li><a href="/collections/coffee-1">Coffee</a></li>
1193                          
1194
1195                          
1196                        
1197
1198                          <li><a href="/collections/apparel">Apparel</a></li>
1199                          
1200
1201                          
1202                        
1203
1204                          <li><a href="/collections/gifts">Gifts</a></li>
1205                          
1206
1207                          
1208                        
1209
1210                          <li><a href="https://tabanerocigars.com/pages/tabanero-social-reserve">Social Reserve and Tours</a></li>
1211                          
1212
1213                          
1214                        
1215                      </ul>
1216                    </div>
1217                  </li>
1218                
1219              
1220
1221
1222                  
1223                  
1224                  
1225
1226                    
1227                  
1228
1229                    
1230                  
1231
1232                    
1233                  
1234                  
1235
1236                  <li><a href="/pages/about-us" class="sub-menu menu-About Us  active">About Us                     
1237                    <span class="arrow">▾</span></a> 
1238                    <div class="dropdown ">
1239                      <ul>
1240                        
1241                        
1242                        
1243
1244                          <li><a href="/pages/about-us">About Us</a></li>
1245                          
1246
1247                          
1248                        
1249
1250                          <li><a href="/blogs/tabanero-blog">Our Blog</a></li>
1251                          
1252
1253                          
1254                        
1255
1256                          <li><a href="/pages/store-locator">Our Retailers</a></li>
1257                          
1258
1259                          
1260                        
1261                      </ul>
1262                    </div>
1263                  </li>
1264                
1265              
1266
1267                  <li><a href="/pages/contact" class="top-link ">Contact</a></li>
1268                
1269              
1270            
1271              
1272                
1273                
1274                
1275                
1276                
1277                
1278                
1279
1280                
1281                
1282                
1283                
1284                
1285                
1286                
1287                
1288                
1289
1290                
1291
1292                
1293              
1294              
1295                <li>
1296                  <a href="/account" title="My Account " class="icon-user"></a>
1297                </li>
1298              
1299              
1300                <li>
1301                  <a href="/search" title="Search" class="icon-search" id="search-toggle"></a>
1302                </li>
1303              
1304              
1305              <li>
1306                <a href="#cart" class="icon-cart cart-button"> <span>
1306Cart</span></a>
1307              </li>
1308            </ul>
1309          </div>
1310        </div>
1311      </div>
1312
1313
1314      
1315        <div class="container main content "> 
1316      
1317   
1318      
1319
1320      
1321        <div class="sixteen columns clearfix collection_nav">
1322  <h1 class="collection_title">
1323    Store Locator
1324  </h1>
1325</div>
1326
1327<div class="sixteen columns page">
1328    <!-- Start Stockist.co widget -->
1329<div data-stockist-widget-tag="u13286">Loading store locator
1330from <a href="https://stockist.co">Stockist store locator</a>...</div>
1331<script>
1332  (function(s,t,o,c,k){c=s.createElement(t);c.src=o;c.async=1;
1333  k=s.getElementsByTagName(t)[0];k.parentNode.insertBefore(c,k);
1334  })(document,'script','//stockist.co/embed/v1/widget.min.js');
1335</script>
1335
1336<!-- End Stockist.co widget -->
1337</div>
1337<script data-locksmith>
1338    var load = function () {
1339
1340          if (document.querySelectorAll('.locksmith-manual-trigger').length > 0) {
1341            Locksmith.ping();
1342          }
1343
1344
1345      Locksmith.util.on('submit', 'locksmith-resource-form', function (event) {
1346        event.preventDefault();
1347        var data = Locksmith.util.serializeForm(event.target);
1348        Locksmith.postResource(data, { spinner: false, container: 'locksmith-content' });
1349      });
1350
1351      Locksmith.util.on('click', 'locksmith-manual-trigger', function (event) {
1352        event.preventDefault();
1353        Locksmith.postResource({}, { spinner: true, container: document });
1354      });
1355
1356      Locksmith.submitPasscode = function (passcode) {
1357        Locksmith.postResource(
1358          { passcode: passcode },
1359          { spinner: false, container: 'locksmith-content' }
1360        );
1361      };
1362    };
1363
1364    if (typeof Locksmith !== 'undefined') {
1365      load();
1366    } else {
1367      window.addEventListener('load', load);
1368    }
1369  </script>
1369
1370      
1371
1372      </div>
1373         
1374      <div class="sub-footer">
1375        <div class="container">
1376
1377          <div class="four columns">
1378            
1379              <h6 class="title">Tabanero Customer Links</h6>
1380              <ul class="footer_menu">
1381                
1382<li><a href="https://www.tabanerocigars.com/account" title="My Account">My Account</a></li>
1383                
1384<li><a href="/pages/store-locator" title="Our Retailers">Our Retailers</a></li>
1385                
1386<li><a href="https://tabanerocigars.com/pages/tabanero-social-reserve" title="Social Reserve and Tours">Social Reserve and Tours</a></li>
1387                
1388<li><a href="/pages/cigar-show" title="Cigar Show">Cigar Show</a></li>
1389                
1390<li><a href="http://ipcpr.informz.net/z/cjUucD9taT00MTM5NTExJnA9MSZ1PTQzNzIzMzY4MCZsaT00NTYyMTc3MA/index.html" title="Latest Cigar Laws">Latest Cigar Laws</a></li>
1391                
1392<li><a href="/pages/terms-and-conditions" title="Terms and Conditions">Terms and Conditions</a></li>
1393                
1394              </ul>
1395            
1396            
1397            <ul class="social_icons">
1398              
1399              
1400              
1401              
1402              
1403              
1404              
1405
1406              
1407              
1408              
1409              
1410              
1411              
1412              
1413              
1414              
1415
1416              
1417
1418              
1419            </ul>
1420            
1421          </div>
1422          
1423          <div class="four columns">
1424            <h6 class="title">Customer Reviews</h6>
1425            
1425<script type="text/javascript"> var yotpo_app_key = "u7HZf07asMX45HGHCWKPMR9SrvMWFfoOwnhFzqc2";
1426                  
1427                  (function e(){var e=document.createElement("script");e.type="text/javascript",e.async=true,e.src="//staticw2.yotpo.com/u7HZf07asMX45HGHCWKPMR9SrvMWFfoOwnhFzqc2/widget.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})();
1428                  
1429                  </script>
1429
1430                    <div id="y-badges" class="yotpo yotpo-badge badge-init">&nbsp;</div>
1431          </div>
1432
1433          <div class="four columns">
1434            
1435              <h6 class="title">Our Location</h6>
1436              <iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d3524.1046790144737!2d-82.44374508454288!3d27.960080220945724!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x88c2c450e780a34b%3A0x8abef724564e12f9!2sTabanero+Cigars!5e0!3m2!1sen!2sus!4v1464263860881" width="270" height="200" frameborder="0" style="border: 0;" allowfullscreen=""></iframe>
1437            
1438            
1439          </div>
1440
1441          <div class="four columns">
1442            
1443              <h6 class="title">News &amp; Updates</h6>
1444              <p>Sign up to get the latest on sales, new releases and more …</p>
1445              <div class="newsletter ">
1446  <p class="message"></p>
1447      
1448    <form method="post" action="/contact#contact_form" id="contact_form" accept-charset="UTF-8" class="contact-form"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="✓" />
1449       
1450     
1451       <input type="hidden" name="contact[tags]" value="prospect,newsletter"/>
1452       <input type="hidden" name="contact[first_name]" value="Newsletter" />
1453       <input type="hidden" name="contact[last_name]" value="Subscriber" />
1454       
1455       <input type="email" class="contact_email" name="contact[email]" required pattern="[^ @]*@[^ @]*" placeholder="Enter your email address..." />
1456       <input type='submit' class="action_button sign_up" value="Sign Up" />
1457     </form>
1458  
1459</div>
1460            
1461          </div>
1462        </div>
1463      </div> 
1464    
1465      <div class="footer">
1466        <div class="container">
1467          <div class="sixteen columns">
1468            <img alt="PCA Member Logo" src="https://cdn.shopify.com/s/files/1/1087/3052/files/PCA-logo-green.png?v=1711388333" style="width: 200px;" />
1469            <p class="credits">
1470              &copy; 2026 <a href="/" title="">Tabanero Cigars</a>.
1471              <br>WARNING: We do not sell tobacco or tobacco related products to anyone under the age of 21
1472              
1473              <!-- (c) 2005, 2020. Authorize.Net is a registered trademark of CyberSource Corporation --><div class="AuthorizeNetSeal" style="text-align: center; margin: 0 auto;">
1474            
1474<script type="text/javascript" language="javascript">var ANS_customer_id="8db14d70-ec06-4b93-a8e1-78628b26c293";</script>
1474 
1475            
1475<script type="text/javascript" language="javascript" src="https://verify.authorize.net/anetseal/seal.js" ></script>
1475 
1476            </div>
1477              <img alt="Bitpay Logo" src="https://cdn.shopify.com/s/files/1/1087/3052/files/bitpay-logo.png?v=1587602945" style="width: 100px;" />
1478            </p>
1479            <div class="payment_methods ">
1480              
1481              
1482              
1483              <img src="//tabanerocigars.com/cdn/shop/t/14/assets/cc-visa-light.png?v=19225777317410655261755142115" alt="Visa" />
1484              
1485              <img src="//tabanerocigars.com/cdn/shop/t/14/assets/cc-mastercard-light.png?v=171771086014895870891755142115" alt="Mastercard" />
1486              <img src="//tabanerocigars.com/cdn/shop/t/14/assets/cc-amex-light.png?v=148644655313158965311755142115" alt="American Express" />
1487              
1488              <img src="//tabanerocigars.com/cdn/shop/t/14/assets/cc-discover-light.png?v=128465476576667876611755142115" alt="Discover" />
1489              
1490            </div>
1491        </div>
1492      </div>
1493
1494      <div id="search">
1495        <div class="container">
1496          <div class="ten columns offset-by-three center">
1497            <div class="right search-close">
1498                X
1499            </div>
1500            <form action="/search">
1501              
1502                <input type="hidden" name="type" value="product" />
1503              
1504              <span class="icon-search search-submit"></span>
1505              <input type="text" name="q" placeholder="Search Tabanero Cigars..." value="" autocapitalize="off" autocomplete="off" autocorrect="off" />
1506            </form>
1507          </div>
1508        </div>
1509      </div>
1510    </div>
1511        
1512    
1513
1514
1515    
1516    
1516<script src="//tabanerocigars.com/cdn/shop/t/14/assets/custom.js?v=112944275039670846521755142115" type="text/javascript"></script>
1516
1517
1518    
1518<script type="text/javascript" src="https://birdeye.com/embed/v6/151846822555444/1/3631175232/a460d66a2f189511d558f50884fc54aee094b02900844d15"></script>
1518<div id="bf-revz-widget-3631175232"></div>
1519<style type="text/css">
1520		#mc_embed_signup{background:#ffffff; clear:left; font:14px Helvetica,Arial,sans-serif; }
1521	</style>
1522      
1523  
1524<!-- **BEGIN** Hextom FSB Integration // Main Include - DO NOT MODIFY -->
1525    <!-- **BEGIN** Hextom FSB Integration // Main - DO NOT MODIFY -->
1526<script type="application/javascript">
1527    window.hextom_fsb_meta = {
1528        p1: [
1529            
1530        ],
1531        p2: {
1532            
1533        },
1534        p3: [
1535            
1536        ]
1537    };
1538</script>
1538
1539<!-- **END** Hextom FSB Integration // Main - DO NOT MODIFY -->
1540    <!-- **END** Hextom FSB Integration // Main Include - DO NOT MODIFY -->
1541     
1541<script type="text/javascript" src="https://cdn.hextom.com/js/freeshippingbar.js?shop=tabanero-cigars.myshopify.com"></script>
1541
1542 <!-- "snippets/smile-initializer.liquid" was not rendered, the associated app was uninstalled -->
1543
1544<!-- 
1544<script src="https://chat.tabanerocigars.com/reco.js" defer></script>
1544 -->
1545
1546
1547<script src="https://chat.tabanerocigars.com/upsell.js" async></script>
1547
1548<style> .homepage-icons {max-width: 1200px; margin: 0 auto;} div#lz_popup_btn-AL2JMRm1mT1BvTDJRM__6964546933209456638 {min-width: auto !important; font-size: 30px !important; padding: 6px 16px 10px !important; max-width: 50px !important;} button#lz_close-AL2JMRm1mT1BvTDJRM__6964546933209456638 {background: #000000 !important;} button#lz_refresh-AL2JMRm1mT1BvTDJRM__6964546933209456638 {color: #333 !important;} .homepage-cta-band-top {padding: 50px 0; text-align: center;} .homepage-cta-band-button {max-width: 300px;} .homepage-cta-band-h1 {font-size: 32px; color: #572108;} .tab-cigar-lounge {display: flex; align-items: center; gap: 48px; max-width: 1200px; margin: 0 auto; padding: 60px 20px;} .tab-cigar-lounge__image,.tab-cigar-lounge__content {flex: 1 1 50%;} .tab-cigar-lounge__image img {width: 100%; height: auto; display: block; border-radius: 4px;} .tab-cigar-lounge__content h2 {margin-top: 0; margin-bottom: 20px;} .tab-cigar-lounge__content p {margin-bottom: 16px; line-height: 1.6;} .tab-cigar-lounge__content p:last-child {margin-bottom: 0;} @media screen and (max-width: 749px) {.tab-cigar-lounge {flex-direction: column; gap: 24px; padding: 40px 20px; }} </style>
1549<div id="shopify-block-AU0lvN0R5Rm4rWm1uS__16015553545834452532" class="shopify-block shopify-app-block"><!-- BEGIN app snippet: app_init -->
1550<!-- END app snippet -->
1551  
1551<script src="https://cdn.shopify.com/extensions/01a0d8c7-fe84-7de9-849c-cd3a4648eb12/simple-on-time-delivery-495/assets/bird-pickup-script.js" defer></script>
1551
1552</div><div id="shopify-block-AL1NiTER3L3E1RmJoQ__9094328589753815681" class="shopify-block shopify-app-block">
1552<script type="application/javascript">
1553    window.hextom_fsb_meta = {
1554        p1: [
1555            
1556        ],
1557        p2: {
1558            
1559        },
1560        p3: [
1561            
1562        ],
1563        p4:null,
1564        p5:[],
1565        p6:null,
1566    };
1567
1568    
1569    window.hextom_fsb_config = {"shop_active":"yes","record":false,"bars":[{"bar_id":410076,"updated_on":"2026-09-10T13:44:58.726798+00:00","position":"top_push_v1","adjacent_placement_query":"","adjacent_placement_position":"beforebegin","opacity":1.0,"background_color":"#FFF0A5","bar_border_radius":0,"text_color_one":"#8f640d","text_color_two":"#468966","font":"Montserrat","font_size":16.0,"bar_height":30,"bar_padding":12.0,"message_one":"Free shipping for orders over {{currency_symbol}}{{goal}}","message_two":"Only {{currency_symbol}}{{remainder}} away from free shipping!","message_two_2":"You got free shipping, Only {{currency_symbol}}{{remainder_2}} away from 2-day free shipping","message_three":"Congratulations! You've earned free shipping","message_four":"This item does not count toward achieving free shipping","message_five":"This item does not qualify for free shipping. Shipping fees will apply.","message_six":"At least one item in your cart does not qualify for free shipping:","show_time":0.0,"interval_time":0.0,"display_page":"{\"products\":{\"isTargeting\":false,\"all\":true,\"tags\":\"\",\"productIds\":\"\",\"collectionIds\":\"\"},\"collections\":{\"isTargeting\":false,\"all\":true,\"collectionIds\":\"\"},\"all\":false,\"home\":false,\"urls\":\"/cart\",\"keywords\":\"\"}","exclude_page":"{\"products\":{\"isTargeting\":false,\"all\":true,\"tags\":\"\",\"productIds\":\"\",\"collectionIds\":\"\"},\"collections\":{\"isTargeting\":false,\"all\":true,\"collectionIds\":\"\"},\"noPages\":true,\"home\":false,\"urls\":\"\",\"keywords\":\"\"}","schedule_enabled":false,"start_on":"2021-10-25T12:35:57.041487+00:00","end_on":"","new_tab":false,"entire_bar_clickable":false,"bar_link":"https://apps.shopify.com/partners/hextom","countries":"","exclude_countries":"","auto_currency":false,"round_goal_up":false,"currency_code":"USD","currency_exchange_rate":1.0,"currency_symbol":"$","goal":200.0,"goal_2":0.0,"goal_type":"spend_amount","animation_time":0.0,"background_type":"color","background_pic":"","frame_preset":"","frame_color":"","text_shadow_enabled":false,"text_shadow_color":"#000000","text_shadow_offset_x":1,"text_shadow_offset_y":1,"text_shadow_blur":2,"text_outline_enabled":false,"text_outline_color":"#000000","text_outline_width":1,"gradient_color_1":"","gradient_color_2":"","gradient_color_3":"","gradient_degree":90,"motion_code":"","background_moving_speed":0,"target_device":"all","visitor_currency_code":"","close_option":false,"custom_code":"","translation":"","locales":[],"selected_customers_types":"{\"tag\":false,\"spent\":false,\"loggedIn\":false,\"b2b\":false,\"b2bCompanyName\":false,\"b2bCompanyLocation\":false,\"b2bCompanyExternalId\":false,\"b2bCompanyLocationExternalId\":false}","selected_customers_tag":"","selected_customers_spent_object":"{\"comparisonOperator\":\">=\",\"value\":0}","excluded_customers_types":"{\"tag\":false,\"spent\":false,\"loggedIn\":false,\"b2b\":false,\"b2bCompanyName\":false,\"b2bCompanyLocation\":false,\"b2bCompanyExternalId\":false,\"b2bCompanyLocationExternalId\":false}","excluded_customers_tag":"","excluded_customers_spent_object":"{\"comparisonOperator\":\"<=\",\"value\":100}","selected_customers_b2b_company_name":"","selected_customers_b2b_company_location":"","excluded_customers_b2b_company_name":"","excluded_customers_b2b_company_location":"","selected_customers_b2b_company_external_id":"","selected_customers_b2b_company_location_external_id":"","excluded_customers_b2b_company_external_id":"","excluded_customers_b2b_company_location_external_id":"","target_products_type":"all","currency_symbol_position":"before","currency_formatting":"manual","progress_bar_display":false,"progress_bar_color_1":"#ffd030","progress_bar_color_2":"#ffc300","progress_bar_color_bg":"#ebebeb","progress_bar_gradient":false,"progress_bar_border_radius":3,"progress_bar_height":10,"progress_bar_margin_top":7,"progress_bar_margin_bottom":10,"progress_bar_width_percentage":60,"excluded_products":"","excluded_product_collections":"","incurred_fee_products":"","incurred_fee_product_collections":"","excluded_message_type":"special","incurred_message_type":"special","incurred_fee_products_list_in_message":true,"button_link_insert_language_code":true,"targeted_markets_region_codes":"","storefront_api_access_token":"36f1ad4addc3b0db19cfeeb84caf7e6f","hideOnEmptyCart":false,"show_initial_message_until_goal":false,"factor_in_discounts":true,"preview_targeting":"none"}],"theme":{"theme_id":"179687194922","is_xhr":true}};
1570    
1571</script>
1571
1572
1573
1574</div><div id="shopify-block-AMlcvejVwckRBZjdic__2118589882331710876" class="shopify-block shopify-app-block">
1575<div data-banners style="display:none">
1576  
1577</div>
1578
1579<style>
1580  #cta:hover {
1581    opacity: 0.8;
1582  }
1583
1584  @media(max-width: 400px) {
1585    #cta-button {
1586      padding: 10px 12px;
1587    }
1588  }
1589</style>
1590
1591<script>
1592  window.essentialBannersConfigs = []
1593  window.essentialProductTags = null
1594  window.essentialCustomerTags = null
1595  window.essentialCurrentProductId = null;
1596  window.essentialStoreDomain = "tabanerocigars.com";
1597
1598  if (!window.essentialBannersConfigs) {
1599    window.essentialBannersConfigs = [];
1600  }
1601
1602  
1603</script>
1603
1604
1605<script src="https://cdn.shopify.com/extensions/01a0a41d-dfa3-7da1-b782-5645acdc094b/essential-icon-badge-banners-1-99/assets/banners-essential-apps.js" defer></script>
1605
1606
1607
1608
1609</div><div id="shopify-block-AL2JMRm1mT1BvTDJRM__6964546933209456638" class="shopify-block shopify-app-block">
1610<!-- Backdrop -->
1611<div
1612  id="lz_backdrop-AL2JMRm1mT1BvTDJRM__6964546933209456638"
1613  aria-hidden="true"
1614  style="
1615    position:fixed;inset:0;background:rgba(0,0,0,.4);opacity:0;visibility:hidden;transition:opacity .2s ease;
1616    z-index:3000;
1617  "
1618></div>
1619
1620<!-- Drawer -->
1621<aside
1622  id="lz_drawer-AL2JMRm1mT1BvTDJRM__6964546933209456638"
1623  role="dialog"
1624  aria-modal="true"
1625  aria-label="Loyalty program"
1626  style="
1627    position:fixed;top:0;right:0;height:100vh;width:420px;max-width:100%;
1628    transform:translateX(100%);transition:transform .25s ease;
1629    background:#fff;color:#111827;
1630    border-left:1px solid #e5e7eb;
1631    border-top-left-radius:12px;border-bottom-left-radius:12px;
1632    box-shadow:-12px 0 24px rgba(0,0,0,.12);
1633    z-index:3001;display:flex;flex-direction:column;overflow:hidden;
1634  "
1635>
1636  <!-- Header -->
1637  <header style="display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid #e5e7eb;">
1638    <strong style="font:600 15px system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;"
1639      >Loyalty program</strong
1640    >
1641    <div style="display:flex;gap:8px;align-items:center;">
1642      <button
1643        type="button"
1644        id="lz_refresh-AL2JMRm1mT1BvTDJRM__6964546933209456638"
1645        style="border:1px solid #e5e7eb;background:#fafafa;border-radius:999px;padding:6px 12px;cursor:pointer;font-size:13px;"
1646      >
1647        Refresh
1648      </button>
1649      <button
1650        type="button"
1651        id="lz_close-AL2JMRm1mT1BvTDJRM__6964546933209456638"
1652        style="border:0;background:transparent;cursor:pointer;font-size:18px;line-height:1;padding:4px 2px;"
1653        aria-label="Close"
1654      >
1655        ✕
1656      </button>
1657    </div>
1658  </header>
1659
1660  <!-- Scrollable content -->
1661  <div id="lz_content-AL2JMRm1mT1BvTDJRM__6964546933209456638" style="flex:1;min-height:0;overflow:auto;padding:14px;">
1662    <div
1663      id="lz_status-AL2JMRm1mT1BvTDJRM__6964546933209456638"
1664      style="font:14px system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;opacity:.7;margin-bottom:8px;"
1665    >
1666      Loading…
1667    </div>
1668    <div id="lz_cards-AL2JMRm1mT1BvTDJRM__6964546933209456638" style="display:grid;grid-template-columns:1fr;gap:10px;"></div>
1669  </div>
1670
1671  <div
1672    id="lz_modal_backdrop"
1673    style="
1674      position:fixed;inset:0;background:rgba(0,0,0,.45);
1675      display:none;align-items:center;justify-content:center;
1676      z-index:999999;
1677    "
1678  >
1679    <div
1680      id="lz_modal_box"
1681      style="
1682        width:90%;max-width:360px;background:#fff;border-radius:12px;
1683        box-shadow:0 10px 30px rgba(0,0,0,.2);padding:20px;
1684        font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
1685      "
1686    >
1687      <div
1688        id="lz_modal_title"
1689        style="font-size:18px;font-weight:600;margin-bottom:8px;"
1690      >
1691        Confirm redemption
1692      </div>
1693
1694      <div
1695        id="lz_modal_body"
1696        style="font-size:14px;opacity:.85;margin-bottom:20px;"
1697      >
1698        <!-- dynamic text goes here -->
1699      </div>
1700
1701      <div style="display:flex;gap:10px;">
1702        <button
1703          id="lz_modal_cancel"
1704          style="
1705            flex:1;padding:10px;border-radius:8px;border:1px solid #ddd;
1706            font-size:14px;background:#fff;cursor:pointer;
1707          "
1708        >
1709          Cancel
1710        </button>
1711
1712        <button
1713          id="lz_modal_confirm"
1714          style="
1715            flex:1;padding:10px;border-radius:8px;font-size:14px;
1716            background:#334bf4;color:#fff;border:0;cursor:pointer;
1717          "
1718        >
1719          Confirm
1720        </button>
1721      </div>
1722    </div>
1723  </div>
1724
1725  <div
1726    id="lz_toast"
1727    style="
1728      position:fixed;top:20px;right:20px;left:20px;z-index:999999;
1729      background:#16a34a;color:#fff;padding:12px 16px;border-radius:8px;
1730      box-shadow:0 4px 10px rgba(0,0,0,.15);font-size:14px;display:none;
1731      text-align:center;
1732    "
1733  >
1734    Success!
1735  </div>
1736
1737  <!-- Footer CTA -->
1738  <footer id="lz_footer-AL2JMRm1mT1BvTDJRM__6964546933209456638" style="padding:20px 14px;border-top:1px solid #e5e7eb;display:none;">
1739    <button
1740      type="button"
1741      id="lz_view_account-AL2JMRm1mT1BvTDJRM__6964546933209456638"
1742      style="
1743        width:100%;
1744        max-width:360px;
1745        margin:0 auto;
1746        display:block;
1747        padding:14px 18px;
1748        border-radius:6px;
1749        border:0;
1750        background:#3f6f7e;
1751        color:#ffffff;
1752        font:600 15px system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
1753        text-align:center;
1754        cursor:pointer;
1755      "
1756    >
1757      View My Loyalty Account
1758    </button>
1759  </footer>
1760</aside>
1761
1762<!-- Floating Button -->
1763<div
1764  id="lz_popup_btn-AL2JMRm1mT1BvTDJRM__6964546933209456638"
1765  role="button"
1766  tabindex="0"
1767  data-align="right"
1768  data-offx="16"
1769  data-offb="15"
1770  data-bg="#572108"
1771  data-fg="#FFFFFF"
1772  data-r="12"
1773  data-z="3000"
1774  data-label="🎁"
1775  style="
1776    position:fixed;right:16px;bottom:15px;
1777    z-index:3002;padding:10px 16px;background:#572108;color:#FFFFFF;
1778    border:0;border-radius:12px;
1779    box-shadow:0 10px 20px rgba(0,0,0,.19), 0 6px 6px rgba(0,0,0,.23);
1780    font:14px/1.2 system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
1781    cursor:pointer; width:160px; height:44px; display:inline-flex; align-items:center; justify-content:center;
1782  "
1783>
1784  🎁
1785</div>
1786
1787<style>
1788  /* Force clean light styling for everything inside the drawer */
1789  #lz_drawer-AL2JMRm1mT1BvTDJRM__6964546933209456638 {
1790    font-family: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
1791  }
1792
1793  #lz_drawer-AL2JMRm1mT1BvTDJRM__6964546933209456638 input,
1794  #lz_drawer-AL2JMRm1mT1BvTDJRM__6964546933209456638 select,
1795  #lz_drawer-AL2JMRm1mT1BvTDJRM__6964546933209456638 textarea {
1796    background: #ffffff !important;
1797    color: #111827 !important;
1798    border: 1px solid #d1d5db !important;
1799    border-radius: 8px !important;
1800  }
1801
1802  #lz_drawer-AL2JMRm1mT1BvTDJRM__6964546933209456638 input::placeholder {
1803    color: #9ca3af !important;
1804  }
1805
1806  #lz_drawer-AL2JMRm1mT1BvTDJRM__6964546933209456638 button {
1807    font-family: inherit;
1808  }
1809</style>
1810
1811<script>
1812  
1813  
1814(function(){
1815  var UID            = "AL2JMRm1mT1BvTDJRM__6964546933209456638";
1816  var SHOP           = "tabanero-cigars.myshopify.com";
1817  var CUSTOMER_EMAIL = null;
1818  var CUSTOMER_NAME  = null;
1819  var FLAG           = '__lz_drawer_rewards_strict_' + UID;
1820  if (window[FLAG]) return; window[FLAG] = true;
1821
1822  // -----------------------------
1823  // COUNTRY DATA (sample set; you can extend)
1824  // -----------------------------
1825  var COUNTRY_DATA = {
1826    codes: [
1827      { iso: "US", label: "US (+1)",   dial: "+1"   },
1828      { iso: "GB", label: "GB (+44)",  dial: "+44"  },
1829      { iso: "HR", label: "HR (+385)", dial: "+385" },
1830      { iso: "CA", label: "CA (+1)",   dial: "+1"   },
1831      { iso: "AU", label: "AU (+61)",  dial: "+61"  },
1832      { iso: "DE", label: "DE (+49)",  dial: "+49"  },
1833      { iso: "FR", label: "FR (+33)",  dial: "+33"  },
1834      { iso: "ES", label: "ES (+34)",  dial: "+34"  },
1835      { iso: "IT", label: "IT (+39)",  dial: "+39"  },
1836      { iso: "NL", label: "NL (+31)",  dial: "+31"  },
1837      { iso: "BE", label: "BE (+32)",  dial: "+32"  },
1838      { iso: "IE", label: "IE (+353)", dial: "+353" },
1839      { iso: "PL", label: "PL (+48)",  dial: "+48"  },
1840      { iso: "PT", label: "PT (+351)", dial: "+351" },
1841      { iso: "SE", label: "SE (+46)",  dial: "+46"  },
1842      { iso: "NO", label: "NO (+47)",  dial: "+47"  },
1843      { iso: "DK", label: "DK (+45)",  dial: "+45"  },
1844      { iso: "FI", label: "FI (+358)", dial: "+358" },
1845      { iso: "AT", label: "AT (+43)",  dial: "+43"  },
1846      { iso: "CH", label: "CH (+41)",  dial: "+41"  },
1847      { iso: "GR", label: "GR (+30)",  dial: "+30"  },
1848      { iso: "CZ", label: "CZ (+420)", dial: "+420" },
1849      { iso: "SK", label: "SK (+421)", dial: "+421"  },
1850      { iso: "SI", label: "SI (+386)", dial: "+386" },
1851      { iso: "RO", label: "RO (+40)",  dial: "+40"  },
1852      { iso: "BG", label: "BG (+359)", dial: "+359" },
1853  
1854      { iso: "HU", label: "HU (+36)",  dial: "+36"  },
1855      { iso: "RS", label: "RS (+381)", dial: "+381" },
1856      { iso: "BA", label: "BA (+387)", dial: "+387" },
1857      { iso: "MK", label: "MK (+389)", dial: "+389" },
1858      { iso: "AL", label: "AL (+355)", dial: "+355" },
1859      { iso: "ME", label: "ME (+382)", dial: "+382" },
1860      { iso: "LT", label: "LT (+370)", dial: "+370" },
1861      { iso: "LV", label: "LV (+371)", dial: "+371" },
1862      { iso: "EE", label: "EE (+372)", dial: "+372" },
1863      { iso: "LU", label: "LU (+352)", dial: "+352" },
1864      { iso: "CY", label: "CY (+357)", dial: "+357" },
1865      { iso: "MT", label: "MT (+356)", dial: "+356" },
1866      { iso: "IS", label: "IS (+354)", dial: "+354" },
1867      { iso: "TR", label: "TR (+90)",  dial: "+90"  },
1868      { iso: "IL", label: "IL (+972)", dial: "+972" },
1869      { iso: "BR", label: "BR (+55)",  dial: "+55"  },
1870      { iso: "MX", label: "MX (+52)",  dial: "+52"  },
1871      { iso: "AR", label: "AR (+54)",  dial: "+54"  },
1872      { iso: "CL", label: "CL (+56)",  dial: "+56"  },
1873      { iso: "NZ", label: "NZ (+64)",  dial: "+64"  },
1874      { iso: "JP", label: "JP (+81)",  dial: "+81"  },
1875      { iso: "CN", label: "CN (+86)",  dial: "+86"  },
1876      { iso: "KR", label: "KR (+82)",  dial: "+82"  },
1877      { iso: "IN", label: "IN (+91)",  dial: "+91"  },
1878      { iso: "ZA", label: "ZA (+27)",  dial: "+27"  }
1879    ]
1880  };
1881
1882  // --- Loyalzoo API consts ---
1883  var API_TOKEN = '666b0e23ca';
1884  // will be filled from /v2/merchant/shopify/login
1885  var PLACE_ID  = null;
1886  
1887  var BASE_URL  = 'https://api-v2.loyalzoo.com/v2/customer';
1888  var currentSessionId = null;
1889  
1890  // use SHOP so each store has its own key
1891  var SESSION_KEY = 'lz_session_' + SHOP;
1892
1893// NEW: try to restore a previous session
1894try {
1895  var savedSession = window.localStorage && localStorage.getItem(SESSION_KEY);
1896  if (savedSession) {
1897    currentSessionId = savedSession;
1898  }
1899} catch (e) {
1900  console.warn('[LZ] Could not read stored session:', e);
1901}
1902
1903// NEW: simple in-memory cache to avoid refetching every open
1904var lastPlaceData = null;
1905var lastCustData  = null;
1906var lastFetchAt   = 0; // timestamp in ms
1907var CACHE_MS      = 2 * 60 * 1000; // 2 minutes
1908
1909// --- Merchant login (resolve PLACE_ID from Shopify shop) ---
1910// --- Resolve merchant/place from Shopify shop domain ---
1911var merchantReadyPromise = null;
1912
1913function initMerchant() {
1914  if (merchantReadyPromise) return merchantReadyPromise;
1915
1916  merchantReadyPromise = (async function () {
1917    try {
1918      var res = await fetch('https://api-v2.loyalzoo.com/v2/merchant/shopify/login', {
1919        method: 'POST',
1920        headers: {
1921          'Content-Type': 'application/json',
1922          'Authorization': 'Token Loyh2tP9a3'
1923        },
1924        body: JSON.stringify({
1925          shop: SHOP   // example: myhummusfit.myshopify.com
1926        })
1927      });
1928
1929      if (!res.ok) {
1930        console.error('[LZ] merchant/shopify/login failed:', res.status);
1931        return;
1932      }
1933
1934      var json = await res.json();
1935      var merchant = json.merchant;
1936
1937      if (merchant && Array.isArray(merchant.places) && merchant.places.length > 0) {
1938        PLACE_ID = merchant.places[0].id;
1939        console.log('[LZ] PLACE_ID resolved:', PLACE_ID);
1940      } else {
1941        console.error('[LZ] No places returned for shop:', SHOP, json);
1942      }
1943
1944    } catch (err) {
1945      console.error('[LZ] initMerchant error:', err);
1946    }
1947  })();
1948
1949  return merchantReadyPromise;
1950}
1951
1952  var headers = {
1953    'Authorization': 'Token ' + API_TOKEN,
1954    'Accept': 'application/json'
1955  };
1956
1957  // ---------------------------------------------
1958  // UTILITIES
1959  // ---------------------------------------------
1960  function escapeHtml(s){
1961    return String(s || '').replace(/[&<>"']/g, function(m){
1962      return ({'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;',"'":'&#39;'}[m]);
1963    });
1964  }
1965
1966  // Show confirmation modal
1967function lzShowConfirm(message, onConfirm) {
1968  var backdrop = document.getElementById('lz_modal_backdrop');
1969  var body     = document.getElementById('lz_modal_body');
1970  var btnOK    = document.getElementById('lz_modal_confirm');
1971  var btnCancel= document.getElementById('lz_modal_cancel');
1972
1973  body.innerHTML = message;
1974  backdrop.style.display = 'flex';
1975
1976  btnCancel.onclick = function () {
1977    backdrop.style.display = 'none';
1978  };
1979
1980  btnOK.onclick = function () {
1981    backdrop.style.display = 'none';
1982    if (onConfirm) onConfirm();
1983  };
1984}
1985
1986// Show toast message for 2 seconds
1987function lzToast(msg, color) {
1988  var toast = document.getElementById('lz_toast');
1989  toast.textContent = msg;
1990  toast.style.background = color || '#16a34a';
1991  toast.style.display = 'block';
1992  toast.style.opacity = '1';
1993
1994  setTimeout(function () {
1995    toast.style.transition = 'opacity .4s ease';
1996    toast.style.opacity = '0';
1997    setTimeout(() => {
1998      toast.style.display = 'none';
1999      toast.style.transition = '';
2000    }, 400);
2001  }, 2000);
2002}
2003
2004  function codePointToEmoji(cp){
2005    var n = Number(cp);
2006    if (!n || n < 0) return '🎁';
2007    try { return String.fromCodePoint(n); } catch(e){ return '🎁'; }
2008  }
2009
2010  function cardStyle(){
2011    return (
2012      'border:1px solid #e5e7eb;' +
2013      'border-radius:12px;' +
2014      'padding:12px 14px;' +
2015      'box-shadow:0 1px 2px rgba(0,0,0,.05);' +
2016      'background:#fff;'
2017    );
2018  }
2019
2020  function el(tag, attrs, html){
2021    var n = document.createElement(tag);
2022    if (attrs){
2023      for (var k in attrs){
2024        if (Object.prototype.hasOwnProperty.call(attrs, k)){
2025          n.setAttribute(k, attrs[k]);
2026        }
2027      }
2028    }
2029    if (html !== undefined) n.innerHTML = html;
2030    return n;
2031  }
2032
2033  // DOM refs
2034  var $btn     = document.getElementById('lz_popup_btn-' + UID);
2035  var $drawer  = document.getElementById('lz_drawer-' + UID);
2036  var $close   = document.getElementById('lz_close-' + UID);
2037  var $refresh = document.getElementById('lz_refresh-' + UID);
2038  var $back    = document.getElementById('lz_backdrop-' + UID);
2039  var $status  = document.getElementById('lz_status-' + UID);
2040  var $cards   = document.getElementById('lz_cards-' + UID);
2041  var $view    = document.getElementById('lz_view_account-' + UID);
2042  var $footer  = document.getElementById('lz_footer-' + UID);
2043
2044  // ---------------------------------------------
2045  // Loyalzoo helpers (checkins, points, stamps)
2046  // ---------------------------------------------
2047  function findCheckinForPlace(customer, place){
2048    if (!customer || !Array.isArray(customer.checkins)) return null;
2049    var pid = (place && place.id) || PLACE_ID;
2050    var match = customer.checkins.find(function(ch){
2051      return ch.place_id === pid || ch.place_id === PLACE_ID;
2052    });
2053    return match || null;
2054  }
2055
2056  async function checkInToPlace(sessionId) {
2057  if (!sessionId) return;
2058
2059  try {
2060    await fetch(
2061      BASE_URL + '/places/' + encodeURIComponent(PLACE_ID) + '/checkin',
2062      {
2063        method: 'POST',
2064        headers: Object.assign({}, headers, { 'Content-Type': 'application/json' }),
2065        body: JSON.stringify({ session_id: sessionId })
2066      }
2067    );
2068  } catch (e) {
2069    console.warn('[LZ] Check-in failed (non-fatal):', e);
2070  }
2071}
2072
2073window.lzConfirmRedeem = function (rewardId, rewardName) {
2074  lzShowConfirm(
2075    "Do you want to redeem: <b>" + rewardName + "</b>?",
2076    function () {
2077      window.lz_doRedeem(rewardId);
2078    }
2079  );
2080};
2081
2082window.lz_doRedeem = async function (rewardId) {
2083  try {
2084    if (!currentSessionId) {
2085      lzToast("Missing session ID", "#dc2626");
2086      return;
2087    }
2088
2089    var url = BASE_URL +
2090      '/places/' + encodeURIComponent(PLACE_ID) +
2091      '/rewards/' + encodeURIComponent(rewardId) +
2092      '/redeem';
2093
2094    var res = await fetch(url, {
2095      method: 'POST',
2096      headers: Object.assign({}, headers, { 'Content-Type': 'application/json' }),
2097      body: JSON.stringify({ session_id: currentSessionId })
2098    });
2099
2100    var json = await res.json();
2101
2102    if (!res.ok || !json.discount || !json.discount.code) {
2103      lzToast("Redeem failed", "#dc2626");
2104      return;
2105    }
2106
2107    var code = json.discount.code;
2108
2109    // Show toast (may only flash briefly before redirect)
2110    lzToast("Reward redeemed: " + code, "#16a34a");
2111
2112    // Redirect to cart with discount
2113   window.location.href =
2114  "/discount/" + encodeURIComponent(code) + "?redirect=/cart";
2115
2116  } catch (e) {
2117    console.error("Redeem error:", e);
2118    lzToast("Something went wrong", "#dc2626");
2119  }
2120};
2121
2122  function findPointsForPlace(customer, place){
2123    var chk = findCheckinForPlace(customer, place);
2124    var pts = chk && chk.rewards && chk.rewards.points;
2125    var num = Number(pts);
2126    return Number.isFinite(num) ? num : 0;
2127  }
2128
2129  function getStampsForReward(customer, place, reward){
2130    var chk = findCheckinForPlace(customer, place);
2131    if (!chk || !chk.rewards) return 0;
2132    var rid = reward && reward.reward_id;
2133    if (rid === undefined || rid === null) return 0;
2134    var key = 'stampcard_' + String(rid);
2135    var raw = chk.rewards[key];
2136    var n = Number(raw);
2137    return Number.isFinite(n) && n > 0 ? n : 0;
2138  }
2139
2140  function buildLoyaltyUrl(){
2141    if (!currentSessionId) {
2142      return 'https://me.loyalzoo.com';
2143    }
2144    return 'https://mylty.co' +
2145      '?session_id=' + encodeURIComponent(currentSessionId) +
2146      '&place_id='  + encodeURIComponent(PLACE_ID)
2147      
2148  }
2149
2150  function storeSessionId(sessionId) {
2151  currentSessionId = sessionId;
2152  try {
2153    if (window.localStorage) {
2154      localStorage.setItem(SESSION_KEY, sessionId);
2155    }
2156  } catch (e) {
2157    console.warn('[LZ] Could not store session:', e);
2158  }
2159}
2160
2161  // ---------------------------------------------
2162  // API pipeline for normal Shopify (email) flow
2163  // ---------------------------------------------
2164  async function ensureCustomerSession(email, firstName){
2165    if (!email) {
2166      throw new Error('CUSTOMER_EMAIL is not defined');
2167    }
2168
2169    // 1) search by email
2170    var searchUrl = BASE_URL + '/search?email=' + encodeURIComponent(email);
2171    var searchRes = await fetch(searchUrl, { headers: headers });
2172    if (!searchRes.ok) throw new Error('Customer search failed: ' + searchRes.status);
2173    var searchData = await searchRes.json();
2174    var customer = searchData.customer || null;
2175
2176    // 2) if no customer, create
2177    if (!customer) {
2178      var body = JSON.stringify({
2179        email: email,
2180        first_name: firstName || '',
2181        comms: 1
2182      });
2183      var createRes = await fetch(BASE_URL, {
2184        method: 'POST',
2185        headers: Object.assign({}, headers, { 'Content-Type': 'application/json' }),
2186        body: body
2187      });
2188      if (!createRes.ok) throw new Error('Create customer failed: ' + createRes.status);
2189      var createData = await createRes.json();
2190      customer = createData.customer;
2191    }
2192
2193    // 3) session_id
2194    var sessionId = customer.session_id;
2195    if (!sessionId && Array.isArray(customer.checkins) && customer.checkins.length) {
2196      sessionId = customer.checkins[0].session_id;
2197    }
2198    if (!sessionId) throw new Error('No session_id found for customer');
2199
2200    storeSessionId(sessionId);
2201
2202    // 4) check in to place (fire & forget)
2203    try {
2204      await fetch(BASE_URL + '/places/' + encodeURIComponent(PLACE_ID) + '/checkin', {
2205        method: 'POST',
2206        headers: Object.assign({}, headers, { 'Content-Type': 'application/json' }),
2207        body: JSON.stringify({ session_id: sessionId })
2208      });
2209    } catch (e) {
2210      console.warn('[LZ] Checkin failed (non-fatal):', e);
2211    }
2212
2213    return { customer: customer, sessionId: sessionId };
2214  }
2215
2216  async function fetchPlaceAndCustomer(sessionId){
2217    await initMerchant();
2218    if (!PLACE_ID) {
2219      throw new Error('No place configured for this Shopify shop.');
2220    }
2221    
2222    var placeUrl = BASE_URL + '/places/' + encodeURIComponent(PLACE_ID) +
2223      '?session_id=' + encodeURIComponent(sessionId) +
2224      '&expand=' + encodeURIComponent('rewards,loyalty_scheme,promotions,auto_promotions,passkit,taxes,subscription_events,session_id,payment_gateways,locales,features,powerapi');
2225
2226    var custUrl = BASE_URL + '/?session_id=' + encodeURIComponent(sessionId) +
2227      '&expand=' + encodeURIComponent('rewards,loyalty_scheme,promotions,auto_promotions,passkit,taxes,subscription_events');
2228
2229    var results = await Promise.all([
2230      fetch(placeUrl, { headers: headers }),
2231      fetch(custUrl,  { headers: headers })
2232    ]);
2233
2234    var placeRes = results[0], custRes = results[1];
2235    if (!placeRes.ok) throw new Error('Place fetch failed: ' + placeRes.status);
2236    if (!custRes.ok)  throw new Error('Customer fetch failed: ' + custRes.status);
2237
2238    var placeData = await placeRes.json();
2239    var custData  = await custRes.json();
2240    return { placeData: placeData, custData: custData };
2241  }
2242
2243async function redeemRewardPoints(rewardId) {
2244  if (!currentSessionId) {
2245    alert('Please sign in first to redeem a reward.');
2246    return;
2247  }
2248
2249  try {
2250    var url =
2251      BASE_URL +
2252      '/places/' + encodeURIComponent(PLACE_ID) +
2253      '/rewards/' + encodeURIComponent(rewardId) +
2254      '/redeem';
2255
2256    var res = await fetch(url, {
2257      method: 'POST',
2258      headers: Object.assign({}, headers, { 'Content-Type': 'application/json' }),
2259      body: JSON.stringify({ session_id: currentSessionId })
2260    });
2261
2262    var json = {};
2263    try {
2264      json = await res.json();
2265    } catch (_) {
2266      json = {};
2267    }
2268
2269    console.log('[LZ] Redeem response', res.status, json);
2270
2271    if (!res.ok || (json && json.success === false)) {
2272      alert('Could not redeem reward. Please try again.');
2273      return;
2274    }
2275
2276    // Refresh loyalty data so you can see updated points/progress
2277    var pc = await fetchPlaceAndCustomer(currentSessionId);
2278    lastPlaceData = pc.placeData;
2279    lastCustData  = pc.custData;
2280    lastFetchAt   = Date.now();
2281    render(pc.placeData, pc.custData);
2282
2283  } catch (e) {
2284    console.error('[LZ] Redeem error:', e);
2285    alert('Something went wrong while redeeming. Please try again.');
2286  }
2287}
2288
2289
2290
2291  // ----------------------------------------------------------------
2292  // RENDER SWITCH: logged-in vs login UI
2293  // ----------------------------------------------------------------
2294  function render(placeData, customerData){
2295    $cards.innerHTML = '';
2296
2297    var place    = (placeData && placeData.place) || {};
2298    var customer = (customerData && customerData.customer) || {};
2299    var points   = findPointsForPlace(customer, place);
2300
2301    var fullName = [customer.first_name, customer.last_name].filter(Boolean).join(' ') || '(Anonymous)';
2302    var email    = CUSTOMER_EMAIL || customer.email || null;
2303    var logo     = place.card_image || null;
2304
2305    var schemeType    = place.loyalty_scheme && place.loyalty_scheme.type || 'points';
2306    var isStampScheme = (schemeType === 'stamps' || schemeType === 'punchcard' || schemeType === 'stampcard');
2307
2308    // If NOT logged in (no email + no session) → show login UI
2309    if (!email && !currentSessionId) {
2310      renderLoginUI();
2311      return;
2312    }
2313
2314    // Logged-in
2315    renderLoggedInUI(place, customer, points, logo, isStampScheme);
2316  }
2317
2318  // ----------------------------------------------------------------
2319  // LOGIN UI
2320  // ----------------------------------------------------------------
2321// ----------------------------------------------------------------
2322// LOGIN UI
2323// prevCtx is optional: { mode: 'email'|'phone', email, phone, country }
2324// ----------------------------------------------------------------
2325function renderLoginUI(prevCtx) {
2326  if ($footer) $footer.style.display = 'none';
2327  if ($view)   $view.style.display   = 'none';
2328  $cards.innerHTML = '';
2329
2330  var wrapper = el('div', {
2331    style: cardStyle() + 'padding:24px;text-align:center;'
2332  });
2333
2334  wrapper.innerHTML = `
2335    <div style="font-size:18px;font-weight:600;margin-bottom:12px;">
2336      Sign in to access your loyalty rewards
2337    </div>
2338
2339    <!-- Single field mode -->
2340    <div id="lz_login_single_${UID}" style="margin-bottom:16px;">
2341      <input id="lz_login_input_${UID}"
2342             placeholder="Email or phone number"
2343             style="width:100%;padding:12px;font-size:15px;border:1px solid #ddd;border-radius:8px;" />
2344    </div>
2345
2346    <!-- Phone mode (hidden by default) -->
2347    <div id="lz_login_phone_row_${UID}"
2348         style="margin-bottom:16px;display:none;gap:8px;">
2349      <select id="lz_country_${UID}"
2350              style="flex:0 0 110px;padding:10px;border:1px solid #ddd;border-radius:8px;font-size:14px;">
2351      </select>
2352
2353      <input id="lz_phone_${UID}"
2354             placeholder="Phone number"
2355             style="flex:1;padding:12px;font-size:15px;border:1px solid #ddd;border-radius:8px;" />
2356    </div>
2357
2358    <button id="lz_login_btn_${UID}"
2359            style="background:#334bf4;color:#fff;border:0;border-radius:8px;padding:12px 16px;font-size:15px;cursor:pointer;width:100%;">
2360      Continue
2361    </button>
2362  `;
2363
2364  $cards.appendChild(wrapper);
2365
2366  populateCountries('lz_country_' + UID);
2367
2368  var singleRow  = document.getElementById('lz_login_single_' + UID);
2369  var phoneRow   = document.getElementById('lz_login_phone_row_' + UID);
2370  var loginInput = document.getElementById('lz_login_input_' + UID);
2371  var phoneInput = document.getElementById('lz_phone_' + UID);
2372
2373  function switchToSingle() {
2374    if (singleRow) singleRow.style.display = 'block';
2375    if (phoneRow)  phoneRow.style.display  = 'none';
2376  }
2377
2378  function switchToPhone(prefill) {
2379    if (singleRow) singleRow.style.display = 'none';
2380    if (phoneRow)  phoneRow.style.display  = 'flex';
2381    if (phoneInput && prefill) {
2382      phoneInput.value = prefill;
2383    }
2384  }
2385
2386  if (loginInput) {
2387    loginInput.addEventListener('input', function () {
2388      var v = loginInput.value.trim();
2389
2390      // if contains any letter or '@' (email-ish) OR empty → single field
2391      if (/[@a-zA-Z]/.test(v) || v.length === 0) {
2392        switchToSingle();
2393        return;
2394      }
2395
2396      // digits only, 6 or more → phone mode
2397      if (/^[0-9]{6,}$/.test(v)) {
2398        switchToPhone(v);
2399      } else {
2400        // digits but < 6 → back to single field
2401        switchToSingle();
2402      }
2403    });
2404  }
2405
2406  // If we came from "Back" with previous context, restore it
2407  if (prevCtx && prevCtx.mode === 'email' && loginInput) {
2408    loginInput.value = prevCtx.email || '';
2409  }
2410  if (prevCtx && prevCtx.mode === 'phone') {
2411    switchToPhone(prevCtx.phone || '');
2412    var countrySel = document.getElementById('lz_country_' + UID);
2413    if (countrySel && prevCtx.country) {
2414      countrySel.value = prevCtx.country;
2415    }
2416  }
2417
2418  var btn = document.getElementById('lz_login_btn_' + UID);
2419  if (btn) {
2420    btn.onclick = function () {
2421      startLoginFlow();
2422    };
2423  }
2424}
2425
2426  // Fill countries dropdown
2427  function populateCountries(elementId) {
2428    var select = document.getElementById(elementId);
2429    if (!select) return;
2430  
2431    COUNTRY_DATA.codes.forEach(function (c) {
2432      var opt = document.createElement('option');
2433      opt.value = c.iso;          // store ISO code
2434      opt.dataset.dial = c.dial;  // store dial prefix separately
2435      opt.textContent = c.label;
2436      select.appendChild(opt);
2437    });
2438  }
2439
2440  // ----------------------------------------------------------------
2441  // LOGIN FLOW: search → send OTP → verify → fetch data
2442  // ----------------------------------------------------------------
2443async function startLoginFlow() {
2444  try {
2445    var phoneRow  = document.getElementById('lz_login_phone_row_' + UID);
2446    var usingPhoneMode = phoneRow && phoneRow.style.display !== 'none';
2447
2448    var emailOrText = '';
2449    var phone       = '';
2450    var ccode       = '';
2451    var mode        = 'email'; // 'email' | 'phone'
2452
2453    if (usingPhoneMode) {
2454      // PHONE FLOW
2455      phone = (document.getElementById('lz_phone_' + UID).value || '').trim();
2456      ccode = (document.getElementById('lz_country_' + UID).value || '').trim();
2457
2458      if (!phone || !ccode) {
2459        alert('Please enter your phone number and select country.');
2460        return;
2461      }
2462      mode = 'phone';
2463    } else {
2464      // SINGLE FIELD FLOW → treat as EMAIL
2465      emailOrText = (document.getElementById('lz_login_input_' + UID).value || '').trim();
2466
2467      if (!emailOrText || !/@/.test(emailOrText)) {
2468        alert('Please enter a valid email, or type at least 6 digits to switch to phone mode.');
2469        return;
2470      }
2471      mode = 'email';
2472    }
2473
2474    var ctx = {
2475      mode:   mode,
2476      email:  mode === 'email' ? emailOrText : '',
2477      phone:  mode === 'phone' ? phone : '',
2478      country: mode === 'phone' ? ccode : ''
2479    };
2480
2481    // -------- Step 1: SEARCH --------
2482    var searchUrl;
2483    if (mode === 'email') {
2484      searchUrl = BASE_URL + '/search?email=' + encodeURIComponent(emailOrText);
2485    } else {
2486      searchUrl =
2487        BASE_URL +
2488        '/search?phone_number=' + encodeURIComponent(phone) +
2489        '&country=' + encodeURIComponent(ccode);
2490    }
2491
2492    var searchRes  = await fetch(searchUrl, { headers: headers });
2493    var searchJson = await searchRes.json();
2494    var customer   = searchJson && searchJson.customer ? searchJson.customer : null;
2495
2496    if (customer) {
2497      // Found → send OTP
2498      await sendOTP(customer.session_id, mode === 'email' ? 'email' : 'sms');
2499      showOtpUI(customer.id, mode === 'email' ? 'email' : 'phone_number');
2500      return;
2501    }
2502
2503    // -------- Step 2: NOT FOUND → ask for name (with Back) --------
2504    renderNameCapture(ctx);
2505
2506  } catch (err) {
2507    console.error('[LZ] startLoginFlow error:', err);
2508    alert('Sorry, something went wrong while starting login.');
2509  }
2510}
2511
2512// Ask for name when account is not found
2513function renderNameCapture(ctx) {
2514  // ctx = { mode, email, phone, country }
2515
2516  if ($footer) $footer.style.display = 'none';
2517  if ($view)   $view.style.display   = 'none';
2518  $cards.innerHTML = '';
2519
2520  var card = el('div', { style: cardStyle() + 'padding:24px;text-align:left;' });
2521
2522  var summaryLine;
2523
2524  if (ctx.mode === 'email') {
2525    summaryLine = 'Email: ' + escapeHtml(ctx.email);
2526  } else {
2527    // Look up dial code from COUNTRY_DATA
2528    var entry = COUNTRY_DATA.codes.find(function (c) {
2529      return c.iso === ctx.country;
2530    });
2531  
2532    var dial = entry ? entry.dial : '';
2533    summaryLine =
2534      'Phone: ' +
2535      escapeHtml(ctx.country + ' (' + dial + ') ' + ctx.phone);
2536  }
2537
2538  card.innerHTML = ''
2539    + '<div style="font-size:18px;font-weight:600;margin-bottom:8px;">'
2540    +   'Create your loyalty account'
2541    + '</div>'
2542    + '<div style="font-size:14px;opacity:.8;margin-bottom:12px;">'
2543    +   "We couldn\'t find an existing account. Enter your name to create one."
2544    + '</div>'
2545    + '<div style="font-size:13px;margin-bottom:12px;">'
2546    +   escapeHtml(summaryLine)
2547    + '</div>'
2548    + '<div style="margin-bottom:16px;">'
2549    +   '<label style="display:block;font-size:13px;margin-bottom:4px;">First name</label>'
2550    +   '<input id="lz_new_name_' + UID + '"'
2551    +          ' placeholder="Your name"'
2552    +          ' style="width:100%;padding:10px;font-size:14px;'
2553    +                 'border:1px solid #ddd;border-radius:8px;" />'
2554    + '</div>'
2555    + '<div style="display:flex;gap:8px;">'
2556    +   '<button id="lz_back_to_login_' + UID + '"'
2557    +           ' style="flex:1;border:1px solid #ddd;background:#fff;'
2558    +                  'border-radius:8px;padding:10px;font-size:14px;cursor:pointer;">'
2559    +     'Back'
2560    +   '</button>'
2561    +   '<button id="lz_create_' + UID + '"'
2562    +           ' style="flex:1;background:#334bf4;color:#fff;border:0;'
2563    +                  'border-radius:8px;padding:10px;font-size:14px;cursor:pointer;">'
2564    +     'Create account'
2565    +   '</button>'
2566    + '</div>';
2567
2568  $cards.appendChild(card);
2569
2570  var backBtn = document.getElementById('lz_back_to_login_' + UID);
2571  if (backBtn) {
2572    backBtn.onclick = function () {
2573      // Go back to login screen with previous values
2574      renderLoginUI(ctx);
2575    };
2576  }
2577
2578  var createBtn = document.getElementById('lz_create_' + UID);
2579  if (createBtn) {
2580    createBtn.onclick = function () {
2581      createCustomerAndLogin(ctx);
2582    };
2583  }
2584}
2585
2586// Create customer WITHOUT OTP (for new accounts) and log them in immediately
2587async function createCustomerAndLogin(ctx) {
2588  try {
2589    var nameEl = document.getElementById('lz_new_name_' + UID);
2590    var firstName = nameEl ? nameEl.value.trim() : '';
2591
2592    if (!firstName) {
2593      alert('Please enter your name.');
2594      return;
2595    }
2596
2597    // Build body exactly as the API expects
2598    var body = {
2599      first_name: firstName,
2600      comms: 1
2601    };
2602
2603    if (ctx.mode === 'email') {
2604      // EMAIL FLOW: only send email, no phone/country
2605      body.email = ctx.email;
2606    } else {
2607      // PHONE FLOW: send phone_number + ISO country only
2608      body.phone_number = ctx.phone;   // e.g. "123456"
2609      body.country      = ctx.country; // e.g. "HR"
2610    }
2611
2612    var createRes = await fetch(BASE_URL, {
2613      method: 'POST',
2614      headers: Object.assign({}, headers, { 'Content-Type': 'application/json' }),
2615      body: JSON.stringify(body)
2616    });
2617
2618    var json = await createRes.json();
2619    if (!createRes.ok || !json.customer) {
2620      var msg = json && (json.response || json.message);
2621      throw new Error(msg || 'Could not create customer');
2622    }
2623
2624    var customer = json.customer;
2625    storeSessionId(customer.session_id);
2626
2627    await checkInToPlace(currentSessionId);
2628
2629    var pc = await fetchPlaceAndCustomer(currentSessionId);
2630    lastPlaceData = pc.placeData;
2631    lastCustData  = pc.custData;
2632    lastFetchAt   = Date.now();
2633    render(pc.placeData, pc.custData);
2634
2635  } catch (err) {
2636    console.error('[LZ] createCustomerAndLogin error:', err);
2637    alert('Error creating account: ' + (err && err.message ? err.message : 
2637String(err)));
2638  }
2639}
2640
2641async function createCustomerAndSendOtp(ctx) {
2642  try {
2643    var nameEl = document.getElementById('lz_new_name_' + UID);
2644    var firstName = nameEl ? nameEl.value.trim() : '';
2645
2646    if (!firstName) {
2647      alert('Please enter your name.');
2648      return;
2649    }
2650
2651    // Build body depending on mode – THIS is the key fix:
2652    //  - email flow: DO NOT send phone/country at all
2653    //  - phone flow: DO send phone_number + country
2654    var body = {
2655      first_name: firstName,
2656      comms: 1
2657    };
2658
2659    if (ctx.mode === 'email') {
2660      body.email = ctx.email;
2661    } else {
2662      body.phone_number = ctx.phone;
2663      body.country      = ctx.country;
2664    }
2665
2666    var createRes = await fetch(BASE_URL, {
2667      method: 'POST',
2668      headers: Object.assign({}, headers, { 'Content-Type': 'application/json' }),
2669      body: JSON.stringify(body)
2670    });
2671
2672    var json = await createRes.json();
2673    if (!createRes.ok || !json.customer) {
2674      // Loyalzoo error typically has .response
2675      var msg = json && (json.response || json.message);
2676      throw new Error(msg || 'Could not create customer');
2677    }
2678
2679    var customer = json.customer;
2680
2681    await sendOTP(customer.session_id, ctx.mode === 'email' ? 'email' : 'sms');
2682    showOtpUI(customer.id, ctx.mode === 'email' ? 'email' : 'phone_number');
2683
2684  } catch (err) {
2685    console.error('[LZ] createCustomerAndSendOtp error:', err);
2686    alert('Error creating account: ' + (err && err.message ? err.message : String(err)));
2687  }
2688}
2689
2690  // Send OTP
2691  async function sendOTP(sessionId, channel) {
2692    await fetch(BASE_URL + '/verification_codes', {
2693      method: 'POST',
2694      headers: Object.assign({}, headers, { 'Content-Type': 'application/json' }),
2695      body: JSON.stringify({
2696        comms_channel: channel,
2697        session_id: sessionId
2698      })
2699    });
2700  }
2701
2702  // Show OTP input UI
2703function showOtpUI(customerId, method) {
2704
2705  if ($footer) $footer.style.display = 'none';
2706  if ($view)   $view.style.display   = 'none';
2707  $cards.innerHTML = '';
2708
2709  var card = el('div', { style: cardStyle() + 'padding:24px;text-align:center;' });
2710
2711  card.innerHTML = ''
2712    + '<div style="font-size:18px;font-weight:600;margin-bottom:12px;">'
2713    +   'Enter verification code'
2714    + '</div>'
2715    + '<input id="lz_otp_' + UID + '"'
2716    +   ' maxlength="4"'
2717    +   ' style="width:120px;text-align:center;padding:12px;font-size:22px;'
2718    +           'border:1px solid #ddd;border-radius:8px;letter-spacing:6px;'
2719    +           'margin-bottom:8px;" />'
2720    // 🔴 error text area (initially empty)
2721    + '<div id="lz_otp_error_' + UID + '"'
2722    +   ' style="font-size:13px;color:#b91c1c;min-height:18px;margin-bottom:8px;"></div>'
2723    + '<button id="lz_verify_' + UID + '"'
2724    +   ' style="background:#334bf4;color:#fff;border:0;border-radius:8px;'
2725    +          'padding:12px 16px;font-size:15px;cursor:pointer;width:100%;">'
2726    +   'Verify'
2727    + '</button>';
2728
2729  $cards.appendChild(card);
2730
2731  var btn = document.getElementById('lz_verify_' + UID);
2732  if (btn) {
2733    btn.onclick = function () {
2734      verifyOtp(customerId, method);
2735    };
2736  }
2737}
2738
2739  // Verify OTP → login → fetch loyalty data
2740async function verifyOtp(customerId, method) {
2741  var otpEl   = document.getElementById('lz_otp_' + UID);
2742  var errorEl = document.getElementById('lz_otp_error_' + UID);
2743
2744  if (!otpEl) return;
2745
2746  var code = (otpEl.value || '').trim();
2747
2748  // reset visual state
2749  otpEl.style.borderColor = '#ddd';
2750  if (errorEl) errorEl.textContent = '';
2751
2752  // basic client-side validation
2753  if (!/^[0-9]{4}$/.test(code)) {
2754    otpEl.style.borderColor = '#b91c1c';
2755    if (errorEl) errorEl.textContent = 'Please enter the 4-digit code.';
2756    return;
2757  }
2758
2759  try {
2760    var loginRes = await fetch(
2761      BASE_URL + '/login?expand=' +
2762        encodeURIComponent('rewards,loyalty_scheme,promotions,auto_promotions,passkit,taxes,subscription_events'),
2763      {
2764        method: 'POST',
2765        headers: Object.assign({}, headers, { 'Content-Type': 'application/json' }),
2766        body: JSON.stringify({
2767          verification_code:   code,
2768          customer_id:         customerId,
2769          verification_method: method
2770        })
2771      }
2772    );
2773
2774    var loginJson = {};
2775    try {
2776      loginJson = await loginRes.json();
2777    } catch (_) {
2778      // no body / invalid JSON
2779      loginJson = {};
2780    }
2781
2782    var hasCustomer   = loginJson && loginJson.customer && loginJson.customer.session_id;
2783    var isSuccessFlag = (loginJson.success !== false); // Loyalzoo often uses success:false
2784
2785    if (!loginRes.ok || !hasCustomer || !isSuccessFlag) {
2786      // ❌ wrong code (or any login error)
2787      otpEl.style.borderColor = '#b91c1c';
2788      if (errorEl) errorEl.textContent = 'Incorrect code. Please try again.';
2789      return;
2790    }
2791
2792    // ✅ success
2793    var customer = loginJson.customer;
2794    storeSessionId(customer.session_id);
2795
2796    // If you already added check-in helper, this will work.
2797    // If not, you can comment this out or add the helper I sent earlier.
2798    if (typeof checkInToPlace === 'function') {
2799      await checkInToPlace(currentSessionId);
2800    }
2801
2802    var pc = await fetchPlaceAndCustomer(currentSessionId);
2803    lastPlaceData = pc.placeData;
2804    lastCustData  = pc.custData;
2805    lastFetchAt   = Date.now();
2806    render(pc.placeData, pc.custData);
2807
2808  } catch (err) {
2809    console.error('[LZ] verify OTP error:', err);
2810    otpEl.style.borderColor = '#b91c1c';
2811    if (errorEl) errorEl.textContent = 'Something went wrong. Please try again.';
2812  }
2813}
2814
2815  // ----------------------------------------------------------------
2816  // FULL LOGGED-IN UI (points or stamps)
2817  // ----------------------------------------------------------------
2818// ----------------------------------------------------------------
2819// FULL LOGGED-IN UI (points or stamps)
2820// ----------------------------------------------------------------
2821// ----------------------------------------------------------------
2822// FULL LOGGED-IN UI (points or stamps)
2823// ----------------------------------------------------------------
2824function renderLoggedInUI(place, customer, points, logo, isStampScheme) {
2825  $cards.innerHTML = '';
2826
2827  var fullName = [customer.first_name, customer.last_name].filter(Boolean).join(' ') || '(Anonymous)';
2828  var email    = CUSTOMER_EMAIL || customer.email || '(none)';
2829
2830  // Top summary card
2831  var topCard = el('div', {
2832    style:
2833      cardStyle() +
2834      'padding:18px 16px;text-align:center;' +
2835      'background:linear-gradient(135deg,#f9fafb,#e5ecff);'
2836  });
2837
2838  topCard.innerHTML =
2839    '<div style="display:flex;flex-direction:column;align-items:center;gap:10px;">' +
2840      (logo
2841        ? '<div style="width:96px;height:96px;border-radius:20px;background:#fff;' +
2842            'display:flex;align-items:center;justify-content:center;' +
2843            'box-shadow:0 8px 20px rgba(0,0,0,.12);overflow:hidden;">' +
2844            '<img src="' + escapeHtml(logo) + '" alt="" ' +
2845              'style="max-width:70%;max-height:70%;object-fit:contain;" />' +
2846          '</div>'
2847        : '<div style="width:96px;height:96px;border-radius:999px;background:#fff;' +
2848            'display:flex;align-items:center;justify-content:center;font-size:40px;' +
2849            'box-shadow:0 8px 20px rgba(0,0,0,.12);">🏪</div>') +
2850      '<div style="font-weight:600;font-size:15px;">' +
2851        escapeHtml(place.name || 'Loyalty program') +
2852      '</div>' +
2853      (place.loyalty_scheme
2854        ? '<div style="font-size:13px;opacity:.85;">' +
2855            escapeHtml(place.loyalty_scheme.points_explanation || '') +
2856          '</div>'
2857        : (isStampScheme
2858            ? '<div style="font-size:13px;opacity:.85;">Collect stamps to earn rewards.</div>'
2859            : '')) +
2860      (!isStampScheme
2861        ? '<div style="font-size:13px;margin-top:4px;">' +
2862            '<span style="font-weight:600;">' +
2863              escapeHtml(String(points)) + ' points' +
2864            '</span>' +
2865          '</div>'
2866        : '') +
2867    '</div>';
2868
2869  $cards.appendChild(topCard);
2870
2871  // Customer card
2872  var custCard = el('div', { style: cardStyle() });
2873  custCard.innerHTML =
2874    '<div style="display:flex;align-items:center;gap:8px;margin-bottom:8px;">' +
2875      '<span style="font-size:18px;">👤</span>' +
2876      '<span style="font-weight:600;">' + escapeHtml(fullName) + '</span>' +
2877    '</div>' +
2878    '<div style="font-size:13px;margin-top:4px;"><b>Email:</b> ' +
2879      escapeHtml(email) +
2880    '</div>';
2881  $cards.appendChild(custCard);
2882
2883  // Rewards card
2884  var rewards = Array.isArray(place.rewards) ? place.rewards : [];
2885  var rewardsCard = el('div', { style: cardStyle() });
2886
2887  var rewardsHeaderHtml =
2888    '<div style="display:flex;align-items:center;gap:6px;margin-bottom:8px;">' +
2889      '<span style="font-size:18px;">🎁</span>' +
2890      '<span style="font-weight:600;">Rewards</span>' +
2891    '</div>';
2892
2893  var rewardsBodyHtml = '';
2894
2895  if (!rewards.length) {
2896    rewardsBodyHtml =
2897      '<div style="font-size:13px;opacity:.8;"><i>No rewards configured.</i></div>';
2898  } else if (isStampScheme) {
2899    // -------- STAMPS UI --------
2900    rewardsBodyHtml = rewards.map(function (r, idx) {
2901      var emoji   = codePointToEmoji(r.icon);
2902      var target  = Number(r.target) || 0;
2903      if (target <= 0) target = 1;
2904
2905      var maxSlots   = 14;
2906      var totalSlots = Math.min(target, maxSlots);
2907
2908      var have = getStampsForReward(customer, place, r);
2909      if (!isFinite(have) || have < 0) have = 0;
2910
2911      var effectiveHave = Math.min(have, totalSlots);
2912      var full          = have >= target;
2913
2914      var filledColor      = full ? '#16a34a' : '#eab308';
2915      var emptyBorderColor = full ? '#16a34a' : '#eab308';
2916      var checkColor       = '#ffffff';
2917
2918      var stampsHtml =
2919        '<div style="display:flex;justify-content:space-between;align-items:center;width:100%;">';
2920
2921      for (var i = 0; i < totalSlots; i++) {
2922        var isFilled = i < effectiveHave;
2923
2924        if (isFilled) {
2925          stampsHtml +=
2926            '<div style="width:18px;height:18px;border-radius:999px;' +
2927              'background:' + filledColor + ';' +
2928              'display:inline-flex;align-items:center;justify-content:center;' +
2929              'font-size:11px;color:' + checkColor + ';font-weight:700;">✓</div>';
2930        } else {
2931          stampsHtml +=
2932            '<div style="width:18px;height:18px;border-radius:999px;' +
2933              'border:2px solid ' + emptyBorderColor + ';' +
2934              'background:#ffffff;display:inline-flex;"></div>';
2935        }
2936      }
2937
2938      stampsHtml += '</div>';
2939
2940      var btnStyleBase =
2941        'display:inline-flex;align-items:center;justify-content:center;' +
2942        'min-width:86px;padding:6px 16px;border-radius:999px;font-size:13px;';
2943
2944      // Only show Redeem when full, otherwise no button
2945      var actionBtn = full
2946       ? '<button type="button" onclick="lzConfirmRedeem(' + r.reward_id + ', \'' + escapeHtml(r.name) + '\')" ' +
2947      'style="' + btnStyleBase +
2948      'border:0;background:#a855f7;color:#fff;' +
2949      'box-shadow:0 2px 6px rgba(0,0,0,.18);cursor:pointer;">Redeem</button>'
2950  : '';
2951
2952      return (
2953        '<div style="padding:' +
2954          (idx === 0 ? '6px 0 14px 0' : '14px 0 14px 0') + ';' +
2955          (idx > 0 ? 'border-top:1px solid #f1f5f9;' : '') +
2956          '">' +
2957          '<div style="display:flex;align-items:flex-start;gap:12px;padding-right:8px;">' +
2958            // 40x40 emoji box with fixed offset
2959            '<div style="width:40px;height:40px;
2959display:flex;align-items:center;justify-content:center;' +
2960                        'font-size:32px;line-height:1;margin-top:6px;">' +
2961              emoji +
2962            '</div>' +
2963            '<div style="flex:1;">' +
2964              '<div style="font-weight:600;">' +
2965                escapeHtml(r.name || 'Reward') +
2966              '</div>' +
2967              '<div style="font-size:13px;opacity:.9;">' +
2968                escapeHtml(r.description || '') +
2969              '</div>' +
2970            '</div>' +
2971            '<div>' + actionBtn + '</div>' +
2972          '</div>' +
2973          '<div style="margin-top:10px;">' +
2974            stampsHtml +
2975          '</div>' +
2976        '</div>'
2977      );
2978    }).join('');
2979  } else {
2980    // -------- POINTS UI --------
2981    rewardsBodyHtml = rewards.map(function (r, idx) {
2982      var emoji  = codePointToEmoji(r.icon);
2983      var target = Number(r.target) || 0;
2984
2985      var pctRaw = target > 0 ? (Number(points) / target) * 100 : 0;
2986      if (!isFinite(pctRaw)) pctRaw = 0;
2987      var pct = Math.max(0, Math.min(100, pctRaw));
2988
2989      var available = target > 0 && Number(points) >= target;
2990
2991      var btnStyleBase =
2992        'display:inline-flex;align-items:center;justify-content:center;' +
2993        'min-width:86px;padding:6px 16px;border-radius:999px;font-size:13px;';
2994
2995      // we need a stable id for redeem calls
2996      var rewardId = (r.reward_id != null && r.reward_id !== undefined) ? r.reward_id : r.id;
2997
2998      // Only show Redeem when points >= target AND we have a reward id
2999      var actionBtn = available
3000  ? '<button type="button" onclick="lzConfirmRedeem(' + r.reward_id + ', \'' + escapeHtml(r.name) + '\')" ' +
3001      'style="' + btnStyleBase +
3002      'border:0;background:#a855f7;color:#fff;' +
3003      'box-shadow:0 2px 6px rgba(0,0,0,.18);cursor:pointer;">Redeem</button>'
3004  : '';
3005
3006      var trackCSS =
3007        'position:relative;height:10px;background:#e5e7eb;border-radius:999px;overflow:hidden;';
3008      var fillBaseCSS =
3009        'position:absolute;left:0;top:0;height:100%;border-radius:999px;' +
3010        'transition:width .25s ease;z-index:1;display:block;';
3011      var fillColor = available ? '#16a34a' : '#eab308';
3012
3013      var barTrack =
3014        '<div style="' + trackCSS + '">' +
3015          '<div style="' + fillBaseCSS + 'width:' + pct + '%;background:' + fillColor + ';"></div>' +
3016        '</div>';
3017
3018      return (
3019        '<div style="padding:' +
3020          (idx === 0 ? '6px 0 14px 0' : '14px 0 14px 0') + ';' +
3021          (idx > 0 ? 'border-top:1px solid #f1f5f9;' : '') +
3022          '">' +
3023          '<div style="display:flex;align-items:flex-start;gap:12px;padding-right:8px;">' +
3024            // 40x40 emoji box with fixed offset (unchanged)
3025            '<div style="width:40px;height:40px;display:flex;align-items:center;justify-content:center;' +
3026                        'font-size:32px;line-height:1;margin-top:6px;">' +
3027              emoji +
3028            '</div>' +
3029            '<div style="flex:1;">' +
3030              '<div style="font-weight:600;">' +
3031                escapeHtml(r.name || 'Reward') +
3032              '</div>' +
3033              '<div style="font-size:13px;opacity:.9;">' +
3034                escapeHtml(r.description || '') +
3035              '</div>' +
3036            '</div>' +
3037            '<div>' + actionBtn + '</div>' +
3038          '</div>' +
3039          '<div style="margin-top:10px;">' +
3040            barTrack +
3041            '<div style="display:flex;justify-content:space-between;font-size:12px;opacity:.8;margin-top:6px;">' +
3042              '<span>' + escapeHtml(String(points)) + ' pts</span>' +
3043              '<span>Target: ' + escapeHtml(String(target)) + ' pts</span>' +
3044            '</div>' +
3045          '</div>' +
3046        '</div>'
3047      );
3048    }).join('');
3049  }
3050
3051  var scrollWrapperStyle =
3052    rewards.length > 3
3053      ? 'max-height:480px;overflow-y:auto;padding-right:4px;margin-right:-4px;'
3054      : '';
3055
3056  rewardsCard.innerHTML =
3057    rewardsHeaderHtml +
3058    '<div style="' + scrollWrapperStyle + '">' +
3059      rewardsBodyHtml +
3060    '</div>';
3061
3062  $cards.appendChild(rewardsCard);
3063
3064    // Wire up Redeem buttons for points rewards (test call only for now)
3065  var redeemButtons = rewardsCard.querySelectorAll('button[data-lz-reward-id]');
3066  redeemButtons.forEach(function (btn) {
3067    btn.addEventListener('click', function (e) {
3068      e.preventDefault();
3069      var rid = btn.getAttribute('data-lz-reward-id');
3070      if (!rid) return;
3071      redeemRewardPoints(rid);
3072    });
3073  });
3074
3075  // Promotions card
3076  var promos    = Array.isArray(place.promotions) ? place.promotions : [];
3077  var promoCard = el('div', { style: cardStyle() });
3078
3079  var promoHtml =
3080    '<div style="display:flex;align-items:center;gap:6px;margin-bottom:8px;">' +
3081      '<span style="font-size:18px;">📣</span>' +
3082      '<span style="font-weight:600;">Promotions</span>' +
3083    '</div>';
3084
3085  if (!promos.length) {
3086    promoHtml +=
3087      '<div style="font-size:13px;opacity:.8;"><i>No active promotions.</i></div>';
3088  } else {
3089    var p = promos[0];
3090    var expires = p.valid_until ? new Date(p.valid_until).toLocaleDateString() : null;
3091
3092    promoHtml +=
3093      '<div style="border-radius:10px;background:#f9fafb;border:1px solid #e5e7eb;' +
3094                 'padding:10px 12px;font-size:13px;">' +
3095        '<div style="font-weight:500;margin-bottom:4px;">' +
3096          escapeHtml(p.description || 'Promotion') +
3097        '</div>' +
3098        (expires
3099          ? '<div style="font-size:12px;opacity:.8;">Expires: ' +
3100              escapeHtml(expires) +
3101            '</div>'
3102          : '') +
3103      '</div>';
3104  }
3105
3106  promoCard.innerHTML = promoHtml;
3107  $cards.appendChild(promoCard);
3108
3109  // status + footer CTA visibility
3110  // status + footer CTA visibility
3111$status.textContent = '';
3112
3113if (currentSessionId || CUSTOMER_EMAIL) {
3114  if ($footer) $footer.style.display = 'block';
3115  if ($view)   $view.style.display   = 'block';
3116} else {
3117  if ($footer) $footer.style.display = 'none';
3118  if ($view)   $view.style.display   = 'none';
3119}
3120}
3121
3122  // ----------------------------------------------------------------
3123  // FETCH DATA (entry point when drawer opens)
3124  // ----------------------------------------------------------------
3125// ----------------------------------------------------------------
3126// FETCH DATA (entry point when drawer opens)
3127// ----------------------------------------------------------------
3128async function fetchData(forceNetwork) {
3129  $status.textContent = 'Loading loyalty data…';
3130  $cards.innerHTML = '';
3131
3132  try {
3133
3134
3135    await initMerchant();
3136    if (!PLACE_ID) {
3137      throw new Error('No place configured for this Shopify shop.');
3138    }
3139    // If no Shopify customer and no stored session → show login
3140    if (!CUSTOMER_EMAIL && !currentSessionId) {
3141      renderLoginUI();
3142      $status.textContent = '';
3143      if ($footer) $footer.style.display = 'none';
3144      if ($view)   $view.style.display   = 'none';
3145      return;
3146    }
3147
3148    // Use cache if:
3149    //  - caller didn't force network
3150    //  - we already have place/customer
3151    //  - data is younger than CACHE_MS
3152    if (!forceNetwork) {
3153      var now = Date.now();
3154      if (lastPlaceData && lastCustData && (now - lastFetchAt) < CACHE_MS) {
3155        $status.textContent = '';
3156        render(lastPlaceData, lastCustData);
3157        return;
3158      }
3159    }
3160
3161    // Decide which session to use
3162    var sessionId;
3163    if (CUSTOMER_EMAIL) {
3164      // Normal Shopify email flow
3165      var cs = await ensureCustomerSession(CUSTOMER_EMAIL, CUSTOMER_NAME);
3166      sessionId = cs.sessionId;
3167    } else {
3168      // Logged in via our own login (OTP / phone)
3169      sessionId = currentSessionId;
3170    }
3171
3172    var pc = await fetchPlaceAndCustomer(sessionId);
3173
3174    // 🔹 update cache here
3175    lastPlaceData = pc.placeData;
3176    lastCustData  = pc.custData;
3177    lastFetchAt   = Date.now();
3178
3179    render(pc.placeData, pc.custData);
3180    $status.textContent = '';
3181  } catch (e) {
3182    console.error('[LZ] Error:', e);
3183    $status.textContent = 'Error fetching data (see console)';
3184    $cards.innerHTML = '';
3185    $cards.appendChild(
3186      el('div', { style: cardStyle() }, escapeHtml(e.message || String(e)))
3187    );
3188    if ($view) $view.style.display = 'none';
3189  }
3190}
3191
3192  // ----------------------------------------------------------------
3193  // Drawer + button behaviour
3194  // ----------------------------------------------------------------
3195  var lastFocused = null;
3196
3197  function lockBody(lock){
3198    if (lock){
3199      document.documentElement.style.overflow = 'hidden';
3200      document.body.style.overflow = 'hidden';
3201    } else {
3202      document.documentElement.style.overflow = '';
3203      document.body.style.overflow = '';
3204    }
3205  }
3206
3207function openDrawer(){
3208  lastFocused = document.activeElement;
3209  if ($btn) $btn.style.display = 'none';
3210  $drawer.style.transform = 'translateX(0)';
3211  $back.style.opacity = '1';
3212  $back.style.visibility = 'visible';
3213  lockBody(true);
3214  setTimeout(function(){ $refresh && $refresh.focus(); }, 50);
3215
3216  // Let fetchData() handle cache vs. network
3217  fetchData(false);
3218}
3219
3220  function closeDrawer(){
3221    $drawer.style.transform = 'translateX(100%)';
3222    $back.style.opacity = '0';
3223    $back.style.visibility = 'hidden';
3224    lockBody(false);
3225    if ($btn) $btn.style.display = 'inline-flex';
3226    if (lastFocused && lastFocused.focus) lastFocused.focus();
3227  }
3228
3229  // Floating button styles (for theme editor)
3230  function applyBtnStyles(){
3231    var d = $btn.dataset;
3232    $btn.style.setProperty('bottom', (parseInt(d.offb || '0', 10)) + 'px', 'important');
3233    if ((d.align || 'right') === 'left'){
3234      $btn.style.setProperty('left', (parseInt(d.offx || '0', 10)) + 'px', 'important');
3235      $btn.style.removeProperty('right');
3236    } else {
3237      $btn.style.setProperty('right', (parseInt(d.offx || '0', 10)) + 'px', 'important');
3238      $btn.style.removeProperty('left');
3239    }
3240    $btn.style.setProperty('border-radius', (parseInt(d.r || '12', 10)) + 'px', 'important');
3241    $btn.style.setProperty('background', d.bg || '#334BF4', 'important');
3242    $btn.style.setProperty('color', d.fg || '#FFFFFF', 'important');
3243    $btn.style.setProperty(
3244      'z-index',
3245      String((parseInt(d.z || '3000', 10) + 2)),
3246      'important'
3247    );
3248    if (d.label && $btn.textContent.trim() !== d.label) $btn.textContent = d.label;
3249  }
3250
3251  // Events
3252  if ($btn) {
3253    $btn.addEventListener('click', function(e){
3254      e.preventDefault();
3255      openDrawer();
3256    });
3257  }
3258  if ($close) {
3259    $close.addEventListener('click', function(e){
3260      e.preventDefault();
3261      closeDrawer();
3262    });
3263  }
3264  if ($back) {
3265    $back.addEventListener('click', function(){
3266      closeDrawer();
3267    });
3268  }
3269  if ($refresh) {
3270    $refresh.addEventListener('click', function(){
3271      fetchData();
3272    });
3273  }
3274  if ($view) {
3275    $view.addEventListener('click', function(e){
3276      e.preventDefault();
3277      var url = buildLoyaltyUrl();
3278      window.open(url, '_blank');
3279    });
3280  }
3281
3282  document.addEventListener('keydown', function(e){
3283    if (e.key === 'Escape') closeDrawer();
3284  });
3285
3286  // Theme editor live preview
3287  if ($btn){
3288    applyBtnStyles();
3289    if (window.Shopify && Shopify.designMode){
3290      setInterval(applyBtnStyles, 700);
3291      document.addEventListener('shopify:inspector:change', applyBtnStyles);
3292      document.addEventListener('shopify:section:load', applyBtnStyles);
3293      document.addEventListener('shopify:section:select', applyBtnStyles);
3294      document.addEventListener('shopify:section:deselect', applyBtnStyles);
3295    }
3296  }
3297
3298})();
3299
3300
3301</script>
3301
3302</div><div id="shopify-block-AUldkYklma0JiZVNkN__9388344762370057067" class="shopify-block shopify-app-block"><!-- BEGIN app snippet: vite-tag -->
3303
3304
3305  
3305<script src="https://cdn.shopify.com/extensions/01a0d7d8-75e2-79a1-a526-53a12a13b737/essential-cart-drawer-1026/assets/app-embed-Dc9OfDDi.js" type="module" crossorigin="anonymous"></script>
3305
3306  <link href="//cdn.shopify.com/extensions/01a0d7d8-75e2-79a1-a526-53a12a13b737/essential-cart-drawer-1026/assets/app-embed-C5CTjIUA.css" rel="stylesheet" type="text/css" media="all" />
3307
3308<!-- END app snippet -->
3309
3310<essential-cart-app-embed
3311  upsell-app-data="{&quot;carts&quot;:[{&quot;id&quot;:&quot;ce7ac25c-9489-4fa1-a791-002f5042c30c&quot;,&quot;isPublished&quot;:true,&quot;cartType&quot;:&quot;STICKY_ADD_TO_CART&quot;,&quot;content&quot;:{&quot;isHideForOutOfStock&quot;:true,&quot;isShowDropShadow&quot;:true,&quot;isShowOnDesktop&quot;:true,&quot;isShowOnMobile&quot;:true,&quot;stickyCartVisibility&quot;:&quot;WHEN_ADD_TO_CART_NOT_IN_SCREEN&quot;,&quot;stickyCartPosition&quot;:&quot;BOTTOM&quot;,&quot;stickyCartHorizontalPosition&quot;:&quot;RIGHT&quot;,&quot;stickyCartWidth&quot;:&quot;CONDENSED&quot;,&quot;isProductImage&quot;:true,&quot;isProductName&quot;:true,&quot;isProductPrice&quot;:true,&quot;isComparedAtPrice&quot;:true,&quot;isProductVariantSelection&quot;:true,&quot;isProductQuantitySelection&quot;:true,&quot;buttonBodyHtml&quot;:&quot;Add to cart&quot;,&quot;disabledButtonBodyHtml&quot;:&quot;Sold out&quot;,&quot;buttonAction&quot;:&quot;STAY_ON_PAGE&quot;,&quot;isHideForOutOfStockMobile&quot;:true,&quot;isShowDropShadowMobile&quot;:true,&quot;stickyCartVisibilityMobile&quot;:&quot;WHEN_ADD_TO_CART_NOT_IN_SCREEN&quot;,&quot;stickyCartPositionMobile&quot;:&quot;BOTTOM&quot;,&quot;isProductImageMobile&quot;:true,&quot;isProductNameMobile&quot;:true,&quot;isProductPriceMobile&quot;:true,&quot;isComparedAtPriceMobile&quot;:true,&quot;isProductVariantSelectionMobile&quot;:true,&quot;isProductQuantitySelectionMobile&quot;:true,&quot;buttonBodyHtmlMobile&quot;:&quot;Add to cart&quot;,&quot;disabledButtonBodyHtmlMobile&quot;:&quot;Sold out&quot;,&quot;buttonActionMobile&quot;:&quot;STAY_ON_PAGE&quot;},&quot;design&quot;:{&quot;template&quot;:&quot;WHITE&quot;,&quot;backgroundType&quot;:&quot;MONOCHROME&quot;,&quot;monochromeBackgroundColor&quot;:&quot;#ffffff&quot;,&quot;gradientBackgroundStartColor&quot;:null,&quot;gradientBackgroundEndColor&quot;:null,&quot;gradientBackgroundAngle&quot;:null,&quot;font&quot;:&quot;INHERIT&quot;,&quot;borderSize&quot;:0,&quot;borderColor&quot;:&quot;#1a1a1a&quot;,&quot;productTitleSize&quot;:16,&quot;productTitleFontWeight&quot;:&quot;normal&quot;,&quot;productTitleColor&quot;:&quot;#303030&quot;,&quot;productPriceSize&quot;:16,&quot;productPriceFontWeight&quot;:&quot;normal&quot;,&quot;productPriceColor&quot;:&quot;#303030&quot;,&quot;compareAtPriceSize&quot;:16,&quot;compareAtPriceFontWeight&quot;:&quot;normal&quot;,&quot;compareAtPriceColor&quot;:&quot;#616161&quot;,&quot;productVariantSelectionFontWeight&quot;:&quot;normal&quot;,&quot;productVariantSelectionTextSize&quot;:14,&quot;productVariantSelectionTextColor&quot;:&quot;#303030&quot;,&quot;productVariantSelectionIconColor&quot;:&quot;#303030&quot;,&quot;productVariantSelectionBackgroundColor&quot;:&quot;#ffffff&quot;,&quot;productVariantSelectionBorderSize&quot;:0,&quot;productVariantSelectionBorderColor&quot;:&quot;#303030&quot;,&quot;productVariantSelectionBorderRadius&quot;:2,&quot;buttonTextSize&quot;:16,&quot;buttonTextColor&quot;:&quot;#ffffff&quot;,&quot;buttonBackgroundColor&quot;:&quot;#425735&quot;,&quot;buttonBorderSize&quot;:0,&quot;buttonBorderColor&quot;:&quot;#e3e3e3&quot;,&quot;buttonBorderRadius&quot;:2,&quot;disabledButtonBackgroundColor&quot;:&quot;#e3e3e3&quot;,&quot;disabledButtonBorderSize&quot;:0,&quot;disabledButtonBorderColor&quot;:&quot;#e3e3e3&quot;,&quot;disabledBorderRadius&quot;:2,&quot;disabledButtonTextSize&quot;:16,&quot;disabledButtonTextColor&quot;:&quot;#303030&quot;,&quot;topOffsetPosition&quot;:4,&quot;bottomOffsetPosition&quot;:4,&quot;leftOffsetPosition&quot;:2,&quot;rightOffsetPosition&quot;:16,&quot;maxWidth&quot;:800,&quot;templateMobile&quot;:&quot;DARK&quot;,&quot;backgroundTypeMobile&quot;:&quot;MONOCHROME&quot;,&quot;monochromeBackgroundColorMobile&quot;:&quot;#ffffff&quot;,&quot;gradientBackgroundStartColorMobile&quot;:null,&quot;gradientBackgroundEndColorMobile&quot;:null,&quot;
3311gradientBackgroundAngleMobile&quot;:null,&quot;fontMobile&quot;:&quot;INHERIT&quot;,&quot;borderSizeMobile&quot;:0,&quot;borderColorMobile&quot;:&quot;#1a1a1a&quot;,&quot;productTitleSizeMobile&quot;:16,&quot;productTitleFontWeightMobile&quot;:&quot;normal&quot;,&quot;productTitleColorMobile&quot;:&quot;#303030&quot;,&quot;productPriceSizeMobile&quot;:16,&quot;productPriceFontWeightMobile&quot;:&quot;normal&quot;,&quot;productPriceColorMobile&quot;:&quot;#ffffff&quot;,&quot;compareAtPriceSizeMobile&quot;:16,&quot;compareAtPriceFontWeightMobile&quot;:&quot;normal&quot;,&quot;compareAtPriceColorMobile&quot;:&quot;#ffffff&quot;,&quot;productVariantSelectionFontWeightMobile&quot;:&quot;normal&quot;,&quot;productVariantSelectionTextSizeMobile&quot;:14,&quot;productVariantSelectionTextColorMobile&quot;:&quot;#303030&quot;,&quot;productVariantSelectionIconColorMobile&quot;:&quot;#303030&quot;,&quot;productVariantSelectionBackgroundColorMobile&quot;:&quot;#ffffff&quot;,&quot;productVariantSelectionBorderSizeMobile&quot;:0,&quot;productVariantSelectionBorderColorMobile&quot;:&quot;#303030&quot;,&quot;productVariantSelectionBorderRadiusMobile&quot;:2,&quot;buttonTextSizeMobile&quot;:16,&quot;buttonTextColorMobile&quot;:&quot;#ffffff&quot;,&quot;buttonBackgroundColorMobile&quot;:&quot;#425735&quot;,&quot;buttonBorderSizeMobile&quot;:0,&quot;buttonBorderColorMobile&quot;:&quot;#e3e3e3&quot;,&quot;buttonBorderRadiusMobile&quot;:2,&quot;disabledButtonTextSizeMobile&quot;:16,&quot;disabledButtonTextColorMobile&quot;:&quot;#303030&quot;,&quot;disabledButtonBackgroundColorMobile&quot;:&quot;#e3e3e3&quot;,&quot;disabledButtonBorderSizeMobile&quot;:0,&quot;disabledButtonBorderColorMobile&quot;:&quot;#e3e3e3&quot;,&quot;disabledBorderRadiusMobile&quot;:2,&quot;topOffsetPositionMobile&quot;:0,&quot;bottomOffsetPositionMobile&quot;:0,&quot;leftOffsetPositionMobile&quot;:0,&quot;rightOffsetPositionMobile&quot;:0},&quot;announcements&quot;:[{&quot;id&quot;:&quot;cfee8d74-96e5-422a-9627-c717e3953c60&quot;,&quot;updatedAt&quot;:&quot;2025-07-25T19:41:18.435Z&quot;,&quot;timerType&quot;:&quot;TO_DATE&quot;,&quot;timerEndType&quot;:&quot;HIDE&quot;,&quot;minutes&quot;:120,&quot;startDate&quot;:&quot;2025-07-25T19:32:58.642Z&quot;,&quot;endDate&quot;:&quot;2025-07-26T19:32:58.642Z&quot;,&quot;bodyHtml&quot;:&quot;&lt;p&gt;&lt;span style=\&quot;white-space: pre-wrap;\&quot;&gt;🔥 &lt;/span&gt;&lt;b&gt;&lt;strong style=\&quot;white-space: pre-wrap;\&quot;&gt;Get it while it lasts!&lt;/strong&gt;&lt;/b&gt;&lt;/p&gt;&quot;,&quot;backgroundColor&quot;:&quot;#efd77b&quot;,&quot;textSize&quot;:14,&quot;textColor&quot;:&quot;#635F5F&quot;,&quot;isEnabled&quot;:true,&quot;endMessage&quot;:&quot;&quot;,&quot;daysLabel&quot;:&quot;d&quot;,&quot;hoursLabel&quot;:&quot;h&quot;,&quot;minutesLabel&quot;:&quot;m&quot;,&quot;secondsLabel&quot;:&quot;s&quot;,&quot;bodyHtmlMobile&quot;:&quot;&lt;p&gt;&lt;span style=\&quot;white-space: pre-wrap;\&quot;&gt;🔥 &lt;/span&gt;&lt;b&gt;&lt;strong style=\&quot;white-space: pre-wrap;\&quot;&gt;Get it while it lasts!&lt;/strong&gt;&lt;/b&gt;&lt;/p&gt;&quot;,&quot;backgroundColorMobile&quot;:&quot;#efd77b&quot;,&quot;textSizeMobile&quot;:14,&quot;textColorMobile&quot;:&quot;#635F5F&quot;,&quot;isEnabledMobile&quot;:true}],&quot;placement&quot;:{&quot;productPageProductsType&quot;:&quot;ALL&quot;,&quot;specificProducts&quot;:[],&quot;specificCollections&quot;:[],&quot;homePageProducts&quot;:[]}}]}"
3312  cart-app-config-data=""
3313  product-page-product="null"
3314  product-page-collection-ids="[]"
3315  cart-product-ids="[]"
3316  shop-money-format="$ {{amount}}"
3317  shop-money-with-currency-format="$ {{amount}} USD"
3318  market-id="266502246"
3319  cart-data="{&quot;note&quot;:null,&quot;attributes&quot;:{},&quot;original_total_price&quot;:0,&quot;total_price&quot;:0,&quot;total_discount&quot;:0,&quot;total_weight&quot;:0.0,&quot;item_count&quot;:0,&quot;items&quot;:[],&quot;requires_shipping&quot;:false,&quot;currency&quot;:&quot;USD&quot;,&quot;items_subtotal_price&quot;:0,&quot;cart_level_discount_applications&quot;:[],&quot;checkout_charge_amount&quot;:0}"
3320  cart-items='
3321[]'
3322></essential-cart-app-embed>
3323
3324
3325
3326
3327</div><div id="shopify-block-AY3pVa3ZJR0E3aHF6e__10436698916776057164" class="shopify-block shopify-app-block">
3327<script id="subscription-helper">
3328
3329        if (!window.AppstleIncluded) {
3330          window.AppstleIncluded = true;
3331          window.RS = Window.RS || {};
3332          
3333            RS.Config = {
3334                "selectors": {
3335                    "payment_button_selectors": "form[action$='/cart/add'] .shopify-payment-button",
3336                    "subscriptionLinkSelector": "#customer_detail > div > p:nth-child(6) > a",
3337                    "atcButtonPlacement": "BEFORE",
3338                    "subscriptionLinkPlacement": "BEFORE",
3339                    "cartRowSelector": "",
3340                    "cartLineItemSelector": "",
3341                    "cartLineItemPerQuantityPriceSelector": "",
3342                    "cartLineItemTotalPriceSelector": "",
3343                    "cartLineItemSellingPlanNameSelector": "",
3344                    "cartSubTotalSelector" : "",
3345                    "cartLineItemPriceSelector": "",
3346                    "cartLineItemPlacement": "BEFORE",
3347                    "cartHiddenAttributesSelector": "",
3348                    "buildABoxDiscountSelector": "",
3349                },
3350                "baseUrl": "https://subscription-admin.appstle.com",
3351                "usedTranslation": "true",
3352                "enableCartWidgetFeature": "false",
3353                "storefrontAnalyticsForwardingEnabled": false,
3354                "appstleStorefrontAnalyticsPath": "https://subscription-admin.appstle.com/assets/js/appstle-storefront-analytics.min.js?shop=tabanero-cigars.myshopify.com&v=1789149464677",
3355                "useUrlWithCustomerId": "false",
3356                "atcButtonSelector": ".product_section form.product_form .purchase.clearfix",
3357                "moneyFormat": "$ {{amount}}",
3358                "oneTimePurchaseText": "One Time Purchase",
3359                "minimumQuantityMessage": "",
3360                "tapToSelectText": "",
3361                "bundleDiscountTextV2": "bundle discount extra: {{bundleDiscount}} off",
3362                "productPageUnitPriceSelectorV2": "",
3363                "monthsFrequencyTextV2": "Months",
3364                "monthlyLabelTextV2": "Monthly",
3365                "monthFrequencyTextV2": "Month",
3366                "weeksFrequencyTextV2": "Weeks",
3367                "weeklyLabelTextV2": "Weekly",
3368                "weekFrequencyTextV2": "Week",
3369                "daysFrequencyTextV2": "Days",
3370                "dayFrequencyTextV2": "day",
3371                "yearsFrequencyTextV2": "Years",
3372                "yearlyLabelTextV2": "Yearly",
3373                "yearFrequencyTextV2": "Year",
3374                "offFrequencyTextV2": "Off",
3375                "prepayLabelTextV2": "Prepay",
3376                "prepaidLabelTextV2": "Prepaid",
3377                "prepaidSaveBadgeTextV2": "SAVE {{selectedDiscountPercentage}}",
3378                "onetimeDescriptionTextV2": "",
3379                "atcButtonTextV2": "",
3380                "oneTimeFrequencyTextV2": "One Time",
3381                "cancelAnytimeLabelTextV2": "Cancel Anytime",
3382                "noSubscriptionLabelTextV2": "No Subscription",
3383                "addToShipmentButtonTextV2": "Add to Shipment",
3384                "addToShipmentProcessingV2": "Processing...",
3385                "addToShipmentSuccessTextV2": "Success",
3386                "addToShipmentErrorTextV2": "Error",
3387                "addToShipmentTooltipTextV2": "Please avoid double delivery charges! Login to add this product to an upcoming delivery.",
3388                "frequencyCombinedWidgetTextV2": "Frequency",
3389                "selectDeliverOptionV2": "Select Delivery Option",
3390                "subscribeAndSaveSuccessV2": "Subscribe success",
3391                "unsubscribeFrequencyTextV2": "Unsubscribe",
3392                "deliveryEveryFrequencyTextV2": "Delivery Every",
3393                "sellingPlanTitleTextNonPrepaid": "{{sellingPlanName}}",
3394                "subscribeAndSaveInitalV2": "Subscribe & save",
3395                "subscriptionDescriptionTextV2": "",
3396                "atcButtonTextSelector": "",
3397                "disableCartWidgetOnVariants": "",
3398                "shop": "tabanero-cigars.myshopify.com",
3399                "deliveryText": "delivery",
3400                "purchaseOptionsText": "Purchase Options",
3401                "manageSubscriptionButtonText": "",
3402                "subscriptionOptionText": "Subscribe",
3403                "sellingPlanSelectTitle": "DELIVERY FREQUENCY",
3404                "subscriptionPriceDisplayText": "",
3405                "tooltipTitle": "Subscription details",
3406                "showTooltipOnClick": "false",
3407                "tooltipDesctiption": `A monthly premium subscription that is mailed directly to your door. You can manage your subscription in the customer portal.`,
3408                "tooltipDescriptionOnPrepaidPlan": "",
3409                "tooltipDescriptionOnMultipleDiscount": "",
3410                "manualTranslation": "false",
3411                "tooltipDescriptionCustomization": "",
3412                "orderStatusManageSubscriptionTitle": "Subscription",
3413                "orderStatusManageSubscriptionDescription": "Continue to your account to view and manage your subscriptions. Please use the same email address that you used to buy the subscription.",
3414                "orderStatusManageSubscriptionButtonText": "Manage your subscription",
3415                "subscriptionOptionSelectedByDefault" : false,
3416                "totalPricePerDeliveryText" : "{{prepaidPerDeliveryPrice}}\/delivery",
3417                "memberOnlySellingPlansJson": {},
3418                "nonMemberOnlySellingPlansJson": {},
3419                "sellingPlansJson": [{"frequencyCount":1,"frequencyInterval":"MONTH","billingFrequencyCount":1,"billingFrequencyInterval":"MONTH","frequencyName":"Monthly Subscription","frequencyDescription":"\u003cp\u003e\n\n\n\u003cmeta http-equiv\u003d\"Content-Type\" content\u003d\"text/html; charset\u003dUTF-8\"\u003e\n\u003cmeta http-equiv\u003d\"Content-Style-Type\" content\u003d\"text/css\"\u003e\n\u003ctitle\u003e\u003c/title\u003e\n\u003cmeta name\u003d\"Generator\" content\u003d\"Cocoa HTML Writer\"\u003e\n\u003cmeta name\u003d\"CocoaVersion\" content\u003d\"2575.6\"\u003e\n\u003cstyle type\u003d\"text/css\"\u003e\np.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px \u0027Helvetica Neue\u0027}\n\u003c/style\u003e\n\n\n\u003cp class\u003d\"p1\"\u003e\u003cstrong\u003eHave complete control of your subscriptions\u003c/strong\u003e\u003c/p\u003e\u003cp class\u003d\"p1\"\u003eReceive a 5% discount starting on Order 2. Then you get a 10% discount starting at Order 4, for the life of your subscription.\u003cspan class\u003d\"Apple-converted-s
3419pace\"\u003e\u0026nbsp;\u003c/span\u003e\u003c/p\u003e\n\n\n\u003c/p\u003e","discountOffer":0.0,"discountOffer2":5.0,"afterCycle1":0,"afterCycle2":1,"discountType":"PERCENTAGE","discountType2":"PERCENTAGE","discountEnabled":true,"discountEnabled2":true,"discountEnabledMasked":true,"discountEnabled2Masked":true,"id":"gid://shopify/SellingPlan/9941418282","frequencyType":"ON_PURCHASE_DAY","specificDayEnabled":false,"cutOff":0,"prepaidFlag":"false","idNew":"gid://shopify/SellingPlan/9941418282","planType":"PAY_AS_YOU_GO","deliveryPolicyPreAnchorBehavior":"ASAP","freeTrialEnabled":false,"memberOnly":false,"nonMemberOnly":false,"formFieldJson":"null","frequencySequence":0,"groupName":"Cigars Subscribe and Save","groupId":6146261290,"repeatingCycle":false,"inventoryPolicyReserve":"ON_SALE","appstleCycles":[{"afterCycle":2,"discountType":"PERCENTAGE","value":5.0,"repeatingCycle":false,"preventDuplicationFreeProduct":false},{"afterCycle":3,"discountType":"PERCENTAGE","value":10.0,"repeatingCycle":false,"preventDuplicationFreeProduct":false},{"afterCycle":4,"discountType":"PERCENTAGE","value":10.0,"repeatingCycle":false,"preventDuplicationFreeProduct":false},{"afterCycle":5,"discountType":"FREE_PRODUCT","value":0.0,"freeVariantId":50294355394858,"freeProductHandle":"free-gift-surprise","repeatingCycle":false,"preventDuplicationFreeProduct":true}]},{"frequencyCount":1,"frequencyInterval":"MONTH","billingFrequencyCount":1,"billingFrequencyInterval":"MONTH","frequencyName":"Monthly Club Subscription","frequencyDescription":"\u003cp\u003eFor both of our tiers, the cigars auto-ship each month to your door! You can cancel after 3 months if you wish, via your customer portal.\u0026nbsp;\u003c/p\u003e","afterCycle1":0,"afterCycle2":0,"discountEnabled":false,"discountEnabled2":false,"discountEnabledMasked":false,"discountEnabled2Masked":false,"id":"gid://shopify/SellingPlan/9956917546","frequencyType":"ON_PURCHASE_DAY","specificDayEnabled":false,"minCycles":4,"cutOff":0,"prepaidFlag":"false","idNew":"gid://shopify/SellingPlan/9956917546","planType":"PAY_AS_YOU_GO","deliveryPolicyPreAnchorBehavior":"ASAP","freeTrialEnabled":false,"memberOnly":false,"nonMemberOnly":false,"formFieldJson":"[]","upcomingOrderEmailBuffer":3,"frequencySequence":0,"groupName":"Bespoke Cigar Club","groupId":6157140266,"repeatingCycle":false,"inventoryPolicyReserve":"ON_SALE","appstleCycles":[]}],
3420                "widgetEnabled": true,
3421                "showFreeGiftPrice" : true,
3422                "showFreeGiftComparePrice" : true,
3423                "enableFreeGiftLayout" : false,
3424                "freeGiftLabelText": "+ Free {{productName}}",
3425                "freeGiftBadgeText": "",
3426                "showTooltip" : true,
3427                "showCartWidgetOnBundleItems" : false,
3428                "prepaidOptionSelectedByDefault" : false,
3429                "disablePassingSellingPlanAsLineProperties" : false,
3430                "updateThemePrice" : false,
3431                "sortByDefaultSequence": false,
3432                "showSubOptionBeforeOneTime": false,
3433                "detectVariantFromURLParams": false,
3434                "disableQueryParamsUpdate": false,
3435                "showStaticTooltip": false,
3436                "showAppstleLink": false,
3437                "sellingPlanTitleText" : "{{sellingPlanName}} ({{sellingPlanPrice}}\/delivery)",
3438                "oneTimePriceText" : "{{price}}",
3439                "selectedPayAsYouGoSellingPlanPriceText" : "{{price}}",
3440                "selectedPrepaidSellingPlanPriceText" : "{{pricePerDelivery}}",
3441                "selectedDiscountFormat" : "SAVE {{selectedDiscountPercentage}}",
3442                "manageSubscriptionBtnFormat" : "<a class=\"appstle_manageSubBtn\" href=\"apps\/subscriptions\"><button style=\"padding: 15px 20px\" class=\"btn\">Manage Subscription<\/button><\/a><a><br><br><\/a>",
3443                "manageSubscriptionUrl" : "https:\/\/tabanerocigars.com\/apps\/subscriptions",
3444                "appstlePlanId": 2,
3445                "showCheckoutSubscriptionBtn": true,
3446                "priceSelector": "",
3447                "reloadPriceSelector": "",
3448                "landingPagePriceSelector": "",
3449                "quickViewClickSelector": "",
3450                "badgeTop": "",
3451                "pricePlacement": "BEFORE",
3452                "disableLoadingJquery": false,
3453                "widgetEnabledOnSoldVariant": "false",
3454                "switchRadioButtonWidget": true,
3455                "appstlePlanName": "STARTER1",
3456                "appstlePlanFeatures": {"analytics": true, "webhookAccess": false, "accessBundling": true, "enableAutoSync": false, "enableBundling": false, "enableSmsAlert": false, "accessBuildABox": false, "enableCampaigns": false, "enablePriceSync": false, "enableAutomation": false, "enableCartWidget": false, "accessAppstleMenu": false, "accessResendEmail": true, "enableAddressSync": false, "enableExternalApi": false, "enablePhasedRetry": false, "subscriptionCount": 1000, "enableIntegrations": true, "accessQuickCheckout": true, "accessSplitContract": true, "enableSummaryReports": true, "enableCustomEmailHtml": false, "enableWidgetPlacement": false, "enableCancellationFlow": false, "enableShippingProfiles": false, "enableCustomEmailDomain": false, "enableDunningManagement": true, "accessKlaviyoContactSync": true, "enableOrderConsolidation": false, "accessWidgetDe
3456signOptions": true, "enableImmediatePlaceOrder": true, "enableInventoryManagement": true, "enableAdvancedSellingPlans": true, "accessCustomWidgetLocations": true, "accessOneTimeProductUpsells": true, "enableBillingIntervalChange": true, "enableProductSwapAutomation": false, "enableCancellationManagement": false, "enableCustomerPortalSettings": false, "enableSubscriptionManagement": true, "accessSubscriptionActivityLogs": true, "enableBackupPaymentMethodRetry": false, "accessSubscriberLoyaltyFeatures": true, "enableContractPriceModification": true, "accessManualSubscriptionCreation": true, "enableNextBillingDateModification": true, "accessCustomerPortalProductUpsells": false, "enableServerSideConversionTracking": false, "accessDiscountOnCancellationAttempt": true, "enableStorefrontAnalyticsForwarding": false, "accessAdvanceSubscriptionPlanOptions": true},
3457                "formMappingAttributeName": "",
3458                "formMappingAttributeSelector": "",
3459                "quickViewModalPollingSelector": "",
3460                "scriptLoadDelay": "0",
3461                "formatMoneyOverride": "false",
3462                "enableAddToExistingSubscriptionFeature": "false",
3463                "displayAddToExistingSubscriptionButtonForNotLoggedInV2": "",
3464                "showAddToSubscriptionButtonOnlyOnSubscriptionProducts": "false",
3465                "appstle_app_proxy_path_prefix": "apps\/subscriptions",
3466                "updatePriceOnQuantityChange": "",
3467                "widgetParentSelector": "",
3468                "quantitySelector": "",
3469                "enableAddJSInterceptor": "false",
3470                "isDevEnabled": false,
3471                "forceReloadWidgetSelector": "",
3472                "forceReloadOnFreqChange": false,
3473                "showPrepaidPlanSeparately": false,
3474                "debugLogsEnabled": false,
3475                "isUseStorefrontAPI": false,
3476                "reBuyEnabled": "false",
3477                "loyaltyDetailsLabelText": "",
3478                "loyaltyPerkDescriptionTextV2": "{{#isDiscountTypeFreeProduct}}<div style='display: flex;'><div style='height: 60px; width: 60px; flex-shrink: 0; margin-right: 10px;'><img style='width: 100%' src={{{featured_image}}}><\/img><\/div><div>After {{{billingCycleBlock}}} orders,<span style='color: #ffc000;font-weight: 700;';> get a FREE {{freeProductName}} <\/span><\/div><div>{{\/isDiscountTypeFreeProduct}}{{#isDiscountTypePercentage}}After <span class='appstle-loyalty-billing-cycle'><span class='appstle-loyalty-billing-cycle-count'>{{{billingCycleBlock}}}<\/span> order<\/span>, <span class='appstle-loyalty-discount'>get <span style='color: #ffc000;font-weight: 700;';>{{{discount}}}% OFF your entire order<\/span><\/span>.{{\/isDiscountTypePercentage}}{{#isDiscountTypeShipping}}After <span class='appstle-loyalty-billing-cycle'><span class='appstle-loyalty-billing-cycle-count'>{{{billingCycleBlock}}}<\/span> order<\/span>, <span class='appstle-loyalty-discount'>get <span style='color: #ffc000;font-weight: 700;';>shipping at {{{formatDiscountedPrice}}}<\/span><\/span>.{{\/isDiscountTypeShipping}}{{#isDiscountTypeFixed}}After <span class='appstle-loyalty-billing-cycle'><span class='appstle-loyalty-billing-cycle-count'>{{{billingCycleBlock}}}<\/span> order<\/span>, <span class='appstle-loyalty-discount'>get <span style='color: #ffc000;font-weight: 700;';>{{{formatDiscountedPrice}}} OFF your entire order<\/span><\/span>.{{\/isDiscountTypeFixed}}",
3479                "widgetType": "WIDGET_TYPE_7",
3480                "collectionWidgetType": "LEGACY",
3481                "enableCompactProductPageWidget": false,
3482                "enableCartDrawerWidget": false,
3483                "cartDrawerWidgetStyle": false,
3484                "cartDrawerWidgetInlineStyle": "false",
3485                "cartDrawerWidgetPanelStyle": "false",
3486                "cartDrawerWidgetSegmentedStyle": "false",
3487                "showOneTimeComparePrice": false,
3488                "showCombinedSellingPlanCartWidget": false,
3489                "combinedCartWidgetSelector": "",
3490                "removeUnsubscribeOption": false,
3491                "widgetTemplateHtml": `{% raw %}{% endraw %}`,
3492                
3493                  "allWidgetTemplateHtml": "{\"WIDGET_TYPE_1\":\"{% raw %}{% endraw %}\",\"WIDGET_TYPE_6\":\"{% raw %}
3493<div id=\\\"appstle-widget-template\\\">\\n  <div class=\\\"appstle_sub_widget\\\" id=\\\"appstle_subscription_widget{{widgetId}}\\\">\\n<div class=\\\"appstle_widget_title\\\">{{{purchaseOptionsText}}}</div>\\n      <div class=\\\"widgetSellingPlanWrapper\\\">\\n{{^requires_selling_plan}}\\n{{^showSubOptionBeforeOneTime}}\\n        <div class=\\\"appstle_input_wrapper appstle_onetime_block\\\">\\n          <input type=\\\"radio\\\" id=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" name=\\\"selling_plan\\\" value=\\\"\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" {{^subscriptionOptionSelectedDefault}}checked{{/subscriptionOptionSelectedDefault}}>\\n          <label for=\\\"appstle_selling_plan_label_1{{widgetId}}\\\">\\n<div class=\\\"appstle-selling-plan-name-wrapper\\\">\\n            {{oneTimePuchaseText}}\\n<div class=\\\"appstle-cancel-text\\\">{{{noSubscriptionLabelTextV2}}}</div>\\n</div>\\n      <div class=\\\"appstle-selling-plan-detail-wrapper\\\">\\n<div class=\\\"appstle_span_wrapper\\\">\\n{{#showOneTimeComparePrice}}\\n<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount_compare\\\">\\n  {{{oneTimePuchaseComparePriceAmount}}}\\n</span>\\n{{/showOneTimeComparePrice}}\\n\\n<span  class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount\\\">{{{oneTimePuchaseAmount}}}</span></div>\\n</div>\\n          </label>\\n          \\n        </div>\\n{{/showSubOptionBeforeOneTime}}\\n{{/requires_selling_plan}}\\n        {{#sellingPlanVariants}}\\n           <div class=\\\"appstle_input_wrapper\\\">\\n    \\n             <input type=\\\"radio\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" id=\\\"{{sellingPlanId}}\\\" value=\\\"{{sellingPlanId}}\\\" name=\\\"selling_plan\\\" {{#isChecked}}checked{{/isChecked}}>\\n{{^prepaidFlag}}\\n             <label for=\\\"{{sellingPlanId}}\\\">\\n<div class=\\\"appstle-selling-plan-name-wrapper appstle-selling-plan-label-name\\\">\\n                {{{name}}}\\n<div class=\\\"appstle-cancel-text\\\">{{{cancelAnytimeLabelTextV2}}}</div>\\n</div>\\n<div class=\\\"appstle-selling-plan-detail-wrapper\\\">\\n<div class=\\\"appstle_span_wrapper\\\">\\n       <span class=\\\"appstle_lowercase appstle_sellingPlan_formattedCompareAtPrice appstle_price_block\\\">{{{formattedCompareAtPrice}}}</span>\\n        <span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\">{{{formattedPrice}}}</span>\\n\\n\\n</div>   \\n<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_formattext_block\\\"></span>\\n{{#showPricePerDay}}<div class=\\\"appstle-perday-price\\\">{{{pricePerDay}}}</div>{{/showPricePerDay}}\\n<div class=\\\"appstle-frequency-description\\\">\\n{{{frequencyDescription}}}    \\n</div>\\n     </div>\\n </label>\\n{{#showFormattedDiscountText}}\\n  <span class=\\\"appstle_sellingPlan_discountText\\\">{{{formattedDiscountText}}}</span>\\n{{/showFormattedDiscountText}}\\n<div class=\\\"appstle-sm-hide  appstle-frequency-description\\\">{{{frequencyDescription}}} </div>     \\n{{/prepaidFlag}}\\n{{#prepaidFlag}}\\n<label for=\\\"{{sellingPlanId}}\\\">\\n<div class=\\\"appstle-selling-plan-name-wrapper appstle-selling-plan-label-name\\\">\\n                {{{name}}}\\n<div class=\\\"appstle-cancel-text\\\">{{{cancelAnytimeLabelTextV2}}}</div>\\n</div>\\n<div class=\\\"appstle-selling-plan-detail-wrapper\\\">\\n<div class=\\\"appstle_span_wrapper\\\">\\n       <span class=\\\"appstle_lowercase appstle_sellingPlan_formattedCompareAtPrice appstle_price_block\\\">{{{formattedCompareAtPrice}}}</span>\\n        <span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\">{{{totalPrice}}}</span>\\n\\n</div>  \\n<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_discount_block appstle_formattedPrepaidPerDeliveryPriceText\\\">{{{formattedPrepaidPerDeliveryPriceText}}}</span>\\n       {{#showPricePerDay}}<div class=\\\"appstle-perday-price\\\">{{{pricePerDay}}}</div>{{/showPricePerDay}}\\n<div class=\\\"\\\">\\n<div class=\\\"appstle-frequency-description\\\">\\n{{{frequencyDescription}}}    \\n</div>\\n</div>\\n</div>\\n</label>\\n{{#showFormattedDiscountText}}\\n  <span class=\\\"appstle_sellingPlan_discountText\\\">{{{formattedDiscountText}}}</span>\\n{{/showFormattedDiscountText}}\\n<div class=\\\"appstle-sm-hide  appstle-frequency-description\\\">{{{frequencyDescription}}} </div>     \\n\\n{{/prepaidFlag}}\\n      \\n           </div>\\n        {{/sellingPlanVariants}}\\n{{^requires_selling_plan}}\\n{{#showSubOptionBeforeOneTime}}\\n        <div class=\\\"appstle_input_wrapper appstle_onetime_block\\\">
3493\\n          <input type=\\\"radio\\\" id=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" name=\\\"selling_plan\\\" value=\\\"\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" {{^subscriptionOptionSelectedDefault}}checked{{/subscriptionOptionSelectedDefault}}>\\n          <label for=\\\"appstle_selling_plan_label_1{{widgetId}}\\\">\\n<div  class=\\\"appstle-selling-plan-name-wrapper\\\">\\n            {{oneTimePuchaseText}}\\n<div class=\\\"appstle-cancel-text\\\">{{{noSubscriptionLabelTextV2}}}</div>\\n</div>\\n<div class=\\\"appstle-selling-plan-detail-wrapper\\\">\\n<span  class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount_compare\\\">{{{oneTimePuchaseComparePriceAmount}}}</span>\\n      <span  class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount\\\">{{{oneTimePuchaseAmount}}}</span>\\n\\n</div>\\n          </label>\\n          \\n        </div>\\n{{/showSubOptionBeforeOneTime}}\\n{{/requires_selling_plan}}\\n    </div>\\n{{#showStaticTooltip}}\\n<div class=\\\"appstle_tooltip_wrapper_static\\\"> {{{toolTipDescription}}}</div>\\n{{/showStaticTooltip}}\\n{{#showTooltip}}\\n<div class=\\\"appstle-tootltip-parent\\\">\\n    <div data-appstle-icon=\\\"\\\" class=\\\"appstle_tooltip_wrapper\\\">\\n    <svg width=\\\"90\\\" height=\\\"90\\\" viewBox=\\\"0 0 90 90\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" class=\\\"tooltip_subscription_svg\\\">\\n    <path\\n      d=\\\"M45 0C20.1827 0 0 20.1827 0 45C0 69.8173 20.1827 90 45 90C69.8173 90 90 69.8174 90 45C90.0056 44.6025 89.9322 44.2078 89.7839 43.8389C89.6357 43.47 89.4156 43.1342 89.1365 42.8511C88.8573 42.568 88.5247 42.3432 88.158 42.1897C87.7912 42.0363 87.3976 41.9573 87 41.9573C86.6024 41.9573 86.2088 42.0363 85.842 42.1897C85.4753 42.3432 85.1427 42.568 84.8635 42.8511C84.5844 43.1342 84.3643 43.47 84.2161 43.8389C84.0678 44.2078 83.9944 44.6025 84 45C84 66.5748 66.5747 84 45 84C23.4253 84 6 66.5747 6 45C6 23.4254 23.4253 6 45 6C56.1538 6 66.3012 10.5882 73.4375 18H65.4062C65.0087 17.9944 64.614 18.0678 64.2451 18.2161C63.8762 18.3643 63.5405 18.5844 63.2573 18.8635C62.9742 19.1427 62.7494 19.4753 62.596 19.842C62.4425 20.2088 62.3635 20.6024 62.3635 21C62.3635 21.3976 62.4425 21.7912 62.596 22.158C62.7494 22.5247 62.9742 22.8573 63.2573 23.1365C63.5405 23.4156 63.8762 23.6357 64.2451 23.7839C64.614 23.9322 65.0087 24.0056 65.4062 24H79.8125C80.6081 23.9999 81.3711 23.6838 81.9337 23.1212C82.4963 22.5586 82.8124 21.7956 82.8125 21V6.59375C82.821 6.18925 82.7476 5.78722 82.5966 5.41183C82.4457 5.03644 82.2205 4.69545 81.9344 4.40936C81.6483 4.12327 81.3073 3.898 80.9319 3.7471C80.5565 3.5962 80.1545 3.52277 79.75 3.53125C79.356 3.53941 78.9675 3.62511 78.6067 3.78344C78.2458 3.94177 77.9197 4.16963 77.6469 4.45402C77.3741 4.73841 77.16 5.07375 77.0168 5.44089C76.8737 5.80803 76.8042 6.19977 76.8125 6.59375V12.875C68.6156 4.86282 57.3081 0 45 0ZM43.75 20.75C43.356 20.7582 42.9675 20.8439 42.6067 21.0022C42.2458 21.1605 41.9197 21.3884 41.6469 21.6728C41.3741 21.9572 41.16 22.2925 41.0168 22.6596C40.8737 23.0268 40.8042 23.4185 40.8125 23.8125V47.375C40.8116 47.7693 40.8883 48.16 41.0385 48.5246C41.1886 48.8892 41.4092 49.2207 41.6875 49.5L54.0938 61.9375C54.6573 62.5011 55.4217 62.8177 56.2188 62.8177C57.0158 62.8177 57.7802 62.5011 58.3438 61.9375C58.9073 61.3739 59.224 60.6095 59.224 59.8125C59.224 59.0155 58.9073 58.2511 58.3438 57.6875L46.8125 46.1875V23.8125C46.821 23.408 46.7476 23.006 46.5966 22.6306C46.4457 22.2552 46.2205 21.9142 45.9344 21.6281C45.6483 21.342 45.3073 21.1168 44.9319 20.9658C44.5565 20.8149 44.1545 20.7415 43.75 20.75Z\\\"\\n    ></path>\\n    </svg>\\n    <span class=\\\"appstle_tooltip_title\\\">{{{tooltipTitle}}}</span>\\n  </div>\\n<div class=\\\"appstle_tooltip\\\">\\n    <div class=\\\"appstle_tooltip_content\\\">\\n      {{{toolTipDescription}}}\\n    </div>\\n    {{#showAppstleLink}}\\n    <div class=\\\"appstle_tooltip_appstle\\\">\\n      <a href=\\\"https://appstle.com\\\" class=\\\"appstle_link\\\" target=\\\"_blank\\\">\\n      POWERED BY APPSTLE      </a>\\n    </div>\\n    {{/showAppstleLink}}\\n    </div>\\n</div>\\n{{/showTooltip}}\\n<style>\\n.widgetSellingPlanWrapper {\\n    display: grid;\\n    grid-template-columns: repeat(2, minmax(0, 1fr));\\n    gap: 1.5rem;\\n    grid-auto-rows: 1fr;\\n    margin-bottom: 6px;\\nmargin-top: 10px;\\n}\\n\\n.widgetSellingPlanWrapper input {\\n    display: none;\\n}\\n\\n.widgetSellingPlanWrapper label {\\n    border-radius: 10px;\\n    border: 1px solid rgba(var(--color-foreground));\\n    padding: 0.5rem;\\n    display: flex;\\n    justify-content: center;
3493\\n    align-items: center;\\n    display: block;\\n    height: 100%;\\n    width: 100%;\\n    text-align: center;\\ncursor: pointer;\\n}\\n\\n.widgetSellingPlanWrapper input:checked+label {\\n    background-color: rgba(var(--color-foreground)) !important;\\ncolor: rgba(var(--color-background)) !important;\\n}\\n.appstle_lowercase {\\n    text-transform: lowercase;\\n}\\n\\n\\n.appstle_input_wrapper {\\n    position: relative;\\n}\\n\\nspan.appstle_sellingPlan_discountText {\\n    position: absolute;\\n    background: rgba(var(--color-foreground));\\n    color: rgba(var(--color-background));\\n    border-radius: 3px;\\n    padding: 1px 18px;\\n    left: 50%;\\n    display: block;\\n    transform: translate(-50%, -50%);\\n    white-space: nowrap;\\n}\\n\\nspan.appstle_sellingPlan_discountText:empty {\\n    display: none !important;\\n}\\ndiv.appstle_span_wrapper{\\n\\tdisplay: flex;\\n\\tjustify-content: center;\\n}\\n</style>\\n<style>\\n.widgetSellingPlanWrapper {\\n    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;\\n   gap: 0.8rem !important;\\n}\\n\\n.appstle_sub_widget {\\n    max-width: 100%!important;\\n} \\n\\n.widgetSellingPlanWrapper label {\\n    height: auto !important;\\n    border: none !important;\\n    padding: 14px 5px !important;\\n    display: flex !important;\\n    justify-content: center !important;\\n    align-items: center !important;\\n    flex-direction: column;\\n    max-width: 100% !important;\\n    width: unset !important;\\nline-height: 20px;\\n}\\n\\n.appstle_how_does_it_work {\\n    line-height: 16px !important;\\n    margin: 6px 0px;\\n    color: rgba(var(--color-background));\\n}\\n@media screen and (max-width: 800px) {\\n    .appstle_how_does_it_work {\\n        text-align: right;\\n    }\\n}\\n\\nspan.appstle_lowercase.appstle_sellingPlan_price.appstle_formattext_block {\\ntext-align: right !important;\\n    display: block;\\n}\\n\\n.appstle_span_wrapper {\\n    align-items: baseline;\\n}\\n\\nspan.appstle_lowercase.appstle_sellingPlan_price.appstle_discount_block.appstle_formattedPrepaidPerDeliveryPriceText {\\n    display: block;\\n    text-align: right;\\n}\\n\\n.appstle_input_wrapper {\\n    display: flex;\\n    height: 100% !important;\\nflex-direction: column;\\n}\\n\\n.appstle_sub_widget input[type=radio]+label:before {\\n    content: \\\"\\\";\\n    position: absolute;\\n    inset: 0;\\n    border-radius: 12px;\\n    padding: 2px;\\n    background: #121212;\\n    -webkit-mask: linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);\\n    -webkit-mask-composite: xor;\\n    mask-composite: exclude;\\n    pointer-events: none;\\n    z-index: 0;\\n    transition: all 0.2s;\\n}\\n\\n.appstle_sub_widget input[type=radio]:checked+label:before {\\n    content: \\\"\\\";\\n    position: absolute;\\n    inset: 0;\\n    border-radius: 12px;\\n //   padding: 4px;\\n// background: linear-gradient(to right,#Fef58f,#7A3900);\\n//background: #E53D29;\\n  border: 2px transparent;\\n    -webkit-mask: linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);\\n    -webkit-mask-composite: xor;\\n    mask-composite: exclude;\\n    pointer-events: none;\\n    z-index: 0;\\n}\\n\\nspan.appstle_sellingPlan_discountText {\\n    background: rgba(var(--color-foreground));\\n    border-radius: 100px !important;\\n    padding: 0px 8px !important;\\n    height: 20px;\\n    display: flex !important;\\n    justify-content: center;\\n    align-items: center;\\n    letter-spacing: 1px;\\nz-index: 2;\\n}\\nspan.appstle_lowercase.appstle_sellingPlan_price.appstle_onetime_amount_compare {\\ntext-decoration: line-through;\\n}\\n\\n\\nspan.appstle-popular {\\n    position: absolute;\\n    top: -40px;\\n    background: black;\\n    color: rgba(var(--color-background));\\n    z-index: -3;\\n    border-radius: 10px;\\n    padding: 0px 10px 29px 10px;\\nleft: 0;\\n}\\n\\n.widgetSellingPlanWrapper label {\\n    border-radius: 14px;\\n}\\n\\n.widgetSellingPlanWrapper input:checked+label {\\n    overflow: hidden;\\n}\\n\\n\\n.appstle-perday-price {\\ndisplay: none;\\n}\\n\\n    .widgetSellingPlanWrapper {\\n    grid-template-columns: repeat(1, minmax(0, 1fr)) !important;\\n}\\n\\n.widgetSellingPlanWrapper label {\\n    flex-direction: row;\\n    justify-content: space-between !important;
3493\\n    align-items: flex-start !important;\\nwidth: 100% !important;\\n}\\n\\n.widgetSellingPlanWrapper label {\\n    text-align: left;\\n    padding: 16px !important;\\nflex-basis: unset;\\n}\\n\\n.appstle_span_wrapper {\\n    justify-content: flex-end !important;\\n}\\n\\n.appstle-perday-price {\\n    text-align: right;\\n}\\n\\n.widgetSellingPlanWrapper {\\n    gap: 15px !important;\\n}\\n\\nspan.appstle-popular {\\n    width: calc(100% - 20px);\\n    text-align: center;\\n    letter-spacing: 2px;\\n    top: -30px;\\nleft: 0;\\n}\\n\\nspan.appstle_sellingPlan_discountText {    \\nleft: unset !important;\\n    right: 15px;\\n    transform: translate(0, -50%) !important;\\n}\\n.appstle-cancel-text {\\n    text-align: left;\\n}\\n\\n.appstle_input_wrapper label {\\n    text-align: left !important;\\n}\\n\\n.widgetSellingPlanWrapper input:checked+label {\\n    width: 100% !important;\\n    margin: 0 !important;\\n}\\n.appstle_input_wrapper {\\n    width: 100% !important;\\nflex-direction: row;\\n}\\n.widgetSellingPlanWrapper input:checked+label+span {\\n    background: rgba(var(--color-background)) !important;\\n    color:rgba(var(--color-foreground)) !important;\\n    border: 2px solid rgba(var(--color-foreground));\\n}\\n.appstle_onetime_block .appstle_span_wrapper {\\n    grid-column: 2;\\n}\\n.appstle-frequency-description {\\n  text-align: right !important;\\n}\\n\\n\\n.appstle-sm-hide {\\n  display: none;\\n}\\n\\n@media screen and (min-width: 800px) {\\n.appstle-lg-show {\\n  display: block;\\n}\\n.appstle-lg-hide {\\n  display: none;\\n}\\n\\n}\\n\\nspan.appstle_lowercase.appstle_sellingPlan_formattedCompareAtPrice.appstle_price_block {\\n    text-decoration: line-through;\\n    display: block;\\n    margin-right: 3px;\\n    color: rgba(var(--color-foreground));\\n}\\n.widgetSellingPlanWrapper input:checked+label .appstle_sellingPlan_formattedCompareAtPrice {\\ncolor:rgba(var(--color-background));\\n} \\n\\n.appstle_span_wrapper > * {\\nflex-shrink: 0\\n}\\n.appstle-selling-plan-detail-wrapper{\\ncolor: rgba(var(--color-foreground));\\n}\\n.widgetSellingPlanWrapper input:checked+label .appstle-selling-plan-detail-wrapper{\\ncolor: rgba(var(--color-background)) !important;\\n}\\n\\n</style>\\n</div>{% endraw %}\",\"WIDGET_TYPE_7\":\"{% raw %}{% endraw %}\",\"WIDGET_TYPE_8\":\"{% raw %}{% endraw %}\",\"WIDGET_TYPE_2\":\"{% raw %}{% endraw %}\",\"WIDGET_TYPE_3\":\"{% raw %}<div id=\\\"appstle-widget-template\\\">\\n  <div class=\\\"appstle_sub_widget\\\" id=\\\"appstle_subscription_widget{{widgetId}}\\\">\\n<div class=\\\"appstle_widget_title\\\">{{{purchaseOptionsText}}}</div>\\n      <div class=\\\"widgetSellingPlanWrapper appstle_subscription_wrapper\\\">\\n{{#showSubOptionBeforeOneTime}}\\n        {{#sellingPlanVariants}}\\n           <div class=\\\"appstle_input_wrapper appstle_subscription_option\\\">\\n             <input type=\\\"radio\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" id=\\\"{{sellingPlanId}}\\\" value=\\\"{{sellingPlanId}}\\\" name=\\\"selling_plan\\\" {{#isChecked}}checked{{/isChecked}}>\\n             {{^prepaidFlag}}\\n             <label for=\\\"{{sellingPlanId}}\\\" class=\\\"appstle_widget_three\\\">\\n                 {{{name}}}\\n<div class=\\\"appstle_span_wrapper\\\">\\n        <span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\">{{{formattedPrice}}}</span>\\n{{#showSecondFormattedDiscountText}}{{^isFixedPrice}}<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_discount_block\\\">&nbsp;({{{secondFormattedDiscountText}}})</span> {{/isFixedPrice}}{{/showSecondFormattedDiscountText}}\\n</div>\\n    \\n             </label>\\n        {{/prepaidFlag}}\\n        {{#prepaidFlag}}\\n             <label for=\\\"{{sellingPlanId}}\\\" class=\\\"appstle_widget_three\\\">\\n               {{{name}}}\\n<div class=\\\"appstle_span_wrapper\\\">\\n        <span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\">{{{totalPrice}}}</span>\\n {{#showSecondFormattedDiscountText}}{{^isFixedPrice}}<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_discount_block\\\">&nbsp;({{{secondFormattedDiscountText}}})</span>{{/isFixedPrice}}{{/showSecondFormattedDiscountText}}\\n {{#formattedPrepaidPerDeliveryPriceText}}<span class=\\\"appstle_formattedPrepaidPerDeliveryPriceText\\\">&nbsp;({{{formattedPrepaidPerDeliveryPriceText}}})</span>{{/formattedPrepaidPerDeliveryPriceText}}\\n        </div>\\n    \\n             </label>\\n        {{/prepaidFlag}}\\n      \\n           </div>\\n        {{/sellingPlanVariants}}\\n{{/showSubOptionBeforeOneTime}}\\n       {{^requires_selling_plan}}\\n        <div class=\\\"appstle_input_wrapper appstle_onetime\\\">
3493\\n          <input type=\\\"radio\\\" id=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" name=\\\"selling_plan\\\" value=\\\"{{sellingPlanId}}\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" {{^subscriptionOptionSelectedDefault}}checked{{/subscriptionOptionSelectedDefault}}>\\n          <label for=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" class=\\\"appstle_widget_three\\\">\\n            {{oneTimePuchaseText}}\\n      <span  class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount\\\">\\n{{#showOneTimeComparePrice}}\\n<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount_compare\\\">\\n  {{{oneTimePuchaseComparePriceAmount}}}\\n</span>\\n{{/showOneTimeComparePrice}}\\n{{{oneTimePuchaseAmount}}}</span>\\n          </label>\\n          \\n        </div>\\n        {{/requires_selling_plan}}\\n{{^showSubOptionBeforeOneTime}}\\n        {{#sellingPlanVariants}}\\n           <div class=\\\"appstle_input_wrapper appstle_subscription_option\\\">\\n             <input type=\\\"radio\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" id=\\\"{{sellingPlanId}}\\\" value=\\\"{{sellingPlanId}}\\\" name=\\\"selling_plan\\\" {{#isChecked}}checked{{/isChecked}}>\\n             {{^prepaidFlag}}\\n             <label for=\\\"{{sellingPlanId}}\\\" class=\\\"appstle_widget_three\\\">\\n                 {{{name}}}\\n<div class=\\\"appstle_span_wrapper\\\">\\n        <span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\">{{{formattedPrice}}}</span>\\n{{#showSecondFormattedDiscountText}}{{^isFixedPrice}}<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_discount_block\\\">&nbsp;({{{secondFormattedDiscountText}}})</span> {{/isFixedPrice}}{{/showSecondFormattedDiscountText}}\\n</div>\\n    \\n             </label>\\n        {{/prepaidFlag}}\\n        {{#prepaidFlag}}\\n             <label for=\\\"{{sellingPlanId}}\\\" class=\\\"appstle_widget_three\\\">\\n               {{{name}}}\\n<div class=\\\"appstle_span_wrapper\\\">\\n        <span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\">{{{totalPrice}}}</span>\\n {{#showSecondFormattedDiscountText}}{{^isFixedPrice}}<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_discount_block\\\">&nbsp;({{{secondFormattedDiscountText}}})</span>{{/isFixedPrice}}{{/showSecondFormattedDiscountText}}\\n {{#formattedPrepaidPerDeliveryPriceText}}<span class=\\\"appstle_formattedPrepaidPerDeliveryPriceText\\\">&nbsp;({{{formattedPrepaidPerDeliveryPriceText}}})</span>{{/formattedPrepaidPerDeliveryPriceText}}\\n        </div>\\n    \\n             </label>\\n        {{/prepaidFlag}}\\n      \\n           </div>\\n        {{/sellingPlanVariants}}\\n{{/showSubOptionBeforeOneTime}}\\n    </div>\\n{{#showStaticTooltip}}\\n<div class=\\\"appstle_tooltip_wrapper_static\\\">{{{toolTipDescription}}}</div>\\n{{/showStaticTooltip}}\\n{{#showTooltip}}\\n    <div data-appstle-icon=\\\"\\\" class=\\\"appstle_tooltip_wrapper\\\">\\n    <svg width=\\\"90\\\" height=\\\"90\\\" viewBox=\\\"0 0 90 90\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" class=\\\"tooltip_subscription_svg\\\">\\n    <path\\n      d=\\\"M45 0C20.1827 0 0 20.1827 0 45C0 69.8173 20.1827 90 45 90C69.8173 90 90 69.8174 90 45C90.0056 44.6025 89.9322 44.2078 89.7839 43.8389C89.6357 43.47 89.4156 43.1342 89.1365 42.8511C88.8573 42.568 88.5247 42.3432 88.158 42.1897C87.7912 42.0363 87.3976 41.9573 87 41.9573C86.6024 41.9573 86.2088 42.0363 85.842 42.1897C85.4753 42.3432 85.1427 42.568 84.8635 42.8511C84.5844 43.1342 84.3643 43.47 84.2161 43.8389C84.0678 44.2078 83.9944 44.6025 84 45C84 66.5748 66.5747 84 45 84C23.4253 84 6 66.5747 6 45C6 23.4254 23.4253 6 45 6C56.1538 6 66.3012 10.5882 73.4375 18H65.4062C65.0087 17.9944 64.614 18.0678 64.2451 18.2161C63.8762 18.3643 63.5405 18.5844 63.2573 18.8635C62.9742 19.1427 62.7494 19.4753 62.596 19.842C62.4425 20.2088 62.3635 20.6024 62.3635 21C62.3635 21.3976 62.4425 21.7912 62.596 22.158C62.7494 22.5247 62.9742 22.8573 63.2573 23.1365C63.5405 23.4156 63.8762 23.6357 64.2451 23.7839C64.614 23.9322 65.0087 24.0056 65.4062 24H79.8125C80.6081 23.9999 81.3711 23.6838 81.9337 23.1212C82.4963 22.5586 82.8124 21.7956 82.8125 21V6.59375C82.821 6.18925 82.7476 5.78722 82.5966 5.41183C82.4457 5.03644 82.2205 4.69545 81.9344 4.40936C81.6483 4.12327 81.3073 3.898 80.9319 3.7471C80.5565 3.5962 80.1545 3.52277 79.75 3.53125C79.356 3.53941 78.9675 3.62511 78.6067 3.78344C78.2458 3.94177 77.9197 4.16963 77.6469 4.45402C77.3741 4.73841 77.16 5.07375 77.0168 5.44089C76.8737 5.80803 76.8042 6.19977 76.8125 6.59375V12.875C68.6156 4.86282 57.3081 0 45 0ZM43.75 20.75C43.356 20.7582 42.9675 20.8439 42.6067 21.0022C42.2458 21.1605 41.9197 21.3884 41.6469 21.6728C41.3741 21.9572 41.16 22.2925 41.0168 22.6596C40.8737 23.0268 40.8042 23.4185 40.8125 23.8125V47.375C40.8116 47.7693 40.8883 48.16 41.0385 48.5246C41.1886 48.8892 41.4092 49.2207 41.6875 49.5L54.0938 61.9375C54.6573 62.5011 55.4217 62.8177 56.2188 62.8177C57.0158 62.8177 57.7802 62.5011 58.3438 61.9375C58.9073 61.3739 59.224 60.6095 59.224 59.8125C59.224 59.0155 58.9073 58.2511 58.3438 57.6875L46.8125 46.1875V23.8125C46.821 23.408 46.7476 23.006 46.5966 22.6306C46.4457 22.2552 46.2205 21.9142 45.9344 21.6281C45.6483 21.342 45.3073 21.1168 44.9319 20.9658C44.5565 20.8149 44.1545 20.7415 43.75 20.75Z\\\"\\n    ></path>\\n    </svg>\\n    <span class=\\\"appstle_tooltip_title\\\">{{{tooltipTitle}}}</span>\\n  </div>\\n<div class=\\\"appstle_tooltip appstle_tooltip_hover\\\">\\n    <div class=\\\"appstle_tooltip_content\\\">\\n      {{{toolTipDescription}}}\\n    </div>\\n   {{#showAppstleLink}}\\n    <div class=\\\"appstle_tooltip_appstle\\\">\\n      <a href=\\\"https://appstle.com\\\" class=\\\"appstle_link\\\" target=\\\"_blank\\\">\\n      POWERED BY APPSTLE\\n      </a>\\n    </div>\\n{{/showAppstleLink}}\\n    </div>\\n{{/showTooltip}}\\n<style>.widgetSellingPlanWrapper {\\n    display: grid;\\n    grid-template-columns: repeat(2, minmax(0, 1fr));\\n    gap: 0.5rem;\\n    grid-auto-rows: 1fr;\\n    margin-bottom: 6px;\\n}\\n.widgetSellingPlanWrapper input {\\n    display: none;\\n}\\n.widgetSellingPlanWrapper label {\\n    border-radius: 8px;\\n    border: 1px solid rgba(var(--color-foreground));\\n    padding: 0.5rem;\\n    display: flex;\\n    justify-content: center;
3493\\n    align-items: center;\\n    display: block;\\n    height: 100%;\\n    width: 100%;\\n    text-align: center;\\ncursor: pointer;\\ncolor: rgba(var(--color-foreground));\\n}\\n.widgetSellingPlanWrapper input:checked+label {\\n    background-color: rgba(var(--color-foreground));\\n    color: rgba(var(--color-background));\\n    border: 1px solid rgba(var(--color-background)) !important;\\n}\\n.appstle_lowercase {\\n    text-transform: lowercase;\\n}\\n.appstle_input_wrapper {\\n    position: relative;\\n}\\nspan.appstle_sellingPlan_discountText {\\n    position: absolute;\\n    background-color: color: rgba(var(--color-foreground));\\n    color: rgba(var(--color-background));\\n    border-radius: 3px;\\n    padding: 1px 18px;\\n    left: 50%;\\n    display: block;\\n    transform: translate(-50%, -50%);\\n    white-space: nowrap;\\n}\\nspan.appstle_sellingPlan_discountText:empty {\\n    display: none !important;\\n}\\nspan.appstle_lowercase.appstle_sellingPlan_price {\\n    color: rgba(var(--color-foreground));\\n}\\nspan.appstle_lowercase.appstle_sellingPlan_price.appstle_onetime_amount_compare {\\n    color: rgba(var(--color-foreground));\\n    text-decoration: line-through;\\n    padding: 0 3px;\\n}\\n#appstle_subscription_widget0 .appstle_tooltip_wrapper {\\n   margin-top: 8px;\\n    margin-bottom: 16px;\\n}\\n.appstle_subscription_wrapper {\\n    border: none !important;\\n}\\nlabel.appstle_widget_three {\\n    display: flex;\\n    flex-direction: column;\\n}\\n.widgetSellingPlanWrapper input:checked+label span {\\n   color: rgba(var(--color-background)) !important;\\n}\\n.appstle_sub_widget .appstle_subscription_wrapper{\\n    border-radius:unset !important;\\n}\\nspan.appstle_second_price_block:empty {\\n  display: none !important;\\n}\\n</style>\\n</div>{% endraw %}\",\"WIDGET_TYPE_4\":\"{% raw %}<div id=\\\"appstle-widget-template\\\">\\n  <div class=\\\"appstle_sub_widget\\\" id=\\\"appstle_subscription_widget{{widgetId}}\\\">\\n<div class=\\\"appstle_widget_title\\\">{{{purchaseOptionsText}}}</div>\\n      <div class=\\\"widgetSellingPlanWrapper\\\">\\n{{^requires_selling_plan}}\\n{{^showSubOptionBeforeOneTime}}\\n        <div class=\\\"appstle_input_wrapper\\\">\\n          <input type=\\\"radio\\\" id=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" name=\\\"selling_plan\\\" value=\\\"\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" {{^subscriptionOptionSelectedDefault}}checked{{/subscriptionOptionSelectedDefault}}>\\n          <label for=\\\"appstle_selling_plan_label_1{{widgetId}}\\\">\\n            {{oneTimePuchaseText}}\\n{{#showOneTimeComparePrice}}\\n<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount_compare\\\">\\n  {{{oneTimePuchaseComparePriceAmount}}}\\n</span>\\n{{/showOneTimeComparePrice}}\\n      <span  class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount\\\">{{{oneTimePuchaseAmount}}}/{{{oneTimeFrequencyText}}}</span>\\n          </label>\\n        </div>\\n{{/showSubOptionBeforeOneTime}}\\n{{/requires_selling_plan}}\\n        {{#sellingPlanVariants}}\\n           <div class=\\\"appstle_input_wrapper\\\">\\n      <span class=\\\"appstle_sellingPlan_discountText\\\">{{{formattedDiscountText}}}</span>\\n             <input type=\\\"radio\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" id=\\\"{{sellingPlanId}}\\\" value=\\\"{{sellingPlanId}}\\\" name=\\\"selling_plan\\\" {{#isChecked}}checked{{/isChecked}}>\\n{{^prepaidFlag}}\\n             <label for=\\\"{{sellingPlanId}}\\\">\\n                {{{name}}}\\n<div class=\\\"appstle_span_wrapper\\\">\\n        <span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\">{{{formattedPrice}}}<span>\\n<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_formattext_block\\\">/{{{sellingPlanFrequencyText}}}{{#isFrequencySubsequent}}{{/isFrequencySubsequent}}</span>\\n</div>\\n </label>\\n{{/prepaidFlag}}\\n{{#prepaidFlag}}\\n<label for=\\\"{{sellingPlanId}}\\\">\\n                {{{name}}}\\n<div class=\\\"appstle_span_wrapper\\\">\\n        <span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_price_block\\\">{{{totalPrice}}}</span>\\n<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_discount_block appstle_formattedPrepaidPerDeliveryPriceText\\\">&nbsp;{{{formattedPrepaidPerDeliveryPriceText}}}</span>\\n</div>\\n</label>\\n{{/prepaidFlag}}\\n           </div>\\n        {{/sellingPlanVariants}}\\n{{^requires_selling_plan}}\\n{{#showSubOptionBeforeOneTime}}\\n        <div class=\\\"appstle_input_wrapper\\\">
3493\\n          <input type=\\\"radio\\\" id=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" name=\\\"selling_plan\\\" value=\\\"\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" {{^subscriptionOptionSelectedDefault}}checked{{/subscriptionOptionSelectedDefault}}>\\n          <label for=\\\"appstle_selling_plan_label_1{{widgetId}}\\\">\\n            {{oneTimePuchaseText}}\\n{{#showOneTimeComparePrice}}\\n<span class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount_compare\\\">\\n  {{{oneTimePuchaseComparePriceAmount}}}\\n</span>\\n{{/showOneTimeComparePrice}}\\n      <span  class=\\\"appstle_lowercase appstle_sellingPlan_price appstle_onetime_amount\\\">{{{oneTimePuchaseAmount}}}/{{{oneTimeFrequencyText}}}</span>\\n          </label>\\n        </div>\\n{{/showSubOptionBeforeOneTime}}\\n{{/requires_selling_plan}}\\n    </div>\\n{{#showStaticTooltip}}\\n<div class=\\\"appstle_tooltip_wrapper_static\\\"> {{{toolTipDescription}}}</div>\\n{{/showStaticTooltip}}\\n{{#showTooltip}}\\n    <div data-appstle-icon=\\\"\\\" class=\\\"appstle_tooltip_wrapper\\\">\\n    <svg width=\\\"90\\\" height=\\\"90\\\" viewBox=\\\"0 0 90 90\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" class=\\\"tooltip_subscription_svg\\\">\\n    <path\\n      d=\\\"M45 0C20.1827 0 0 20.1827 0 45C0 69.8173 20.1827 90 45 90C69.8173 90 90 69.8174 90 45C90.0056 44.6025 89.9322 44.2078 89.7839 43.8389C89.6357 43.47 89.4156 43.1342 89.1365 42.8511C88.8573 42.568 88.5247 42.3432 88.158 42.1897C87.7912 42.0363 87.3976 41.9573 87 41.9573C86.6024 41.9573 86.2088 42.0363 85.842 42.1897C85.4753 42.3432 85.1427 42.568 84.8635 42.8511C84.5844 43.1342 84.3643 43.47 84.2161 43.8389C84.0678 44.2078 83.9944 44.6025 84 45C84 66.5748 66.5747 84 45 84C23.4253 84 6 66.5747 6 45C6 23.4254 23.4253 6 45 6C56.1538 6 66.3012 10.5882 73.4375 18H65.4062C65.0087 17.9944 64.614 18.0678 64.2451 18.2161C63.8762 18.3643 63.5405 18.5844 63.2573 18.8635C62.9742 19.1427 62.7494 19.4753 62.596 19.842C62.4425 20.2088 62.3635 20.6024 62.3635 21C62.3635 21.3976 62.4425 21.7912 62.596 22.158C62.7494 22.5247 62.9742 22.8573 63.2573 23.1365C63.5405 23.4156 63.8762 23.6357 64.2451 23.7839C64.614 23.9322 65.0087 24.0056 65.4062 24H79.8125C80.6081 23.9999 81.3711 23.6838 81.9337 23.1212C82.4963 22.5586 82.8124 21.7956 82.8125 21V6.59375C82.821 6.18925 82.7476 5.78722 82.5966 5.41183C82.4457 5.03644 82.2205 4.69545 81.9344 4.40936C81.6483 4.12327 81.3073 3.898 80.9319 3.7471C80.5565 3.5962 80.1545 3.52277 79.75 3.53125C79.356 3.53941 78.9675 3.62511 78.6067 3.78344C78.2458 3.94177 77.9197 4.16963 77.6469 4.45402C77.3741 4.73841 77.16 5.07375 77.0168 5.44089C76.8737 5.80803 76.8042 6.19977 76.8125 6.59375V12.875C68.6156 4.86282 57.3081 0 45 0ZM43.75 20.75C43.356 20.7582 42.9675 20.8439 42.6067 21.0022C42.2458 21.1605 41.9197 21.3884 41.6469 21.6728C41.3741 21.9572 41.16 22.2925 41.0168 22.6596C40.8737 23.0268 40.8042 23.4185 40.8125 23.8125V47.375C40.8116 47.7693 40.8883 48.16 41.0385 48.5246C41.1886 48.8892 41.4092 49.2207 41.6875 49.5L54.0938 61.9375C54.6573 62.5011 55.4217 62.8177 56.2188 62.8177C57.0158 62.8177 57.7802 62.5011 58.3438 61.9375C58.9073 61.3739 59.224 60.6095 59.224 59.8125C59.224 59.0155 58.9073 58.2511 58.3438 57.6875L46.8125 46.1875V23.8125C46.821 23.408 46.7476 23.006 46.5966 22.6306C46.4457 22.2552 46.2205 21.9142 45.9344 21.6281C45.6483 21.342 45.3073 21.1168 44.9319 20.9658C44.5565 20.8149 44.1545 20.7415 43.75 20.75Z\\\"\\n    ></path>\\n    </svg>\\n    <span class=\\\"appstle_tooltip_title\\\">{{{tooltipTitle}}}</span>\\n  </div>\\n    <div class=\\\"appstle_tooltip\\\">\\n    <div class=\\\"appstle_tooltip_content\\\">\\n      {{{toolTipDescription}}}\\n    </div>\\n{{#showAppstleLink}}\\n    <div class=\\\"appstle_tooltip_appstle\\\">\\n      <a href=\\\"https://appstle.com\\\" class=\\\"appstle_link\\\" target=\\\"_blank\\\">\\n      POWERED BY APPSTLE\\n      </a>\\n    </div>\\n{{/showAppstleLink}}\\n    </div>\\n{{/showTooltip}}\\n<style>\\n.widgetSellingPlanWrapper {\\n    display: grid;\\n    grid-template-columns: repeat(2, minmax(0, 1fr));\\n    gap: 16px;\\n    grid-auto-rows: 1fr;\\n    margin-bottom: 6px;\\nmargin-top: 10px\\n}\\n.widgetSellingPlanWrapper input {\\n    display: none;\\n}\\n.widgetSellingPlanWrapper label {\\n    border-radius: 10px;\\n    border: 1px solid rgba(var(--color-foreground, 0, 0, 0));\\n    padding: 0.5rem;\\n    display: flex !important;\\n    flex-direction: column;\\n    justify-content: center;
3493\\n    align-items: center;\\n    display: block;\\n    height: 100%;\\n    width: 100%;\\n    text-align: center;\\ncursor: pointer;\\n}\\n.widgetSellingPlanWrapper input:checked+label {\\n    background-color: rgba(var(--color-foreground, 0, 0, 0));\\n}\\n.appstle_lowercase {\\n    text-transform: lowercase;\\n}\\n.appstle_input_wrapper {\\n    position: relative;\\n}\\nspan.appstle_sellingPlan_discountText {\\n    position: absolute;\\n    font-size: 1.2rem;\\n    background-color: rgba(var(--color-foreground, 0, 0, 0));\\n    color: rgba(var(--color-background, 255, 255, 255));\\n    border-radius: 3px;\\n    border: 2px solid rgba(var(--color-background, 255, 255, 255));\\n    padding: 1px 18px;\\n    left: 50%;\\n    display: block;\\n    transform: translate(-50%, -50%);\\n    white-space: nowrap;\\n}\\nspan.appstle_sellingPlan_discountText:empty {\\n    display: none !important;\\n}\\nspan.appstle_lowercase.appstle_sellingPlan_price.appstle_onetime_amount_compare {\\ntext-decoration: line-through;\\n}\\n.appstle_tooltip_wrapper {\\n    margin-bottom:10px;\\n}\\n.widgetSellingPlanWrapper input:checked+label {\\n    background-color: rgba(var(--color-foreground, 0, 0, 0));\\n    color: rgba(var(--color-background, 255, 255, 255));\\n    border: 2px solid rgba(var(--color-background, 255, 255, 255)) !important;\\n}\\n</style>\\n</div>{% endraw %}\",\"WIDGET_TYPE_5\":\"{% raw %}<div id=\\\"appstle-widget-template\\\">\\n    <div class=\\\"appstle_sub_widget\\\" id=\\\"appstle_subscription_widget{{widgetId}}\\\">\\n<div class=\\\"appstle_widget_title\\\">{{{purchaseOptionsText}}}</div>\\n        <div class=\\\"widgetSellingPlanWrapper\\\">\\n{{^showSubOptionBeforeOneTime}}\\n{{^requires_selling_plan}}\\n          <div class=\\\"appstle_input_wrapper\\\">\\n            <input type=\\\"radio\\\" id=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" name=\\\"selling_plan\\\" value=\\\"\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" {{^subscriptionOptionSelectedDefault}}checked{{/subscriptionOptionSelectedDefault}}/>\\n            <label for=\\\"appstle_selling_plan_label_1{{widgetId}}\\\">\\n              {{{oneTimePuchaseText}}}\\n            </label>\\n            \\n          </div>\\n{{/requires_selling_plan}}\\n{{/showSubOptionBeforeOneTime}}\\n          {{#sellingPlanVariants}}\\n             <div class=\\\"appstle_input_wrapper\\\">\\n               <input type=\\\"radio\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" id=\\\"{{sellingPlanId}}\\\" value=\\\"{{sellingPlanId}}\\\" name=\\\"selling_plan\\\"  {{#isChecked}}checked{{/isChecked}} />\\n               <label for=\\\"{{sellingPlanId}}\\\">\\n                  {{{name}}}\\n               </label>\\n        \\n             </div>\\n          {{/sellingPlanVariants}}\\n{{#showSubOptionBeforeOneTime}}\\n{{^requires_selling_plan}}\\n          <div class=\\\"appstle_input_wrapper\\\">\\n            <input type=\\\"radio\\\" id=\\\"appstle_selling_plan_label_1{{widgetId}}\\\" name=\\\"selling_plan\\\" value=\\\"\\\" class=\\\"appstleSellingPlan{{widgetId}}\\\" {{^subscriptionOptionSelectedDefault}}checked{{/subscriptionOptionSelectedDefault}}/>\\n            <label for=\\\"appstle_selling_plan_label_1{{widgetId}}\\\">\\n              {{{oneTimePuchaseText}}}\\n            </label>\\n            \\n          </div>\\n{{/requires_selling_plan}}\\n{{/showSubOptionBeforeOneTime}}\\n      </div>\\n{{#showStaticTooltip}}\\n<div class=\\\"appstle_tooltip_wrapper_static\\\">{{{toolTipDescription}}}</div>\\n{{/showStaticTooltip}}\\n{{#showTooltip}}\\n    <div data-appstle-icon=\\\"\\\" class=\\\"appstle_tooltip_wrapper\\\">\\n    <svg width=\\\"90\\\" height=\\\"90\\\" viewBox=\\\"0 0 90 90\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" class=\\\"tooltip_subscription_svg\\\">\\n    <path\\n      d=\\\"M45 0C20.1827 0 0 20.1827 0 45C0 69.8173 20.1827 90 45 90C69.8173 90 90 69.8174 90 45C90.0056 44.6025 89.9322 44.2078 89.7839 43.8389C89.6357 43.47 89.4156 43.1342 89.1365 42.8511C88.8573 42.568 88.5247 42.3432 88.158 42.1897C87.7912 42.0363 87.3976 41.9573 87 41.9573C86.6024 41.9573 86.2088 42.0363 85.842 42.1897C85.4753 42.3432 85.1427 42.568 84.8
3493635 42.8511C84.5844 43.1342 84.3643 43.47 84.2161 43.8389C84.0678 44.2078 83.9944 44.6025 84 45C84 66.5748 66.5747 84 45 84C23.4253 84 6 66.5747 6 45C6 23.4254 23.4253 6 45 6C56.1538 6 66.3012 10.5882 73.4375 18H65.4062C65.0087 17.9944 64.614 18.0678 64.2451 18.2161C63.8762 18.3643 63.5405 18.5844 63.2573 18.8635C62.9742 19.1427 62.7494 19.4753 62.596 19.842C62.4425 20.2088 62.3635 20.6024 62.3635 21C62.3635 21.3976 62.4425 21.7912 62.596 22.158C62.7494 22.5247 62.9742 22.8573 63.2573 23.1365C63.5405 23.4156 63.8762 23.6357 64.2451 23.7839C64.614 23.9322 65.0087 24.0056 65.4062 24H79.8125C80.6081 23.9999 81.3711 23.6838 81.9337 23.1212C82.4963 22.5586 82.8124 21.7956 82.8125 21V6.59375C82.821 6.18925 82.7476 5.78722 82.5966 5.41183C82.4457 5.03644 82.2205 4.69545 81.9344 4.40936C81.6483 4.12327 81.3073 3.898 80.9319 3.7471C80.5565 3.5962 80.1545 3.52277 79.75 3.53125C79.356 3.53941 78.9675 3.62511 78.6067 3.78344C78.2458 3.94177 77.9197 4.16963 77.6469 4.45402C77.3741 4.73841 77.16 5.07375 77.0168 5.44089C76.8737 5.80803 76.8042 6.19977 76.8125 6.59375V12.875C68.6156 4.86282 57.3081 0 45 0ZM43.75 20.75C43.356 20.7582 42.9675 20.8439 42.6067 21.0022C42.2458 21.1605 41.9197 21.3884 41.6469 21.6728C41.3741 21.9572 41.16 22.2925 41.0168 22.6596C40.8737 23.0268 40.8042 23.4185 40.8125 23.8125V47.375C40.8116 47.7693 40.8883 48.16 41.0385 48.5246C41.1886 48.8892 41.4092 49.2207 41.6875 49.5L54.0938 61.9375C54.6573 62.5011 55.4217 62.8177 56.2188 62.8177C57.0158 62.8177 57.7802 62.5011 58.3438 61.9375C58.9073 61.3739 59.224 60.6095 59.224 59.8125C59.224 59.0155 58.9073 58.2511 58.3438 57.6875L46.8125 46.1875V23.8125C46.821 23.408 46.7476 23.006 46.5966 22.6306C46.4457 22.2552 46.2205 21.9142 45.9344 21.6281C45.6483 21.342 45.3073 21.1168 44.9319 20.9658C44.5565 20.8149 44.1545 20.7415 43.75 20.75Z\\\"\\n    ></path>\\n    </svg>\\n    <span class=\\\"appstle_tooltip_title\\\">{{{tooltipTitle}}}</span>\\n  </div>\\n<div class=\\\"appstle_tooltip appstle_tooltip_hover\\\">\\n    <div class=\\\"appstle_tooltip_content\\\">\\n      {{{toolTipDescription}}}\\n    </div>\\n  {{#showAppstleLink}}\\n    <div class=\\\"appstle_tooltip_appstle\\\">\\n      <a href=\\\"https://appstle.com\\\" class=\\\"appstle_link\\\" target=\\\"_blank\\\">\\n      POWERED BY APPSTLE\\n      </a>\\n    </div>\\n  {{/showAppstleLink}}\\n    </div>\\n{{/showTooltip}}\\n  <style>\\n  .widgetSellingPlanWrapper {\\n      display: grid;\\n      grid-template-columns: repeat(2, minmax(0, 1fr));\\n      gap: 8px;\\n      grid-auto-rows: 1fr;\\n      margin-bottom: 6px;\\n      margin-top: 10px;\\n  }\\n  \\n  .widgetSellingPlanWrapper input {\\n      display: none;\\n  }\\n  \\n  .widgetSellingPlanWrapper label {\\n      border-radius: 4px;\\n      border: 1px solid rgba(var(--color-foreground));\\n      padding: 0.5rem;\\n      display: flex;\\n      justify-content: center;\\n      align-items: center;\\n      display: block;\\n      height: 100%;\\n      width: 100%;\\n      text-align: center;\\n \\t color: rgba(var(--color-foreground));\\ncursor: pointer;\\n  }\\n  \\n  .widgetSellingPlanWrapper input:checked+label {\\n      background-color: rgba(var(--color-foreground));\\n \\t color: rgba(var(--color-background));\\n  }\\n  .appstle_lowercase {\\n      text-transform: lowercase;\\n  }\\n  \\n  \\n  .appstle_input_wrapper {\\n      position: relative;\\n  }\\n  \\n  span.appstle_sellingPlan_discountText {\\n      position: absolute;\\n      background-color: rgba(var(--color-foreground));\\n      color: rgba(var(--color-background));\\n      border-radius: 3px;\\n      padding: 1px 18px;\\n      left: 50%;\\n      display: block;\\n      transform: translate(-50%, -50%);\\n      white-space: nowrap;\\n  }\\n  span.appstle_sellingPlan_discountText:empty {\\n      display: none !important;\\n  }\\n  </style>\\n  </div>{% endraw %}\"}",
3494                
3495                
3496                  "bundle": {},
3497                
3498                
3499                  "labels": `{\"appstle.subscription.wg.noSubscriptionLabelTextV2\":\"No Subscription\",\"appstle.subscription.wg.cancelAnytimeLabelTextV2\":\"Cancel Anytime\",\"appstle.subscription.wg.addToShipmentErrorTextV2\":\"Error\",\"appstle.subscription.wg.weeksFrequencyTextV2\":\"Weeks\",\"appstle.subscription.wg.weeklyLabelTextV2\":\"Weekly\",\"appstle.subscription.wg.displayAddToExistingSubscriptionButtonForNotLoggedInV2\":\"false\",\"appstle.subscription.wg.addToShipmentProcessingV2\":\"Processing...\",\"appstle.subscription.wg.showWidgetStaticV2\":\"false\",\"appstle.subscription.wg.subscribeAndSaveInitalV2\":\"Subscribe & save\",\"appstle.subscription.wg.deliveryEveryFrequencyTextV2\":\"Delivery Every\",\"appstle.subscription.wg.allowRefreshOnCartPageV2\":\"false\",\"appstle.subscription.wg.prepaidLabelTextV2\":\"Prepaid\",\"appstle.subscription.wg.daysFrequencyTextV2\":\"Days\",\"appstle.subscription.wg.monthlyLabelTextV2\":\"Monthly\",\"appstle.subscription.wg.subscribeAndSaveSuccessV2\":\"Subscribe success\",\"appstle.subscription.wg.addToShipmentSuccessTextV2\":\"Success\",\"appstle.subscription.wg.monthFrequencyTextV2\":\"Month\",\"appstle.subscription.wg.addToShipmentButtonTextV2\":\"Add to Shipment\",\"appstle.subscription.wg.displayAddToExistingSubscriptionButtonToSubscribersOnlyV2\":\"false\",\"appstle.subscription.wg.yearsFrequencyTextV2\":\"Years\",\"appstle.subscription.wg.addToShipmentTooltipTextV2\":\"Please avoid double delivery charges! Login to add this product to an upcoming delivery.\",\"appstle.subscription.wg.weekFrequencyTextV2\":\"Week\",\"appstle.subscription.wg.oneTimePurchaseTextV2\":\"One Time Purchase\",\"appstle.subscription.wg.loyaltyPerkDescriptionTextV2\":\"{{#isDiscountTypeFreeProduct}}<div style='display: flex;'><div style='height: 60px; width: 60px; flex-shrink: 0; margin-right: 10px;'><img style='width: 100%' src={{{featured_image}}}><\/img><\/div><div>After {{{billingCycleBlock}}} orders,<span style='color: #ffc000;font-weight: 700;';> get a FREE {{freeProductName}} <\/span><\/div><div>{{\/isDiscountTypeFreeProduct}}{{#isDiscountTypePercentage}}After <span class='appstle-loyalty-billing-cycle'><span class='appstle-loyalty-billing-cycle-count'>{{{billingCycleBlock}}}<\/span> order<\/span>, <span class='appstle-loyalty-discount'>
3499get <span style='color: #ffc000;font-weight: 700;';>{{{discount}}}% OFF your entire order<\/span><\/span>.{{\/isDiscountTypePercentage}}{{#isDiscountTypeShipping}}After <span class='appstle-loyalty-billing-cycle'><span class='appstle-loyalty-billing-cycle-count'>{{{billingCycleBlock}}}<\/span> order<\/span>, <span class='appstle-loyalty-discount'>get <span style='color: #ffc000;font-weight: 700;';>shipping at {{{formatDiscountedPrice}}}<\/span><\/span>.{{\/isDiscountTypeShipping}}{{#isDiscountTypeFixed}}After <span class='appstle-loyalty-billing-cycle'><span class='appstle-loyalty-billing-cycle-count'>{{{billingCycleBlock}}}<\/span> order<\/span>, <span class='appstle-loyalty-discount'>get <span style='color: #ffc000;font-weight: 700;';>{{{formatDiscountedPrice}}} OFF your entire order<\/span><\/span>.{{\/isDiscountTypeFixed}}\",\"appstle.subscription.wg.unsubscribeFrequencyTextV2\":\"Unsubscribe\",\"appstle.subscription.wg.bundleDiscountTextV2\":\"bundle discount extra: {{bundleDiscount}} off\",\"appstle.subscription.wg.oneTimeFrequencyTextV2\":\"One Time\",\"appstle.subscription.wg.dayFrequencyTextV2\":\"day\",\"appstle.subscription.wg.allowFulfilmentCountViaPropertiesV2\":\"true\",\"appstle.subscription.wg.monthsFrequencyTextV2\":\"Months\",\"appstle.subscription.wg.prepaidSaveBadgeTextV2\":\"SAVE {{selectedDiscountPercentage}}\",\"appstle.subscription.wg.showPrepidPerDeliveryProductPriceV2\":\"false\",\"appstle.subscription.wg.manageSubscriptionButtonTextV2\":\"Manage Subscription\",\"appstle.subscription.wg.offFrequencyTextV2\":\"Off\",\"appstle.subscription.wg.yearFrequencyTextV2\":\"Year\",\"appstle.subscription.wg.prepayLabelTextV2\":\"Prepay\",\"appstle.subscription.wg.frequencyCombinedWidgetTextV2\":\"Frequency\",\"appstle.subscription.wg.showNewLoyaltyUI\":\"false\",\"appstle.subscription.wg.sellingPlanTitleTextNonPrepaid\":\"{{sellingPlanName}}\",\"appstle.subscription.wg.selectDeliverOptionV2\":\"Select Delivery Option\",\"appstle.subscription.wg.yearlyLabelTextV2\":\"Yearly\"}`,
3500                
3501                "css": {
3502                    "appstle_subscription_widget": {
3503                        "margin-top": "" ,
3504                        "margin-bottom": "",
3505                    },
3506
3507                    "appstle_subscription_wrapper": {
3508                        "border-width": "",
3509                        "border-color": "",
3510                    },
3511
3512                    "appstle_circle": {
3513                        "border-color": "",
3514                    },
3515
3516                    "appstle_dot": {
3517                        "background-color": "",
3518                    },
3519
3520                    "appstle_select": {
3521                        "padding-top": "",
3522                        "padding-bottom": "",
3523                        "padding-left": "",
3524                        "padding-right": "",
3525                        "border-width": "",
3526                        "border-style": "",
3527                        "border-color": "",
3528                        "border-radius": "",
3529                    },
3530
3531                    "tooltip_subscription_svg": {
3532                        "fill": "",
3533                    },
3534
3535                    "appstle_tooltip": {
3536                        "color": "",
3537                        "background-color": "",
3538                    },
3539
3540                    "appstle_tooltip_border_top_color": {
3541                        "border-top-color": "",
3542                    },
3543
3544                    "appstle_subscription_final_price": {
3545                        "color": "",
3546                    },
3547                    "appstle_widget_text_color": {
3548                        "color": "",
3549                    },
3550                    "appstle_selected_background": {
3551                        "background": "transparent",
3552                    },
3553                    "elementCSS": "[\".appstle_sub_widget, .appstle_subscription_wrapper_option, div.appstle_subscription_wrapper, .widgetSellingPlanWrapper label,.appstle_sub_widget input[type\\u003dradio]+label:before { border-radius: 10px !important;}\\n.WIDGET_TYPE_2 .appstle_subscription_wrapper_option{ border-radius: 0px !important;}\\n\",\".appstle_subscription_amount, .appstle_onetime_amount, .appstle_sellingPlan_price { color: #425735 !important; }\"]",
3554                    "customCSS": ".text-link.giftbox-checkout{\r\n    display: none !important;\r\n}\r\nbutton.btn.evm-ws__cart-submit.ws_ls_lang{\r\npadding: 17px !important;\r\n}",
3555                    "customerPortalCss": "",
3556                    "externalStyleTag": "button.btn.evm-ws__cart-submit.ws_ls_lang{padding: 17px !important;}",
3557                    "themeCss": "",
3558                }
3559            };
3560          
3561
3562          window.AppstleSubscription = window.AppstleSubscription || JSON.parse(JSON.stringify(RS));
3563
3564          sessionStorage['appstleSubscriptionConfig'] = JSON.stringify(RS.Config);
3565
3566          
3567            try {
3568            
3569                window.appstle_build_a_box_labels = {"perDeliveryLabelTextV2":"\\/delivery","variantNotAvailable":"Not Available","saveDiscountText":"{{discount}}","bundleSummaryTextV2":"Your bundle is empty. Please add products to your bundles to see bundle summary here.","freeProductLabelTextV2":"Free","bundleDescriptionTextV2":"Our bundle of all bundles, The Ultimate Superfood Bundle delivers exactly what it promises - a complete superfood solution. With 7 superfood blends each created to empower every aspect of your health and wellbeing - from immunity and gut health to energy & better focus.","productDetails":"Product Details","failedToAddMsgText":"Cart can't have more than {{maxProduct}}
3569 products","cart":"Cart","reviewBundleTextV2":"Review Bundle","addButtonText":"Add","minimumQuantityToCheckoutV2":"Minimum {{quantity}} quantity to checkout","buildBoxErrormsgV2":"Build a Box token is Invalid, Please reach out to support.","continueShopping":"Continue shopping","failedToAddTitleText":"Failed to add","spendAmountGetDiscount":"Spend {{amount}} get {{percent}}% discount","maxiumQuantityToCheckoutV2":"Minimum {{quantity}} quantity to checkout","contentsOnModalTextV2":"Contents","nextStepButtonTextV2":"Next Step","choosePlanLifeStyleTextV2":"Choose a plan to match your lifestyle","selectMinimumProductButtonText":"Please select {{minProduct}} minimum product","subtotal":"Subtotal","buyQuantityGetDiscount":"Buy {{quantity}} get {{percent}}% discount","loyaltyTablePercentageTextV2":"After <span class='appstle-loyalty-billing-cycle'><span class=''>{{billingCycle}}<\\/span> order<\\/span>, <span class='appstle-loyalty-discount'>get <span class='appstle-loyalty-discount-amount'>{{discount}}% off<\\/span><\\/span>.","loyaltyTablePriceTextV2":"After <span class='appstle-loyalty-billing-cycle'><span class=''>{{billingCycle}}<\\/span> order<\\/span>, <span class='appstle-loyalty-discount'>get at <span class='appstle-loyalty-discount-amount'>{{price}}<\\/span><\\/span>.","myDeliveryText":"My {{selectedSellingPlanDisplayName}} delivery","removeItem":null,"productsToProceedText":"Please select products to proceed","previousStepButtonTextV2":"Previous step","loadMoreTextV2":"Load more","selectedFrequencyLabelText":"Selected Frequency","addToCartButtonTextV2":"Add To Cart ","basePriceFormatFieldV2":"{{unitPrice}}\\/{{quantityUnit}}","title":"Build a box","productPriceFormatField":"{{price}}","reviewOrdeDescriptionTextV2":"Check your items and select your required frequency plan","quantityLabelV2":"Quantity","minimumOrderAmountLabelTextV2":"Minimum order amount {{minOrderAmount}}.","subscriptionNotAvailableButtonV2":"Subscription not available","shoppingCart":"Shopping Cart","checkoutMessage":"Shipping and taxes calculated at checkout.","selectedButtonTextV2":"Selected","congratsMessageText":null,"okBtnText":"Ok","tieredDiscount":"Tiered Discount","choosePlanLifeStyleDescriptionTextV2":"Cutoff each week to amend your meals is midnight on Thursday's. (Delivery Schedule is as follows: Gold Coast - Mondays | Brisbane & Sunshine Coast - Wednesdays)","orderNoteLabelTextV2":"Order Note","minimumToCheckoutV2":"Minimum {{quantity}} to checkout","loyaltyTableFixedTextV2":"After <span class='appstle-loyalty-billing-cycle'><span class=''>{{billingCycle}}<\\/span> order<\\/span>, <span class='appstle-loyalty-discount'>get <span class='appstle-loyalty-discount-amount'>{{price}} off<\\/span><\\/span>.","editQuantity":"Edit Quantity","chooseProductsTextV2":"Choose Products","loyaltyTableFreeProductTextV2":"After <span class='appstle-loyalty-billing-cycle'><span class=''>{{billingCycle}}<\\/span> order<\\/span>, <span class='appstle-loyalty-discount'>get <span class='appstle-loyalty-discount-amount'>FREE PRODUCT ({{productName}})<\\/span><\\/span>.","loyaltyTableShippingTextV2":"After <span class='appstle-loyalty-billing-cycle'><span class=''>{{billingCycle}}<\\/span> order<\\/span>, <span class='appstle-loyalty-discount'>get <span class='appstle-loyalty-discount-amount'>shipping at {{price}}<\\/span><\\/span>.","spentText":null,"quantityLabel":null,"addButtonV2":"Add","loyaltyTableFreeTrailTextV2":"Get <span class='appstle-loyalty-free-trial-discount'>{{discount}} <span class='appstle-loyalty-free-trial-discount-count' style='text-transform: lowercase;'>{{discountType}} <\\/span><\\/span> <span class='appstle-loyalty-free-trial-text'>free trial.<\\/span>","bundleCheckoutTextV2":"Checkout","reviewOrderTextV2":"Review Order","goBackButtonText":"Go Back","selectPlanTextV2":"Select Plan","viewProduct":"View Product","bundleOnModalTextV2":"Bundle","proceedToCheckoutButtonText":"Proceed to checkout","pleaseWaitLabelTextV2":"Please wait...","typeToSearchPlaceholderTextV2":"Type to search","selectedProgressLabelTextV2":"Selected","outOfStockTextV2":"Out of stock"};
3570            
3571            } catch (e) {
3572            console.error("Error parsing build a box labels:", e);
3573            }
3574          
3575
3576          var _RSConfig = _RSConfig || {};
3577
3578          _RSConfig.shop = 'tabanero-cigars.myshopify.com';
3579
3580          
3581
3582          
3583
3584            
3585            _RSConfig.shopMoneyFormat = '$ {{amount}}';
3586            _RSConfig.shopMoneyFormatWithCurrencyFormat = '$ {{amount}} USD';
3587            
3588
3589            
3590
3591        }
3592
3593        
3594        
3595            _RSConfig.assetRev = "a726c91178427ad41a3882c36f751d6d";
3596        
3597
3598</script>
3598
3599
3600<style id="appstle-payment-button-override">
3601    .shopify-payment-button {display: none;}
3602</style>
3603<script>
3604 let appstleCount = 0
3605 function isAppstleJSInitiated() {
3606    appstleCount++;
3607    if (window?.["RSConfig"] || appstleCount > 20) {
3608        let appstleStyleElement = document.querySelector('#appstle-payment-button-override');
3609        if (appstleStyleElement) {
3610            appstleStyleElement.remove();
3611        }
3612    } else {
3613        setTimeout(isAppstleJSInitiated, 500)
3614    }
3615 }
3616 isAppstleJSInitiated();
3617</script>
3617
3618
3619<style>
3620button.btn.evm-ws__cart-submit.ws_ls_lang{padding: 17px !important;}
3621</style>
3622<script>
3623    function pollAppstleInit() {
3624        if (window?.appstleInit) {
3625        window?.appstleInit()
3626        } else {
3627        setTimeout(pollAppstleInit, 30);
3628        }
3629    }
3630</script>
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646    
3647
3648    
3648<script src="https://subscription-admin.appstle.com/assets/js/appstle-subscription.min.js?shop=tabanero-cigars.myshopify.com&v=1789149464677" defer ></script>
3648
3649
3650    
3651
3652    
3653    
3654
3655
3656
3657</div>
3657<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
3657
3658</body>
3659</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.