1<!doctype html> 2<html class="no-js" lang="en"> 3 4 <link rel="preconnect" href="https://cdn.cookie.pii.ai"> 5 <link rel="preconnect" href="https://pieeyegpc.pii.ai" crossorigin=""> 6 <link rel="dns-prefetch" href="https://pieeyegpc.pii.ai"> 7 <link rel="preconnect" href="https://geo.pii.ai" crossorigin=""> 8 <link rel="dns-prefetch" href="https://geo.pii.ai"> 9
9<script> 10window.dataLayer = window.dataLayer || []; 11function gtag() { 12 dataLayer.push(arguments); 13} 14 15// --- Default Consent States --- 16const DENIED_CONSENT = { 17 functionality_storage: "denied", 18 personalization_storage: "denied", 19 analytics_storage: "denied", 20 ad_storage: "denied", 21 security_storage: "granted", 22 ad_user_data: "denied", 23 ad_personalization: "denied", 24}; 25 26const GRANTED_CONSENT = { 27 functionality_storage: "granted", 28 personalization_storage: "granted", 29 analytics_storage: "granted", 30 ad_storage: "granted", 31 security_storage: "granted", 32 ad_user_data: "granted", 33 ad_personalization: "granted", 34}; 35 36// --- Geo API --- 37async function getUserLocation() { 38 try { 39 const response = await fetch("https://geo.pii.ai/geo"); 40 const data = await response.json(); 41 return { 42 continent: data.location.continent.code, 43 country: data.location.country.code, 44 region: data.location.region.code, 45 city: data.location.city, 46 gpc : data.gpc 47 }; 48 } catch (error) { 49 console.error("Error getting location from internal API:", error); 50 return null; 51 } 52} 53 54// --- Cookie helper --- 55async function getCookieValue(name) { 56 const match = document.cookie.match(new RegExp("(^| )" + name + "=([^;]+)")); 57 return match ? decodeURIComponent(match[2]) : null; 58} 59 60// --- Region-based rules --- 61async function shouldEnableConsentByDefault(location) { 62 if (!location) return false; 63 64 const { country, region, continent, gpc } = location; 65 66 // EU requires explicit consent 67 if (continent === "EU") return false; 68 69 if (country === "US" && gpc) return false; 70 71 // Canada - Quebec requires explicit consent 72 if (country === "CA" && region === "CA-QC") return false; 73 74 // US - California & Florida requires explicit consent 75 if (country === "US" && ["US-CA","US-FL"].includes(region)) return false; 76 77 // Default: implicit consent allowed 78 return true; 79} 80 81// --- Consent Application --- 82async function applyConsentSettings() { 83 const location = await getUserLocation(); 84 if (!location) return false; 85 86 const allowConsent = await shouldEnableConsentByDefault(location); 87 88 // Everywhere else â region rules 89 if (allowConsent) { 90 gtag("consent", "default", GRANTED_CONSENT); 91 gtag("set", "url_passthrough", true); 92 gtag("set", "ads_data_redaction", false); 93 } else { 94 gtag("consent", "default", DENIED_CONSENT); 95 gtag("set", "url_passthrough", false); 96 gtag("set", "ads_data_redaction", true); 97 } 98} 99 100// --- Bootstrap --- 101(async function () { 102 let consentSettings = DENIED_CONSENT; 103 let consentFlag = false; 104 105 // --- Check base consent cookie --- 106 const consentCookie = await getCookieValue("consentGiven"); 107 if (consentCookie) { 108 try { 109 consentSettings = JSON.parse(consentCookie); 110 consentFlag = true; 111 } catch { 112 //consentSettings = DENIED_CONSENT; 113 console.warn('Error while parse cookie') 114 } 115 } 116 117 // --- Apply consent --- 118 if (consentFlag) { 119 await applyConsentSettings(); 120 gtag("consent", "update", consentSettings); 121 } else { 122 await applyConsentSettings(); 123 } 124 125 // --- Advanced consent cookie --- 126 const consentAdvance = await getCookieValue("consentAdvanceSetting"); 127 if (consentAdvance) { 128 try { 129 const consentAdvanceSetting = JSON.parse(consentAdvance); 130 if (consentAdvanceSetting && typeof consentAdvanceSetting === "object") { 131 Object.entries(consentAdvanceSetting).forEach(([key, value]) => { 132 gtag("set", key, value); 133 }); 134 } else { 135 throw new Error("Invalid consent object"); 136 } 137 } catch (e) { 138 console.warn("Invalid consentAdvanceSetting cookie", e); 139 } 140 } 141 142 // Expose flag globally 143 window.consentFlag = consentFlag; 144})(); 145</script>
145 146
146<script type="text/javascript" src="https://cdn.cookie.pii.ai/scripts/1/ws/812a7147-4944-4445-bd50-41fe46f1e944/domain/79710111-0ba2-4094-8233-01378cc90697/pieeyeBlocking-lukeslobster.js" async></script>
146 147 <!-- Start of PieEye DNSS Script --> 148 <link rel="stylesheet" href="https://pieeyegpc.pii.ai/1/dsrp/925406a0-8da7-4992-a1ca-8cb1baf88d73/gpc.css"> 149 150
150<script type="text/javascript" src="https://pieeyegpc.pii.ai/1/dsrp/925406a0-8da7-4992-a1ca-8cb1baf88d73/gpc.min.js" async></script>
150 151 <!-- End of PieEye DNSS Script --> 152
153<script src="https://www.dwin1.com/19038.js" type="text/plain" class="pieeye-category-functional" defer="defer"></script>
153 154<!-- BEGIN SMART RECOGNITION CODE -->
155<script type="text/plain" class="pieeye-category-performance"> 156var _avp = _avp || []; 157(function() { 158 var s = document.createElement('script'); 159 s.type = 'text/javascript'; s.async = true; s.src = 'https://portal.smartrecognition.com/js/libcode3.js'; 160 var x = document.getElementsByTagName('script')[0]; 161 x.parentNode.insertBefore(s, x); 162})(); 163</script>
163 164<div data-tagid="PrE7SPfPZZUmpJaHouEE"> 165 166
166<script type="text/javascript"> 167var _avp = _avp || []; 168if (!document.cookie || document.cookie.indexOf('AVPDCAP=') == -1) { 169 _avp.push({ tagid: 'PrE7SPfPZZUmpJaHouEE', alias: '/', type: 'dynamic', zid: 7867, pid: 5382, secure: true }); 170} 171</script>
171 172 173</div> 174<!-- END SMART RECOGNITION CODE --> 175<head>
176<script type="text/plain" class="pieeye-category-targeting-analytics"> 177 (function(c,l,a,r,i,t,y){ 178 c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)}; 179 t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i; 180 y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y); 181 })(window, document, "clarity", "script", "unhq9qbr4k"); 182</script>
182 183 <meta charset="utf-8"> 184 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 185 <meta name="viewport" content="width=device-width,initial-scale=1"> 186 <meta name="google-site-verification" content="HxnJT9FDN2TG_w-FFdnkbdtQrdEeQBg5dflwZLHIVYE" /> 187 <meta name="facebook-domain-verification" content="afzlvjdksm7b0a65wtm3l1d61qc9j5" /> 188 <meta name=âmsvalidate.01â³ content=âHxnJT9FDN2TG_w-FFdnkbdtQrdEeQBg5dflwZLHIVYEâ /> 189 <meta name="theme-color" content="#3a3a3a"> 190 <link rel="canonical" href="https://lukeslobster.com/"> 191 <link rel="preload" href="https://odd.identixweb.com/order-delivery-date/front_scripts/static/js/406.main.chunk.min.js" as="script"> 192<link rel="preload" href="https://odd.identixweb.com/order-delivery-date/front_scripts/static/js/238.main.chunk.min.js" as="script">
193<script src="https://www.googleoptimize.com/optimize.js?id=OPT-WWMZJ4B"></script>
193<link rel="shortcut icon" href="//lukeslobster.com/cdn/shop/files/LL_Logo_32x32.png?v=1613599888" type="image/png"><title>Lukeâs Lobster® 194– Luke's Lobster</title> 195 196 197<meta name="description" content="Official site for Lukeâs Lobster. Get shack locations throughout the US and internationally, ship lobster domestically via our online market with same and next day shipping options, or find us in your local grocery store."><!-- /snippets/social-meta-tags.liquid --> 198 199 200 201 202<meta property="og:site_name" content=" Luke's Lobster"> 203<meta property="og:url" content="https://lukeslobster.com/"> 204<meta property="og:title" content="Lukeâs Lobster®"> 205<meta property="og:type" content="website"> 206<meta property="og:description" content="Official site for Lukeâs Lobster. Get shack locations throughout the US and internationally, ship lobster domestically via our online market with same and next day shipping options, or find us in your local grocery store."> 207 208 209 210 211 212 <meta name="twitter:site" content="@LukesLobster"> 213 214<meta name="twitter:card" content="summary_large_image"> 215<meta name="twitter:title" content="Lukeâs Lobster®"> 216<meta name="twitter:description" content="Official site for Lukeâs Lobster. Get shack locations throughout the US and internationally, ship lobster domestically via our online market with same and next day shipping options, or find us in your local grocery store."> 217 218 219 <!-- Styles --> 220 <link rel="stylesheet" href="https://unpkg.com/aos@next/dist/aos.css" /> 221 <link href="//lukeslobster.com/cdn/shop/t/22/assets/theme.scss.css?v=109821702912809686261762977493" rel="stylesheet" type="text/css" media="all" /> 222 <link href="//lukeslobster.com/cdn/shop/t/22/assets/custom.css?v=35817060917422634761645190537" rel="stylesheet" type="text/css" media="all" /> 223 <link href="//lukeslobster.com/cdn/shop/t/22/assets/styles.min.css?v=105218194582480627701781632388" rel="stylesheet" type="text/css" media="all" /> 224 <!-- Slick --> 225 <link href="//lukeslobster.com/cdn/shop/t/22/assets/slick.min.css?v=60281339823247927561629734491" rel="stylesheet" type="text/css" media="all" /> 226 <link href="//lukeslobster.com/cdn/shop/t/22/assets/accessible-slick-theme.min.css?v=142764853037847278881636745488" rel="stylesheet" type="text/css" media="all" /> 227 228 <!-- Fancy Box script & Styles --> 229 <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/[email protected]/dist/fancybox.css" /> 230
230<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/@fancyapps/[email protected]/dist/fancybox.umd.js" defer="defer"></script>
230 231 232
232<script> 233 var theme = { 234 breakpoints: { 235 medium: 750, 236 large: 990, 237 widescreen: 1400 238 }, 239 strings: { 240 addToCart: "Add to cart", 241 soldOut: "Sold out", 242 unavailable: "Unavailable", 243 regularPrice: "Regular price", 244 salePrice: "Sale price", 245 sale: "Sale", 246 fromLowestPrice: "from [price]", 247 vendor: "Vendor", 248 showMore: "Show More", 249 showLess: "Show Less", 250 searchFor: "Search for", 251 addressError: "Error looking up that address", 252 addressNoResults: "No results for that address", 253 addressQueryLimit: "You have exceeded the Google API usage limit. Consider upgrading to a \u003ca href=\"https:\/\/developers.google.com\/maps\/premium\/usage-limits\"\u003ePremium Plan\u003c\/a\u003e.", 254 authError: "There was a problem authenticating your Google Maps account.", 255 newWindow: "Opens in a new window.", 256 external: "Opens external website.", 257 newWindowExternal: "Opens external website in a new window.", 258 removeLabel: "Remove [product]", 259 update: "Update", 260 quantity: "Quantity", 261 discountedTotal: "Discounted total", 262 regularTotal: "Regular total", 263 priceColumn: "See Price column for discount details.", 264 quantityMinimumMessage: "Quantity must be 1 or more", 265 cartError: "There was an error while updating your cart. Please try again.", 266 removedItemMessage: "Removed \u003cspan class=\"cart__removed-product-details\"\u003e([quantity]) [link]\u003c\/span\u003e from your cart.", 267 unitPrice: "Unit price", 268 unitPriceSeparator: "per", 269 oneCartCount: "1 item", 270 otherCartCount: "[count] items", 271 quantityLabel: "Quantity: [count]", 272 products: "Products", 273 loading: "Loading", 274 number_of_results: "[result_number] of [results_count]", 275 number_of_results_found: "[results_count] results found", 276 one_result_found: "1 result found" 277 }, 278 moneyFormat: "${{amount}}", 279 moneyFormatWithCurrency: "${{amount}} USD", 280 settings: { 281 predictiveSearchEnabled: true, 282 predictiveSearchShowPrice: false, 283 predictiveSearchShowVendor: false 284 } 285 } 286 287 document.documentElement.className = document.documentElement.className.replace('no-js', 'js'); 288 </script>
288<script> 289 window.themeSettings = { 290 enable_cart_drawer: true 291 }; 292</script>
292 293 294 <!-- Scripts --> 295
295<script src="//lukeslobster.com/cdn/shop/t/22/assets/lazysizes.js?v=94224023136283657951629734472" async="async"></script>
295 296
296<script src="//lukeslobster.com/cdn/shop/t/22/assets/vendor.js?v=90215607301161263901629734500" defer="defer"></script>
296 297
297<script src="//lukeslobster.com/cdn/shop/t/22/assets/theme.js?v=9838616287431525121762871087" defer="defer"></script>
297 298
298<script src="//lukeslobster.com/cdn/shop/t/22/assets/production.min.js?v=79593199049135918551781633031" defer="defer"></script>
298 299
299<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
299 300 301 <!-- Google Tag Manager -->
302<script>
vendor: 327 bytes, lines 302-306
302(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 303new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 304j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 305'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 306})(window,document,'script','dataLayer','
306GTM-MJDSVL2
vendor: 3 bytes, line 306
306');
306</script>
306 307<!-- End Google Tag Manager --> 308 309
310<script> 311
vendor: 131 bytes, lines 311-315
311window.dataLayer = window.dataLayer || []; 312 function gtag(){dataLayer.push(arguments);} 313 gtag('js', new Date()); 314 315 gtag('config', '
315AW-822214704
vendor: 6 bytes, lines 315-316
315'); 316
316</script>
316 317 318 319<!-- Font Awesome -->
320<script type="text/javascript" src="https://kit.fontawesome.com/e1e30ecf8a.js" crossorigin="anonymous" defer="defer"></script>
320 321 322 323
323<script>!function(){window.ZipifyPages=window.ZipifyPages||{},window.ZipifyPages.analytics={},window.ZipifyPages.currency="USD",window.ZipifyPages.shopDomain="lukes-lobster-shop.myshopify.com",window.ZipifyPages.moneyFormat="${{amount}}",window.ZipifyPages.shopifyOptionsSelector=false,window.ZipifyPages.unitPriceEnabled=false,window.ZipifyPages.integrations="".split(","),window.ZipifyPages.crmUrl="https://crms.zipify.com",window.ZipifyPages.isPagesEntity=false,window.ZipifyPages.translations={soldOut:"Sold out",unavailable:"Unavailable"},window.ZipifyPages.routes={root:"\/",cart:{index:"\/cart",add:"\/cart\/add",change:"\/cart\/change",clear:"\/cart\/clear",update:"\/cart\/update"}};window.ZipifyPages.eventsSubscriptions=[],window.ZipifyPages.on=function(i,a){window.ZipifyPages.eventsSubscriptions.push([i,a])}}();</script>
323<script>(() => { 324(()=>{class g{constructor(t={}){this.defaultConfig={sectionIds:[],rootMargin:"0px",onSectionViewed:()=>{},onSectionInteracted:()=>{},minViewTime:500,minVisiblePercentage:30,interactiveSelector:'a, button, input, select, textarea, [role="button"], [tabindex]:not([tabindex="-1"])'},this.config={...this.defaultConfig,...t},this.viewedSections=new Set,this.observer=null,this.viewTimers=new Map,this.init()}init(){document.readyState==="loading"?document.addEventListener("DOMContentLoaded",this.setup.bind(this)):this.setup()}setup(){this.setupObserver(),this.setupGlobalClickTracking()}setupObserver(){const t={root:null,rootMargin:this.config.rootMargin,threshold:[0,.1,.2,.3,.4,.5,.6,.7,.8,.9,1]};this.observer=new IntersectionObserver(e=>{e.forEach(i=>{this.calculateVisibility(i)?this.handleSectionVisible(i.target):this.handleSectionHidden(i.target)})},t),this.config.sectionIds.forEach(e=>{const i=document.getElementById(e);i&&this.observer.observe(i)})}calculateVisibility(t){const e=window.innerHeight,i=window.innerWidth,n=e*i,o=t.boundingClientRect,s=Math.max(0,o.top),c=Math.min(e,o.bottom),d=Math.max(0,o.left),a=Math.min(i,o.right),r=Math.max(0,c-s),l=Math.max(0,a-d)*r,m=n>0?l/n*100:0,h=o.width*o.height,p=h>0?l/h*100:0,S=m>=this.config.minVisiblePercentage,b=p>=80;return S||b}isSectionViewed(t){return this.viewedSections.has(Number(t))}setupGlobalClickTracking(){document.addEventListener("click",t=>{const e=this.findParentTrackedSection(t.target);if(e){const i=this.findInteractiveElement(t.target,e.el);i&&(this.isSectionViewed(e.id)||this.trackSectionView(e.id),this.trackSectionInteract(e.id,i,t))}})}findParentTrackedSection(t){let e=t;for(;e&&e!==document.body;){const i=e.id||e.dataset.zpSectionId,n=i?parseInt(i,10):null;if(n&&!isNaN(n)&&this.config.sectionIds.includes(n))return{el:e,id:n};e=e.parentElement}return null}findInteractiveElement(t,e){let i=t;for(;i&&i!==e;){if(i.matches(this.config.interactiveSelector))return i;i=i.parentElement}return null}trackSectionView(t){this.viewedSections.add(Number(t)),this.config.onSectionViewed(t)}trackSectionInteract(t,e,i){this.config.onSectionInteracted(t,e,i)}handleSectionVisible(t){const e=t.id,i=setTimeout(()=>{this.isSectionViewed(e)||this.trackSectionView(e)},this.config.minViewTime);this.viewTimers.set(e,i)}handleSectionHidden(t){const e=t.id;this.viewTimers.has(e)&&(clearTimeout(this.viewTimers.get(e)),this.viewTimers.delete(e))}addSection(t){if(!this.config.sectionIds.includes(t)){this.config.sectionIds.push(t);const e=document.getElementById(t);e&&this.observer&&this.observer.observe(e)}}}class f{constructor(){this.sectionTracker=new g({onSectionViewed:this.onSectionViewed.bind(this),onSectionInteracted:this.onSectionInteracted.bind(this)}),this.runningSplitTests=[]}getCookie(t){const e=document.cookie.match(new RegExp(`(?:^|; )${t}=([^;]*)`));return e?decodeURIComponent(e[1]):null}setCookie(t,e){let i=`${t}=${encodeURIComponent(e)}; path=/; SameSite=Lax`;location.protocol==="https:"&&(i+="; Secure");const n=new Date;n.setTime(n.getTime()+365*24*60*60*1e3),i+=`; expires=${n.toUTCString()}`,document.cookie=i}pickByWeight(t){const e=Object.entries(t).map(([o,s])=>[Number(o),s]),i=e.reduce((o,[,s])=>o+s,0);let n=Math.random()*i;for(const[o,s]of e){if(n<s)return o;n-=s}return e[e.length-1][0]}render(t){const e=t.blocks,i=t.test,n=i.id,o=`zpSectionSplitTest${n}`;let s=Number(this.getCookie(o));e.some(r=>r.id===s)||(s=this.pickByWeight(i.distribution),this.setCookie(o,s));const c=e.find(r=>r.id===s),d=`sectionSplitTest${c.id}`,a=document.querySelector(`template[data-id="${d}"]`);if(!a){console.error(`Template for split test ${c.id} not found`);return}document.currentScript.parentNode.insertBefore(a.content.cloneNode(!0),document.currentScript),this.runningSplitTests.push({id:n,block:c,templateId:d}),this.initTrackingForSection(c.id)}findSplitTestForSection(t){return this.runningSplitTests.find(e=>e.block.id===Number(t))}initTrackingForSection(t){this.sectionTracker.addSection(t)}onSectionViewed(t){this.trackEvent({sectionId:t,event:"zp_section_viewed"})}onSectionInteracted(t){this.trackEvent({sectionId:t,event:"zp_section_clicked"})}trackEvent({event:t,sectionId:e,payload:i={}}){const n=this.findSplitTestForSection(e);n&&window.Shopify.analytics.publish(t,{...i,sectionId:e,splitTestHash:n.id})}}window.ZipifyPages??={};window.ZipifyPages.SectionSplitTest=new f;})(); 325 326})()</script>
326<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
326<meta name="google-site-verification" content="RWz2yjfuodEnf8mpQH6sXKuBDQxQViQJey9IIJJDVNM"> 327<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/36382998667/digital_wallets/dialog"> 328<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
328<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=113016971"></script>
328 329<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
330<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=113016971&shop_id=36382998667" crossorigin="anonymous"></script>
vendor: 1 bytes, line 330
330
331<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":36382998667,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/36382998667","merchantName":" Luke's Lobster","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","discover","elo","jcb"],"total":{"type":"pending","label":" Luke's Lobster","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 331
331
332<script id="shopify-features" type="application/json">{"accessToken":"7831df81aec7ebe10597f4893aa93bd4","betas":["rich-media-storefront-analytics"],"domain":"lukeslobster.com","predictiveSearch":true,"shopId":36382998667,"locale":"en"}</script>
vendor: 1 bytes, line 332
332
333<script>var Shopify = Shopify || {}; 334Shopify.shop = "lukes-lobster-shop.myshopify.com"; 335Shopify.locale = "en"; 336Shopify.currency = {"active":"USD","rate":"1.0"}; 337Shopify.country = "US"; 338Shopify.theme = {"name":"Luke's Lobster - Vont 11\/17","id":120456675467,"schema_name":"Debut","schema_version":"16.5.0","theme_store_id":796,"role":"main"}; 339Shopify.theme.handle = "null"; 340Shopify.theme.style = {"id":null,"handle":null}; 341Shopify.cdnHost = "lukeslobster.com/cdn"; 342Shopify.routes = Shopify.routes || {}; 343Shopify.routes.root = "/"; 344Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 345Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 346Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 347Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 347
347
348<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 348
348
349<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 349
349
350<script> 351 window.ShopifyPay = window.ShopifyPay || {}; 352 window.ShopifyPay.apiHost = "shop.app\/pay"; 353 window.ShopifyPay.redirectState = null; 354</script>
vendor: 1 bytes, line 354
354
355<script> 356 window.Shopify = window.Shopify || {}; 357 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 358 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 359 window.Shopify.SignInWithShop.eligible = true; 360</script>
vendor: 1 bytes, line 360
360
361<script id="shop-js-analytics" type="application/json">{"pageType":"index"}</script>
vendor: 1 bytes, line 361
361
362<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 362
362
363<script type="module"> 364 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 365 366 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 367 368</script>
vendor: 1 bytes, line 368
368
369<script> 370 window.Shopify = window.Shopify || {}; 371 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 372 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"]}; 373</script>
vendor: 1 bytes, line 373
373
374<script>(function() { 375 var isLoaded = false; 376 function asyncLoad() { 377 if (isLoaded) return; 378 isLoaded = true; 379 var urls = ["https:\/\/str.rise-ai.com\/?shop=lukes-lobster-shop.myshopify.com","https:\/\/strn.rise-ai.com\/?shop=lukes-lobster-shop.myshopify.com","\/\/cdn.shopify.com\/proxy\/8bd5b5fcedc201be360d98fff81102cde3d4e65ee873054b22969aee080baf19\/bingshoppingtool-t2app-prod.trafficmanager.net\/uet\/tracking_script?shop=lukes-lobster-shop.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA","https:\/\/contact-forms-s.esc-apps-cdn.com\/production\/js\/client.js?shop=lukes-lobster-shop.myshopify.com","https:\/\/contact-forms-s.esc-apps-cdn.com\/production\/js\/client.js?shop=lukes-lobster-shop.myshopify.com","https:\/\/cdn.cookie.pii.ai\/scripts\/1\/ws\/812a7147-4944-4445-bd50-41fe46f1e944\/domain\/79710111-0ba2-4094-8233-01378cc90697\/shopify-loadscript-79710111-0ba2-4094-8233-01378cc90697.js?shop=lukes-lobster-shop.myshopify.com","https:\/\/static.shareasale.com\/json\/shopify\/shareasale-tracking.js?sasmid=100421\u0026ssmtid=92611\u0026shop=lukes-lobster-shop.myshopify.com","\/\/backinstock.useamp.com\/widget\/23266_1783059479.js?category=bis\u0026v=6\u0026shop=lukes-lobster-shop.myshopify.com"]; 380 for (var i = 0; i < urls.length; i++) { 381 var s = document.createElement('script'); 382 s.type = 'text/javascript'; 383 s.async = true; 384 s.src = urls[i]; 385 var x = document.getElementsByTagName('script')[0]; 386 x.parentNode.insertBefore(s, x); 387 } 388 }; 389 if(window.attachEvent) { 390 window.attachEvent('onload', asyncLoad); 391 } else { 392 window.addEventListener('load', asyncLoad, false); 393 } 394})();</script>
vendor: 1 bytes, line 394
394
395<script id="__st">var __st={"a":36382998667,"offset":-14400,"reqid":"618fb17b-45a8-45fb-8735-f4c48db608b7-1790360832","pageurl":"lukeslobster.com\/?srsltid=AU7gw4U3KRwRADfwlJq9GpnMml2P_DLk6r9nQd5C0VOg8veZhrWCCeBP","u":"d68b0024ae69","p":"home"};</script>
vendor: 1 bytes, line 395
395
396<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 396
396
397<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 397
397
398<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//lukeslobster.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 398
398
399<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 = "//lukeslobster.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>
399<script crossorigin="anonymous" defer="defer" src="//lukeslobster.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 399
399
400<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 400
400
401<script> 402 window.Shopify = window.Shopify || {}; 403 window.Shopify.MCP = window.Shopify.MCP || {}; 404 window.Shopify.MCP.enabled = true; 405 window.Shopify.MCP.shop = "lukes-lobster-shop.myshopify.com"; 406 window.Shopify.MCP.mcpEndpoint = "https:\/\/lukeslobster.com\/api\/mcp"; 407 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"]}}]; 408</script>
vendor: 1 bytes, line 408
408
409<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("\/\/lukeslobster.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 410</script>
vendor: 1 bytes, line 410
410
411<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://lukeslobster.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 412</script>
vendor: 1 bytes, line 412
412
413<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 414 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); 415</script>
vendor: 1 bytes, line 415
415
416<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})}})); 417</script>
417 418<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://lukeslobster.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 419<style id="shopify-accelerated-checkout-cart"> 420 #shopify-buyer-consent { 421 margin-top: 1em; 422 display: inline-block; 423 width: 100%; 424} 425 426#shopify-buyer-consent.hidden { 427 display: none; 428} 429 430#shopify-subscription-policy-button { 431 background: none; 432 border: none; 433 padding: 0; 434 text-decoration: underline; 435 font-size: inherit; 436 cursor: pointer; 437} 438 439#shopify-subscription-policy-button::before { 440 box-shadow: none; 441} 442 443 </style> 444
445<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
445 446 447
447<script> 448 function getCookie(name) { 449 const value = `; ${document.cookie}`; 450 const parts = value.split(`; ${name}=`); 451 if (parts.length === 2) return parts.pop().split(';').shift(); 452 return null; 453 } 454 455 // Helper function to check and apply checkout consent 456 function checkAndApplyCheckoutConsent() { 457 try { 458 // Try getTrackingConsent() first 459 const trackingConsent = window.Shopify.customerPrivacy.getTrackingConsent(); 460 461 // Handle string responses - "no" means explicitly denied, "yes" means explicitly granted 462 if (typeof trackingConsent === 'string') { 463 if (trackingConsent === "no" || trackingConsent === "NO") { 464 return { 465 found: true, 466 consent: { 467 analytics: typeof window.Shopify?.customerPrivacy?.analyticsProcessingAllowed === "function" 468 ? window.Shopify.customerPrivacy.analyticsProcessingAllowed() === true 469 : false, 470 marketing: typeof window.Shopify?.customerPrivacy?.marketingAllowed === "function" 471 ? window.Shopify.customerPrivacy.marketingAllowed() === true 472 : false, 473 preferences: typeof window.Shopify?.customerPrivacy?.preferencesProcessingAllowed === "function" 474 ? window.Shopify.customerPrivacy.preferencesProcessingAllowed() === true 475 : false, 476 sale_of_data: typeof window.Shopify?.customerPrivacy?.marketingAllowed === "function" 477 ? window.Shopify.customerPrivacy.marketingAllowed() === true 478 : false, 479 } 480 }; 481 } else if (trackingConsent === "yes" || trackingConsent === "YES") { 482 // When "yes", we should check if there are specific consent values stored 483 // For now, treat "yes" as all granted, but ideally we'd get the actual values 484 // This might need to be handled via subscribe callback for detailed consent 485 return { 486 found: true, 487 // If consent found means needs to set yes, but should check each category 488 consent: { 489 analytics: typeof window.Shopify?.customerPrivacy?.analyticsProcessingAllowed === "function" 490 ? window.Shopify.customerPrivacy.analyticsProcessingAllowed() === true 491 : false, 492 marketing: typeof window.Shopify?.customerPrivacy?.marketingAllowed === "function" 493 ? window.Shopify.customerPrivacy.marketingAllowed() === true 494 : false, 495 preferences: typeof window.Shopify?.customerPrivacy?.preferencesProcessingAllowed === "function" 496 ? window.Shopify.customerPrivacy.preferencesProcessingAllowed() === true 497 : false, 498 sale_of_data: typeof window.Shopify?.customerPrivacy?.marketingAllowed === "function" 499 ? window.Shopify.customerPrivacy.marketingAllowed() === true 500 : false, 501 } 502 }; 503 } 504 } 505 } catch (e) { 506 console.warn('Error checking getTrackingConsent():', e); 507 } 508 return { found: false, consent: null }; 509 } 510 511 // --- Geo API --- 512 async function getUserLocation() { 513 try { 514 const response = await fetch("https://geo.pii.ai/geo"); 515 const data = await response.json(); 516 return { 517 continent: data.location.continent.code, 518 country: data.location.country.code, 519 region: data.location.region.code, 520 city: data.location.city, 521 gpc: data.gpc 522 }; 523 } catch (error) { 524 console.error("Error getting location from internal API:", error); 525 return null; 526 } 527 } 528 529 // --- Region-based rules --- 530 async function shouldEnableConsentByDefault(location) { 531 if (!location) return false; 532 533 const { country, region, continent, gpc } = location; 534 535 // EU requires explicit consent 536 if (continent === "EU") return false; 537 538 // GPC for US 539 if (gpc && country === "US") return false; 540 541 // Canada - Quebec requires explicit consent 542 if (country === "CA" && region === "CA-QC") return false; 543 544 // US - California & Florida requires explicit consent 545 if (country === "US" && ["US-CA","US-FL"].includes(region)) return false; 546 547 // Default: implicit consent allowed 548 return true; 549 } 550 551 async function applyConsentSettings() { 552 const location = await getUserLocation(); 553 return shouldEnableConsentByDefault(location); 554 } 555 556 557 // Main consent initialization function 558 function initializeConsent() {
559 let checkoutConsentFound = false; 560 let consentInitialized = false; 561 562 // Helper function to apply PieEye cookie logic 563 async function applyPieEyeLogic() { 564 if (consentInitialized) return; // Already initialized 565 consentInitialized = true; 566 567 console.log('Consent - No checkout consent found, checking PieEye cookie'); 568 const pieEyeCookie = getCookie('PieEyeConsent'); 569 570 if (!pieEyeCookie) { 571 console.log('Consent - PieEyeConsent cookie not found, setting initial consent'); 572 const allowedConsent = await applyConsentSettings(); 573 574 if (!allowedConsent) { 575 window.Shopify.customerPrivacy.setTrackingConsent( 576 { 577 analytics: false, 578 marketing: false, 579 preferences: false, 580 sale_of_data: false, 581 }, 582 () => console.log('Default explicit consent set') 583 ); 584 } else { 585 window.Shopify.customerPrivacy.setTrackingConsent( 586 { 587 analytics: true, 588 marketing: true, 589 preferences: true, 590 sale_of_data: true, 591 }, 592 () => console.log('Default Implied consent set') 593 ); 594 } 595 } else { 596 console.log('Consent - PieEyeConsent cookie found, using existing consent settings'); 597 } 598 } 599 600 // First, try to get checkout consent immediately 601 const immediateCheck = checkAndApplyCheckoutConsent(); 602 if (immediateCheck.found) { 603 if (immediateCheck.consent) { 604 // We have the actual consent values, apply them immediately 605 console.log('Consent - Checkout consent found immediately with values, applying it:', immediateCheck.consent); 606 checkoutConsentFound = true; 607 consentInitialized = true; 608 window.Shopify.customerPrivacy.setTrackingConsent(immediateCheck.consent, () => { 609 console.log('Consent - Checkout consent applied successfully'); 610 }); 611 // Map our categories to appropriate cookie categories 612 // Strictly Necessary: always true (Shopify core requirement) 613 // Functionality: preferences 614 // Performance: analytics 615 // Targeting/Advertising: marketing or sale_of_data 616 // Create a cookie with the names of categories that are granted (true) 617 var grantedCategories = []; 618 grantedCategories.push('Strictly Necessary'); 619 if (immediateCheck.consent.analytics === true) grantedCategories.push('Performance'); 620 if (immediateCheck.consent.marketing === true || immediateCheck.consent.sale_of_data === true) grantedCategories.push('Targeting/Advertising'); 621 if (immediateCheck.consent.preferences === true) grantedCategories.push('Functionality'); 622 if (grantedCategories.length > 0) { 623 const domain = window.location.hostname; 624 //document.cookie = `pieeye-checkout-consent=${grantedCategories.join(',')};path=/;max-age=31536000;domain=${domain};SameSite=None;Secure`; 625 //document.cookie = `pieeye-checkout-consent=${grantedCategories.join(',')}; path=/; max-age=31536000;`; 626 } 627 return; // Exit early, skip PieEye cookie logic 628 } else { 629 // Consent exists but we need to wait for subscribe to get the actual values 630 console.log('Consent - waiting for subscribe callback to get values'); 631 checkoutConsentFound = true; // Mark as found so we don't run PieEye logic 632 // Don't set consentInitialized yet - wait for subscribe to provide values 633 } 634 } 635 636 // Subscribe to detect consent from checkout 637 let subscribeFired = false; 638 let pieEyeLogicApplied = false; 639 640 if (typeof window.Shopify.customerPrivacy.subscribe === 'function') { 641 window.Shopify.customerPrivacy.subscribe(function(consent) { 642 console.log('Consent - subscribe callback received:', JSON.stringify(consent, null, 2)); 643 subscribeFired = true; 644 645 // First, try getTrackingConsent() again (it might be available now) 646 const trackingCheck = checkAndApplyCheckoutConsent(); 647 if (trackingCheck.found && trackingCheck.consent && !checkoutConsentFound && !consentInitialized) { 648 console.log('Consent - Checkout consent found via getTrackingConsent() in subscribe callback'); 649 checkoutConsentFound = true; 650 consentInitialized = true; 651 window.Shopify.customerPrivacy.setTrackingConsent(trackingCheck.consent, () => { 652 console.log('Consent - Checkout consent applied successfully from subscribe (getTrackingConsent)'); 653 }); 654 return; 655 } 656 657 // Also try to extract from subscribe callback - check multiple possible formats 658 let visitorConsent = null; 659 660 // Format 1: consent.visitorConsent 661 if (consent && consent.visitorConsent) { 662 visitorConsent = consent.visitorConsent; 663 console.log('Consent - Extracted visitorConsent from subscribe.visitorConsent:', visitorConsent); 664 } 665 // Format 2: consent.current.visitorConsent 666 else if (consent && consent.current && consent.current.visitorConsent) { 667 visitorConsent = consent.current.visitorConsent; 668 console.log('Consent - Extracted visitorConsent from subscribe.current.visitorConsent:', visitorConsent); 669 } 670 // Format 3: consent.value.visitorConsent 671 else if (consent && consent.value && consent.value.visitorConsent) { 672 visitorConsent = consent.value.visitorConsent; 673 console.log('Consent - Extracted visitorConsent from subscribe.value.visitorConsent:', visitorConsent); 674 } 675 // Format 4: consent directly has consent fields (check this last as it's less specific) 676 else if (consent && typeof consent === 'object' && 677 (consent.analytics !== undefined || consent.marketing !== undefined || 678 consent.preferences !== undefined || consent.saleOfData !== undefined || 679 consent.sale_of_data !== undefined)) { 680 visitorConsent = consent; 681 console.log('Consent - Using consent directly from subscribe (has consent fields):', visitorConsent); 682 } 683 684 // Debug: log the full consent structure if we couldn't extract visitorConsent 685 if (!visitorConsent && consent) { 686 console.log('Consent - Could not extract visitorConsent. Full consent object:', consent); 687 console.log('Consent - Consent keys:', Object.keys(consent)); 688 } 689 690 if (visitorConsent) { 691 // Check if this is actual consent (not just empty/undefined values) 692 const hasValidConsent = 693 visitorConsent.analytics !== undefined || 694 visitorConsent.marketing !== undefined || 695 visitorConsent.preferences !== undefined || 696 visitorConsent.saleOfData !== undefined || 697 visitorConsent.sale_of_data !== undefined; 698 699 if (hasValidConsent) { 700 console.log('Consent - Checkout consent detected via subscribe callback:', visitorConsent); 701 702 // Apply checkout consent immediately (highest priority) - even if already initialized 703 const consentToApply = { 704 analytics: visitorConsent.analytics !== undefined ? visitorConsent.analytics : false, 705 marketing: visitorConsent.marketing !== undefined ? visitorConsent.marketing : false, 706 preferences: visitorConsent.preferences !== undefined ? visitorConsent.preferences : false, 707 sale_of_data: (visitorConsent.saleOfData !== undefined ? visitorConsent.saleOfData : 708 visitorConsent.sale_of_data !== undefined ? visitorConsent.sale_of_data : false) 709 }; 710 711 console.log('Consent - Applying checkout consent (overriding any existing):', consentToApply); 712 713 // Mark as found and initialized to prevent PieEye logic 714 checkoutConsentFound = true; 715 consentInitialized = true; 716 717 window.Shopify.customerPrivacy.setTrackingConsent(consentToApply, () => { 718 console.log('Consent - Checkout consent applied successfully from subscribe'); 719 }); 720 return; // Exit early, consent found 721 } else { 722 console.log('Consent - Subscribe callback has visitorConsent but fields are undefined:', visitorConsent); 723 } 724 } else { 725 console.log('Consent - No visitorConsent found in subscribe callback. Consent object structure:', Object.keys(consent || {})); 726 } 727 728 // If subscribe fired but no valid consent found, proceed with PieEye logic (only once) 729 // This handles both cases: no checkout consent detected, or checkout consent detected but no values provided 730 if (!consentInitialized && !pieEyeLogicApplied) { 731 if (checkoutConsentFound) { 732 console.log('Consent - Checkout consent was detected but subscribe did n
732ot provide values. Falling back to PieEye cookie logic.'); 733 checkoutConsentFound = false; // Reset so PieEye can run 734 } else { 735 console.log('Consent - Subscribe fired but no checkout consent found, falling back to PieEye cookie logic'); 736 } 737 pieEyeLogicApplied = true; 738 applyPieEyeLogic(); 739 } 740 }); 741 console.log('Consent - Subscribed to Shopify Customer Privacy API for checkout consent detection'); 742 } else { 743 console.warn('Consent - Subscribe method not available'); 744 } 745 746 // Wait a short time for subscribe to fire, then fallback to PieEye logic if no consent found 747 setTimeout(function() { 748 // If checkout consent was found but not yet initialized, check if subscribe provided values 749 if (checkoutConsentFound && !consentInitialized) { 750 // Try one more time to get consent values 751 const finalCheck = checkAndApplyCheckoutConsent(); 752 if (finalCheck.found && finalCheck.consent) { 753 console.log('Consent - Checkout consent values found in final check, applying it:', finalCheck.consent); 754 consentInitialized = true; 755 window.Shopify.customerPrivacy.setTrackingConsent(finalCheck.consent, () => { 756 console.log('Consent - Checkout consent applied successfully from final check'); 757 }); 758 return; 759 } 760 761 // If subscribe fired but didn't provide values, or subscribe didn't fire, fall back to PieEye 762 if (subscribeFired) { 763 console.log('Consent - Checkout consent was detected but subscribe did not provide values. Falling back to PieEye cookie logic.'); 764 } else { 765 console.log('Consent - Checkout consent was detected but subscribe did not fire. Falling back to PieEye cookie logic.'); 766 } 767 // Reset checkoutConsentFound since we couldn't get actual values, allow PieEye to run 768 checkoutConsentFound = false; 769 // Fall through to run PieEye logic below 770 } 771 772 // If no checkout consent found or we reset it above, proceed with PieEye logic 773 if (!checkoutConsentFound && !consentInitialized && !pieEyeLogicApplied) { 774 // Try one more time to get consent 775 const finalCheck = checkAndApplyCheckoutConsent(); 776 if (finalCheck.found && finalCheck.consent) { 777 console.log('Consent - Checkout consent found in final check, applying it'); 778 checkoutConsentFound = true; 779 consentInitialized = true; 780 window.Shopify.customerPrivacy.setTrackingConsent(finalCheck.consent, () => { 781 console.log('Consent - Checkout consent applied successfully from final check'); 782 }); 783 return; 784 } 785 786 if (subscribeFired) { 787 console.log('Consent - Subscribe fired but no checkout consent detected, falling back to PieEye cookie logic'); 788 } else { 789 console.log('Consent - Subscribe did not fire within timeout, falling back to PieEye cookie logic'); 790 } 791 pieEyeLogicApplied = true; 792 applyPieEyeLogic(); 793 } 794 }, 3000); // Wait 3 seconds for subscribe to fire 795 } 796 797 window.Shopify.loadFeatures( 798 [ 799 { 800 name: 'consent-tracking-api', 801 version: '0.1', 802 }, 803 ], 804 function (error) { 805 if (error) throw error; 806 console.log('Consent - tracking API loaded'); 807 initializeConsent(); 808 } 809 ); 810 window.addEventListener("pieEyeShopifyConsent", function (e) { 811 const existConsentShopify = setInterval(function () { 812 if (window.Shopify.customerPrivacy) { 813 clearInterval(existConsentShopify); 814 window.Shopify.customerPrivacy.setTrackingConsent({ 815 "analytics": e.detail.analytics, 816 "marketing": e.detail.marketing, 817 "preferences": e.detail.preferences, 818 "sale_of_data": e.detail.sale_of_data, 819 }, () => console.log("Consent - consent captured")); 820 } 821 }, 100); 822 }); 823 </script>
823 824 825
826<script>window.BOLD = window.BOLD || {}; 827 window.BOLD.common = window.BOLD.common || {}; 828 window.BOLD.common.Shopify = window.BOLD.common.Shopify || {}; 829 window.BOLD.common.Shopify.shop = { 830 domain: 'lukeslobster.com', 831 permanent_domain: 'lukes-lobster-shop.myshopify.com', 832 url: 'https://lukeslobster.com', 833 secure_url: 'https://lukeslobster.com', 834 money_format: "${{amount}}", 835 currency: "USD" 836 }; 837 window.BOLD.common.Shopify.customer = { 838 id: null, 839 tags: null, 840 }; 841 window.BOLD.common.Shopify.cart = {"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"USD","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0}; 842 window.BOLD.common.template = 'index';window.BOLD.common.Shopify.formatMoney = function(money, format) { 843 function n(t, e) { 844 return "undefined" == typeof t ? e : t 845 } 846 function r(t, e, r, i) { 847 if (e = n(e, 2), 848 r = n(r, ","), 849 i = n(i, "."), 850 isNaN(t) || null == t) 851 return 0; 852 t = (t / 100).toFixed(e); 853 var o = t.split(".") 854 , a = o[0].replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1" + r) 855 , s = o[1] ? i + o[1] : ""; 856 return a + s 857 } 858 "string" == typeof money && (money = money.replace(".", "")); 859 var i = "" 860 , o = /\{\{\s*(\w+)\s*\}\}/ 861 , a = format || window.BOLD.common.Shopify.shop.money_format || window.Shopify.money_format || "$ {{ amount }}"; 862 switch (a.match(o)[1]) { 863 case "amount": 864 i = r(money, 2, ",", "."); 865 break; 866 case "amount_no_decimals": 867 i = r(money, 0, ",", "."); 868 break; 869 case "amount_with_comma_separator": 870 i = r(money, 2, ".", ","); 871 break; 872 case "amount_no_decimals_with_comma_separator": 873 i = r(money, 0, ".", ","); 874 break; 875 case "amount_with_space_separator": 876 i = r(money, 2, " ", ","); 877 break; 878 case "amount_no_decimals_with_space_separator": 879 i = r(money, 0, " ", ","); 880 break; 881 case "amount_with_apostrophe_separator": 882 i = r(money, 2, "'", "."); 883 break; 884 } 885 return a.replace(o, i); 886 }; 887 window.BOLD.common.Shopify.saveProduct = function (handle, product) { 888 if (typeof handle === 'string' && typeof window.BOLD.common.Shopify.products[handle] === 'undefined') { 889 if (typeof product === 'number') { 890 window.BOLD.common.Shopify.handles[product] = handle; 891 product = { id: product }; 892 } 893 window.BOLD.common.Shopify.products[handle] = product; 894 } 895 }; 896 window.BOLD.common.Shopify.saveVariant = function (variant_id, variant) { 897 if (typeof variant_id === 'number' && typeof window.BOLD.common.Shopify.variants[variant_id] === 'undefined') { 898 window.BOLD.common.Shopify.variants[variant_id] = variant; 899 } 900 };window.BOLD.common.Shopify.products = window.BOLD.common.Shopify.products || {}; 901 window.BOLD.common.Shopify.variants = window.BOLD.common.Shopify.variants || {}; 902 window.BOLD.common.Shopify.handles = window.BOLD.common.Shopify.handles || {};window.BOLD.common.Shopify.saveProduct(null, null);window.BOLD.apps_installed = {"Product Bundles":2} || {};window.BOLD.common.Shopify.metafields = window.BOLD.common.Shopify.metafields || {};window.BOLD.common.Shopify.metafields["bold_rp"] = {};window.BOLD.common.Shopify.metafields["bold_csp_defaults"] = {};window.BOLD.common.cacheParams = window.BOLD.common.cacheParams || {}; 903 window.BOLD.common.cacheParams.bundles = 1670522501; 904</script>
904<script src="https://bundles.boldapps.net/js/bundles.js" type="text/javascript"></script>
904 905<link href="//lukeslobster.com/cdn/shop/t/22/assets/bold-bundles.css?v=56303042398192224931677176555" rel="stylesheet" type="text/css" media="all" /> 906 907
908<script>window.BOLD = window.BOLD || {}; 909 window.BOLD.common = window.BOLD.common || {}; 910 window.BOLD.common.Shopify = window.BOLD.common.Shopify || {}; 911 window.BOLD.common.Shopify.shop = { 912 domain: 'lukeslobster.com', 913 permanent_domain: 'lukes-lobster-shop.myshopify.com', 914 url: 'https://lukeslobster.com', 915 secure_url: 'https://lukeslobster.com', 916 money_format: "${{amount}}", 917 currency: "USD" 918 }; 919 window.BOLD.common.Shopify.customer = { 920 id: null, 921 tags: null, 922 }; 923 window.BOLD.common.Shopify.cart = {"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"USD","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0}; 924 window.BOLD.common.template = 'index';window.BOLD.common.Shopify.formatMoney = function(money, format) { 925 function n(t, e) { 926 return "undefined" == typeof t ? e : t 927 } 928 function r(t, e, r, i) { 929 if (e = n(e, 2), 930 r = n(r, ","), 931 i = n(i, "."), 932 isNaN(t) || null == t) 933 return 0; 934 t = (t / 100).toFixed(e); 935 var o = t.split(".") 936 , a = o[0].replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1" + r) 937 , s = o[1] ? i + o[1] : ""; 938 return a + s 939 } 940 "string" == typeof money && (money = money.replace(".", "")); 941 var i = "" 942 , o = /\{\{\s*(\w+)\s*\}\}/ 943 , a = format || window.BOLD.common.Shopify.shop.money_format || window.Shopify.money_format || "$ {{ amount }}"; 944 switch (a.match(o)[1]) { 945 case "amount": 946 i = r(money, 2, ",", "."); 947 break; 948 case "amount_no_decimals": 949 i = r(money, 0, ",", "."); 950 break; 951 case "amount_with_comma_separator": 952 i = r(money, 2, ".", ","); 953 break; 954 case "amount_no_decimals_with_comma_separator": 955 i = r(money, 0, ".", ","); 956 break; 957 case "amount_with_space_separator": 958 i = r(money, 2, " ", ","); 959 break; 960 case "amount_no_decimals_with_space_separator": 961 i = r(money, 0, " ", ","); 962 break; 963 case "amount_with_apostrophe_separator": 964 i = r(money, 2, "'", "."); 965 break; 966 } 967 return a.replace(o, i); 968 }; 969 window.BOLD.common.Shopify.saveProduct = function (handle, product) { 970 if (typeof handle === 'string' && typeof window.BOLD.common.Shopify.products[handle] === 'undefined') { 971 if (typeof product === 'number') { 972 window.BOLD.common.Shopify.handles[product] = handle; 973 product = { id: product }; 974 } 975 window.BOLD.common.Shopify.products[handle] = product; 976 } 977 }; 978 window.BOLD.common.Shopify.saveVariant = function (variant_id, variant) { 979 if (typeof variant_id === 'number' && typeof window.BOLD.common.Shopify.variants[variant_id] === 'undefined') { 980 window.BOLD.common.Shopify.variants[variant_id] = variant; 981 } 982 };window.BOLD.common.Shopify.products = window.BOLD.common.Shopify.products || {}; 983 window.BOLD.common.Shopify.variants = window.BOLD.common.Shopify.variants || {}; 984 window.BOLD.common.Shopify.handles = window.BOLD.common.Shopify.handles || {};window.BOLD.common.Shopify.saveProduct(null, null);window.BOLD.apps_installed = {"Product Bundles":2} || {};window.BOLD.common.Shopify.metafields = window.BOLD.common.Shopify.metafields || {};window.BOLD.common.Shopify.metafields["bold_rp"] = {};window.BOLD.common.Shopify.metafields["bold_csp_defaults"] = {};window.BOLD.common.cacheParams = window.BOLD.common.cacheParams || {}; 985 window.BOLD.common.cacheParams.bundles = 1670522501; 986</script>
986<script src="https://bundles.boldapps.net/js/bundles.js" type="text/javascript"></script>
986 987<link href="//lukeslobster.com/cdn/shop/t/22/assets/bold-bundles.css?v=56303042398192224931677176555" rel="stylesheet" type="text/css" media="all" /> 988<link href="//lukeslobster.com/cdn/shop/t/22/assets/instabadge.css?v=146305666997036385811703262861" rel="stylesheet" type="text/css" media="all" /> 989 990 991 992<div class="al-test" style="display:none"> 993 994</div> 995
996<script type="text/javascript"> 997 998window.instabadge = {} 999window.instabadge.productBadgeMap = { "" : false } 1000window.instabadge.type = "TYPE_COLLECTION" 1001 1002if(typeof jQuery=='undefined') { 1003 var headTag = document.getElementsByTagName("head")[0]; 1004 var jqTag = document.createElement('script'); 1005 jqTag.type = 'text/javascript'; 1006 jqTag.src = 'https://code.jquery.com/jquery-3.2.1.min.js '; 1007 jqTag.onload = function(){ 1008 jQuery.noConflict(); 1009 if (window.setupInstabadge){ 1010 window.setupInstabadge(); 1011 } 1012 }; 1013 headTag.appendChild(jqTag); 1014} 1015 1016</script>
1016 1017 1018 1019
1020<script defer="defer"> 1021 var u = function (t, e) { 1022 e || (e = window.location.href), t = t.replace(/[\[\]]/g, "\\$&"); 1023 var n = new RegExp("[?&]" + t + "(=([^&#]*)|&|#|$)").exec(e); 1024 return n ? n[2] ? decodeURIComponent(n[2].replace(/\+/g, " ")) : "" : null 1025 } 1026 var allHandles = []; 1027 var c = {}; 1028 1029 try { 1030 function cChanges() { 1031 document.querySelectorAll('.product-card,.ProductItem__Wrapper,.grid__item').forEach(function(element) { 1032 var parEle = element.querySelector("a.grid-view-item__link,a.ProductItem__ImageWrapper,a.full-unstyled-link"); 1033 if (parEle) { 1034 var urlParts = parEle.getAttribute("href").split("/"); 1035 var pUrl = urlParts[urlParts.length - 1]; 1036 if (allHandles.indexOf(pUrl) > -1) { 1037 var p = c[pUrl] || null; 1038 var h = u("sHash", window.location.href); 1039 var v = "switch_" + p.exp_id; 1040 ["set_0", "set_1"].includes(h) || (h = window.localStorage.getItem(v), ["set_0", "set_1"].includes(h) || (h = "set_" + (m = Number(p.exp_percent), Math.random() < m ? 1 : 0), window.localStorage.setItem(v, h))) 1041 1042 element.querySelector(".price-item--regular,.ProductItem__Price").childNodes.forEach(function(eleNode) { 1043 if (eleNode.nodeType === 3) { 1044 eleNode.textContent = eleNode.textContent.replace(/From/ig, ''); 1045 let re = new RegExp(`\\b${p["set_0"]}\\b`, 'i'); 1046 eleNode.textContent = eleNode.textContent.replace(re, p[h]); 1047 } 1048 }); 1049 } 1050 } 1051 }); 1052 } 1053 1054 if (document.readyState === 'loading') { 1055 document.addEventListener('DOMContentLoaded', cChanges); 1056 } else { 1057 cChanges(); 1058 } 1059 } catch (t) { 1060 console.log("some error.") 1061 } 1062</script>
1062 1063 1064 1065 1066 1067<!-- google dynamic remarketing tag for theme.liquid --> 1068
1069<script type="text/javascript"> 1070 var google_tag_params = { 1071 ecomm_pagetype: 'home' 1072 }; 1073</script>
1073 1074
1075<script> 1076 gtag('event', 'page_view', {'send_to': 'AW-822214704', 1077 'ecomm_prodid':window.google_tag_params.ecomm_prodid, 1078 'ecomm_pagetype': window.google_tag_params.ecomm_pagetype, 1079 'ecomm_totalvalue':window.google_tag_params.ecomm_totalvalue 1080 }); 1081</script>
1081 1082 1083 1084
1085<script id="sca_fg_cart_ShowGiftAsProductTemplate" type="text/template"> 1086 1087 <div class="item not-sca-qv" id="sca-freegift-{{productID}}"> 1088 <a class="close_box" style="display: none;position: absolute;top:5px;right: 10px;font-size: 22px;font-weight: bold;cursor: pointer;text-decoration:none;color: #aaa;">Ã</a> 1089 <a href="/products/{{productHandle}}" target="_blank"><img style="margin-left: auto; margin-right: auto; width: 50%;" class="lazyOwl" data-src="{{productImageURL}}"></a> 1090 <div class="sca-product-shop"> 1091 <div class="review-summary3"> 1092 <div class="yotpo bottomLine" style="text-align:center" 1093 data-product-id="{{productID}}" 1094 data-product-models="{{productID}}" 1095 data-name="{{productTitle}}" 1096 data-url="/products/{{productHandle}}"> 1097 </div> 1098 </div> 1099 <div class="f-fix"><span class="sca-product-title" style="white-space: nowrap;color:#000;{{showfgTitle}}">{{productTitle}}</span> 1100 <div id="product-variants-{{productID}}"> 1101 <div class="sca-price" id="price-field-{{productID}}"> 1102 <span class="sca-old-price">{{variant_compare_at_price}}</span> 1103 <span class="sca-special-price">{{variant_price}}</span> 1104 </div> 1105 <div id="stay-content-sca-freegift-{{productID}}" class="sca-fg-cart-item"> 1106 <a class="close_box" style="display: none;position: absolute;top:5px;right: 10px;font-size: 22px;font-weight: bold;cursor: pointer;text-decoration:none;color: #aaa;">Ã</a> 1107 <select id="product-select-{{productID}}" name="id" style="display: none"> 1108 {{optionVariantData}} 1109 </select> 1110 </div> 1111 </div> 1112 <button type='button' id="sca-btn-select-{{productID}}" class="sca-button" onclick="onclickSelect_{{productID}}();"><span>{{SelectButton}}</span></button> 1113 <button type='button' id="sca-btn-{{productID}}" class="sca-button" style="display: none"><span>{{AddToCartButton}}</span></button> 1114 </div> 1115 </div> 1116 </div> 1117 1118</script>
vendor: 1 bytes, line 1118
1118
1119<script id = "sca_fg_cart_ShowGiftAsProductScriptTemplate" type="text/template"> 1120 1121 1122 var selectCallback_{{productID}}=function(t,a){if(t?(t.available?(SECOMAPP.jQuery("#sca-btn-{{productID}}").removeClass("disabled").removeAttr("disabled").html("<span>{{AddToCartButton}}</span>").fadeTo(200,1),SECOMAPP.jQuery("#sca-btn-{{productID}}").unbind("click"),SECOMAPP.jQuery("#sca-btn-{{productID}}").click(SECOMAPP.jQuery.proxy(function(){SECOMAPP.addGiftToCart(t.id,1)},t))):SECOMAPP.jQuery("#sca-btn-{{productID}}").html("<span>{{UnavailableButton}}</span>").addClass("disabled").attr("disabled","disabled").fadeTo(200,.5),t.compare_at_price>t.price?SECOMAPP.jQuery("#price-field-{{productID}}").html("<span class='sca-old-price'>"+SECOMAPP.formatMoney(t.compare_at_price)+"</span> <s class='sca-special-price'>"+SECOMAPP.formatMoney(t.price)+"</s>"):SECOMAPP.jQuery("#price-field-{{productID}}").html("<span class='sca-special-price'>"+SECOMAPP.formatMoney(t.price)+"</span>")):SECOMAPP.jQuery("#sca-btn-{{productID}}").html("<span>{{UnavailableButton}}</span>").addClass("disabled").attr("disabled","disabled").fadeTo(200,.5),t&&t.featured_image){var e=SECOMAPP.jQuery("#sca-freegift-{{productID}} img"),_=t.featured_image,c=e[0];Shopify.Image.switchImage(_,c,function(t,a,e){SECOMAPP.jQuery(e).parents("a").attr("href",t),SECOMAPP.jQuery(e).attr("src",t)})}},onclickSelect_{{productID}}=function(t){SECOMAPP.jQuery.getJSON("/products/{{productHandle}}.js",{_:(new Date).getTime()},function(t){SECOMAPP.jQuery(".owl-item #sca-freegift-{{productID}} span.sca-product-title").html(t.title);var e=[];SECOMAPP.jQuery.each(t.options,function(t,a){e[t]=a.name}),t.options=e;for(var a={{variantsGiftList}},_={{mainVariantsList}},c=t.variants.length-1;-1<c;c--)a.indexOf(t.variants[c].id)<0&&_.indexOf(t.variants[c].id)<0&&t.variants.splice(c,1);for(var o=_.length-1;-1<o;o--){var i=a[o],r=_[o],n=-1,s=-1;for(c=t.variants.length-1;-1<c;c--)t.variants[c].id==i?n=c:t.variants[c].id==r&&(s=c);-1<n&&-1<s&n!==s?("undefined"!=typeof SECOMAPP&&void 0!==SECOMAPP.fgsettings&&!0===SECOMAPP.fgsettings.sca_sync_gift&&void 0!==SECOMAPP.fgsettings.sca_fg_gift_variant_quantity_format&&"equal_original_inventory"===SECOMAPP.fgsettings.sca_fg_gift_variant_quantity_format&&(t.variants[n].available=t.variants[s].available,t.variants[n].inventory_management=t.variants[s].inventory_management),t.variants[n].option1=t.variants[s].option1,t.variants[n].options[0].name=t.variants[s].options[0].name,t.variants[n].options[1]&&(t.variants[n].options[1].name=t.variants[s].options[1].name,t.variants[n].option2=t.variants[s].option2),t.variants[n].options[2]&&(t.variants[n].options[2].name=t.variants[s].options[2].name,t.variants[n].option3=t.variants[s].option3),t.variants[n].title=t.variants[s].title,t.variants[n].name=t.variants[s].name,t.variants[n].public_title=t.variants[s].public_title,t.variants.splice(s,1)):(t.variants[s].id=i,t.variants[s].compare_at_price||(t.variants[s].compare_at_price=t.variants[s].price),t.variants[s].price=SECOMAPP.fgdata.giftid_price_mapping[i])}SECOMAPP.jQuery("#sca-btn-select-{{productID}}").hide(),SECOMAPP.jQuery("#product-select-{{productID}}").show(),SECOMAPP.jQuery("#sca-btn-{{productID}}").show(),SECOMAPP.jQuery("#stay-content-sca-freegift-{{productID}} .close_box").show(),SECOMAPP.jQuery("#stay-content-sca-freegift-{{productID}} .close_box").click(function(){SECOMAPP.jQuery("#stay-content-sca-freegift-{{productID}}").hide(),SECOMAPP.jQuery("#sca-btn-{{productID}}").hide(),SECOMAPP.jQuery("#sca-btn-select-{{productID}}").show()}),onclickSelect_{{productID}}=function(){SECOMAPP.jQuery("#stay-content-sca-freegift-{{productID}}").show(),SECOMAPP.jQuery("#sca-btn-{{productID}}").show(),SECOMAPP.jQuery("#sca-btn-select-{{productID}}").hide()},1==t.variants.length?(-1!==t.variants[0].title.indexOf("Default")&&SECOMAPP.jQuery("#sca-freegift-{{productID}} .selector-wrapper").hide(),1==t.variants[0].available&&(SECOMAPP.jQuery("#sca-btn-{{productID}}").show(),SECOMAPP.jQuery("#sca-btn-select-{{productID}}").hide(),SECOMAPP.jQuery("#sca-btn-{{productID}}").removeClass("disabled").removeAttr("disabled").html("<span>{{AddToCartButton}}</span>").fadeTo(200,1),SECOMAPP.jQuery("#sca-btn-{{productID}}").unbind("click"),SECOMAPP.jQuery("#sca-btn-{{productID}}").click(SECOMAPP.jQuery.proxy(function(){SECOMAPP.addGiftToCart(t.variants[0].id,1)},t)))):(new Shopify.OptionSelectors("product-select-{{productID}}",{product:t,onVariantSelected:selectCallback_{{productID}},enableHistoryState:!0}),SECOMAPP.jQuery("#stay-content-sca-freegift-{{productID}}").show(),SECOMAPP.jQuery("#stay-content-sca-freegift-{{productID}}").focus())})};1=={{variantsGiftList}}.length&&onclickSelect_{{productID}}(); 1123 1124</script>
1124 1125
1126<script id="sca_fg_cart_ShowGiftAsVariantTemplate" type="text/template"> 1127 1128 <div class="item not-sca-qv" id="sca-freegift-{{variantID}}"> 1129 <a href="/products/{{productHandle}}?variant={{originalVariantID}}" target="_blank"><img style="margin-left: auto; margin-right: auto; width: 50%;" class="lazyOwl" data-src="{{variantImageURL}}"></a> 1130 <div class="sca-product-shop"> 1131 <div class="review-summary3"> 1132 <div class="yotpo bottomLine" style="text-align:center" 1133 data-product-id="{{productID}}" 1134 data-product-models="{{productID}}" 1135 data-name="{{productTitle}}" 1136 data-url="/products/{{productHandle}}"> 1137 </div> 1138 </div> 1139 <div class="f-fix"> 1140 <span class="sca-product-title" style="white-space: nowrap;color:#000;">{{variantTitle}}</span> 1141 <div class="sca-price"> 1142 <span class="sca-old-price">{{variant_compare_at_price}}</span> 1143 <span class="sca-special-price">{{variant_price}}</span> 1144 </div> 1145 <button type="button" id="sca-btn{{variantID}}" class="sca-button" onclick="SECOMAPP.addGiftToCart({{variantID}},1);"> 1146 <span>{{AddToCartButton}}</span> 1147 </button> 1148 </div> 1149 </div> 1150 </div> 1151 1152</script>
1152 1153
1154<script id="sca_fg_prod_GiftList" type="text/template"> 1155 1156 <a style="text-decoration: none !important" id ="{{giftShowID}}" class="product-image freegif-product-image freegift-info-{{giftShowID}}" 1157 title="{{giftTitle}}" href="/products/{{productsHandle}}"> 1158 <img class="not-sca-qv" src="{{giftImgUrl}}" alt="{{giftTitle}}" /> 1159 </a> 1160 1161</script>
1161 1162
1163<script id="sca_fg_prod_Gift_PopupDetail" type="text/template"> 1164 1165 <div class="sca-fg-item fg-info-{{giftShowID}}" style="display:none;z-index:2147483647;"> 1166 <div class="sca-fg-item-options"> 1167 <div class="sca-fg-item-option-title"> 1168 <em>{{freegiftRuleName}}</em> 1169 </div> 1170 <div class="sca-fg-item-option-ct"> 1171 <!-- <div class="sca-fg-image-item"> 1172 <img src="{{giftImgUrl}}" /> --> 1173 <div class="sca-fg-item-name"> 1174 <a href="#">{{giftTitle}}</a> 1175 </div> 1176 <!-- </div> --> 1177 </div> 1178 </div> 1179 </div> 1180 1181</script>
1181 1182
1183<script id="sca_fg_ajax_GiftListPopup" type="text/template"> 1184 1185 <div id="freegift_popup" class="mfp-hide"> 1186 <div id="sca-fg-owl-carousel"> 1187 <div id="freegift_cart_container" class="sca-fg-cart-container" style="display: none;"> 1188 <div id="freegift_message" class="owl-carousel"></div> 1189 </div> 1190 <div id="sca-fg-slider-cart" style="display: none;"> 1191 <div class="sca-fg-cart-title"> 1192 <strong>{{popupTitle}}</strong> 1193 </div> 1194 <div id="sca_freegift_list" class="owl-carousel"></div> 1195 </div> 1196 </div> 1197 </div> 1198 1199</script>
1199 1200
1201<script id="sca_fg_checkout_confirm_popup" type="text/template"> 1202 1203 <div class='sca-fg-checkout-confirm-popup' style='font-family: "Myriad","Cardo","Big Caslon","Bodoni MT",Georgia,serif; position: relative;background: #FFF;padding: 20px 20px 50px 20px;width: auto;max-width: 500px;margin: 20px auto;'> 1204 <h1 style='font-family: "Oswald","Cardo","Big Caslon","Bodoni MT",Georgia,serif;'>YOU CAN STILL ADD MORE!</h1> 1205 <p>You get 1 free item with every product purchased. It looks like you can still add more free item(s) to your cart. What would you like to do?</p> 1206 <p class='sca-fg-checkout-confirm-buttons' style='float: right;'> 1207 <a class='btn popup-modal-dismiss action_button add_to_cart' href='#' style='width: 200px !important;margin-right: 20px;'>ADD MORE</a> 1208 <a class='btn checkout__button continue-checkout action_button add_to_cart' href='/checkout' style='width: 200px !important;'>CHECKOUT</a> 1209 </p> 1210 </div> 1211 1212</script>
1212 1213 1214 1215 1216<link href="//lukeslobster.com/cdn/shop/t/22/assets/sca.freegift.css?v=75813200356226696181645190572" rel="stylesheet" type="text/css" media="all" />
1217<script src="//lukeslobster.com/cdn/shopifycloud/storefront/assets/themes_support/option_selection-b017cd28.js" type="text/javascript"></script>
vendor: 1 bytes, line 1217
1217
1218<script data-cfasync="false"> 1219 Shopify.money_format = "${{amount}}"; 1220 //enable checking free gifts condition when checkout clicked 1221 if ((typeof SECOMAPP) === 'undefined') { window.SECOMAPP = {}; }; 1222 SECOMAPP.enableOverrideCheckout = true; 1223 // SECOMAPP.preStopAppCallback = function(cart){ 1224 // if(typeof yotpo!=='undefined' && typeof yotpo.initWidgets==='function'){ 1225 // yotpo.initWidgets(); 1226 // } 1227 // } 1228</script>
vendor: 1 bytes, line 1228
1228
1229<script type="text/javascript">(function(){if(typeof SECOMAPP==="undefined"){SECOMAPP={}};if(typeof Shopify==="undefined"){Shopify={}};SECOMAPP.fg_ver=1637346627;SECOMAPP.fg_scriptfile="freegifts_20211029.min.js";SECOMAPP.gifts_list_avai={"39600128295051":true};})();</script>
1229 1230
1231<script data-cfasync="false" type="text/javascript"> 1232 /* Smart Ecommerce App (SEA Inc) 1233 * http://www.secomapp.com 1234 * Do not reuse those source codes if don't have permission of us. 1235 * */ 1236 1237 1238 !function(){Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),"function"!=typeof Object.create&&(Object.create=function(e){function t(){}return t.prototype=e,new t}),Object.keys||(Object.keys=function(e){var t,o=[];for(t in e)Object.prototype.hasOwnProperty.call(e,t)&&o.push(t);return o}),String.prototype.endsWith||Object.defineProperty(String.prototype,"endsWith",{value:function(e,t){var o=this.toString();(void 0===t||t>o.length)&&(t=o.length),t-=e.length;var r=o.indexOf(e,t);return-1!==r&&r===t},writable:!0,enumerable:!0,configurable:!0}),Array.prototype.indexOf||(Array.prototype.indexOf=function(e,t){var o;if(null==this)throw new TypeError('"this" is null or not defined');var r=Object(this),i=r.length>>>0;if(0===i)return-1;var n=+t||0;if(Math.abs(n)===1/0&&(n=0),n>=i)return-1;for(o=Math.max(n>=0?n:i-Math.abs(n),0);o<i;){if(o in r&&r[o]===e)return o;o++}return-1}),Array.prototype.forEach||(Array.prototype.forEach=function(e,t){var o,r;if(null==this)throw new TypeError(" this is null or not defined");var i=Object(this),n=i.length>>>0;if("function"!=typeof e)throw new TypeError(e+" is not a function");for(arguments.length>1&&(o=t),r=0;r<n;){var a;r in i&&(a=i[r],e.call(o,a,r,i)),r++}}),console=console||{},console.log=console.log||function(){},"undefined"==typeof Shopify&&(Shopify={}),"function"!=typeof Shopify.onError&&(Shopify.onError=function(){}),"undefined"==typeof SECOMAPP&&(SECOMAPP={}),SECOMAPP.removeGiftsVariant=function(e){setTimeout(function(){try{e("select option").not(".sca-fg-cart-item select option").filter(function(){var t=e(this).val(),o=e(this).text();-1!==o.indexOf(" - ")&&(o=o.slice(0,o.indexOf(" - ")));var r=[];return-1!==o.indexOf(" / ")&&(r=o.split(" / "),o=r[r.length-1]),!!(void 0!==SECOMAPP.gifts_list_avai&&void 0!==SECOMAPP.gifts_list_avai[t]||o.endsWith("% off)"))&&(e(this).parent("select").find("option").not(".sca-fg-cart-item select option").filter(function(){var r=e(this).val();return e(this).text().endsWith(o)||r==t}).remove(),e(".dropdown *,ul li,label,div").filter(function(){var r=e(this).html(),i=e(this).data("value");return r&&r.endsWith(o)||i==t}).remove(),!0)})}catch(e){console.log(e)}},500)},SECOMAPP.formatMoney=function(e,t){"string"==typeof e&&(e=e.replace(".",""));var o="",r="undefined"!=typeof Shopify&&void 0!==Shopify.money_format?Shopify.money_format:"{{amount}}",i=/\{\{\s*(\w+)\s*\}\}/,n=t||(void 0!==this.fgsettings&&"string"==typeof this.fgsettings.sca_currency_format&&this.fgsettings.sca_currency_format.indexOf("amount")>-1?this.fgsettings.sca_currency_format:null)||r;if(n.indexOf("amount_no_decimals_no_comma_separator")<0&&n.indexOf("amount_no_comma_separator_up_cents")<0&&n.indexOf("amount_up_cents")<0&&"function"==typeof Shopify.formatMoney)return Shopify.formatMoney(e,n);function a(e,t){return void 0===e?t:e}function s(e,t,o,r,i,n){if(t=a(t,2),o=a(o,","),r=a(r,"."),isNaN(e)||null==e)return 0;var s=(e=(e/100).toFixed(t)).split(".");return s[0].replace(/(\d)(?=(\d\d\d)+(?!\d))/g,"$1"+o)+(s[1]?i&&n?i+s[1]+n:r+s[1]:"")}switch(n.match(i)[1]){case"amount":o=s(e,2);break;case"amount_no_decimals":o=s(e,0);break;case"amount_with_comma_separator":o=s(e,2,",",".");break;case"amount_no_decimals_with_comma_separator":o=s(e,0,",",".");break;case"amount_no_decimals_no_comma_separator":o=s(e,0,"","");break;case"amount_up_cents":o=s(e,2,",","","<sup>","</sup>");break;case"amount_no_comma_separator_up_cents":o=s(e,2,"","","<sup>","</sup>")}return n.replace(i,o)},SECOMAPP.setCookie=function(e,t,o,r,i){var n=new Date;n.setTime(n.getTime()+24*o*60*60*1e3+60*r*1e3);var a="expires="+n.toUTCString();document.cookie=e+"="+t+";"+a+(i?";path="+i:";path=/")},SECOMAPP.deleteCookie=function(e,t){document.cookie=e+"=; expires=Thu, 01 Jan 1970 00:00:00 UTC; "+(t?";path="+t:";path=/")},SECOMAPP.getCookie=function(e){for(var t=e+"=",o=document.cookie.split(";"),r=0;r<o.length;r++){for(var i=o[r];" "==i.charAt(0);)i=i.substring(1);if(0==i.indexOf(t))return i.substring(t.length,i.length)}return""},SECOMAPP.getQueryString=function(){for(var e={},t=window.location.search.substring(1).split("&"),o=0;o<t.length;o++){var r=t[o].split("=");if(void 0===e[r[0]])e[r[0]]=decodeURIComponent(r[1]);else if("string"==typeof e[r[0]]){var i=[e[r[0]],decodeURIComponent(r[1])];e[r[0]]=i}else e[r[0]].push(decodeURIComponent(r[1]))}return e},SECOMAPP.freegifts_product_json=function(e){if(Array.isArray||(Array.isArray=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),String.prototype.endsWith||Object.defineProperty(String.prototype,"endsWith",{value:function(e,t){var o=this.toString();(void 0===t||t>o.length)&&(t=o.length),t-=e.length;var r=o.indexOf(e,t);return-1!==r&&r===t}}),e){if(e.options&&Array.isArray(e.options))for(var t=0;t<e.options.length;t++){if(void 0!==e.options[t]&&void 0!==e.options[t].values)if((r=e.options[t]).values&&Array.isArray(r.values))for(var o=0;o<r.values.length;o++)(r.values[o].endsWith("(Freegifts)")||r.values[o].endsWith("% off)"))&&(r.values.splice(o,1),o--)}if(e.options_with_values&&Array.isArray(e.options_with_values))for(t=0;t<e.options_with_values.length;t++){var r;if(void 0!==e.options_with_values[t]&&void 0!==e.options_with_values[t].values)if((r=e.options_with_values[t]).values&&Array.isArray(r.values))for(o=0;o<r.values.length;o++)(r.values[o].title.endsWith("(Freegifts)")||r.values[o].title.endsWith("% off)"))&&(r.values.splice(o,1),o--)}var i=e.price,n=e.price_max,a=e.price_min,s=e.compare_at_price,c=e.compare_at_price_max,f=e.compare_at_price_min;
1238if(e.variants&&Array.isArray(e.variants))for(var p=0;e.variants.length,void 0!==e.variants[p];p++){var l=e.variants[p],u=l.option3?l.option3:l.option2?l.option2:l.option1?l.option1:l.title?l.title:"";"undefined"!=typeof SECOMAPP&&void 0!==SECOMAPP.gifts_list_avai&&void 0!==SECOMAPP.gifts_list_avai[l.id]||u.endsWith("(Freegifts)")||u.endsWith("% off)")?(e.variants.splice(p,1),p-=1):((!n||n>=l.price)&&(n=l.price,i=l.price),(!a||a<=l.price)&&(a=l.price),l.compare_at_price&&((!c||c>=l.compare_at_price)&&(c=l.compare_at_price,s=l.compare_at_price),(!f||f<=l.compare_at_price)&&(f=l.compare_at_price)),void 0!==l.available&&1==l.available&&(e.available=!0))}e.price=i,e.price_max=a==n?null:a,e.price_min=n==a?null:n,e.compare_at_price=s,e.compare_at_price_max=f,e.compare_at_price_min=c,e.price_varies=n<a,e.compare_at_price_varies=c<f}return e},SECOMAPP.fg_codes=[],""!==SECOMAPP.getCookie("sca_fg_codes")&&(SECOMAPP.fg_codes=JSON.parse(SECOMAPP.getCookie("sca_fg_codes")));var e=SECOMAPP.getQueryString();e.freegifts_code&&-1===SECOMAPP.fg_codes.indexOf(e.freegifts_code)&&(void 0!==SECOMAPP.activateOnlyOnePromoCode&&!0===SECOMAPP.activateOnlyOnePromoCode&&(SECOMAPP.fg_codes=[]),SECOMAPP.fg_codes.push(e.freegifts_code),SECOMAPP.setCookie("sca_fg_codes",JSON.stringify(SECOMAPP.fg_codes)))}(); 1239 1240 ;SECOMAPP.customer={};SECOMAPP.customer.orders=[];SECOMAPP.customer.freegifts=[];;SECOMAPP.customer.email=null;SECOMAPP.customer.first_name=null;SECOMAPP.customer.last_name=null;SECOMAPP.customer.tags=null;SECOMAPP.customer.orders_count=null;SECOMAPP.customer.total_spent=null; 1241</script>
1241 1242 1243 1244
1245<script type="text/javascript"> 1246 window.dataLayer = window.dataLayer || []; 1247 1248 window.appStart = function(){ 1249 1250 1251 window.productPageHandle = function(){ 1252 var productName = ""; 1253 var productId = ""; 1254 var productPrice = ""; 1255 var productBrand = ""; 1256 var productCollection = "" 1257 1258 window.dataLayer.push({ 1259 event: 'analyzify_productDetail', 1260 productName: productName, 1261 productId: productId, 1262 productPrice: productPrice, 1263 productBrand: productBrand, 1264 productCategory: productCollection, 1265 }); 1266 }; 1267 1268 1269 } 1270 1271 appStart(); 1272</script>
1272 1273 1274 1275<!-- Start of Judge.me Core --> 1276<link rel="dns-prefetch" href="https://cdn.judge.me/">
1277<script data-cfasync='false' class='jdgm-settings-script'>window.jdgmSettings={"pagination":5,"disable_web_reviews":false,"coupon_receiving_condition":"","coupon_value_type":"percentage","coupon_value_percentage":10,"coupon_value_fixed_amount":0,"coupon_discount_type":"single","coupon_tier_text_enabled":false,"coupon_tier_text_percentage":10,"coupon_tier_text_fixed_amount":0,"coupon_tier_photo_enabled":false,"coupon_tier_photo_percentage":10,"coupon_tier_photo_fixed_amount":0,"coupon_tier_video_enabled":false,"coupon_tier_video_percentage":10,"coupon_tier_video_fixed_amount":0,"enable_coupons":false,"badge_no_review_text":"No reviews","badge_n_reviews_text":"{{ n }} review/reviews","badge_star_color":"#2e475e","hide_badge_preview_if_no_reviews":true,"badge_hide_text":false,"enforce_center_preview_badge":false,"widget_title":"Customer Reviews","widget_open_form_text":"Write a review","widget_close_form_text":"Cancel review","widget_refresh_page_text":"Refresh page","widget_summary_text":"Based on {{ number_of_reviews }} review/reviews","widget_no_review_text":"Be the first to write a review","widget_name_field_text":"Display name","widget_verified_name_field_text":"Verified Name (public)","widget_name_placeholder_text":"Display name","widget_required_field_error_text":"This field is required.","widget_email_field_text":"Email address","widget_verified_email_field_text":"Verified Email (private, can not be edited)","widget_email_placeholder_text":"Your email address","widget_email_field_error_text":"Please enter a valid email address.","widget_rating_field_text":"Rating","widget_review_title_field_text":"Review Title","widget_review_title_placeholder_text":"Give your review a title","widget_review_body_field_text":"Review content","widget_review_body_placeholder_text":"Start writing here...","widget_pictures_field_text":"Picture/Video (optional)","widget_submit_review_text":"Submit Review","widget_submit_verified_review_text":"Submit Verified Review","widget_submit_success_msg_with_auto_publish":"Thank y
1277ou! Please refresh the page in a few moments to see your review. You can remove or edit your review by logging into \u003ca href='https://judge.me/login' target='_blank' rel='nofollow noopener'\u003eJudge.me\u003c/a\u003e","widget_submit_success_msg_no_auto_publish":"Thank you! Your review will be published as soon as it is approved by the shop admin. You can remove or edit your review by logging into \u003ca href='https://judge.me/login' target='_blank' rel='nofollow noopener'\u003eJudge.me\u003c/a\u003e","widget_show_default_reviews_out_of_total_text":"Showing {{ n_reviews_shown }} out of {{ n_reviews }} reviews.","widget_show_all_link_text":"Show all","widget_show_less_link_text":"Show less","widget_author_said_text":"{{ reviewer_name }} said:","widget_days_text":"{{ n }} days ago","widget_weeks_text":"{{ n }} week/weeks ago","widget_months_text":"{{ n }} month/months ago","widget_years_text":"{{ n }} year/years ago","widget_yesterday_text":"Yesterday","widget_today_text":"Today","widget_replied_text":"\u003e\u003e {{ shop_name }} replied:","widget_read_more_text":"Read more","widget_reviewer_name_as_initial":"last_initial","widget_rating_filter_color":"#2e475e","widget_rating_filter_see_all_text":"See all reviews","widget_sorting_most_recent_text":"Most Recent","widget_sorting_highest_rating_text":"Highest Rating","widget_sorting_lowest_rating_text":"Lowest Rating","widget_sorting_with_pictures_text":"Only Pictures","widget_sorting_most_helpful_text":"Most Helpful","widget_open_question_form_text":"Ask a question","widget_reviews_subtab_text":"Reviews","widget_questions_subtab_text":"Questions","widget_question_label_text":"Question","widget_answer_label_text":"Answer","widget_question_placeholder_text":"Write your question here","widget_submit_question_text":"Submit Question","widget_question_submit_success_text":"Thank you for your question! We will notify you once it gets answered.","widget_star_color":"#2e475e","verified_badge_text":"Verified","verified_badge_bg_color":"","verified_badge_text_color":"","verified_badge_placement":"left-of-reviewer-name","widget_review_max_height":7,"widget_hide_border":true,"widget_social_share":false,"widget_thumb":true,"widget_review_location_show":false,"widget_location_format":"country_iso_code","all_reviews_include_out_of_store_products":true,"all_reviews_out_of_store_text":"(out of store)","all_reviews_pagination":100,"all_reviews_product_name_prefix_text":"about","enable_review_pictures":true,"enable_question_anwser":false,"widget_theme":"carousel","review_date_format":"mm/dd/yyyy","default_sort_method":"most-recent","enable_ai_review_visibility":true,"widget_product_reviews_subtab_text":"Product Reviews","widget_shop_reviews_subtab_text":"Shop Reviews","widget_other_products_reviews_text":"Reviews for other products","widget_store_reviews_subtab_text":"Store reviews","widget_product_variant_reference_text":"Review for","widget_no_store_reviews_text":"This store hasn't received any reviews yet","widget_web_restriction_product_reviews_text":"This product hasn't received any reviews yet","widget_no_items_text":"No items found","widget_show_more_text":"Show more","widget_write_a_store_review_text":"Write a Store Review","widget_product_and_store_reviews_text":"Product and store reviews","widget_reviews_in_collection_text":"Reviews in this collection","widget_other_languages_heading":"Reviews in Other Languages","widget_translate_review_text":"Translate review to {{ language }}","widget_translating_review_text":"Translating...","widget_show_original_translation_text":"Show original ({{ language }})","widget_translate_review_failed_text":"Review couldn't be translated.","widget_translate_review_retry_text":"Retry","widget_translate_review_try_again_later_text":"Try again later","show_product_url_for_grouped_product":false,"widget_sorting_pictures_first_text":"Pictures First","show_pictures_on_all_rev_page_mobile":false,"show_pictures_on_all_rev_page_desktop":false,"floating_tab_hide_mobile_install_preference":false,"floating_tab_button_name":"â
Reviews","floating_tab_title":"Let customers speak for us","floating_tab_button_color":"","floating_tab_button_background_color":"","floating_tab_url":"","floating_tab_url_enabled":false,"floating_tab_tab_style":"text","all_reviews_text_badge_text":"Customers rate us {{ shop.metafields.judgeme.all_reviews_rating | round: 1 }}/5 based on {{ shop.metafields.judgeme.all_reviews_count }} reviews.","all_reviews_text_badge_text_branded_style":"{{ shop.metafields.judgeme.all_reviews_rating | round: 1 }} out of 5 stars based on {{ shop.metafields.judgeme.all_reviews_count }} reviews","is_all_reviews_text_badge_a_link":false,"show_stars_for_all_reviews_text_badge":false,"all_reviews_text_badge_url":"","all_reviews_text_style":"text","all_reviews_text_color_style":"judgeme_brand_color","all_reviews_text_color":"#108474","all_reviews_text_show_jm_brand":true,"featured_carousel_show_header":true,"featured_carousel_title":"Who Loves Luke's?","testimonials_carousel_title":"Customers are saying","videos_carousel_title":"Real customer stories","cards_carousel_title":"Customers are saying","featured_carousel_count_text":"from {{ n }} reviews","featured_carousel_add_link_to_all_reviews_page":false,"featured_carousel_url":"","featured_carousel_show_images":true,"featured_carousel_autoslide_interval":5,"featured_carousel_arrows_on_the_sides":false,"featured_carousel_height":300,"featured_carousel_width":80,"featured_carousel_image_size":0,"featured_carousel_image_height":250,"featured_carousel_arrow_color":"#eeeeee","verified_count_badge_style":"vintage","verified_count_badge_orientation":"horizontal","verified_count_badge_color_style":"judgeme_brand_color","verified_count_badge_color":"#108474","is_verified_count_badge_a_link":false,"verified_count_badge_url":"","verified_count_badge_show_jm_brand":true,"widget_rating_preset_default":5,"widget_first_sub_tab":"product-reviews","widget_show_histogram":true,"widget_histogram_use_custom_color":true,"widget_pagination_use_custom_color":false,"widget_star_use_custom_color":true,"widget_verified_badge_use_custom_color":false,"widget_write_review_use_custom_color":false,"picture_reminder_submit_button":"Upload Pictures","enable_review_videos":false,"mute_video_by_default":false,"widget_sorting_videos_first_text":"Videos First","widget_review_pending_text":"Pending","featured_carousel_items_for_large_screen":4,"social_share_options_order":"Facebook,Twitter","remove_microdata_snippet":false,"disable_json_ld":false,"enable_json_ld_products":false,"preview_badge_show_question_text":false,"preview_badge_no_question_text":"No questions","preview_badge_n_question_text":"{{ number_of_questions }} question/questions","qa_badge_show_icon":false,"qa_badge_position":"same-row","remove_judgeme_branding":true,"widget_add_search_bar":false,"widget_search_bar_placeholder":"Search","widget_sorting_verified_only_text":"Verified only","widget_sorting_most_relevant_text":"Most Relevant","featured_carousel_theme":"compact","featured_carousel_show_rating":true,"featured_carousel_show_title":true,"featured_carousel_show_body":true,"featured_carousel_show_date":false,"featured_carousel_show_reviewer":true,"featured_carousel_show_product":false,"featured_carousel_header_background_color":"#108474","featured_carousel_header_text_color":"#ffffff","featured_carousel_name_product_separator":"reviewed","featured_carousel_full_star_background":"#2e465d","featured_carousel_empty_star_background":"#dadada","featured_carousel_vertical_theme_background":"#f9fafb","featured_carousel_verified_badge_enable":false,"featured_carousel_verified_badge_color":"#108474","featured_carousel_border_style":"round","featured_carousel_review_line_length_limit":3,"featured_carousel_more_reviews_button_text":"Read more reviews","featured_carousel_view_product_button_text":"View product","all_reviews_page_load_reviews_on":"scroll","all_reviews_page_load_more_text":"Load More Reviews","disable_fb_tab_reviews":false,"enable_ajax_cdn_cache":false,"widget_public_name_text":"displayed publicly like","default_reviewer_name":"John Smith","default_reviewer_name_has_non_latin":true,"widget_reviewer_anonymous":"Anonymous","medals_widget_title":"Judge.me Review Medals","medals_widget_background_color":"#f9fafb","medals_widget_position":"footer_all_pages","medals_widget_border_color":"#f9fafb","medals_widget_verified_text_position":"left","medals_widget_use_monochromatic_version":false,"medals_widget_elements_color":"#108474","show_reviewer_avatar":true,"widget_invalid_yt_video_url_error_text":"Not a YouTube video URL","widget_max_length_field_error_text":"Please enter no more than {0} characters.","widget_show_country_flag":false,"widget_show_collected_via_shop_app":true,"widget_verified_by_shop_badge_style":"light","widget_verified_by_shop_text":"Verified by Shop","widget_show_photo_gallery":false,"widget_load_with_code_splitting":true,"widget_ugc_install_preference":false,"widget_ugc_title":"Made by us, Shared by you","widget_ugc_subt
1277itle":"Tag us to see your picture featured in our page","widget_ugc_arrows_color":"#ffffff","widget_ugc_primary_button_text":"Buy Now","widget_ugc_primary_button_background_color":"#108474","widget_ugc_primary_button_text_color":"#ffffff","widget_ugc_primary_button_border_width":"0","widget_ugc_primary_button_border_style":"none","widget_ugc_primary_button_border_color":"#108474","widget_ugc_primary_button_border_radius":"25","widget_ugc_secondary_button_text":"Load More","widget_ugc_secondary_button_background_color":"#ffffff","widget_ugc_secondary_button_text_color":"#108474","widget_ugc_secondary_button_border_width":"2","widget_ugc_secondary_button_border_style":"solid","widget_ugc_secondary_button_border_color":"#108474","widget_ugc_secondary_button_border_radius":"25","widget_ugc_reviews_button_text":"View Reviews","widget_ugc_reviews_button_background_color":"#ffffff","widget_ugc_reviews_button_text_color":"#108474","widget_ugc_reviews_button_border_width":"2","widget_ugc_reviews_button_border_style":"solid","widget_ugc_reviews_button_border_color":"#108474","widget_ugc_reviews_button_border_radius":"25","widget_ugc_reviews_button_link_to":"judgeme-reviews-page","widget_ugc_show_post_date":true,"widget_ugc_max_width":"800","widget_rating_metafield_value_type":true,"widget_primary_color":"#2e475e","widget_enable_secondary_color":false,"widget_secondary_color":"#edf5f5","widget_summary_average_rating_text":"{{ average_rating }} out of 5","widget_media_grid_title":"Customer photos \u0026 videos","widget_media_grid_see_more_text":"See more","widget_round_style":false,"widget_show_product_medals":true,"widget_verified_by_judgeme_text":"Verified by Judge.me","widget_show_store_medals":true,"widget_verified_by_judgeme_text_in_store_medals":"Verified by Judge.me","widget_media_field_exceed_quantity_message":"Sorry, we can only accept {{ max_media }} for one review.","widget_media_field_exceed_limit_message":"{{ file_name }} is too large, please select a {{ media_type }} less than {{ size_limit }}MB.","widget_review_submitted_text":"Review Submitted!","widget_question_submitted_text":"Question Submitted!","widget_close_form_text_question":"Cancel","widget_write_your_answer_here_text":"Write your answer here","widget_enabled_branded_link":true,"widget_show_collected_by_judgeme":false,"widget_reviewer_name_color":"","widget_write_review_text_color":"","widget_write_review_bg_color":"","widget_collected_by_judgeme_text":"collected by Judge.me","widget_pagination_type":"standard","widget_load_more_text":"Load More","widget_load_more_color":"#108474","widget_full_review_text":"Full Review","widget_read_more_reviews_text":"Read More Reviews","widget_read_questions_text":"Read Questions","widget_questions_and_answers_text":"Questions \u0026 Answers","widget_verified_by_text":"Verified by","widget_verified_text":"Verified","widget_number_of_reviews_text":"{{ number_of_reviews }} reviews","widget_back_button_text":"Back","widget_next_button_text":"Next","widget_custom_forms_filter_button":"Filters","custom_forms_style":"vertical","widget_show_review_information":false,"how_reviews_are_collected":"How reviews are collected?","widget_show_review_keywords":false,"widget_gdpr_statement":"How we use your data: We'll only contact you about the review you left, and only if necessary. By submitting your review, you agree to Judge.me's \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms\u003c/a\u003e, \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy\u003c/a\u003e and \u003ca href='https://judge.me/content-policy' target='_blank' rel='nofollow noopener'\u003econtent\u003c/a\u003e policies.","widget_multilingual_sorting_enabled":false,"widget_translate_review_content_enabled":false,"widget_translate_review_content_method":"manual","popup_widget_review_selection":"automatically_with_pictures","popup_widget_round_border_style":true,"popup_widget_show_title":true,"popup_widget_show_body":true,"popup_widget_show_reviewer":false,"popup_widget_show_product":true,"popup_widget_show_pictures":true,"popup_widget_use_review_picture":true,"popup_widget_show_on_home_page":true,"popup_widget_show_on_product_page":true,"popup_widget_show_on_collection_page":true,"popup_widget_show_on_cart_page":true,"popup_widget_position":"bottom_left","popup_widget_first_review_delay":5,"popup_widget_duration":5,"popup_widget_interval":5,"popup_widget_review_count":5,"popup_widget_hide_on_mobile":true,"review_snippet_widget_round_border_style":true,"review_snippet_widget_card_color":"#FFFFFF","review_snippet_widget_text_color":"#000000","review_snippet_widget_lighter_text_color":"#7B7B7B","review_snippet_widget_slider_arrows_background_color":"#FFFFFF","review_snippet_widget_slider_arrows_color":"#000000","review_snippet_widget_star_color":"#2e475e","show_product_variant":false,"all_reviews_product_variant_label_text":"Variant: ","widget_show_verified_branding":false,"widget_ai_summary_title":"Customers say","widget_ai_summary_disclaimer":"AI-powered review summary based on recent customer reviews","widget_show_ai_summary":false,"widget_show_ai_summary_bg":false,"write_review_button_visibility":"everyone","store_summary_widget_heading":"Customers rate this store","store_summary_widget_button_text":"View customer reviews","store_summary_widget_button_theme_text":"See AI reviews summary","widget_show_review_title_input":true,"widget_autofill_review_title":true,"redirect_reviewers_invited_via_email":"review_widget","request_store_review_after_product_review":false,"request_review_other_products_in_order":false,"review_form_color_scheme":"default","review_form_corner_style":"square","review_form_star_color":"#2e475e","review_form_text_color":"#333333","review_form_background_color":"#ffffff","review_form_field_background_color":"#fafafa","review_form_button_color":"#2e475e","review_form_button_text_color":"#ffffff","review_form_modal_overlay_color":"#000000","review_form_theme":"multi_step","review_form_location":"in_store_popup","review_form_external_page_background_color":"#C5F7F0","review_content_screen_title_text":"How would you rate this product?","review_content_introduction_text":"We would love it if you would share a bit about your experience.","store_review_form_title_text":"How would you rate this store?","store_review_form_introduction_text":"We would love it if you would share a bit about your experience.","show_review_guidance_text":true,"one_star_review_guidance_text":"Poor","five_star_review_guidance_text":"Great","customer_information_screen_title_text":"About you","customer_information_introduction_text":"Please tell us more about you.","custom_questions_screen_title_text":"Your experience in more detail","custom_questions_introduction_text":"Here are a few questions to help us understand more about your experience.","review_submitted_screen_title_text":"Thanks for your review!","review_submitted_screen_thank_you_text":"We are processing it and it will appear on the store soon.","review_submitted_screen_email_verification_text":"Please confirm your email by clicking the link we just sent you. This helps us keep reviews authentic.","confirm_email_screen_title_text":"Confirm your email","confirm_email_screen_message_text":"To help keep reviews authentic, we'll send you a secure link to continue writing your review. It only takes a moment.","check_email_screen_title_text":"Check your email","check_email_screen_message_text":"We sent you an email to {{ email }}. Click the button on the email to continue.","check_email_screen_resend_message_text":"Email resent!","check_email_resend_hint_text":"Didn't get the email? Check your spam folder or [resend the email].","verification_email_rate_limit_error_text":"You've reached the limit for review attempts on this product. Please check your inbox or try again later.","review_submitted_request_store_review_text":"Would you like to share your experience of shopping with us?","review_submitted_review_other_products_text":"Would you like to review these products?","store_review_screen_title_text":"Would you like to share your experience of shopping with us?","store_review_introduction_text":"We value your feedback and use it to improve. Please share any thoughts or suggestions you have.","reviewer_media_screen_title_picture_text":"Share a picture","reviewer_media_introduction_picture_text":"Upload a photo to support your review.","reviewer_media_screen_title_video_text":"Share a video","reviewer_media_introduction_video_text":"Upload a video to support your review.","reviewer_media_screen_title_picture_or_video_text":"Share a picture or video","reviewer_media_introduction_picture_or_video_text":"Upload a photo or video to support your review.","reviewer_media_
1277youtube_url_text":"Paste your Youtube URL here","advanced_settings_next_step_button_text":"Next","advanced_settings_close_review_button_text":"Close","modal_write_review_flow":false,"write_review_flow_required_text":"Required","write_review_flow_privacy_message_text":"We respect your privacy.","write_review_flow_anonymous_text":"Post review as anonymous","write_review_flow_visibility_text":"This won't be visible to other customers.","write_review_flow_multiple_selection_help_text":"Select as many as you like","write_review_flow_single_selection_help_text":"Select one option","write_review_flow_required_field_error_text":"This field is required","write_review_flow_invalid_email_error_text":"Please enter a valid email address","write_review_flow_max_length_error_text":"Max. {{ max_length }} characters.","write_review_flow_media_upload_text":"\u003cb\u003eClick to upload\u003c/b\u003e or drag and drop","write_review_flow_gdpr_statement":"We'll only contact you about your review if necessary. By submitting your review, you agree to our \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms and conditions\u003c/a\u003e and \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy policy\u003c/a\u003e.","rating_only_reviews_enabled":false,"show_negative_reviews_help_screen":false,"new_review_flow_help_screen_rating_threshold":3,"negative_review_resolution_screen_title_text":"Tell us more","negative_review_resolution_text":"Your experience matters to us. If there were issues with your purchase, we're here to help. Feel free to reach out to us, we'd love the opportunity to make things right.","negative_review_resolution_button_text":"Contact us","negative_review_resolution_proceed_with_review_text":"Leave a review","negative_review_resolution_subject":"Issue with purchase from {{ shop_name }}.{{ order_name }}","coupon_promo_intro_any_review_text":"Write a review and get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_with_photo_text":"Write a review and add a photo or video to get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_with_video_text":"Write a review and add a video to get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_up_to_any_review_text":"Write a review and get a coupon for up to {{ amount }} off your next purchase","coupon_promo_intro_up_to_with_photo_text":"Write a review and add a photo or video to get a coupon for up to {{ amount }} off your next purchase","coupon_promo_intro_external_text":"Write a review and get a reward for your next purchase","coupon_promo_intro_external_with_photo_text":"Write a review and add a photo or video to get a reward for your next purchase","coupon_promo_intro_external_with_video_text":"Write a review and add a video to get a reward for your next purchase","coupon_promo_media_photo_text":"Add a photo or video and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_photo_only_text":"Add a photo and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_video_text":"Add a video and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_external_photo_text":"Add a photo or video and get a reward for your next purchase","coupon_promo_media_external_photo_only_text":"Add a photo and get a reward for your next purchase","coupon_promo_media_external_video_text":"Add a video and get a reward for your next purchase","coupon_promo_success_text":"You've got a coupon for your next purchase at {{ shop_name }}!","coupon_promo_success_subtext":"You'll receive your coupon email within the hour.","preview_badge_collection_page_install_status":false,"widget_review_custom_css":"","preview_badge_custom_css":"","preview_badge_stars_count":"5-stars","featured_carousel_custom_css":"","floating_tab_custom_css":"","all_reviews_widget_custom_css":"","medals_widget_custom_css":"","verified_badge_custom_css":"","all_reviews_text_custom_css":"","transparency_badges_collected_via_store_invite":false,"transparency_badges_from_another_provider":false,"transparency_badges_collected_from_store_visitor":false,"transparency_badges_collected_by_verified_review_provider":true,"transparency_badges_earned_reward":false,"transparency_badges_collected_via_store_invite_text":"Review collected via store invitation","transparency_badges_from_another_provider_text":"Review collected from another provider","transparency_badges_collected_from_store_visitor_text":"Review collected from a store visitor","transparency_badges_written_in_google_text":"Review written in Google","transparency_badges_written_in_etsy_text":"Review written in Etsy","transparency_badges_written_in_shop_app_text":"Review written in Shop App","transparency_badges_earned_reward_text":"Review earned a reward for future purchase","product_review_widget_per_page":3,"widget_other_languages_reviews_per_page":3,"widget_store_review_label_text":"Review about the store","widget_cart_mode_aggregate_heading_text":"Customers rate this store","checkout_comment_extension_title_on_product_page":"Customer Comments","checkout_comment_extension_num_latest_comment_show":5,"checkout_comment_extension_format":"name_and_timestamp","checkout_comment_customer_name":"last_initial","checkout_comment_comment_notification":true,"preview_badge_collection_page_install_preference":false,"preview_badge_home_page_install_preference":false,"preview_badge_product_page_install_preference":true,"review_widget_install_preference":"","review_carousel_install_preference":false,"floating_reviews_tab_install_preference":"none","verified_reviews_count_badge_install_preference":false,"all_reviews_text_install_preference":false,"review_widget_best_location":true,"judgeme_medals_install_preference":false,"review_widget_revamp_enabled":false,"review_widget_qna_enabled":false,"review_widget_header_theme":"minimal","review_widget_widget_title_enabled":true,"review_widget_header_text_size":"medium","review_widget_header_text_weight":"regular","review_widget_average_rating_style":"compact","review_widget_bar_chart_enabled":true,"review_widget_bar_chart_type":"numbers","review_widget_bar_chart_style":"standard","review_widget_expanded_media_gallery_enabled":false,"review_widget_show_review_highlights":false,"review_widget_show_review_keywords_in_gray":false,"review_widget_reviews_section_theme":"standard","review_widget_image_style":"thumbnails","review_widget_review_image_ratio":"square","review_widget_stars_size":"medium","review_widget_verified_badge":"standard_text","review_widget_review_title_text_size":"medium","review_widget_review_text_size":"medium","review_widget_review_text_length":"medium","review_widget_number_of_columns_desktop":3,"review_widget_carousel_transition_speed":5,"review_widget_custom_questions_answers_display":"always","review_widget_card_section_size":"small","review_widget_button_text_color":"#FFFFFF","review_widget_text_color":"#000000","review_widget_lighter_text_color":"#7B7B7B","review_widget_corner_styling":"soft","review_widget_review_word_singular":"review","review_widget_review_word_plural"
1277:"reviews","review_widget_voting_label":"Helpful?","review_widget_shop_reply_label":"Reply from {{ shop_name }}:","review_widget_filters_title":"Filters","review_widget_filter_rating_title":"Rating","review_widget_filter_keyword_title":"Keyword","review_widget_clear_filters_text":"Clear filters","review_widget_expand_more_text":"More","review_widget_review_highlights_title":"Review highlights","qna_widget_question_word_singular":"Question","qna_widget_question_word_plural":"Questions","qna_widget_answer_reply_label":"Answer from {{ answerer_name }}:","qna_content_screen_title_text":"Ask a question about this product","qna_widget_question_required_field_error_text":"Please enter your question.","qna_widget_flow_gdpr_statement":"We'll only contact you about your question if necessary. By submitting your question, you agree to our \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms and conditions\u003c/a\u003e and \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy policy\u003c/a\u003e.","qna_widget_question_submitted_text":"Thanks for your question!","qna_widget_close_form_text_question":"Close","qna_widget_question_submit_success_text":"Weâll notify you by email when your question is answered.","all_reviews_widget_v2025_enabled":false,"all_reviews_widget_v2025_header_theme":"default","all_reviews_widget_v2025_widget_title_enabled":true,"all_reviews_widget_v2025_header_text_size":"medium","all_reviews_widget_v2025_header_text_weight":"regular","all_reviews_widget_v2025_average_rating_style":"compact","all_reviews_widget_v2025_bar_chart_enabled":true,"all_reviews_widget_v2025_bar_chart_type":"numbers","all_reviews_widget_v2025_bar_chart_style":"standard","all_reviews_widget_v2025_expanded_media_gallery_enabled":false,"all_reviews_widget_v2025_show_store_medals":true,"all_reviews_widget_v2025_show_photo_gallery":true,"all_reviews_widget_v2025_show_review_keywords":false,"all_reviews_widget_v2025_show_ai_summary":false,"all_reviews_widget_v2025_show_ai_summary_bg":false,"all_reviews_widget_v2025_show_review_highlights":false,"all_reviews_widget_v2025_show_review_keywords_in_gray":false,"all_reviews_widget_v2025_add_search_bar":false,"all_reviews_widget_v2025_default_sort_method":"most-recent","all_reviews_widget_v2025_reviews_per_page":10,"all_reviews_widget_v2025_reviews_section_theme":"default","all_reviews_widget_v2025_image_style":"thumbnails","all_reviews_widget_v2025_review_image_ratio":"square","all_reviews_widget_v2025_stars_size":"medium","all_reviews_widget_v2025_verified_badge":"standard_text","all_reviews_widget_v2025_review_title_text_size":"medium","all_reviews_widget_v2025_review_text_size":"medium","all_reviews_widget_v2025_review_text_length":"medium","all_reviews_widget_v2025_number_of_columns_desktop":3,"all_reviews_widget_v2025_carousel_transition_speed":5,"all_reviews_widget_v2025_custom_questions_answers_display":"always","all_reviews_widget_v2025_review_dates":false,"all_reviews_widget_v2025_card_section_size":"small","all_reviews_widget_v2025_show_product_variant":false,"all_reviews_widget_v2025_show_reviewer_avatar":true,"all_reviews_widget_v2025_reviewer_name_as_initial":"","all_reviews_widget_v2025_review_location_show":false,"all_reviews_widget_v2025_location_format":"","all_reviews_widget_v2025_show_country_flag":false,"all_reviews_widget_v2025_widget_thumb":false,"all_reviews_widget_v2025_verified_by_shop_badge_style":"light","all_reviews_widget_v2025_social_share":false,"all_reviews_widget_v2025_social_share_options_order":"Facebook,Twitter,LinkedIn,Pinterest","all_reviews_widget_v2025_pagination_type":"standard","all_reviews_widget_v2025_button_text_color":"#FFFFFF","all_reviews_widget_v2025_text_color":"#000000","all_reviews_widget_v2025_lighter_text_color":"#7B7B7B","all_reviews_widget_v2025_corner_styling":"soft","all_reviews_widget_v2025_title":"Customer reviews","all_reviews_widget_v2025_ai_summary_title":"Customers say about this store","all_reviews_widget_v2025_no_review_text":"Be the first to write a review","all_reviews_widget_v2025_review_highlights_title":"Review highlights","reviews_grid_widget_show_sample_reviews":false,"reviews_grid_widget_review_selection":"all","reviews_grid_widget_select_products":[],"reviews_grid_widget_show_media_only":false,"reviews_grid_widget_display_order":"media_first","reviews_grid_widget_card_grouping":"per_media","reviews_grid_widget_columns_desktop":3,"reviews_grid_widget_rows_desktop":3,"reviews_grid_widget_columns_mobile":2,"reviews_grid_widget_rows_mobile":6,"reviews_grid_widget_show_stars":true,"reviews_grid_widget_show_reviewer_name":true,"reviews_grid_widget_show_review_title_on_hover_desktop":true,"reviews_grid_widget_corner_styling":"soft","reviews_grid_widget_card_spacing":"medium","reviews_grid_widget_header_text_color":"#000000","reviews_grid_widget_star_and_reviewer_name_color":"#F9F9F9","reviews_grid_widget_overlay_and_background_color":"#000000","reviews_grid_widget_content_color":"#F9F9F9","reviews_grid_widget_header_text":"From our customers","reviews_grid_widget_show_average_rating":true,"trust_badge_enabled":false,"trust_badge_structure":"outline","trust_badge_color":"black","trust_badge_star":"black","trust_badge_rating_display_default":"show_avg_text","platform":"shopify","branding_url":"https://app.judge.me/reviews/stores/lukeslobster.com","branding_text":"Powered by Judge.me","locale":"en","reply_name":" Luke's Lobster","shop_currency":"USD","widget_version":"3.0","footer":true,"autopublish":false,"review_dates":true,"enable_custom_form":false,"shop_use_review_site":true,"shop_locale":"en","enable_multi_locales_translations":true,"show_review_title_input":true,"autofill_review_title":true,"review_verification_email_status":"never","require_verification_before_submit":false,"sign_in_with_
1277shop_enabled":false,"customer_account_validation_enabled":true,"most_relevant_sort_enabled":false,"coupon_promo_invited_eligible":true,"coupon_promo_web_eligible":false,"uses_coupon_integration":true,"uses_external_coupon":false,"can_be_branded":true,"rtl_stars_enabled_ar":true,"rtl_stars_enabled_he":true,"reply_name_text":" Luke's Lobster"};</script>
1277 <style class='jdgm-settings-style'>.jdgm-xx{left:0}:root{--jdgm-primary-color: #2e475e;--jdgm-secondary-color: rgba(46,71,94,0.1);--jdgm-star-color: #2e475e;--jdgm-write-review-text-color: white;--jdgm-write-review-bg-color: #2e475e;--jdgm-paginate-color: #2e475e;--jdgm-border-radius: 0;--jdgm-reviewer-name-color: #2e475e}.jdgm-histogram__bar-content{background-color:#2e475e}.jdgm-rev[data-verified-buyer=true] .jdgm-rev__icon.jdgm-rev__icon:after,.jdgm-rev__buyer-badge.jdgm-rev__buyer-badge{color:white;background-color:#2e475e}.jdgm-review-widget--small .jdgm-gallery.jdgm-gallery .jdgm-gallery__thumbnail-link:nth-child(8) .jdgm-gallery__thumbnail-wrapper.jdgm-gallery__thumbnail-wrapper:before{content:"See more"}@media only screen and (min-width: 768px){.jdgm-gallery.jdgm-gallery .jdgm-gallery__thumbnail-link:nth-child(8) .jdgm-gallery__thumbnail-wrapper.jdgm-gallery__thumbnail-wrapper:before{content:"See more"}}.jdgm-rev__thumb-btn{color:#2e475e}.jdgm-rev__thumb-btn:hover{opacity:0.8}.jdgm-rev__thumb-btn:not([disabled]):hover,.jdgm-rev__thumb-btn:hover,.jdgm-rev__thumb-btn:active,.jdgm-rev__thumb-btn:visited{color:#2e475e}.jdgm-preview-badge .jdgm-star.jdgm-star{color:#2e475e}.jdgm-prev-badge[data-average-rating='0.00']{display:none !important}.jdgm-widget.jdgm-all-reviews-widget,.jdgm-widget .jdgm-rev-widg{border:none;padding:0}.jdgm-author-fullname{display:none !important}.jdgm-author-all-initials{display:none !important}.jdgm-rev-widg__title{visibility:hidden}.jdgm-rev-widg__summary-text{visibility:hidden}.jdgm-prev-badge__text{visibility:hidden}.jdgm-rev__prod-link-prefix:before{content:'about'}.jdgm-rev__variant-label:before{content:'Variant: '}.jdgm-rev__out-of-store-text:before{content:'(out of store)'}@media only screen and (min-width: 768px){.jdgm-rev__pics .jdgm-rev_all-rev-page-picture-separator,.jdgm-rev__pics .jdgm-rev__product-picture{display:none}}@media only screen and (max-width: 768px){.jdgm-rev__pics .jdgm-rev_all-rev-page-picture-separator,.jdgm-rev__pics .jdgm-rev__product-picture{display:none}}.jdgm-preview-badge[data-template="collection"]{display:none !important}.jdgm-preview-badge[data-template="index"]{display:none !important}.jdgm-verified-count-badget[data-from-snippet="true"]{display:none !important}.jdgm-carousel-wrapper[data-from-snippet="true"]{display:none !important}.jdgm-all-reviews-text[data-from-snippet="true"]{display:none !important}.jdgm-medals-section[data-from-snippet="true"]{display:none !important}.jdgm-ugc-media-wrapper[data-from-snippet="true"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_via_store_invitation"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_from_another_provider"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_from_store_visitor"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_earned_for_future_purchase"]{display:none !important}.jdgm-review-snippet-widget{--jdgm-snippet-card-color: #fff;--jdgm-snippet-text-color: #000;--jdgm-snippet-lighter-text-color: #7B7B7B;--jdgm-snippet-star-color: #2e475e;--jdgm-snippet-border-radius: 8px;--jdgm-snippet-arrows-bg-color: #fff;--jdgm-snippet-arrows-color: #000}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__cards-container .jdgm-rev-snippet-card{border-radius:8px;background:#fff}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__cards-container .jdgm-rev-snippet-card__rev-rating .jdgm-star{color:#2e475e}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__prev-btn,.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__next-btn{border-radius:50%;background:#fff}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__prev-btn>svg,.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__next-btn>svg{fill:#000}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jm-mfp-content,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__icon,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__pic-img,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__reply{border-radius:8px}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev[data-verified-buyer="true"] .jdgm-full-rev__icon::after{border-radius:8px}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-rev__buyer-badge{border-radius:calc( 8px / 2 )}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-full-rev__replier::before{content:' Luke's Lobster'}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-full-rev__product-button{border-radius:calc( 8px * 6 )} 1278</style> <style class='jdgm-settings-style'></style> 1279 1280 1281 1282 1283 <style class='jdgm-miracle-styles'> 1284 @-webkit-keyframes jdgm-spin{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes jdgm-spin{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@font-face{font-family:'JudgemeStar';src:url("data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAAScAA0AAAAABrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEgAAAABoAAAAcbyQ+3kdERUYAAARgAAAAHgAAACAAMwAGT1MvMgAAAZgAAABGAAAAVi+vS9xjbWFwAAAB8AAAAEAAAAFKwBMjvmdhc3AAAARYAAAACAAAAAj//wADZ2x5ZgAAAkAAAAEJAAABdH33LXtoZWFkAAABMAAAAC0AAAA2BroQKWhoZWEAAAFgAAAAHAAAACQD5QHQaG10eAAAAeAAAAAPAAAAFAYAAABsb2NhAAACMAAAAA4AAAAOAO4AeG1heHAAAAF8AAAAHAAAACAASgAvbmFtZQAAA0wAAADeAAABkorWfVZwb3N0AAAELAAAACkAAABEp3ubLXgBY2BkYADhPPP4OfH8Nl8ZuJkYQODS2fRrCPr/aSYGxq1ALgcDWBoAO60LkwAAAHgBY2BkYGDc+v80gx4TAwgASaAICmABAFB+Arl4AWNgZGBgYGPQYWBiAAIwyQgWc2AAAwAHVQB6eAFjYGRiYJzAwMrAwejDmMbAwOAOpb8ySDK0MDAwMbByMsCBAAMCBKS5pjA4PGB4wMR44P8BBj3GrQymQGFGkBwAjtgK
1284/gAAeAFjYoAAEA1jAwAAZAAHAHgB3crBCcAwDEPRZydkih567CDdf4ZskmLwFBV8xBfCaC4BXkOUmx4sU0h2ngNb9V0vQCxaRKIAevT7fGWuBrEAAAAAAAAAAAA0AHgAugAAeAF9z79Kw1AUx/FzTm7un6QmJtwmQ5Bg1abgEGr/BAqlU6Gju+Cgg1MkQ/sA7Vj7BOnmO/gUvo2Lo14NqIO6/IazfD8HEODtmQCfoANwNsyp2/GJt3WKQrd1NLiYYWx2PBqOsmJMEOznPOTzfSCrhAtbbLdmeFLJV9eKd63WLrZcIcuaEVdssWCKM6pLCfTVOYbz/0pNSMSZKLIZpvh78sAUH6PlMrreTCabP9r+Z/puPZ2ur/RqpQHgh+MIegCnXeM4MRAPjYN//5tj4ZtTjkFqEdmeMShlEJ7tVAly2TAkx6R68Fl4E/aVvn8JqHFQ4JS1434gXKcuL31dDhzs3YbsEOAd/IU88gAAAHgBfY4xTgMxEEVfkk0AgRCioKFxQYd2ZRtpixxgRU2RfhU5q5VWseQ4JdfgAJyBlmNwAM7ABRhZQ0ORwp7nr+eZAa54YwYg9zm3ynPOeFRe8MCrciXOh/KSS76UV5L/iDmrLiS5AeU519wrL3jmSbkS5115yR2fyivJv9kx0ZMZ2RLZw27q87iNQi8EBo5FSPIMw3HqBboi5lKTGAGDp8FKXWP+t9TU01Lj5His1Ba6uM9dTEMwvrFmbf5GC/q2drW3ruXUhhsCiQOjznFlCzYhHUZp4xp76vsvQh89CQAAeAFjYGJABowM6IANLMrEyMTIzMjCXpyRWJBqZshWXJJYBKOMAFHFBucAAAAAAAAB//8AAngBY2BkYGDgA2IJBhBgAvKZGViBJAuYxwAABJsAOgAAeAFjYGBgZACCk535hiD60tn0azAaAEqpB6wAAA==") format("woff");font-weight:normal;font-style:normal}.jdgm-star{font-family:'JudgemeStar';display:inline !important;text-decoration:none !important;padding:0 4px 0 0 !important;margin:0 !important;font-weight:bold;opacity:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.jdgm-star:hover{opacity:1}.jdgm-star:last-of-type{padding:0 !important}.jdgm-star.jdgm--on:before{content:"\e000"}.jdgm-star.jdgm--off:before{content:"\e001"}.jdgm-star.jdgm--half:before{content:"\e002"}.jdgm-widget *{margin:0;line-height:1.4;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch}.jdgm-hidden{display:none !important;visibility:hidden !important}.jdgm-temp-hidden{display:none}.jdgm-spinner{width:40px;height:40px;margin:auto;border-radius:50%;border-top:2px solid #eee;border-right:2px solid #eee;border-bottom:2px solid #eee;border-left:2px solid #ccc;-webkit-animation:jdgm-spin 0.8s infinite linear;animation:jdgm-spin 0.8s infinite linear}.jdgm-prev-badge{display:block !important} 1285 1286</style> 1287 1288 1289 1290 1291 1292 1293
1294<script data-cfasync='false' class='jdgm-script'> 1295!function(e){window.jdgm=window.jdgm||{},jdgm.CDN_HOST="https://cdn.judge.me/", 1296jdgm.docReady=function(d){(e.attachEvent?"complete"===e.readyState:"loading"!==e.readyState)? 1297setTimeout(d,0):e.addEventListener("DOMContentLoaded",d)},jdgm.loadCSS=function(d,t,o,s){ 1298!o&&jdgm.loadCSS.requestedUrls.indexOf(d)>=0||(jdgm.loadCSS.requestedUrls.push(d), 1299(s=e.createElement("link")).rel="stylesheet",s.class="jdgm-stylesheet",s.media="nope!", 1300s.href=d,s.onload=function(){this.media="all",t&&setTimeout(t)},e.body.appendChild(s))}, 1301jdgm.loadCSS.requestedUrls=[],jdgm.docReady(function(){(window.jdgmLoadCSS||e.querySelectorAll( 1302".jdgm-widget, .jdgm-all-reviews-page").length>0)&&(jdgmSettings.widget_load_with_code_splitting? 1303parseFloat(jdgmSettings.widget_version)>=3?jdgm.loadCSS(jdgm.CDN_HOST+"widget_v3/base.css"): 1304jdgm.loadCSS(jdgm.CDN_HOST+"widget/base.css"):jdgm.loadCSS(jdgm.CDN_HOST+"shopify_v2.css"))})}(document); 1305</script>
vendor: 1 bytes, line 1305
1305
1306<script async data-cfasync="false" type="text/javascript" src="https://cdn.judge.me/loader.js"></script>
1306 1307 1308<noscript><link rel="stylesheet" type="text/css" media="all" href="https://cdn.judge.me/shopify_v2.css"></noscript> 1309<!-- End of Judge.me Core --> 1310 1311 1312<!-- BEGIN app block: shopify://apps/eg-auto-add-to-cart/blocks/app-embed/0f7d4f74-1e89-4820-aec4-6564d7e535d2 --> 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325
1325<script 1326 async 1327 type="text/javascript" 1328 src="https://cdn.506.io/eg/script.js?shop=lukes-lobster-shop.myshopify.com&v=12" 1329 ></script>
1329 1330 1331 1332 1333 1334 <meta id="easygift-shop" itemid="c2hvcF8kXzE3OTAzNjA4MzI=" content="{"isInstalled":true,"installedOn":"2025-06-25T12:56:54.866Z","appVersion":"3.0","subscriptionName":"Unlimited","cartAnalytics":true,"freeTrialEndsOn":null,"settings":{"reminderBannerStyle":{"position":{"horizontal":"right","vertical":"bottom"},"fontFamily":null,"backgroundColor":"#FFFFFF","borderRadius":null,"padding":null,"headerFontSize":null,"subHeaderFontSize":null,"closingMode":"doNotAutoClose","cssStyles":"","displayAfter":5,"headerText":"","imageUrl":null,"primaryColor":"#000000","reshowBannerAfter":"everyNewSession","selfcloseAfter":5,"showImage":false,"subHeaderText":""},"addedItemIdentifier":"_Gifted","ignoreOtherAppLineItems":null,"customVariantsInfoLifetimeMins":1440,"redirectPath":null,"ignoreNonStandardCartRequests":false,"bannerStyle":{"position":{"horizontal":"right","vertical":"bottom"},"fontFamily":null,"backgroundColor":"#FFFFFF","borderRadius":null,"padding":null,"headerFontSize":null,"subHeaderFontSize":null,"cssStyles":null,"primaryColor":"#000000"},"themePresetId":null,"notificationStyle":{"position":{"horizontal":null,"vertical":null},"fontFamily":null,"backgroundColor":"#FFFFFF","borderRadius":null,"headerFontSize":null,"subHeaderFontSize":null,"padding":null,"cssStyles":null,"duration":null,"hasCustomizations":false,"primaryColor":null},"fetchCartData":false,"useLocalStorage":{"enabled":false,"expiryMinutes":null},"popupStyle":{"buttonTextColor":null,"headerFontFamily":null,"bodyFontFamily":null,"backgroundColor":"#FFFFFF","borderRadius":null,"padding":null,"headerFontSize":null,"subHeaderFontSize":null,"bodyColor":null,"bodyFontSize":null,"closeModalOutsideClick":true,"priceShowZeroDecimals":true,"addButtonText":null,"cssStyles":null,"dismissButtonText":null,"hasCustomizations":false,"imageUrl":null,"outOfStockButtonText":null,"primaryColor":null,"secondaryColor":null,"showProductLink":false,"subscriptionLabel":"Subscription Plan"},"refreshAfterBannerClick":false,"disableReapplyRules":false,"disableReloadOnFailedAddition":false,"autoReloadCartPage":false,"ajaxRedirectPath":null,"allowSimultaneousRequests":false,"applyRulesOnCheckout":false,"enableCartCtrlOverrides":false,"customRedirectFromCart":null,"scriptSettings":{"branding":{"removalRequestSent":null,"show":false},"productPageRedirection":{"enabled":false,"products":[],"redirectionURL":"\/"},"debugging":{"enabled":false,"enabledOn":null,"stringifyObj":false},"reApplyValueBasedRulesInCart":false,"useFinalPriceGetEntireCart":false,"fetchCartDataBeforeRequest":false,"disableRedirectAfterFormSubmit":false,"enableBuyNowInterceptions":false,"useFinalPrice":false,"hideGiftedPropertyText":false,"customCSS":null,"removeProductsAddedFromExpiredRules":true,"decodePayload":false,"delayUpdates":2000,"hideAlertsOnFrontend":false,"fetchProductInfoFromSavedDomain":false,"removeEGPropertyFromSplitActionLineItems":false},"promoCodeMessageStyle":{"message":"Free gift added!"},"accessToEnterprise":false},"translations":null,"defaultLocale":"en","shopDomain":"lukeslobster.com"}"> 1335 1336
1337<script defer> 1338 (async function() { 1339 try { 1340 1341 const blockVersion = "v3" 1342 if (blockVersion != "v3") { 1343 return 1344 } 1345 1346 let metaErrorFlag = false; 1347 if (metaErrorFlag) { 1348 return 1349 } 1350 1351 // Parse metafields as JSON 1352 const metafields = {}; 1353 1354 // Process metafields in JavaScript 1355 let savedRulesArray = []; 1356 for (const [key, value] of Object.entries(metafields)) { 1357 if (value) { 1358 for (const prop in value) { 1359 // avoiding Object.Keys for performance gain -- no need to make an array of keys. 1360 savedRulesArray.push(value); 1361 break; 1362 } 1363 } 1364 } 1365 1366 const metaTag = document.createElement('meta'); 1367 metaTag.id = 'easygift-rules'; 1368 metaTag.content = JSON.stringify(savedRulesArray); 1369 metaTag.setAttribute('itemid', 'cnVsZXNfJF8xNzkwMzYwODMy'); 1370 1371 document.head.appendChild(metaTag); 1372 } catch (err) { 1373 1374 } 1375 })(); 1376</script>
1376 1377 1378 1379
1379<script 1380 type="text/javascript" 1381 defer 1382 > 1383 1384 (function () { 1385 try { 1386 window.EG_INFO = window.EG_INFO || {}; 1387 var shopInfo = {"isInstalled":true,"installedOn":"2025-06-25T12:56:54.866Z","appVersion":"3.0","subscriptionName":"Unlimited","cartAnalytics":true,"freeTrialEndsOn":null,"settings":{"reminderBannerStyle":{"position":{"horizontal":"right","vertical":"bottom"},"fontFamily":null,"backgroundColor":"#FFFFFF","borderRadius":null,"padding":null,"headerFontSize":null,"subHeaderFontSize":null,"closingMode":"doNotAutoClose","cssStyles":"","displayAfter":5,"headerText":"","imageUrl":null,"primaryColor":"#000000","reshowBannerAfter":"everyNewSession","selfcloseAfter":5,"showImage":false,"subHeaderText":""},"addedItemIdentifier":"_Gifted","ignoreOtherAppLineItems":null,"customVariantsInfoLifetimeMins":1440,"redirectPath":null,"ignoreNonStandardCartRequests":false,"bannerStyle":{"position":{"horizontal":"right","vertical":"bottom"},"fontFamily":null,"backgroundColor":"#FFFFFF","borderRadius":null,"padding":null,"headerFontSize":null,"subHeaderFontSize":null,"cssStyles":null,"primaryColor":"#000000"},"themePresetId":null,"notificationStyle":{"position":{"horizontal":null,"vertical":null},"fontFamily":null,"backgroundColor":"#FFFFFF","borderRadius":null,"headerFontSize":null,"subHeaderFontSize":null,"padding":null,"cssStyles":null,"duration":null,"hasCustomizations":false,"primaryColor":null},"fetchCartData":false,"useLocalStorage":{"enabled":false,"expiryMinutes":null},"popupStyle":{"buttonTextColor":null,"headerFontFamily":null,"bodyFontFamily":null,"backgroundColor":"#FFFFFF","borderRadius":null,"padding":null,"headerFontSize":null,"subHeaderFontSize":null,"bodyColor":null,"bodyFontSize":null,"closeModalOutsideClick":true,"priceShowZeroDecimals":true,"addButtonText":null,"cssStyles":null,"dismissButtonText":null,"hasCustomizations":false,"imageUrl":null,"outOfStockButtonText":null,"primaryColor":null,"secondaryColor":null,"showProductLink":false,"subscriptionLabel":"Subscription Plan"},"refreshAfterBannerClick":false,"disableReapplyRules":false,"disableReloadOnFailedAddition":false,"autoReloadCartPage":false,"ajaxRedirectPath":null,"allowSimultaneousRequests":false,"applyRulesOnCheckout":false,"enableCartCtrlOverrides":false,"customRedirectFromCart":null,"scriptSettings":{"branding":{"removalRequestSent":null,"show":false},"productPageRedirection":{"enabled":false,"products":[],"redirectionURL":"\/"},"debugging":{"enabled":false,"enabledOn":null,"stringifyObj":false},"reApplyValueBasedRulesInCart":false,"useFinalPriceGetEntireCart":false,"fetchCartDataBeforeRequest":false,"disableRedirectAfterFormSubmit":false,"enableBuyNowInterceptions":false,"useFinalPrice":false,"hideGiftedPropertyText":false,"customCSS":null,"removeProductsAddedFromExpiredRules":true,"decodePayload":false,"delayUpdates":2000,"hideAlertsOnFrontend":false,"fetchProductInfoFromSavedDomain":false,"removeEGPropertyFromSplitActionLineItems":false},"promoCodeMessageStyle":{"message":"Free gift added!"},"accessToEnterprise":false},"translations":null,"defaultLocale":"en","shopDomain":"lukeslobster.com"}; 1388 var productRedirectionEnabled = shopInfo.settings.scriptSettings.productPageRedirection.enabled; 1389 if (["Unlimited", "Enterprise"].includes(shopInfo.subscriptionName) && productRedirectionEnabled) { 1390 var products = shopInfo.settings.scriptSettings.productPageRedirection.products; 1391 if (products.length > 0) { 1392 var productIds = products.map(function(prod) { 1393 var productGid = prod.id; 1394 var productIdNumber = parseInt(productGid.split('/').pop()); 1395 return productIdNumber; 1396 }); 1397 var productInfo = null; 1398 var isProductInList = productIds.includes(productInfo.id); 1399 if (isProductInList) { 1400 var redirectionURL = shopInfo.settings.scriptSettings.productPageRedirection.redirectionURL; 1401 if (redirectionURL) { 1402 window.location = redirectionURL; 1403 } 1404 } 1405 } 1406 } 1407 1408 1409 } catch(err) { 1410 return 1411 }}
1411)() 1412 </script>
1412 1413 1414 1415 1416<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 --> 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429
1429<script async src="https://static.klaviyo.com/onsite/js/Sa3M6Q/klaviyo.js?company_id=Sa3M6Q"></script>
1429 1430
1430<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>
1430 1431 1432 1433 1434 1435 1436 1437
1437<script> 1438 window.klaviyoReviewsProductDesignMode = false 1439 </script>
1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449<!-- END app block --><!-- BEGIN app block: shopify://apps/delivery-pickup/blocks/odd-block/80605365-b4f4-42ba-9b84-3d39984a49dc --> 1450 1451 1452 1453 � 1454
1454<script> 1455 function _0x2197(_0x2946b1,_0x6c7c4c){var _0x15d7c5=_0x15d7();return _0x2197=function(_0x219790,_0xc28fad){_0x219790=_0x219790-0x11e;var _0x5e1640=_0x15d7c5[_0x219790];return _0x5e1640;},_0x2197(_0x2946b1,_0x6c7c4c);}var _0x50d14b=_0x2197;(function(_0x227c2c,_0x423dfc){var _0x1ec0c9=_0x2197,_0x4f0baa=_0x227c2c();while(!![]){try{var _0x411c1e=parseInt(_0x1ec0c9(0x128))/0x1*(-parseInt(_0x1ec0c9(0x123))/0x2)+-parseInt(_0x1ec0c9(0x12b))/0x3+-parseInt(_0x1ec0c9(0x131))/0x4*(-parseInt(_0x1ec0c9(0x132))/0x5)+parseInt(_0x1ec0c9(0x133))/0x6*(parseInt(_0x1ec0c9(0x130))/0x7)+parseInt(_0x1ec0c9(0x126))/0x8*(-parseInt(_0x1ec0c9(0x12c))/0x9)+parseInt(_0x1ec0c9(0x121))/0xa+-parseInt(_0x1ec0c9(0x11e))/0xb*(-parseInt(_0x1ec0c9(0x135))/0xc);if(_0x411c1e===_0x423dfc)break;else _0x4f0baa['push'](_0x4f0baa['shift']());}catch(_0x405d49){_0x4f0baa['push'](_0x4f0baa['shift']());}}}(_0x15d7,0x9a9d2),window[_0x50d14b(0x12e)]=_0x50d14b(0x127));if(location['href'][_0x50d14b(0x12a)](_0x50d14b(0x136))){var order_id=atob(location[_0x50d14b(0x120)][_0x50d14b(0x129)]('?data=')[0x1])[_0x50d14b(0x129)]('&')[0x0][_0x50d14b(0x129)]('order_id=')[0x1],ty_link=atob(location[_0x50d14b(0x120)][_0x50d14b(0x129)](_0x50d14b(0x12f))[0x1])[_0x50d14b(0x129)]('&')[0x1][_0x50d14b(0x129)](_0x50d14b(0x137))[0x1],exist_id=localStorage[_0x50d14b(0x134)](_0x50d14b(0x122)),orderArray={};exist_id?(!JSON[_0x50d14b(0x124)](exist_id)[order_id]&&(orderArray[order_id]='0'),orderArray={...JSON['parse'](exist_id),...orderArray}):orderArray[order_id]='0',window[_0x50d14b(0x138)][_0x50d14b(0x125)](_0x50d14b(0x122),JSON[_0x50d14b(0x12d)](orderArray)),ty_link!=''&&(window[_0x50d14b(0x11f)]=ty_link);}function _0x15d7(){var _0x478bff=['997208RoDepl','{"0":1}','418478tReEui','split','includes','2243148YpOopi','81UqgdRC','stringify','prevent_checkout','?data=','35vemzzr','120NhMRkl','202715cchOqN','55716JRSdAd','getItem','20389548XjGGUI','data','order_link=','localStorage','11HvWIeX','location','href','7964580uJGPEk','order_id','6wJgwxN','parse','setItem'];_0x15d7=function(){return _0x478bff;};return _0x15d7();} 1456 </script>
1456<!-- When to load our JS in all pages --> 1457
1457<script type="text/javascript" async src="https://odd.identixweb.com/order-delivery-date/front_scripts/static/js/main.js"></script>
1457�<!-- When to load our JS only in cart page but we need to load in customer order detail and account page for reschedule order details --><!-- To load our preview using "run wizard" button that time use this JS --> 1458
1458<script type="text/javascript" async src="https://odd.identixweb.com/order-delivery-date/assets/js/odd_preview.min.js"></script>
1458 1459 1460 <!-- END app block --><!-- BEGIN app block: shopify://apps/c-hub-customer-accounts/blocks/app-embed/0fb3ba0b-4c65-4919-a85a-48bc2d368e9c -->
1460<script>(function () { try { localStorage.removeItem('chInitPageLoad'); } catch (error) {}})();</script>
1460<!-- END app block --><!-- BEGIN app block: shopify://apps/wrapped/blocks/app-embed/1714fc7d-e525-4a14-8c3e-1b6ed95734c5 -->
1460<script type="module" src="https://cdn.shopify.com/storefront/web-components.js"></script>
1460 1461<!-- BEGIN app snippet: app-embed.settings -->
1461<script type="text/javascript"> 1462 window.Wrapped = { ...window.Wrapped }; 1463 window.Wrapped.options = {"order":{"settings":{"optionMode":"advanced","visibilityTag":"wrapped:disabled","giftMessage":true,"giftMessageMaxChars":255,"giftSender":true,"giftReceiver":true,"giftMessageRequired":false,"giftSenderRequired":false,"giftReceiverRequired":false,"giftMessageEmoji":false,"giftSenderEmoji":false,"giftReceiverEmoji":false,"hideWhenRegionUnavailable":false,"hideForB2bCustomers":false,"giftOptionOptional":false,"visibilities":{"exclude":{"match":"all","products":[],"conditions":[{"value":"wrapped:disabled","attribute":"tag"}],"collections":[]},"include":null},"giftOptionLabels":{"primary":"Select a gift option"},"giftCheckboxLabels":{"primary":"ð Add a gift card\/message to this order?"},"giftMessageLabels":{"primary":"Add a personalized gift message:"},"giftMessagePlaceholderLabels":{"primary":"Write your message here..."},"giftSenderLabels":{"primary":"Sender:"},"giftSenderPlaceholderLabels":{"primary":"Sender name"},"giftReceiverLabels":{"primary":"Recipient:"},"giftReceiverPlaceholderLabels":{"primary":"Receiver name"},"saveLabels":{"primary":"Save"},"removeLabels":{"primary":"Remove"},"unavailableLabels":{"primary":"Unavailable"},"regionUnavailableLabels":{"primary":"Gifting not available in your region"},"giftOptionOptionalLabels":{"primary":"(Optional) Add gift option"},"visibilityHelperLabels":{"primary":"Unavailable for one or more items in your cart"},"requiredFieldLabels":{"primary":"Please fill out this field."},"emojiFieldLabels":{"primary":"Emoji characters are not permitted."},"usageLimitReached":false},"datafields":{"checkbox":"Gifting","message":"Gift Message","sender":"Gift Sender","receiver":"Gift Receiver","variant":"Gift Option"},"product":{"handle":"greeting-card","image":"https:\/\/cdn.shopify.com\/s\/files\/1\/0363\/8299\/8667\/products\/Congrats_4f22c431-35ed-4c55-b50e-2718e90ad0d7_600x600.jpg?v=1657562427","priceMode":"order","hiddenInventory":false,"variantPricingPaid":true,"variantPricingFree":false,"bundles":true,"id":6924636586123,"gid":"gid:\/\/shopify\/Product\/6924636586123","variants":[{"availableForSale":true,"title":"Happy Holidays","price":0.0,"id":42895769010315,"imageSrc":"https:\/\/cdn.shopify.com\/s\/files\/1\/0363\/8299\/8667\/files\/HappyHolidays_1_400x400.jpg?v=1732297979"},{"availableForSale":true,"title":"Birthday","price":0.0,"id":40686538719371,"imageSrc":"https:\/\/cdn.shopify.com\/s\/files\/1\/0363\/8299\/8667\/products\/Birthday_400x400.jpg?v=1659372025"},{"availableForSale":true,"title":"Congratulations","price":0.0,"id":40539377369227,"imageSrc":"https:\/\/cdn.shopify.com\/s\/files\/1\/0363\/8299\/8667\/products\/Congrats_4f22c431-35ed-4c55-b50e-2718e90ad0d7_400x400.jpg?v=1657562427"},{"availableForSale":true,"title":"Special Gift","price":0.0,"id":40539377401995,"imageSrc":"https:\/\/cdn.shopify.com\/s\/files\/1\/0363\/8299\/8667\/products\/General_513cf720-7003-47e9-8e93-6bb18cf3a481_400x400.jpg?v=1657562456"},{"availableForSale":true,"title":"Thank you","price":0.0,"id":40539377467531,"imageSrc":"https:\/\/cdn.shopify.com\/s\/files\/1\/0363\/8299\/8667\/products\/ThankYou_4bcaf942-42e3-4390-a27d-ac2dae4b43c8_400x400.jpg?v=1657563481"},{"availableForSale":true,"title":"Thinking of you","price":0.0,"id":40539377500299,"imageSrc":"https:\/\/cdn.shopify.com\/s\/files\/1\/0363\/8299\/8667\/products\/ThinkingofYou_193b457c-df00-4d9d-9f82-2a55bcf713e3_400x400.jpg?v=1657563504"},{"availableForSale":true,"title":"Be My Lobster","price":0.0,"id":40539377434763,"imageSrc":"https:\/\/cdn.shopify.com\/s\/files\/1\/0363\/8299\/8667\/products\/Love_1f17beed-bf9c-43a4-a52f-db7bbb7018b7_400x400.jpg?v=1657562486"}]},"blocks":[{"id":"1f45290f-612c-4dba-9858-2f314895e3d4","blockType":"cart_drawer","modal":true,"pricing":true,"refresh":false,"primaryCheckbox":true,"previewImage":false,"variantAppearance":"images","labels":{"primary":null},"targets":{"120305942667":{"id":"f848e4f4-f013-43f9-8086-dc7278fbe8da","selector":".wrapped-gift-card-container","repositionedByDeveloper":true,"position":"afterbegin","action":null,"actionDeveloper":"custom:event:cart-drawer","actionType":null,"actionTypeDeveloper":"event","formTarget":null},"120361156747":{"id":"c86a95f8-3816-481b-b16d-2828c8640894","selector":".wrapped-gift-card-container","repositionedByDeveloper":true,"position":"afterbegin","action":null,"actionDeveloper":"custom:event:cart-drawer","actionType":"reload","actionTypeDeveloper":"event","formTarget":null},"121304383627":{"id":"13be54dd-16a3-402b-bff6-b9d57ba33310","selector":".wrapped-gift-card-container","repositionedByDeveloper":true,"position":"afterbegin","action":null,"actionDeveloper":"custom:event:cart-drawer","actionType":"reload","actionTypeDeveloper":"event","formTarget":null},"121348030603":{"id":"4fba87c8-d345-4459-a3cc-fcb0177c59a3","selector":".wrapped-gift-card-container","repositionedByDeveloper":true,"position":"afterbegin","action":null,"actionDeveloper":"custom:event:cart-drawer","actionType":"reload","actionTypeDeveloper":"event","formTarget":null},"120667078795":{"id":"602c6cb4-7e30-4510-81a9-425fd7094381","selector":".wrapped-gift-card-container","repositionedByDeveloper":true,"position":"afterbegin","action":null,"actionDeveloper":"custom:event:cart-drawer","actionType":"reload","actionTypeDeveloper":"event","formTarget":null},"120320721035":{"id":"d9279577-f7ba-41aa-b4e5-28b1a9e1bf5a","selector":".wrapped-gift-card-container","repositionedByDeveloper":true,"position":"afterbegin","action":null,"actionDeveloper":"custom:event:cart-drawer","actionType":"reload","actionTypeDeveloper":"event","formTarget":null},"120430690443":{"id":"952ad900-b0fd-408d-b6c4-60e52d6be7d4","selector":".wrapped-gift-card-container","repositionedByDeveloper":true,"position":"afterbegin","action":null,"actionDeveloper":"custom:event:cart-drawer","actionType":"reload","actionTypeDeveloper":"event","formTarget":null},"120426168459":{"id":"e738b396-ad32-40cc-904d-ea5a6bca4ec5","selector":".wrapped-gift-card-container","repositionedByDeveloper":true,"position":"afterbegin","action":null,"actionDeveloper":"custom:event:cart-drawer","actionType":"reload","actionTypeDeveloper":"event","formTarget":null},"98069545099":{"id":"3bb5eee9-f81f-49fa-8ce6-3eefa23f3e6e","selector":".wrapped-gift-card-container","repositionedByDeveloper":true,"position":"afterbegin","action":null,"actionDeveloper":"custom:event:cart-drawer","actionType":"reload","actionTypeDeveloper":"event","formTarget":null},"120554848395":{"id":"3d3b1e02-f8ba-4d7a-8bc8-a22282ef7ba6","selector":".wrapped-gift-card-container","repositionedByDeveloper":true,"position":"afterbegin","action":null,"actionDeveloper":"custom:event:cart-drawer","actionType":"reload","actionTypeDeveloper":"event","formTarget":null},"120179982475":{"id":"77c88fcc-8243-40e5-a7fa-503397bc60e3","selector":".wrapped-gift-card-container","repositionedByDeveloper":true,"position":"afterbegin","action":null,"actionDeveloper":"custom:event:cart-drawer","actionType":"reload","actionTypeDeveloper":"event","formTarget":null},"152728797323":{"id":"b23d17c7-a5c6-4710-8edf-0e386c7cf25a","selector":".wrapped-gift-card-container","repositionedByDeveloper":true,"position":"afterbegin","action":null,"actionDeveloper":"custom:event:cart-drawer","actionType":"reload","actionTypeDeveloper":"event","formTarget":null},"150863609995":{"id":"5ee3b7f2-1dfb-4d47-b3f5-7ee130f693fb","selector":".wrapped-gift-card-container","repositionedByDeveloper":true,"position":"afterbegin","action":null,"actionDeveloper":"custom:event:cart-drawer","actionType":"reload","actionTypeDeveloper":"event","formTarget":null},"134079250571":{"id":"62b57e4b-7d00-4b03-a541-7ce7d3c87d9c","selector":".wrapped-gift-card-container","repositionedByDeveloper":true,"position":"afterbegin","action":null,"actionDeveloper":"custom:event:cart-drawer","actionType":"reload","actionTypeDeveloper":"event","formTarget":null},"120456675467":{"id":"bc36ff24-f269-471a-bcc9-ddcf8a446be3","selector":".wrapped-gift-card-container","repositionedByDeveloper":true,"position":"afterbegin","action":null,"actionDeveloper":"custom:event:cart-drawer","actionType":"reload","actionTypeDeveloper":"event","formTarget":null},"default":{"id":"bc36ff24-f269-471a-bcc9-ddcf8a446be3","selector":".wrapped-gift-card-container","repositionedByDeveloper":true,"position":"afterbegin","action":null,"actionDeveloper":"custom:event:cart-drawer","actionType":"reload","actionTypeDeveloper":"event","formTarget":null}}}]}}; 1464 window.Wrapped.settings = {"activated":true,"debug":false,"scripts":"document.addEventListener('DOMContentLoaded', (event) =\u003e {\n setTimeout(() =\u003e {\n window.Wrapped?.buildExtensions()\n }, 1000)\n})","styles":"wrapped-extension[target-group=\"drawer\"] {\n margin: 1em !important;\n margin-top: 0 !important;\n}\n\nwrapped-extension[target-group=\"drawer\"] [feature=\"variant\"][selector-type=\"images\"] [part=\"container\"] {\n \u0026 fieldset {\n max-height: 250px !important;\n }\n}\n\nwrapped-extension span {\n margin: unset !important;\n}","skipFetchInterceptor":false,"skipXhrInterceptor":false,"moneyFormatMode":"default","token":"51083659bb8e00d1fe207116c3a686d3","usageLimitNoticeKeys":{"importantNotice":"Important Notice","nextSteps":"Next Steps"}}; 1465 window.Wrapped.settings.block = {"extension_background_primary_color":"#ffffff","extension_background_secondary_color":"#ffffff","extension_border_color":"rgba(0,0,0,0)","border_width":3,"border_radius":30,"spacing_scale":"--wrapped-spacing-scale-base","hover_style":"--wrapped-hover-style-light","font_color":"#2d465d","font_secondary_color":"#333333","font_scale":125,"form_element_text_color":"#2d465d","background_color":"#ffffff","border_color":"#2d465d","checkbox_radio_color":"rgba(0,0,0,0)","primary_button_text":"#ffffff","primary_button_surface":"#2d465d","primary_button_border":"rgba(0,0,0,0)","secondary_button_text":"#333333","secondary_button_surface":"#0000000f","secondary_button_border":"rgba(0,0,0,0)","media_fit":"inline","gift_thumbnail_size":140,"gift_thumbnail_position":"--wrapped-thumbnail-position-start"}; 1466 window.Wrapped.settings.market = null; 1467 window.Wrapped.settings.moneyFormat = "${{amount}}"; 1468 window.Wrapped.settings.moneyWithCurrencyFormat = "${{amount}} USD"; 1469 window.Wrapped.settings.shopCurrency = "USD"; 1470 1471 if (window.Wrapped.settings.debug) { 1472 const logStyle = 'background-color:black;color:#ffc863;font-size:12px;font-weight:400;padding:12px;border-radius:10px;' 1473 console.log('%c Gift options by Wrapped | Learn more at https://apps.shopify.com/wrapped', logStyle) 1474 console.debug('[wrapped:booting]', window.Wrapped) 1475 } 1476</script>
1476 1477<!-- END app snippet --><!-- BEGIN app snippet: app-embed.styles --><style type="text/css"> 1478 1479wrapped-extension[hidden], 1480wrapped-gift-block[hidden] { 1481 display: none !important; 1482} 1483 1484wrapped-extension:empty:not([hidden]) { 1485 display: flex !important; 1486} 1487wrapped-gift-block:empty:not([hidden]) { 1488 display: block !important; 1489} 1490</style> 1491<!-- END app snippet --><!-- BEGIN app snippet: app-embed.shadow --><template id="wrapped-shadow-styles"> 1492:host { 1493 /* breakpoints: not-implemented / reference only */ 1494 /* --shadow-breakpoint-xs: 320px; */ 1495 /* --shadow-breakpoint-sm: 490px; */ 1496 /* --shadow-breakpoint-md: 768px; */ 1497 /* --shadow-breakpoint-lg: 1040px; */ 1498 /* --shadow-breakpoint-xl: 1440px; */ 1499 1500 1501 --shadow-thumbnail-position-start: 1502 "media gift-dialog-header" 1503 "media content" 1504 "media gift-block-actions"; 1505 --shadow-thumbnail-position-end: 1506 "gift-dialog-header media" 1507 "content media" 1508 "gift-block-actions media"; 1509 1510 /* border radius */ 1511 --shadow-border-radius-xs: calc(var(--shadow-border-radius-scale, 65) / 100 * 1rem); 1512 --shadow-border-radius-sm: calc(var(--shadow-border-radius-scale, 65) / 100 * 1.5rem); 1513 --shadow-border-radius-base: calc(var(--shadow-border-radius-scale, 65) / 100 * 2.5rem); 1514 1515 --shadow-outline-width: calc(var(--shadow-border-width) + 0.5px); 1516 1517 /* buttons */ 1518 1519 --shadow-hover-style-light: #ffffff; 1520 --shadow-hover-style-dark: #000000; 1521 1522 --shadow-primary-button-surface--active: color-mix(in srgb, var(--shadow-primary-button-surface), var(--shadow-hover-style) 20%); 1523 --shadow-primary-button-surface--hover: color-mix(in srgb, var(--shadow-primary-button-surface), var(--shadow-hover-style) 16%); 1524 1525 --shadow-primary-button-text-color--active: color-mix(in srgb, var(--shadow-primary-button-text-color), var(--shadow-hover-style) 20%); 1526 --shadow-primary-button-text-color--hover: color-mix(in srgb, var(--shadow-primary-button-text-color), var(--shadow-hover-style) 16%); 1527 1528 --shadow-secondary-button-surface--active: color-mix(in srgb, var(--shadow-secondary-button-surface), var(--shadow-hover-style) 20%); 1529 --shadow-secondary-button-surface--hover: color-mix(in srgb, var(--shadow-secondary-button-surface), var(--shadow-hover-style) 16%); 1530 1531 --shadow-secondary-button-text-color--active: color-mix(in srgb, var(--shadow-secondary-button-text-color), var(--shadow-hover-style) 20%); 1532 --shadow-secondary-button-text-color--hover: color-mix(in srgb, var(--shadow-secondary-button-text-color), var(--shadow-hover-style) 16%); 1533 1534 /* do not change the root text size */ 1535 --shadow-font-size: 16px; 1536 1537 /* text and fonts */ 1538 --shadow-font-size-sm: clamp(12px, calc(14px * var(--shadow-font-scale)), 16px); 1539 --shadow-font-size-base: clamp(12px, calc(16px * var(--shadow-font-scale)), 20px); 1540 --shadow-font-size-lg: clamp(16px, calc(24px * var(--shadow-font-scale)), 28px); 1541 --shadow-font-weight-md: 500; 1542 --shadow-font-weight-lg: 600; 1543 --shadow-line-height-base: 1.5em; 1544 1545 /* transitions */ 1546 --shadow-transition-duration: 0.1s; 1547 --shadow-spinner-duration: 0.7s; 1548 1549 /* disabled */ 1550 --shadow-disabled-opacity-sm: 0.16; 1551 --shadow-disabled-opacity: 0.32; 1552 --shadow-disabled-opacity-md: 0.4; 1553 --shadow-disabled-opacity-lg: 0.64; 1554 1555 /* precalculated percentages for color-mix */ 1556 --shadow-disabled-opacity-percent: 32%; 1557 --shadow-disabled-opacity-sm-percent: 16%; 1558 --shadow-disabled-opacity-md-percent: 40%; 1559 --shadow-disabled-opacity-lg-percent: 64%; 1560 --shadow-disabled-cursor: not-allowed; 1561 1562 /* form elements */ 1563 --shadow-form-element-surface--disabled: color-mix(in srgb, var(--shadow-form-element-surface) var(--shadow-disabled-opacity-percent), var(--shadow-secondary-text-color) 8%); 1564 1565 --shadow-form-element-border-color--active: color-mix(in srgb, var(--shadow-form-element-border-color), white 83%); 1566 --shadow-form-element-border-color--disabled: color-mix(in srgb, var(--shadow-form-element-border-color) var(--shadow-disabled-opacity-percent), var(--shadow-secondary-text-color) 8%); 1567 1568 --shadow-form-element-text-color--disabled: color-mix(in srgb, var(--shadow-form-element-text-color), var(--shadow-secondary-text-color) 8%); 1569
1570 --shadow-form-element-placeholder-text-color: color-mix(in srgb, var(--shadow-form-element-text-color) var(--shadow-disabled-opacity-percent), transparent); 1571 --shadow-form-element-placeholder-text-color--disabled: color-mix(in srgb, var(--shadow-form-element-text-color) var(--shadow-disabled-opacity-percent), var(--shadow-secondary-text-color) 8%); 1572 1573 --shadow-form-element-selection-color--active: color-mix(in srgb, var(--shadow-form-element-selection-color), var(--shadow-hover-style) 40%); 1574 --shadow-form-element-selection-color--hover: color-mix(in srgb, var(--shadow-form-element-selection-color), var(--shadow-hover-style) 32%); 1575 1576 /* primary colors */ 1577 --shadow-primary-text-color--hover: color-mix(in srgb, var(--shadow-primary-text-color), var(--shadow-hover-style) 32%); 1578 1579 /* secondary colors */ 1580 --shadow-secondary-text-color--disabled: color-mix(in srgb, var(--shadow-secondary-text-color) var(--shadow-disabled-opacity-lg-percent), var(--shadow-secondary-text-color) 8%); 1581 1582 /* spacing */ 1583 1584 --shadow-spacing-scale-base: 1; 1585 --shadow-spacing-scale-less: 0.75; 1586 --shadow-spacing-scale-more: 1.166; 1587 1588 --shadow-spacing-fixed: 4px; 1589 --shadow-spacing-base: clamp(12px, calc(16px * var(--shadow-spacing-scale)), 24px); 1590 --shadow-spacing-lg: clamp(16px, calc(24px * var(--shadow-spacing-scale)), 28px); 1591 --shadow-spacing-sm: clamp(8px, calc(12px * var(--shadow-spacing-scale)), 14px); 1592 --shadow-spacing-xs: clamp(6px, calc(8px * var(--shadow-spacing-scale)), 10px); 1593 1594 /* inline block */ 1595 --shadow-feature-max-height: 500px; 1596 --shadow-textarea-min-height: 80px; 1597 --shadow-block-margin-block-start: calc(1em * var(--shadow-spacing-scale)); 1598 --shadow-block-margin-block-end: calc(2em * var(--shadow-spacing-scale)); 1599 1600 /* shadows */ 1601 --shadow-shadow-blur: 1.5rem; 1602 --shadow-shadow-color: rgba(0, 0, 0, 0.25); 1603 --shadow-shadow-offset: 0.75rem; 1604 1605 /* the default look: what a shop without a presets entry paints; a saved entry overrides these per option type below */ 1606 --shadow-font-family: inherit; 1607 --shadow-header-font-family: inherit; 1608 --shadow-font-weight-base: 400; 1609 --shadow-letter-spacing: normal; 1610 --shadow-button-text-transform: none; 1611 --shadow-button-letter-spacing: normal; 1612 --shadow-button-font-style: normal; 1613 --shadow-launcher-button-font-weight: 400; 1614 --shadow-launcher-button-max-width: 500px; 1615 --shadow-launcher-button-alignment: center; 1616 --shadow-launcher-button-content-justify-content: space-between; 1617 --shadow-launcher-button-content-flex-direction: row-reverse; 1618 --shadow-grid-template-areas: var(--shadow-thumbnail-position-start); 1619 --shadow-border-radius-scale: 60; 1620 --shadow-block-border-surface: #00000000; 1621 --shadow-border-width: 1px; 1622 --shadow-hover-style: var(--shadow-hover-style-light, --shadow-hover-style-light); 1623 --shadow-launcher-button-surface: #000000; 1624 --shadow-launcher-button-text-color: #ffffff; 1625 --shadow-launcher-button-border-surface: #00000000; 1626 --shadow-primary-button-surface: #000000; 1627 --shadow-primary-button-text-color: #ffffff; 1628 --shadow-primary-button-border-surface: #00000000; 1629 --shadow-primary-button-border-surface--active: transparent; 1630 --shadow-primary-button-border-surface--hover: transparent; 1631 --shadow-secondary-button-surface: #0000000f; 1632 --shadow-secondary-button-text-color: #333333; 1633 --shadow-secondary-button-border-surface: #00000000; 1634 --shadow-secondary-button-border-surface--active: transparent; 1635 --shadow-secondary-button-border-surface--hover: transparent; 1636 --shadow-font-scale: calc(100 / 100); 1637 --shadow-form-element-surface: #ffffff; 1638 --shadow-form-element-border-color: #0000000f; 1639 --shadow-form-element-text-color: #333333; 1640 --shadow-form-element-selection-color: #000000; 1641 --shadow-selection-accent-color: var(--shadow-form-element-selection-color); 1642 --shadow-selection-checked-surface: var(--shadow-form-element-selection-color); 1643 --shadow-selection-swatch-color: var(--shadow-form-element-selection-color); 1644 --shadow-primary-surface: #ffffff; 1645 --shadow-primary-text-color: #000000; 1646 --shadow-secondary-surface: #f3f3f3; 1647 --shadow-secondary-text-color: #333333; 1648 --shadow-spacing-scale: var(--shadow-spacing-scale-base, 1); 1649 --shadow-gift-thumbnail-size: 60px; 1650 --shadow-thumbnail-size: clamp(40px, var(--shadow-gift-thumbnail-size), 200px
1650); 1651 --shadow-thumbnail-flex-direction: row; 1652 --shadow-thumbnail-order: -1; 1653 --shadow-thumbnail-margin-left: 0; 1654 --shadow-thumbnail-margin-right: 0.6em; 1655 1656 /* default styles */ 1657 all: revert; 1658 box-sizing: border-box; 1659 cursor: default; 1660 display: block; 1661 font-family: var(--shadow-font-family); 1662 font-size: var(--shadow-font-size); 1663 line-height: var(--shadow-line-height-base); 1664 letter-spacing: var(--shadow-letter-spacing); 1665 margin-block-start: var(--shadow-block-margin-start, var(--shadow-spacing-xs)) !important; 1666 margin-block-end: var(--shadow-block-margin-end, var(--shadow-spacing-xs)) !important; 1667 text-align: start; 1668 width: -webkit-fill-available; 1669 white-space: normal; 1670} 1671 1672 1673 1674:host([option-type="product"]) { 1675 --shadow-font-family: inherit; 1676 --shadow-header-font-family: inherit; 1677 --shadow-font-weight-base: 400; 1678 --shadow-letter-spacing: normal; 1679 --shadow-button-text-transform: none; 1680 --shadow-button-letter-spacing: normal; 1681 --shadow-button-font-style: normal; 1682 --shadow-launcher-button-font-weight: 400; 1683 --shadow-launcher-button-max-width: 500px; 1684 --shadow-launcher-button-alignment: center; 1685 --shadow-launcher-button-content-justify-content: space-between; 1686 --shadow-launcher-button-content-flex-direction: row-reverse; 1687 --shadow-grid-template-areas: var(--shadow-thumbnail-position-start); 1688 1689 /* border radius */ 1690 --shadow-border-radius-scale: 30; 1691 1692 --shadow-block-border-surface: #00000000; 1693 --shadow-border-width: 3px; 1694 1695 /* buttons */ 1696 --shadow-hover-style: var(--shadow-hover-style-light, --shadow-hover-style-light); 1697 1698 --shadow-launcher-button-surface: #2d465d; 1699 --shadow-launcher-button-text-color: #ffffff; 1700 --shadow-launcher-button-border-surface: #00000000; 1701 1702 --shadow-primary-button-surface: #2d465d; 1703 --shadow-primary-button-text-color: #ffffff; 1704 --shadow-primary-button-border-surface: #00000000; 1705 1706 --shadow-primary-button-border-surface--active: transparent; 1707 --shadow-primary-button-border-surface--hover: transparent; 1708 1709 --shadow-secondary-button-surface: #0000000f; 1710 --shadow-secondary-button-text-color: #333333; 1711 --shadow-secondary-button-border-surface: #00000000; 1712 1713 --shadow-secondary-button-border-surface--active: transparent; 1714 --shadow-secondary-button-border-surface--hover: transparent; 1715 1716 /* text and fonts */ 1717 --shadow-font-scale: calc(125 / 100); 1718 1719 /* form elements */ 1720 --shadow-form-element-surface: #ffffff; 1721 --shadow-form-element-border-color: #2d465d; 1722 --shadow-form-element-text-color: #2d465d; 1723 --shadow-form-element-selection-color: rgba(0,0,0,0); 1724 1725 --shadow-selection-accent-color: auto; 1726 --shadow-selection-checked-surface: var(--shadow-primary-text-color); 1727 --shadow-selection-swatch-color: var(--shadow-form-element-border-color); 1728 1729 /* primary colors */ 1730 --shadow-primary-surface: #ffffff; 1731 --shadow-primary-text-color: #2d465d; 1732 1733 /* secondary colors */ 1734 --shadow-secondary-surface: #ffffff; 1735 --shadow-secondary-text-color: #333333; 1736 1737 /* spacing */ 1738 --shadow-spacing-scale: var(--shadow-spacing-scale-base, 1); 1739 1740 /* media */ 1741 --shadow-gift-thumbnail-size: 140px; 1742 --shadow-thumbnail-size: clamp(40px, var(--shadow-gift-thumbnail-size), 200px); 1743 1744 --shadow-thumbnail-flex-direction: row; 1745 --shadow-thumbnail-order: -1; 1746 --shadow-thumbnail-margin-left: 0; 1747 --shadow-thumbnail-margin-right: 0.6em; 1748} 1749 1750 1751:host([option-type="order"]) { 1752 --shadow-font-family: inherit; 1753 --shadow-header-font-family: inherit; 1754 --shadow-font-weight-base: 400; 1755 --shadow-letter-spacing: normal; 1756 --shadow-button-text-transform: none; 1757 --shadow-button-letter-spacing: normal; 1758 --shadow-button-font-style: normal; 1759 --shadow-launcher-button-font-weight: 400; 1760 --shadow-launcher-button-max-width: 500px; 1761 --shadow-launcher-button-alignment: center; 1762 --shadow-launcher-button-content-justify-content: space-between; 1763 --shadow-launcher-button-content-flex-direction: row-reverse; 1764 --shadow-grid-template-areas: var(--shadow-thumbnail-position-start); 1765 1766 /* border radius */ 1767 --shadow-border-radius-scale: 30; 1768 1769 --shadow-block-border-surface: #00000000; 1770 --shadow-border-width: 3px; 1771 1772 /* buttons */
1773 --shadow-hover-style: var(--shadow-hover-style-light, --shadow-hover-style-light); 1774 1775 --shadow-launcher-button-surface: #2d465d; 1776 --shadow-launcher-button-text-color: #ffffff; 1777 --shadow-launcher-button-border-surface: #00000000; 1778 1779 --shadow-primary-button-surface: #2d465d; 1780 --shadow-primary-button-text-color: #ffffff; 1781 --shadow-primary-button-border-surface: #00000000; 1782 1783 --shadow-primary-button-border-surface--active: transparent; 1784 --shadow-primary-button-border-surface--hover: transparent; 1785 1786 --shadow-secondary-button-surface: #0000000f; 1787 --shadow-secondary-button-text-color: #333333; 1788 --shadow-secondary-button-border-surface: #00000000; 1789 1790 --shadow-secondary-button-border-surface--active: transparent; 1791 --shadow-secondary-button-border-surface--hover: transparent; 1792 1793 /* text and fonts */ 1794 --shadow-font-scale: calc(125 / 100); 1795 1796 /* form elements */ 1797 --shadow-form-element-surface: #ffffff; 1798 --shadow-form-element-border-color: #2d465d; 1799 --shadow-form-element-text-color: #2d465d; 1800 --shadow-form-element-selection-color: rgba(0,0,0,0); 1801 1802 --shadow-selection-accent-color: auto; 1803 --shadow-selection-checked-surface: var(--shadow-primary-text-color); 1804 --shadow-selection-swatch-color: var(--shadow-form-element-border-color); 1805 1806 /* primary colors */ 1807 --shadow-primary-surface: #ffffff; 1808 --shadow-primary-text-color: #2d465d; 1809 1810 /* secondary colors */ 1811 --shadow-secondary-surface: #ffffff; 1812 --shadow-secondary-text-color: #333333; 1813 1814 /* spacing */ 1815 --shadow-spacing-scale: var(--shadow-spacing-scale-base, 1); 1816 1817 /* media */ 1818 --shadow-gift-thumbnail-size: 140px; 1819 --shadow-thumbnail-size: clamp(40px, var(--shadow-gift-thumbnail-size), 200px); 1820 1821 --shadow-thumbnail-flex-direction: row; 1822 --shadow-thumbnail-order: -1; 1823 --shadow-thumbnail-margin-left: 0; 1824 --shadow-thumbnail-margin-right: 0.6em; 1825} 1826 1827 1828 1829 1830*, 1831*::before, 1832*::after { 1833 box-sizing: border-box; 1834} 1835 1836 1837gift-block-launcher:not([variant="inline"]) { 1838 display: flex; 1839 flex-direction: column; 1840 gap: var(--shadow-spacing-xs); 1841 align-items: var(--shadow-launcher-button-alignment); 1842 1843 1844 & gift-block-visibility-notice { 1845 display: block; 1846 font-family: var(--shadow-font-family); 1847 font-size: smaller; 1848 font-weight: var(--shadow-font-weight-base); 1849 font-style: var(--shadow-button-font-style); 1850 letter-spacing: var(--shadow-button-letter-spacing); 1851 padding: 0 var(--shadow-spacing-sm); 1852 text-transform: var(--shadow-button-text-transform); 1853 width: 100%; 1854 } 1855} 1856 1857.gift-block__launcher { 1858 background-color: var(--shadow-launcher-button-surface); 1859 border-color: var(--shadow-launcher-button-border-surface); 1860 border-width: var(--shadow-launcher-button-border-width, var(--shadow-border-width)); 1861 border-radius: var(--shadow-launcher-button-border-radius, var(--shadow-border-radius-sm)); 1862 border-style: solid; 1863 color: var(--shadow-launcher-button-text-color); 1864 padding: var(--shadow-spacing-sm); 1865 font-family: var(--shadow-font-family); 1866 font-size: var(--shadow-font-size-base); 1867 font-weight: var(--shadow-launcher-button-font-weight); 1868 font-style: var(--shadow-button-font-style); 1869 letter-spacing: var(--shadow-button-letter-spacing); 1870 max-width: var(--shadow-block-launcher-button-max-width, var(--shadow-launcher-button-max-width)); 1871 text-transform: var(--shadow-button-text-transform); 1872 width: 100%; 1873 1874 &:hover { 1875 cursor: pointer; 1876 background-color: var(--shadow-primary-button-surface--hover); 1877 border-color: var(--shadow-primary-button-border-surface--hover); 1878 } 1879 1880 &:active { 1881 background-color: var(--shadow-primary-button-surface--active); 1882 border-color: var(--shadow-primary-button-border-surface--active); 1883 } 1884 1885 &:focus, 1886 &:focus-visible { 1887 outline: none; 1888 } 1889 1890 &[with-checkmark] { 1891 position: relative; 1892 display: inline-flex; 1893 align-items: center; 1894 gap: var(--shadow-spacing-fixed); 1895 1896 & .icon-wrapper { 1897 display: flex; 1898 flex-shrink: 0; 1899 } 1900 1901 &[with-gift-options] { 1902 .checkmark-icon { 1903 display: block; 1904 /* animation: unblur calc(var(--shadow-transition-duration) * 3) ease forwards; */ 1905 } 1906 } 1907 } 1908 1909 &[variant="link"] { 1910 background: none; 1911 border: none; 1912 color: var(--shadow-primary-text-color); 1913 font-size: var(--shadow-font-size-base); 1914 font-weight: var(--shadow-font-weight-base); 1915 font-style: var(--shadow-button-font-style); 1916 letter-spacing: var(--shadow-button-letter-spacing); 1917 text-transform: var(--shadow-button-text-transform); 1918 text-decoration: none;
1919 margin-inline-start: -0.25rem; 1920 padding: 0; 1921 width: auto; 1922 1923 &:hover { 1924 cursor: pointer; 1925 color: var(--shadow-primary-text-color--hover); 1926 text-decoration: underline; 1927 } 1928 1929 &[with-checkmark] { 1930 padding-left: 0; 1931 text-align: start; 1932 word-break: keep-all; 1933 } 1934 1935 & .button-content { 1936 flex-direction: row; 1937 justify-content: flex-start; 1938 } 1939 } 1940 1941 & .button-content { 1942 display: inline-flex; 1943 align-items: center; 1944 gap: var(--shadow-spacing-fixed); 1945 1946 flex-direction: var(--shadow-launcher-button-content-flex-direction); 1947 justify-content: var(--shadow-launcher-button-content-justify-content); 1948 width: 100%; 1949 1950 & .label { 1951 text-align: start; 1952 } 1953 } 1954 1955 & .icon-wrapper { 1956 display: none; 1957 align-items: center; 1958 justify-content: center; 1959 width: 1.5em; 1960 height: 1.5em; 1961 1962 svg { 1963 fill: currentColor; 1964 height: 100%; 1965 width: 100%; 1966 } 1967 1968 .checkmark-icon { 1969 display: none; 1970 } 1971 } 1972} 1973.gift-block__launcher:disabled, 1974.gift-block__launcher[usage-limit-reached], 1975.gift-block__launcher[region-unavailable] { 1976 cursor: var(--shadow-disabled-cursor); 1977 opacity: var(--shadow-disabled-opacity); 1978 pointer-events: none; 1979 1980 &[with-checkmark] { 1981 .icon-wrapper { 1982 opacity: var(--shadow-disabled-opacity-md); 1983 } 1984 } 1985} 1986 1987/* gift block modal */ 1988.gift-block-modal { 1989 background-color: var(--shadow-primary-surface); 1990 border: none; 1991 border-radius: var(--shadow-border-radius-base); 1992 box-shadow: 0 var(--shadow-shadow-offset) var(--shadow-shadow-blur) var(--shadow-shadow-color); 1993 outline: var(--shadow-border-width) solid var(--shadow-block-border-surface); 1994 padding: 0; 1995} 1996.gift-block-modal::backdrop { 1997 background-color: rgba(156, 163, 175, 0.75); 1998} 1999.gift-block-modal:focus, 2000.gift-block-modal:focus-visible { 2001 outline: var(--shadow-border-width) solid var(--shadow-block-border-surface); 2002} 2003@media (max-width: 768px) { 2004 .gift-block-modal { 2005 max-height: calc(100% - var(--shadow-spacing-sm)); 2006 max-width: calc(100% - var(--shadow-spacing-sm)); 2007 overscroll-behavior: contain; 2008 } 2009} 2010 2011/* gift block modal layout */ 2012.gift-block-modal-layout { 2013 display: grid; 2014 grid-template-areas: var(--shadow-grid-template-areas); 2015 grid-template-columns: 1fr 1fr; 2016 grid-template-rows: auto 1fr auto; 2017 max-height: 80dvh; 2018 max-width: 80dvw; 2019 overflow: hidden; 2020} 2021/* Collapse to 1-column layout if media is hidden */ 2022.gift-block-modal-layout:has(section#media[hidden]), 2023.gift-block-modal-layout:has(section#media.with-media-inline), 2024.gift-block-modal-layout:not(:has(section#media)), 2025.gift-block-modal-layout:not(:has(section#media img)) { 2026 grid-template-areas: 2027 "gift-dialog-header" 2028 "content" 2029 "gift-block-actions"; 2030 grid-template-columns: 1fr; 2031 grid-template-rows: auto 1fr auto; 2032 2033 section#media { 2034 display: none; 2035 } 2036} 2037 2038 2039gift-dialog-header { 2040 align-items: flex-start; 2041 background-color: var(--shadow-primary-surface); 2042 display: flex; 2043 flex-direction: row; 2044 gap: var(--shadow-spacing-fixed); 2045 grid-area: gift-dialog-header; 2046 justify-content: space-between; 2047 padding: var(--shadow-spacing-lg); 2048 position: sticky; 2049 top: 0; 2050 z-index: 1; 2051 2052 & h1 { 2053 color: var(--shadow-primary-text-color); 2054 font-family: var(--shadow-header-font-family); 2055 font-size: var(--shadow-font-size-lg); 2056 font-weight: var(--shadow-font-weight-md); 2057 line-height: 1.25em; 2058 margin: 0; 2059 } 2060 2061 /* dismiss button styles */ 2062 & button { 2063 background-color: color-mix(in srgb, var(--shadow-secondary-text-color) 8%, transparent); 2064 color: var(--shadow-secondary-text-color); 2065 border-radius: var(--shadow-border-radius-xs); 2066 font-size: var(--shadow-font-size-sm); 2067 font-weight: var(--shadow-font-weight-lg); 2068 font-style: var(--shadow-button-font-style); 2069 letter-spacing: var(--shadow-button-letter-spacing); 2070 text-transform: var(--shadow-button-text-transform); 2071 width: 2.25em; 2072 height: 2.25em; 2073 min-width: 2.25em; 2074 min-height: 2.25em; 2075 outline: none; 2076 border: 0; 2077 cursor: pointer; 2078 transition: background-color var(--shadow-transition-duration) ease, 2079 color var(--shadow-transition-duration) ease; 2080 2081 &:hover { 2082 background-color: color-mix(in srgb, var(--shadow-secondary-text-color) 6%, var(--shadow-hover-style) 12%); 2083 } 2084 2085 &:active { 2086 background-color: color-mix(in srgb, var(--shadow-secondary-text-color) 16%, var(--shadow-hover-style) 16%); 2087 } 2088 2089 &:disabled { 2090 pointer-events: none; 2091 opacity: var(--shadow-disabled-opacity); 2092 } 2093 } 2094} 2095 2096 2097.gift-block-modal-layout gift-block-actions { 2098 background-color: var(--shadow-primary-surface); 2099 bottom: 0; 2100 grid-area: gift-block-actions; 2101 overscroll-behavior: contain; 2102 position: sticky; 2103 z-index: 1; 2104 2105 /* the buttons live in the component's own shadow; only its layout knobs are ours */
2106 --shadow-actions-gap: var(--shadow-spacing-sm); 2107 --shadow-actions-padding: var(--shadow-spacing-lg); 2108} 2109 2110gift-dialog-content { 2111 display: contents; 2112} 2113 2114section#media { 2115 align-self: stretch; 2116 background-color: var(--shadow-secondary-surface); 2117 grid-area: media; 2118 grid-row: 1 / 4; 2119 height: 100%; 2120 padding: var(--shadow-spacing-lg); 2121 position: sticky; 2122 top: 0; 2123 transition: order var(--shadow-transition-duration) ease, 2124 width var(--shadow-transition-duration) ease; 2125 2126 &.with-media-cover { 2127 & img { 2128 height: 100%; 2129 } 2130 } 2131 2132 &.with-media-fill { 2133 padding: 0; 2134 2135 & img { 2136 border-radius: 0; 2137 height: 100%; 2138 } 2139 } 2140 2141 & shopify-media { 2142 & img { 2143 border-radius: var(--shadow-border-radius-sm); 2144 width: 100%; 2145 height: auto; 2146 } 2147 } 2148} 2149 2150section#content { 2151 grid-area: content; 2152 background-color: var(--shadow-primary-surface); 2153 2154 overflow-y: auto; 2155 overscroll-behavior: contain; 2156 scrollbar-width: thin; 2157 -webkit-overflow-scrolling: touch; 2158 2159 padding: var(--shadow-spacing-lg); 2160 padding-bottom: 0; 2161 padding-top: 0; 2162 2163 position: relative; /* important to prevent content shifting when changing variants */ 2164 2165 align-items: stretch; 2166 display: flex; 2167 flex-direction: column; 2168 justify-content: flex-start; 2169 gap: var(--shadow-spacing-lg); 2170 transition: order var(--shadow-transition-duration) ease; 2171 2172 @media (max-width: 768px) { 2173 & > *:first-child:not(:only-child) { 2174 margin-top: unset; 2175 } 2176 } 2177 2178 2179 & gift-block-option-heading { 2180 display: block; 2181 2182 & span[part="label"] { 2183 color: var(--shadow-primary-text-color); 2184 display: block; 2185 font-size: var(--shadow-font-size-base); 2186 font-weight: var(--shadow-font-weight-md, 500); 2187 line-height: 1.25em; 2188 } 2189 } 2190 2191 2192 & .gift-option-group { 2193 display: flex; 2194 flex-direction: column; 2195 gap: var(--shadow-spacing-lg); 2196 } 2197 2198 /* gift product details */ 2199 & .gift-product { 2200 display: flex; 2201 flex-direction: column; 2202 gap: var(--shadow-spacing-base); 2203 } 2204 2205 & .gift-product-header { 2206 align-items: center; 2207 display: flex; 2208 flex-direction: var(--shadow-thumbnail-flex-direction); 2209 flex-wrap: wrap; 2210 row-gap: var(--shadow-spacing-base); 2211 column-gap: var(--shadow-spacing-sm); 2212 } 2213 2214 & .gift-product-content { 2215 display: flex; 2216 flex: 1 1 50%; 2217 flex-direction: column; 2218 gap: var(--shadow-spacing-xs); 2219 } 2220 2221 & .gift-product-media { 2222 display: flex; 2223 align-items: center; 2224 2225 &:has(shopify-media) { 2226 --shadow-inline-media-max-size: var(--shadow-gift-thumbnail-size); 2227 --shadow-inline-media-size: clamp(40px, var(--shadow-gift-thumbnail-size), var(--shadow-inline-media-max-size)); 2228 2229 border-radius: var(--shadow-border-radius-sm); 2230 2231 height: var(--shadow-inline-media-size); 2232 width: var(--shadow-inline-media-size); 2233 2234 overflow: hidden; 2235 2236 margin-inline-start: auto; 2237 margin-inline-end: auto; 2238 } 2239 2240 & shopify-media { 2241 & img { 2242 border-radius: var(--shadow-border-radius-sm); 2243 width: 100%; 2244 height: auto; 2245 } 2246 } 2247 } 2248 2249 & .gift-product-title { 2250 color: var(--shadow-primary-text-color); 2251 display: var(--shadow-gift-product-title-display, block); 2252 font-size: var(--shadow-font-size-base); 2253 font-weight: var(--shadow-font-weight-md); 2254 margin: 0; 2255 } 2256 & .gift-product-pricing { 2257 display: flex; 2258 gap: var(--shadow-spacing-xs); 2259 margin: 0; 2260 font-weight: var(--shadow-font-weight-base); 2261 font-size: clamp(12px, calc(var(--shadow-font-size-base) * 0.94), 18px); 2262 line-height: 1em; 2263 } 2264 & .gift-product-price { 2265 color: var(--shadow-secondary-text-color); 2266 } 2267 & .gift-product-price--compare { 2268 color: var(--shadow-secondary-text-color); 2269 text-decoration: line-through; 2270 opacity: var(--shadow-disabled-opacity); 2271 } 2272 & .gift-product-description { 2273 font-weight: var(--shadow-font-weight-base); 2274 color: var(--shadow-secondary-text-color); 2275 font-size: clamp(12px, calc(var(--shadow-font-size-base) * 0.94), 18px); 2276 line-height: 1.5em; 2277 2278 & shopify-data { 2279 & :first-child { 2280 margin-top: 0; 2281 } 2282 2283 & :last-child { 2284 margin-bottom: 0; 2285 } 2286 2287 & ul { 2288 padding-left: var(--shadow-spacing-lg); 2289 } 2290 } 2291 } 2292} 2293 2294 2295:host(wrapped-gift-block) gift-block-option-heading label { 2296 align-items: center; 2297 cursor: pointer; 2298 display: flex; 2299 gap: var(--shadow-spacing-sm); 2300 2301 & input[type="checkbox"] { 2302 accent-color: var(--shadow-selection-accent-color); 2303 cursor: pointer; 2304 flex: 0 0 auto; 2305 height: var(--shadow-font-size-base); 2306 margin: 0; 2307 width: var(--shadow-font-size-base); 2308 } 2309} 2310 2311 2312:host(wrapped-gift-block[gift-option-optional]) section#content .gift-option-group { 2313 border-radius: var(--shadow-border-radius-sm); 2314 position: relative; 2315} 2316 2317 2318:host(wrapped-gift-block[gift-option-optional]:not([gift-option-included])) section#content .gift-option-group { 2319 pointer-events: none; 2320} 2321 2322:host(wrapped-gift-block[gift-option-optional]:not([gift-option-included])) section#content .gift-option-group::after { 2323 background-color: color-mix(in srgb, var(--shadow-primary-surface) 62%, transparent); 2324 border-radius: inherit; 2325 content: ''; 2326 inset: calc(var(--shadow-spacing-sm) * -1); 2327 position: absolute; 2328} 2329
2330/* shopify variant selector */ 2331 2332:host(wrapped-extension) gift-variant-selector { 2333 --shadow-picker-padding: var(--shadow-spacing-sm) var(--shadow-spacing-base); 2334 --shadow-picker-rows-padding: var(--shadow-spacing-sm); 2335} 2336 2337 2338:host(wrapped-extension[saving="true"]) gift-variant-selector { 2339 --shadow-picker-opacity: 0.7; 2340 --shadow-picker-pointer-events: none; 2341} 2342 2343 2344:host(wrapped-gift-block[gift-option-optional]:not([gift-option-included])) gift-variant-selector { 2345 --shadow-picker-selection-color: var(--shadow-form-element-border-color); 2346 --shadow-picker-selection-width: var(--shadow-border-width); 2347 --shadow-picker-swatch-selection-color: rgba(0, 0, 0, .1); 2348} 2349 2350 2351:host(wrapped-extension[gift-option-optional="true"]:not([gift-option-included])) gift-variant-selector, 2352:host(wrapped-gift-block[gift-option-optional="true"]:not([gift-option-included])) gift-variant-selector { 2353 --shadow-picker-card-accent: color-mix(in srgb, var(--shadow-form-element-border-color) 25%, transparent); 2354 --shadow-picker-card-opacity: 0.8;
2355 --shadow-picker-card-ring: transparent; 2356 --shadow-picker-radio-appearance: none; 2357 --shadow-picker-radio-border: var(--shadow-border-width) solid var(--shadow-form-element-border-color); 2358 --shadow-picker-radio-surface: var(--shadow-form-element-surface); 2359 --shadow-picker-row-shadow: none; 2360 --shadow-picker-row-surface: initial; 2361} 2362 2363 2364wrapped-message-field { 2365 gap: var(--shadow-spacing-xs); 2366 2367 & label { 2368 color: var(--shadow-secondary-text-color); 2369 font-size: var(--shadow-font-size-sm); 2370 font-weight: var(--shadow-font-weight-base); 2371 line-height: 1em; 2372 } 2373 2374 & :is(input, textarea) { 2375 background-color: var(--shadow-form-element-surface); 2376 border: none; 2377 border-radius: var(--shadow-border-radius-sm); 2378 color: var(--shadow-form-element-text-color); 2379 font-family: var(--shadow-font-family); 2380 font-size: var(--shadow-font-size-base); 2381 margin: 0; 2382 min-height: 42px; 2383 outline: var(--shadow-border-width) solid var(--shadow-form-element-border-color); 2384 padding: var(--shadow-spacing-sm); 2385 width: 100%; 2386 } 2387 2388 & :is(input, textarea):is(:active, :focus, :focus-visible) { 2389 outline-color: var(--shadow-form-element-selection-color); 2390 outline-width: var(--shadow-outline-width); 2391 } 2392 2393 & :is(input, textarea)::placeholder { 2394 color: var(--shadow-form-element-placeholder-text-color); 2395 } 2396 2397 & textarea { 2398 min-height: 100px; 2399 resize: vertical; 2400 } 2401 2402 & span.counter { 2403 align-self: flex-end; 2404 color: var(--shadow-secondary-text-color); 2405 font-size: var(--shadow-font-size-sm); 2406 line-height: normal; 2407 } 2408} 2409 2410 2411wrapped-message-field[disabled] { 2412 cursor: var(--shadow-disabled-cursor); 2413 opacity: var(--shadow-disabled-opacity-md); 2414 pointer-events: none; 2415 transition: background-color var(--shadow-transition-duration) ease, 2416 color var(--shadow-transition-duration) ease; 2417 2418 & :is(input, textarea) { 2419 background-color: var(--shadow-form-element-surface--disabled); 2420 color: transparent; 2421 outline-color: var(--shadow-form-element-border-color--disabled); 2422 } 2423} 2424 2425 2426 2427 2428:host(wrapped-extension) { 2429 background-color: var(--shadow-primary-surface) !important; 2430 border: var(--shadow-border-width) solid var(--shadow-block-border-surface) !important; 2431 border-radius: var(--shadow-border-radius-sm) !important; 2432 color: var(--shadow-primary-text-color) !important; 2433 display: flex; 2434 flex-direction: column !important; 2435 font-size: var(--shadow-font-size-base) !important; 2436 height: fit-content !important; 2437 margin-block-start: var(--shadow-block-margin-start, var(--shadow-block-margin-block-start)) !important; 2438 margin-block-end: var(--shadow-block-margin-end, var(--shadow-block-margin-block-end)) !important; 2439 min-width: unset !important; 2440 max-width: 640px !important; 2441 overflow: hidden !important; 2442 padding: unset !important; 2443 width: unset !important; 2444} 2445 2446:host(wrapped-extension[option-type="order"]) { 2447 margin-left: auto !important; 2448 margin-right: 0 !important; 2449 width: stretch !important; 2450} 2451 2452:host(wrapped-extension[target-group="drawer"][option-type="order"]) { 2453 max-width: unset !important; 2454 margin-left: unset !important; 2455 margin-right: unset !important; 2456 margin-block-end: var(--shadow-block-margin-end, calc(var(--shadow-block-margin-block-end) * 0.5)) !important; 2457} 2458 2459 2460wrapped-advanced-mode, 2461wrapped-basic-mode { 2462 display: contents; 2463} 2464 2465 2466:host(wrapped-extension) [part="feature"], 2467:host(wrapped-extension) gift-block-launcher { 2468 overflow: hidden !important; 2469 2470 & [part="container"] { 2471 display: flex; 2472 flex-direction: column; 2473 row-gap: 0.25em; 2474 2475 2476 & label { 2477 align-items: center !important; 2478 column-gap: var(--shadow-spacing-sm) !important; 2479 cursor: pointer !important; 2480 display: flex; 2481 line-height: normal !important; 2482 margin: 0 !important; 2483 pointer-events: auto !important; 2484 text-align: left !important; 2485 text-transform: unset !important; 2486 } 2487 } 2488} 2489 2490 2491:host(wrapped-extension) [part="feature"] { 2492 background-color: var(--shadow-secondary-surface); 2493} 2494 2495 2496:host(wrapped-extension) [part="feature"]:is([feature="variant"], [feature="gift-option"]) { 2497 display: block; 2498} 2499 2500:host(wrapped-extension) [part="feature"][enabled="false"] { 2501 display: none; 2502 opacity: 0; 2503 visibility: hidden; 2504} 2505 2506 2507:host(wrapped-extension) [part="disclosure"] { 2508 display: grid; 2509 grid-template-rows: 0fr; 2510 transition: grid-template-rows 0.25s cubic-bezier(0.42, 0, 0.58, 1); 2511} 2512 2513 2514:host(wrapped-extension) [part="disclosure-content"] { 2515 display: flex; 2516 flex-direction: column; 2517 min-height: 0; 2518 opacity: 0; 2519 overflow: hidden; 2520 visibility: hidden; 2521 transition: opacity 0.25s, visibility 0.25s; 2522} 2523 2524 2525:host(wrapped-extension[expanded="true"]) gift-block-launcher:has(~ [part="disclosure"] [part="feature"][enabled="true"]:not([singular="true"])) { 2526 border-bottom: var(--shadow-border-width) solid var(--shadow-block-border-surface); 2527} 2528 2529:host(wrapped-extension[expanded="true"]) [part="disclosure"], 2530:host(wrapped-extension[hidden-checkbox="true"]) [part="disclosure"] { 2531 grid-template-rows: 1fr; 2532} 2533 2534:host(wrapped-extension[expanded="true"]) [part="disclosure-content"], 2535:host(wrapped-extension[hidden-checkbox="true"]) [part="disclosure-content"] { 2536 opacity: 1; 2537 visibility: visible; 2538} 2539 2540:host(wrapped-extension[hidden-checkbox="true"]) gift-block-launcher { 2541 display: none; 2542 opacity: 0; 2543 visibility: hidden; 2544} 2545 2546 2547:host(wrapped-extension[limited="true"]), 2548:host(wrapped-extension[region-unavailable="true"]) {
2549 cursor: none !important; 2550 pointer-events: none !important; 2551 opacity: 0.6 !important; 2552 2553 & [part="container"] { 2554 & label { 2555 pointer-events: none !important; 2556 } 2557 } 2558} 2559 2560 2561:host(wrapped-extension[saving="true"]) { 2562 & [part="container"] { 2563 & label { 2564 pointer-events: none !important; 2565 2566 & input[type="checkbox"], input[type="radio"], span { 2567 opacity: 0.7 !important; 2568 transition: opacity 300ms cubic-bezier(0.25, 0.1, 0.25, 1); 2569 } 2570 } 2571 2572 & select { 2573 pointer-events: none !important; 2574 opacity: 0.7 !important; 2575 } 2576 2577 & button { 2578 pointer-events: none; 2579 opacity: 0.7; 2580 transition: opacity 300ms cubic-bezier(0.25, 0.1, 0.25, 1); 2581 } 2582 } 2583} 2584 2585:host(wrapped-extension) gift-block-launcher [part="container"] { 2586 padding: var(--shadow-spacing-sm); 2587 2588 & label { 2589 padding: 0 !important; 2590 2591 2592 & input[type="checkbox"] { 2593 cursor: pointer; 2594 clip: unset !important; 2595 display: inline-block !important; 2596 flex-shrink: 0 !important; 2597 height: var(--shadow-font-size-base) !important; 2598 margin: 0 !important; 2599 min-height: revert !important; 2600 position: unset !important; 2601 top: unset !important; 2602 width: var(--shadow-font-size-base) !important; 2603 2604 &::before { 2605 content: unset !important; 2606 } 2607 &::after { 2608 content: unset !important; 2609 } 2610 2611 &:checked::before { 2612 content: unset !important; 2613 } 2614 2615 &:checked::after { 2616 content: unset !important; 2617 } 2618 } 2619 2620 & span { 2621 &[part="label"] { 2622 border: unset !important; 2623 flex-grow: 1; 2624 padding: unset !important; 2625 } 2626 2627 &[part="pricing"] { 2628 align-content: center; 2629 font-size: var(--shadow-font-size-sm); 2630 white-space: nowrap; 2631 } 2632 2633 &[part="thumbnail"] { 2634 background-color: var(--shadow-form-element-surface); 2635 background-size: cover; 2636 background-position: center; 2637 background-repeat: no-repeat; 2638 border: var(--shadow-border-width) solid #ddd; 2639 border-color: var(--shadow-form-element-border-color); 2640 border-radius: var(--shadow-border-radius-sm); 2641 min-height: var(--shadow-thumbnail-size); 2642 max-height: var(--shadow-thumbnail-size); 2643 min-width: var(--shadow-thumbnail-size); 2644 max-width: var(--shadow-thumbnail-size); 2645 height: 100%; 2646 width: 100%; 2647 display: inline-block; 2648 overflow: hidden; 2649 vertical-align: middle; 2650 order: var(--shadow-thumbnail-order); 2651 2652 margin-right: var(--shadow-thumbnail-margin-right); 2653 margin-left: var(--shadow-thumbnail-margin-left); 2654 } 2655 } 2656 } 2657 2658} 2659 2660 2661:host(wrapped-extension) [feature="gift-option"] [part="container"] { 2662 padding: var(--shadow-spacing-sm); 2663 2664 & label { 2665 align-items: center; 2666 cursor: pointer; 2667 display: flex; 2668 gap: var(--shadow-spacing-sm); 2669 } 2670 2671 & input[type="checkbox"] { 2672 cursor: pointer; 2673 flex: 0 0 auto; 2674 height: var(--shadow-font-size-base); 2675 margin: 0; 2676 width: var(--shadow-font-size-base); 2677 } 2678 2679 & span[part="label"] { 2680 color: var(--shadow-primary-text-color); 2681 display: block; 2682 font-size: var(--shadow-font-size-base); 2683 font-weight: var(--shadow-font-weight-md, 500); 2684 line-height: 1.25em; 2685 } 2686} 2687 2688 2689:host(wrapped-extension) gift-block-launcher [part="container"] label input[type="checkbox"], 2690:host(wrapped-extension) [feature="gift-option"] [part="container"] label input[type="checkbox"] { 2691 appearance: none; 2692 background-color: var(--shadow-form-element-surface); 2693 background-position: center; 2694 background-repeat: no-repeat; 2695 background-size: 82%; 2696 border: var(--shadow-border-width) solid var(--shadow-form-element-border-color); 2697 border-radius: min(4px, var(--shadow-border-radius-sm)); 2698 box-sizing: border-box; 2699 2700 &:checked { 2701 background-color: var(--shadow-selection-checked-surface); 2702 border-color: var(--shadow-selection-checked-surface); 2703 2704 background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' d='M3.5 8.4l3 3 6-6'/%3E%3C/svg%3E"); 2705 } 2706 2707 &:focus-visible { 2708 outline: var(--shadow-outline-width) solid var(--shadow-form-element-selection-color); 2709 outline-offset: var(--shadow-border-width); 2710 } 2711} 2712 2713 2714:host(wrapped-extension[hidden-checkbox="false"][gift-option-optional="false"]) [feature="variant"][enabled="true"][singular="true"] { 2715 display: none; 2716} 2717 2718 2719:host(wrapped-extension[gift-option-optional="true"]) .gift-option-group { 2720 transition: opacity 0.25s cubic-bezier(0.42, 0, 0.58, 1); 2721} 2722 2723 2724:host(wrapped-extension[gift-option-optional="true"]:not([gift-option-included])) .gift-option-group { 2725 opacity: 0.5; 2726 pointer-events: none; 2727} 2728 2729 2730:host(wrapped-extension[gift-option-optional="true"]) [feature="variant"][singular="true"] gift-variant-selector { 2731 --shadow-picker-list-overflow: auto; 2732} 2733 2734 2735:host(wrapped-extension) gift-block-message { 2736 --shadow-message-gap: var(--shadow-spacing-sm); 2737 --shadow-message-padding: var(--shadow-spacing-sm); 2738 --shadow-message-input-flex: 1 1 40%; 2739 2740 & wrapped-message-field { 2741 2742 & label { 2743 color: var(--shadow-primary-text-color); 2744 } 2745 2746 & textarea {
2747 min-height: var(--shadow-textarea-min-height); 2748 } 2749 } 2750} 2751 2752 2753:host(wrapped-extension) gift-block-actions { 2754 --shadow-actions-gap: var(--shadow-spacing-xs); 2755 --shadow-actions-padding: var(--shadow-spacing-sm); 2756} 2757 2758/* media queries */ 2759/* md - and above */ 2760@media (min-width: 768px) { 2761 :host { 2762 --shadow-section-max-width: 420px; 2763 } 2764 2765 gift-dialog-content > section { 2766 min-width: var(--shadow-section-max-width); 2767 max-width: var(--shadow-section-max-width); 2768 } 2769 2770 gift-dialog-header, 2771 .gift-block-modal-layout gift-block-actions { 2772 min-width: var(--shadow-section-max-width); 2773 max-width: var(--shadow-section-max-width); 2774 } 2775} 2776 2777/* md - and below */ 2778@media (max-width: 768px) { 2779 :host { 2780 --shadow-section-max-width: 390px; 2781 } 2782 2783 gift-dialog-content > section { 2784 min-width: var(--shadow-section-max-width); 2785 max-width: var(--shadow-section-max-width); 2786 } 2787 2788 gift-dialog-header, 2789 .gift-block-modal-layout gift-block-actions { 2790 min-width: var(--shadow-section-max-width); 2791 max-width: var(--shadow-section-max-width); 2792 } 2793 2794 gift-dialog-header { 2795 padding: var(--shadow-spacing-base); 2796 } 2797 2798 .gift-block-modal-layout gift-block-actions { 2799 --shadow-actions-padding: var(--shadow-spacing-base); 2800 } 2801 2802 .gift-block-modal-layout { 2803 grid-template-areas: 2804 "gift-dialog-header" 2805 "media" 2806 "content" 2807 "gift-block-actions"; 2808 grid-template-columns: 1fr; 2809 grid-template-rows: auto auto 1fr auto; 2810 max-height: calc(100dvh - var(--shadow-spacing-base)); 2811 max-width: 100dvw; 2812 } 2813 2814 gift-dialog-content { 2815 display: grid; 2816 grid-template-areas: 2817 "media" 2818 "content"; 2819 grid-template-columns: 1fr; 2820 grid-template-rows: auto 1fr; 2821 overflow-y: auto; 2822 overscroll-behavior: contain; 2823 scrollbar-width: thin; 2824 -webkit-overflow-scrolling: touch; 2825 } 2826 2827 section#media { 2828 background: none; 2829 grid-row: auto; 2830 position: relative; 2831 padding: 0; 2832 2833 & shopify-media { 2834 & img { 2835 border-radius: unset; 2836 min-height: var(--shadow-section-max-width); 2837 max-height: var(--shadow-section-max-width); 2838 } 2839 } 2840 } 2841 2842 section#content { 2843 overflow-y: unset; 2844 padding: var(--shadow-spacing-base); 2845 2846 &.with-media-inline { 2847 padding-top: 0; 2848 } 2849 2850 & .gift-product-media { 2851 &:has(shopify-media) { 2852 --shadow-inline-media-max-size: 330px; 2853 } 2854 } 2855 } 2856} 2857 2858/* sm - and below */ 2859@media (max-width: 480px) { 2860 :host { 2861 --shadow-section-max-width: 100%; 2862 } 2863 2864 section#media { 2865 & shopify-media { 2866 & img { 2867 border-radius: unset; 2868 min-height: 350px; 2869 max-height: 350px; 2870 } 2871 } 2872 } 2873} 2874 2875@keyframes unblur { 2876 from { filter: blur(2px); } 2877 to { filter: blur(0px); } 2878} 2879</template> 2880<!-- END app snippet --><!-- BEGIN app snippet: app-embed.customizations -->
2880<script type="text/javascript"> 2881 // store customizations 2882 if (window.Wrapped?.settings?.styles) { 2883 const styleElement = document.createElement('style') 2884 styleElement.type = 'text/css' 2885 styleElement.appendChild(document.createTextNode(window.Wrapped.settings.styles)) 2886 document.head.appendChild(styleElement) 2887 } 2888 2889 if (window.Wrapped?.settings?.scripts) { 2890 const scriptElement = document.createElement('script') 2891 scriptElement.type = 'text/javascript' 2892 scriptElement.appendChild(document.createTextNode(window.Wrapped.settings.scripts)) 2893 document.head.appendChild(scriptElement) 2894 } 2895 2896 // theme customizations 2897 if (window.Wrapped?.theme?.styles) { 2898 const styleElement = document.createElement('style') 2899 styleElement.type = 'text/css' 2900 styleElement.appendChild(document.createTextNode(window.Wrapped.theme.styles)) 2901 document.head.appendChild(styleElement) 2902 } 2903 2904 if (window.Wrapped?.theme?.scripts) { 2905 const scriptElement = document.createElement('script') 2906 scriptElement.type = 'text/javascript' 2907 scriptElement.appendChild(document.createTextNode(window.Wrapped.theme.scripts)) 2908 document.head.appendChild(scriptElement) 2909 } 2910</script>
2910 2911<!-- END app snippet --> 2912 2913 2914<!-- END app block --><!-- BEGIN app block: shopify://apps/loyalty-rewards-and-referrals/blocks/embed-sdk/6f172e67-4106-4ac0-89c5-b32a069b3101 --> 2915 2916<style 2917 type='text/css' 2918 data-lion-app-styles='main' 2919 data-lion-app-styles-settings='{"disableBundledCSS":false,"disableBundledFonts":false,"useClassIsolator":false}' 2920></style> 2921 2922<!-- loyaltylion.snippet.version=9283085fd3+12800 --> 2923 2924
2925<script> 2926 2927 !function(t,n){function o(n){var o=t.getElementsByTagName("script")[0],i=t.createElement("script");i.src=n,i.crossOrigin="",o.parentNode.insertBefore(i,o)}if(!n.isLoyaltyLion){window.loyaltylion=n,void 0===window.lion&&(window.lion=n),n.version=2,n.isLoyaltyLion=!0;var i=new Date,e=i.getFullYear().toString()+i.getMonth().toString()+i.getDate().toString();o("https://sdk.loyaltylion.net/static/2/loader.js?t="+e);var r=!1;n.init=function(t){if(r)throw new Error("Cannot call lion.init more than once");r=!0;var a=n._token=t.token;if(!a)throw new Error("Token must be supplied to lion.init");for(var l=[],s="_push configure bootstrap shutdown on removeListener authenticateCustomer".split(" "),c=0;c<s.length;c+=1)!function(t,n){t[n]=function(){l.push([n,Array.prototype.slice.call(arguments,0)])}}(n,s[c]);o("https://sdk.loyaltylion.net/sdk/start/"+a+".js?t="+e+i.getHours().toString()),n._initData=t,n._buffer=l}}}(document,window.loyaltylion||[]); 2928 2929 2930 2931 loyaltylion.init( 2932 { token: "799575c935eeef9c8f5c9a9ab61ed40e" } 2933 ); 2934 2935 2936 2937 loyaltylion.configure({ 2938 disableBundledCSS: false, 2939 disableBundledFonts: false, 2940 useClassIsolator: false, 2941 }) 2942 2943 2944</script>
2944 2945 2946 2947 2948<!-- END app block --><!-- BEGIN app block: shopify://apps/judge-me-reviews/blocks/judgeme_core/61ccd3b1-a9f2-4160-9fe9-4fec8413e5d8 --><!-- Start of Judge.me Core --> 2949 2950 2951 2952 2953 2954 2955 2956<link rel="dns-prefetch" href="https://cdn.judge.me"> 2957<link rel="dns-prefetch" href="https://cdn1.judge.me"> 2958<link rel="dns-prefetch" href="https://api.judge.me"> 2959
2960<script data-cfasync='false' class='jdgm-settings-script'>window.jdgmSettings={"pagination":5,"disable_web_reviews":false,"coupon_receiving_condition":"","coupon_value_type":"percentage","coupon_value_percentage":10,"coupon_value_fixed_amount":0,"coupon_discount_type":"single","coupon_tier_text_enabled":false,"coupon_tier_text_percentage":10,"coupon_tier_text_fixed_amount":0,"coupon_tier_photo_enabled":false,"coupon_tier_photo_percentage":10,"coupon_tier_photo_fixed_amount":0,"coupon_tier_video_enabled":false,"coupon_tier_video_percentage":10,"coupon_tier_video_fixed_amount":0,"enable_coupons":false,"badge_no_review_text":"No reviews","badge_n_reviews_text":"{{ n }} review/reviews","badge_star_color":"#2e475e","hide_badge_preview_if_no_reviews":true,"badge_hide_text":false,"enforce_center_preview_badge":false,"widget_title":"Customer Reviews","widget_open_form_text":"Write a review","widget_close_form_text":"Cancel review","widget_refresh_page_text":"Refresh page","widget_summary_text":"Based on {{ number_of_reviews }} review/reviews","widget_no_review_text":"Be the first to write a review","widget_name_field_text":"Display name","widget_verified_name_field_text":"Verified Name (public)","widget_name_placeholder_text":"Display name","widget_required_field_error_text":"This field is required.","widget_email_field_text":"Email address","widget_verified_email_field_text":"Verified Email (private, can not be edited)","widget_email_placeholder_text":"Your email address","widget_email_field_error_text":"Please enter a valid email address.","widget_rating_field_text":"Rating","widget_review_title_field_text":"Review Title","widget_review_title_placeholder_text":"Give your review a title","widget_review_body_field_text":"Review content","widget_review_body_placeholder_text":"Start writing here...","widget_pictures_field_text":"Picture/Video (optional)","widget_submit_review_text":"Submit Review","widget_submit_verified_review_text":"Submit Verified Review","widget_submit_success_msg_with_auto_publish":"Thank y
2960ou! Please refresh the page in a few moments to see your review. You can remove or edit your review by logging into \u003ca href='https://judge.me/login' target='_blank' rel='nofollow noopener'\u003eJudge.me\u003c/a\u003e","widget_submit_success_msg_no_auto_publish":"Thank you! Your review will be published as soon as it is approved by the shop admin. You can remove or edit your review by logging into \u003ca href='https://judge.me/login' target='_blank' rel='nofollow noopener'\u003eJudge.me\u003c/a\u003e","widget_show_default_reviews_out_of_total_text":"Showing {{ n_reviews_shown }} out of {{ n_reviews }} reviews.","widget_show_all_link_text":"Show all","widget_show_less_link_text":"Show less","widget_author_said_text":"{{ reviewer_name }} said:","widget_days_text":"{{ n }} days ago","widget_weeks_text":"{{ n }} week/weeks ago","widget_months_text":"{{ n }} month/months ago","widget_years_text":"{{ n }} year/years ago","widget_yesterday_text":"Yesterday","widget_today_text":"Today","widget_replied_text":"\u003e\u003e {{ shop_name }} replied:","widget_read_more_text":"Read more","widget_reviewer_name_as_initial":"last_initial","widget_rating_filter_color":"#2e475e","widget_rating_filter_see_all_text":"See all reviews","widget_sorting_most_recent_text":"Most Recent","widget_sorting_highest_rating_text":"Highest Rating","widget_sorting_lowest_rating_text":"Lowest Rating","widget_sorting_with_pictures_text":"Only Pictures","widget_sorting_most_helpful_text":"Most Helpful","widget_open_question_form_text":"Ask a question","widget_reviews_subtab_text":"Reviews","widget_questions_subtab_text":"Questions","widget_question_label_text":"Question","widget_answer_label_text":"Answer","widget_question_placeholder_text":"Write your question here","widget_submit_question_text":"Submit Question","widget_question_submit_success_text":"Thank you for your question! We will notify you once it gets answered.","widget_star_color":"#2e475e","verified_badge_text":"Verified","verified_badge_bg_color":"","verified_badge_text_color":"","verified_badge_placement":"left-of-reviewer-name","widget_review_max_height":7,"widget_hide_border":true,"widget_social_share":false,"widget_thumb":true,"widget_review_location_show":false,"widget_location_format":"country_iso_code","all_reviews_include_out_of_store_products":true,"all_reviews_out_of_store_text":"(out of store)","all_reviews_pagination":100,"all_reviews_product_name_prefix_text":"about","enable_review_pictures":true,"enable_question_anwser":false,"widget_theme":"carousel","review_date_format":"mm/dd/yyyy","default_sort_method":"most-recent","enable_ai_review_visibility":true,"widget_product_reviews_subtab_text":"Product Reviews","widget_shop_reviews_subtab_text":"Shop Reviews","widget_other_products_reviews_text":"Reviews for other products","widget_store_reviews_subtab_text":"Store reviews","widget_product_variant_reference_text":"Review for","widget_no_store_reviews_text":"This store hasn't received any reviews yet","widget_web_restriction_product_reviews_text":"This product hasn't received any reviews yet","widget_no_items_text":"No items found","widget_show_more_text":"Show more","widget_write_a_store_review_text":"Write a Store Review","widget_product_and_store_reviews_text":"Product and store reviews","widget_reviews_in_collection_text":"Reviews in this collection","widget_other_languages_heading":"Reviews in Other Languages","widget_translate_review_text":"Translate review to {{ language }}","widget_translating_review_text":"Translating...","widget_show_original_translation_text":"Show original ({{ language }})","widget_translate_review_failed_text":"Review couldn't be translated.","widget_translate_review_retry_text":"Retry","widget_translate_review_try_again_later_text":"Try again later","show_product_url_for_grouped_product":false,"widget_sorting_pictures_first_text":"Pictures First","show_pictures_on_all_rev_page_mobile":false,"show_pictures_on_all_rev_page_desktop":false,"floating_tab_hide_mobile_install_preference":false,"floating_tab_button_name":"â
Reviews","floating_tab_title":"Let customers speak for us","floating_tab_button_color":"","floating_tab_button_background_color":"","floating_tab_url":"","floating_tab_url_enabled":false,"floating_tab_tab_style":"text","all_reviews_text_badge_text":"Customers rate us {{ shop.metafields.judgeme.all_reviews_rating | round: 1 }}/5 based on {{ shop.metafields.judgeme.all_reviews_count }} reviews.","all_reviews_text_badge_text_branded_style":"{{ shop.metafields.judgeme.all_reviews_rating | round: 1 }} out of 5 stars based on {{ shop.metafields.judgeme.all_reviews_count }} reviews","is_all_reviews_text_badge_a_link":false,"show_stars_for_all_reviews_text_badge":false,"all_reviews_text_badge_url":"","all_reviews_text_style":"text","all_reviews_text_color_style":"judgeme_brand_color","all_reviews_text_color":"#108474","all_reviews_text_show_jm_brand":true,"featured_carousel_show_header":true,"featured_carousel_title":"Who Loves Luke's?","testimonials_carousel_title":"Customers are saying","videos_carousel_title":"Real customer stories","cards_carousel_title":"Customers are saying","featured_carousel_count_text":"from {{ n }} reviews","featured_carousel_add_link_to_all_reviews_page":false,"featured_carousel_url":"","featured_carousel_show_images":true,"featured_carousel_autoslide_interval":5,"featured_carousel_arrows_on_the_sides":false,"featured_carousel_height":300,"featured_carousel_width":80,"featured_carousel_image_size":0,"featured_carousel_image_height":250,"featured_carousel_arrow_color":"#eeeeee","verified_count_badge_style":"vintage","verified_count_badge_orientation":"horizontal","verified_count_badge_color_style":"judgeme_brand_color","verified_count_badge_color":"#108474","is_verified_count_badge_a_link":false,"verified_count_badge_url":"","verified_count_badge_show_jm_brand":true,"widget_rating_preset_default":5,"widget_first_sub_tab":"product-reviews","widget_show_histogram":true,"widget_histogram_use_custom_color":true,"widget_pagination_use_custom_color":false,"widget_star_use_custom_color":true,"widget_verified_badge_use_custom_color":false,"widget_write_review_use_custom_color":false,"picture_reminder_submit_button":"Upload Pictures","enable_review_videos":false,"mute_video_by_default":false,"widget_sorting_videos_first_text":"Videos First","widget_review_pending_text":"Pending","featured_carousel_items_for_large_screen":4,"social_share_options_order":"Facebook,Twitter","remove_microdata_snippet":false,"disable_json_ld":false,"enable_json_ld_products":false,"preview_badge_show_question_text":false,"preview_badge_no_question_text":"No questions","preview_badge_n_question_text":"{{ number_of_questions }} question/questions","qa_badge_show_icon":false,"qa_badge_position":"same-row","remove_judgeme_branding":true,"widget_add_search_bar":false,"widget_search_bar_placeholder":"Search","widget_sorting_verified_only_text":"Verified only","widget_sorting_most_relevant_text":"Most Relevant","featured_carousel_theme":"compact","featured_carousel_show_rating":true,"featured_carousel_show_title":true,"featured_carousel_show_body":true,"featured_carousel_show_date":false,"featured_carousel_show_reviewer":true,"featured_carousel_show_product":false,"featured_carousel_header_background_color":"#108474","featured_carousel_header_text_color":"#ffffff","featured_carousel_name_product_separator":"reviewed","featured_carousel_full_star_background":"#2e465d","featured_carousel_empty_star_background":"#dadada","featured_carousel_vertical_theme_background":"#f9fafb","featured_carousel_verified_badge_enable":false,"featured_carousel_verified_badge_color":"#108474","featured_carousel_border_style":"round","featured_carousel_review_line_length_limit":3,"featured_carousel_more_reviews_button_text":"Read more reviews","featured_carousel_view_product_button_text":"View product","all_reviews_page_load_reviews_on":"scroll","all_reviews_page_load_more_text":"Load More Reviews","disable_fb_tab_reviews":false,"enable_ajax_cdn_cache":false,"widget_public_name_text":"displayed publicly like","default_reviewer_name":"John Smith","default_reviewer_name_has_non_latin":true,"widget_reviewer_anonymous":"Anonymous","medals_widget_title":"Judge.me Review Medals","medals_widget_background_color":"#f9fafb","medals_widget_position":"footer_all_pages","medals_widget_border_color":"#f9fafb","medals_widget_verified_text_position":"left","medals_widget_use_monochromatic_version":false,"medals_widget_elements_color":"#108474","show_reviewer_avatar":true,"widget_invalid_yt_video_url_error_text":"Not a YouTube video URL","widget_max_length_field_error_text":"Please enter no more than {0} characters.","widget_show_country_flag":false,"widget_show_collected_via_shop_app":true,"widget_verified_by_shop_badge_style":"light","widget_verified_by_shop_text":"Verified by Shop","widget_show_photo_gallery":false,"widget_load_with_code_splitting":true,"widget_ugc_install_preference":false,"widget_ugc_title":"Made by us, Shared by you","widget_ugc_subt
2960itle":"Tag us to see your picture featured in our page","widget_ugc_arrows_color":"#ffffff","widget_ugc_primary_button_text":"Buy Now","widget_ugc_primary_button_background_color":"#108474","widget_ugc_primary_button_text_color":"#ffffff","widget_ugc_primary_button_border_width":"0","widget_ugc_primary_button_border_style":"none","widget_ugc_primary_button_border_color":"#108474","widget_ugc_primary_button_border_radius":"25","widget_ugc_secondary_button_text":"Load More","widget_ugc_secondary_button_background_color":"#ffffff","widget_ugc_secondary_button_text_color":"#108474","widget_ugc_secondary_button_border_width":"2","widget_ugc_secondary_button_border_style":"solid","widget_ugc_secondary_button_border_color":"#108474","widget_ugc_secondary_button_border_radius":"25","widget_ugc_reviews_button_text":"View Reviews","widget_ugc_reviews_button_background_color":"#ffffff","widget_ugc_reviews_button_text_color":"#108474","widget_ugc_reviews_button_border_width":"2","widget_ugc_reviews_button_border_style":"solid","widget_ugc_reviews_button_border_color":"#108474","widget_ugc_reviews_button_border_radius":"25","widget_ugc_reviews_button_link_to":"judgeme-reviews-page","widget_ugc_show_post_date":true,"widget_ugc_max_width":"800","widget_rating_metafield_value_type":true,"widget_primary_color":"#2e475e","widget_enable_secondary_color":false,"widget_secondary_color":"#edf5f5","widget_summary_average_rating_text":"{{ average_rating }} out of 5","widget_media_grid_title":"Customer photos \u0026 videos","widget_media_grid_see_more_text":"See more","widget_round_style":false,"widget_show_product_medals":true,"widget_verified_by_judgeme_text":"Verified by Judge.me","widget_show_store_medals":true,"widget_verified_by_judgeme_text_in_store_medals":"Verified by Judge.me","widget_media_field_exceed_quantity_message":"Sorry, we can only accept {{ max_media }} for one review.","widget_media_field_exceed_limit_message":"{{ file_name }} is too large, please select a {{ media_type }} less than {{ size_limit }}MB.","widget_review_submitted_text":"Review Submitted!","widget_question_submitted_text":"Question Submitted!","widget_close_form_text_question":"Cancel","widget_write_your_answer_here_text":"Write your answer here","widget_enabled_branded_link":true,"widget_show_collected_by_judgeme":false,"widget_reviewer_name_color":"","widget_write_review_text_color":"","widget_write_review_bg_color":"","widget_collected_by_judgeme_text":"collected by Judge.me","widget_pagination_type":"standard","widget_load_more_text":"Load More","widget_load_more_color":"#108474","widget_full_review_text":"Full Review","widget_read_more_reviews_text":"Read More Reviews","widget_read_questions_text":"Read Questions","widget_questions_and_answers_text":"Questions \u0026 Answers","widget_verified_by_text":"Verified by","widget_verified_text":"Verified","widget_number_of_reviews_text":"{{ number_of_reviews }} reviews","widget_back_button_text":"Back","widget_next_button_text":"Next","widget_custom_forms_filter_button":"Filters","custom_forms_style":"vertical","widget_show_review_information":false,"how_reviews_are_collected":"How reviews are collected?","widget_show_review_keywords":false,"widget_gdpr_statement":"How we use your data: We'll only contact you about the review you left, and only if necessary. By submitting your review, you agree to Judge.me's \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms\u003c/a\u003e, \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy\u003c/a\u003e and \u003ca href='https://judge.me/content-policy' target='_blank' rel='nofollow noopener'\u003econtent\u003c/a\u003e policies.","widget_multilingual_sorting_enabled":false,"widget_translate_review_content_enabled":false,"widget_translate_review_content_method":"manual","popup_widget_review_selection":"automatically_with_pictures","popup_widget_round_border_style":true,"popup_widget_show_title":true,"popup_widget_show_body":true,"popup_widget_show_reviewer":false,"popup_widget_show_product":true,"popup_widget_show_pictures":true,"popup_widget_use_review_picture":true,"popup_widget_show_on_home_page":true,"popup_widget_show_on_product_page":true,"popup_widget_show_on_collection_page":true,"popup_widget_show_on_cart_page":true,"popup_widget_position":"bottom_left","popup_widget_first_review_delay":5,"popup_widget_duration":5,"popup_widget_interval":5,"popup_widget_review_count":5,"popup_widget_hide_on_mobile":true,"review_snippet_widget_round_border_style":true,"review_snippet_widget_card_color":"#FFFFFF","review_snippet_widget_text_color":"#000000","review_snippet_widget_lighter_text_color":"#7B7B7B","review_snippet_widget_slider_arrows_background_color":"#FFFFFF","review_snippet_widget_slider_arrows_color":"#000000","review_snippet_widget_star_color":"#2e475e","show_product_variant":false,"all_reviews_product_variant_label_text":"Variant: ","widget_show_verified_branding":false,"widget_ai_summary_title":"Customers say","widget_ai_summary_disclaimer":"AI-powered review summary based on recent customer reviews","widget_show_ai_summary":false,"widget_show_ai_summary_bg":false,"write_review_button_visibility":"everyone","store_summary_widget_heading":"Customers rate this store","store_summary_widget_button_text":"View customer reviews","store_summary_widget_button_theme_text":"See AI reviews summary","widget_show_review_title_input":true,"widget_autofill_review_title":true,"redirect_reviewers_invited_via_email":"review_widget","request_store_review_after_product_review":false,"request_review_other_products_in_order":false,"review_form_color_scheme":"default","review_form_corner_style":"square","review_form_star_color":"#2e475e","review_form_text_color":"#333333","review_form_background_color":"#ffffff","review_form_field_background_color":"#fafafa","review_form_button_color":"#2e475e","review_form_button_text_color":"#ffffff","review_form_modal_overlay_color":"#000000","review_form_theme":"multi_step","review_form_location":"in_store_popup","review_form_external_page_background_color":"#C5F7F0","review_content_screen_title_text":"How would you rate this product?","review_content_introduction_text":"We would love it if you would share a bit about your experience.","store_review_form_title_text":"How would you rate this store?","store_review_form_introduction_text":"We would love it if you would share a bit about your experience.","show_review_guidance_text":true,"one_star_review_guidance_text":"Poor","five_star_review_guidance_text":"Great","customer_information_screen_title_text":"About you","customer_information_introduction_text":"Please tell us more about you.","custom_questions_screen_title_text":"Your experience in more detail","custom_questions_introduction_text":"Here are a few questions to help us understand more about your experience.","review_submitted_screen_title_text":"Thanks for your review!","review_submitted_screen_thank_you_text":"We are processing it and it will appear on the store soon.","review_submitted_screen_email_verification_text":"Please confirm your email by clicking the link we just sent you. This helps us keep reviews authentic.","confirm_email_screen_title_text":"Confirm your email","confirm_email_screen_message_text":"To help keep reviews authentic, we'll send you a secure link to continue writing your review. It only takes a moment.","check_email_screen_title_text":"Check your email","check_email_screen_message_text":"We sent you an email to {{ email }}. Click the button on the email to continue.","check_email_screen_resend_message_text":"Email resent!","check_email_resend_hint_text":"Didn't get the email? Check your spam folder or [resend the email].","verification_email_rate_limit_error_text":"You've reached the limit for review attempts on this product. Please check your inbox or try again later.","review_submitted_request_store_review_text":"Would you like to share your experience of shopping with us?","review_submitted_review_other_products_text":"Would you like to review these products?","store_review_screen_title_text":"Would you like to share your experience of shopping with us?","store_review_introduction_text":"We value your feedback and use it to improve. Please share any thoughts or suggestions you have.","reviewer_media_screen_title_picture_text":"Share a picture","reviewer_media_introduction_picture_text":"Upload a photo to support your review.","reviewer_media_screen_title_video_text":"Share a video","reviewer_media_introduction_video_text":"Upload a video to support your review.","reviewer_media_screen_title_picture_or_video_text":"Share a picture or video","reviewer_media_introduction_picture_or_video_text":"Upload a photo or video to support your review.","reviewer_media_
2960youtube_url_text":"Paste your Youtube URL here","advanced_settings_next_step_button_text":"Next","advanced_settings_close_review_button_text":"Close","modal_write_review_flow":false,"write_review_flow_required_text":"Required","write_review_flow_privacy_message_text":"We respect your privacy.","write_review_flow_anonymous_text":"Post review as anonymous","write_review_flow_visibility_text":"This won't be visible to other customers.","write_review_flow_multiple_selection_help_text":"Select as many as you like","write_review_flow_single_selection_help_text":"Select one option","write_review_flow_required_field_error_text":"This field is required","write_review_flow_invalid_email_error_text":"Please enter a valid email address","write_review_flow_max_length_error_text":"Max. {{ max_length }} characters.","write_review_flow_media_upload_text":"\u003cb\u003eClick to upload\u003c/b\u003e or drag and drop","write_review_flow_gdpr_statement":"We'll only contact you about your review if necessary. By submitting your review, you agree to our \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms and conditions\u003c/a\u003e and \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy policy\u003c/a\u003e.","rating_only_reviews_enabled":false,"show_negative_reviews_help_screen":false,"new_review_flow_help_screen_rating_threshold":3,"negative_review_resolution_screen_title_text":"Tell us more","negative_review_resolution_text":"Your experience matters to us. If there were issues with your purchase, we're here to help. Feel free to reach out to us, we'd love the opportunity to make things right.","negative_review_resolution_button_text":"Contact us","negative_review_resolution_proceed_with_review_text":"Leave a review","negative_review_resolution_subject":"Issue with purchase from {{ shop_name }}.{{ order_name }}","coupon_promo_intro_any_review_text":"Write a review and get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_with_photo_text":"Write a review and add a photo or video to get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_with_video_text":"Write a review and add a video to get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_up_to_any_review_text":"Write a review and get a coupon for up to {{ amount }} off your next purchase","coupon_promo_intro_up_to_with_photo_text":"Write a review and add a photo or video to get a coupon for up to {{ amount }} off your next purchase","coupon_promo_intro_external_text":"Write a review and get a reward for your next purchase","coupon_promo_intro_external_with_photo_text":"Write a review and add a photo or video to get a reward for your next purchase","coupon_promo_intro_external_with_video_text":"Write a review and add a video to get a reward for your next purchase","coupon_promo_media_photo_text":"Add a photo or video and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_photo_only_text":"Add a photo and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_video_text":"Add a video and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_external_photo_text":"Add a photo or video and get a reward for your next purchase","coupon_promo_media_external_photo_only_text":"Add a photo and get a reward for your next purchase","coupon_promo_media_external_video_text":"Add a video and get a reward for your next purchase","coupon_promo_success_text":"You've got a coupon for your next purchase at {{ shop_name }}!","coupon_promo_success_subtext":"You'll receive your coupon email within the hour.","preview_badge_collection_page_install_status":false,"widget_review_custom_css":"","preview_badge_custom_css":"","preview_badge_stars_count":"5-stars","featured_carousel_custom_css":"","floating_tab_custom_css":"","all_reviews_widget_custom_css":"","medals_widget_custom_css":"","verified_badge_custom_css":"","all_reviews_text_custom_css":"","transparency_badges_collected_via_store_invite":false,"transparency_badges_from_another_provider":false,"transparency_badges_collected_from_store_visitor":false,"transparency_badges_collected_by_verified_review_provider":true,"transparency_badges_earned_reward":false,"transparency_badges_collected_via_store_invite_text":"Review collected via store invitation","transparency_badges_from_another_provider_text":"Review collected from another provider","transparency_badges_collected_from_store_visitor_text":"Review collected from a store visitor","transparency_badges_written_in_google_text":"Review written in Google","transparency_badges_written_in_etsy_text":"Review written in Etsy","transparency_badges_written_in_shop_app_text":"Review written in Shop App","transparency_badges_earned_reward_text":"Review earned a reward for future purchase","product_review_widget_per_page":3,"widget_other_languages_reviews_per_page":3,"widget_store_review_label_text":"Review about the store","widget_cart_mode_aggregate_heading_text":"Customers rate this store","checkout_comment_extension_title_on_product_page":"Customer Comments","checkout_comment_extension_num_latest_comment_show":5,"checkout_comment_extension_format":"name_and_timestamp","checkout_comment_customer_name":"last_initial","checkout_comment_comment_notification":true,"preview_badge_collection_page_install_preference":false,"preview_badge_home_page_install_preference":false,"preview_badge_product_page_install_preference":true,"review_widget_install_preference":"","review_carousel_install_preference":false,"floating_reviews_tab_install_preference":"none","verified_reviews_count_badge_install_preference":false,"all_reviews_text_install_preference":false,"review_widget_best_location":true,"judgeme_medals_install_preference":false,"review_widget_revamp_enabled":false,"review_widget_qna_enabled":false,"review_widget_header_theme":"minimal","review_widget_widget_title_enabled":true,"review_widget_header_text_size":"medium","review_widget_header_text_weight":"regular","review_widget_average_rating_style":"compact","review_widget_bar_chart_enabled":true,"review_widget_bar_chart_type":"numbers","review_widget_bar_chart_style":"standard","review_widget_expanded_media_gallery_enabled":false,"review_widget_show_review_highlights":false,"review_widget_show_review_keywords_in_gray":false,"review_widget_reviews_section_theme":"standard","review_widget_image_style":"thumbnails","review_widget_review_image_ratio":"square","review_widget_stars_size":"medium","review_widget_verified_badge":"standard_text","review_widget_review_title_text_size":"medium","review_widget_review_text_size":"medium","review_widget_review_text_length":"medium","review_widget_number_of_columns_desktop":3,"review_widget_carousel_transition_speed":5,"review_widget_custom_questions_answers_display":"always","review_widget_card_section_size":"small","review_widget_button_text_color":"#FFFFFF","review_widget_text_color":"#000000","review_widget_lighter_text_color":"#7B7B7B","review_widget_corner_styling":"soft","review_widget_review_word_singular":"review","review_widget_review_word_plural"
2960:"reviews","review_widget_voting_label":"Helpful?","review_widget_shop_reply_label":"Reply from {{ shop_name }}:","review_widget_filters_title":"Filters","review_widget_filter_rating_title":"Rating","review_widget_filter_keyword_title":"Keyword","review_widget_clear_filters_text":"Clear filters","review_widget_expand_more_text":"More","review_widget_review_highlights_title":"Review highlights","qna_widget_question_word_singular":"Question","qna_widget_question_word_plural":"Questions","qna_widget_answer_reply_label":"Answer from {{ answerer_name }}:","qna_content_screen_title_text":"Ask a question about this product","qna_widget_question_required_field_error_text":"Please enter your question.","qna_widget_flow_gdpr_statement":"We'll only contact you about your question if necessary. By submitting your question, you agree to our \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms and conditions\u003c/a\u003e and \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy policy\u003c/a\u003e.","qna_widget_question_submitted_text":"Thanks for your question!","qna_widget_close_form_text_question":"Close","qna_widget_question_submit_success_text":"Weâll notify you by email when your question is answered.","all_reviews_widget_v2025_enabled":false,"all_reviews_widget_v2025_header_theme":"default","all_reviews_widget_v2025_widget_title_enabled":true,"all_reviews_widget_v2025_header_text_size":"medium","all_reviews_widget_v2025_header_text_weight":"regular","all_reviews_widget_v2025_average_rating_style":"compact","all_reviews_widget_v2025_bar_chart_enabled":true,"all_reviews_widget_v2025_bar_chart_type":"numbers","all_reviews_widget_v2025_bar_chart_style":"standard","all_reviews_widget_v2025_expanded_media_gallery_enabled":false,"all_reviews_widget_v2025_show_store_medals":true,"all_reviews_widget_v2025_show_photo_gallery":true,"all_reviews_widget_v2025_show_review_keywords":false,"all_reviews_widget_v2025_show_ai_summary":false,"all_reviews_widget_v2025_show_ai_summary_bg":false,"all_reviews_widget_v2025_show_review_highlights":false,"all_reviews_widget_v2025_show_review_keywords_in_gray":false,"all_reviews_widget_v2025_add_search_bar":false,"all_reviews_widget_v2025_default_sort_method":"most-recent","all_reviews_widget_v2025_reviews_per_page":10,"all_reviews_widget_v2025_reviews_section_theme":"default","all_reviews_widget_v2025_image_style":"thumbnails","all_reviews_widget_v2025_review_image_ratio":"square","all_reviews_widget_v2025_stars_size":"medium","all_reviews_widget_v2025_verified_badge":"standard_text","all_reviews_widget_v2025_review_title_text_size":"medium","all_reviews_widget_v2025_review_text_size":"medium","all_reviews_widget_v2025_review_text_length":"medium","all_reviews_widget_v2025_number_of_columns_desktop":3,"all_reviews_widget_v2025_carousel_transition_speed":5,"all_reviews_widget_v2025_custom_questions_answers_display":"always","all_reviews_widget_v2025_review_dates":false,"all_reviews_widget_v2025_card_section_size":"small","all_reviews_widget_v2025_show_product_variant":false,"all_reviews_widget_v2025_show_reviewer_avatar":true,"all_reviews_widget_v2025_reviewer_name_as_initial":"","all_reviews_widget_v2025_review_location_show":false,"all_reviews_widget_v2025_location_format":"","all_reviews_widget_v2025_show_country_flag":false,"all_reviews_widget_v2025_widget_thumb":false,"all_reviews_widget_v2025_verified_by_shop_badge_style":"light","all_reviews_widget_v2025_social_share":false,"all_reviews_widget_v2025_social_share_options_order":"Facebook,Twitter,LinkedIn,Pinterest","all_reviews_widget_v2025_pagination_type":"standard","all_reviews_widget_v2025_button_text_color":"#FFFFFF","all_reviews_widget_v2025_text_color":"#000000","all_reviews_widget_v2025_lighter_text_color":"#7B7B7B","all_reviews_widget_v2025_corner_styling":"soft","all_reviews_widget_v2025_title":"Customer reviews","all_reviews_widget_v2025_ai_summary_title":"Customers say about this store","all_reviews_widget_v2025_no_review_text":"Be the first to write a review","all_reviews_widget_v2025_review_highlights_title":"Review highlights","reviews_grid_widget_show_sample_reviews":false,"reviews_grid_widget_review_selection":"all","reviews_grid_widget_select_products":[],"reviews_grid_widget_show_media_only":false,"reviews_grid_widget_display_order":"media_first","reviews_grid_widget_card_grouping":"per_media","reviews_grid_widget_columns_desktop":3,"reviews_grid_widget_rows_desktop":3,"reviews_grid_widget_columns_mobile":2,"reviews_grid_widget_rows_mobile":6,"reviews_grid_widget_show_stars":true,"reviews_grid_widget_show_reviewer_name":true,"reviews_grid_widget_show_review_title_on_hover_desktop":true,"reviews_grid_widget_corner_styling":"soft","reviews_grid_widget_card_spacing":"medium","reviews_grid_widget_header_text_color":"#000000","reviews_grid_widget_star_and_reviewer_name_color":"#F9F9F9","reviews_grid_widget_overlay_and_background_color":"#000000","reviews_grid_widget_content_color":"#F9F9F9","reviews_grid_widget_header_text":"From our customers","reviews_grid_widget_show_average_rating":true,"trust_badge_enabled":false,"trust_badge_structure":"outline","trust_badge_color":"black","trust_badge_star":"black","trust_badge_rating_display_default":"show_avg_text","platform":"shopify","branding_url":"https://app.judge.me/reviews/stores/lukeslobster.com","branding_text":"Powered by Judge.me","locale":"en","reply_name":" Luke's Lobster","shop_currency":"USD","widget_version":"3.0","footer":true,"autopublish":false,"review_dates":true,"enable_custom_form":false,"shop_use_review_site":true,"shop_locale":"en","enable_multi_locales_translations":true,"show_review_title_input":true,"autofill_review_title":true,"review_verification_email_status":"never","require_verification_before_submit":false,"sign_in_with_
2960shop_enabled":false,"customer_account_validation_enabled":true,"most_relevant_sort_enabled":false,"coupon_promo_invited_eligible":true,"coupon_promo_web_eligible":false,"uses_coupon_integration":true,"uses_external_coupon":false,"can_be_branded":true,"rtl_stars_enabled_ar":true,"rtl_stars_enabled_he":true,"reply_name_text":" Luke's Lobster"};</script>
2960 <style class='jdgm-settings-style'>.jdgm-xx{left:0}:root{--jdgm-primary-color: #2e475e;--jdgm-secondary-color: rgba(46,71,94,0.1);--jdgm-star-color: #2e475e;--jdgm-write-review-text-color: white;--jdgm-write-review-bg-color: #2e475e;--jdgm-paginate-color: #2e475e;--jdgm-border-radius: 0;--jdgm-reviewer-name-color: #2e475e}.jdgm-histogram__bar-content{background-color:#2e475e}.jdgm-rev[data-verified-buyer=true] .jdgm-rev__icon.jdgm-rev__icon:after,.jdgm-rev__buyer-badge.jdgm-rev__buyer-badge{color:white;background-color:#2e475e}.jdgm-review-widget--small .jdgm-gallery.jdgm-gallery .jdgm-gallery__thumbnail-link:nth-child(8) .jdgm-gallery__thumbnail-wrapper.jdgm-gallery__thumbnail-wrapper:before{content:"See more"}@media only screen and (min-width: 768px){.jdgm-gallery.jdgm-gallery .jdgm-gallery__thumbnail-link:nth-child(8) .jdgm-gallery__thumbnail-wrapper.jdgm-gallery__thumbnail-wrapper:before{content:"See more"}}.jdgm-rev__thumb-btn{color:#2e475e}.jdgm-rev__thumb-btn:hover{opacity:0.8}.jdgm-rev__thumb-btn:not([disabled]):hover,.jdgm-rev__thumb-btn:hover,.jdgm-rev__thumb-btn:active,.jdgm-rev__thumb-btn:visited{color:#2e475e}.jdgm-preview-badge .jdgm-star.jdgm-star{color:#2e475e}.jdgm-prev-badge[data-average-rating='0.00']{display:none !important}.jdgm-widget.jdgm-all-reviews-widget,.jdgm-widget .jdgm-rev-widg{border:none;padding:0}.jdgm-author-fullname{display:none !important}.jdgm-author-all-initials{display:none !important}.jdgm-rev-widg__title{visibility:hidden}.jdgm-rev-widg__summary-text{visibility:hidden}.jdgm-prev-badge__text{visibility:hidden}.jdgm-rev__prod-link-prefix:before{content:'about'}.jdgm-rev__variant-label:before{content:'Variant: '}.jdgm-rev__out-of-store-text:before{content:'(out of store)'}@media only screen and (min-width: 768px){.jdgm-rev__pics .jdgm-rev_all-rev-page-picture-separator,.jdgm-rev__pics .jdgm-rev__product-picture{display:none}}@media only screen and (max-width: 768px){.jdgm-rev__pics .jdgm-rev_all-rev-page-picture-separator,.jdgm-rev__pics .jdgm-rev__product-picture{display:none}}.jdgm-preview-badge[data-template="collection"]{display:none !important}.jdgm-preview-badge[data-template="index"]{display:none !important}.jdgm-verified-count-badget[data-from-snippet="true"]{display:none !important}.jdgm-carousel-wrapper[data-from-snippet="true"]{display:none !important}.jdgm-all-reviews-text[data-from-snippet="true"]{display:none !important}.jdgm-medals-section[data-from-snippet="true"]{display:none !important}.jdgm-ugc-media-wrapper[data-from-snippet="true"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_via_store_invitation"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_from_another_provider"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_from_store_visitor"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_earned_for_future_purchase"]{display:none !important}.jdgm-review-snippet-widget{--jdgm-snippet-card-color: #fff;--jdgm-snippet-text-color: #000;--jdgm-snippet-lighter-text-color: #7B7B7B;--jdgm-snippet-star-color: #2e475e;--jdgm-snippet-border-radius: 8px;--jdgm-snippet-arrows-bg-color: #fff;--jdgm-snippet-arrows-color: #000}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__cards-container .jdgm-rev-snippet-card{border-radius:8px;background:#fff}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__cards-container .jdgm-rev-snippet-card__rev-rating .jdgm-star{color:#2e475e}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__prev-btn,.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__next-btn{border-radius:50%;background:#fff}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__prev-btn>svg,.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__next-btn>svg{fill:#000}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jm-mfp-content,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__icon,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__pic-img,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__reply{border-radius:8px}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev[data-verified-buyer="true"] .jdgm-full-rev__icon::after{border-radius:8px}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-rev__buyer-badge{border-radius:calc( 8px / 2 )}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-full-rev__replier::before{content:' Luke's Lobster'}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-full-rev__product-button{border-radius:calc( 8px * 6 )} 2961</style> <style class='jdgm-settings-style'></style> 2962 2963 2964 2965 2966 <style class='jdgm-miracle-styles'> 2967 @-webkit-keyframes jdgm-spin{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes jdgm-spin{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@font-face{font-family:'JudgemeStar';src:url("data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAAScAA0AAAAABrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEgAAAABoAAAAcbyQ+3kdERUYAAARgAAAAHgAAACAAMwAGT1MvMgAAAZgAAABGAAAAVi+vS9xjbWFwAAAB8AAAAEAAAAFKwBMjvmdhc3AAAARYAAAACAAAAAj//wADZ2x5ZgAAAkAAAAEJAAABdH33LXtoZWFkAAABMAAAAC0AAAA2BroQKWhoZWEAAAFgAAAAHAAAACQD5QHQaG10eAAAAeAAAAAPAAAAFAYAAABsb2NhAAACMAAAAA4AAAAOAO4AeG1heHAAAAF8AAAAHAAAACAASgAvbmFtZQAAA0wAAADeAAABkorWfVZwb3N0AAAELAAAACkAAABEp3ubLXgBY2BkYADhPPP4OfH8Nl8ZuJkYQODS2fRrCPr/aSYGxq1ALgcDWBoAO60LkwAAAHgBY2BkYGDc+v80gx4TAwgASaAICmABAFB+Arl4AWNgZGBgYGPQYWBiAAIwyQgWc2AAAwAHVQB6eAFjYGRiYJzAwMrAwejDmMbAwOAOpb8ySDK0MDAwMbByMsCBAAMCBKS5pjA4PGB4wMR44P8BBj3GrQymQGFGkBwAjtgK
2967/gAAeAFjYoAAEA1jAwAAZAAHAHgB3crBCcAwDEPRZydkih567CDdf4ZskmLwFBV8xBfCaC4BXkOUmx4sU0h2ngNb9V0vQCxaRKIAevT7fGWuBrEAAAAAAAAAAAA0AHgAugAAeAF9z79Kw1AUx/FzTm7un6QmJtwmQ5Bg1abgEGr/BAqlU6Gju+Cgg1MkQ/sA7Vj7BOnmO/gUvo2Lo14NqIO6/IazfD8HEODtmQCfoANwNsyp2/GJt3WKQrd1NLiYYWx2PBqOsmJMEOznPOTzfSCrhAtbbLdmeFLJV9eKd63WLrZcIcuaEVdssWCKM6pLCfTVOYbz/0pNSMSZKLIZpvh78sAUH6PlMrreTCabP9r+Z/puPZ2ur/RqpQHgh+MIegCnXeM4MRAPjYN//5tj4ZtTjkFqEdmeMShlEJ7tVAly2TAkx6R68Fl4E/aVvn8JqHFQ4JS1434gXKcuL31dDhzs3YbsEOAd/IU88gAAAHgBfY4xTgMxEEVfkk0AgRCioKFxQYd2ZRtpixxgRU2RfhU5q5VWseQ4JdfgAJyBlmNwAM7ABRhZQ0ORwp7nr+eZAa54YwYg9zm3ynPOeFRe8MCrciXOh/KSS76UV5L/iDmrLiS5AeU519wrL3jmSbkS5115yR2fyivJv9kx0ZMZ2RLZw27q87iNQi8EBo5FSPIMw3HqBboi5lKTGAGDp8FKXWP+t9TU01Lj5His1Ba6uM9dTEMwvrFmbf5GC/q2drW3ruXUhhsCiQOjznFlCzYhHUZp4xp76vsvQh89CQAAeAFjYGJABowM6IANLMrEyMTIzMjCXpyRWJBqZshWXJJYBKOMAFHFBucAAAAAAAAB//8AAngBY2BkYGDgA2IJBhBgAvKZGViBJAuYxwAABJsAOgAAeAFjYGBgZACCk535hiD60tn0azAaAEqpB6wAAA==") format("woff");font-weight:normal;font-style:normal}.jdgm-star{font-family:'JudgemeStar';display:inline !important;text-decoration:none !important;padding:0 4px 0 0 !important;margin:0 !important;font-weight:bold;opacity:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.jdgm-star:hover{opacity:1}.jdgm-star:last-of-type{padding:0 !important}.jdgm-star.jdgm--on:before{content:"\e000"}.jdgm-star.jdgm--off:before{content:"\e001"}.jdgm-star.jdgm--half:before{content:"\e002"}.jdgm-widget *{margin:0;line-height:1.4;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch}.jdgm-hidden{display:none !important;visibility:hidden !important}.jdgm-temp-hidden{display:none}.jdgm-spinner{width:40px;height:40px;margin:auto;border-radius:50%;border-top:2px solid #eee;border-right:2px solid #eee;border-bottom:2px solid #eee;border-left:2px solid #ccc;-webkit-animation:jdgm-spin 0.8s infinite linear;animation:jdgm-spin 0.8s infinite linear}.jdgm-prev-badge{display:block !important} 2968 2969</style> 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982
2982<script id="judgeme_widget_carousel_js" data-cfasync="false" type="text/javascript" async src="https://cdn.shopify.com/extensions/01a0cdf8-b2d2-7ccd-a251-5cf8c66ad2ca/judgeme-762/assets/widget_v3_theme_carousel.js"></script>
2982 2983 2984 2985 2986 2987 2988 <link id="judgeme_widget_carousel_css" rel="stylesheet" type="text/css" media="nope!" onload="this.media='all'" href="https://cdn.shopify.com/extensions/01a0cdf8-b2d2-7ccd-a251-5cf8c66ad2ca/judgeme-762/assets/widget_v3_theme_carousel.css"> 2989 2990 2991 2992
2993<script data-cfasync='false' class='jdgm-script'> 2994!function(e){window.jdgm=window.jdgm||{}; 2995/* INF-1976 */ 2996var _jdgmBlocked=function(){var raw=(window.jdgmSettings||{}).hostname_allowlist;var list=(raw==null?"":""+raw).split(/[\s,]+/).map(function(h){return h.trim().toLowerCase().replace(/\.$/,"");}).filter(function(h){return h;});if(!list.length)return false;var host=(e.location.hostname||"").toLowerCase().replace(/\.$/,"");if(/(^|\.)shopifypreview\.com$/.test(host))return false;var bare=host.replace(/^www\./,"");for(var i=0;i<list.length;i++){var en=list[i];if(en.indexOf("*.")===0){var b=en.slice(2);if(host===b||host.slice(-(b.length+1))==="."+b)return false;}else if(bare===en.replace(/^www\./,""))return false;}return true;}(); 2997if(_jdgmBlocked){jdgm._loaderExecuted=true;jdgm._blocked=true;var _jdgmS=e.createElement("style");_jdgmS.textContent='[class^="jdgm-"],[class*=" jdgm-"]{display:none !important}';(e.head||e.documentElement).appendChild(_jdgmS);return;} 2998jdgm.CDN_HOST="https://cdnwidget.judge.me/",jdgm.CDN_HOST_ALT="https://cdn2.judge.me/cdn/widget_frontend/",jdgm.API_HOST="https://api.judge.me/",jdgm.CDN_BASE_URL="https://cdn.shopify.com/extensions/01a0cdf8-b2d2-7ccd-a251-5cf8c66ad2ca/judgeme-762/assets/",jdgm.CDN_API_HOST="https://cdn.judge.me/", 2999jdgm.docReady=function(d){(e.attachEvent?"complete"===e.readyState:"loading"!==e.readyState)? 3000setTimeout(d,0):e.addEventListener("DOMContentLoaded",d)},jdgm.loadCSS=function(d,t,o,a){ 3001!o&&jdgm.loadCSS.requestedUrls.indexOf(d)>=0||(jdgm.loadCSS.requestedUrls.push(d), 3002(a=e.createElement("link")).rel="stylesheet",a.class="jdgm-stylesheet",a.media="nope!", 3003a.href=d,a.onload=function(){this.media="all",t&&setTimeout(t)},e.body.appendChild(a))}, 3004jdgm.loadCSS.requestedUrls=[],jdgm.loadJS=function(e,d){var t=new XMLHttpRequest; 3005t.onreadystatechange=function(){4===t.readyState&&t.status>=200&&t.status<300&&(Function(t.response)(),d&&d(t.response))}, 3006t.open("GET",e),t.onerror=function(){if(e.indexOf(jdgm.CDN_HOST)===0&&jdgm.CDN_HOST_ALT!==jdgm.CDN_HOST){var f=e.replace(jdgm.CDN_HOST,jdgm.CDN_HOST_ALT);jdgm.loadJS(f,d)}},t.send()},jdgm.docReady((function(){(window.jdgmLoadCSS||e.querySelectorAll( 3007".jdgm-widget, .jdgm-all-reviews-page").length>0)&&(jdgmSettings.widget_load_with_code_splitting? 3008parseFloat(jdgmSettings.widget_version)>=3?jdgm.loadCSS(jdgm.CDN_BASE_URL+"widget_v3_base.css"): 3009jdgm.loadCSS(jdgm.CDN_BASE_URL+"widget_base.css"):jdgm.loadCSS(jdgm.CDN_BASE_URL+"shopify_v2.css") 3010)}))}(document); 3011</script>
3011 3012<noscript><link rel="stylesheet" type="text/css" media="all" href="https://cdn.shopify.com/extensions/01a0cdf8-b2d2-7ccd-a251-5cf8c66ad2ca/judgeme-762/assets/shopify_v2.css"></noscript> 3013 3014<!-- BEGIN app snippet: theme_fix_tags -->
3014<script> 3015 (function() { 3016 var jdgmThemeFixes = null; 3017 if (!jdgmThemeFixes) return; 3018 3019 // "All themes" fix: CSS and JS applied on every theme. CSS is injected 3020 // before the per-theme fix so the theme-specific CSS wins the cascade. 3021 // HTML is never applied globally (too risky). 3022 var allThemesFix = jdgmThemeFixes['all']; 3023 if (allThemesFix && allThemesFix.css) { 3024 var allStyleTag = document.createElement('style'); 3025 allStyleTag.classList.add('jdgm-theme-fix-style-all'); 3026 allStyleTag.innerHTML = allThemesFix.css; 3027 document.head.append(allStyleTag); 3028 }; 3029 3030 if (allThemesFix && allThemesFix.js) { 3031 var allScriptTag = document.createElement('script'); 3032 allScriptTag.classList.add('jdgm-theme-fix-script-all'); 3033 allScriptTag.innerHTML = allThemesFix.js; 3034 document.head.append(allScriptTag); 3035 }; 3036 3037 var thisThemeFix = jdgmThemeFixes[Shopify.theme.id]; 3038 if (!thisThemeFix) return; 3039 3040 if (thisThemeFix.html) { 3041 document.addEventListener("DOMContentLoaded", function() { 3042 var htmlDiv = document.createElement('div'); 3043 htmlDiv.classList.add('jdgm-theme-fix-html'); 3044 htmlDiv.innerHTML = thisThemeFix.html; 3045 document.body.append(htmlDiv); 3046 }); 3047 }; 3048 3049 if (thisThemeFix.css) { 3050 var styleTag = document.createElement('style'); 3051 styleTag.classList.add('jdgm-theme-fix-style'); 3052 styleTag.innerHTML = thisThemeFix.css; 3053 document.head.append(styleTag); 3054 }; 3055 3056 if (thisThemeFix.js) { 3057 var scriptTag = document.createElement('script'); 3058 scriptTag.classList.add('jdgm-theme-fix-script'); 3059 scriptTag.innerHTML = thisThemeFix.js; 3060 document.head.append(scriptTag); 3061 }; 3062 })(); 3063</script>
3063 3064<!-- END app snippet --> 3065<!-- End of Judge.me Core --> 3066 3067 3068 3069<!-- END app block -->
3069<script src="https://cdn.shopify.com/extensions/01a0d961-e9e5-711e-86f8-bda023d4c9bb/wrapped-2509/assets/wrapped-app-embed.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 3069
3069
3070<script src="https://cdn.shopify.com/extensions/01a0cdf8-b2d2-7ccd-a251-5cf8c66ad2ca/judgeme-762/assets/loader.js" type="text/javascript" defer="defer"></script>
3070 3071<meta property="og:image" content="https://cdn.shopify.com/s/files/1/0363/8299/8667/files/6rDogBWQLqt2EECDML69_logo_vector_blue_2_Copy.png?height=628&pad_color=ffffff&v=1618496852&width=1200" /> 3072<meta property="og:image:secure_url" content="https://cdn.shopify.com/s/files/1/0363/8299/8667/files/6rDogBWQLqt2EECDML69_logo_vector_blue_2_Copy.png?height=628&pad_color=ffffff&v=1618496852&width=1200" /> 3073<meta property="og:image:width" content="1200" /> 3074<meta property="og:image:height" content="628" /> 3075<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
3076<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: 36382998667,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "index"};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 3076
3076
3077<script> 3078 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 3079</script>
vendor: 1 bytes, line 3079
3079
3080<script> 3081 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 3082 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 3083 window.ShopifyAnalytics.meta.currency = 'USD'; 3084 var meta = {"page":{"pageType":"home","requestId":"618fb17b-45a8-45fb-8735-f4c48db608b7-1790360832"}}; 3085 for (var attr in meta) { 3086 window.ShopifyAnalytics.meta[attr] = meta[attr]; 3087 } 3088</script>
vendor: 1 bytes, line 3088
3088
3089<script class="analytics"> 3090 (function () { 3091 var customDocumentWrite = function(content) { 3092 var jquery = null; 3093 3094 if (window.jQuery) { 3095 jquery = window.jQuery; 3096 } else if (window.Checkout && window.Checkout.$) { 3097 jquery = window.Checkout.$; 3098 } 3099 3100 if (jquery) { 3101 jquery('body').append(content); 3102 } 3103 }; 3104 3105 var hasLoggedConversion = function(token) { 3106 if (token) { 3107 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 3108 } 3109 return false; 3110 } 3111 3112 var setCookieIfConversion = function(token) { 3113 if (token) { 3114 var twoMonthsFromNow = new Date(Date.now()); 3115 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 3116 3117 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 3118 } 3119 } 3120 3121 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 3122 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 3123 if (trekkie.integrations) { 3124 return; 3125 } 3126 trekkie.methods = [ 3127 'identify', 3128 'page', 3129 'ready', 3130 'track', 3131 'trackForm', 3132 'trackLink' 3133 ]; 3134 trekkie.factory = function(method) { 3135 return function() { 3136 var args = Array.prototype.slice.call(arguments); 3137 args.unshift(method); 3138 trekkie.push(args); 3139 if (method == 'track' || method == 'page') { 3140 var pageUrl; 3141 try { 3142 pageUrl = window.location.href; 3143 } catch (e) {} 3144 var pageReferrer; 3145 try { 3146 pageReferrer = document.referrer; 3147 } catch (e) {} 3148 try { 3149 if (window.__TREKKIE_SHIM_QUEUE == null) { 3150 window.__TREKKIE_SHIM_QUEUE = []; 3151 } 3152 window.__TREKKIE_SHIM_QUEUE.push({ 3153 from: 'trekkie-stub', 3154 method: method, 3155 args: args.slice(1), 3156 pageContext: { 3157 url: pageUrl, 3158 referrer: pageReferrer 3159 } 3160 }); 3161 } catch (e) { 3162 // no-op 3163 } 3164 } 3165 return trekkie; 3166 }; 3167 }; 3168 for (var i = 0; i < trekkie.methods.length; i++) { 3169 var key = trekkie.methods[i]; 3170 trekkie[key] = trekkie.factory(key); 3171 } 3172 trekkie.load = function(config) { 3173 trekkie.config = config || {}; 3174 trekkie.config.initialDocumentCookie = document.cookie; 3175 var first = document.getElementsByTagName('script')[0]; 3176var script = document.createElement('script'); 3177script.type = 'text/javascript'; 3178script.onerror = function(e) { 3179 var scriptFallback = document.createElement('script'); 3180 scriptFallback.type = 'text/javascript'; 3181 scriptFallback.onerror = function(error) { 3182 var Monorail = { 3183 produce: function produce(monorailDomain, schemaId, payload) { 3184 var currentMs = new Date().getTime(); 3185 var event = { 3186 schema_id: schemaId, 3187 payload: payload, 3188 metadata: { 3189 event_created_at_ms: currentMs, 3190 event_sent_at_ms: currentMs 3191 } 3192 }; 3193 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 3194 }, 3195 sendRequest: function sendRequest(endpointUrl, payload) { 3196 // Try the sendBeacon API 3197 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 3198 var blobData = new window.Blob([payload], { 3199 type: 'text/plain' 3200 }); 3201 3202 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 3203 return true; 3204 } // sendBeacon was not successful 3205 3206 } // XHR beacon 3207 3208 var xhr = new XMLHttpRequest(); 3209 3210 try { 3211 xhr.open('POST', endpointUrl); 3212 xhr.setRequestHeader('Content-Type', 'text/plain'); 3213 xhr.send(payload); 3214 } catch (e) { 3215 console.log(e); 3216 } 3217 3218 return false; 3219 }, 3220 isIos12: function isIos12() { 3221 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 3222 } 3223 }; 3224 Monorail.produce('monorail-edge.shopifysvc.com', 3225 'trekkie_storefront_load_errors/1.1', 3226 {shop_id: 36382998667, 3227 theme_id: 120456675467, 3228 app_name: "storefront", 3229 context_url: window.location.href, 3230 source_url: "//lukeslobster.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js"}); 3231 3232 }; 3233 scriptFallback.async = true; 3234 scriptFallback.src = '//lukeslobster.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js'; 3235 first.parentNode.insertBefore(scriptFallback, first); 3236}; 3237script.async = true; 3238script.src = '//lukeslobster.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js'; 3239first.parentNode.insertBefore(script, first); 3240 3241 }; 3242 trekkie.load( 3243 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":36382998667,"isMerchantRequest":null,"themeId":120456675467,"themeCityHash":"12752617770234376116","contentLanguage":"en","currency":"USD","eventMetadataId":"4196cf0d-a00e-40b3-aede-9293cdf4c42c"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 3244 ); 3245 3246 var loaded = false;
3247 trekkie.ready(function() { 3248 if (loaded) return; 3249 loaded = true; 3250 3251 window.ShopifyAnalytics.lib = window.trekkie; 3252 3253 var originalDocumentWrite = document.write; 3254 document.write = customDocumentWrite; 3255 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 3256 document.write = originalDocumentWrite; 3257 3258 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 3259 var token = match? match[1]: undefined; 3260 if (!hasLoggedConversion(token)) { 3261 setCookieIfConversion(token); 3262 3263 } 3264 }); 3265 3266 window.ShopifyAnalytics.lib.page(null,{"pageType":"home","requestId":"618fb17b-45a8-45fb-8735-f4c48db608b7-1790360832","shopifyEmitted":true}); 3267 3268 var eventsListenerScript = document.createElement('script'); 3269 eventsListenerScript.async = true; 3270 eventsListenerScript.src = "//lukeslobster.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 3271 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 3272})();</script>
3272 3273
3273<script> 3274 if (!window.ga || (window.ga && typeof window.ga !== 'function')) { 3275 window.ga = function ga() { 3276 (window.ga.q = window.ga.q || []).push(arguments); 3277 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 3278 window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"}); 3279 } 3280 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."); 3281 }; 3282 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 3283 window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"}); 3284 } 3285 } 3286</script>
vendor: 1 bytes, line 3286
3286
3287<script 3288 defer 3289 src="https://lukeslobster.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 3290 data-application="storefront-renderer" 3291 data-shop-id="36382998667" 3292 data-render-region="gcp-us-central1" 3293 data-page-type="index" 3294 data-theme-instance-id="120456675467" 3295 data-theme-name="Debut" 3296 data-theme-version="16.5.0" 3297 data-monorail-region="shop_domain" 3298 data-resource-timing-sampling-rate="10" 3299 data-shs="true" 3300 data-shs-beacon="true" 3301 data-shs-export-with-fetch="true" 3302 data-shs-logs-sample-rate="1" 3303 data-shs-beacon-endpoint="https://lukeslobster.com/api/collect" 3304></script>
3304 3305<meta name="shopify-y" content="00000000-0000-0000-5000-000000000000" data-expiration="1821919635000"><meta name="shopify-s" content="00000000-0000-0000-5000-000000000000" data-expiration="1790363835000"><meta name="new-cookie-storage-activated" content="t"> 3306</head> 3307 3308 3309<body class="template-index template-"> 3310 <a class="in-page-link visually-hidden skip-link" href="#MainContent">Skip to content</a> 3311 3312 <div class="banner-header-wrapper"> 3313 <div id="shopify-section-site-banner" class="shopify-section site-banners-container"> 3314
3315<script> 3316 $("body").addClass("page-banner-active"); 3317 console.log("Banner"); 3318</script>
3318 3319 3320<div class="site-banners js-site-banners" role="banner"> 3321 3322 3323 3324 <div class="site-banner"> 3325 3326 3327 3328 <a href="/collections/all" class="site-banner__message">ð¦FREE OVERNIGHT SHIPPING NATIONWIDE ON ALL ONLINE MARKET ORDERSð¦</a> 3329 3330 3331 3332 </div> 3333 3334 3335</div> 3336 3337 3338 3339 3340 3341</div> 3342 3343 <div id="shopify-section-header" class="shopify-section"><header class="site-header"> 3344 3345 <div class="site-header-inner"> 3346 3347 <div class="logo-container"> 3348 <a href="https://www.lukeslobster.com" class="logo"> 3349 <img src="//lukeslobster.com/cdn/shop/files/6rDogBWQLqt2EECDML69_logo_vector_blue_2_Copy_300x300.png?v=1618496852" alt=" Luke's Lobster"> 3350 </a> 3351 </div> 3352 3353 <div class="header-nav js-header-nav"> 3354 <nav class="main-nav"> 3355 <ul class="main-menu menu"> 3356 3357 3358 3359 3360 3361 3362 3363 3364 <li class="menu-item menu-item-has-children"> 3365 3366 <a href="/pages/shack-locations">Shacks</a> 3367 3368 <button class="menu-arrow js-menu-arrow" aria-expanded="false"> 3369 <img src="//lukeslobster.com/cdn/shop/t/22/assets/icon-arrow--blue.svg?v=112125002108557019051629734443" alt="Menu Toggle"> 3370 </button> 3371 3372 3373 3374 <ul class="sub-menu"> 3375 3376 3377 3378 <li class="menu-item"> 3379 <a href="https://order.online/business/LukesLobster-3570" class="menu-item">ORDER LOCAL PICKUP & DELIVERY</a> 3380 </li> 3381 3382 3383 3384 <li class="menu-item"> 3385 <a href="/pages/shack-locations" class="menu-item">Locations</a> 3386 </li> 3387 3388 3389 3390 <li class="menu-item"> 3391 <a href="/pages/shack-catering" class="menu-item">Shack Catering</a> 3392 </li> 3393 3394 3395 3396 <li class="menu-item"> 3397 <a href="/pages/gift-cards" class="menu-item">Order Gift Cards</a> 3398 </li> 3399 3400 3401 3402 </ul> 3403 3404 3405 3406 </li> 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 <li class="menu-item menu-item-has-children"> 3417 3418 <a href="/pages/shop">Shop</a> 3419 3420 <button class="menu-arrow js-menu-arrow" aria-expanded="false"> 3421 <img src="//lukeslobster.com/cdn/shop/t/22/assets/icon-arrow--blue.svg?v=112125002108557019051629734443" alt="Menu Toggle"> 3422 </button> 3423 3424 3425 3426 <ul class="sub-menu"> 3427 3428 3429 3430 <li class="menu-item"> 3431 <a href="/pages/all-products" class="menu-item">All Seafood</a> 3432 </li> 3433 3434 3435 3436 <li class="menu-item"> 3437 <a href="/collections/grocery" class="menu-item">Grocery</a> 3438 </li> 3439 3440 3441 3442 <li class="menu-item"> 3443 <a href="/collections/lobster-roll-kits" class="menu-item">Lobster Roll Kits</a> 3444 </li> 3445 3446 3447 3448 <li class="menu-item"> 3449 <a href="/collections/lobster-tails" class="menu-item">Lobster Tails & Meat</a> 3450 </li> 3451 3452 3453 3454 <li class="menu-item"> 3455 <a href="/products/livelobster" class="menu-item">Live Lobster</a> 3456 </li> 3457 3458 3459 3460 <li class="menu-item"> 3461 <a href="/pages/frequently-asked-questions" class="menu-item">FAQ</a> 3462 </li> 3463 3464 3465 3466 </ul> 3467 3468 3469 3470 </li> 3471 3472 3473 3474 3475 3476 3477 3478 3479 3480 <li class="menu-item menu-item-has-children"> 3481 3482 <a href="/pages/lukes-grocery-products">Grocery</a> 3483 3484 <button class="menu-arrow js-menu-arrow" aria-expanded="false"> 3485 <img src="//lukeslobster.com/cdn/shop/t/22/assets/icon-arrow--blue.svg?v=112125002108557019051629734443" alt="Menu Toggle"> 3486 </button> 3487 3488 3489 3490 <ul class="sub-menu"> 3491 3492 3493 3494 <li class="menu-item"> 3495 <a href="/pages/lukes-grocery-products" class="menu-item">Our Products</a> 3496 </li> 3497 3498 3499 3500 <li class="menu-item"> 3501 <a href="/pages/where-to-find-us" class="menu-item">Where to Find Us</a> 3502 </li> 3503 3504 3505 3506 </ul> 3507 3508 3509 3510 </li> 3511 3512 3513 3514 3515 </ul> 3516 3517 <ul class="secondary-menu menu"> 3518 3519 3520 3521 3522 3523 3524 3525 3526 <li class="menu-item menu-item-has-children"> 3527 3528 <a href="/pages/jointhecrew">Careers</a> 3529 3530 <button class="menu-arrow js-menu-arrow" aria-expanded="false"> 3531 <img src="//lukeslobster.com/cdn/shop/t/22/assets/icon-arrow--blue.svg?v=112125002108557019051629734443" alt="Menu Toggle"> 3532 </button> 3533 3534 3535 3536 <ul class="sub-menu"> 3537 3538 3539 3540 <li class="menu-item"> 3541 <a href="/pages/lifeatlukes" class="menu-item">Life at Luke's</a> 3542 </li> 3543 3544 3545 3546 <li class="menu-item"> 3547 <a href="/pages/growth-at-lukes" class="menu-item">Chart Your Course</a> 3548 </li> 3549 3550 3551 3552 <li class="menu-item"> 3553 <a href="/pages/copy-of-careers-julia-draft" class="menu-item">Crew Perks</a> 3554 </li> 3555 3556 3557 3558 </ul> 3559 3560 3561 3562 </li> 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 <li class="menu-item"> 3573 3574 <a href="https://shop.lukeslobster.com/blogs/recipes" class="menu-item"> 3575 Recipes 3576 </a> 3577 </li> 3578 3579 3580 3581 3582 3583 3584 3585 3586 3587 <li class="menu-item menu-item-has-children"> 3588 3589 <a href="/pages/about-us">About</a> 3590 3591 <button class="menu-arrow js-menu-arrow" aria-expanded="false"> 3592 <img src="//lukeslobster.com/cdn/shop/t/22/assets/icon-arrow--blue.svg?v=112125002108557019051629734443" alt="Menu Toggle"> 3593 </button> 3594 3595 3596 3597 <ul class="sub-menu"> 3598 3599 3600 3601 <li class="menu-item"> 3602 <a href="/pages/mission" class="menu-item">Mission</a> 3603 </li> 3604 3605 3606 3607 <li class="menu-item"> 3608 <a href="/pages/taste" class="menu-item">Taste</a> 3609 </li> 3610 3611 3612 3613 <li class="menu-item"> 3614 <a href="/pages/ourcommunity" class="menu-item">Community</a> 3615 </li> 3616 3617 3618 3619 <li class="menu-item"> 3620 <a href="/pages/ecosystem" class="menu-item">Ecosystem</a> 3621 </li> 3622 3623 3624 3625 <li class="menu-item"> 3626 <a href="/pages/meet-the-crew" class="menu-item">Meet the Crew</a> 3627 </li> 3628 3629 3630 3631 </ul> 3632 3633 3634 3635 </li> 3636 3637 3638 3639 3640 </ul> 3641 </nav> 3642 </div> 3643 3644 <div class="search js-search"> 3645 3646 <form class="search-form" action="/search" method="get" role="search"> 3647 3648 <label for="SearchInput">Search</label> 3649 3650 <!-- <input 3651 id="searchInput" 3652 type="text" 3653 name="q" 3654 placeholder="Enter search terms..." 3655 role="combobox" 3656 aria-autocomplete="list" 3657 aria-owns="predictive-search-results" 3658 aria-expanded="false" 3659 aria-label="Search" 3660 aria-haspopup="listbox"
3661 class="search-input" 3662 data-predictive-search-drawer-input 3663 /> --> 3664 <input 3665 id="searchInput" 3666 type="text" 3667 name="q" 3668 placeholder="Enter search terms..." 3669 role="combobox" 3670 aria-autocomplete="list" 3671 aria-expanded="false" 3672 aria-label="Search" 3673 aria-haspopup="listbox" 3674 class="search-input" 3675 data-predictive-search-drawer-input 3676 /> 3677 <input type="hidden" name="options[prefix]" value="last" aria-hidden="true" /> 3678 3679 <button class="button button--blue" type="submit" data-search-form-submit>Search</button> 3680 </form> 3681 3682 </div> 3683 3684 <div class="header-actions"> 3685 3686 <button class="search-icon js-toggle-search" type="button" aria-label="Toggle Search"><img src="//lukeslobster.com/cdn/shop/t/22/assets/icon-search.svg?v=141449128602758212791629734452" alt="Search"></button> 3687 3688 3689 3690 <a href="https://lukeslobster.com/pages/rewards" class="header-actions__account"> 3691 <img src="//lukeslobster.com/cdn/shop/t/22/assets/icon-account.svg?v=41369914107869226951629734442" alt="Create Account"> 3692 </a> 3693 3694 3695 3696 3697 <a href="/cart" class="header-actions__cart"> 3698 <img src="//lukeslobster.com/cdn/shop/t/22/assets/icon-cart.svg?v=172320051677446208381629734449" alt="Cart"> 3699 <div id="CartCount" class="cart-count hide" data-cart-count-bubble> 3700 <span data-cart-count>0</span> 3701 <span class="icon__fallback-text medium-up--hide">items</span> 3702 </div> 3703 </a> 3704 3705 3706 <button type="button" class="menu-button js-toggle-menu" aria-label="Menu" aria-expanded="false"></button> 3707 3708 3709 </div> 3710 3711 </div> 3712 3713</header> 3714 3715
3716<script type="application/ld+json"> 3717{ 3718 "@context": "http://schema.org", 3719 "@type": "Organization", 3720 "name": " Luke\u0026#39;s Lobster", 3721 3722 "logo": "https:\/\/lukeslobster.com\/cdn\/shop\/files\/6rDogBWQLqt2EECDML69_logo_vector_blue_2_Copy_small.png?v=1618496852", 3723 3724 "sameAs": [ 3725 "https:\/\/twitter.com\/LukesLobster", 3726 "https:\/\/www.facebook.com\/LukesLobster\/", 3727 "https:\/\/www.pinterest.com\/lukeslobster\/", 3728 "https:\/\/www.instagram.com\/lukeslobster\/?hl=en", 3729 "", 3730 "", 3731 "https:\/\/www.youtube.com\/lukeslobster", 3732 "" 3733 ], 3734 "url": "https:\/\/lukeslobster.com" 3735} 3736</script>
3736 3737 3738 3739 3740
3740<script type="application/ld+json"> 3741 { 3742 "@context": "http://schema.org", 3743 "@type": "WebSite", 3744 "name": " Luke\u0026#39;s Lobster", 3745 "potentialAction": { 3746 "@type": "SearchAction", 3747 "target": "https:\/\/lukeslobster.com\/search?q={search_term_string}", 3748 "query-input": "required name=search_term_string" 3749 }, 3750 "url": "https:\/\/lukeslobster.com" 3751 } 3752 </script>
3752 3753 3754 3755 3756</div> 3757 3758 </div> 3759 3760 3761 <div class="page-container" id="PageContainer"> 3762 3763 <main class="main-content js-focus-hidden" id="MainContent" role="main" tabindex="-1"> 3764 <div class="icartShopifyCartContent"> 3765<div id="shopify-section-slider-home-masthead" class="shopify-section"> 3766 3767 3768 <div class="visually-hidden">This is a slideshow. Use the Next and Previous buttons, dot indicators, or left and right arrow keys on your keyboard to navigate between slides.</div> 3769 3770 <section class="slider js-slick-slider" 3771 role="region" 3772 aria-roledescription="carousel" 3773 aria-label="Homepage Slideshow" 3774 data-transition-speed="8" > 3775 3776 3777 3778 3779 3780 3781 3782 3783 <div class="slide slide--has-image" 3784 role="group" 3785 aria-roledescription="slide" 3786 aria-label="Slide 1 of 4" 3787 style="background-image: url('//lukeslobster.com/cdn/shop/files/LukesMay-95_1_1400x1400_crop_center.jpg?v=1726750837');"> 3788 3789 3790 <div class="slide__content has-overlay"> 3791 3792 3793 3794 <h2>National Lobster Day: Sept 24th and 25th</h2> 3795 3796 3797 3798 3799 3800 <div class="button-container"> 3801 3802 <a href="/pages/national-lobster-day-2026" class="button">Learn how we're celebrating here!</a> 3803 3804 3805 3806 </div> 3807 3808 3809</div> 3810 3811 </div> 3812 3813 3814 3815 3816 3817 3818 3819 3820 3821 <div class="slide slide--has-image" 3822 role="group" 3823 aria-roledescription="slide" 3824 aria-label="Slide 2 of 4" 3825 style="background-image: url('//lukeslobster.com/cdn/shop/files/IMG_9002_1400x1400_crop_center.jpg?v=1781100997');"> 3826 3827 3828 <div class="slide__content"> 3829 3830 3831 3832 <h2>Now availabe at Costco!</h2> 3833 3834 3835 3836 <p><strong>Find our mini lobster cakes at Costco warehouses in the Northeast</strong></p> 3837 3838 3839 3840 <div class="button-container"> 3841 3842 <a href="https://lukeslobster.com/pages/mini-lobster-cakes" class="button">Learn More about our Mini Lobster Cakes!</a> 3843 3844 3845 3846 </div> 3847 3848 3849</div> 3850 3851 </div> 3852 3853 3854 3855 3856 3857 3858 3859 3860 3861 <div class="slide slide--has-image" 3862 role="group" 3863 aria-roledescription="slide" 3864 aria-label="Slide 3 of 4" 3865 style="background-image: url('//lukeslobster.com/cdn/shop/files/Chris_1400x1400_crop_center.jpg?v=1621560771');"> 3866 3867 3868 <div class="slide__content"> 3869 3870 3871 3872 <h2>We're a Certified B CORP</h2> 3873 3874 3875 3876 3877 3878 <div class="button-container"> 3879 3880 <a href="/pages/mission" class="button">Learn about our B Corp Certification</a> 3881 3882 3883 3884 </div> 3885 3886 3887</div> 3888 3889 </div> 3890 3891 3892 3893 3894 3895 3896 3897 3898 3899 <div class="slide slide--has-image" 3900 role="group" 3901 aria-roledescription="slide" 3902 aria-label="Slide 4 of 4" 3903 style="background-image: url('//lukeslobster.com/cdn/shop/files/C78CE71A-E70D-461E-833E-3BCE73EBE3D9_1_201_a_1400x1400_crop_center.jpg?v=1672945501');"> 3904 3905 3906 <div class="slide__content"> 3907 3908 3909 3910 <h2>The Lift All Boats Project</h2> 3911 3912 3913 3914 3915 3916 <div class="button-container"> 3917 3918 <a href="https://www.liftallboatsmaine.org/" class="button">Learn More about Lift All Boats</a> 3919 3920 3921 3922 <a href="https://www.islandinstitute.org/get-involved/lift-all-boats/" class="button"></a> 3923 3924 </div> 3925 3926 3927</div> 3928 3929 </div> 3930 3931 3932 3933 3934 3935 </section> 3936 3937 3938 3939 3940</div> 3941<!-- BEGIN content_for_index --><div id="shopify-section-16185207233be722ae" class="shopify-section"> 3942 3943 3944 3945 <section class="locations-slider"> 3946 3947 3948 <h2>Order Local Pick-up or Delivery</h2> 3949 3950 3951 <div class="locations-slider-list js-locations-slider" data-transition-speed="4"> 3952 3953 3954 3955 3956 3957 3958 3959 3960 3961 <div class="locations-slider-item"> 3962 3963 <img src="//lukeslobster.com/cdn/shop/t/22/assets/lighthouse
3963-icon.svg?v=29893675152307780781629734473" alt=""> 3964 3965 <a href="/pages/portland-pier" class="locations-slider-item__link">Portland Pier</a> 3966 3967 </div> 3968 3969 3970 3971 3972 3973 3974 3975 3976 3977 3978 3979 <div class="locations-slider-item"> 3980 3981 <img src="//lukeslobster.com/cdn/shop/t/22/assets/lighthouse-icon.svg?v=29893675152307780781629734473" alt=""> 3982 3983 <a href="/pages/back-bay" class="locations-slider-item__link">Back Bay</a> 3984 3985 </div> 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 <div class="locations-slider-item"> 3998 3999 <img src="//lukeslobster.com/cdn/shop/t/22/assets/lighthouse-icon.svg?v=29893675152307780781629734473" alt=""> 4000 4001 <a href="/pages/downtown-crossing" class="locations-slider-item__link">Downtown Crossing</a> 4002 4003 </div> 4004 4005 4006 4007 4008 4009 4010 4011 4012 4013 4014 4015 <div class="locations-slider-item"> 4016 4017 <img src="//lukeslobster.com/cdn/shop/t/22/assets/lighthouse-icon.svg?v=29893675152307780781629734473" alt=""> 4018 4019 <a href="/pages/upper-east-side" class="locations-slider-item__link">Upper East Side</a> 4020 4021 </div> 4022 4023 4024 4025 4026 4027 4028 4029 4030 4031 4032 4033 <div class="locations-slider-item"> 4034 4035 <img src="//lukeslobster.com/cdn/shop/t/22/assets/lighthouse-icon.svg?v=29893675152307780781629734473" alt=""> 4036 4037 <a href="/pages/garment-district" class="locations-slider-item__link">Garment District</a> 4038 4039 </div> 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 <div class="locations-slider-item"> 4052 4053 <img src="//lukeslobster.com/cdn/shop/t/22/assets/lighthouse-icon.svg?v=29893675152307780781629734473" alt=""> 4054 4055 <a href="/pages/union-square" class="locations-slider-item__link">Union Square</a> 4056 4057 </div> 4058 4059 4060 4061 4062 4063 4064 4065 4066 4067 4068 4069 <div class="locations-slider-item"> 4070 4071 <img src="//lukeslobster.com/cdn/shop/t/22/assets/lighthouse-icon.svg?v=29893675152307780781629734473" alt=""> 4072 4073 <a href="/pages/fidi" class="locations-slider-item__link">FiDi</a> 4074 4075 </div> 4076 4077 4078 4079 4080 4081 4082 4083 4084 4085 4086 4087 <div class="locations-slider-item"> 4088 4089 <img src="//lukeslobster.com/cdn/shop/t/22/assets/lighthouse-icon.svg?v=29893675152307780781629734473" alt=""> 4090 4091 <a href="/pages/brooklyn-bridge-park" class="locations-slider-item__link">Brooklyn Bridge Park</a> 4092 4093 </div> 4094 4095 4096 4097 4098 4099 4100 4101 4102 4103 4104 4105 <div class="locations-slider-item"> 4106 4107 <img src="//lukeslobster.com/cdn/shop/t/22/assets/lighthouse-icon.svg?v=29893675152307780781629734473" alt=""> 4108 4109 <a href="/pages/rittenhouse" class="locations-slider-item__link">Rittenhouse</a> 4110 4111 </div> 4112 4113 4114 4115 4116 4117 4118 4119 4120 4121 4122 4123 <div class="locations-slider-item"> 4124 4125 <img src="//lukeslobster.com/cdn/shop/t/22/assets/lighthouse-icon.svg?v=29893675152307780781629734473" alt=""> 4126 4127 <a href="/pages/penn-quarter" class="locations-slider-item__link">Penn Quarter</a> 4128 4129 </div> 4130 4131 4132 4133 4134 4135 4136 4137 4138 4139 4140 4141 <div class="locations-slider-item"> 4142 4143 <img src="//lukeslobster.com/cdn/shop/t/22/assets/lighthouse
4143-icon.svg?v=29893675152307780781629734473" alt=""> 4144 4145 <a href="/pages/city-hall" class="locations-slider-item__link">Chicago City Hall</a> 4146 4147 </div> 4148 4149 4150 4151 4152 4153 4154 4155 4156 4157 4158 4159 <div class="locations-slider-item"> 4160 4161 <img src="//lukeslobster.com/cdn/shop/t/22/assets/lighthouse-icon.svg?v=29893675152307780781629734473" alt=""> 4162 4163 <a href="/pages/brickell-city-centre" class="locations-slider-item__link">Brickell City Centre</a> 4164 4165 </div> 4166 4167 4168 4169 4170 4171 4172 4173 4174 4175 4176 4177 <div class="locations-slider-item"> 4178 4179 <img src="//lukeslobster.com/cdn/shop/t/22/assets/lighthouse-icon.svg?v=29893675152307780781629734473" alt=""> 4180 4181 <a href="/pages/las-vegas-fashion-show-mall" class="locations-slider-item__link">Las Vegas</a> 4182 4183 </div> 4184 4185 4186 4187 4188 4189 4190 4191 4192 4193 4194 4195 <div class="locations-slider-item"> 4196 4197 <img src="//lukeslobster.com/cdn/shop/t/22/assets/lighthouse-icon.svg?v=29893675152307780781629734473" alt=""> 4198 4199 <a href="/pages/soma" class="locations-slider-item__link">SoMa</a> 4200 4201 </div> 4202 4203 4204 4205 4206 4207 </div> 4208 4209 </section> 4210 4211 4212 4213 4214 4215
4216<script> 4217 $(document).ready(function() { 4218 $('.locations-slider-list ').slick({ 4219 slidesToShow: 3, 4220 arrows: true, 4221 dots: false, 4222 autoplay: false, 4223 autoplaySpeed: 2000, 4224 mobileFirst: true, 4225 responsive: [ 4226 { 4227 breakpoint: 600, 4228 settings: { 4229 slidesToShow: 4, 4230 } 4231 }, 4232 { 4233 breakpoint: 800, 4234 settings: { 4235 slidesToShow: 5, 4236 } 4237 } 4238 ] 4239 }); 4240 }); 4241 4242</script>
4242 4243</div><div id="shopify-section-162007140445508d20" class="shopify-section"><section class="cards-row"> 4244 4245 4246 4247 <div class="content-cards-row"> 4248 4249 4250 4251 <div class="card"> 4252 <a href="/pages/locations" class="card-link"> 4253 <div class="card-link__media"> 4254 <img src="//lukeslobster.com/cdn/shop/files/Shack_250x250_crop_center.gif?v=1621560666" alt=""> 4255 </div> 4256 <span class="card-link__title">Visit Luke's Shacks</span> 4257 </a> 4258 </div> 4259 4260 4261 4262 <div class="card"> 4263 <a href="https://lukeslobster.com/pages/shop" class="card-link"> 4264 <div class="card-link__media"> 4265 <img src="//lukeslobster.com/cdn/shop/files/Untitled_Artwork_2_250x250_crop_center.gif?v=1621537296" alt=""> 4266 </div> 4267 <span class="card-link__title">Ship Luke's Seafood Nationwide</span> 4268 </a> 4269 </div> 4270 4271 4272 4273 <div class="card"> 4274 <a href="https://lukeslobster.com/pages/lukes-grocery-products" class="card-link"> 4275 <div class="card-link__media"> 4276 <img src="//lukeslobster.com/cdn/shop/files/IMG_3032_250x250_crop_center.gif?v=1621428004" alt=""> 4277 </div> 4278 <span class="card-link__title">Find Lukeâs in Grocery Stores</span> 4279 </a> 4280 </div> 4281 4282 4283 4284 <div class="card"> 4285 <a href="/pages/catering" class="card-link"> 4286 <div class="card-link__media"> 4287 <img src="//lukeslobster.com/cdn/shop/files/catering_250x250_crop_center.gif?v=1621560686" alt=""> 4288 </div> 4289 <span class="card-link__title">Book Lukeâs Catering</span> 4290 </a> 4291 </div> 4292 4293 4294 4295 </div> 4296 4297 4298 4299</section> 4300 4301
4302<script> 4303 $(document).ready(function() { 4304 $('.content-cards-row').slick({ 4305 slidesToShow: 1, 4306 centerMode: true, 4307 arrows: true, 4308 centerPadding: '80px', 4309 autoplay: false, 4310 autoplaySpeed: 2000, 4311 variableWidth: true, 4312 mobileFirst: true, 4313 responsive: [ 4314 { 4315 breakpoint: 600, 4316 settings: { 4317 slidesToShow: 2, 4318 } 4319 }, 4320 { 4321 breakpoint: 800, 4322 settings: "unslick" 4323 } 4324 ] 4325 }); 4326 }); 4327 4328</script>
4328 4329</div><div id="shopify-section-1620161407a55a519e" class="shopify-section"><section class="content-with-gallery"> 4330 4331 4332 <div class="content-gallery" 4333 data-aos="fade-up-right" 4334 data-aos-duration='1000' 4335 data-aos-once="true" 4336 > 4337 4338 4339 4340 <div class="gallery-img"> 4341 <img class="lazyload" lazy src="//lukeslobster.com/cdn/shop/files/JW1A6990_250x250_crop_center.jpg?v=1621906443" alt=""> 4342 </div> 4343 4344 4345 4346 <div class="gallery-img"> 4347 <img class="lazyload" lazy src="//lukeslobster.com/cdn/shop/files/Image_block_seaweed_250x250_crop_center.png?v=1620161523" alt=""> 4348 </div> 4349 4350 4351 4352 <div class="gallery-img"> 4353 <img class="lazyload" lazy src="//lukeslobster.com/cdn/shop/files/Image_block_fisherman_2_250x250_crop_center.png?v=1620161536" alt=""> 4354 </div> 4355 4356 4357 4358 </div> 4359 4360 4361 4362 4363 4364 <div class="right-section"> 4365 <div class="content-body" 4366 data-aos="fade-up-left" 4367 data-aos-duration='1000' 4368 data-aos-once="true" 4369 > 4370 4371 <h2>WE KNOW OUR FISHERMEN SO YOU CAN TOO</h2> 4372 4373 4374 4375 <p>Luke's Lobster first opened its doors in NYC in 2009. We now bring traceable, sustainable seafood to guests across the country in our shacks, in grocery stores, and shipped nationwide to your doorstep. We work directly with fishermen to hand pick the best seafood, bring it straight to our own seafood company to steam and pick it perfectly, and then ship directly to our shacks and customers. Cutting out the middleman means better tasting seafood for you to enjoy and a fairer price for our fishermen.<br/></p><p></p> 4376 4377 </div> 4378 4379 <div class="body-img" 4380 data-aos="fade-up-left" 4381 data-aos-duration='1000' 4382 data-aos-once="true" 4383 > 4384 <img class="lazyload" lazy src="//lukeslobster.com/cdn/shop/files/Image_block_people_fishing_500x500.png?v=1620162614" alt=""> 4385 </div> 4386 4387 </div> 4388 4389 4390 4391</section> 4392 4393 4394 4395</div><div id="shopify-section-16185226218076df80" class="shopify-section"> 4396 4397 4398 4399 4400<section class="content-with-media"> 4401 4402 <div class="content-body" 4403 data-aos="fade-up-right" 4404 data-aos-duration='1000' 4405 data-aos-offset="200" 4406 data-aos-once="true" 4407 > 4408 4409 <h2>Bringing the oceanâs best catch to you</h2> 4410 4411 4412 4413 <p>In 2013, the Lukeâs team opened its own seafood purchasing and production business in Saco, Maine. This made Lukeâs truly vertically integrated, buying directly from fishermen we know and trust and handling their seafood throughout the journey from the dock to your plate. </p><p>In 2018, Lukeâs expanded into branded grocery, launching its flash-frozen lobster meat, tails, and seafood meals in grocery stores around the country, while also becoming a certified B Corp that same year. And in 2020, when restaurants were closing and markets for sustainable seafood vanishing, Lukeâs launched its online market, to bring a taste of Maine direct to doorsteps around the country.</p> 4414 4415 </div> 4416 4417 <div class="content-media" 4418 data-aos="fade-up-left" 4419 data-aos-duration='1000' 4420 data-aos-offset="300" 4421 data-aos-once="true" 4422 > 4423 4424 4425 4426 <div class="content-media__image"> 4427 <img src="//lukeslobster.com/cdn/shop/files/IMG_1492_500x.jpg?v=1622633878" alt="Illustrated fishing pier with fisherman" > 4428 </div> 4429 4430 4431 4432 </div> 4433 4434</section> 4435 4436 4437 4438</div><div id="shopify-section-16185230313556ef0d" class="shopify-section"> 4439 4440 4441 4442 4443 4444 4445 <div class="gallery-title"> 4446 <h2>Come Visit Our Shacks!</h2> 4447 </div> 4448 4449<style data-shopify> 4450 .alternating-gallery img:nth-child(5) { 4451 display: none; 4452 } 4453 </style> 4454 4455 <section class="alternating-gallery" 4456 data-aos="fade-up" 4457 data-aos-duration='1000' 4458 data-aos-offset="100" 4459 data-aos-once="true" 4460 > 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 <img class="lazyload" src="//lukeslobster.com/cdn/shop/files/CC_2018_04_19_0366_350x500_crop_center.jpg?v=1621907035" alt="Woman standing in Front of a Luke's Lobster Shack holding a basket with a lobster roll" > 4481 4482 4483 4484 4485 4486 4487 4488 4489 4490 4491 4492 4493 <img class="lazyload" src="//lukeslobster.com/cdn/shop/files/CC_2018_05_24_0423_ea582b58-372e-473e-802a-96732272e206_350x500_crop_center.jpg?v=1621906978" alt="A smiling woman holding a lobster roll poses in front of the Brooklyn Bridge Luke's Lobster Shack " > 4494 4495 4496 4497 4498 4499 4500 4501 4502 4503 4504 4505 4506 <img class="lazyload" src="//lukeslobster.com/cdn/shop/files/IMG_3079_2_350x500_crop_center.jpg?v=1617995118" alt="A smiling man in a professional kitchen packing a Luke's Lobster takeout bag" > 4507 4508 4509 4510 4511 4512 4513 4514 4515 4516 4517 4518 4519 <img class="lazyload" src="//lukeslobster.com/cdn/shop/files/CC_2018_05_24_1060_350x500_crop_center.jpg?v=1621907006" alt="A smiling person holding a Luke's Lobster takeout bag standing in front of decorative lobster crates" > 4520 4521 4522 4523 4524 4525 4526 4527 4528 4529 4530 4531 4532 4533 4534 4535 4536 4537 </section> 4538 4539 4540 4541 4542</div><div id="shopify-section-1618523785d04fa85f" class="shopify-section"> 4543 4544 4545 4546 4547 4548 4549 4550 4551
4552 <!-- "false" 4553 null --> 4554 4555 <section 4556 4557 data-aos="fade-up" 4558 data-aos-duration='1000' 4559 data-aos-offset="100" 4560 data-aos-once="true" 4561 class="hero-image 4562 4563 4564 4565 hero--has-color-overlay"> 4566 4567 <style data-shopify> 4568 .hero-image { 4569 background-image: url('//lukeslobster.com/cdn/shop/files/Lukes_hi_res_fix-1_adobespark_2000x2000.jpg?v=1622142704'); 4570 } 4571 </style> 4572 4573 4574 <div class="hero__content"> 4575 4576 <h2>Need Inspiration?</h2> 4577 4578 4579 <p></p> 4580 4581 4582 <a href="/blogs/recipes" class="button button--blue">Browse Recipes</a> 4583 4584 4585 </div> 4586 4587 4588 4589</section> 4590 4591 4592</div><!-- END content_for_index -->
4593<script> 4594 (function(e, t, r, n) { 4595 var o, c, s; 4596 o = e.document, c = t.children[0], s = o.createElement("script"), e.StorefrontSDKObject = "StorefrontSDK", e[e.StorefrontSDKObject] = { 4597 executeCommand: function(t, r) { 4598 e[e.StorefrontSDKObject].buffer.push([t, r]) 4599 }, 4600 buffer: [] 4601 }, s.async = 1, s.src ='https://web-apps.cdn4dd.com/webapps/sdk-storefront/latest/sdk.js' , t.insertBefore(s, c) 4602})(window, document.head); 4603StorefrontSDK.executeCommand('renderFloatingButton', { 4604 businessId: 3570, 4605 businessSlug: 'LukesLobster', 4606 floatingBar: true, 4607 position: 'bottom', 4608 buttonAlignment: 'center', 4609 backgroundColor: 'transparent', 4610 bottomOffset: '30px', 4611 buttonBackgroundColor: '#2e465d', 4612 buttonWidth: '400px', 4613 borderColor: 'transparent', 4614 buttonFontSize: '15px', 4615 buttonText: 'Order Local Pick Up & Delivery - Powered by Doordash', 4616 fontFamily: 'Din-Bold', 4617 buttonRadius: '5px', 4618 showModal: false, 4619 targetWindow: '_blank' 4620 } 4621) 4622</script>
4622 4623</div> 4624<div class="ic-additional-checkout-buttons" style="display: none"> 4625<div class="dynamic-checkout__content" id="dynamic-checkout-cart" data-shopify="dynamic-checkout-cart"> <shopify-accelerated-checkout-cart wallet-configs="[{&quot;supports_subs&quot;:true,&quot;supports_def_opts&quot;:false,&quot;name&quot;:&quot;shop_pay&quot;,&quot;wallet_params&quot;:{&quot;shopId&quot;:36382998667,&quot;merchantName&quot;:&quot; Luke&#39;s Lobster&quot;,&quot;personalized&quot;:false}},{&quot;supports_subs&quot;:false,&quot;supports_def_opts&quot;:false,&quot;name&quot;:&quot;amazon_pay&quot;,&quot;wallet_params&quot;:{&quot;checkoutLanguage&quot;:&quot;en_US&quot;,&quot;ledgerCurrency&quot;:&quot;USD&quot;,&quot;placement&quot;:&quot;Cart&quot;,&quot;sandbox&quot;:false,&quot;merchantId&quot;:&quot;A19HSX2W14S9VQ&quot;,&quot;productType&quot;:&quot;PayAndShip&quot;,&quot;design&quot;:&quot;C0002&quot;}}]" access-token="7831df81aec7ebe10597f4893aa93bd4" buyer-country="US" buyer-locale="en" buyer-currency="USD" shop-id="36382998667" cart-id="19759e8f7efc2eed467321ba275ca97a" enabled-flags="[&quot;1172c16a&quot;,&quot;a1d1f9a1&quot;,&quot;f5afabb3&quot;,&quot;370070f3&quot;]" > <div class="wallet-button-wrapper"> <ul class='wallet-cart-grid wallet-cart-grid--skeleton' role="list" data-shopify-buttoncontainer="true"> <li data-testid='grid-cell' class='wallet-cart-button-container'><div class='wallet-cart-button wallet-cart-button__skeleton' role='button' disabled aria-hidden='true'>&nbsp</div></li><li data-testid='grid-cell' class='wallet-cart-button-container'><div class='wallet-cart-button wallet-cart-button__skeleton' role='button' disabled aria-hidden='true'>&nbsp</div></li> </ul> </div> </shopify-accelerated-checkout-cart> </div> 4626</div> 4627<style>.icartShopifyCartContent{width: 100%;}</style> 4628 </main> 4629 4630 <div id="shopify-section-footer" class="shopify-section"> 4631 4632 <!-- order banner --> 4633 4634 4635 4636 4637<div class="order-banner "> 4638 <a class="button button--pink" href="https://lukeslobster.com/pages/order-local-pickup-and-delivery">Order Local Pick-up or Delivery</a> 4639</div> 4640 4641 4642 4643 4644 4645<footer class="site-footer"> 4646 4647 <div class="site-footer-inner"> 4648 4649 <div class="footer-block footer-block-newsletter"> 4650 4651 4652 <h4>Sign up for exclusive offers</h4> 4653 4654 4655 4656 <p>New subscribers get 10% off your next order from our Online Market!</p> 4657 4658<form method="post" action="/contact#ContactFooter" id="ContactFooter" accept-charset="UTF-8" class="contact-form" novalidate="novalidate"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="â" /> 4659<input type="hidden" name="contact[tags]" value="newsletter"> 4660 4661 <div class="input-group "> 4662 <label for="ContactFooter-email">Email Address</label> 4663 <input type="email" 4664 name="contact[email]" 4665 id="ContactFooter-email" 4666 class="input-group__field newsletter__input" 4667 value="" 4668 placeholder="Email address" 4669 aria-label="Email address" 4670 aria-required="true" 4671 required 4672 autocorrect="off" 4673 autocapitalize="off" 4674 autocomplete="email" 4675 4676 > 4677 4678 <button type="submit" class="button button--blue" name="commit" id="Subscribe">Subscribe</button> 4679 4680 </div> 4681 4682 4683 4684 </form> 4685 4686 </div> 4687 4688 <div class="footer-block footer-block-menu"> 4689 4690 <nav class="footer-nav"> 4691 4692 <ul class="footer-menu menu"> 4693 4694 4695 <li class="menu-item"> 4696 <a href="/blogs/press">Press</a> 4697 </li> 4698 4699 <li class="menu-item"> 4700 <a href="/pages/accessibility">Accessibility</a> 4701 </li> 4702 4703 <li class="menu-item"> 4704 <a href="/pages/copy-of-privacy-policy-feb-2026">Privacy Policy</a> 4705 </li> 4706 4707 <li class="menu-item"> 4708 <a href="/pages/frequently-asked-questions">FAQ</a> 4709 </li> 4710 4711 <li class="menu-item"> 4712 <a href="/pages/contact-us">Contact</a> 4713 </li> 4714 4715 <li class="menu-item"> 4716 <a href="/pages/affiliate_program">Affiliate Program</a> 4717 </li> 4718 4719 <li class="menu-item"> 4720 <a href="/pages/wholesale-information">Wholesale</a> 4721 </li> 4722 4723 <li class="menu-item"> 4724 <a href="/pages/sms-terms-of-use">SMS Terms of Use </a> 4725 </li> 4726 4727 <li class="menu-item"> 4728 <a href="https://dsrp.pii.ai/p/9af5868d-adc4-4dfc-bc6f-bf05510cb9fa/submit.html">Data Subject Request</a> 4729 </li> 4730 <li onClick="showPopup()" class="menu-item"><a href="#" role="button" onclick="event.preventDefault(); showPopup();" onkeydown="if(event.key === ' ' || event.key === 'Enter') { event.preventDefault(); showPopup(); }" >Do Not Sell or Share</a></li> 4731 4732 </ul> 4733 4734 </nav> 4735 4736 </div> 4737 4738 4739 4740 4741 <div class="footer-block footer-block-social"> 4742 4743 <div class="b-corp-container"> 4744 <img src="//lukeslobster.com/cdn/shop/t/22/assets/icon-bcorp.png?v=62003405429551887791629734448" alt="B-Corp Certified"> 4745 <div class="b-corp-text"> 4746 <p>Lukeâs is proud to be a B Corp</p> 4747 <a class="button button--light" href="/pages/mission">Learn more about Luke's social responsibility</a> 4748 </div> 4749 </div> 4750 4751 4752 4753 <ul class="social-links"> 4754 4755 <li> 4756 <a href="https://www.facebook.com/LukesLobster/" target="_blank" title="Luke's Lobster Facebook | Opens New Tab"> 4757 <img src="//lukeslobster.com/cdn/shop/t/22/assets/icon-social-facebook.svg?v=3719076125614820921629734453" alt="Facebook"> 4758 </a> 4759 </li> 4760 4761 4762 4763 <li> 4764 <a href="https://twitter.com/LukesLobster" target="_blank" title="Luke's Lobster Twitter | Opens New Tab"> 4765 <img src="//lukeslobster.com/cdn/shop/t/22/assets/icon-social-twitter.svg?v=78359154122104731031629734454" alt="Twitter"> 4766 </a> 4767 </li> 4768 4769 4770 4771 <li> 4772 <a href="https://www.pinterest.com/lukeslobster/" target="_blank" title="Luke's Lobster Pinterest | Opens New Tab"> 4773 <img src="//lukeslobster.com/cdn/shop/t/22/assets/icon-social-pinterest.svg?v=46561224468598131481629734454" alt="Pinterest"> 4774 </a> 4775 </li> 4776 4777 4778 4779 <li> 4780 <a href="https://www.instagram.com/lukeslobster/?hl=en" target="_blank" title="Luke's Lobster Instagram | Opens New Tab"> 4781 <img src="//lukeslobster.com/cdn/shop/t/22/assets/icon-social-instagram.svg?v=127110577257383177491629734453" alt="Instagram"> 4782 </a> 4783 </li> 4784 4785 4786 4787 <li> 4788 <a href="https://www.youtube.com/lukeslobster" target="_blank"> 4789 <img src="//lukeslobster.com/cdn/shop/t/22/assets/icon-social-youtube.svg?v=169098454549551246521629734455" alt="Youtube"> 4790 </a> 4791 </li> 4792 4793 </ul> 4794 4795 4796 4797 4798 </div> 4799 4800 4801
4802 <span class="copyright">© 2026, Luke's Lobster</span> 4803 4804 </div> 4805 4806</footer> 4807 4808 4809 4810</div> 4811 4812 </div> 4813 <!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 4813-4814
4813 4814<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
4814GTM-MJDSVL2
vendor: 83 bytes, lines 4814-4815
4814" 4815height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
4816<!-- End Google Tag Manager (noscript) --> 4817 4818
4818<script> 4819 window.addEventListener('load', function() { 4820 if (document.location.pathname == '/pages/union-square') { 4821 gtag('event', 'conversion', { 4822 'send_to': 'AW-822214704/XcgCCO7JoKkYELCAiIgD' 4823 }); 4824 } 4825 if (document.location.pathname == '/pages/upper-east-side') { 4826 gtag('event', 'conversion', { 4827 'send_to': 'AW-822214704/gMsBCIjPoKkYELCAiIgD' 4828 }); 4829 } 4830 if (document.location.pathname == '/pages/upper-west-side') { 4831 gtag('event', 'conversion', { 4832 'send_to': 'AW-822214704/x20tCKrWoKkYELCAiIgD' 4833 }); 4834 } 4835 }); 4836 4837</script>
4837 4838 4839 <ul hidden> 4840 <li id="a11y-refresh-page-message">Choosing a selection results in a full page refresh.</li> 4841 <li id="a11y-selection-message">Press the space key then arrow keys to make a selection.</li> 4842 </ul> 4843 4844 <!-- AOS -->
4845<script type="text/javascript" src="https://unpkg.com/aos@next/dist/aos.js"></script>
4845 4846 4847 <!-- Back in Stock helper snippet --> 4848 4849
4850<script id="back-in-stock-helper"> 4851 var _BISConfig = _BISConfig || {}; 4852 4853 4854 4855 4856</script>
4856 4857 4858 4859 <!-- End Back in Stock helper snippet --> 4860 <!-- "snippets/revy-bundle-script.liquid" was not rendered, the associated app was uninstalled --> 4861 4862 4863
4863<script src="//lukeslobster.com/cdn/shop/t/22/assets/custom.js?v=102652811802241478691744901266" type="text/javascript"></script>
4863 4864 <!-- "snippets/smile-initializer.liquid" was not rendered, the associated app was uninstalled --> 4865 4866 4867
4868<script>(()=>{if(window.ZipifyPages??={},!window.ZipifyPages.isGlobalSectionScriptsLoaded)return;window.ZipifyPages.isGlobalSectionScriptsLoaded=!1;"https://cdn03.zipify.com/javascript/page-published-scripts.min.js".split(",").map((i=>i.trim())).forEach((i=>{const e=document.createElement("script");Object.assign(e,{src:i,defer:!0,type:"module"}),document.body.appendChild(e)}))})();</script>
4868<script id="published-popup-template" type="text/template"><form class="zpa-crm-popup-form" id="zpa-crm-form" action="/subscribe" method="post" data-zpa-crm-form><header class="zpa-crm-popup-header"><button class="zpa-popup-btn-close" type="button"aria-label="Close Navigation" data-close-btn><svg class="zpa-popup-btn-close-icon" width="34" height="34" data-name="btn-close"><use href="#btn-close"></use></svg></button></header><div class="zpa-crm-popup-body" data-popup-content></div></form></script>
4868
4868<script id="crm-button-popup" type="text/template">{! if (progress_image_option == 1)!}<div class="zpa-crm-popup-progressbar-wrap"><img class="zpa-crm-popup-img-progress zpa-img-fluid zpa-center-block" src="{!= progress_image.src !}"></div>{! !}<h1 class="zpa-crm-popup-title" style="color:{!= form_name_color !}; font-family:{!= form_name_font_family !}; font-size:{!= form_name_font_size !};">{!= form_name !}</h1><div class="zpa-crm-popup-form-container">{! if (form_image_option == 1) !}<div class="zpa-crm-popup-image-box"><img class="zpa-crm-popup-img-asside zpa-img-fluid zpa-center-block" style="border-radius:{!= form_image_shape !};" src="{!= form_image.src !}"></div>{! !}<div class="zpa-crm-popup-form-box"><div class="zpa-crm-popup-field-wrap">{! if (first_name_option == 1) !}<label class="zpa-crm-popup-field-wrap zpa-crm-popup-field-first-name zpa-text-field zpa-offset-bottom-xs"><input class="zpa-text-field__input" type="text" name="first_name" data-user-fname data-zp-input><span class="zpa-text-field__label">First Name</span></label>{! !}{! if (last_name_option == 1) !}<label class="zpa-crm-popup-field-wrap zpa-crm-popup-field-last-name zpa-text-field zpa-offset-bottom-xs"><input class="zpa-text-field__input" type="text" name="last_name" data-user-lname data-zp-input><span class="zpa-text-field__label">Last Name</span></label>{! !}</div><label class="zpa-text-field"><input class="zpa-text-field__input" type="email" name="email" required data-user-email data-zp-input><span class="zpa-text-field__label">Email Address</span></label>{! if (phone_option == 1) !}<label class="zpa-text-field zpa-crm-popup-field-phone"><input class="zpa-text-field__input" name="phone" type="tel" data-user-phone data-zp-input><span class="zpa-text-field__label">Phone Number</span></label>{! !}</div></div>{! if (gdpr_status != 'disable') !}<div>{! if (gdpr_status == 'enable_with_checkbox') !}<label class="zpa-control zpa-control--top zpa-control-checkbox zpa-offset-bottom-xs hidden" data-gdpr-checkbox-section><input class="zpa-control__field" type="checkbox" name="gdpr" data-gdpr-checkbox><span class="zpa-control__indicator zpa-offset-right-xs"></span><span class="zpa-fsize-xs" data-gdpr-checkbox-text></span></label>{! !}{! if (gdpr_status == 'enable_without_checkbox') !}<p class="zpa-fsize-xs zpa-text-center zpa-offset-top-none zpa-offset-bottom-xs hidden" data-gdpr-message-section></p>{! !}</div>{! !}<button class="zpa-crm-button-checkout zpa-btn-custom" type="submit" style="color:{!= checkout_button_color !}; background-color: {!= checkout_button_background_color !}" data-checkout-btn data-zpa-submit-button>{!= checkout_button_caption !}</button>{! if (comment_text_status == 1) !}<p class="zpa-crm-popup-description" style="color: {!= comment_text_font_color !}" data-comment-text-status>{!= comment_text !}</p>{! !}{! if (banner_image_option == 1)!}<img class="zpa-crm-popup-img-footer zpa-img-fluid zpa-center-block" src="{!= banner_image.src !}">{! !}</script>
4868 4869 4870 4871 4872<style> 4873 /* Drawer container */ 4874 .drawer { 4875 position: fixed; 4876 top: 0; 4877 right: 0; 4878 width: 400px; 4879 max-width: 100%; 4880 height: 100%; 4881 background: #fff; 4882 box-shadow: -4px 0 20px rgba(0, 0, 0, 0.2); 4883 z-index: 100010; /* make sure the drawer is above the Doordash button */ 4884 display: flex; 4885 flex-direction: column; 4886 transform: translateX(100%); 4887 transition: transform 0.3s ease; 4888} 4889 4890 .drawer--open { 4891 transform: translateX(0); 4892 } 4893 .drawer__backdrop { 4894 position: fixed; 4895 top: 0; 4896 left: 0; 4897 width: 100%; 4898 height: 100%; 4899 background: rgba(0, 0, 0, 0.4); 4900 z-index: 9998; 4901 } 4902 .drawer__container { 4903 display: flex; 4904 flex-direction: column; 4905 height: 100%; 4906 } 4907 .drawer__body { 4908 flex: 1; 4909 overflow-y: auto; 4910 -webkit-overflow-scrolling: touch; 4911 padding: 0 12px; /* reduced padding from 16px */ 4912 } 4913 .drawer__header, 4914 .drawer__footer { 4915 padding: 16px; 4916 background: #fff; 4917 } 4918 .drawer__header { 4919 display: flex; 4920 flex-direction: column; 4921 border-bottom: none; 4922 } 4923 .drawer__close { 4924 font-size: 24px; 4925 background: none; 4926 border: none; 4927 cursor: pointer; 4928 color: #2d465d; 4929 align-self: flex-end; 4930 } 4931 .drawer__footer { 4932 display: flex; 4933 flex-direction: column; 4934 gap: 12px; 4935 } 4936 4937 .upsell-variant-selector { 4938 width: 100%; 4939 padding: 0.5em 1.5em 0.5em 0.5em; /* space for arrow */ 4940 border: 1px solid #ccc; 4941 border-radius: 6px; 4942 margin-bottom: 10px; /* spacing below select */ 4943 font-size: 0.9rem; 4944 background-color: #fff; 4945 background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='5'%3E%3Cpath fill='black' d='M0 0l5 5 5-5z'/%3E%3C/svg%3E"); 4946 background-repeat: no-repeat; 4947 background-position: right 0.5em center; 4948 background-size: 10px 5px; 4949 appearance: none; /* removes default arrow in some browsers */ 4950 cursor: pointer; 4951} 4952 4953.upsell-variant-selector:focus { 4954 border-color: #007bff; 4955 outline: none; 4956 box-shadow: 0 0 3px #007bff; 4957} 4958.upsell-card .upsell-variant-label { 4959 display: inline-block; 4960 background-color: #f5f5f5; /* light gray background */ 4961 color: #333; /* dark text */ 4962 font-size: 0.75rem; /* smaller font */ 4963 font-weight: 600; 4964 padding: 0.2em 0.5em; /* small padding */ 4965 border-radius: 0.4em; /* rounded corners */ 4966 margin-bottom: 0.5em; /* spacing from variant selector */ 4967 text-align: center; 4968 white-space: nowrap; /* prevents wrapping */ 4969} 4970 4971 /* Cart steps */ 4972 .cart-step { 4973 display: flex; 4974 flex-direction: column; 4975 height: 100%; 4976 width: 100%; 4977 position: absolute; 4978 top: 0; 4979 left: 0; 4980 transition: opacity 0.3s ease, transform 0.3s ease; 4981 opacity: 0; 4982 transform: translateX(100%); 4983 pointer-events: none; 4984 background: #fff; 4985 z-index: 1; 4986 } 4987 .cart-step.active { 4988 opacity: 1; 4989 transform: translateX(0); 4990 pointer-events: auto; 4991 z-index: 2; 4992 } 4993 4994 /* Cart header */ 4995 .cart-header { 4996 font-size: 20px; 4997 font-weight: 700; 4998 color: #2d465d; 4999 margin: 0 0 8px 0; 5000 } 5001 #CartItemCount { 5002 font-weight: 700; 5003 } 5004 5005 /* Order minimum progress */ 5006 .order-minimum-progress { 5007 padding: 12px; 5008 background: #fff; 5009 border-radius: 6px; 5010 border: 1px solid #2d465d33; 5011 text-align: center; 5012 margin-bottom: 8px; 5013 } 5014 .order-minimum-text { 5015 font-size: 0.95rem; 5016 font-weight: 600; 5017 margin-bottom: 6px; 5018 color: #2d465d; 5019 } 5020 .progress-bar-container { 5021 width: 100%; 5022 height: 10px; 5023 background: #eee; 5024 border-radius: 5px; 5025 overflow: hidden; 5026 } 5027 .progress-bar { 5028 height: 100%; 5029 width: 0%; 5030 background: #2d465d; 5031 border-radius: 5px; 5032 transition: width 0.3s ease; 5033 } 5034 5035 /* Cart items */ 5036 .cart-item { 5037 display: flex; 5038 align-items: flex-start; 5039 padding: 10px 0; /* reduced from 12px */ 5040 border-bottom: none; 5041 gap: 10px; /* reduced from 12px */ 5042 } 5043 .cart-item-image { 5044 width: 70px; 5045 height: 70px; 5046 object-fit: cover; 5047 border-radius: 8px; 5048 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.07); 5049 flex-shrink: 0; 5050 } 5051 .cart-item-details { 5052 flex: 1; 5053 display: flex; 5054 flex-direction: column; 5055 gap: 6px; 5056 } 5057 .cart-item-title { 5058 font-weight: 700; 5059 margin: 0; 5060 color: #2d465d; 5061 font-size: 16px; 5062 } 5063 .cart-item-variant { 5064 font-size: 0.95rem; 5065 color: #2d465d99; 5066 margin: 0; 5067 font-style: italic; 5068 } 5069 .cart-item-qty-price { 5070 display: flex; 5071 justify-content: space-between; 5072 align-items: center; 5073 gap: 12px; 5074 margin-top: auto; 5075 } 5076 .qty-controls { 5077 display: flex; 5078 align-items: center; 5079 gap: 6px; 5080 } 5081 .cart-item-qty, 5082 .cart-item-qty-minus, 5083 .cart-item-qty-plus { 5084 width: 34px; 5085 height: 34px; 5086 text-align: center; 5087 border: 1.5px solid #2d465d; 5088 border-radius: 8px; 5089 background: #fff; 5090 cursor: pointer; 5091 color: #2d465d; 5092 font-weight: 700; 5093 font-size: 18px; 5094 user-select: none; 5095 display: flex; 5096 justify-content: center;
5097 align-items: center; 5098 } 5099 .cart-item-qty { 5100 width: 64px; 5101 font-size: 16px; 5102 line-height: 34px; 5103 border-radius: 8px; 5104 padding: 0 8px; 5105 -moz-appearance: textfield; 5106 } 5107 .cart-item-qty::-webkit-inner-spin-button, 5108 .cart-item-qty::-webkit-outer-spin-button { 5109 -webkit-appearance: none; 5110 margin: 0; 5111 } 5112 .cart-item-price { 5113 font-weight: 700; 5114 color: #2d465d; 5115 font-size: 16px; 5116 white-space: nowrap; 5117 } 5118 .cart-item-remove { 5119 background: none; 5120 border: none; 5121 font-size: 22px; 5122 cursor: pointer; 5123 color: #d64545; 5124 align-self: flex-start; 5125 padding: 0; 5126 transition: color 0.3s ease; 5127 } 5128 .cart-item-remove:hover { 5129 color: #a02a2a; 5130 } 5131 5132 /* Subtotals and actions */ 5133 .cart-subtotals, 5134 .cart-actions { 5135 display: flex; 5136 flex-direction: column; 5137 gap: 12px; 5138 } 5139 .subtotal-wrapper { 5140 display: flex; 5141 justify-content: space-between; 5142 align-items: center; 5143 } 5144 #subtotal-amount { 5145 font-weight: 700; 5146 font-size: 1.25rem; 5147 color: #2d465d; 5148 } 5149 5150 /* Discounts */ 5151 .cart-discount-wrapper, 5152 #discount-container,
5153 #cart-discounts { 5154 display: flex; 5155 flex-wrap: wrap; 5156 align-items: center; 5157 gap: 12px; 5158 width: 100%; 5159 } 5160 #discount-container input { 5161 flex: 1; 5162 min-width: 0; 5163 padding: 8px 12px; 5164 border: 1.5px solid #2d465d; 5165 border-radius: 8px; 5166 font-size: 14px; 5167 } 5168 #discount-container button { 5169 flex-shrink: 0; 5170 padding: 8px 16px; 5171 background-color: #2d465d; 5172 color: #fff; 5173 border: none; 5174 border-radius: 8px; 5175 font-weight: 700; 5176 cursor: pointer; 5177 transition: background-color 0.3s ease; 5178 } 5179 #discount-container button:hover { 5180 background-color: #223746; 5181 } 5182 .cart-discount { 5183 display: flex; 5184 justify-content: space-between; 5185 align-items: center; 5186 padding: 10px 16px; 5187 background: #f1f1f1; 5188 border-radius: 8px; 5189 flex: 1 1 auto; 5190 min-width: 0; 5191 font-size: 14px; 5192 color: #2d465d; 5193 } 5194 .cart-discount button { 5195 background: none; 5196 border: none; 5197 cursor: pointer; 5198 font-size: 18px; 5199 color: #2d465d; 5200 transition: color 0.3s ease; 5201 } 5202 .cart-discount button:hover { 5203 color: #a02a2a; 5204 } 5205 5206 .cart-item-discount-badge { 5207 display: block; 5208 width: 100%; 5209 margin-top: 8px; 5210 padding: 6px 12px; 5211 background-color: #f3f6f8;
5212 border-top: 4px solid #2e475e; /* Top accent */ 5213 border-radius: 6px; 5214 box-shadow: 0 3px 6px rgba(0,0,0,0.12); /* soft 3D shadow */ 5215 font-size: 0.85rem; 5216 font-weight: 600; 5217 color: #2e475e; 5218} 5219 5220 5221.cart-item-discount-badge .discount-title { 5222 display: block; 5223 font-weight: 700; /* Bold title */ 5224} 5225 5226.cart-item-discount-badge .discount-savings { 5227 display: block; 5228 font-size: 0.8rem; 5229 font-weight: 500; 5230 margin-top: 2px; 5231 color: #1a2a3a; /* Slightly darker for contrast */ 5232} 5233 5234 5235 /* Buttons */ 5236 .btn--primary { 5237 background-color: #2d465d; 5238 color: #fff; 5239 border: none; 5240 padding: 12px; 5241 border-radius: 8px; 5242 font-weight: 700; 5243 text-align: center; 5244 transition: background-color 0.3s ease, transform 0.2s ease; 5245 cursor: pointer; 5246 } 5247 .btn--primary:hover { 5248 background-color: #223746; 5249 } 5250 .btn--primary.btn--disabled { 5251 background-color: #ccc !important; 5252 cursor: not-allowed; 5253 opacity: 0.6; 5254 } 5255 .btn--secondary { 5256 background-color: #fff; 5257 color: #2d465d; 5258 border: 1.5px solid #2d465d; 5259 padding: 12px; 5260 border-radius: 8px; 5261 font-weight: 700; 5262 text-align: center; 5263 cursor: pointer; 5264 transition: background-color 0.3s ease; 5265 } 5266 .btn--secondary:hover { 5267 background-color: #f0f4f7; 5268 } 5269 #checkout-btn { 5270 display: block !important; 5271 width: 100% !important; 5272 padding: 14px 0 !important; 5273 text-align: center !important; 5274 background-color: #2d465d !important; 5275 color: #fff !important; 5276 font-weight: 700 !important; 5277 border: none !important; 5278 border-radius: 14px !important; 5279 cursor: pointer !important; 5280 transition: background-color 0.3s, transform 0.2s !important; 5281 position: relative !important; 5282 z-index: 100005 !important; 5283 } 5284 #checkout-btn:hover { 5285 background-color: #1f3245 !important; 5286 transform: translateY(-2px) !important; 5287 } 5288#go-to-step-2 { 5289 position: relative; /* stay in drawer layout */ 5290 z-index: 100005; /* higher than the Doordash button */ 5291} 5292 5293 5294 5295 /* Empty cart */ 5296 .empty-cart { 5297 text-align: center; 5298 padding: 60px 16px; 5299 color: #2d465d; 5300 font-weight: 600; 5301 font-size: 18px; 5302 } 5303 5304 /* Minimum warnings */ 5305 .minimum-warning, 5306 #minimum-warning-2 { 5307 font-size: 0.95rem; 5308 color: #d00; 5309 text-align: center; 5310 margin: 0; 5311 font-weight: 700; 5312 } 5313 5314 /* Wrapped gift cards */ 5315 .wrapped-gift-card-container { 5316 max-height: 220px !important; 5317 overflow-y: auto !important; 5318 padding: 8px !important; 5319 border-top: none; 5320 } 5321:root { 5322 --wrapped-font-size-default: 12px !important; 5323} 5324 5325 5326 /* Calendar section */ 5327 .calendar_section { 5328 display: flex; 5329 gap: 12px; 5330 flex-wrap: wrap; 5331 justify-content: flex-start; 5332 margin-top: 16px; 5333 } 5334 .delivery-day { 5335 padding: 10px 16px; 5336 border: 1.5px solid #2d465d33; 5337 border-radius: 8px; 5338 cursor: pointer; 5339 background: #f9f9f9; 5340 font-weight: 600; 5341 color: #2d465d; 5342 transition: background-color 0.3s ease, color 0.3s ease; 5343 } 5344 .delivery-day.selected { 5345 background: #2d465d; 5346 color: #fff; 5347 } 5348 5349 /* =============================== 5350 UPSSELL SECTION â Enhanced Visuals and Merged Styles 5351 =============================== */ 5352 5353.upsell-section { 5354 margin-top: 12px; 5355 padding: 12px 8px 16px 8px; 5356 border-top: 1.5px solid #e1e8f0; 5357 background: #f9fbfc; 5358 border-radius: 12px; 5359} 5360 5361.upsell-section > .upsell-title { 5362 margin: 0 0 12px 0; 5363 font-weight: 800; 5364 font-size: 17px; 5365 color: #1f3245; 5366 letter-spacing: 0.03em; 5367 text-transform: uppercase; 5368 text-align: left; 5369} 5370 5371.upsell-scroll { 5372 display: grid; 5373 grid-template-columns: repeat(2, 1fr); 5374 gap: 12px; 5375 padding: 0; 5376 overflow: visible; 5377} 5378 5379.upsell-scroll > div, 5380.upsell-card { 5381 width: 100%; 5382 background: #fff; 5383 border: 1.5px solid #dde6ed; 5384 border-radius: 14px; 5385 padding: 12px 10px 54px 10px; 5386 box-shadow: 0 2px 6px rgba(45, 70, 93, 0.08); 5387 transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease; 5388 cursor: pointer; 5389 display: flex; 5390 flex-direction: column; 5391 align-items: center; 5392 gap: 8px; 5393 min-height: 180px; 5394 position: relative; 5395} 5396 5397.upsell-scroll > div:hover, 5398.upsell-card:hover, 5399.upsell-card:focus-within { 5400 transform: translateY(-4px); 5401 box-shadow: 0 8px 20px rgba(45, 70, 93, 0.15); 5402 border-color: #2d465d; 5403 outline: none; 5404} 5405 5406.upsell-scroll img, 5407.upsell-card img { 5408 width: 64px; 5409 height: 64px; 5410 object-fit: contain; 5411 border-radius: 8px; 5412 background: #f0f4f8; 5413 padding: 6px; 5414 box-shadow: inset 0 0 6px #d7e1eb; 5415 transition: box-shadow 0.3s ease; 5416 margin: 0; 5417} 5418 5419.upsell-card:hover img { 5420 box-shadow: inset 0 0 10px #b0c4d9; 5421} 5422 5423.upsell-scroll .upsell-title, 5424.upsell-card .upsell-title { 5425 font-weight: 700; 5426 font-size: 15px; 5427 color: #223746; 5428 margin: 0; 5429 min-height: 42px; 5430 text-align: center; 5431 line-height: 1.2; 5432 overflow: hidden; 5433 text-overflow: ellipsis; 5434 display: -webkit-box; 5435 -webkit-line-clamp: 2; 5436 -webkit-box-orient: vertical; 5437 cursor: default; 5438} 5439 5440.upsell-scroll .upsell-price, 5441.upsell-card .upsell-price { 5442 font-weight: 600; 5443 font-size: 13px; 5444 color: #5a5a5a; 5445 margin: 0 0 10px 0; 5446} 5447 5448 5449.btn-upsell-add { 5450 font-size: 14px !important; 5451 padding: 10px 14px !important; 5452 width: calc(100% - 20px); /* full width minus horizontal card padding */ 5453 border-radius: 12px; 5454 background-color: #2d465d; 5455 color: #fff; 5456 border: none; 5457 font-weight: 700; 5458 box-shadow: 0 4px 14px rgba(45, 70, 93, 0.4); 5459 transition: background-color 0.3s ease, box-shadow 0.3s ease, transform 0.15s ease;
5460 cursor: pointer; 5461 user-select: none; 5462 position: absolute; 5463 bottom: 12px; 5464 left: 10px; 5465 right: 10px; 5466 box-sizing: border-box; /* ensure padding included in width */ 5467} 5468 5469.btn-upsell-add:hover, 5470.btn-upsell-add:focus-visible { 5471 background-color: #223746; 5472 box-shadow: 0 6px 20px rgba(34, 55, 70, 0.6); 5473 outline-offset: 2px; 5474 transform: translateY(-2px); 5475} 5476/* Delivery info cards container */ 5477.delivery-info-cards { 5478 display: flex; 5479 flex-direction: column; /* default stacked for desktop */ 5480 gap: 12px; 5481 margin-top: 16px; 5482} 5483 5484/* Individual card styling */ 5485.delivery-card { 5486 background: #fff; 5487 border: 1px solid #2d465d33; 5488 border-radius: 10px; 5489 padding: 12px 16px; 5490 box-shadow: 0 2px 6px rgba(0,0,0,0.08); 5491 color: #2d465d; 5492 font-size: 14px; 5493} 5494 5495.delivery-card p { 5496 font-weight: 700; 5497 margin-bottom: 6px; 5498} 5499 5500.delivery-card ul { 5501 padding-left: 20px; 5502 margin: 0; 5503 list-style-type: disc; 5504 line-height: 1.5; 5505} 5506 5507.delivery-card li { 5508 margin-bottom: 4px; 5509} 5510 5511/* Responsive upsell grid */ 5512@media (max-width: 768px) { 5513 .upsell-scroll { 5514 grid-template-columns: repeat(2, 1fr); 5515 gap: 10px; 5516 } 5517 .upsell-card { 5518 min-height: 160px; 5519 padding-bottom: 50px; 5520 } 5521 .upsell-scroll img, 5522 .upsell-card img { 5523 width: 56px; 5524 height: 56px; 5525 } 5526 .btn-upsell-add { 5527 font-size: 13px !important; 5528 padding: 8px 12px !important; 5529 bottom: 10px; 5530 left: 8px; 5531 right: 8px; 5532 width: calc(100% - 16px); 5533 } 5534} 5535 5536/* Responsive mobile adjustments */ 5537@media (max-width: 768px) { 5538 .drawer { 5539 width: 100vw !important; 5540 max-width: 100vw !important; 5541 } 5542 .drawer__container, 5543 .drawer__body { 5544 width: 100%; 5545 } 5546 .cart-item-image { 5547 width: 50px; 5548 height: 50px; 5549 } 5550 .cart-item-title { 5551 font-size: 14px; 5552 } 5553 .cart-item-variant { 5554 font-size: 12px; 5555 } 5556 .cart-item-price { 5557 font-size: 14px; 5558 } 5559 .cart-item-qty { 5560 width: 40px !important; 5561 height: 28px !important; 5562 font-size: 14px !important; 5563 } 5564 .cart-item-qty-minus, 5565 .cart-item-qty-plus { 5566 width: 28px !important; 5567 height: 28px !important; 5568 font-size: 16px !important; 5569 } 5570 .delivery-info-cards { 5571 flex-direction: row; 5572 gap: 8px; 5573 } 5574 .delivery-card { 5575 flex: 1 1 50%; /* each card takes 50% width */ 5576 box-sizing: border-box; 5577 } 5578} 5579</style> 5580 5581 5582 5583<div id="CartDrawer" class="drawer drawer--right" aria-modal="true" role="dialog" aria-labelledby="cart-header-label" aria-describedby="cart-description"> 5584 <div class="drawer__backdrop" tabindex="-1"></div> 5585 <div class="drawer__container" role="document"> 5586 5587 <div class="cart-step active" id="cart-step-1" aria-live="polite"> 5588 <div class="drawer__header"> 5589 <button class="drawer__close" aria-label="Close cart drawer">Ã</button> 5590 <p class="cart-header" id="cart-header-label">Cart (<span id="CartItemCount">0</span>)</p> 5591 <div class="order-minimum-progress" aria-describedby="order-minimum-text"> 5592 <div class="order-minimum-text" id="order-minimum-text">Minimum order: $80</div> 5593 <div class="progress-bar-container" role="progressbar" aria-valuemin="0" aria-valuemax="100" aria-valuenow="0"> 5594 <div class="progress-bar" id="order-progress-bar"></div> 5595 </div> 5596 </div> 5597 </div> 5598 <div class="drawer__body" id="cart-step-1-body"> 5599 <div id="CartDrawerContents"><p>Loading cart...</p></div> 5600 <div class="wrapped-gift-card-container" id="wrapped-gift-card-container" aria-label="Gift cards"></div> 5601 <div id="shopify-section-cart-upsell-products" class="shopify-section"> 5602 5603<div class="upsell-section"> 5604 <p class="upsell-title">You May Also Like:</p> 5605 <div class="upsell-scroll" role="list"> 5606 5607 5608 5609 5610 5611 5612 5613 5614 5615 5616 <div class="upsell-card" 5617 data-variant-id="" 5618 data-min-cart-quantity="0" 5619 data-discount="" 5620 data-discount-amount="0"> 5621 5622 5623 <img src="//lukeslobster.com/cdn/shopifycloud/storefront/assets/no-image-100-2a702f30_100x100.gif" alt=""> 5624 5625 <p class="upsell-title"></p> 5626 5627 5628 5629 5630 5631 5632 <p class="upsell-price"> 5633 5634 5635 5636 </p> 5637 5638 5639 <button class="btn btn--secondary btn-upsell-add" 5640 data-variant-id=""> 5641 Add 5642</button> 5643 </div> 5644 5645 5646 5647 5648 5649 5650 5651 5652 5653 5654 5655 5656 5657 5658 <div class="upsell-card" 5659 data-variant-id="39274035380363" 5660 data-min-cart-quantity="0" 5661 data-discount="" 5662 data-discount-amount="0"> 5663 5664 5665 <img src="//lukeslobster.com/cdn/shop/files/LukesStudio_December2023-13_100x100.jpg?v=1761661409" alt="New England Clam Chowder - Serves 1"> 5666 5667 <p class="upsell-title">New England Clam Chowder - Serves 1</p> 5668 5669 5670 5671 5672 5673 5674 <p class="upsell-price"> 5675 5676 $12.00 5677 5678 </p> 5679 5680 5681 <button class="btn btn--secondary btn-upsell-add" 5682 data-variant-id="39274035380363"> 5683 Add 5684</button> 5685 </div> 5686 5687 5688 5689 5690 5691 5692 5693 5694 5695 5696 5697 5698 5699 5700 <div class="upsell-card" 5701 data-variant-id="32974432895115" 5702 data-min-cart-quantity="0" 5703 data-discount="" 5704 data-discount-amount="0"> 5705 5706 5707 <img src="//lukeslobster.com/cdn/shop/files/StudioShots-41_0f91dd9b-857a-4ff7-b7e4-ce015d1cab
5707cd_100x100.jpg?v=1770149669" alt="Lobster Mac & Cheese - Serves 1"> 5708 5709 <p class="upsell-title">Lobster Mac & Cheese - Serves 1</p> 5710 5711 5712 5713 5714 5715 5716 <p class="upsell-price"> 5717 5718 $12.00 5719 5720 </p> 5721 5722 5723 <button class="btn btn--secondary btn-upsell-add" 5724 data-variant-id="32974432895115"> 5725 Add 5726</button> 5727 </div> 5728 5729 5730 5731 5732 5733 5734 5735 5736 5737 5738 5739 5740 5741 5742 <div class="upsell-card" 5743 data-variant-id="45495963156619" 5744 data-min-cart-quantity="0" 5745 data-discount="" 5746 data-discount-amount="0"> 5747 5748 5749 <img src="//lukeslobster.com/cdn/shop/files/February_PastaPackaging-37_100x100.jpg?v=1770987938" alt="Rigatoni Shrimp Alfredo - Serves 1"> 5750 5751 <p class="upsell-title">Rigatoni Shrimp Alfredo - Serves 1</p> 5752 5753 5754 5755 5756 5757 5758 <p class="upsell-price"> 5759 5760 $12.00 5761 5762 </p> 5763 5764 5765 <button class="btn btn--secondary btn-upsell-add" 5766 data-variant-id="45495963156619"> 5767 Add 5768</button> 5769 </div> 5770 5771 5772 5773 5774 5775 5776 </div> 5777</div> 5778 5779 5780 5781 5782</div> 5783 </div> 5784 <div class="drawer__footer"> 5785 <div id="cart-subtotals" class="cart-subtotals" aria-live="polite"> 5786 <div class="subtotal-wrapper"> 5787 <span class="subtotal-label">Subtotal:</span> 5788 <span id="subtotal-amount"><strong>$0.00</strong></span> 5789 </div> 5790 <div id="cart-discount-wrapper" class="cart-discount-wrapper"> 5791 <div id="discount-container"> 5792 <input type="text" id="cart-discount-code" placeholder="Discount code" aria-label="Enter discount code"> 5793 <button id="apply-discount" class="btn btn--secondary">Apply</button> 5794 </div> 5795 <div id="cart-discounts" role="list" aria-label="Applied discounts"></div> 5796 </div> 5797 </div> 5798 <button id="go-to-step-2" class="btn btn--primary" aria-controls="cart-step-2" aria-expanded="false">Select Delivery Date</button> 5799 </div> 5800 </div> 5801 5802 <div class="cart-step" id="cart-step-2" aria-live="polite"> 5803 <div class="drawer__header"> 5804 <button id="back-to-step-1" class="btn btn--secondary" aria-controls="cart-step-1" aria-expanded="false">â Back to Cart</button> 5805 </div> 5806 <div class="drawer__body" id="cart-step-2-body"> 5807<div class="calendar_section" id="calendar_section" aria-label="Delivery date selection"></div> 5808<div class="delivery-info-cards"> 5809 <div class="delivery-card frozen-items"> 5810 <p><strong>Frozen Items</strong></p> 5811 <ul> 5812 <li>Order 2-3 days in advance for on-time delivery.</li> 5813 <li>May arrive as late as 9pm with dry ice and gel packs.</li> 5814 <li>Thaw in fridge 16-24 hours before use.</li> 5815 </ul> 5816 </div> 5817 <div class="delivery-card live-lobsters"> 5818 <p><strong>Live Lobsters</strong></p> 5819 <ul> 5820 <li>Delivered around noon on the day before or day of cooking.</li> 5821 <li>Best enjoyed same day for freshness.</li> 5822 </ul> 5823 </div> 5824</div> 5825 </div> 5826 <div class="drawer__footer"> 5827 <a href="/checkout" id="checkout-btn" class="btn btn--primary btn--disabled" aria-disabled="true" tabindex="-1">Checkout</a> 5828 <p id="minimum-warning-2" class="minimum-warning" aria-live="assertive"></p> 5829 </div> 5830 </div> 5831 5832 </div> 5833</div> 5834
5835<script src="https://cdn.shopify.com/extensions/019a0261-c0cb-7c65-8ba5-5634a49ef862/wrapped-1651/assets/wrapped-app-embed.js"></script>
5835 5836
5837<script> 5838document.addEventListener('DOMContentLoaded', () => { 5839 const cartDrawer = document.getElementById('CartDrawer'); 5840 const cartDrawerContents = document.getElementById('CartDrawerContents'); 5841 const drawerCloseBtn = cartDrawer.querySelector('.drawer__close'); 5842 const drawerBackdrop = cartDrawer.querySelector('.drawer__backdrop'); 5843 const cartIcon = document.querySelector('.header-actions__cart'); 5844 const checkoutBtn = document.getElementById('checkout-btn'); 5845 const cartItemCount = document.getElementById('CartItemCount'); 5846 const minimumWarning = document.getElementById('minimum-warning-2'); 5847 const orderMinimumText = document.getElementById('order-minimum-text'); 5848 const orderProgressBar = document.getElementById('order-progress-bar'); 5849 const wrappedContainer = document.getElementById('wrapped-gift-card-container'); 5850 const discountContainer = document.getElementById('discount-container'); 5851 const applyDiscountBtn = document.getElementById('apply-discount'); 5852 const discountInput = document.getElementById('cart-discount-code'); 5853 const cartDiscounts = document.getElementById('cart-discounts'); 5854 const upsellContainer = document.getElementById('upsell-scroll'); 5855 const step1 = document.getElementById('cart-step-1'); 5856 const step2 = document.getElementById('cart-step-2'); 5857 const goToStep2Btn = document.getElementById('go-to-step-2'); 5858 const backToStep1Btn = document.getElementById('back-to-step-1'); 5859 5860 const ORDER_MINIMUM = 8000; // $80 in cents 5861 let cartMeetsMinimum = false; 5862 let deliveryDateSelected = false; 5863 5864 /* ---------------- Discount Handling ---------------- */ 5865 applyDiscountBtn?.addEventListener('click', () => { 5866 const code = discountInput.value.trim(); 5867 if (!code) return alert('Enter a discount code.'); 5868 fetch('/cart/update.js', { 5869 method: 'POST', 5870 headers: {'Content-Type': 'application/json'}, 5871 body: JSON.stringify({ discount: code }) 5872 }).then(() => fetchCart()); 5873 }); 5874 5875 function removeDiscount() { 5876 fetch('/cart/update.js', { 5877 method: 'POST', 5878 headers: {'Content-Type': 'application/json'}, 5879 body: JSON.stringify({ discount: '' }) 5880 }).then(() => fetchCart()); 5881 } 5882 5883 function fetchCart() { 5884 fetch('/cart.js') 5885 .then(res => res.json()) 5886 .then(cart => { 5887 window.__latestCart = cart; // global reference 5888 renderCartDrawer(cart); 5889 renderUpsell(cart); 5890 }) 5891 .catch(err => console.error('Cart fetch failed:', err)); 5892 } 5893 5894 /* ---------------- Gift Card Logic ---------------- */ 5895 function cartContainsOnlyGiftCards(cart) { 5896 return cart.items.length > 0 && cart.items.every(item => 5897 item.product_type && item.product_type.toLowerCase().includes('gift card') 5898 ); 5899 } 5900 5901 // Modify updateCheckoutButton to account for gift cards 5902 const originalUpdateCheckoutButton = updateCheckoutButton; 5903 updateCheckoutButton = function() { 5904 const subtotal = Number(cartDrawerContents.dataset.cartSubtotal || 0); 5905 const onlyGiftCards = window.__latestCart && cartContainsOnlyGiftCards(window.__latestCart); 5906 5907 if (onlyGiftCards) { 5908 checkoutBtn.classList.remove('btn--disabled'); 5909 checkoutBtn.removeAttribute('aria-disabled'); 5910 checkoutBtn.style.pointerEvents = 'auto'; 5911 checkoutBtn.tabIndex = 0; 5912 minimumWarning.textContent = ''; 5913 return; 5914 } 5915 5916 // Otherwise, run original logic 5917 originalUpdateCheckoutButton(); 5918 }; 5919 // Patch fetchCart to store cart globally for gift card checks 5920const originalFetchCart = fetchCart; 5921fetchCart = function() { 5922 fetch('/cart.js') 5923 .then(res => res.json()) 5924 .then(cart => { 5925 window.__latestCart = cart; // store globally 5926 renderCartDrawer(cart); 5927 renderUpsell(cart); 5928 5929 const onlyGiftCards = cartContainsOnlyGiftCards(cart); 5930 5931 // Update progress bar and button 5932 if (onlyGiftCards) { 5933 orderMinimumText.textContent = 'Gift cards do not require a delivery date or minimum.'; 5934 orderProgressBar.style.width = '100%'; 5935 cartMeetsMinimum = true; 5936 deliveryDateSelected = true; 5937 } 5938 5939 updateCheckoutButton(); 5940 }) 5941 .catch(err => console.error('Cart fetch failed:', err)); 5942}; 5943 function updateOrderMinimumMessage(subtotal) { 5944 if (subtotal < ORDER_MINIMUM) { 5945 const diff = ORDER_MINIMUM - subtotal; 5946 orderMinimumText.textContent = `${Shopify.formatMoney(diff)} until free shipping`; 5947 orderProgressBar.style.width = `${Math.min((subtotal / ORDER_MINIMUM) * 100, 100)}%`; 5948 } else { 5949 orderProgressBar.style.width = '100%'; 5950 orderMinimumText.textContent = deliveryDateSelected ? '' : 'Select a delivery date to checkout'; 5951 } 5952 } 5953 5954 function isGiftItem(item) { 5955 return item.properties && Object.keys(item.properties).some(k => /_Gifted/i.test(k)); 5956 } 5957 5958 /* ---------------- Render Cart Drawer ---------------- */ 5959function renderCartDrawer(cart) { 5960 cartDrawerContents.innerHTML = ''; 5961 cartItemCount.textContent = cart.item_count; 5962 cartDrawerContents.dataset.cartSubtotal = cart.total_price;
5963 cartMeetsMinimum = cart.total_price >= ORDER_MINIMUM; 5964 updateOrderMinimumMessage(cart.total_price); 5965 5966 // ---------------- Discounts ---------------- 5967 cartDiscounts.innerHTML = ''; 5968 const discountMap = {}; 5969 5970 // Gifted item discounts (non-removable) 5971 cart.items.forEach(item => { 5972 if (item.properties && item.properties['']) { 5973 const title = '2 Free Rolls w/ Fall Favs'; 5974 const amount = item.original_price * item.quantity; 5975 discountMap[title] = { amount, removable: false }; 5976 } 5977 }); 5978 5979 // Cart-level discounts (removable) 5980 (cart.cart_level_discount_applications || []).forEach(discount => { 5981 const title = discount.title; 5982 const amount = discount.total_allocated_amount; 5983 discountMap[title] = { amount, removable: true }; 5984 }); 5985 5986 // Line-item discounts (non-removable) 5987 cart.items.forEach(item => { 5988 (item.discounts || []).forEach(d => { 5989 const title = d.title; 5990 const amount = d.amount; 5991 if (!discountMap[title]) { 5992 discountMap[title] = { amount, removable: false }; 5993 } 5994 }); 5995 }); 5996 5997 // Render all discounts 5998 Object.entries(discountMap).forEach(([title, { amount, removable }]) => { 5999 const el = document.createElement('div'); 6000 el.classList.add('cart-discount'); 6001 el.innerHTML = `<span><strong>Discount: ${title}</strong></span> 6002 <button class="remove-discount" type="button" style="display:${removable ? 'inline-block' : 'none'}">Ã</button>`; 6003 if (removable) el.querySelector('button').addEventListener('click', removeDiscount); 6004 cartDiscounts.appendChild(el); 6005 }); 6006 6007 // Determine if any discount exists 6008 const hasAnyDiscount = Object.keys(discountMap).length > 0; 6009 discountContainer.style.display = 'flex'; 6010cartDiscounts.style.display = hasAnyDiscount ? 'flex' : 'none'; 6011 6012 // ---------------- Cart Items ---------------- 6013 if (cart.items.length === 0) { 6014 cartDrawerContents.innerHTML = '<p class="empty-cart">Your cart is empty</p>'; 6015 } else { 6016 cart.items.forEach(item => { 6017 const img = item.image ? item.image.replace(/(\.(jpg|png|gif))/, '_100x100$1') : 'https://via.placeholder.com/100'; 6018 const price = Shopify.formatMoney(item.final_line_price); 6019 const originalPrice = Shopify.formatMoney(item.original_line_price); 6020 6021 // Build discount badges for this item 6022let discountLabelsHTML = ''; 6023 6024// Only show discounts that are applied to this specific item 6025const lineItemDiscounts = [ 6026 ...(item.discount_allocations || []).filter(alloc => alloc.amount > 0).map(alloc => ({ 6027 title: alloc.discount_application?.title || 'Discount' 6028 })), 6029 ...(item.discounts || []).map(d => ({ title: d.title })) 6030]; 6031 6032lineItemDiscounts.forEach(d => { 6033 discountLabelsHTML += ` 6034 <div class="cart-item-discount-badge" style="display:flex; flex-direction:column; margin-top:4px; padding:4px 8px; background:#f3f6f8; border-radius:6px; width:100%;"> 6035 <span class="discount-title" style="font-size:.85rem; color:#2e475e; font-weight: bold;">${d.title}</span> 6036 </div> 6037 `; 6038}); 6039 6040 const div = document.createElement('div'); 6041 div.classList.add('cart-item'); 6042 div.dataset.variantId = item.variant_id; 6043 6044 div.innerHTML = ` 6045 <img src="${img}" alt="${item.product_title}" class="cart-item-image"> 6046 <div class="cart-item-details"> 6047 <p class="cart-item-title">${item.product_title}</p> 6048 <p class="cart-item-variant">${item.variant_title || ''}</p> 6049 <div class="cart-item-qty-price"> 6050 <div class="qty-controls"> 6051 <button type="button" class="cart-item-qty-minus" data-variant-id="${item.variant_id}" aria-label="Decrease quantity for ${item.product_title}">â</button> 6052 <input type="number" class="cart-item-qty" value="${item.quantity}" min="0" data-variant-id="${item.variant_id}" aria-label="${item.product_title} quantity"> 6053 <button type="button" class="cart-item-qty-plus" data-variant-id="${item.variant_id}" aria-label="Increase quantity for ${item.product_title}">+</button> 6054 </div> 6055 <span class="cart-item-price">${price}</span> 6056 </div> 6057 ${discountLabelsHTML} 6058 </div> 6059 <button type="button" class="cart-item-remove" data-variant-id="${item.variant_id}" aria-label="Remove ${item.product_title} from cart">
6059Ã</button> 6060 `; 6061 cartDrawerContents.appendChild(div); 6062 }); 6063 6064 // Add quantity and remove handlers 6065 cartDrawerContents.querySelectorAll('.cart-item-qty-minus').forEach(btn => btn.addEventListener('click', e => updateQty(e, -1))); 6066 cartDrawerContents.querySelectorAll('.cart-item-qty-plus').forEach(btn => btn.addEventListener('click', e => updateQty(e, 1))); 6067 cartDrawerContents.querySelectorAll('.cart-item-qty').forEach(input => input.addEventListener('change', updateQtyInput)); 6068 cartDrawerContents.querySelectorAll('.cart-item-remove').forEach(btn => btn.addEventListener('click', removeItem)); 6069 } 6070 6071 document.getElementById('subtotal-amount').innerHTML = `<strong>${Shopify.formatMoney(cart.total_price)}</strong>`; 6072 updateCheckoutButton(); 6073} 6074 6075 /* ---------------- Cart Updates ---------------- */ 6076 function updateCart(variantId, qty) { 6077 fetch('/cart.js') 6078 .then(res => res.json()) 6079 .then(cart => { 6080 const updates = [{ id: variantId, quantity: qty }]; 6081 const triggerItem = cart.items.find(i => i.variant_id == variantId); 6082 if (triggerItem) { 6083 cart.items.forEach(item => { 6084 if (isGiftItem(item) && item.properties['_Gifted'] === String(triggerItem.variant_id)) { 6085 updates.push({ id: item.variant_id, quantity: qty }); 6086 } 6087 }); 6088 } 6089 6090 return fetch('/cart/update.js', { 6091 method: 'POST', 6092 headers: {'Content-Type': 'application/json'}, 6093 body: JSON.stringify({ updates: Object.fromEntries(updates.map(u => [u.id, u.quantity])) }) 6094 }); 6095 }) 6096 .then(() => setTimeout(fetchCart, 200)); 6097 } 6098 6099 function updateQty(e, delta) { 6100 e.preventDefault(); 6101 const id = e.currentTarget.dataset.variantId; 6102 const input = cartDrawerContents.querySelector(`.cart-item-qty[data-variant-id="${id}"]`); 6103 const newQty = Math.max(0, parseInt(input.value) + delta); 6104 input.value = newQty; 6105 updateCart(id, newQty); 6106 } 6107 6108 function updateQtyInput(e) { 6109 e.preventDefault(); 6110 const id = e.currentTarget.dataset.variantId; 6111 const newQty = Math.max(0, parseInt(e.currentTarget.value) || 0); 6112 updateCart(id, newQty); 6113 } 6114 6115 function removeItem(e) { 6116 e.preventDefault(); 6117 const id = e.currentTarget.dataset.variantId; 6118 updateCart(id, 0); 6119 } 6120 6121 /* ---------------- Drawer Control ---------------- */ 6122 function openDrawer() { 6123 cartDrawer.style.display = 'flex'; 6124 if (window.innerWidth <= 768) document.body.style.overflow = 'hidden'; 6125 setTimeout(() => cartDrawer.classList.add('drawer--open'), 10); 6126 document.dispatchEvent(new CustomEvent('custom:event:cart-drawer')); 6127 fetchCart(); 6128 } 6129 6130 function closeDrawer() { 6131 cartDrawer.classList.remove('drawer--open'); 6132 setTimeout(() => (cartDrawer.style.display = 'none'), 300); 6133 document.body.style.overflow = ''; 6134 } 6135 6136 cartIcon?.addEventListener('click', e => { e.preventDefault(); openDrawer(); }); 6137 drawerCloseBtn.addEventListener('click', closeDrawer); 6138 drawerBackdrop.addEventListener('click', closeDrawer); 6139 6140 /* ---------------- Step Navigation ---------------- */ 6141 goToStep2Btn.addEventListener('click', () => { 6142 if (!cartMeetsMinimum) { 6143 alert('Add more items to reach the $80 minimum.'); 6144 return; 6145 } 6146 step1.classList.remove('active'); 6147 step2.classList.add('active'); 6148 goToStep2Btn.setAttribute('aria-expanded', 'true'); 6149 backToStep1Btn.setAttribute('aria-expanded', 'true'); 6150 }); 6151 6152 backToStep1Btn.addEventListener('click', () => { 6153 step2.classList.remove('active'); 6154 step1.classList.add('active'); 6155 goToStep2Btn.setAttribute('aria-expanded', 'false'); 6156 backToStep1Btn.setAttribute('aria-expanded', 'false'); 6157 }); 6158 6159 function updateCheckoutButton() { 6160 if (cartMeetsMinimum && deliveryDateSelected) { 6161 checkoutBtn.classList.remove('btn--disabled'); 6162 checkoutBtn.removeAttribute('aria-disabled'); 6163 checkoutBtn.style.pointerEvents = 'auto'; 6164 checkoutBtn.tabIndex = 0; 6165 minimumWarning.textContent = ''; 6166 } else { 6167 checkoutBtn.classList.add('btn--disabled'); 6168 checkoutBtn.setAttribute('aria-disabled', 'true'); 6169 checkoutBtn.style.pointerEvents = 'none'; 6170 checkoutBtn.tabIndex = -1; 6171 minimumWarning.textContent = !cartMeetsMinimum 6172 ? 'Add more items to reach the $80 minimum.' 6173 : 'Select a delivery date to checkout.'; 6174 } 6175 } 6176 6177 checkoutBtn.addEventListener('click', e => { 6178 e.preventDefault(); 6179 if (!cartMeetsMinimum) return alert('Add more items to reach the $80 minimum.'); 6180 if (!deliveryDateSelected) return alert('Please select a delivery date before checking out.'); 6181 window.location.href = '/checkout'; 6182 }); 6183 6184 /* ---------------- Delivery Date Selection ---------------- */
6185 function observeCalendar() { 6186 const cal = document.querySelector('.uiDeliveryCalendar'); 6187 if (!cal) return setTimeout(observeCalendar, 200); 6188 6189 const updateSelection = () => { 6190 const selectedDay = cal.querySelector('.rmdp-day.rmdp-selected'); 6191 deliveryDateSelected = !!selectedDay; 6192 const subtotal = Number(cartDrawerContents.dataset.cartSubtotal || 0); 6193 updateCheckoutButton(); 6194 updateOrderMinimumMessage(subtotal); 6195 }; 6196 6197 updateSelection(); 6198 cal.addEventListener('click', () => setTimeout(updateSelection, 50)); 6199 6200 const observer = new MutationObserver(mutations => { 6201 for (const mutation of mutations) { 6202 if (mutation.type === 'attributes' && mutation.attributeName === 'class') { 6203 updateSelection(); 6204 break; 6205 } 6206 } 6207 }); 6208 6209 observer.observe(cal, { attributes: true, subtree: true, attributeFilter: ['class'] }); 6210 } 6211 observeCalendar(); 6212 6213 function pollDeliveryDateSelection() { 6214 const calendarWrapper = document.querySelector('.uiDeliveryCalendar') || document.getElementById('calendar_section'); 6215 if (!calendarWrapper) { 6216 setTimeout(pollDeliveryDateSelection, 300); 6217 return; 6218 } 6219 let lastSelected = null; 6220 6221 setInterval(() => { 6222 const selectedDay = calendarWrapper.querySelector('.rmdp-day.rmdp-selected'); 6223 const currentlySelected = !!selectedDay; 6224 if (currentlySelected !== lastSelected) { 6225 lastSelected = currentlySelected; 6226 deliveryDateSelected = currentlySelected; 6227 const subtotal = Number(cartDrawerContents.dataset.cartSubtotal || 0); 6228 updateCheckoutButton(); 6229 updateOrderMinimumMessage(subtotal); 6230 } 6231 }, 500); 6232 } 6233 pollDeliveryDateSelection(); 6234 6235 /* ---------------- Wrapped Gift Card ---------------- */ 6236 document.addEventListener('custom:event:cart-drawer', () => { 6237 if (window.Wrapped) { 6238 Wrapped.init({ 6239 container: wrappedContainer, 6240 uuid: '1f45290f-612c-4dba-9858-2f314895e3d4' 6241 }); 6242 } 6243 }); 6244 6245 function renderUpsell(cart) { 6246 const upsellContainer = document.querySelector('.upsell-scroll'); 6247 if (!upsellContainer) return; 6248 6249 upsellContainer.querySelectorAll('.upsell-card').forEach(card => { 6250 const variantId = parseInt(card.dataset.variantId, 10); 6251 const minQty = parseInt(card.dataset.minCartQuantity, 10) || 0; 6252 6253 // Check if this variant is in the cart 6254 const inCart = cart.items.some(item => item.variant_id === variantId); 6255 6256 // Show the card if variant NOT in cart AND cart meets minimum quantity 6257 card.style.display = (!inCart && cart.item_count >= minQty) ? 'flex' : 'none'; 6258 6259 // Attach click listener only once 6260 const btn = card.querySelector('.btn-upsell-add'); 6261 if (!btn || btn.dataset.listenerAttached) return; 6262 6263 btn.addEventListener('click', e => { 6264 e.preventDefault(); 6265 const variantId = parseInt(btn.dataset.variantId, 10); 6266 6267 const bodyData = { id: variantId, quantity: 1 }; 6268 6269 fetch('/cart/add.js', { 6270 method: 'POST', 6271 headers: { 'Content-Type': 'application/json' }, 6272 body: JSON.stringify(bodyData) 6273 }) 6274 .then(() => fetchCart()) // Refresh cart data after adding 6275 .catch(() => alert('Unable to add item to cart.')); 6276 }); 6277 6278 btn.dataset.listenerAttached = true; 6279 }); 6280} 6281 6282 6283 /* ---------------- Form Add-to-Cart ---------------- */ 6284 document.querySelectorAll('form[action^="/cart/add"]').forEach(form => { 6285 form.addEventListener('submit', async e => { 6286 e.preventDefault(); 6287 const formData = new FormData(form); 6288 const variantId = formData.get('id'); 6289 const quantity = parseInt(formData.get('quantity')) || 1; 6290 6291 try { 6292 await fetch('/cart/add.js', { 6293 method: 'POST', 6294 headers: { 'Content-Type': 'application/json' }, 6295 body: JSON.stringify({ id: variantId, quantity }) 6296 }); 6297 openDrawer(); 6298 } catch { 6299 alert('Failed to add item to cart.'); 6300 } 6301 }); 6302 }); 6303 6304 /* ---------------- Initial Fetch ---------------- */ 6305 fetchCart(); 6306 6307}); 6308</script>
6308 6309 6310 <style> </style>
6311<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
6311 6312</body>
6312<script> (function(){ var s = document.createElement('script'); var h = document.querySelector('head') || document.body; s.src = 'https://acsbapp.com/apps/app/dist/js/app.js'; s.async = true; s.onload = function(){ acsbJS.init(); }; h.appendChild(s); })(); </script>
6312 6313</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.