PageSourceSearch

https://www.bushnellgolf.com/pages/contact

html bushnellgolf.com collected 2026-10-01 11:24:40 UTC 354,104 bytes, 4,912 lines download raw bytes

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17<!DOCTYPE html>
18<html lang="en">
19<head>
20  
21  
21<script type="text/javascript" async src="https://na.shgcdn3.com/pixel-collector.js"></script>
21
22
23   <!-- OneTrust Cookies Consent Notice start for bushnellgolf.com -->
24<script src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" async type="text/javascript" charset="UTF-8" data-domain-script="6dc80972-8ca6-414a-a7c5-a260885539e8" ></script>
vendor: 2 bytes, line 24
24
25<script type="text/javascript">
26function OptanonWrapper() { }
27</script>
27
28<!-- OneTrust Cookies Consent Notice end for bushnellgolf.com -->
29<meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
30<meta name="viewport" content="width=device-width,initial-scale=1"> 
31<meta name="view-transition" content="same-origin">
32<meta name="theme-color" content="">
33<meta property="og:site_name" content="Bushnell Golf"> 
34<meta property="og:url" content="https://www.bushnellgolf.com/pages/contact">
35<meta property="og:title" content="Contact Us | Bushnell Golf"> 
36<meta property="og:type" content="website">
37<meta property="og:description" content="Bushnell Golf customer service team is here to help Mon-Fri, 8:00am to 4:30pm CST. Click here to contact Bushnell Golf customer service."><meta property="og:image" content="https://www.bushnellgolf.com/cdn/shop/files/bushnell_logo.webp?v=1786469888&width=1200">
38  <meta property="og:image:secure_url" content="https://www.bushnellgolf.com/cdn/shop/files/bushnell_logo.webp?v=1786469888&width=1200"><meta property="og:image:width" content="1200">
39    <meta property="og:image:height" content="628"><meta name="twitter:card" content="summary_large_image"> 
40<meta name="twitter:title" content="Contact Us | Bushnell Golf">
41<meta name="twitter:description" content="Bushnell Golf customer service team is here to help Mon-Fri, 8:00am to 4:30pm CST. Click here to contact Bushnell Golf customer service."><meta name="twitter:image" content="https://www.bushnellgolf.com/cdn/shop/files/bushnell_logo.webp?v=1786469888&width=1200"><title>
42  Contact Us | Bushnell Golf�</title>
43<link rel="canonical" href="https://www.bushnellgolf.com/pages/contact">
44<meta name="description" content="Bushnell Golf customer service team is here to help Mon-Fri, 8:00am to 4:30pm CST. Click here to contact Bushnell Golf customer service.">
45<meta name="google-site-verification" content="QB7OV1rk3Q8aMLza38ldv-0AnjJm4Ld5fvuDhJTsmyA" />
46<meta name="google-site-verification" content="maaQ54rgAe6kxaZNZo1U2leDgbetgtxqL1NlLS6E5_o" />
47<link rel="preconnect" href="https://cdn.cookielaw.org">
48  <link rel="preconnect" href="https://cdn-4.convertexperiments.com">
49  <link rel="preconnect" href="https://edge.cofra.me">
50  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
51  <link rel="dns-prefetch" href="https://cdn.jsdelivr.net">
52  <link rel="dns-prefetch" href="https://sdk.helloextend.com">
53  <link rel="preconnect" href="https://api.helloextend.com" crossorigin>
53<script type="application/ld+json">
54{
55  "@context": "https://schema.org",
56  "@type": "Corporation",
57  "name": "Bushnell Golf",
58  "url": "https://www.bushnellgolf.com",
59  "description": "Bushnell Golf — The #1 Rangefinder in Golf. Laser rangefinders, GPS devices, and launch monitors.",
60  "brand": { "@type": "Brand", "name": "Bushnell Golf" },
61  "sameAs": [
62    "https://www.facebook.com/bushnellgolf",
63    "https://www.instagram.com/bushnellgolf",
64    "https://www.twitter.com/bushnellgolf",
65    "https://www.youtube.com/bushnellgolf"
66  ],
67  "contactPoint": {
68    "@type": "ContactPoint",
69    "contactType": "Customer Support",
70    "url": "https://www.bushnellgolf.com/pages/contact"
71  }
72}
73</script>
73
74
75<script type="application/ld+json">
76{
77  "@context": "https://schema.org",
78  "@type": "WebSite",
79  "name": "Bushnell Golf",
80  "url": "https://www.bushnellgolf.com",
81  "potentialAction": {
82    "@type": "SearchAction",
83    "target": {
84      "@type": "EntryPoint",
85      "urlTemplate": "https://www.bushnellgolf.com/search?q={search_term_string}"
86    },
87    "query-input": "required name=search_term_string"
88  }
89}
90</script>
vendor: 2 bytes, line 90
90
91<script defer src="https://cdn-4.convertexperiments.com/v1/js/10034870-10034482.js?environment=production"></script>
91
92
93
94<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/venobox.min.css" media="print" onload="this.media='all'">
95<noscript><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/venobox.min.css"></noscript> 
96��
96<script src="/cdn/shopifycloud/consent-tracking-api/v0.1/consent-tracking-api.js" defer></script>
96
97
98<script type="text/javascript">
99  
100;(function() {
101    var ht=Object.defineProperty;var ut=(v,f,w)=>f in v?ht(v,f,{enumerable:!0,configurable:!0,writable:!0,value:w}):v[f]=w;var a=(v,f,w)=>ut(v,typeof f!="symbol"?f+"":f,w);(function(){"use strict";class v{constructor(t,e){a(this,"CACHE_KEY","_shg_audience_cache");a(this,"CACHE_EXPIRATION_DAYS",7);a(this,"DEVICE_MOBILE_BREAKPOINT",768);a(this,"cache",{timestamp:Date.now(),data:{}});this.visitor=t,this.locationApiUrl=e,this.restoreCache()}evaluate(t){switch(t.value=this.snakeCaseKeys(t.value),t.audience_type){case"location":return this.locationMatches(t);case"b2b":return this.b2bMatches(t);case"device":return this.deviceMatches(t);case"logged_in":return this.loggedInMatches(t);case"referrer_contains":return this.referrerContainsMatches(t);case"url_contains":return this.urlContainsMatches(t);case"new_visitor":return this.newVisitorMatches(t);case"returning_visitor":return this.returningVisitorMatches(t);default:return{status:"skipped",expected:t.value,actual:null,reason:`No evaluator implemented for audience type: ${t.audience_type}`}}}evaluateAll(t,e="every"){if(!t||t.length===0)return{status:"eligible",condition:e,expected:{},actual:{}};if(!["every","any"].includes(e))return{status:"error",condition:e,expected:{},actual:{}};const i=t.map(s=>({type:s.audience_type,evaluation:this.evaluate(s)}));return{status:(e==="every"?i.every(s=>s.evaluation.status==="match"):i.some(s=>s.evaluation.status==="match"))?"eligible":"not_eligible",condition:e,expected:t.reduce((s,r)=>(s[r.audience_type]={condition:r.condition,value:r.value},s),{}),actual:i.reduce((s,r)=>(s[r.type]=r.evaluation.actual,s),{})}}b2bMatches(t){const e=t.value===this.visitor.isB2B;return{status:(t.condition==="is_not"?!e:e)?"match":"no_match",expected:{condition:t.condition,value:t.value},actual:{value:this.visitor.isB2B}}}deviceMatches(t){const e=window.innerWidth<this.DEVICE_MOBILE_BREAKPOINT||window.outerWidth<this.DEVICE_MOBILE_BREAKPOINT?"mobile":"desktop",i=t.value===e;return{status:(t.condition==="is_not"?!i:i)?"match":"no_match",expected:{condition:t.condition,value:t.value},actual:{value:e}}}locationMatches(t){if(!this.cache.data.location){const h=new XMLHttpRequest;h.open("GET",this.locationApiUrl,!1),h.send(null);const l=h.status===200?JSON.parse(h.responseText):null;l&&(this.cache.data.location={country:l==null?void 0:l.country,region:l==null?void 0:l.region,city:l==null?void 0:l.city,timestamp:Date.now()}
101,this.saveCache())}const e={condition:t.condition,value:t.value},i=this.cache.data.location;if(!e||!e.value||!e.value.type||!e.value.country_code||!i)return{status:"no_match",expected:e,actual:i?{value:i}:null};const{type:n,country_code:s,toponym_name:r,parent_name:o}=e.value;let d=!1;switch(n){case"country":d=i.country===s;break;case"region":d=i.region===r&&i.country===s;break;case"city":d=i.city===r&&i.region===o&&i.country===s;break;default:d=!1}return{status:(t.condition==="is_not"?!d:d)?"match":"no_match",expected:e,actual:{value:i}}}loggedInMatches(t){const e=String(t.value)==="true",i=this.visitor.isLoggedIn===e;return{status:(t.condition==="is_not"?!i:i)?"match":"no_match",expected:{condition:t.condition,value:t.value},actual:{value:this.visitor.isLoggedIn}}}referrerContainsMatches(t){if(typeof t.value!="string")return{status:"error",expected:{condition:t.condition,value:t.value},actual:null,reason:"Invalid expected value"};const e=document.referrer.toLowerCase().includes(t.value.toLowerCase());return{status:(t.condition==="is_not"?!e:e)?"match":"no_match",expected:{condition:t.condition,value:t.value},actual:{value:document.referrer}}}urlContainsMatches(t){if(typeof t.value!="string")return{status:"error",expected:{condition:t.condition,value:t.value},actual:null,reason:"Invalid expected value"};const e=window.location.href.toLowerCase().includes(t.value.toLowerCase());return{status:(t.condition==="is_not"?!e:e)?"match":"no_match",expected:{condition:t.condition,value:t.value},actual:{value:window.location.href}}}returningVisitorMatches(t){if(!this.visitor.details)return{status:"no_match",expected:{condition:t.condition,value:t.value},actual:null,reason:"No visitor details available"};const{expected_time_in_milliseconds:e,within_or_after:i}=t.value||{};if(typeof e!="number"||!i)return{status:"error",expected:{condition:t.condition,value:t.value},actual:null,reason:"Invalid expected data"};const n=this.visitor.details.first_visit_timestamp,s=Date.now();if(i==="within"){const r=n+e>s;return{status:(t.condition==="is_not"?!r:r)?"match":"no_match",expected:{condition:t.condition,value:t.value},actual:{value:n}}}else{const r=n+e<s;return{status:(t.condition==="is_not"?!r:r)?"match":"no_match",expected:{condition:t.condition,value:t.value},actual:{value:n}}}}newVisitorMatches(t){const e=t.value==this.visitor.isFirstVisit;return{status:(t.condition==="is_not"?!e:e)?"match":"no_match",expected:{condition:t.condition,value:t.value},actual:{value:this.visitor.isFirstVisit}}}restoreCache(){const t=localStorage.getItem(this.CACHE_KEY);if(t)try{const e=JSON.parse(t);e.timestamp<=Date.now()-this.CACHE_EXPIRATION_DAYS*24*60*60*1e3?(localStorage.removeItem(this.CACHE_KEY),this.cache.data={}):this.cache=e}catch{try{localStorage.removeItem(this.CACHE_KEY)}catch{}this.cache.data={}}}saveCache(){this.cache.timestamp=Date.now(),localStorage.setItem(this.CACHE_KEY,JSON.stringify(this.cache))}snakeCaseKeys(t){if(t==null||typeof t!="object")return t;const e={};for(const[i,n]of Object.entries(t)){const s=i.replace(/[A-Z]/g,r=>`_${r.toLowerCase()}`);e[s]=n}return e}}/*! js-cookie v3.0.8 | MIT */function f(c){for(var t=1;t<arguments.length;t++){var e=arguments[t];for(var i in e)i!=="__proto__"&&(c[i]=e[i])}return c}var w={read:function(c){return c[0]==='"'&&(c=c.slice(1,-1)),c.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(c){return encodeURIComponent(c).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}};function N(c,t){function e(n,s,r){if(!(typeof document>"u")){r=f({},t,r),typeof r.expires=="number"&&(r.expires=new Date(Date.now()+r.expires*864e5)),r.expires&&(r.expires=r.expires.toUTCString()),n=encodeURIComponent(n).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var o="";for(var d in r)r[d]&&(o+="; "+d,r[d]!==!0&&(o+="="+r[d].split(";")[0]));return document.cookie=n+"="+c.write(s,n)+o}}function i(n){if(!(typeof document>"u"||arguments.length&&!n)){for(var s=document.cookie?document.cookie.split("; "):[],r={},o=0;o<s.length;o++){var d=s[o].split("="),u=d.slice(1).join("=");try{var h=decodeURIComponent(d[0]);if(h in r||(r[h]=c.read(u,h)),n===h)break}catch{}}return n?r[n]:r}}return Object.create({set:e,get:i,remove:function(n,s){e(n,"",f({},s,{expires:-1}))},withAttributes:function(n){return N(this.converter,f({},this.attributes,n))},withConverter:function(n){return N(f({},this.converter,n),this.attributes)}},{attributes:{value:Object.freeze(t)},converter:{value:Object.freeze(c)}})}var C=N(w,{path:"/"});const p=class p{constructor(t){a(this,"customerId");a(this,"isB2B");a(this,"details",null);a(this,"sessionId",null);a(this,"id",null);this.context=t,this.sessionId=t.sessionId,this.customerId=t.customerId,this.isB2B=t.isB2B,this.loadCachedDetails(),this.loadAndStoreVisitorId(),this.loadAndStoreSessionId()}get bin(){return this.sessionId?this.hashWithDjb2(this.sessionId)%p.DEFAULT_NUMBER_OF_BINS:0}
101get firstVisitTimestamp(){var t;return((t=this.details)==null?void 0:t.first_visit_timestamp)??Date.now()}get isFirstVisit(){return this.firstVisitTimestamp>=Date.now()-p.NEW_VISITOR_THRESHOLD_MINUTES*60*1e3}get isLoggedIn(){return!!this.customerId}loadCachedDetails(){var t;try{const e=localStorage.getItem(p.DETAILS_KEY);e?(this.details=JSON.parse(e),typeof((t=this.details)==null?void 0:t.first_visit_timestamp)!="number"&&(console.warn("Invalid visitor details found in storage, resetting."),this.details=null)):(this.details={first_visit_timestamp:Date.now()},localStorage.setItem(p.DETAILS_KEY,JSON.stringify(this.details)))}catch(e){console.error("Error loading visitor details from storage:",e),this.details=null}finally{!this.details&&typeof localStorage<"u"&&(this.details={first_visit_timestamp:Date.now()},localStorage.setItem(p.DETAILS_KEY,JSON.stringify(this.details)))}}loadAndStoreSessionId(){const t=this.sessionId||C.get(p.SESSION_ID_KEY)||null;t?this.sessionId=t:this.sessionId=crypto.randomUUID(),C.set(p.SESSION_ID_KEY,this.sessionId,{expires:1/48,path:"/"})}loadAndStoreVisitorId(){const t=C.get(p.VISITOR_ID_KEY)||null;t?this.id=t:(this.id=crypto.randomUUID(),C.set(p.VISITOR_ID_KEY,this.id,{expires:365,path:"/"}))}hashWithDjb2(t){let e=5381;for(let i=0;i<t.length;i++)e=(e<<5)-e+t.charCodeAt(i),e|=0;return Math.abs(e)}};a(p,"DETAILS_KEY","_shg_ab_visitor_details"),a(p,"SESSION_ID_KEY","_shg_ab_session_id"),a(p,"VISITOR_ID_KEY","_shg_ab_visitor_id"),a(p,"DEFAULT_NUMBER_OF_BINS",1e4),a(p,"NEW_VISITOR_THRESHOLD_MINUTES",30);let x=p;const _=class _{constructor(t){a(this,"buyItNowHandlerAttached",!1);this.config=t}run(){typeof document<"u"&&document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{this.attachBuyItNowHandler()}):setTimeout(()=>{this.attachBuyItNowHandler()},100)}attachBuyItNowHandler(){var n;const t=(n=this.config)==null?void 0:n.currentCartVariantId;if(!t){console.debug("shogun: no current cart variant ID assigned, buy-it-now interception skipped");return}if(this.buyItNowHandlerAttached)return;this.buyItNowHandlerAttached=!0,console.debug("shogun: setting up buy-it-now interception with cart variant ID:",t);const e=async(s,r)=>{var h,l,V,O;const o=(r==null?void 0:r.formData)??new FormData(s);let d=(r==null?void 0:r.variantId)??this.extractVariantIdFromFormData(o);if(!d){console.debug("shogun: no product variant ID found for buy-it-now, interception skipped");return}const u=(r==null?void 0:r.quantity)??(parseInt(o.get("quantity")||"1",10)||1);if(console.debug("shogun: buy-it-now details:",{productVariantId:d,quantity:u,cartVariantId:t,storefrontAccessToken:(h=this.config)!=null&&h.storefrontAccessToken?"***":null,shopDomain:(l=this.config)==null?void 0:l.shopDomain}),(V=this.config)!=null&&V.storefrontAccessToken&&((O=this.config)!=null&&O.shopDomain)){console.debug("shogun: attempting cartCreate with merchandiseId:",`gid://shopify/ProductVariant/${d}`);const R=await this.createCartAndGetCheckoutUrl(d,u,t);if(R){console.debug("shogun: redirecting to cartCreate checkoutUrl (original cart preserved)"),window.location.href=R;return}}console.debug("shogun: falling back to cart add with cart variant"),await this.addToCartAndCheckout(d,u,t)};typeof document<"u"&&(()=>{document.addEventListener("click",s=>{const r=s.target;if(!r)return;const o=this.findPaymentElementFromClick(s,r);if(!o)return;const d=this.findFormForPaymentElement(o,r,s);if(!d)return;
101const u=this.getBuyItNowDetailsFromForm(d);u&&(s.preventDefault(),s.stopPropagation(),s.stopImmediatePropagation(),e(d,u))},{capture:!0})})()}async createCartAndGetCheckoutUrl(t,e,i){var d,u,h,l,V,O,R;if(!((d=this.config)!=null&&d.storefrontAccessToken)||!((u=this.config)!=null&&u.shopDomain))return null;const n=`
102      mutation cartCreate($input: CartInput!) {
103        cartCreate(input: $input) {
104          cart {
105            id
106            checkoutUrl
107          }
108          userErrors {
109            field
110            message
111          }
112        }
113      }
114    `,s=i?[{key:"shogun_variant_id",value:i}]:[];let r=[];i&&this.config.lineItemLevelVariant&&(r=[{key:"_shogun_variant_id",value:i}]);const o={input:{lines:[{merchandiseId:`gid://shopify/ProductVariant/${t}`,quantity:e,attributes:r}],attributes:s}};try{const F=JSON.stringify({query:n,variables:o}),W=`https://${this.config.shopDomain}/api/2025-10/graphql.json`;console.debug("shogun: cartCreate request URL:",W),console.debug("shogun: cartCreate request body:",F);const I=await(await fetch(W,{method:"POST",headers:{"Content-Type":"application/json","X-Shopify-Storefront-Access-Token":this.config.storefrontAccessToken},body:F})).json();return console.debug("shogun: cartCreate full response:",JSON.stringify(I,null,2)),(V=(l=(h=I.data)==null?void 0:h.cartCreate)==null?void 0:l.cart)!=null&&V.checkoutUrl?(console.debug("shogun: cartCreate successful, checkoutUrl:",I.data.cartCreate.cart.checkoutUrl),I.data.cartCreate.cart.checkoutUrl):(console.error("shogun: cartCreate failed:",((R=(O=I.data)==null?void 0:O.cartCreate)==null?void 0:R.userErrors)||I.errors),null)}catch(F){return console.error("shogun: cartCreate error:",F),null}}async addToCartAndCheckout(t,e,i){var s;const n={items:[{id:t,quantity:e,properties:{}}]};i&&(n.attributes={shogun_variant_id:i},(s=this.config)!=null&&s.lineItemLevelVariant&&(n.items[0].properties={_shogun_variant_id:i}));try{const r=await fetch("/cart/add.js",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});r.ok?(console.debug("shogun: added to cart, redirecting to checkout"),window.location.href="/checkout"):console.error("shogun: cart add failed:",await r.text())}catch(r){console.error("shogun: cart add error:",r)}}findPaymentElementFromClick(t,e){const i=e.closest(_.SHOPIFY_PAYMENT_BUTTON_SELECTOR);if(i)return i;const n=typeof t.composedPath=="function"?t.composedPath():[];for(const s of n)if(s instanceof HTMLElement&&s.matches(_.SHOPIFY_PAYMENT_BUTTON_SELECTOR))return s;return null}findFormForPaymentElement(t,e,i){const n=t.closest("form");if(n)return n;const s=e==null?void 0:e.closest("form");if(s)return s;const r=(e==null?void 0:e.closest("[form]"))||t.closest("[form]")||t.querySelector("[form]"),o=r==null?void 0:r.getAttribute("form");if(o){const l=document.getElementById(o);if(l instanceof HTMLFormElement)return l}const d=typeof(i==null?void 0:i.composedPath)=="function"?i.composedPath():[];for(const l of d)if(l instanceof HTMLFormElement)return l;const u=document.querySelectorAll("form");let h=null;for(const l of u)if(l.querySelector(_.SHOPIFY_PAYMENT_BUTTON_SELECTOR)){if(h)return console.debug("shogun: multiple payment-button forms found; skipping ambiguous buy-it-now form mapping"),null;h=l}return h}normalizeProductVariantId(t){if(!t)return null;const e=String(t);if(!e.includes("gid://"))return e;const i=e.match(/\/(\d+)$/);return i?i[1]:e}extractVariantIdFromFormData(t){const e=t.get("id")||t.get("variant_id");if(!e)return null;const i=this.normalizeProductVariantId(e);return i&&i!==e&&console.debug("shogun: extracted numeric ID from GID:",i),i}
114getBuyItNowDetailsFromForm(t){const e=new FormData(t),i=this.extractVariantIdFromFormData(e);if(!i)return null;const n=parseInt(e.get("quantity")||"1",10)||1;return{formData:e,variantId:i,quantity:n}}};a(_,"SHOPIFY_PAYMENT_BUTTON_SELECTOR",'shopify-buy-it-now-button, shopify-accelerated-checkout, [data-shopify="payment-button"], .shopify-payment-button');let k=_;class b{constructor(t,e,i){a(this,"id");a(this,"name");a(this,"type");a(this,"scope");a(this,"config");a(this,"variants");a(this,"assignedVariantId");a(this,"state");a(this,"eligibility");a(this,"context");a(this,"audienceEvaluator");this.id=t.id,this.name=t.name,this.type=t.type,this.scope=t.scope,this.config=t.config||{},this.variants=t.variants||[],this.assignedVariantId=t.assignedVariantId,this.state=t.assignedVariantId?t.state:void 0,this.context=e,this.audienceEvaluator=i}get isFirstAssignment(){return!!this.assignedVariantId&&this.state===void 0}get isFirstView(){return!!this.assignedVariantId&&(this.isEligible||this.isOnAssignedVariant)&&this.state!=="started"}get assignedVariant(){return this.assignedVariantId&&this.variants.find(t=>t.id===this.assignedVariantId)||null}get originalVariant(){return this.variants.find(t=>t.config.original)||null}get isOnAssignedVariant(){var t;return this.assignedVariantId?this.assignedVariantId===((t=this.currentVariant)==null?void 0:t.id):!1}get isEligible(){var t;return((t=this.eligibility)==null?void 0:t.status)==="eligible"}get firstNonDefaultEligibleVariant(){if(!this.eligibility||!this.eligibility.variants)return null;const t=Object.entries(this.eligibility.variants).filter(([i,n])=>n.status==="eligible").map(([i,n])=>i);return this.variantsByPosition().find(i=>t.includes(i.id)&&!i.config.original)||null}get inReview(){return this.type==="review"}get needsDispatch(){return this.assignedVariantId?!this.isOnAssignedVariant&&(this.inReview||this.isEligible):!1}evaluateEligibility(){const t=this.type=="ab_test"?this.evaluateAudienceEligibility():{status:"eligible",condition:void 0,expected:{},actual:{}},e=this.evaluateScopeEligibility(),i=this.evaluateVariantAudienceEligibility(),n=[t,e].every(r=>r.status==="eligible"||r.status==="match")&&(Object.keys(i).length===0||Object.values(i).some(r=>r.status==="eligible")),s=[t,e,...Object.values(i)].some(r=>r.status==="error");this.eligibility={status:n?"eligible":s?"error":"not_eligible",audience:t,scope:e,variants:i}}evaluateAudienceEligibility(){return this.audienceEvaluator.evaluateAll(this.config.audiences||[],this.config.audiences_condition||"every")}evaluateVariantAudienceEligibility(){const t={};for(const e of this.variants)e.config.audiences&&e.config.audiences.length>0?t[e.id]=this.audienceEvaluator.evaluateAll(e.config.audiences,e.config.audiences_condition||"every"):e.config.original||(t[e.id]={status:"eligible",condition:void 0,expected:{},actual:{}});return t}finalize(){this.isEligible&&this.removeViewParam()}extractPartialTemplateKey(t){if(!t)return;const e=t.split(".");return e.length<2?t:e.slice(0,-1).join(".")}variantForCurrentTemplate(){const t=this.pagePartialTemplateKey();return this.variants.find(e=>this.extractPartialTemplateKey(e.config.full_template_key)===t)||null}matchesCurrentTemplate(){return this.variantForCurrentTemplate()!==null}pagePartialTemplateKey(){const t=this.context.page.templateDirectory||(this.context.page.pageType==="metaobject"?"metaobject":null),e=t?`templates/${t}/`:"templates/",i=[this.context.page.templateName,this.context.page.templateSuffix].filter(Boolean).join(".");return e+i}extractViewParamFromFullTemplateKey(t){if(!t)return;const e=t.split("/").pop().split(".")||[];return e.slice(1,e.length-1).join(".")}variantsByPosition(){return this.variants.slice().sort((t,e)=>{const i=t.position||0,n=e.position||0;return i-n})}removeViewParam(){const t=new URL(window.location.href);t.searchParams.delete("view"),window.history.replaceState({},"",t.toString())}redirect(t){t.searchParams.delete("cache"),window.location.replace(t.toString())}}class z extends b{constructor(e,i,n){super(e,i,n);a(this,"buyItNowFinalizer",null);this.buyItNowFinalizer=new k({currentCartVariantId:this.context.page.currentCartVariantId,shopDomain:this.context.shop.shopDomain,storefrontAccessToken:this.context.shop.storefrontAccessToken})}get currentVariant(){return this.variants.find(e=>e.id===this.context.page.currentCartVariantId)||null}evaluateScopeEligibility(){return{status:"match",expected:this.scope,actual:this.scope}}
114dispatch(){this.dispatchCartAssignment(new URL(window.location.href))}dispatchCartAssignment(e){var s;const i=this.assignedVariant;if(!i){console.error(`shogun: Cannot dispatch ${this.scope} optimization because assigned variant is not set`,this.assignedVariant);return}const n=new XMLHttpRequest;if(n.open("POST","/cart/update.js",!1),n.setRequestHeader("Content-Type","application/json"),n.send(JSON.stringify({attributes:{shogun_variant_id:i==null?void 0:i.id}})),n.status===200){const r=(s=i==null?void 0:i.config)==null?void 0:s.theme_id;console.debug(`shogun: dispatching ${this.scope} optimization by setting cart attribute and reloading the page to reflect cart changes`+(r?` with theme_id '${r}'`:"")),this.redirect(e)}else console.error(`shogun: failed to update cart for ${this.scope} optimization dispatch`,{status:n.status,response:n.responseText})}finalize(){var e;(this.isEligible||this.inReview)&&((e=this.buyItNowFinalizer)==null||e.run())}}class G extends z{}class X extends b{get currentVariant(){return this.variantForCurrentTemplate()}evaluateScopeEligibility(){const{page_type:t,page_id:e}=this.config,i=!t||t===this.context.page.pageType,n=!e||e===this.context.page.pageId,s=new URLSearchParams(window.location.search).get("view");return s&&!this.variants.some(r=>this.extractViewParamFromFullTemplateKey(r.config.full_template_key)===s)?{status:"skipped",expected:void 0,actual:void 0,reason:"Visitor has view param that does not match any variant template keys, likely previewing a template change from theme editor"}:{status:this.scope==="page"&&this.matchesCurrentTemplate()&&i&&n?"match":"no_match",expected:{page_type:t,page_id:e},actual:{page_type:this.context.page.pageType,page_id:this.context.page.pageId}}}dispatch(){var i,n,s;const t=new URL(window.location.href),e=this.extractViewParamFromFullTemplateKey((i=this.assignedVariant)==null?void 0:i.config.full_template_key);if(!e)throw new Error(`Assigned variant does not have a valid viewParam for dispatching full_template_key: ${(n=this.assignedVariant)==null?void 0:n.config.full_template_key}, variant: ${(s=this.assignedVariant)==null?void 0:s.id}`);t.searchParams.set("view",e),console.debug("shogun: Dispatching page optimization by redirecting to ",t.toString()),this.redirect(t)}}class J extends z{}class Z extends z{}const L="_shogun_variant_id",E=`properties[${L}]`,Q=/\/cart\/add(\.js)?$/;class tt{constructor(t){a(this,"addToCartHandlerAttached",!1);a(this,"cartAddRequestInterceptionAttached",!1);this.config=t}run(){var e;const t=(e=this.config)==null?void 0:e.currentCartVariantId;if(!t){console.debug("shogun: no current cart variant ID assigned, add-to-cart interception skipped");return}this.interceptCartAddRequests(t),typeof document<"u"&&document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{this.attachAddToCartHandler(t)}):setTimeout(()=>{this.attachAddToCartHandler(t)},100)}attachAddToCartHandler(t){this.addToCartHandlerAttached||(this.addToCartHandlerAttached=!0,console.debug("shogun: setting up add-to-cart interception with cart variant ID:",t),document.querySelectorAll('form[action="/cart/add"]').forEach(e=>{const i=document.createElement("input");i.name=E,i.value=t,i.type="hidden",e.appendChild(i)}))}interceptCartAddRequests(t){this.cartAddRequestInterceptionAttached||(this.cartAddRequestInterceptionAttached=!0,this.interceptFetchCartAdd(t),this.interceptXhrCartAdd(t))}interceptFetchCartAdd(t){if(typeof window>"u"||typeof window.fetch!="function")return;const e=window.fetch,i=this;window.fetch=function(n,s){try{const r=((s==null?void 0:s.method)??(n instanceof Request?n.method:"GET")).toUpperCase(),o=n instanceof Request?n.url:String(n);if(r==="POST"&&i.isCartAddUrl(o)&&(s==null?void 0:s.body)!=null){const d=i.withShogunVariantProperty(s.body,t);if(d!==null)return e.call(this,n,{...s,body:d})}}catch(r){console.debug("shogun: failed to inject cart variant into fetch cart add request:",r)}return e.call(this,n,s)}}interceptXhrCartAdd(t){if(typeof XMLHttpRequest>"u")return;const e=XMLHttpRequest.prototype.open,i=XMLHttpRequest.prototype.send,n=this;XMLHttpRequest.prototype.open=function(s,r,o=!0,d,u){return this.__shogunIsCartAdd=(s==null?void 0:s.toUpperCase())==="POST"&&n.isCartAddUrl(String(r)),e.call(this,s,r,o,d,u)},XMLHttpRequest.prototype.send=function(s){if(this.__shogunIsCartAdd&&s!=null&&!(s instanceof Document))try{const r=n.withShogunVariantProperty(s,t);if(r!==null)return i.call(this,r)}catch(r){console.debug("shogun: failed to inject cart variant into XHR cart add request:",r)}return i.call(this,s)}}isCartAddUrl(t){try{const e=new URL(t,window.location.origin);return e.origin===window.location.origin&&Q.test(e.pathname)}catch{return!1}}withShogunVariantProperty(t,e){return t instanceof FormData||t instanceof URLSearchParams?(t.has(E)||t.append(E,e),t):typeof t=="string"?this.withShogunVariantPropertyInString(t,e):null}withShogunVariantPropertyInString(t,e){try{const n=JSON.parse(t);return n&&typeof n=="object"&&!Array.isArray(n)?JSON.stringify(this.withShogunVariantPropertyInPayload(n,e)):null}catch{}if(!t.includes("="))return null;const i=new URLSearchParams(t);return i.has(E)||i.append(E,e),i.toString()}withShogunVariantPropertyInPayload(t,e){return Array.isArray(t.items)?{...t,items:t.items.map(i=>i&&typeof i=="object"?{...i,properties:this.withVariantProperty(i.properties,e)}:i)}:"id"in t?{...t,properties:this.withVariantProperty(t.properties,e)}:t}withVariantProperty(t,e){const i=t&&typeof t=="object"?t:{};return i[L]!=null?i:{...i,[L]:e}}}const S=class S{constructor(){a(this,"observer",null)}removePreviewBar(t){t instanceof Element&&t.matches(S.PREVIEW_BAR_IFRAME_SELECTOR)&&(console.debug(`shogun: Removing preview bar iframe with id: ${t.id}`),t.remove(),this.stop()),t.querySelectorAll(S.PREVIEW_BAR_IFRAME_SELECTOR).forEac
114h(e=>{console.debug(`shogun: Removing preview bar iframe with id: ${e.id}`),e.remove(),this.stop()})}run(){if(this.observer)return;const t=document.documentElement;t&&(this.observer=new MutationObserver(e=>{for(const i of e)for(const n of i.addedNodes)n instanceof Element&&this.removePreviewBar(n)}),this.observer.observe(t,{childList:!0,subtree:!0}),this.removePreviewBar(document))}stop(){var t;(t=this.observer)==null||t.disconnect(),this.observer=null}};a(S,"PREVIEW_BAR_IFRAME_SELECTOR","#preview-bar-iframe, #PBarNextFrameWrapper");let D=S;class et extends z{constructor(e,i,n){super(e,i,n);a(this,"addToCartFinalizer",null);a(this,"themePreviewFinalizer",null);this.buyItNowFinalizer=new k({currentCartVariantId:this.context.page.currentCartVariantId,shopDomain:this.context.shop.shopDomain,storefrontAccessToken:this.context.shop.storefrontAccessToken,lineItemLevelVariant:!0}),this.addToCartFinalizer=new tt({currentCartVariantId:this.context.page.currentCartVariantId})}get currentVariant(){const e=super.currentVariant;if(!e)return null;const i=e.config.theme_id;return i?i===this.context.page.themeId?e:null:e}dispatch(){var n;const e=new URL(window.location.href),i=(n=this.assignedVariant)==null?void 0:n.config.theme_id;i&&i!==this.context.page.themeId&&e.searchParams.set("preview_theme_id",i),this.dispatchCartAssignment(e)}finalize(){var e,i,n,s;(this.isEligible||this.inReview)&&((e=this.addToCartFinalizer)==null||e.run(),(i=this.buyItNowFinalizer)==null||i.run()),this.isOnAssignedVariant&&((n=this.assignedVariant)!=null&&n.config.theme_id)&&(this.themePreviewFinalizer||(this.themePreviewFinalizer=new D),(s=this.themePreviewFinalizer)==null||s.run())}}class it extends b{get currentVariant(){return this.variantForCurrentTemplate()}evaluateScopeEligibility(){const t=this.pagePartialTemplateKey();return{status:this.matchesCurrentTemplate()?"match":"no_match",expected:t,actual:t}}dispatch(){var i,n,s;const t=new URL(window.location.href),e=this.extractViewParamFromFullTemplateKey((i=this.assignedVariant)==null?void 0:i.config.full_template_key);if(!e)throw new Error(`Assigned variant does not have a valid viewParam for dispatching full_template_key: ${(n=this.assignedVariant)==null?void 0:n.config.full_template_key}, variant: ${(s=this.assignedVariant)==null?void 0:s.id}`);t.searchParams.set("view",e),console.debug("shogun: Dispatching template optimization by redirecting to ",t.toString()),this.redirect(t)}}class Y extends b{constructor(e,i,n){super(e,i,n);a(this,"themePreviewFinalizer",null);this.themePreviewFinalizer=new D}get currentVariant(){return this.variants.find(e=>e.config.theme_id===this.context.page.themeId)||null}evaluateScopeEligibility(){if(!this.originalVariant)return{status:"error",expected:void 0,actual:void 0,reason:"Original variant is missing"};const e=this.originalVariant.config.theme_id;return e?{status:e===this.context.page.themeId?"match":"no_match",expected:e,actual:this.context.page.themeId}:{status:"error",expected:void 0,actual:void 0,reason:"Original variant is missing theme_id in config"}}
114get needsDispatch(){return this.isEligible&&!this.isOnAssignedVariant&&this.isFirstView}async dispatch(){var i,n,s;const e=new URL(window.location.href);if((i=this.assignedVariant)!=null&&i.config.theme_id)e.searchParams.set("preview_theme_id",this.assignedVariant.config.theme_id),console.debug("shogun: Dispatching theme optimization by redirecting to ",e.toString()),this.redirect(e);else throw new Error(`Assigned variant does not have a valid theme_id for dispatching theme: ${(n=this.assignedVariant)==null?void 0:n.config.theme_id}, variant: ${(s=this.assignedVariant)==null?void 0:s.id}`)}finalize(){var e;this.isOnAssignedVariant&&((e=this.themePreviewFinalizer)==null||e.run())}}a(Y,"PREVIEW_BAR_IFRAME_IDS",["preview-bar-iframe","PBarNextFrameWrapper"]);class st extends b{get currentVariant(){const t=decodeURIComponent(this.getCurrentPathWithoutLanguagePrefix());return this.variants.find(e=>e.config.path===t)||null}evaluateScopeEligibility(){const t=this.variants.find(r=>r.config.original);if(!t)return{status:"error",expected:void 0,actual:void 0,reason:"Original variant is missing"};const e=t.config.path;if(!e)return{status:"error",expected:void 0,actual:void 0,reason:"Original variant is missing path in config"};if(new URL(window.location.href).searchParams.get("view"))return{status:"skipped",expected:void 0,actual:void 0,reason:"Visitor is likely previewing a template change from theme editor"};const n=this.getCurrentPathWithoutLanguagePrefix(),s=decodeURIComponent(n);return{status:decodeURIComponent(e)===s?"match":"no_match",expected:e,actual:s}}get needsDispatch(){return!this.assignedVariantId||!this.isEligible?!1:(console.debug("shogun: Checking if URL redirect optimization needs dispatch. isOnAssignedVariant:",this.isOnAssignedVariant,"isFirstView:",this.isFirstView,"permanentRedirect:",this.config.permanent_redirect),this.config.permanent_redirect===!0&&!this.isOnAssignedVariant||!this.isOnAssignedVariant&&this.isFirstView===!0)}dispatch(){var e,i,n,s,r;const t=new URL(window.location.href);if(!((e=this.assignedVariant)!=null&&e.config.path))throw new Error(`Assigned variant does not have a valid path for dispatching path: ${(i=this.assignedVariant)==null?void 0:i.config.path}, variant: ${(n=this.assignedVariant)==null?void 0:n.id}`);t.pathname=this.context.page.languageRootUrl!=="/"?this.context.page.languageRootUrl+((s=this.assignedVariant)==null?void 0:s.config.path):(r=this.assignedVariant)==null?void 0:r.config.path,console.debug("shogun: Dispatching url optimization by redirecting to ",t.toString()),this.redirect(t)}getCurrentPathWithoutLanguagePrefix(){return this.context.page.languageRootUrl==="/"||!this.context.page.path.startsWith(this.context.page.languageRootUrl)?this.context.page.path:this.context.page.path.replace(this.context.page.languageRootUrl,"")}}function j(c,t,e){switch(c.scope){case"page":return new X(c,t,e);case"template":return new it(c,t,e);case"theme":return new Y(c,t,e);case"url_redirect":return new st(c,t,e);case"price":return new J(c,t,e);case"product_details":return new Z(c,t,e);case"checkout":return new G(c,t,e);case"shipping":return new et(c,t,e);default:throw new Error(`Unsupported optimization scope: ${c.scope}`)}}class U{constructor(t){a(this,"visitorBin");this.visitorBin=t}getRandomVariantForVisitorBin(t){let e=null,i=0;for(const n of t)if(i+=x.DEFAULT_NUMBER_OF_BINS*this.trafficForVariant(n)/100,this.visitorBin<i){e=n;break}return e||null}trafficForVariant(t){return t.config.percentage||0}}const P=class P extends U{assign(t){var n,s;if(t.length===0)return null;const e=this.sortOptimizationsByPriority(t),i=e.find(r=>r.firstNonDefaultEligibleVariant!==null);return i?(i.assignedVariantId=(n=i.firstNonDefaultEligibleVariant)==null?void 0:n.id,i):(e[0].assignedVariantId=(s=e[0].originalVariant)==null?void 0:s.id,e[0])}sortOptimizationsByPriority(t){return t.sort((e,i)=>{const n=this.scopePriority(e.scope),s=this.scopePriority(i.scope);return n-s})}scopePriority(t){return P.SCOPE_PRIORITIES[t||"page"]??P.SCOPE_PRIORITIES.page}};a(P,"SCOPE_PRIORITIES",{theme:1,template:2,page:3,url_redirect:4,price:5,product_details:6,checkout:7,shipping:8});let M=P;class q extends U{assign(t){const e=t.filter(s=>s.isEligible);if(e.length===0)return null;const i=e[Math.floor(Math.random()*e.length)],n=this.getRandomVariantForVisitorBin(i.variants);return n?(i.assignedVariantId=n.id,i):null}}class nt extends U{assign(t){const e=t.flatMap(s=>s.variants),i=this.getRandomVariantForVisitorBin(e),n=t.find(s=>
114s.variants.some(r=>r.id===(i==null?void 0:i.id)))||null;return n&&i?(n.assignedVariantId=i.id,n):null}trafficForVariant(t){return t.traffic_percentage||0}}const y=class y{save(){if(!(typeof document>"u"||typeof sessionStorage>"u"))try{sessionStorage.setItem(y.STORAGE_KEY,document.referrer)}catch(t){console.debug("shogun: failed to persist retained referrer to sessionStorage"),console.error(t)}}restore(){if(typeof sessionStorage>"u")return typeof document<"u"&&document.referrer||null;const t=sessionStorage.getItem(y.STORAGE_KEY);return t===null?typeof document<"u"&&document.referrer||null:(this.overrideDocumentReferrer(t),t||null)}clear(){typeof sessionStorage>"u"||sessionStorage.removeItem(y.STORAGE_KEY)}overrideDocumentReferrer(t){if(!(typeof document>"u"))try{Object.defineProperty(document,"referrer",{configurable:!0,get:()=>t})}catch(e){console.debug("shogun: failed to set original referrer via `Object.defineProperty`"),console.error(e);try{window.document.__defineGetter__("referrer",()=>t)}catch(i){console.debug("shogun: failed to set original referrer via `__defineGetter__`"),console.error(i)}}}};a(y,"STORAGE_KEY","_shg_referrer");let $=y;const g=class g{constructor(t,e){a(this,"previewLinkHandlerAttached",!1);a(this,"_optimizationInReview");a(this,"optimizationResolved",!1);this.context=t,this.audienceEvaluator=e}get inReview(){return!!this.optimizationInReview}get optimizationInReview(){if(!this.optimizationResolved){const t=this.previewVariantId;this._optimizationInReview=t?j({id:"review-optimization",name:"Review Optimization",type:"review",scope:this.previewScope,state:"started",variants:[{id:t,name:"Preview Variant",optimization_id:"review-optimization",traffic_percentage:100,config:{original:!1,percentage:100}}],assignedVariantId:t},{page:this.context.page,shop:this.context.shop},this.audienceEvaluator):null,this.optimizationResolved=!0}return this._optimizationInReview||null}run(){const t=document.getElementById(g.PANEL_TEMPLATE_ID);if(!t){console.debug("shogun: sidebar not found!!!");return}const e=t.content.cloneNode(!0);this.attachPreviewLinkClickHandler();const i=()=>{document.body.style.paddingLeft="360px",document.body.style.paddingTop="50px",document.body.prepend(e),typeof window.restoreCollapsedState=="function"&&window.restoreCollapsedState(),typeof window.restoreDescriptionHeightState=="function"&&window.restoreDescriptionHeightState()};if(document.readyState==="loading"){document.addEventListener("DOMContentLoaded",i);return}i()}get previewVariantId(){const e=new URLSearchParams(window.location.search).get(g.REVIEW_OPTIMIZATION_VARIANT_ID_PARAM),i=window.sessionStorage.getItem(g.PREVIEW_VARIANT_ID_STORAGE_KEY);return e&&e!==i?(console.debug(`shogun: theme review in progress, setting variant: ${e}`),window.sessionStorage.setItem(g.PREVIEW_VARIANT_ID_STORAGE_KEY,e),e):(i&&console.debug(`shogun: theme review in progress, viewing variant: ${i}`),i)}get previewScope(){const e=new URLSearchParams(window.location.search).get(g.REVIEW_OPTIMIZATION_SCOPE_PARAM),i=window.sessionStorage.getItem(g.PREVIEW_OPTIMIZATION_SCOPE_STORAGE_KEY);return e&&e!==i?(console.debug(`shogun: theme review in progress, setting scope: ${e}`),window.sessionStorage.setItem(g.PREVIEW_OPTIMIZATION_SCOPE_STORAGE_KEY,e),e):i?(console.debug(`shogun: theme review in progress, using scope: ${i}`),i):g.DEFAULT_REVIEW_SCOPE}attachPreviewLinkClickHandler(){this.previewLinkHandlerAttached||(this.previewLinkHandlerAttached=!0,document.addEventListener("click",t=>{var s,r;const e=(r=(s=t.target).closest)==null?void 0:r.call(s,'a[id^="shg-preview-btn-"]'),i=e==null?void 0:e.dataset.variantId;if(!i)return;t.preventDefault();const n=new URLSearchParams(window.location.search);n.set(g.REVIEW_OPTIMIZATION_VARIANT_ID_PARAM,i),window.location.href=`${window.location.pathname}?${n.toString()}`}))}};a(g,"PANEL_TEMPLATE_ID","shogun-price-test-preview"),a(g,"PREVIEW_VARIANT_ID_STORAGE_KEY","_shg_preview_variant_id"),a(g,"PREVIEW_OPTIMIZATION_SCOPE_STORAGE_KEY","_shg_preview_optimization_scope"),a(g,"REVIEW_OPTIMIZATION_VARIANT_ID_PARAM","shgpvid"),a(g,"REVIEW_OPTIMIZATION_SCOPE_PARAM","shgsc"),a(g,"DEFAULT_REVIEW_SCOPE","product_details");let B=g;var rt=" daum[ /]| deusu/|(?:^|[^g])news(?!sapphire)|(?<! (?:channel/|google/))google(?!(app|/google| pixel))|(?<! cu)bots?(?:\\b|_)|(?<!(?:lib))http|(?<!cam)scan|24x7|@[a-z][\\w-]+\\.|\\(\\)|\\.com\\b|\\b\\w+\\.ai|\\bcursor/|\\bmanus-user/|\\bort/|\\bperl\\b|\\bplaywright\\b|\\bsecurityheaders\\b|\\bselenium\\b|\\btime/|\\||^[\\w \\.\\-\\(?:\\):%]+(?:/v?\\d+(?:\\.\\d+)?(?:\\.\\d{1,10})*?)?(?:,|$)|^[\\w\\-]+/[\\w]+$|^[^ ]{50,}$|^\\d+\\b|^\\W|^\\w*search\\b|^\\w+/[\\w\\(\\)]*$|^\\w+/\\d\\.\\d\\s\\([\\w@]+\\)$|^active|^ad muncher|^amaya|^apache/|^avsdevicesdk/|^azure|^biglotron|^bot|^bw/|^clamav[ /]|^claude-code/|^client/|^cobweb/|^custom|^ddg[_-]android|^discourse|^dispatch/\\d|^downcast/|^duckduckgo|^email|^facebook|^getright/|^gozilla/|^hobbit|^hotzonu|^hwcdn/|^igetter/|^jeode/|^jetty/|^jigsaw|^microsoft bits|^movabletype|^mozilla/\\d\\.\\d\\s[\\w\\.-]+$|^mozilla/\\d\\.\\d\\s\\((?:compatible;)?(?:\\s?[\\w\\d-.]+\\/\\d+\\.\\d+)?\\)$|^navermailapp|^netsurf|^offline|^openai/|^owler|^php|^postman|^python|^rank|^read|^reed|^rest|^rss|^snapchat|^space bison|^svn|^swcd |^taringa|^thumbor/|^track|^w3c|^webbandit/|^webcopier|^wget|^whatsapp|^wordpress|^xenu link sleuth|^yahoo|^yandex|^zdm/\\d|^zoom marketplace/|advisor|agent\\b|analyzer|archive|ask jeeves/teoma|audit|bit\\.ly/|bluecoat drtr|browsex|burpcollaborator|capture|catch|check\\b|checker|chrome-lighthouse|chromeframe|classifier|cloudflare|convertify|crawl|cypress/|dareboost|datanyze|dejaclick|detect|dmbrowser|download|exaleadcloudview|feed|fetcher|firephp|functionize|grab|headless|httrack|hubspot marketing grader|ibisbrowser|infrawatch|insight|inspect|iplabel|java(?!;)|library|linkcheck|mail\\.ru/|manager|measure|monitor\\b|neustar wpm|node\\b|nutch|offbyone|onetrust|optimize|pageburst|pagespeed|parser|phantomjs|pingdom|powermarks|preview|proxy|ptst[ /]\\d|retriever|rexx;|rigor|rss\\b|scrape|server|sogou|sparkler/|speedcurve|spider|splash|statuscake|supercleaner|synapse|synthetic|tools|torrent|transcoder|url|validator|virtuoso|wappalyzer|webglance|webkit2png|whatcms/|xtate/",at=/bot|crawl|http|lighthouse|scan|search|spider/i,A;function ot(){if(A instanceof RegExp)return A;try{A=new RegExp(rt,"i")}catch{A=at}return A}var ct=c=>typeof c=="string"&&c!=="";function dt(c){return ct(c)&&ot().test(c)}const m=class m{constructor(t){this.publishedOptimizationIds=t}get(t){const e=this.getState()[t];return!e||typeof e=="string"?void 0:{...e,state:e.state??"started"}}update(t){var n,s,r,o;
114if(t.type!=="ab_test"||t.inReview)return;console.debug(`shogun: Caching assignment for optimization: '${t.name}' (${t.id}) to variant: '${(n=t.assignedVariant)==null?void 0:n.name}' (${(s=t.assignedVariant)==null?void 0:s.id})'`);const e=this.getState(),i=t.state??"assigned";window.localStorage.setItem(m.STORAGE_KEY,JSON.stringify({...e,[t.id]:{variantId:t.assignedVariantId,themeId:(o=(r=t.assignedVariant)==null?void 0:r.config)==null?void 0:o.theme_id,state:i}}))}clearExpired(){if(!this.hasExpiredEntries())return!1;console.debug("shogun: clearing expired optimization state, redirecting to default theme");const t=new URL(window.location.href);return t.searchParams.set(m.PREVIEW_THEME_PARAM,""),window.localStorage.removeItem(m.STORAGE_KEY),window.location.replace(t.toString()),!0}hasExpiredEntries(){const t=Object.entries(this.getState()).filter(([e,i])=>typeof i=="string"?!0:!!i.themeId).map(([e])=>e);return t.length>0&&t.some(e=>!this.publishedOptimizationIds.includes(e))}getState(){try{const t=JSON.parse(window.localStorage.getItem(m.STORAGE_KEY)||"{}");return!t||typeof t!="object"||Array.isArray(t)?{}:t}catch{return{}}}};a(m,"STORAGE_KEY","_shg_ab_optimizations_cache"),a(m,"PREVIEW_THEME_PARAM","preview_theme_id");let H=m;class lt{constructor(t){a(this,"pixelTrackingStarted",!1);a(this,"assignedOptimization",null);a(this,"pageViewId",crypto.randomUUID());this.context=t}get storewideCollectionAllowed(){return this.assignedOptimization||this.context.publishedOptimizations.some(t=>t.type==="ab_test")?!0:!!this.context.shop.storewideEventCollection}async track(t,e,i){var s,r;if(e!=null&&e.inReview)return;console.debug(`shogun: tracking event '${t}' for optimization '${(e==null?void 0:e.name)||"none"}' (${(e==null?void 0:e.id)||"none"}) ${i!=null&&i.reason?`with reason '${i.reason}'`:""}`),this.assignedOptimization=e??this.assignedOptimization,(t=="started"||t=="viewed"||t=="skipped")&&this.startPixelTracking();const n=(s=window.Shopify)==null?void 0:s.customerPrivacy;try{await fetch(`${this.context.shop.analyticsUrl}/dispatcher/${t}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:t,shop_id:this.context.shop.shopId,pageview_id:this.pageViewId,session_id:this.context.visitor.sessionId,visitor_id:this.context.visitor.id,optimization_id:e==null?void 0:e.id,variant_id:(r=e==null?void 0:e.assignedVariant)==null?void 0:r.id,details:{optimization_ids:this.context.publishedOptimizations.map(o=>o.id),distribution_method:this.context.assignmentStrategy,context:this.context.page,optimizations:this.context.publishedOptimizations.map(o=>({id:o.id,assigned_variant_id:o.assignedVariantId,first_assignment:o.isFirstAssignment,eligibility:o.eligibility})),consented:(n==null?void 0:n.analyticsProcessingAllowed())??!1,consent_api:n?"available":"unavailable",...i}}),keepalive:!0})}catch(o){console.error("shogun: failed to send tracking event",o)}}async startPixelTracking(){var i,n,s,r,o;
114if(console.debug("shogun: attempting to start pixel tracking for optimizations"),this.pixelTrackingStarted)return;if(!this.storewideCollectionAllowed){console.debug("shogun: no optimization assigned and store-wide event collection is disabled, skipping pixel tracking");return}const t=await this.getCustomerPrivacy(),e=await this.getAnalytics();if(t.analyticsProcessingAllowed()||(console.debug("shogun: Visitor has not consented to tracking, unable to start pixel tracking for optimizations, waiting for consent..."),await this.waitForConsent(t),this.track("consented")),!(e!=null&&e.publish)){console.debug("shogun: Shopify analytics object is not available, unable to start pixel tracking for optimizations");return}this.pixelTrackingStarted=!0,console.debug("shogun: Visitor has consented to tracking, starting pixel tracking for optimizations"),e.publish("shogun:load",{app_type:((i=this.assignedOptimization)==null?void 0:i.type)=="personalization"?"personalization":"ab_testing",page_type:this.context.page.pageType,page_id:this.context.page.pageId,optimization_id:((n=this.assignedOptimization)==null?void 0:n.id)??null,variant_id:((r=(s=this.assignedOptimization)==null?void 0:s.assignedVariant)==null?void 0:r.id)??null,on_assigned_variant:((o=this.assignedOptimization)==null?void 0:o.isOnAssignedVariant)??!1,session_id:this.context.visitor.sessionId,visitor_id:this.context.visitor.id,pageview_id:this.pageViewId,original_referrer:this.context.originalReferrer})}async getShopify(){return this.until(()=>window.Shopify,"Timed out waiting for Shopify API")}
114async getAnalytics(){const t=await this.getShopify();return this.until(()=>{const e=t.analytics;return e!=null&&e.publish?e:void 0},"Timed out waiting for Shopify analytics API")}async getCustomerPrivacy(){const t=await this.getShopify();return t!=null&&t.customerPrivacy?t.customerPrivacy:(await this.loadConsentTrackingApi(),this.until(()=>{var e;return(e=window.Shopify)==null?void 0:e.customerPrivacy},"Timed out waiting for Shopify customerPrivacy API"))}loadConsentTrackingApi(){return new Promise((t,e)=>{const i=window.Shopify;if(!(i!=null&&i.loadFeatures)){e(new Error("Shopify.loadFeatures is not available"));return}i.loadFeatures([{name:"consent-tracking-api",version:"0.1"}],n=>{n&&n.length>0?e(n[0]):t()})})}waitForConsent(t){return t.analyticsProcessingAllowed()?Promise.resolve():new Promise((e,i)=>{let n=!1;const s=()=>{document.removeEventListener("visitorConsentCollected",r)},r=()=>{n=t.analyticsProcessingAllowed()};document.addEventListener("visitorConsentCollected",r),this.until(()=>n?!0:void 0,"Timed out waiting for user consent").then(()=>{s(),e()}).catch(o=>{s(),i(o)})})}until(t,e,{intervalMs:i=250,timeoutMs:n=15e3}={}){return new Promise((s,r)=>{const o=t();if(o){s(o);return}const d=Date.now(),u=window.setInterval(()=>{const h=t();if(h){window.clearInterval(u),s(h);return}Date.now()-d>n&&(window.clearInterval(u),r(new Error(e)))},i)})}}const T=class T{constructor(t){a(this,"visitor");a(this,"audienceEvaluator");a(this,"retainedReferrer");a(this,"originalReferrer");a(this,"optimizationReview");a(this,"optimizationCache");a(this,"tracker");a(this,"_publishedOptimizations");a(this,"_assignedOptimization");this.context=t,this.retainedReferrer=new $,this.originalReferrer=this.retainedReferrer.restore(),this.visitor=new x(t.session),this.optimizationCache=new H(t.publishedOptimizations.map(e=>e.id)),this.audienceEvaluator=new v(this.visitor,t.shop.geoLocationApi),this.optimizationReview=new B(t,this.audienceEvaluator)}get publishedOptimizations(){return this._publishedOptimizations||(this._publishedOptimizations=this.context.publishedOptimizations.map(t=>{var s,r;const e=this.optimizationCache.get(t.id),i=(e==null?void 0:e.variantId)||t.assignedVariantId,n=(e==null?void 0:e.state)||t.state;if(i){const o=((r=(s=t.variants)==null?void 0:s.find(d=>d.id===i))==null?void 0:r.name)||i;console.debug(`shogun: Found cached optimization for optimization: '${t.name}' (${t.id}), with variant: '${o}' (${i})`)}return j({...t,assignedVariantId:i,state:n},{page:this.context.page,shop:this.context.shop},this.audienceEvaluator)})),this._publishedOptimizations}get abTestStrategy(){switch(this.context.assignmentStrategy){case"greedy":return new q(this.visitor.bin);case"even":return new nt(this.visitor.bin);default:return new q(this.visitor.bin)}}get personalizationStrategy(){return new M(this.visitor.bin)}get assignedOptimization(){return this._assignedOptimization===void 0&&(this._assignedOptimization=this.optimizationReview.optimizationInReview||this.previouslyAssignedOptimization||this.abTestStrategy.assign(this.publishedOptimizations.filter(t=>t.type==="ab_test"))||this.personalizationStrategy.assign(this.publishedOptimizations.filter(t=>t.type==="personalization"))||null),this._assignedOptimization}get previouslyAssignedOptimization(){return this.publishedOptimizations.find(t=>t.assignedVariantId!==void 0)||null}get isBot(){return dt(navigator.userAgent)}get dispatchAttempts(){return Number(sessionStorage.getItem("_shg_dispatch_attempts")||"0")}get trackingService(){return this.tracker||(this.tracker=new lt({shop:this.context.shop,page:this.context.page,visitor:this.visitor,assignmentStrategy:this.context.assignmentStrategy,publishedOptimizations:this.publishedOptimizations,originalReferrer:this.originalReferrer})),this.tracker}get isThemePreview(){var i,n,s;if(this.optimizationReview.inReview)return!1;const t=this.context.page.themeId!=this.context.shop.defaultThemeId,e=(s=(n=(i=this.previouslyAssignedOptimization)==null?void 0:i.assignedVariant)==null?void 0:n.config)==null?void 0:s.theme_id;return t&&(e===void 0||e!==this.context.page.themeId)}set dispatchAttempts(t){sessionStorage.setItem("_shg_dispatch_attempts",t.toString())}run(){var t,e,i,n;try{if(this.isBot){console.debug("shogun: Visitor identified as bot, skipping optimization assignment and execution.");return}if(this.dispatchAttempts>=T.MAX_DISPATCH_ATTEMPTS)throw new Error(`Maximum dispatch attempts of ${T.MAX_DISPATCH_ATTEMPTS} exceeded. Possible redirect loop detected.`);if(this.optimizationCache.clearExpired())return;if(this.isThemePreview){console.debug("shogun: Visitor identified as theme preview, skipping optimization assignment and execution.");return}this.publishedOptimizations.forEach(r=>
114r.evaluateEligibility()),console.debug(`shogun: Running dispatcher with ${this.publishedOptimizations.length} published optimizations (${this.publishedOptimizations.map(r=>r.name).join(", ")})`);const s=this.assignedOptimization;if(s){if(this.optimizationCache.update(s),s.isFirstAssignment&&this.trackingService.track("assigned",s),s.needsDispatch){console.debug(`shogun: Dispatching optimization: ${s.name} (${s.id}) with variant: ${(t=s.assignedVariant)==null?void 0:t.name} (${(e=s.assignedVariant)==null?void 0:e.id}) [attempt ${this.dispatchAttempts+1}]`),this.dispatchAttempts==0&&this.retainedReferrer.save(),this.trackingService.track("dispatched",s),this.dispatchAttempts=this.dispatchAttempts+1,s.dispatch();return}console.debug(`shogun: Running optimization: '${s.name}' (${s.id}) with variant: '${(i=s.assignedVariant)==null?void 0:i.name}' (${(n=s.assignedVariant)==null?void 0:n.id})`),s.inReview?(console.debug("shogun: Optimization is in review, running optimization review flow for optimization"),this.optimizationReview.run()):s.isFirstView?(console.debug("shogun: This is the first view for this optimization, tracking started event."),s.state="started",this.optimizationCache.update(s),this.trackingService.track("started",s)):s.isOnAssignedVariant?(console.debug("shogun: This is not the first view for this optimization, tracking viewed event."),this.trackingService.track("viewed",s)):(console.debug("shogun: Visitor is not eligible for the assigned optimization, skipping view tracking and finalization."),this.trackingService.track("skipped",s,{reason:"not_eligible"})),s.finalize(),this.dispatchAttempts=0}else console.debug("shogun: No optimization assigned to this visitor."),this.trackingService.track("skipped",void 0,{reason:"no_assigned_variant"});this.retainedReferrer.clear()}catch(s){console.error("shogun: Error running optimizations",s),this.trackingService.track("errored",void 0,{error:s 
114instanceof Error?{message:s.message,stack:s.stack}:String(s)}),this.retainedReferrer.clear()}}};a(T,"MAX_DISPATCH_ATTEMPTS",5);let K=T;window.ShogunDispatcher=K})();
115
116})();
117  
118</script>
118<script type="text/javascript">
119  ;(function() {
120    const designMode = false;
121    if (designMode) {
122      console.debug("shogun: Design mode is enabled, skipping optimizer initialization");
123      return;
124    }
125
126    // If the referrer url is the Shopify admin url or other known merchant domains, then set a local storage shg_is_merchant flag to true
127    // This is used to remove the preview bar from the page for shoppers
128    const referrer = document.referrer
129    const merchantDomains = ['admin.shopify.com', 'ab.shgapi.com', 'abc.shogun.dev']
130    if (!localStorage.getItem('_shg_is_merchant') && merchantDomains.some(domain => referrer.includes(domain))) {
131      console.debug('shogun: Setting shg_is_merchant to true')
132      localStorage.setItem('_shg_is_merchant', 'true')
133    }
134
135    // Check for optimization disable flags
136    const urlParams = new URLSearchParams(window.location.search);
137    const optimizationDisabled = urlParams.get('shg') === "false" || window.location.hostname.includes('shopifypreview');
138
139    if (optimizationDisabled) {
140      console.debug("shogun: Optimization is disabled, skipping optimizer initialization");
141      return;
142    }
143
144    // Load shop metafield configuration
145    
146    const shopMetafieldConfig = {"default_theme_id":191087509688,"method":"greedy","optimizations":[],"expires_at":1788892296000,"env":"production"};
147    
148    if (!shopMetafieldConfig) {
149      console.debug("shogun: Shop metafield configuration for optimizations is missing. Skipping optimizer initialization.");
150      return;
151    }
152
153    const optimizationsData = shopMetafieldConfig.expires_at > Date.now() ? (shopMetafieldConfig.optimizations || []) : [];
154
155    // These ID should match. It is possible for them to be different if a theme is copied from a different shop.
156    const intendedShopifyId = "94598496440"; // The hard coded shopify ID when this snippet was pushed to the theme.
157    const currentShopifyId = "94598496440"; // The current shopify ID that this theme is rendered in.
158    if (intendedShopifyId !== currentShopifyId) {
159      console.debug(`shogun: Shopify ID mismatch: intendedShopifyId=${intendedShopifyId} currentShopifyId=${currentShopifyId}. This may indicate the theme was copied from another shop and not properly set up. Skipping optimizer initialization to avoid potential issues.`);
160      return;
161    } else {
162      console.debug(`shogun: Shopify ID verified: ${intendedShopifyId}`);
163    }
164
165    
166      if (typeof ShogunDispatcher === 'undefined') {
167        console.error("shogun: Dispatcher is not defined. Please ensure the shogun optimizer script is properly loaded.");
168        return;
169      }
170
171      const dispatcherConfig = {
172        shop: {
173          shopId: "57f1285e-8e9b-4a81-a60f-fa678b392b91",
174          shopDomain: "1zkvfh-xt.myshopify.com",
175          analyticsUrl: "https://shogun-abc-production.global.ssl.fastly.net",
176          geoLocationApi: "https://ipinfo.io/json?token=f2ae3a557d807b",
177          storefrontAccessToken: null,
178          defaultThemeId: shopMetafieldConfig.default_theme_id ? shopMetafieldConfig.default_theme_id.toString() : null,
179          storewideEventCollection: false,
180        },
181        page: {
182          pageId: "162554970296",
183          pageType: "page",
184          templateName: "page",
185          templateSuffix: "contact.bushnell",
186          templateDirectory: "",
187          themeId: "190609653944",
188          languageRootUrl: "/",
189          path: window.location.pathname,
190          currentCartVariantId: null,
191        },
192        session: {
193          sessionId: urlParams.get('shgSessionId'),
194          customerId: "",
195          isB2B: false,
196        },
197        assignmentStrategy: shopMetafieldConfig.method,
198        publishedOptimizations: optimizationsData
199      }
200
201      console.debug("shogun: Initializing ShogunOptimizer v2");
202      const dispatcher = new ShogunDispatcher(dispatcherConfig);
203      dispatcher.run();
204    
205  })();
206
207</script>
207
208�<link
209      rel="icon"
210      type="image/png"
211      href="//www.bushnellgolf.com/cdn/shop/files/favicon.png?crop=center&height=32&v=1784050590&width=32"
212    ><style data-shopify>�@font-face {
213  font-family: Inter;
214  font-weight: 400;
215  font-style: normal;
216  font-display: swap;
217  src: url("//www.bushnellgolf.com/cdn/fonts/inter/inter_n4.b2a3f24c19b4de56e8871f609e73ca7f6d2e2bb9.woff2") format("woff2"),
218       url("//www.bushnellgolf.com/cdn/fonts/inter/inter_n4.af8052d517e0c9ffac7b814872cecc27ae1fa132.woff") format("woff");
219}
220@font-face {
221  font-family: Inter;
222  font-weight: 700;
223  font-style: normal;
224  font-display: swap;
225  src: url("//www.bushnellgolf.com/cdn/fonts/inter/inter_n7.02711e6b374660cfc7915d1afc1c204e633421e4.woff2") format("woff2"),
226       url("//www.bushnellgolf.com/cdn/fonts/inter/inter_n7.6dab87426f6b8813070abd79972ceaf2f8d3b012.woff") format("woff");
227}
228@font-face {
229  font-family: Inter;
230  font-weight: 400;
231  font-style: italic;
232  font-display: swap;
233  src: url("//www.bushnellgolf.com/cdn/fonts/inter/inter_i4.feae1981dda792ab80d117249d9c7e0f1017e5b3.woff2") format("woff2"),
234       url("//www.bushnellgolf.com/cdn/fonts/inter/inter_i4.62773b7113d5e5f02c71486623cf828884c85c6e.woff") format("woff");
235}
236@font-face {
237  font-family: Inter;
238  font-weight: 700;
239  font-style: italic;
240  font-display: swap;
241  src: url("//www.bushnellgolf.com/cdn/fonts/inter/inter_i7.b377bcd4cc0f160622a22d638ae7e2cd9b86ea4c.woff2") format("woff2"),
242       url("//www.bushnellgolf.com/cdn/fonts/inter/inter_i7.7c69a6a34e3bb44fcf6f975857e13b9a9b25beb4.woff") format("woff");
243}
244@font-face {
245  font-family: Inter;
246  font-weight: 500;
247  font-style: normal;
248  font-display: swap;
249  src: url("//www.bushnellgolf.com/cdn/fonts/inter/inter_n5.d7101d5e168594dd06f56f290dd759fba5431d97.woff2") format("woff2"),
250       url("//www.bushnellgolf.com/cdn/fonts/inter/inter_n5.5332a76bbd27da00474c136abb1ca3cbbf259068.woff") format("woff");
251}
252@font-face {
253  font-family: Inter;
254  font-weight: 500;
255  font-style: italic;
256  font-display: swap;
257  src: url("//www.bushnellgolf.com/cdn/fonts/inter/inter_i5.4474f48e6ab2b1e01aa2b6d942dd27fa24f2d99f.woff2") format("woff2"),
258       url("//www.bushnellgolf.com/cdn/fonts/inter/inter_i5.493dbd6ee8e49f4ad722ebb68d92f201af2c2f56.woff") format("woff");
259}
260
261
262  :root {
263    /* Page Layout */
264    --sidebar-width: 25rem;
265    --narrow-content-width: 36rem;
266    --normal-content-width: 42rem;
267    --wide-content-width: 46rem;
268    --narrow-page-width: 90rem;
269    --normal-page-width: 120rem;
270    --wide-page-width: 150rem;
271
272    /* Section Heights */
273    --section-height-small: 15rem;
274    --section-height-medium: 25rem;
275    --section-height-large: 35rem;
276
277    @media screen and (min-width: 40em) {
278      --section-height-small: 40svh;
279      --section-height-medium: 55svh;
280      --section-height-large: 70svh;
281    }
282
283    @media screen and (min-width: 60em) {
284      --section-height-small: 50svh;
285      --section-height-medium: 65svh;
286      --section-height-large: 80svh;
287    }
288
289    /* Letter spacing */
290    --letter-spacing-sm: 0.06em;
291    --letter-spacing-md: 0.13em;
292
293    /* Font families */
294    --font-body--family: Inter, sans-serif;
295    --font-body--style: normal;
296    --font-body--weight: 400;
297    --font-subheading--family: Inter, sans-serif;
298    --font-subheading--style: normal;
299    --font-subheading--weight: 500;
300    --font-heading--family: Inter, sans-serif;
301    --font-heading--style: normal;
302    --font-heading--weight: 700;
303    --font-accent--family: Inter, sans-serif;
304    --font-accent--style: normal;
305    --font-accent--weight: 700;
306
307    /* Margin sizes */
308    --font-heading--spacing: 0.25em;
309    --font-h1--spacing: var(--font-heading--spacing);
310    --font-h2--spacing: var(--font-heading--spacing);
311    --font-h3--spacing: var(--font-heading--spacing);
312    --font-h4--spacing: var(--font-heading--spacing);
313    --font-h5--spacing: var(--font-heading--spacing);
314    --font-h6--spacing: var(--font-heading--spacing);
315    --font-paragraph--spacing: 0.5em;
316
317    /* Heading colors */
318    --font-h1--color: var(--color-foreground-heading);
319    --font-h2--color: var(--color-foreground-heading);
320    --font-h3--color: var(--color-foreground-heading);
321    --font-h4--color: var(--color-foreground-heading);
322    --font-h5--color: var(--color-foreground-heading);
323    --font-h6--color: var(--color-foreground-heading);
324
325    /** Z-Index / Layering */
326    --layer-section-background: -2;
327    --layer-lowest: -1;
328    --layer-base: 0;
329    --layer-flat: 1;
330    --layer-raised: 2;
331    --layer-heightened: 4;
332    --layer-sticky: 8;
333    --layer-window-overlay: 10;
334    --layer-header-menu: 12;
335    --layer-overlay: 16;
336    --layer-menu-drawer: 18;
337    --layer-temporary: 20;
338
339    /* Max-width / Measure */
340    --max-width--body-normal: 32.5em;
341    --max-width--body-narrow: 22.75em;
342
343    --max-width--heading-normal: 32.5em;
344    --max-width--heading-narrow: 19.5em;
345
346    --max-width--display-normal: 13em;
347    --max-width--display-narrow: 9.75em;
348    --max-width--display-tight: 3.25em;
349
350    /* Letter-spacing / Tracking */
351    --letter-spacing--display-tight: -0.03em;
352    --letter-spacing--display-normal: 0em;
353    --letter-spacing--display-loose: 0.03em;
354
355    --letter-spacing--heading-tight: -0.03em;
356    --letter-spacing--heading-normal: 0em;
357    --letter-spacing--heading-loose: 0.03em;
358
359    --letter-spacing--body-tight: -0.03em;
360    --letter-spacing--body-normal: 0em;
361    --letter-spacing--body-loose: 0.03em;
362
363    /* Line height / Leading */
364    --line-height: 1;
365
366    --line-height--display-tight: 1;
367    --line-height--display-normal: 1.1;
368    --line-height--display-loose: 1.2;
369
370    --line-height--heading-tight: 1.15;
371    --line-height--heading-normal: 1.25;
372    --line-height--heading-loose: 1.35;
373
374    --line-height--body-tight: 1.2;
375    --line-height--body-normal: 1.4;
376    --line-height--body-loose: 1.6;
377
378    /* Typography presets */
379    --font-size--paragraph: 0.875rem;--font-size--h1: clamp(3.0rem, 5.6vw, 3.5rem);--font-size--h2: clamp(2.25rem, 4.8vw, 3.0rem);--font-size--h3: 2.0rem;--font-size--h4: 1.5rem;--font-size--h5: 0.875rem;--font-size--h6: 0.75rem;--font-paragraph--weight: 400;--font-paragraph--letter-spacing: var(--letter-spacing--body-normal);--font-paragraph--size: var(--font-size--paragraph);--font-paragraph--family: var(--font-body--family);--font-paragraph--style: var(--font-body--style);--font-paragraph--case: ;--font-paragraph--line-height: var(--line-height--body-loose);--font-h1--weight: var(--font-heading--weight);--font-h1--letter-spacing: var(--letter-spacing--heading-normal);--font-h1--size: var(--font-size--h1);--font-h1--family: var(--font-heading--family);--font-h1--style: var(--font-heading--style);--font-h1--case: none;--font-h1--line-height: var(--line-height--display-tight);--font-h2--weight: var(--font-heading--weight);--font-h2--letter-spacing: var(--letter-spacing--heading-normal);--font-h2--size: var(--font-size--h2);--font-h2--family: var(--font-heading--family);--font-h2--style: var(--font-heading--style);--font-h2--case: none;--font-h2--line-height: var(--line-height--display-tight);--font-h3--weight: var(--font-heading--weight);--font-h3--letter-spacing: var(--letter-spacing--heading-normal);--font-h3--size: var(--font-size--h3);--font-h3--family: var(--font-heading--family);--font-h3--style: var(--font-heading--style);--font-h3--case: none;--font-h3--line-height: var(--line-height--display-normal);--font-h4--weight: var(--font-heading--weight);--font-h4--letter-spacing: var(--letter-spacing--heading-normal);--font-h4--size: var(--font-size--h4);--font-h4--family: var(--font-heading--family);--font-h4--style: var(--font-heading--style);--font-h4--case: none;--font-h4--line-height: var(--line-height--display-tight);--font-h5--weight: var(--font-subheading--weight);--font-h5--letter-spacing: var(--letter-spacing--heading-normal);--font-h5--size: var(--font-size--h5);--font-h5--family: var(--font-subheading--family);--font-h5--style: var(--font-subheading--style);--font-h5--case: none;--font-h5--line-height: var(--line-height--display-loose);--font-h6--weight: var(--font-subheading--weight);--font-h6--letter-spacing: var(--letter-spacing--heading-normal);--font-h6--size: var(--font-size--h6);--font-h6--family: var(--font-subheading--family);--font-h6--style: var(--font-subheading--style);--font-h6--case: none;--font-h6--line-height: var(--line-height--display-loose);
380
381    /* Hardcoded font sizes */
382    --font-size--3xs: 0.625rem;
383    --font-size--2xs: 0.75rem;
384    --font-size--xs: 0.8125rem;
385    --font-size--sm: 0.875rem;
386    --font-size--md: 1rem;
387    --font-size--lg: 1.125rem;
388    --font-size--xl: 1.25rem;
389    --font-size--2xl: 1.5rem;
390    --font-size--3xl: 2rem;
391    --font-size--4xl: 2.5rem;
392    --font-size--5xl: 3rem;
393    --font-size--6xl: 3.5rem;
394
395    /* Menu font sizes */
396    --menu-font-sm--size: 0.875rem;
397    --menu-font-sm--line-height: calc(1.1 + 0.5 * min(16 / 14));
398    --menu-font-md--size: 1rem;
399    --menu-font-md--line-height: calc(1.1 + 0.5 * min(16 / 16));
400    --menu-font-lg--size: 1.125rem;
401    --menu-font-lg--line-height: calc(1.1 + 0.5 * min(16 / 18));
402    --menu-font-xl--size: 1.25rem;
403    --menu-font-xl--line-height: calc(1.1 + 0.5 * min(16 / 20));
404    --menu-font-2xl--size: 1.75rem;
405    --menu-font-2xl--line-height: calc(1.1 + 0.5 * min(16 / 28));
406
407    /* Colors */
408    --color-error: #8B0000;
409    --color-success: #006400;
410    --color-white: #FFFFFF;
411    --color-white-rgb: 255 255 255;
412    --color-black: #000000;
413    --color-instock: #3ED660;
414    --color-lowstock: #EE9441;
415    --color-outofstock: #C8C8C8;
416
417    /* Opacity */
418    --opacity-5: 0.05;
419    --opacity-8: 0.08;
420    --opacity-10: 0.1;
421    --opacity-15: 0.15;
422    --opacity-20: 0.2;
423    --opacity-25: 0.25;
424    --opacity-30: 0.3;
425    --opacity-40: 0.4;
426    --opacity-50: 0.5;
427    --opacity-60: 0.6;
428    --opacity-70: 0.7;
429    --opacity-80: 0.8;
430    --opacity-85: 0.85;
431    --opacity-90: 0.9;
432    --opacity-subdued-text: var(--opacity-70);
433
434    --shadow-button: 0 2px 3px rgb(0 0 0 / 20%);
435    --gradient-image-overlay: linear-gradient(to top, rgb(0 0 0 / 0.5), transparent);
436
437    /* Spacing */
438    --margin-3xs: 0.125rem;
439    --margin-2xs: 0.3rem;
440    --margin-xs: 0.5rem;
441    --margin-sm: 0.7rem;
442    --margin-md: 0.8rem;
443    --margin-lg: 1rem;
444    --margin-xl: 1.25rem;
445    --margin-2xl: 1.5rem;
446    --margin-3xl: 1.75rem;
447    --margin-4xl: 2rem;
448    --margin-5xl: 3rem;
449    --margin-6xl: 5rem;
450
451    --scroll-margin: 50px;
452
453    --padding-3xs: 0.125rem;
454    --padding-2xs: 0.25rem;
455    --padding-xs: 0.5rem;
456    --padding-sm: 0.7rem;
457    --padding-md: 0.8rem;
458    --padding-lg: 1rem;
459    --padding-xl: 1.25rem;
460    --padding-2xl: 1.5rem;
461    --padding-3xl: 1.75rem;
462    --padding-4xl: 2rem;
463    --padding-5xl: 3rem;
464    --padding-6xl: 4rem;
465
466    --gap-3xs: 0.125rem;
467    --gap-2xs: 0.3rem;
468    --gap-xs: 0.5rem;
469    --gap-sm: 0.7rem;
470    --gap-md: 0.9rem;
471    --gap-lg: 1rem;
472    --gap-xl: 1.25rem;
473    --gap-2xl: 2rem;
474    --gap-3xl: 3rem;
475
476    --spacing-scale-sm: 0.6;
477    --spacing-scale-md: 0.7;
478    --spacing-scale-default: 1.0;
479
480    /* Checkout buttons gap */
481    --checkout-button-gap: 10px;
482
483    /* Borders */
484    --style-border-width: 1px;
485    --style-border-radius-xs: 0.2rem;
486    --style-border-radius-sm: 0.6rem;
487    --style-border-radius-md: 0.8rem;
488    --style-border-radius-50: 50%;
489    --style-border-radius-lg: 1rem;
490    --style-border-radius-pills: 40px;
491    --style-border-radius-inputs: 4px;
492    --style-border-radius-buttons-primary: 14px;
493    --style-border-radius-buttons-secondary: 14px;
494    --style-border-width-primary: 0px;
495    --style-border-width-secondary: 1px;
496    --style-border-width-inputs: 1px;
497    --style-border-radius-popover: 14px;
498    --style-border-popover: 1px none rgb(var(--color-border-rgb) / 50%);
499    --style-border-drawer: 1px none rgb(var(--color-border-rgb) / 50%);
500    --style-border-swatch-opacity: 10%;
501    --style-border-swatch-width: 1px;
502    --style-border-swatch-style: solid;
503
504    /* Animation */
505    --ease-out-cubic: cubic-bezier(0.33, 1, 0.68, 1);
506    --ease-out-quad: cubic-bezier(0.32, 0.72, 0, 1);
507    --ease-in-out-quad: cubic-bezier(0.455, 0.03, 0.515, 0.955);
508    --animation-speed-fast: 0.0625s;
509    --animation-speed: 0.125s;
510    --animation-speed-slow: 0.2s;
511    --animation-speed-medium: 0.15s;
512    --animation-easing: ease-in-out;
513    --animation-slideshow-easing: cubic-bezier(0.4, 0, 0.2, 1);
514    --drawer-animation-speed: 0.2s;
515    --animation-values-slow: var(--animation-speed-slow) var(--animation-easing);
516    --animation-values: var(--animation-speed) var(--animation-easing);
517    --animation-values-fast: var(--animation-speed-fast) var(--animation-easing);
518    --animation-values-allow-discrete: var(--animation-speed) var(--animation-easing) allow-discrete;
519    --animation-timing-hover: cubic-bezier(0.25, 0.46, 0.45, 0.94);
520    --animation-timing-active: cubic-bezier(0.5, 0, 0.75, 0);
521    --animation-timing-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
522    --animation-timing-default: cubic-bezier(0, 0, 0.2, 1);
523    --animation-timing-fade-in: cubic-bezier(0.16, 1, 0.3, 1);
524    --animation-timing-fade-out: cubic-bezier(0.4, 0, 0.2, 1);
525    /* Spring definitions suffixed with perceptual duration (d<ms>) and bounce (b<%>)*/
526    --spring-d300-b0-easing: linear(0, 0.0033 0.81%, 0.027 2.42%, 0.0916 4.84%, 0.4745 15.32%, 0.6422 20.97%, 0.7175, 0.7789, 0.8283 30.64%, 0.876, 0.9111 38.71%, 0.941, 0.9611 48.39%, 0.9707, 0.978 54.84%, 0.9885 62.1%, 0.9949 70.97%, 0.9982 82.26%, 0.9997 100%);
527    --spring-d300-b0-duration: 0.4980s;
528    --spring-d280-b0-easing: linear(0, 0.0044, 0.0164 1.85%, 0.085 4.63%, 0.4571 14.81%, 0.575 18.52%, 0.6505, 0.7148 24.07%, 0.7849, 0.8393, 0.8809 35.18%, 0.9189, 0.9453 44.44%, 0.9662, 0.9793 55.55%, 0.9894 62.95%, 0.995 71.28%, 0.9982 82.39%, 0.9997 99.98%);
529    --spring-d280-b0-duration: 0.4648s;
530    --spring-d260-b0-easing: linear(0, 0.0058, 0.0216 2.15%, 0.0748 4.29%, 0.4646 15.03%, 0.5673, 0.655, 0.7279, 0.7872, 0.8349, 0.8727 34.36%, 0.9107, 0.9379 42.95%, 0.9609 48.31%, 0.9778 54.76%, 0.9887 62.27%, 0.9948 70.86%, 0.9983 82.67%, 0.9997 99.85%);
531    --spring-d260-b0-duration: 0.4316s;
532    --spring-d220-b0-easing: linear(
533      0,
534      0.0093 1.37%,
535      0.0696 4.12%,
536      0.4667 15.09%,
537      0.6322 20.58%,
538      0.6986 23.32%,
539      0.7793 27.44%,
540      0.8219 30.18%,
541      0.8721,
542      0.9089 38.42%,
543      0.9427,
544      0.9644,
545      0.978 54.88%,
546      0.9881 61.74%,
547      0.9944 69.97%,
548      0.998 80.95%,
549      0.9996 98.78%
550    );
551    --spring-d220-b0-duration: 0.3818s;
552    --spring-d180-b0-easing: linear(0, 0.0234, 0.0805 4.48%, 0.4865 15.68%, 0.6211 20.16%, 0.7696 26.88%, 0.8064 29.12%, 0.8646, 0.9063, 0.9358, 0.9563 47.04%, 0.9757, 0.9867 60.48%, 0.9941 69.44%, 0.9979 80.64%, 0.9996 98.56%);
553    --spring-d180-b0-duration: 0.2988s;
554
555    /* View transitions */
556    /* View transition old */
557    --view-transition-old-main-content: var(--animation-speed) var(--animation-easing) both fadeOut;
558
559    /* View transition new */
560    --view-transition-new-main-content: var(--animation-speed) var(--animation-easing) both fadeIn, var(--animation-speed) var(--animation-easing) both slideInTopViewTransition;
561
562    /* Focus */
563    --focus-outline-width: 0.09375rem;
564    --focus-outline-offset: 0.2em;
565
566    /* Badges */
567    --badge-blob-padding-block: 1px;
568    --badge-blob-padding-inline: 12px 8px;
569    --badge-rectangle-padding-block: 1px;
570    --badge-rectangle-padding-inline: 6px;
571    @media screen and (min-width: 750px) {
572      --badge-blob-padding-block: 4px;
573      --badge-blob-padding-inline: 16px 12px;
574      --badge-rectangle-padding-block: 4px;
575      --badge-rectangle-padding-inline: 10px;
576    }
577
578    /* Icons */
579    --icon-size-2xs: 0.6rem;
580    --icon-size-xs: 0.85rem;
581    --icon-size-sm: 1.25rem;
582    --icon-size-md: 1.375rem;
583    --icon-size-lg: 1.5rem;
584    --icon-stroke-width: 1.5px;
585
586    /* Input */
587    --input-email-min-width: 200px;
588    --input-search-max-width: 650px;
589    --input-padding-y: 0.8rem;
590    --input-padding-x: 0.8rem;
591    --input-padding: var(--input-padding-y) var(--input-padding-x);
592    --input-box-shadow-width: var(--style-border-width-inputs);
593    --input-box-shadow: 0 0 0 var(--input-box-shadow-width) var(--color-input-border);
594    --input-box-shadow-focus: 0 0 0 calc(var(--input-box-shadow-width) + 0.5px) var(--color-input-border);
595    --input-disabled-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10));
596    --input-disabled-border-color: rgb(var(--color-foreground-rgb) / var(--opacity-5));
597    --input-disabled-text-color: rgb(var(--color-foreground-rgb) / var(--opacity-50));
598    --input-textarea-min-height: 55px;
599
600    /* Checkbox */
601    --checkbox-size: 22px;
602    --checkbox-border-radius: 7px;
603    --checkbox-border: 1px solid rgb(var(--color-foreground-rgb) / var(--opacity-35-55));
604    --checkbox-label-padding: 8px;
605
606    @media screen and (min-width: 750px) {
607      --checkbox-size: 16px;
608      --checkbox-border-radius: 5px;
609      --checkbox-label-padding: 6px;
610    }
611
612    /* Button size */
613    --button-size-sm: 30px;
614    --button-size-md: 36px;
615    --button-size: var(--minimum-touch-target);
616    --button-padding-inline: 24px;
617    --button-padding-block: 16px;
618
619    /* Button font-family */
620    --button-font-family-primary: var(--font-body--family);
621    --button-font-family-secondary: var(--font-body--family);
622
623    /* Button text case */
624    --button-text-case: ;
625    --button-text-case-primary: default;
626    --button-text-case-secondary: default;
627
628    /* Borders */
629    --border-color: rgb(var(--color-border-rgb) / var(--opacity-50));
630    --border-width-sm: 1px;
631    --border-width-md: 2px;
632    --border-width-lg: 5px;
633    --border-radius-sm: 0.25rem;
634
635    /* Drawers */
636    --drawer-inline-padding: 25px;
637    --drawer-menu-inline-padding: 2.5rem;
638    --drawer-header-block-padding: 20px;
639    --drawer-content-block-padding: 10px;
640    --drawer-header-desktop-top: 0rem;
641    --drawer-padding: calc(var(--padding-sm) + 7px);
642    --drawer-height: 100dvh;
643    --drawer-width: 95vw;
644    --drawer-max-width: 500px;
645
646    /* Variant Picker Swatches */
647    --variant-picker-swatch-width-unitless: 34;
648    --variant-picker-swatch-height-unitless: 34;
649    --variant-picker-swatch-width: 34px;
650    --variant-picker-swatch-height: 34px;
651    --variant-picker-swatch-radius: 32px;
652    --variant-picker-border-width: 1px;
653    --variant-picker-border-style: solid;
654    --variant-picker-border-opacity: 10%;
655
656    /* Variant Picker Buttons */
657    --variant-picker-button-radius: 14px;
658    --variant-picker-button-border-width: 1px;
659
660    /* Slideshow */
661    --slideshow-controls-size: 3.5rem;
662    --slideshow-controls-icon: 2rem;
663    --peek-next-slide-size: 3rem;
664
665    /* Utilities */
666    --backdrop-opacity: 0.15;
667    --backdrop-color-rgb: var(--color-shadow-rgb);
668    --minimum-touch-target: 44px;
669    --disabled-opacity: 0.5;
670    --skeleton-opacity: 0.025;
671
672    /* Shapes */
673    --shape--circle: circle(50% at center);
674    --shape--sunburst: polygon(100% 50%,94.62% 55.87%,98.3% 62.94%,91.57% 67.22%,93.3% 75%,85.7% 77.39%,85.36% 85.36%,77.39% 85.7%,75% 93.3%,67.22% 91.57%,62.94% 98.3%,55.87% 94.62%,50% 100%,44.13% 94.62%,37.06% 98.3%,32.78% 91.57%,25% 93.3%,22.61% 85.7%,14.64% 85.36%,14.3% 77.39%,6.7% 75%,8.43% 67.22%,1.7% 62.94%,5.38% 55.87%,0% 50%,5.38% 44.13%,1.7% 37.06%,8.43% 32.78%,6.7% 25%,14.3% 22.61%,14.64% 14.64%,22.61% 14.3%,25% 6.7%,32.78% 8.43%,37.06% 1.7%,44.13% 5.38%,50% 0%,55.87% 5.38%,62.94% 1.7%,67.22% 8.43%,75% 6.7%,77.39% 14.3%,85.36% 14.64%,85.7% 22.61%,93.3% 25%,91.57% 32.78%,98.3% 37.06%,94.62% 44.13%);
675    --shape--diamond: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
676    --shape--blob: polygon(85.349% 11.712%, 87.382% 13.587%, 89.228% 15.647%, 90.886% 17.862%, 92.359% 20.204%, 93.657% 22.647%, 94.795% 25.169%, 95.786% 27.752%, 96.645% 30.382%, 97.387% 33.048%, 98.025% 35.740%, 98.564% 38.454%, 99.007% 41.186%, 99.358% 43.931%, 99.622% 46.685%, 99.808% 49.446%, 99.926% 52.210%, 99.986% 54.977%, 99.998.4% 57.744%, 99.975% 60.511%, 99.923% 63.278%, 99.821% 66.043%, 99.671% 68.806%, 99.453% 71.565%, 99.145% 74.314%, 98.724% 77.049%, 98.164% 79.759%, 97.433% 82.427%, 96.495% 85.030%, 95.311% 87.529%, 93.841% 89.872%, 92.062% 91.988%, 89.972% 93.796%, 87.635% 95.273%, 85.135% 96.456%, 82.532% 97.393%, 79.864% 98.127%, 77.156% 98.695%, 74.424% 99.129%, 71.676% 99.452%, 68.918% 99.685%, 66.156% 99.844%, 63.390% 99.942%, 60.624% 99.990%, 57.856% 99.998.4%, 55.089% 99.978%, 52.323% 99.929%, 49.557% 99.847%, 46.792% 99.723%, 44.031% 99.549%, 41.273% 99.317%, 38.522% 99.017%, 35.781% 98.639%, 33.054% 98.170%, 30.347% 97.598.4%, 27.667% 96.911%, 25.024% 96.091%, 22.432% 95.123%, 19.907% 93.994%, 17.466% 92.690%, 15.126% 91.216%, 12.902% 89.569%, 10.808% 87.761%, 8.854% 85.803%, 7.053% 83.703%, 5.418% 81.471%, 3.962% 79.119%, 2.702% 76.656%, 1.656% 74.095%, 0.846% 71.450%, 0.294% 68.740%, 0.024% 65.987%, 0.050% 63.221%, 0.343% 60.471%, 0.858% 57.752%, 1.548% 55.073%, 2.370% 52.431%, 3.283% 49.819%, 4.253% 47.227%, 5.249% 44.646%, 6.244% 42.063%, 7.211% 39.471%, 8.124% 36.858%, 8.958% 34.220%, 9.711% 31.558%, 10.409% 28.880%, 11.083% 26.196%, 11.760% 23.513%, 12.474% 20.839%, 13.259% 18.186%, 14.156% 15.569%, 15.214% 13.012%, 16.485% 10.556%, 18.028% 8.261%, 19.883
676% 6.211%, 22.041% 4.484%, 24.440% 3.110%, 26.998% 2.057%, 29.651% 1.275%, 32.360% 0.714%, 35.101% 0.337%, 37.859% 0.110%, 40.624% 0.009%, 43.391% 0.016%, 46.156% 0.113%, 48.918% 0.289%, 51.674% 0.533%, 54.425% 0.837%, 57.166% 1.215%, 59.898% 1.654%, 62.618% 2.163%, 65.322% 2.750%, 68.006% 3.424%, 70.662% 4.197%, 73.284% 5.081%, 75.860% 6.091%, 78.376% 7.242%, 80.813% 8.551%, 83.148% 10.036%, 85.349% 11.712%);
677
678    /* Buy buttons */
679    --height-buy-buttons: calc(var(--padding-lg) * 2 + var(--icon-size-sm));
680
681    /* Card image width and height variables */
682    --card-width-small: 10rem;
683
684    --height-small: 10rem;
685    --height-medium: 11.5rem;
686    --height-large: 13rem;
687    --height-full: 100vh;
688
689    @media screen and (min-width: 750px) {
690      --height-small: 17.5rem;
691      --height-medium: 21.25rem;
692      --height-large: 25rem;
693    }
694
695    /* Modal */
696    --modal-max-height: 65dvh;
697    --quick-add-modal-height: min(38.5rem, 96vh);
698    --quick-add-modal-width: min(54rem, 96vw);
699    --quick-add-modal-gallery-width: 24rem;
700
701    /* Card styles for search */
702    --card-bg-hover: rgb(var(--color-foreground-rgb) / var(--opacity-5));
703    --card-border-hover: rgb(var(--color-foreground-rgb) / var(--opacity-30));
704    --card-border-focus: rgb(var(--color-foreground-rgb) / var(--opacity-10));
705
706    /* Cart */
707    --cart-primary-font-family: var(--font-body--family);
708    --cart-primary-font-style: var(--font-body--style);
709    --cart-primary-font-weight: var(--font-body--weight);
710    --cart-secondary-font-family: var(--font-secondary--family);
711    --cart-secondary-font-style: var(--font-secondary--style);
712    --cart-secondary-font-weight: var(--font-secondary--weight);
713  }
714</style>
715<style data-shopify>
716  
717    
718      :root,
719    
720    
721    
722    .color-scheme-1 {
723        --color-background: rgb(255 255 255 / 1.0);
724        /* RGB values only to apply different opacities - Relative color values are not supported in iOS < 16.4 */
725        --color-background-rgb: 255 255 255;
726        --opacity-5-15: 0.05;
727        --opacity-10-25: 0.1;
728        --opacity-35-55: 0.35;
729        --opacity-40-60: 0.4;
730        --opacity-30-60: 0.3;
731        --color-foreground: rgb(0 0 0 / 0.81);
732        --color-foreground-rgb: 0 0 0;
733        --color-foreground-heading: rgb(0 0 0 / 1.0);
734        --color-foreground-heading-rgb: 0 0 0;
735        --color-primary: rgb(0 0 0 / 0.81);
736        --color-primary-rgb: 0 0 0;
737        --color-primary-hover: rgb(0 0 0 / 1.0);
738        --color-primary-hover-rgb: 0 0 0;
739        --color-border: rgb(0 0 0 / 0.06);
740        --color-border-rgb: 0 0 0;
741        --color-shadow: rgb(0 0 0 / 1.0);
742        --color-shadow-rgb: 0 0 0;
743        --color-primary-button-text: rgb(255 255 255 / 1.0);
744        --color-primary-button-background: rgb(0 0 0 / 1.0);
745        --color-primary-button-border: rgb(0 0 0 / 1.0);
746        --color-primary-button-hover-text: rgb(255 255 255 / 1.0);
747        --color-primary-button-hover-background: rgb(51 51 51 / 1.0);
748        --color-primary-button-hover-border: rgb(0 0 0 / 1.0);
749        --color-secondary-button-text: rgb(0 0 0 / 1.0);
750        --color-secondary-button-background: rgb(0 0 0 / 0.0);
751        --color-secondary-button-border: rgb(0 0 0 / 1.0);
752        --color-secondary-button-hover-text: rgb(51 51 51 / 1.0);
753        --color-secondary-button-hover-background: rgb(250 250 250 / 1.0);
754        --color-secondary-button-hover-border: rgb(51 51 51 / 1.0);
755        --color-input-background: rgb(255 255 255 / 0.78);
756        --color-input-text: rgb(51 51 51 / 1.0);
757        --color-input-text-rgb: 51 51 51;
758        --color-input-border: rgb(223 223 223 / 1.0);
759        --color-input-hover-background: rgb(0 0 0 / 0.01);
760        --color-variant-background: rgb(255 255 255 / 1.0);
761        --color-variant-border: rgb(0 0 0 / 0.13);
762        --color-variant-text: rgb(0 0 0 / 1.0);
763        --color-variant-text-rgb: 0 0 0;
764        --color-variant-hover-background: rgb(245 245 245 / 1.0);
765        --color-variant-hover-text: rgb(0 0 0 / 1.0);
766        --color-variant-hover-border: rgb(230 230 230 / 1.0);
767        --color-selected-variant-background: rgb(0 0 0 / 1.0);
768        --color-selected-variant-border: rgb(0 0 0 / 1.0);
769        --color-selected-variant-text: rgb(255 255 255 / 1.0);
770        --color-selected-variant-hover-background: rgb(26 26 26 / 1.0);
771        --color-selected-variant-hover-text: rgb(255 255 255 / 1.0);
772        --color-selected-variant-hover-border: rgb(26 26 26 / 1.0);
773
774        --input-disabled-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10));
775        --input-disabled-border-color: rgb(var(--color-foreground-rgb) / var(--opacity-5-15));
776        --input-disabled-text-color: rgb(var(--color-foreground-rgb) / var(--opacity-50));
777        --color-foreground-muted: rgb(var(--color-foreground-rgb) / var(--opacity-60));
778        --font-h1--color: var(--color-foreground-heading);
779        --font-h2--color: var(--color-foreground-heading);
780        --font-h3--color: var(--color-foreground-heading);
781        --font-h4--color: var(--color-foreground-heading);
782        --font-h5--color: var(--color-foreground-heading);
783        --font-h6--color: var(--color-foreground-heading);
784
785        /* Shadows */
786        
787          --shadow-drawer: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
788        
789        
790          --shadow-blur: 20px;
791          --shadow-popover: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
792        
793      }
794  
795    
796    
797    
798    .color-scheme-2 {
799        --color-background: rgb(254 80 0 / 1.0);
800        /* RGB values only to apply different opacities - Relative color values are not supported in iOS < 16.4 */
801        --color-background-rgb: 254 80 0;
802        --opacity-5-15: 0.05;
803        --opacity-10-25: 0.1;
804        --opacity-35-55: 0.35;
805        --opacity-40-60: 0.4;
806        --opacity-30-60: 0.3;
807        --color-foreground: rgb(0 0 0 / 0.81);
808        --color-foreground-rgb: 0 0 0;
809        --color-foreground-heading: rgb(0 0 0 / 1.0);
810        --color-foreground-heading-rgb: 0 0 0;
811        --color-primary: rgb(0 0 0 / 0.81);
812        --color-primary-rgb: 0 0 0;
813        --color-primary-hover: rgb(255 255 255 / 1.0);
814        --color-primary-hover-rgb: 255 255 255;
815        --color-border: rgb(223 223 223 / 1.0);
816        --color-border-rgb: 223 223 223;
817        --color-shadow: rgb(0 0 0 / 1.0);
818        --color-shadow-rgb: 0 0 0;
819        --color-primary-button-text: rgb(255 255 255 / 1.0);
820        --color-primary-button-background: rgb(0 0 0 / 1.0);
821        --color-primary-button-border: rgb(0 0 0 / 1.0);
822        --color-primary-button-hover-text: rgb(255 255 255 / 1.0);
823        --color-primary-button-hover-background: rgb(51 51 51 / 1.0);
824        --color-primary-button-hover-border: rgb(51 51 51 / 1.0);
825        --color-secondary-button-text: rgb(0 0 0 / 1.0);
826        --color-secondary-button-background: rgb(0 0 0 / 0.0);
827        --color-secondary-button-border: rgb(0 0 0 / 1.0);
828        --color-secondary-button-hover-text: rgb(0 0 0 / 1.0);
829        --color-secondary-button-hover-background: rgb(255 255 255 / 0.36);
830        --color-secondary-button-hover-border: rgb(51 51 51 / 0.73);
831        --color-input-background: rgb(0 0 0 / 0.0);
832        --color-input-text: rgb(0 0 0 / 0.53);
833        --color-input-text-rgb: 0 0 0;
834        --color-input-border: rgb(0 0 0 / 0.13);
835        --color-input-hover-background: rgb(255 255 255 / 0.36);
836        --color-variant-background: rgb(255 255 255 / 1.0);
837        --color-variant-border: rgb(230 230 230 / 1.0);
838        --color-variant-text: rgb(0 0 0 / 1.0);
839        --color-variant-text-rgb: 0 0 0;
840        --color-variant-hover-background: rgb(245 245 245 / 1.0);
841        --color-variant-hover-text: rgb(0 0 0 / 1.0);
842        --color-variant-hover-border: rgb(230 230 230 / 1.0);
843        --color-selected-variant-background: rgb(0 0 0 / 1.0);
844        --color-selected-variant-border: rgb(0 0 0 / 1.0);
845        --color-selected-variant-text: rgb(255 255 255 / 1.0);
846        --color-selected-variant-hover-background: rgb(26 26 26 / 1.0);
847        --color-selected-variant-hover-text: rgb(255 255 255 / 1.0);
848        --color-selected-variant-hover-border: rgb(26 26 26 / 1.0);
849
850        --input-disabled-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10));
851        --input-disabled-border-color: rgb(var(--color-foreground-rgb) / var(--opacity-5-15));
852        --input-disabled-text-color: rgb(var(--color-foreground-rgb) / var(--opacity-50));
853        --color-foreground-muted: rgb(var(--color-foreground-rgb) / var(--opacity-60));
854        --font-h1--color: var(--color-foreground-heading);
855        --font-h2--color: var(--color-foreground-heading);
856        --font-h3--color: var(--color-foreground-heading);
857        --font-h4--color: var(--color-foreground-heading);
858        --font-h5--color: var(--color-foreground-heading);
859        --font-h6--color: var(--color-foreground-heading);
860
861        /* Shadows */
862        
863          --shadow-drawer: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
864        
865        
866          --shadow-blur: 20px;
867          --shadow-popover: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
868        
869      }
870  
871    
872    
873    
874    .color-scheme-3 {
875        --color-background: rgb(238 241 234 / 1.0);
876        /* RGB values only to apply different opacities - Relative color values are not supported in iOS < 16.4 */
877        --color-background-rgb: 238 241 234;
878        --opacity-5-15: 0.05;
879        --opacity-10-25: 0.1;
880        --opacity-35-55: 0.35;
881        --opacity-40-60: 0.4;
882        --opacity-30-60: 0.3;
883        --color-foreground: rgb(0 0 0 / 0.81);
884        --color-foreground-rgb: 0 0 0;
885        --color-foreground-heading: rgb(0 0 0 / 1.0);
886        --color-foreground-heading-rgb: 0 0 0;
887        --color-primary: rgb(0 0 0 / 0.81);
888        --color-primary-rgb: 0 0 0;
889        --color-primary-hover: rgb(0 0 0 / 1.0);
890        --color-primary-hover-rgb: 0 0 0;
891        --color-border: rgb(0 0 0 / 0.81);
892        --color-border-rgb: 0 0 0;
893        --color-shadow: rgb(0 0 0 / 1.0);
894        --color-shadow-rgb: 0 0 0;
895        --color-primary-button-text: rgb(255 255 255 / 1.0);
896        --color-primary-button-background: rgb(0 0 0 / 1.0);
897        --color-primary-button-border: rgb(0 0 0 / 1.0);
898        --color-primary-button-hover-text: rgb(255 255 255 / 1.0);
899        --color-primary-button-hover-background: rgb(51 51 51 / 1.0);
900        --color-primary-button-hover-border: rgb(51 51 51 / 1.0);
901        --color-secondary-button-text: rgb(0 0 0 / 1.0);
902        --color-secondary-button-background: rgb(0 0 0 / 0.0);
903        --color-secondary-button-border: rgb(0 0 0 / 1.0);
904        --color-secondary-button-hover-text: rgb(0 0 0 / 0.81);
905        --color-secondary-button-hover-background: rgb(255 255 255 / 0.36);
906        --color-secondary-button-hover-border: rgb(0 0 0 / 0.81);
907        --color-input-background: rgb(0 0 0 / 0.0);
908        --color-input-text: rgb(0 0 0 / 0.81);
909        --color-input-text-rgb: 0 0 0;
910        --color-input-border: rgb(0 0 0 / 0.81);
911        --color-input-hover-background: rgb(255 255 255 / 0.36);
912        --color-variant-background: rgb(255 255 255 / 1.0);
913        --color-variant-border: rgb(230 230 230 / 1.0);
914        --color-variant-text: rgb(0 0 0 / 1.0);
915        --color-variant-text-rgb: 0 0 0;
916        --color-variant-hover-background: rgb(245 245 245 / 1.0);
917        --color-variant-hover-text: rgb(0 0 0 / 1.0);
918        --color-variant-hover-border: rgb(230 230 230 / 1.0);
919        --color-selected-variant-background: rgb(0 0 0 / 1.0);
920        --color-selected-variant-border: rgb(0 0 0 / 1.0);
921        --color-selected-variant-text: rgb(255 255 255 / 1.0);
922        --color-selected-variant-hover-background: rgb(26 26 26 / 1.0);
923        --color-selected-variant-hover-text: rgb(255 255 255 / 1.0);
924        --color-selected-variant-hover-border: rgb(26 26 26 / 1.0);
925
926        --input-disabled-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10));
927        --input-disabled-border-color: rgb(var(--color-foreground-rgb) / var(--opacity-5-15));
928        --input-disabled-text-color: rgb(var(--color-foreground-rgb) / var(--opacity-50));
929        --color-foreground-muted: rgb(var(--color-foreground-rgb) / var(--opacity-60));
930        --font-h1--color: var(--color-foreground-heading);
931        --font-h2--color: var(--color-foreground-heading);
932        --font-h3--color: var(--color-foreground-heading);
933        --font-h4--color: var(--color-foreground-heading);
934        --font-h5--color: var(--color-foreground-heading);
935        --font-h6--color: var(--color-foreground-heading);
936
937        /* Shadows */
938        
939          --shadow-drawer: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
940        
941        
942          --shadow-blur: 20px;
943          --shadow-popover: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
944        
945      }
946  
947    
948    
949    
950    .color-scheme-4 {
951        --color-background: rgb(225 237 245 / 1.0);
952        /* RGB values only to apply different opacities - Relative color values are not supported in iOS < 16.4 */
953        --color-background-rgb: 225 237 245;
954        --opacity-5-15: 0.05;
955        --opacity-10-25: 0.1;
956        --opacity-35-55: 0.35;
957        --opacity-40-60: 0.4;
958        --opacity-30-60: 0.3;
959        --color-foreground: rgb(0 0 0 / 0.81);
960        --color-foreground-rgb: 0 0 0;
961        --color-foreground-heading: rgb(0 0 0 / 1.0);
962        --color-foreground-heading-rgb: 0 0 0;
963        --color-primary: rgb(0 0 0 / 0.81);
964        --color-primary-rgb: 0 0 0;
965        --color-primary-hover: rgb(0 0 0 / 1.0);
966        --color-primary-hover-rgb: 0 0 0;
967        --color-border: rgb(29 54 134 / 0.5);
968        --color-border-rgb: 29 54 134;
969        --color-shadow: rgb(0 0 0 / 1.0);
970        --color-shadow-rgb: 0 0 0;
971        --color-primary-button-text: rgb(255 255 255 / 1.0);
972        --color-primary-button-background: rgb(0 0 0 / 1.0);
973        --color-primary-button-border: rgb(29 54 134 / 1.0);
974        --color-primary-button-hover-text: rgb(255 255 255 / 1.0);
975        --color-primary-button-hover-background: rgb(51 51 51 / 1.0);
976        --color-primary-button-hover-border: rgb(0 0 0 / 1.0);
977        --color-secondary-button-text: rgb(0 0 0 / 1.0);
978        --color-secondary-button-background: rgb(0 0 0 / 0.0);
979        --color-secondary-button-border: rgb(0 0 0 / 1.0);
980        --color-secondary-button-hover-text: rgb(0 0 0 / 0.81);
981        --color-secondary-button-hover-background: rgb(255 255 255 / 0.36);
982        --color-secondary-button-hover-border: rgb(0 0 0 / 0.81);
983        --color-input-background: rgb(0 0 0 / 0.0);
984        --color-input-text: rgb(0 0 0 / 0.81);
985        --color-input-text-rgb: 0 0 0;
986        --color-input-border: rgb(0 0 0 / 0.81);
987        --color-input-hover-background: rgb(255 255 255 / 0.36);
988        --color-variant-background: rgb(255 255 255 / 1.0);
989        --color-variant-border: rgb(230 230 230 / 1.0);
990        --color-variant-text: rgb(0 0 0 / 1.0);
991        --color-variant-text-rgb: 0 0 0;
992        --color-variant-hover-background: rgb(245 245 245 / 1.0);
993        --color-variant-hover-text: rgb(0 0 0 / 1.0);
994        --color-variant-hover-border: rgb(230 230 230 / 1.0);
995        --color-selected-variant-background: rgb(0 0 0 / 1.0);
996        --color-selected-variant-border: rgb(0 0 0 / 1.0);
997        --color-selected-variant-text: rgb(255 255 255 / 1.0);
998        --color-selected-variant-hover-background: rgb(26 26 26 / 1.0);
999        --color-selected-variant-hover-text: rgb(255 255 255 / 1.0);
1000        --color-selected-variant-hover-border: rgb(26 26 26 / 1.0);
1001
1002        --input-disabled-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10));
1003        --input-disabled-border-color: rgb(var(--color-foreground-rgb) / var(--opacity-5-15));
1004        --input-disabled-text-color: rgb(var(--color-foreground-rgb) / var(--opacity-50));
1005        --color-foreground-muted: rgb(var(--color-foreground-rgb) / var(--opacity-60));
1006        --font-h1--color: var(--col
1006or-foreground-heading);
1007        --font-h2--color: var(--color-foreground-heading);
1008        --font-h3--color: var(--color-foreground-heading);
1009        --font-h4--color: var(--color-foreground-heading);
1010        --font-h5--color: var(--color-foreground-heading);
1011        --font-h6--color: var(--color-foreground-heading);
1012
1013        /* Shadows */
1014        
1015          --shadow-drawer: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
1016        
1017        
1018          --shadow-blur: 20px;
1019          --shadow-popover: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
1020        
1021      }
1022  
1023    
1024    
1025    
1026    .color-scheme-5 {
1027        --color-background: rgb(51 51 51 / 1.0);
1028        /* RGB values only to apply different opacities - Relative color values are not supported in iOS < 16.4 */
1029        --color-background-rgb: 51 51 51;
1030        --opacity-5-15: 0.15;
1031        --opacity-10-25: 0.25;
1032        --opacity-35-55: 0.55;
1033        --opacity-40-60: 0.6;
1034        --opacity-30-60: 0.6;
1035        --color-foreground: rgb(255 255 255 / 1.0);
1036        --color-foreground-rgb: 255 255 255;
1037        --color-foreground-heading: rgb(255 255 255 / 1.0);
1038        --color-foreground-heading-rgb: 255 255 255;
1039        --color-primary: rgb(255 255 255 / 1.0);
1040        --color-primary-rgb: 255 255 255;
1041        --color-primary-hover: rgb(255 255 255 / 0.69);
1042        --color-primary-hover-rgb: 255 255 255;
1043        --color-border: rgb(255 255 255 / 0.69);
1044        --color-border-rgb: 255 255 255;
1045        --color-shadow: rgb(0 0 0 / 1.0);
1046        --color-shadow-rgb: 0 0 0;
1047        --color-primary-button-text: rgb(0 0 0 / 1.0);
1048        --color-primary-button-background: rgb(255 255 255 / 1.0);
1049        --color-primary-button-border: rgb(255 255 255 / 1.0);
1050        --color-primary-button-hover-text: rgb(255 255 255 / 1.0);
1051        --color-primary-button-hover-background: rgb(0 0 0 / 1.0);
1052        --color-primary-button-hover-border: rgb(0 0 0 / 1.0);
1053        --color-secondary-button-text: rgb(255 255 255 / 1.0);
1054        --color-secondary-button-background: rgb(0 0 0 / 0.0);
1055        --color-secondary-button-border: rgb(255 255 255 / 0.69);
1056        --color-secondary-button-hover-text: rgb(255 255 255 / 0.93);
1057        --color-secondary-button-hover-background: rgb(255 255 255 / 0.04);
1058        --color-secondary-button-hover-border: rgb(255 255 255 / 0.69);
1059        --color-input-background: rgb(51 51 51 / 1.0);
1060        --color-input-text: rgb(255 255 255 / 0.93);
1061        --color-input-text-rgb: 255 255 255;
1062        --color-input-border: rgb(255 255 255 / 0.69);
1063        --color-input-hover-background: rgb(255 255 255 / 0.04);
1064        --color-variant-background: rgb(255 255 255 / 1.0);
1065        --color-variant-border: rgb(230 230 230 / 1.0);
1066        --color-variant-text: rgb(0 0 0 / 1.0);
1067        --color-variant-text-rgb: 0 0 0;
1068        --color-variant-hover-background: rgb(245 245 245 / 1.0);
1069        --color-variant-hover-text: rgb(0 0 0 / 1.0);
1070        --color-variant-hover-border: rgb(230 230 230 / 1.0);
1071        --color-selected-variant-background: rgb(0 0 0 / 1.0);
1072        --color-selected-variant-border: rgb(0 0 0 / 1.0);
1073        --color-selected-variant-text: rgb(255 255 255 / 1.0);
1074        --color-selected-variant-hover-background: rgb(26 26 26 / 1.0);
1075        --color-selected-variant-hover-text: rgb(255 255 255 / 1.0);
1076        --color-selected-variant-hover-border: rgb(26 26 26 / 1.0);
1077
1078        --input-disabled-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10));
1079        --input-disabled-border-color: rgb(var(--color-foreground-rgb) / var(--opacity-5-15));
1080        --input-disabled-text-color: rgb(var(--color-foreground-rgb) / var(--opacity-50));
1081        --color-foreground-muted: rgb(var(--color-foreground-rgb) / var(--opacity-60));
1082        --font-h1--color: var(--color-foreground-heading);
1083        --font-h2--color: var(--color-foreground-heading);
1084        --font-h3--color: var(--color-foreground-heading);
1085        --font-h4--color: var(--color-foreground-heading);
1086        --font-h5--color: var(--color-foreground-heading);
1087        --font-h6--color: var(--color-foreground-heading);
1088
1089        /* Shadows */
1090        
1091          --shadow-drawer: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
1092        
1093        
1094          --shadow-blur: 20px;
1095          --shadow-popover: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
1096        
1097      }
1098  
1099    
1100    
1101    
1102    .color-scheme-6 {
1103        --color-background: rgb(0 0 0 / 0.0);
1104        /* RGB values only to apply different opacities - Relative color values are not supported in iOS < 16.4 */
1105        --color-background-rgb: 0 0 0;
1106        --opacity-5-15: 0.15;
1107        --opacity-10-25: 0.25;
1108        --opacity-35-55: 0.55;
1109        --opacity-40-60: 0.6;
1110        --opacity-30-60: 0.6;
1111        --color-foreground: rgb(255 255 255 / 1.0);
1112        --color-foreground-rgb: 255 255 255;
1113        --color-foreground-heading: rgb(255 255 255 / 1.0);
1114        --color-foreground-heading-rgb: 255 255 255;
1115        --color-primary: rgb(255 255 255 / 1.0);
1116        --color-primary-rgb: 255 255 255;
1117        --color-primary-hover: rgb(255 255 255 / 0.69);
1118        --color-primary-hover-rgb: 255 255 255;
1119        --color-border: rgb(230 230 230 / 1.0);
1120        --color-border-rgb: 230 230 230;
1121        --color-shadow: rgb(0 0 0 / 1.0);
1122        --color-shadow-rgb: 0 0 0;
1123        --color-primary-button-text: rgb(0 0 0 / 1.0);
1124        --color-primary-button-background: rgb(255 255 255 / 1.0);
1125        --color-primary-button-border: rgb(255 255 255 / 1.0);
1126        --color-primary-button-hover-text: rgb(255 255 255 / 1.0);
1127        --color-primary-button-hover-background: rgb(0 0 0 / 1.0);
1128        --color-primary-button-hover-border: rgb(0 0 0 / 1.0);
1129        --color-secondary-button-text: rgb(255 255 255 / 1.0);
1130        --color-secondary-button-background: rgb(0 0 0 / 0.0);
1131        --color-secondary-button-border: rgb(255 255 255 / 1.0);
1132        --color-secondary-button-hover-text: rgb(255 255 255 / 1.0);
1133        --color-secondary-button-hover-background: rgb(255 255 255 / 0.08);
1134        --color-secondary-button-hover-border: rgb(255 255 255 / 1.0);
1135        --color-input-background: rgb(255 255 255 / 1.0);
1136        --color-input-text: rgb(0 0 0 / 0.53);
1137        --color-input-text-rgb: 0 0 0;
1138        --color-input-border: rgb(0 0 0 / 0.13);
1139        --color-input-hover-background: rgb(250 250 250 / 1.0);
1140        --color-variant-background: rgb(255 255 255 / 1.0);
1141        --color-variant-border: rgb(230 230 230 / 1.0);
1142        --color-variant-text: rgb(0 0 0 / 1.0);
1143        --color-variant-text-rgb: 0 0 0;
1144        --color-variant-hover-background: rgb(245 245 245 / 1.0);
1145        --color-variant-hover-text: rgb(0 0 0 / 1.0);
1146        --color-variant-hover-border: rgb(230 230 230 / 1.0);
1147        --color-selected-variant-background: rgb(0 0 0 / 1.0);
1148        --color-selected-variant-border: rgb(0 0 0 / 1.0);
1149        --color-selected-variant-text: rgb(255 255 255 / 1.0);
1150        --color-selected-variant-hover-background: rgb(26 26 26 / 1.0);
1151        --color-selected-variant-hover-text: rgb(255 255 255 / 1.0);
1152        --color-selected-variant-hover-border: rgb(26 26 26 / 1.0);
1153
1154        --input-disabled-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10));
1155        --input-disabled-border-color: rgb(var(--color-foreground-rgb) / var(--opacity-5-15));
1156        --input-disabled-text-color: rgb(var(--color-foreground-rgb) / var(--opacity-50));
1157        --color-foreground-muted: rgb(var(--color-foreground-rgb) / var(--opacity-60));
1158        --font-h1--color: var(--color-foreground-heading);
1159        --font-h2--color: var(--color-foreground-heading);
1160        --font-h3--color: var(--color-foreground-heading);
1161        --font-h4--color: var(--color-foreground-heading);
1162        --font-h5--color: var(--color-foreground-heading);
1163        --font-h6--color: var(--color-foreground-heading);
1164
1165        /* Shadows */
1166        
1167          --shadow-drawer: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
1168        
1169        
1170          --shadow-blur: 20px;
1171          --shadow-popover: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
1172        
1173      }
1174  
1175    
1176    
1177    
1178    .color-scheme-58084d4c-a86e-4d0a-855e-a0966e5043f7 {
1179        --color-background: rgb(0 0 0 / 0.0);
1180        /* RGB values only to apply different opacities - Relative color values are not supported in iOS < 16.4 */
1181        --color-background-rgb: 0 0 0;
1182        --opacity-5-15: 0.15;
1183        --opacity-10-25: 0.25;
1184        --opacity-35-55: 0.55;
1185        --opacity-40-60: 0.6;
1186        --opacity-30-60: 0.6;
1187        --color-foreground: rgb(0 0 0 / 1.0);
1188        --color-foreground-rgb: 0 0 0;
1189        --color-foreground-heading: rgb(0 0 0 / 1.0);
1190        --color-foreground-heading-rgb: 0 0 0;
1191        --color-primary: rgb(0 0 0 / 1.0);
1192        --color-primary-rgb: 0 0 0;
1193        --color-primary-hover: rgb(0 0 0 / 0.53);
1194        --color-primary-hover-rgb: 0 0 0;
1195        --color-border: rgb(230 230 230 / 1.0);
1196        --color-border-rgb: 230 230 230;
1197        --color-shadow: rgb(0 0 0 / 1.0);
1198        --color-shadow-rgb: 0 0 0;
1199        --color-primary-button-text: rgb(255 255 255 / 1.0);
1200        --color-primary-button-background: rgb(0 0 0 / 1.0);
1201        --color-primary-button-border: rgb(0 0 0 / 1.0);
1202        --color-primary-button-hover-text: rgb(255 255 255 / 1.0);
1203        --color-primary-button-hover-background: rgb(51 51 51 / 1.0);
1204        --color-primary-button-hover-border: rgb(51 51 51 / 1.0);
1205        --color-secondary-button-text: rgb(0 0 0 / 1.0);
1206        --color-secondary-button-background: rgb(0 0 0 / 0.0);
1207        --color-secondary-button-border: rgb(0 0 0 / 1.0);
1208        --color-secondary-button-hover-text: rgb(51 51 51 / 1.0);
1209        --color-secondary-button-hover-background: rgb(250 250 250 / 1.0);
1210        --color-secondary-button-hover-border: rgb(51 51 51 / 1.0);
1211        --color-input-background: rgb(255 255 255 / 1.0);
1212        --color-input-text: rgb(0 0 0 / 0.53);
1213        --color-input-text-rgb: 0 0 0;
1214        --color-input-border: rgb(0 0 0 / 0.13);
1215        --color-input-hover-background: rgb(250 250 250 / 1.0);
1216        --color-variant-background: rgb(255 255 255 / 1.0);
1217        --color-variant-border: rgb(230 230 230 / 1.0);
1218        --color-variant-text: rgb(0 0 0 / 1.0);
1219        --color-variant-text-rgb: 0 0 0;
1220        --color-variant-hover-background: rgb(245 245 245 / 1.0);
1221        --color-variant-hover-text: rgb(0 0 0 / 1.0);
1222        --color-variant-hover-border: rgb(230 230 230 / 1.0);
1223        --color-selected-variant-background: rgb(0 0 0 / 1.0);
1224        --color-selected-variant-border: rgb(0 0 0 / 1.0);
1225        --color-selected-variant-text: rgb(255 255 255 / 1.0);
1226        --color-selected-variant-hover-background: rgb(26 26 26 / 1.0);
1227        --color-selected-variant-hover-text: rgb(255 255 255 / 1.0);
1228        --color-selected-variant-hover-border: rgb(26 26 26 / 1.0);
1229
1230        --input-disabled-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10));
1231        --input-disabled-border-color: rgb(var(--color-foreground-rgb) / var(--opacity-5-15));
1232        --input-disabled-text-color: rgb(var(--color-foreground-rgb) / var(--opacity-50));
1233        --color-foreground-muted: rgb(var(--color-foreground-rgb) / var(--opacity-60));
1234        --font-h1--color: var(--color-foreground-heading);
1235        --font-h2--color: var(--color-foreground-heading);
1236        --font-h3--color: var(--color-foreground-heading);
1237        --font-h4--color: var(--color-foreground-heading);
1238        --font-h5--color: var(--color-foreground-heading);
1239        --font-h6--color: var(--color-foreground-heading);
1240
1241        /* Shadows */
1242        
1243          --shadow-drawer: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
1244        
1245        
1246          --shadow-blur: 20px;
1247          --shadow-popover: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
1248        
1249      }
1250  
1251
1252  body, .color-scheme-1, .color-scheme-2, .color-scheme-3, .color-scheme-4, .color-scheme-5, .color-scheme-6, .color-scheme-58084d4c-a86e-4d0a-855e-a0966e5043f7 {
1253    color: var(--color-foreground);
1254    background-color: var(--color-background);
1255  }
1256</style>
1257<script async crossorigin fetchpriority="high" src="/cdn/shopifycloud/importmap-polyfill/es-modules-shim.2.4.0.js"></script>
vendor: 1 bytes, line 1257
1257
1258<script type="importmap">
1259  {
1260    "imports": {
1261      "@theme/overflow-list": "//www.bushnellgolf.com/cdn/shop/t/133/assets/overflow-list.js?v=103972619002749600251790611765",
1262      "@theme/product-title": "//www.bushnellgolf.com/cdn/shop/t/133/assets/product-title-truncation.js?v=171142440647363214041790611764",
1263      "@theme/component": "//www.bushnellgolf.com/cdn/shop/t/133/assets/component.js?v=2871837290084333401790611765",
1264      "@theme/dialog": "//www.bushnellgolf.com/cdn/shop/t/133/assets/dialog.js?v=98420710104516085021790611765",
1265      "@theme/events": "//www.bushnellgolf.com/cdn/shop/t/133/assets/events.js?v=81602296892335704251790611765",
1266      "@theme/focus": "//www.bushnellgolf.com/cdn/shop/t/133/assets/focus.js?v=78592351534870363931790611764",
1267      "@theme/morph": "//www.bushnellgolf.com/cdn/shop/t/133/assets/morph.js?v=28947075772200326741790611765",
1268      "@theme/paginated-list": "//www.bushnellgolf.com/cdn/shop/t/133/assets/paginated-list.js?v=128606916275786253511790611765",
1269      "@theme/performance": "//www.bushnellgolf.com/cdn/shop/t/133/assets/performance.js?v=76000260998028458051790611765",
1270      "@theme/product-form": "//www.bushnellgolf.com/cdn/shop/t/133/assets/product-form.js?v=65688817668972432781790611764",
1271      "@theme/recently-viewed-products": "//www.bushnellgolf.com/cdn/shop/t/133/assets/recently-viewed-products.js?v=39343464552543927101790611764",
1272      "@theme/scrolling": "//www.bushnellgolf.com/cdn/shop/t/133/assets/scrolling.js?v=56944800252707256061790611764",
1273      "@theme/section-renderer": "//www.bushnellgolf.com/cdn/shop/t/133/assets/section-renderer.js?v=157579674837333786411790611765",
1274      "@theme/section-hydration": "//www.bushnellgolf.com/cdn/shop/t/133/assets/section-hydration.js?v=725126219061066681790611765",
1275      "@theme/money-formatting": "//www.bushnellgolf.com/cdn/shop/t/133/assets/money-formatting.js?v=27089427827183356751790611765",
1276      "@theme/utilities": "//www.bushnellgolf.com/cdn/shop/t/133/assets/utilities.js?v=1621211302821184481790611765",
1277      "@theme/variant-picker": "//www.bushnellgolf.com/cdn/shop/t/133/assets/variant-picker.js?v=6469487693213381221790611765",
1278      "@theme/media-gallery": "//www.bushnellgolf.com/cdn/shop/t/133/assets/media-gallery.js?v=88799770645515588651790611765",
1279      "@theme/quick-add": "//www.bushnellgolf.com/cdn/shop/t/133/assets/quick-add.js?v=139210347678326180991790611764",
1280      "@theme/paginated-list-aspect-ratio": "//www.bushnellgolf.com/cdn/shop/t/133/assets/paginated-list-aspect-ratio.js?v=105612802989813080971790611765",
1281      "@theme/popover-polyfill": "//www.bushnellgolf.com/cdn/shop/t/133/assets/popover-polyfill.js?v=87956549048087295091790611765",
1282      "@theme/component-quantity-selector": "//www.bushnellgolf.com/cdn/shop/t/133/assets/component-quantity-selector.js?v=9159700773030885271790611765",
1283      "@theme/comparison-slider": "//www.bushnellgolf.com/cdn/shop/t/133/assets/comparison-slider.js?v=54290423415165392741790611765",
1284      "@theme/sticky-add-to-cart": "//www.bushnellgolf.com/cdn/shop/t/133/assets/sticky-add-to-cart.js?v=178695681353592012341790611765",
1285      "@theme/fly-to-cart": "//www.bushnellgolf.com/cdn/shop/t/133/assets/fly-to-cart.js?v=65654735866222019691790611764"
1286    }
1287  }
1288</script>
1288
1289
1290<script
1291  src="//www.bushnellgolf.com/cdn/shop/t/133/assets/view-transitions.js?v=29934355952596568961790611765"
1292  async
1293  
1294></script>
1294
1295
1296<link
1297  rel="modulepreload"
1298  href="//www.bushnellgolf.com/cdn/shop/t/133/assets/utilities.js?v=1621211302821184481790611765"
1299  fetchpriority="low"
1300>
1301<link
1302  rel="modulepreload"
1303  href="//www.bushnellgolf.com/cdn/shop/t/133/assets/component.js?v=2871837290084333401790611765"
1304  fetchpriority="low"
1305>
1306<link
1307  rel="modulepreload"
1308  href="//www.bushnellgolf.com/cdn/shop/t/133/assets/section-renderer.js?v=157579674837333786411790611765"
1309  fetchpriority="low"
1310>
1311<link
1312  rel="modulepreload"
1313  href="//www.bushnellgolf.com/cdn/shop/t/133/assets/section-hydration.js?v=725126219061066681790611765"
1314  fetchpriority="low"
1315>
1316<link
1317  rel="modulepreload"
1318  href="//www.bushnellgolf.com/cdn/shop/t/133/assets/morph.js?v=28947075772200326741790611765"
1319  fetchpriority="low"
1320>
1321
1322
1323
1324<link
1325  rel="modulepreload"
1326  href="//www.bushnellgolf.com/cdn/shop/t/133/assets/focus.js?v=78592351534870363931790611764"
1327  fetchpriority="low"
1328>
1329<link
1330  rel="modulepreload"
1331  href="//www.bushnellgolf.com/cdn/shop/t/133/assets/recently-viewed-products.js?v=39343464552543927101790611764"
1332  fetchpriority="low"
1333>
1334<link
1335  rel="modulepreload"
1336  href="//www.bushnellgolf.com/cdn/shop/t/133/assets/scrolling.js?v=56944800252707256061790611764"
1337  fetchpriority="low"
1338>
1339<link
1340  rel="modulepreload"
1341  href="//www.bushnellgolf.com/cdn/shop/t/133/assets/events.js?v=81602296892335704251790611765"
1342  fetchpriority="low"
1343>
1344<script
1345  src="//www.bushnellgolf.com/cdn/shop/t/133/assets/popover-polyfill.js?v=87956549048087295091790611765"
1346  type="module"
1347  fetchpriority="low"
1348></script>
vendor: 2 bytes, line 1348
1348
1349<script
1350  src="//www.bushnellgolf.com/cdn/shop/t/133/assets/overflow-list.js?v=103972619002749600251790611765"
1351  type="module"
1352  fetchpriority="low"
1353></script>
vendor: 2 bytes, line 1353
1353
1354<script
1355  src="//www.bushnellgolf.com/cdn/shop/t/133/assets/quick-add.js?v=139210347678326180991790611764"
1356  type="module"
1357  fetchpriority="low"
1358></script>
1358
1359
1360  
1360<script
1361    src="//www.bushnellgolf.com/cdn/shop/t/133/assets/cart-discount.js?v=138861295263764935711790611765"
1362    type="module"
1363    fetchpriority="low"
1364  ></script>
1364
1365
1366
1367<script
1368  src="//www.bushnellgolf.com/cdn/shop/t/133/assets/dialog.js?v=98420710104516085021790611765"
1369  type="module"
1370  fetchpriority="low"
1371></script>
vendor: 2 bytes, line 1371
1371
1372<script
1373  src="//www.bushnellgolf.com/cdn/shop/t/133/assets/variant-picker.js?v=6469487693213381221790611765"
1374  type="module"
1375  fetchpriority="low"
1376></script>
vendor: 2 bytes, line 1376
1376
1377<script
1378  src="//www.bushnellgolf.com/cdn/shop/t/133/assets/product-card.js?v=177636412167985402681790611764"
1379  type="module"
1380  fetchpriority="low"
1381></script>
vendor: 2 bytes, line 1381
1381
1382<script
1383  src="//www.bushnellgolf.com/cdn/shop/t/133/assets/product-form.js?v=65688817668972432781790611764"
1384  type="module"
1385  fetchpriority="low"
1386></script>
vendor: 2 bytes, line 1386
1386
1387<script
1388  src="//www.bushnellgolf.com/cdn/shop/t/133/assets/fly-to-cart.js?v=65654735866222019691790611764"
1389  type="module"
1390  fetchpriority="low"
1391></script>
vendor: 2 bytes, line 1391
1391
1392<script
1393  src="//www.bushnellgolf.com/cdn/shop/t/133/assets/accordion-custom.js?v=109161695428116401221790611766"
1394  type="module"
1395  fetchpriority="low"
1396></script>
vendor: 2 bytes, line 1396
1396
1397<script
1398  src="//www.bushnellgolf.com/cdn/shop/t/133/assets/media.js?v=125180963674196456411790611765"
1399  type="module"
1400  fetchpriority="low"
1401></script>
vendor: 2 bytes, line 1401
1401
1402<script
1403  src="//www.bushnellgolf.com/cdn/shop/t/133/assets/product-price.js?v=56949708730051287511790611764"
1404  type="module"
1405  fetchpriority="low"
1406></script>
vendor: 2 bytes, line 1406
1406
1407<script
1408  src="//www.bushnellgolf.com/cdn/shop/t/133/assets/product-sku.js?v=12707995544342967231790611764"
1409  type="module"
1410  fetchpriority="low"
1411></script>
vendor: 2 bytes, line 1411
1411
1412<script
1413  src="//www.bushnellgolf.com/cdn/shop/t/133/assets/product-title-truncation.js?v=171142440647363214041790611764"
1414  type="module"
1415  fetchpriority="low"
1416></script>
vendor: 2 bytes, line 1416
1416
1417<script
1418  src="//www.bushnellgolf.com/cdn/shop/t/133/assets/product-inventory.js?v=97482887429145606201790611764"
1419  type="module"
1420  fetchpriority="low"
1421></script>
vendor: 2 bytes, line 1421
1421
1422<script
1423  src="//www.bushnellgolf.com/cdn/shop/t/133/assets/show-more.js?v=70689597587884376891790611765"
1424  type="module"
1425  fetchpriority="low"
1426></script>
vendor: 2 bytes, line 1426
1426
1427<script
1428  src="//www.bushnellgolf.com/cdn/shop/t/133/assets/slideshow.js?v=135511145289867776151790611765"
1429  type="module"
1430  fetchpriority="low"
1431></script>
vendor: 2 bytes, line 1431
1431
1432<script
1433  src="//www.bushnellgolf.com/cdn/shop/t/133/assets/layered-slideshow.js?v=150049425201492448951790611765"
1434  type="module"
1435  fetchpriority="low"
1436></script>
vendor: 2 bytes, line 1436
1436
1437<script
1438  src="//www.bushnellgolf.com/cdn/shop/t/133/assets/anchored-popover.js?v=168929214168724352541790611766"
1439  type="module"
1440  fetchpriority="low"
1441></script>
vendor: 2 bytes, line 1441
1441
1442<script
1443  src="//www.bushnellgolf.com/cdn/shop/t/133/assets/floating-panel.js?v=134624273071112507821790611764"
1444  type="module"
1445  fetchpriority="low"
1446></script>
vendor: 2 bytes, line 1446
1446
1447<script
1448  src="//www.bushnellgolf.com/cdn/shop/t/133/assets/video-background.js?v=125155869468546408071790611765"
1449  type="module"
1450  fetchpriority="low"
1451></script>
vendor: 2 bytes, line 1451
1451
1452<script
1453  src="//www.bushnellgolf.com/cdn/shop/t/133/assets/component-quantity-selector.js?v=9159700773030885271790611765"
1454  type="module"
1455  fetchpriority="low"
1456></script>
vendor: 2 bytes, line 1456
1456
1457<script
1458  src="//www.bushnellgolf.com/cdn/shop/t/133/assets/media-gallery.js?v=88799770645515588651790611765"
1459  type="module"
1460  fetchpriority="low"
1461></script>
vendor: 2 bytes, line 1461
1461
1462<script
1463  src="//www.bushnellgolf.com/cdn/shop/t/133/assets/rte-formatter.js?v=50196128441411127351790611764"
1464  type="module"
1465  fetchpriority="low"
1466></script>
vendor: 2 bytes, line 1466
1466
1467<script
1468  src="//www.bushnellgolf.com/cdn/shop/t/133/assets/volume-pricing.js?v=130575904330974358741790611765"
1469  type="module"
1470  fetchpriority="low"
1471></script>
vendor: 2 bytes, line 1471
1471
1472<script
1473  src="//www.bushnellgolf.com/cdn/shop/t/133/assets/price-per-item.js?v=40571194438189935441790611764"
1474  type="module"
1475  fetchpriority="low"
1476></script>
vendor: 2 bytes, line 1476
1476
1477<script
1478  src="//www.bushnellgolf.com/cdn/shop/t/133/assets/volume-pricing-info.js?v=16866589937000989531790611765"
1479  type="module"
1480  fetchpriority="low"
1481></script>
1481
1482
1483
1484
1485
1486
1487<script
1488  src="//www.bushnellgolf.com/cdn/shop/t/133/assets/auto-close-details.js?v=46360069785536700841790611766"
1489  defer="defer"
1490></script>
1490
1491
1492<script>
1493  const Theme = {
1494    translations: {
1495      placeholder_image: `Placeholder image`,
1496      added: `Added`,
1497      recipient_form_fields_visible: `Recipient form fields are now visible`,
1498      recipient_form_fields_hidden: `Recipient form fields are now hidden`,
1499      recipient_form_error: `There was an error with the form submission`,
1500      items_added_to_cart_one: `1 item added to cart`,
1501      items_added_to_cart_other: `{{ count }} items added to cart`,
1502    },
1503    routes: {
1504      cart_add_url: '/cart/add.js',
1505      cart_change_url: '/cart/change',
1506      cart_update_url: '/cart/update',
1507      cart_url: '/cart',
1508      predictive_search_url: '/search/suggest',
1509      search_url: '/search',
1510    },
1511    template: {
1512      name: 'page.contact.bushnell',
1513    },
1514  };
1515</script>
1515
1516<link rel="preload" as="font" href="//www.bushnellgolf.com/cdn/shop/t/133/assets/acumin-pro.woff2?v=102240913865752762161790611765" type="font/woff2" crossorigin><link href="//www.bushnellgolf.com/cdn/shop/t/133/assets/bushnell.css?v=28925328111356423891790611765" rel="stylesheet" type="text/css" media="all" />
1517  <link href="//www.bushnellgolf.com/cdn/shop/t/133/assets/bushnell-buy-now-patch.css?v=85352361508442732821790611764" rel="stylesheet" type="text/css" media="all" />
1518  <link href="//www.bushnellgolf.com/cdn/shop/t/133/assets/bushnell-cro-patch.css?v=162323756666457044951790611765" rel="stylesheet" type="text/css" media="all" />
1519  <link href="//www.bushnellgolf.com/cdn/shop/t/133/assets/bushnell-fitcheck.css?v=97541241949286130371790611765" rel="stylesheet" type="text/css" media="all" />�<link rel="preload" as="font" href="//www.bushnellgolf.com/cdn/shop/t/133/assets/industry-medium.woff2?v=132185208873765463631790611765"  type="font/woff2" crossorigin fetchpriority="low">
1520<link rel="preload" as="font" href="//www.bushnellgolf.com/cdn/shop/t/133/assets/industry-bold.woff2?v=110081505489078479111790611765" type="font/woff2" crossorigin>
1521
1522<style>
1523  @font-face {
1524    font-family: 'Acumin Pro';
1525    src: url('//www.bushnellgolf.com/cdn/shop/t/133/assets/acumin-pro.woff2?v=102240913865752762161790611765') format('woff2');
1526    font-weight: 400;
1527    font-style: normal;
1528    font-display: swap;
1529  }
1530
1531  @font-face {
1532    font-family: 'Acumin Pro Medium';
1533    src: url('//www.bushnellgolf.com/cdn/shop/t/133/assets/acumin-pro-medium.woff2?v=90873278444693665241790611765') format('woff2');
1534    font-weight: 500;
1535    font-style: normal;
1536    font-display: swap;
1537  }
1538
1539  @font-face {
1540    font-family: 'Acumin Pro Bold';
1541    src: url('//www.bushnellgolf.com/cdn/shop/t/133/assets/acumin-pro-bold.woff2?v=16147239003615737331790611765') format('woff2');
1542    font-weight: 700;
1543    font-style: normal;
1544    font-display: swap;
1545  }
1546
1547  @font-face {
1548    font-family: 'Industry Light';
1549    src: url('//www.bushnellgolf.com/cdn/shop/t/133/assets/industry-light.woff2?v=45057905669618413361790611764') format('woff2');
1550    font-weight: 300;
1551    font-style: normal;
1552    font-display: swap;
1553  }
1554   @font-face {
1555    font-family: 'Industry';
1556    src: url('//www.bushnellgolf.com/cdn/shop/t/133/assets/industry-medium.woff2?v=132185208873765463631790611765') format('woff2');
1557    font-weight: 500;
1558    font-style: normal;
1559    font-display: swap;
1560  }
1561  @font-face {
1562    font-family: 'Industry Medium';
1563    src: url('//www.bushnellgolf.com/cdn/shop/t/133/assets/industry-medium.woff2?v=132185208873765463631790611765') format('woff2');
1564    font-weight: 500;
1565    font-style: normal;
1566    font-display: swap;
1567  }
1568
1569  @font-face {
1570    font-family: 'Industry Bold';
1571    src: url('//www.bushnellgolf.com/cdn/shop/t/133/assets/industry-bold.woff2?v=110081505489078479111790611765') format('woff2');
1572    font-weight: 700;
1573    font-style: normal;
1574    font-display: swap;
1575  }
1576
1577  @font-face {
1578    font-family: 'Industry';
1579    src: url('//www.bushnellgolf.com/cdn/shop/t/133/assets/industry-medium.woff2?v=132185208873765463631790611765') format('woff2');
1580    font-weight: 500;
1581    font-style: normal;
1582    font-display: swap;
1583  }
1584
1585  
1586
1587  :root {
1588    /* ── Per-heading Shopify theme CSS variables ── */
1589    --font-h1--family: 'Industry Bold', sans-serif;
1590    --font-h2--family: 'Industry Bold', sans-serif;
1591    --font-h3--family: 'Industry Bold', sans-serif;
1592    --font-h4--family: 'Industry Medium', sans-serif;
1593    --font-h5--family: 'Industry Medium', sans-serif;
1594    --font-h6--family: 'Industry Medium', sans-serif;
1595
1596    /* ── General heading/body Shopify variables ── */
1597    --font-heading--family:    'Industry Bold', sans-serif;
1598    --font-subheading--family: 'Industry Bold', sans-serif;
1599    --font-body--family:       'Acumin Pro', sans-serif;
1600    --font-paragraph--family:  'Acumin Pro', sans-serif;
1601    --font-accent--family:     'Acumin Pro', sans-serif;
1602
1603    /* ── Bushnell UI kit variables (bushnell.css) ── */
1604    --font-display: 'Industry Bold', sans-serif;
1605    --font-ui:      'Industry Bold', sans-serif;
1606    --font-body:    'Acumin Pro', sans-serif;
1607  }
1608
1609  /* ── Direct element overrides for full coverage ── */
1610  h1 { font-family: 'Industry Bold', sans-serif; }
1611  h2 { font-family: 'Industry Bold', sans-serif; }
1612  h3 { font-family: 'Industry Bold', sans-serif; }
1613  h4 { font-family: 'Industry Medium', sans-serif; }
1614  h5 { font-family: 'Industry Medium', sans-serif; }
1615  h6 { font-family: 'Industry Medium', sans-serif; }
1616  body, p { font-family: 'Acumin Pro', sans-serif; }
1617</style>
1618
1619  
1619<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
1619<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/94598496440/digital_wallets/dialog">
1620<meta id="in-context-paypal-metadata" data-shop-id="94598496440" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD">
1621<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
1621<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=4716069048"></script>
1621
1622<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
1623<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=4716069048&shop_id=94598496440" crossorigin="anonymous"></script>
vendor: 1 bytes, line 1623
1623
1624<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":94598496440,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/94598496440","merchantName":"Bushnell Golf","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","discover","elo","jcb"],"total":{"type":"pending","label":"Bushnell Golf","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 1624
1624
1625<script id="shopify-features" type="application/json">{"accessToken":"c0757fe088970775118d58865578e6d4","betas":["rich-media-storefront-analytics"],"domain":"www.bushnellgolf.com","predictiveSearch":true,"shopId":94598496440,"locale":"en"}</script>
vendor: 1 bytes, line 1625
1625
1626<script>var Shopify = Shopify || {};
1627Shopify.shop = "1zkvfh-xt.myshopify.com";
1628Shopify.locale = "en";
1629Shopify.currency = {"active":"USD","rate":"1.0"};
1630Shopify.country = "US";
1631Shopify.theme = {"name":"09-28-2026-foresight-plus-copy-update","id":191993970872,"schema_name":"Horizon","schema_version":"3.4.0","theme_store_id":null,"role":"main"};
1632Shopify.theme.handle = "null";
1633Shopify.theme.style = {"id":null,"handle":null};
1634Shopify.cdnHost = "www.bushnellgolf.com/cdn";
1635Shopify.routes = Shopify.routes || {};
1636Shopify.routes.root = "/";
1637Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js";
1638Shopify.SignInWithShop = Shopify.SignInWithShop || {};
1639Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {};
1640Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 1640
1640
1641<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 1641
1641
1642<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 1642
1642
1643<script>
1644  window.ShopifyPay = window.ShopifyPay || {};
1645  window.ShopifyPay.apiHost = "shop.app\/pay";
1646  window.ShopifyPay.redirectState = null;
1647</script>
vendor: 1 bytes, line 1647
1647
1648<script>
1649  window.Shopify = window.Shopify || {};
1650  window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {};
1651  window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 };
1652  window.Shopify.SignInWithShop.eligible = true;
1653</script>
vendor: 1 bytes, line 1653
1653
1654<script id="shop-js-analytics" type="application/json">{"pageType":"page"}</script>
vendor: 1 bytes, line 1654
1654
1655<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 1655
1655
1656<script type="module">
1657  await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js");
1658
1659  window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true});
1660
1661</script>
vendor: 1 bytes, line 1661
1661
1662<script>
1663  window.Shopify = window.Shopify || {};
1664  if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {};
1665  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"]};
1666</script>
vendor: 1 bytes, line 1666
1666
1667<script>(function() {
1668  var isLoaded = false;
1669  function asyncLoad() {
1670    if (isLoaded) return;
1671    isLoaded = true;
1672    var urls = ["\/\/cdn.shopify.com\/proxy\/97cd65ac45fbe7fdf6a885e2ab658a9e3163e2b1e786e17a38330ef45486114f\/cdn-scripts.signifyd.com\/shopify\/script-tag.js?shop=1zkvfh-xt.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA"];
1673    for (var i = 0; i < urls.length; i++) {
1674      var s = document.createElement('script');
1675      s.type = 'text/javascript';
1676      s.async = true;
1677      s.src = urls[i];
1678      var x = document.getElementsByTagName('script')[0];
1679      x.parentNode.insertBefore(s, x);
1680    }
1681  };
1682  if(window.attachEvent) {
1683    window.attachEvent('onload', asyncLoad);
1684  } else {
1685    window.addEventListener('load', asyncLoad, false);
1686  }
1687})();</script>
vendor: 1 bytes, line 1687
1687
1688<script id="__st">var __st={"a":94598496440,"offset":-25200,"reqid":"e00e36e2-321e-490d-b594-771422cf29e3-1790853879","pageurl":"www.bushnellgolf.com\/pages\/contact","s":"pages-162554970296","u":"31a8b96e1a29","p":"page","rtyp":"page","rid":162554970296};</script>
vendor: 1 bytes, line 1688
1688
1689<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 1689
1689
1690<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 1690
1690
1691<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//www.bushnellgolf.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 1691
1691
1692<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 = "//www.bushnellgolf.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>
1692<script crossorigin="anonymous" defer="defer" src="//www.bushnellgolf.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 1692
1692
1693<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 1693
1693
1694<script>
1695  window.Shopify = window.Shopify || {};
1696  window.Shopify.MCP = window.Shopify.MCP || {};
1697  window.Shopify.MCP.enabled = true;
1698  window.Shopify.MCP.shop = "1zkvfh-xt.myshopify.com";
1699  window.Shopify.MCP.mcpEndpoint = "https:\/\/www.bushnellgolf.com\/api\/mcp";
1700  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"]}}];
1701</script>
vendor: 1 bytes, line 1701
1701
1702<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("\/\/www.bushnellgolf.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})();
1703</script>
vendor: 1 bytes, line 1703
1703
1704<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://www.bushnellgolf.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}};
1705</script>
vendor: 1 bytes, line 1705
1705
1706<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
1707  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);
1708</script>
vendor: 1 bytes, line 1708
1708
1709<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})}}));
1710</script>
1710
1711<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://www.bushnellgolf.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous">
1712<style id="shopify-accelerated-checkout-cart">
1713        #shopify-buyer-consent {
1714  margin-top: 1em;
1715  display: inline-block;
1716  width: 100%;
1717}
1718
1719#shopify-buyer-consent.hidden {
1720  display: none;
1721}
1722
1723#shopify-subscription-policy-button {
1724  background: none;
1725  border: none;
1726  padding: 0;
1727  text-decoration: underline;
1728  font-size: inherit;
1729  cursor: pointer;
1730}
1731
1732#shopify-subscription-policy-button::before {
1733  box-shadow: none;
1734}
1735
1736      </style>
1737<link rel="stylesheet" media="screen" href="//www.bushnellgolf.com/cdn/shop/t/133/compiled_assets/styles.css?v=160800271737863426111790611776">
1738<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
1738
1739  
1740
1741
1742
1743
1744
1745  
1745<script type="text/javascript">
1746    
1747      window.__shgMoneyFormat = window.__shgMoneyFormat || {"USD":{"currency":"USD","currency_symbol":"$","currency_symbol_location":"left","decimal_places":2,"decimal_separator":".","thousands_separator":","}};
1748    
1749    window.__shgCurrentCurrencyCode = window.__shgCurrentCurrencyCode || {
1750      currency: "USD",
1751      currency_symbol: "$",
1752      decimal_separator: ".",
1753      thousands_separator: ",",
1754      decimal_places: 2,
1755      currency_symbol_location: "left"
1756    };
1757  </script>
1757
1758
1759
1760
1761
1762  
1763
1764<script type="text/javascript">
1765  
1766    window.SHG_CUSTOMER = null;
1767  
1768</script>
1768
1769
1770
1771
1772
1773
1774
1775
1776  <!-- Extend -- Load Extend SDK Configuration script -->
1777  <!-- Extend - Add necessary SDK script tags and configure the store -->
1778<script src='https://sdk.helloextend.com/extend-sdk-client/v1/extend-sdk-client.min.js' defer='defer'></script>
vendor: 2 bytes, line 1778
1778
1779<script src='https://sdk.helloextend.com/extend-sdk-client-shopify-addon/v1/extend-sdk-client-shopify-addon.min.js' defer='defer'></script>
1779
1780
1781<script>
1782    window.addEventListener('DOMContentLoaded', function () {
1783        // Set store ID
1784        const storeId = '1bb870ec-2d72-437e-94ce-7159cce5aeae';
1785        // Set environment (production, demo, or development)
1786        const env = 'production';
1787
1788        window.Extend.config({ storeId: storeId, environment: env });
1789
1790        // Only sets window variables if Extend and ExtendShopify is defined
1791        if (window.Extend && window.ExtendShopify) {
1792            // Contains window variables used in integration
1793            window.Extend.integration = {};
1794
1795            // Configurables - Start
1796            // Set currency required to display offers (USD or CAD)
1797            window.Extend.integration.currency = 'USD';
1798            // PDP Visible Offer
1799            window.Extend.integration.pdpOffer = true;
1800            // PDP Modal Offer
1801            window.Extend.integration.pdpModalOffer = false;
1802            // PDP Offer Properties
1803            window.Extend.integration.offerProperties = {};
1804            // Cart Offers
1805            window.Extend.integration.cartOffer = true;
1806            // Sidecart Offers
1807            window.Extend.integration.sidecartOffer = true;
1808            // Cart Balancing
1809            window.Extend.integration.cartBalancing = true;
1810            // Aftermarket Modal
1811            window.Extend.integration.aftermarketModal = true;
1812            // ATC Modal Offer
1813            window.Extend.integration.atcOffer = true;
1814            // Quickview visible offer
1815            window.Extend.integration.quickviewOffer = true;
1816            // Quickview modal offer
1817            window.Extend.integration.quickviewModalOffer = true;
1818			// Cart SP
1819			window.Extend.integration.cartSP = false;
1820            // Configurables - End
1821
1822            // Aftermarket Code
1823            if (Shopify && Shopify.currency && Shopify.currency.active === Extend.integration.currency && Extend.integration.aftermarketModal) {
1824                try {
1825                    // Get params from URL
1826                    const params = (new URL(document.location)).searchParams;
1827
1828                    // Check if leadToken or leadtoken is in the URL
1829                    let leadToken = params.get('leadToken')
1830                        ? params.get('leadToken')
1831                        : params.get('leadtoken');
1832
1833                    if (leadToken) {
1834                        Extend.aftermarketModal.open({
1835                            leadToken: leadToken,
1836                            onClose: function (plan, product, quantity) {
1837                                if (plan && product) {
1838                                    ExtendShopify.addPlanToCart({
1839                                        plan: plan,
1840                                        product: product,
1841                                        leadToken: leadToken,
1842                                        quantity: quantity || 1
1843                                    }, function () {
1844                                        location = '/cart'
1845                                    })
1846                                }
1847                            }
1848                        });
1849                    }
1850                } catch (error) {
1851                    console.error("EXTEND: " + error);
1852                }
1853            }
1854        }
1855    }, { once: true });
1856</script>
1856
1857
1858<!-- Optional -->
1859<!-- Extend - Render cart shipping protection -->
1860
1861<!-- Extend - Render checkout plus -->
1862
1863
1864<!-- Extend - Render product page -->
1865<script>
1866
1867    // Run scripts on DOMContentLoaded to avoid affecting site load time
1868    window.addEventListener('DOMContentLoaded', function () {
1869        // Checks if Extend lives in the window and the active currency is USD before showing Extend offers
1870        if (Extend && ExtendShopify && Shopify && Shopify.currency && Shopify.currency.active === Extend.integration.currency && meta.page.pageType == 'product') {
1871
1872            /************************/
1873            /* Initial Variables    */
1874            /************************/
1875            const productForm = document.querySelector('form[action="/cart/add"]'); // Change this to the product form element
1876            const addToCartButton = productForm.querySelector('.bpdp-atc-btn'); // Change this to the Add-To-Cart element
1877            const dispatchSideCart = true; // Set to true if a sidecart opens after adding to cart via pdp
1878            const productCategory = (meta && meta.product) ? meta.product.type : null; // Grabs product category from meta object, works on most themes
1879
1880            // Handles creating and prepending Extend offer div
1881            const extendOffer = document.createElement('div');
1882            if (!Extend.integration.pdpOffer) extendOffer.style.display = 'none';
1883            extendOffer.className = 'extend-offer';
1884            addToCartButton.before(extendOffer);
1885
1886            /************************/
1887            /* initProductOffer     */
1888            /************************/
1889            // Initializes product offers and handles ATC button functionality for the main PDP ATC
1890            async function initProductOffer() {
1891                try {
1892
1893                    // Fail safes
1894                    if (!productForm || !addToCartButton || !extendOffer) {
1895                        throw new Error("Exiting - missing productForm, addToCartButton, or extendOffer")
1896                    }
1897
1898                    // Disables ATC if product is Extend
1899                    if (meta && meta.product && meta.product.vendor === 'Extend') addToCartButton.disabled = true;
1900
1901                    // Grabs the variantId from the productForm and renders the initial offers for it
1902                    let variantId = productForm.id.value;
1903
1904                    // Grabs the product price from the metadata, works on most themes
1905                    let productPrice = (meta && meta.product && meta.product.variants) ? parseInt(meta.product.variants.filter(variant => variant.id.toString() === variantId.toString())[0].price) : null;
1906
1907                    // Saves the offer properties to an easily accessible window object that is initialized in the config
1908                    Extend.integration.offerProperties = {variant: variantId, category: productCategory, price: productPrice}
1909
1910                    // Fetches bundle components, empty array if non-bundle
1911                    const { components } = await ExtendShopify.getBundleComponents({ 
1912                        variantId: `gid://shopify/ProductVariant/${variantId}` 
1913                    }) || {};
1914
1915                    // Renders bundle offer or regular offer as needed
1916                    Extend.buttons.render(extendOffer, components?.length > 0
1917                        ? { referenceId: variantId, products: components }
1918                        : { referenceId: variantId, price: productPrice, category: productCategory }
1919                    );
1920                    
1921                    // Listens for changes to the productForm and sets the activeProduct for extend via variantID
1922                    productForm.addEventListener('change', async function () {
1923                        variantId = productForm.id.value;
1924                        productPrice = meta?.product?.variants?.find(v => v.id.toString() === variantId.toString())?.price ? parseInt(meta.product.variants.find(v => v.id.toString() === variantId.toString()).price) : null;
1925                        const { components } = await ExtendShopify.getBundleComponents({ 
1926                            variantId: `gid://shopify/ProductVariant/${variantId}` 
1927                        }) || {};
1928                        if (!variantId) return;
1929                        Extend.setActiveProduct(extendOffer, components?.length > 0
1930                            ? { referenceId: variantId, products: components }
1931                            : { referenceId: variantId, price: productPrice, category: productCategory }
1932                        );
1933                    });
1934
1935                    document.querySelector('button.header-actions__action').addEventListener('click', function () { 
1936                        console.log("Extend: click listener"); 
1937                        setTimeout(function () { window.dispatchEvent(new Event('resize')) }, 500)
1938                    })
1939
1940
1941                    // Immediate loading feedback on the ATC button (uses the PDP's own
1942                    // .bpdp-atc-btn.is-loading spinner styles) so there's instant feedback
1943                    // on click for BOTH flows: plan selected (Extend takes a moment to add
1944                    // the plan) and no plan (Extend opens its upsell popup).
1945                    function setAtcLoading(on) {
1946                        if (!addToCartButton) return;
1947                        if (on) {
1948                            try {
1949                                var c = getComputedStyle(addToCartButton).color;
1950                                if (!c || c === 'transparent' || c.indexOf('rgba(0, 0, 0, 0)') !== -1) c = '#1c1c1c';
1951                                addToCartButton.style.setProperty('--bpdp-spin', c);
1952                            } catch (e) {}
1953                            addToCartButton.classList.add('is-loading');
1954                        } else {
1955                            addToCartButton.classList.remove('is-loading');
1956                            addToCartButton.style.removeProperty('--bpdp-spin');
1957                        }
1958                    }
1959
1960                    // click simulation handling add to cart
1961                    function handleAddToCart(e) {
1962                        e.preventDefault();
1963                        e.stopImmediatePropagation();
1964
1965                        // Instant feedback for both flows.
1966                        setAtcLoading(true);
1967                        clearTimeout(window.__bnAtcLoaderT);
1968                        window.__bnAtcLoaderT = setTimeout(function () { setAtcLoading(false); }, 12000);
1969
1970                        const quantityEl = productForm.querySelector('[name="quantity"]');
1971                        const quantity = quantityEl && quantityEl.value ? quantityEl.value : 1;
1972
1973                        ExtendShopify.handleAddToCart(extendOffer, {
1974                            quantity: quantity,
1975                            modal: Extend.integration.pdpModalOffer,
1976                            done: function () {
1977                                // keep the loader on through the actual add-to-cart
1978                                setAtcLoading(true);
1979                                // remove default click listener
1980                                addToCartButton.removeEventListener('click', handleAddToCart, true);
1981                                // click atc button
1982                                addToCartButton.click();
1983                                // add default click listener back
1984                                addToCartButton.addEventListener('click', handleAddToCart, true);
1985                                // If variable set to true, dispatches Extend side cart integration to run after adding to cart via pdp
1986                                if (dispatchSideCart) window.setTimeout(function () { window.dispatchEvent(new Event('refreshAjaxSideCart')) }, 1000)
1987                            }
1988                        });
1989                    }
1990                    // run handleCaddtoCart when we click ATC, capturing event
1991                    addToCartButton.addEventListener('click', handleAddToCart, true);
1992
1993                    // The sticky bar's Add-to-Cart submits the form directly, so it bypasses
1994                    // the Extend flow (no protection popup). Route its click through the main
1995                    // ATC so Extend runs (popup / plan add) for the sticky button too.
1996                    const stickyAtc = document.querySelector('.bpdp-sticky__atc');
1997                    if (stickyAtc) {
1998                        stickyAtc.addEventListener('click', function (e) {
1999                            e.preventDefault();
2000                            e.stopImmediatePropagation();
2001                            // mirror the loading spinner on the sticky button for feedback
2002                            try { stickyAtc.style.setProperty('--bpdp-spin', getComputedStyle(stickyAtc).color); } catch (err) {}
2003                            stickyAtc.classList.add('is-loading');
2004                            clearTimeout(window.__bnStickyAtcT);
2005                            window.__bnStickyAtcT = setTimeout(function () { stickyAtc.classList.remove('is-loading'); }, 12000);
2006                            // trigger the main ATC's Extend handler (shows popup / adds plan)
2007                            addToCartButton.click();
2008                        }, true);
2009                        // clear the sticky spinner once the cart updates
2010                        document.addEventListener('cart:update', function () { stickyAtc.classList.remove('is-loading'); });
2011                    }
2012                } catch (error) {
2013                    console.error("EXTEND:", error)
2014                }
2015            }
2016            // Initial product offer render
2017            if (!Extend.buttons.instance(extendOffer)) {
2018                initProductOffer();
2019            }
2020        }
2021    }, { once: true });
2022</script>
2022
2023
2024<style>
2025    .extend-offer {
2026        margin: 0 !important;
2027    }
2028</style>
2029<!-- Extend - Render cart -->
2030<script>
2031
2032    // run scripts on DOMContentLoaded to avoid affecting site load time
2033    window.addEventListener('DOMContentLoaded', function () {
2034
2035        // Only run ajax integration if Extend and ExtendShopify is defined, and the currency is set to USD
2036        if (!Extend || !ExtendShopify || !Shopify || !Shopify.currency || Shopify.currency.active !== Extend.integration.currency) {
2037            return;
2038        }
2039
2040        // Checks url if page is main cart
2041        const isMainCart = location.pathname.includes('/cart');
2042
2043		if (!isMainCart && !window.Extend.integration.sidecartOffer) return;
2044 		
2045        // store value to know if script initialized already
2046        let init = false;
2047
2048        /*****************************************/
2049        /* Global Variables - THEME SPECIFIC     */
2050        /*****************************************/
2051        let cartRowItem, cartRowItemTitle, cartRowItemImage, cartRowItemQuantity, warrantyContainer, warrantyOriginalMeta, metadataContainer;
2052        if (isMainCart) {
2053            // Main cart variables
2054            cartRowItem = '.bgc-item-row'; // This is the container element for each item in the cart
2055            cartRowItemImage = '.bgc-item-img a'; // This is the product image or image anchor element
2056            cartRowItemTitle = '.bgc-item-name'; // This is the title anchor element for the product
2057            cartRowItemQuantity = '.bgc-qty span'; // This is the input element containing the product quantity
2058            warrantyOriginalMeta = '.bgc-item-variant'; // Each warranty metadata item we want to remove.
2059            warrantyContainer = '.bgc-item-name'; // This is the container where the offer will be appended
2060            metadataContainer = '.bgc-item-name'; // This is where warranty metadata will be appended (Product and Term)
2061        } else {
2062            // Side cart variables
2063            cartRowItem = '.cart-items__table-row--full-width-variants'; // This is the container element for each item in the cart
2064            cartRowItemImage = '.cart-items__media-container'; // This is the product image or image anchor element
2065            cartRowItemTitle = '.cart-items__title'; // This is the title anchor element for the product
2066            cartRowItemQuantity = 'input'; // This is the input element containing the product quantity
2067            warrantyOriginalMeta = '.cart-items__variants-wrapper'; // Each warranty metadata item we want to remove.
2068            warrantyContainer = '.cart-items__product-info'; // This is the container where the offer will be appended
2069            metadataContainer = '.cart-items__product-info'; // This is where warranty metadata will be appended (Product and Term)
2070        }
2071
2072        // Add quantity wrapper selector to disable use of quantity selector on Extend items, ignored if empty string
2073        const quantityWrapper = isMainCart ? '.bgc-qty' : '.quantity-selector';
2074
2075        const offerClass = !isMainCart ? 'extend-side-cart-offer' : 'extend-cart-offer'; // This is the class that will be assigned to each Extend offer
2076        const cartEvent = !isMainCart ? 'refreshAjaxSideCart' : 'refreshAjaxCart';
2077        const regEx = /\d+$/;
2078        let localCart = {"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}; // Shopify Cart Object on initial load
2079
2080        // Fail safe for cart
2081        if (!localCart) {
2082            console.error("EXTEND: Exiting - localCart unavailable")
2083            return false;
2084        }
2085
2086        /**************************************/
2087        /* refreshCart - THEME SPECIFIC       */
2088        /**************************************/
2089        // Refresh the cart (hard refresh by default)
2090        async function refreshCart(cart) {
2091            if (isMainCart) {
2092                // Main cart specific refresh
2093                location.reload();
2094            } else {
2095                // Sidecart specific refresh
2096                const res = await fetch('/cart.js');
2097                localCart = await res.json();
2098
2099                const cartItemsEl = document.querySelector('cart-items-component[data-drawer]');
2100                if (!cartItemsEl) return;
2101                const sectionId = cartItemsEl.dataset.sectionId;
2102                const sectionsRes = await fetch(`${window.location.pathname}?sections=${sectionId}`);
2103                const sections = await sectionsRes.json();
2104                document.dispatchEvent(new CustomEvent('cart:update', {
2105                    bubbles: true,
2106                    detail: { data: { sections } }
2107                }));
2108                await new Promise(resolve => setTimeout(resolve, 300));
2109
2110                handleStyling();
2111                //location.reload();
2112            }
2113        }
2114
2115        /* Full-screen loader shown while a protection plan is being added to the cart. */
2116        function showExtendLoader() {
2117            if (document.getElementById('bn-extend-loader')) return;
2118            const o = document.createElement('div');
2119            o.id = 'bn-extend-loader';
2120            o.setAttribute('style', 'position:fixed;inset:0;z-index:2147483647;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,0.45);');
2121            o.innerHTML = '<div style="width:46px;height:46px;border:4px solid rgba(255,255,255,0.35);border-top-color:#fff;border-radius:50%;animation:bn-extend-spin 0.7s linear infinite;"></div>';
2122            document.body.appendChild(o);
2123        }
2124        function hideExtendLoader() {
2125            const o = document.getElementById('bn-extend-loader');
2126            if (o) o.remove();
2127        }
2128        /* Reopen the cart drawer (used after a plan is added, since we close it when the modal opens). */
2129        function openCartDrawer() {
2130            const drawer = document.querySelector('cart-drawer-component');
2131            if (!drawer) return;
2132            try { if (typeof drawer.open === 'function') { drawer.open(); return; } } catch (e) {}
2133            const trigger = document.querySelector('[data-testid="cart-drawer-trigger"]') ||
2134                document.querySelector('.header-actions__cart-icon, a[href$="/cart"]');
2135            if (trigger) trigger.click();
2136        }
2137        /* Called from onAddToCart: show loader, then after the cart refreshes, reopen the drawer. */
2138        function afterPlanAdded() {
2139            Promise.resolve(refreshCart()).then(function () {
2140                hideExtendLoader();
2141                if (!isMainCart) setTimeout(openCartDrawer, 150);
2142            }).catch(function () { hideExtendLoader(); });
2143        }
2144
2145        function renderCartOffer(el, variantId, quantity, index) {
2146            // Grabs the product category and price from the current item metadata
2147             let productCategory = localCart.items[index].product_type;
2148             let productPrice = localCart.items[index].price;
2149
2150
2151            if (ExtendShopify.warrantyAlreadyInCart(parseInt(variantId), localCart.items) || ExtendShopify.warrantyAlreadyInCart(variantId.toString(), localCart.items)) {
2152                return;
2153            } else {
2154
2155                // Return if this is a cart snippet and cart offers are disabled
2156                if (isMainCart && !Extend.integration.cartOffer) return;
2157                // Return if this is a sidecart snippet and sidecart offers are disabled
2158                if (!isMainCart && !Extend.integration.sidecartOffer) return;
2159
2160                // Bundle logic
2161                
2162
2163                // Gather bundle components
2164                //const bundleComponents = await getBundleComponents(variantId)
2165                let isBundle = false;
2166                //if (bundleComponents && bundleComponents.components && bundleComponents.components.length > 0) isBundle = true;
2167                // Renders Extend offer
2168                if (!isBundle) {
2169                    // Render all other buttons
2170                    Extend.buttons.renderSimpleOffer(el, {
2171                        referenceId: variantId,
2172                        price: productPrice,
2173                        category: productCategory,
2174                        onAddToCart: function (options) {
2175                            if (!isMainCart) showExtendLoader();
2176                            ExtendShopify.addPlanToCart({
2177                                plan: options.plan,
2178                                product: options.product,
2179                                quantity: quantity
2180                            }, function (err) {
2181                                // An error occurred
2182                                if (err) {
2183                                    hideExtendLoader();
2184                                    throw new Error({ "Exiting - Error in onAddToCart": error });
2185                                } else {
2186                                    afterPlanAdded();
2187                                }
2188                            });
2189                        }
2190                    });
2191                } else {
2192                    // Render all button offer button
2193                    Extend.buttons.renderSimpleOffer(el, {
2194                        referenceId: variantId,
2195                        products: bundleComponents.components,
2196                        onAddToCart: function (options) {
2197                            if (!isMainCart) showExtendLoader();
2198                            ExtendShopify.addPlanToCart({
2199                                plan: options.plan,
2200                                product: options.product,
2201                                products: options.products,
2202                                quantity: quantity
2203                            }, function (err) {
2204                                // An error occurred
2205                                if (err) {
2206                                    hideExtendLoader();
2207                                    throw new Error({ "Exiting - Error in onAddToCart": error });
2208                                } else {
2209                                    afterPlanAdded();
2210                                }
2211                            });
2212                        }
2213                    });
2214                }
2215            }
2216        }
2217
2218        /***********************/
2219        /* createElement       */
2220        /***********************/
2221        // createElement(product) - Takes in the product element, and creates the Extend offer element + appends the offer
2222        function createElement(product, index) {
2223            // Grab URL from title anchor href
2224            let url = product.querySelector(cartRowItemTitle).href;
2225
2226            // Grabs variant ID from URL if available, otherwise from localCart
2227            let variantId = (url && url.match(regEx)) ? url.match(regEx)[0] : localCart.items[index].id;
2228
2229            // Select quantity value
2230            let quantityEl = product.querySelector(cartRowItemQuantity);
2231            let quantity = quantityEl ? parseInt(quantityEl.value ?? quantityEl.innerText) : 1;
2232
2233            if (!variantId || quantity.length > 0) {
2234                throw new Error("Exiting - Error with variantId {0} or quantity {1}", variantId, quantity);
2235            }
2236
2237            // Removes existing offer elements before creating new ones
2238            let extendOffer = product.querySelector('.' + offerClass);
2239            if (extendOffer) {
2240                if (extendOffer.dataset.extendVariant !== variantId || extendOffer.dataset.extendQuantity !== quantity) {
2241                    extendOffer.remove();
2242                } else {
2243                    return;
2244                }
2245            }
2246
2247            // Parent container to append ajax offer
2248            let container = product.querySelector(warrantyContainer);
2249
2250            // Fail safes
2251            if (!variantId || !quantity || !container) {
2252                throw new Error("Exiting - variant, quantity or container unavailable");
2253            }
2254
2255            // Create new element & set class, data-extend-variant, and data-extend-quantity attributes
2256            let newExtendOffer = document.createElement('div');
2257            newExtendOffer.className = offerClass;
2258            newExtendOffer.setAttribute('data-extend-variant', variantId);
2259            newExtendOffer.setAttribute('data-extend-quantity', quantity);
2260
2261            // Append the offer to the container element (THEME SPECIFIC)
2262            container.append(newExtendOffer);
2263
2264            renderCartOffer(newExtendOffer, variantId, quantity, index);
2265
2266            // The Extend widget renders asynchronously (after the drawer grid has already
2267            // laid out), so the item row can stay too short and clip the offer until the
2268            // user interacts. Watch the offer for its render/size change and nudge the row
2269            // to reflow + repaint so it shows correctly straight away.
2270            if ('ResizeObserver' in window) {
2271                let ro = new ResizeObserver(function () {
2272                    let row = newExtendOffer.closest(cartRowItem) || newExtendOffer.closest('.cart-items__table-row');
2273                    if (!row) return;
2274                    void row.offsetHeight;                  // force reflow (grow the grid row)
2275                    row.style.transform = 'translateZ(0)';  // force a repaint of the clipped row
2276                    requestAnimationFrame(function () { row.style.transform = ''; });
2277                });
2278                ro.observe(newExtendOffer);
2279                // Stop observing once the widget has settled to avoid ongoing overhead.
2280                setTimeout(function () { ro.disconnect(); }, 6000);
2281            }
2282        }
2283
2284        /************************/
2285        /* Handle Styling       */
2286        /************************/
2287        // Finds all cartRowItems and styles only Extend warranties
2288        function handleStyling() {
2289
2290            document.querySelectorAll(cartRowItem).forEach(function (el, index) {
2291                try {
2292                    // Grab the title of the current item
2293                    let title = el.querySelector(cartRowItemTitle);
2294
2295                    // Title fail safe
2296                    if (!title) {
2297                        throw new Error("Exiting - title unavailable");
2298                    }
2299
2300                    // If it's a warranty set isExtend to true and remove links
2301                    if (title.innerText.toLowerCase().indexOf('extend protection') > -1) { // Grab the image of the current item and fail safe
2302                        // Select and remove pointerEvents from warranty title
2303                        title.style.pointerEvents = 'none';
2304
2305                        let image = el.querySelector(cartRowItemImage);
2306
2307                        if (!image) {
2308                            throw new Error("Exiting - image unavailable");
2309                        }
2310
2311                        // Select and remove pointerEvents from warranty image
2312                        image.style.pointerEvents = 'none';
2313
2314                        /**************************************/
2315                        /* THEME SPECIFIC STYLING START       */
2316                        /**************************************/
2317                        // Removes old metadata
2318                        if (el.querySelector(warrantyOriginalMeta)) {
2319                            el.querySelectorAll(warrantyOriginalMeta).forEach(function (each) {
2320                                each.remove();
2321                            })
2322                        }
2323
2324                        if (quantityWrapper && quantityWrapper != '' && el.querySelector(quantityWrapper)) {
2325                            el.querySelectorAll(quantityWrapper).forEach((each) => {
2326                                each.style.opacity = '75%';
2327                                each.style.pointerEvents = 'none';
2328                            })
2329                        }
2330
2331                        // Selects where to append warranty metadata
2332                        let contentContainer = el.querySelector(metadataContainer)
2333                        let warrantyProductData;
2334                        let warrantyTermData;
2335
2336                        if (!localCart.items[index]) return;
2337
2338                        if (localCart.items[index].options_with_values && localCart.items[index].options_with_values[1]) { // Finds the ref id string in the product info string and replaces with an empty string
2339                            let regexReplace = localCart.items[index].options_with_values[0].value.match(/\-\d{5,}/g);
2340                            warrantyProductData = localCart.items[index].options_with_values[0].value.replace(regexReplace, '');
2341                            warrantyTermData = localCart.items[index].options_with_values[1].value;
2342                        } else {
2343                            warrantyProductData = localCart.items[index].properties.Product;
2344                            warrantyTermData = localCart.items[index].properties.Term;
2345                        }
2346
2347                        // For category offers, fetch title by filtering through cart for warranted product refId
2348                        if (warrantyProductData === "Covered Product") {
2349                            const coveredProdId = localCart.items[index].properties['_Extend.ProductId'];
2350                            const coveredProdTitle = localCart.items.filter((item) => item.id.toString() == coveredProdId)[0].title;
2351                            warrantyProductData = coveredProdTitle;
2352                        }
2353
2354                        // Appends Product and Term metadata
2355                        if (el.querySelector(metadataContainer)) {
2356                            let warrantyProductName = document.createElement('p');
2357                            warrantyProductName.className = 'extend-warranty-info extend-warranty-info-product';
2358                            warrantyProductName.innerHTML = '<b>Product: </b>' + warrantyProductData;
2359                            warrantyProductName.setAttribute('data-cy', 'warranty-description-product');
2360                            let warrantyProductTerm = document.createElement('p')
2361                            warrantyProductTerm.className = 'extend-warranty-info extend-warranty-info-term';
2362                            warrantyProductTerm.innerHTML = '<b>Term: </b>' + warrantyTermData;
2363                            warrantyProductTerm.setAttribute('data-cy', 'warranty-description-term');
2364
2365                            // Only append the metadata if it's not already there
2366                            if (!el.querySelector('.extend-warranty-info')) {
2367                                contentContainer.append(warrantyProductName, warrantyProductTerm)
2368                            }
2369                        }
2370
2371                        /**************************************/
2372                        /* THEME SPECIFIC STYLING END         */
2373                        /**************************************/
2374
2375                    } else { // Create an offer element for each product
2376                        createElement(el, index);
2377                    }
2378                } catch (error) {
2379                    console.error("EXTEND:", error);
2380                }
2381            });
2382        }
2383
2384        function initEventListeners() {
2385            if (init) return;
2386
2387            function refreshCartOffer() {
2388                fetch('/cart.js', {
2389                    credentials: 'same-origin',
2390                    method: 'GET',
2391                    headers: {
2392                        'Content-Type': 'application/json',
2393                        'X-Requested-With': 'XMLHttpRequest'
2394                    }
2395                })
2396                    .then((e) => e.json())
2397                    .then((e) => {
2398                        localCart = e;
2399                        initializeCartOffer();
2400                    })
2401                    .catch((error) => {
2402                        console.error("EXTEND:", error)
2403                    });
2404            }
2405
2406            // https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Multiple_identical_event_listeners
2407            window.addEventListener(cartEvent, refreshCartOffer);
2408
2409            // Listen for SP dispatching refresh
2410            window.addEventListener('refreshSP', refreshCart);
2411
2412        }
2413
2414        /************************/
2415        /* initializeCartOffer  */
2416        /************************/
2417        // Invokes handleStyling and finds all offers in the cart, handling both normalization and balancing
2418        function initializeCartOffer() {
2419
2420            // ** Checkout Plus Init - Uncomment if using Checkout Plus **
2421            // let cartSpLocation;
2422            // cartSpLocation = isMainCart ? 'main' : 'side';
2423            // window.Extend.integration.SPHelper.RenderOrUpdate(localCart, cartSpLocation);
2424            // window.Extend.integration.SPHelper.addOrUpdateCheckoutPlusOffer(localCart);
2425
2426            // Runs this normalization from extend-shipping.liquid if using cart SP
2427            if (Extend.integration.cartSP && Extend.integration.normalizeCartSP) {
2428                Extend.integration.normalizeCartSP()
2429            }
2430
2431            // Handles styling and creates offer elements
2432            handleStyling();
2433
2434            initEventListeners();
2435
2436            init = true;
2437
2438            // Use standard normalization if SP is not present in cart
2439            if (!window.Extend.integration.cartSP) {
2440                // Normalization ensures there is a 1:1 relationship between the product and the warranty
2441                ExtendShopify.normalizeCart({
2442                    cart: localCart,
2443                    balance: Extend.integration.cartBalancing
2444                }, function (err, data) {
2445                    try {
2446                        // An error occurred
2447                        if (err) {
2448                            throw new Error({ "Exiting - Error in normalizeCart": error });
2449                        } else if (data && data.updates) { // Calls refreshCart to update the cart for normalization
2450                            refreshCart();
2451                        }
2452                    } catch (error) {
2453                        console.error("EXTEND:", error)
2454                    }
2455                });
2456            }
2457        }
2458
2459        try {
2460            // initializeCartOffer when script is initially rendered
2461            initializeCartOffer();
2462
2463            // The side-cart offer is often rendered while the drawer is still hidden
2464            // (display:none / off-screen), so Extend measures it at ~0 height and it
2465            // stays collapsed until the user interacts. When the drawer opens, nudge the
2466            // widgets to recompute and, if any are still collapsed, re-render them while
2467            // the drawer is visible so they show at full height immediately.
2468            if (!isMainCart) {
2469                function fixCollapsedSideCartOffers() {
2470                    window.dispatchEvent(new Event('resize'));
2471                    setTimeout(function () {
2472                        let collapsed = false;
2473                        document.querySelectorAll('.' + offerClass).forEach(function (el) {
2474                            if (el.offsetHeight > 0 && el.offsetHeight < 30) collapsed = true;
2475                        });
2476                        if (collapsed) {
2477                            document.querySelectorAll('.' + offerClass).forEach(function (el) { el.remove(); });
2478                            handleStyling();
2479                        }
2480                    }, 150);
2481                }
2482
2483                const drawerEl = document.querySelector('cart-drawer-component');
2484                if (drawerEl) {
2485                    // Fires when the drawer <dialog> opens.
2486                    drawerEl.addEventListener('dialog:open', fixCollapsedSideCartOffers);
2487                    // Fallback: watch the dialog's `open` attribute directly.
2488                    const dlg = drawerEl.querySelector('dialog, .cart-drawer__dialog');
2489                    if (dlg && 'MutationObserver' in window) {
2490                        new MutationObserver(function () {
2491                            if (dlg.open || dlg.hasAttribute('open')) fixCollapsedSideCartOffers();
2492                        }).observe(dlg, { attributes: true, attributeFilter: ['open'] });
2493                    }
2494                }
2495            }
2496
2497            // When the shopper clicks the Extend offer in the drawer, Extend opens its
2498            // protection modal over the page. Close the cart drawer so the modal isn't
2499            // hidden behind it.
2500            function closeCartDrawer() {
2501                const drawer = document.querySelector('cart-drawer-component');
2502                if (!drawer) return;
2503                try {
2504                    if (typeof drawer.close === 'function') { drawer.close(); return; }
2505                } catch (e) {}
2506                const closeBtn = drawer.querySelector('.cart-drawer__close-button, [ref="closeButton"], [aria-label*="close" i]');
2507                if (closeBtn) closeBtn.click();
2508            }
2509            if (!isMainCart) {
2510                // The offer button is often a cross-origin iframe, so a click on it does
2511                // not bubble to the page. Instead, watch for Extend's protection modal
2512                // (added to <body>, or a pre-existing hidden modal being shown) and close
2513                // the drawer when it becomes visible.
2514                const isModalVisible = function (el) {
2515                    if (!el) return false;
2516                    const r = el.getBoundingClientRect();
2517                    const cs = getComputedStyle(el);
2518                    return r.height > 80 && r.width > 80 &&
2519                        cs.display !== 'none' && cs.visibility !== 'hidden' && cs.opacity !== '0';
2520                };
2521                const watchModal = function (el) {
2522                    if (!el || el.__bnModalWatch) return;
2523                    el.__bnModalWatch = true;
2524                    const check = function () { if (isModalVisible(el)) closeCartDrawer(); };
2525                    check();
2526                    if ('MutationObserver' in window) {
2527                        new MutationObserver(check).observe(el, {
2528                            attributes: true,
2529                            attributeFilter: ['style', 'class', 'hidden', 'aria-hidden', 'open']
2530                        });
2531                    }
2532                };
2533                const MODAL_SEL = '#extend-offers-modal-iframe, #extend-learn-more-modal-iframe, [id*="extend"][id*="modal"], [class*="extend"][class*="modal"]';
2534                document.querySelectorAll(MODAL_SEL).forEach(watchModal);
2535                if ('MutationObserver' in window) {
2536                    new MutationObserver(function (muts) {
2537                        muts.forEach(function (m) {
2538                            m.addedNodes.forEach(function (n) {
2539                                if (n.nodeType !== 1) return;
2540                                if (n.matches && n.matches(MODAL_SEL)) watchModal(n);
2541                                if (n.querySelectorAll) n.querySelectorAll(MODAL_SEL).forEach(watchModal);
2542                            });
2543                        });
2544                    }).observe(document.body, { childList: true, subtree: true });
2545                }
2546
2547                // Also try the direct click path (works when the offer is a normal DOM button).
2548                document.addEventListener('click', function (e) {
2549                    if (e.target && e.target.closest && e.target.closest('.' + offerClass)) {
2550                        setTimeout(closeCartDrawer, 0);
2551                    }
2552                }, true);
2553            }
2554
2555            // Use this to refresh the sidecart when the mini cart trigger or quantity selectors/remove buttons are clicked
2556             document.addEventListener('click', function(e) {
2557                 if (e.target.closest('.quantity-plus') || e.target.closest('.quantity-minus') || e.target.closest('.cart-items__remove')) {  // Replace with your click listen selector
2558                    window.setTimeout(function () {
2559                        window.dispatchEvent(new Event('refreshAjaxSideCart'));
2560                    }, 2000);
2561                 }
2562             })
2563
2564             document.addEventListener('click', function(e) {
2565                 if (e.target.closest('button[data-bgc-action="qty-plus"]') || e.target.closest('button[data-bgc-action="qty-minus"]') || e.target.closest('.bgc-remove')) {  // Replace with your click listen selector
2566                    console.log("Extend: main cart quant") 
2567                    window.setTimeout(function () {
2568                        window.dispatchEvent(new Event('refreshAjaxCart'));
2569                    }, 2000);
2570                 }
2571             })
2572
2573        } catch (err) {
2574            console.error('EXTEND: ', err);
2575        }
2576
2577    }, { once: true });
2578</script>
2578
2579
2580<style>
2581    .extend-cart-offer {
2582        margin: 0;
2583    }
2584
2585    .extend-side-cart-offer {
2586        margin: 10px 0;
2587    }
2588
2589    @keyframes bn-extend-spin { to { transform: rotate(360deg); } }
2590
2591    /* Side cart (drawer): render the offer as a full-width block under the title
2592       so it lays out cleanly and the item row grows to fit it (no clipping). */
2593    .cart-drawer .extend-side-cart-offer {
2594        display: block;
2595        width: 100%;
2596        margin: 8px 0 4px;
2597        clear: both;
2598    }
2599    .cart-drawer .extend-side-cart-offer:empty {
2600        display: none;
2601    }
2602
2603    .extend-warranty-info {
2604        margin: 0 !important;
2605    }
2606
2607    .extend-warranty-info-product {}
2608
2609    .extend-warranty-info-term {}
2610
2611    #extend-offers-modal-iframe {
2612        z-index: 99999999999 !important;
2613    }
2614
2615    #extend-learn-more-modal-iframe {
2616        z-index: 99999999999 !important;
2617    }
2618</style>
2619
2620<!-- Optional -->
2621<!-- Extend - Render atc -->
2622
2623<!-- Extend - Render quickview -->
2624
2625  <!-- Extend -- End Extend code -->
2626<!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 -->
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639  
2639<script async src="https://static.klaviyo.com/onsite/js/XDCv4C/klaviyo.js?company_id=XDCv4C"></script>
2639
2640  
2640<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>
2640
2641
2642  
2643
2644
2645
2646
2647  
2647<script>
2648    window.klaviyoReviewsProductDesignMode = false
2649  </script>
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659<!-- END app block --><!-- BEGIN app block: shopify://apps/triplewhale/blocks/triple_pixel_snippet/483d496b-3f1a-4609-aea7-8eee3b6b7a2a --><link rel='preconnect dns-prefetch' href='https://api.config-security.com/' crossorigin />
2660<link rel='preconnect dns-prefetch' href='https://conf.config-security.com/' crossorigin />
2661<script>
2662/* >> TriplePixel :: start*/
2663window.TriplePixelData={TripleName:"1zkvfh-xt.myshopify.com",ver:"2.16",plat:"SHOPIFY",isHeadless:false,src:'SHOPIFY_EXT',product:{id:"",name:``,price:"",variant:"",av:{  }},search:"",collection:"",cart:"drawer",template:"page",curr:"USD" || "USD", market:"97117700280"},function(W,H,A,L,E,_,B,N){function O(U,T,P,H,R){void 0===R&&(R=!1),H=new XMLHttpRequest,P?(H.open("POST",U,!0),H.setRequestHeader("Content-Type","text/plain")):H.open("GET",U,!0),H.send(JSON.stringify(P||{})),H.onreadystatechange=function(){4===H.readyState&&200===H.status?(R=H.responseText,U.includes("/first")?eval(R):P||(N[B]=R)):(299<H.status||H.status<200)&&T&&!R&&(R=!0,O(U,T-1,P))}}if(N=window,!N[H+"sn"]){N[H+"sn"]=1,L=function(){return Date.now().toString(36)+"_"+Math.random().toString(36)};try{A.setItem(H,1+(0|A.getItem(H)||0)),(E=JSON.parse(A.getItem(H+"U")||"[]")).push({u:location.href,r:document.referrer,t:Date.now(),id:L()}),A.setItem(H+"U",JSON.stringify(E))}catch(e){}var i,m,p;A.getItem('"!nC`')||(_=A,A=N,A[H]||(E=A[H]=function(t,e,i){return void 0===i&&(i=[]),"State"==t?E.s:(W=L(),(E._q=E._q||[]).push([W,t,e].concat(i)),W)},E.s="Installed",E._q=[],E.ch=W,B="configSecurityConfModel",N[B]=1,O("https://conf.config-security.com/model",5),i=L(),m=A[atob("c2NyZWVu")],_.setItem("di_pmt_wt",i),p={id:i,action:"profile",avatar:_.getItem("auth-security_rand_salt_"),time:m[atob("d2lkdGg=")]+":"+m[atob("aGVpZ2h0")],host:A.TriplePixelData.TripleName,plat:A.TriplePixelData.plat,url:window.location.href.slice(0,500),ref:document.referrer,ver:A.TriplePixelData.ver},O("https://api.config-security.com/event",5,p),O("https://api.config-security.com/first?host=".concat(p.host,"&plat=").concat(p.plat),5)))}}("","TriplePixel",localStorage);
2664/* << TriplePixel :: end*/
2665</script>
2665
2666
2667
2668
2669<!-- END app block --><!-- BEGIN app block: shopify://apps/coframe/blocks/coframe/019f3a40-3aa2-70f5-b75e-ee2ca0be8280 -->
2670<script>
2671    (function () {
2672      var d = document;
2673      // `cf_disable` is the kill switch the SDK and the hand-installed snippet
2674      // both honour, and it is what LCP benchmarking uses for its "Coframe
2675      // off" arm. Hiding here anyway would put a blank page in that arm and
2676      // make the comparison meaningless.
2677      if (/cf_disable/.test(location.search)) return;
2678      // Another integration on this page already hides it — the hand-installed
2679      // snippet uses this same element id, and a store can carry both it and
2680      // the app embed. Two hides do not stack (both read --cf-show, so the
2681      // first reveal un-hides both), but only one should own the element.
2682      if (d.getElementById('coframe-antiflicker')) return;
2683      var s = d.createElement('style');
2684      s.id = 'coframe-antiflicker';
2685      s.textContent = ':root{--cf-show:0}body{opacity:var(--cf-show)!important}';
2686      (d.head || d.documentElement).appendChild(s);
2687      setTimeout(function () {
2688        var r = d.documentElement;
2689        r.style.setProperty('--cf-show', '1');
2690        r.style.setProperty('--cf-visibility', 'visible');
2691        if (s.parentNode) s.parentNode.removeChild(s);
2692      }, 1000);
2693    })();
2694  </script>
2694<script async src="https://shop.coframe.com/coframe-storefront.js?shop=1zkvfh-xt.myshopify.com"></script>
2694
2695
2696
2697<!-- END app block --><!-- BEGIN app block: shopify://apps/bushnell-sale-automation/blocks/sale-collection-control/019ffd7a-8c8a-7a7c-bdeb-ed3ef47858b1 --><style>
2698    a[href$="/collections/sale"],
2699    a[href*="/collections/sale?"],
2700    a[href*="/collections/sale/"] { display: none !important; }
2701  </style>
2702<!-- END app block --><!-- BEGIN app block: shopify://apps/yotpo-product-reviews/blocks/settings/eb7dfd7d-db44-4334-bc49-c893b51b36cf -->
2703
2704
2705  
2705<script type="text/javascript" src="https://cdn-widgetsrepository.yotpo.com/v1/loader/m2djy7T11NLc8kN2FyPVbHo7xpNI2IQ4yhET0ca9?languageCode=en" async></script>
2705
2706
2707
2708
2709  
2710<!-- END app block --><link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
2711<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: 94598496440,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "page"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 2711
2711
2712<script>
2713  window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || [];
2714</script>
vendor: 1 bytes, line 2714
2714
2715<script>(function(){var wpmLoader=function(){"use strict";var e=/Googlebot|Storebot-Google|bingbot|Baiduspider|YandexBot|DuckDuckBot|Slurp|facebookexternalhit|Twitterbot|LinkedInBot|Applebot|AdsBot-Google|Mediapartners-Google|APIs-Google|PetalBot|SemrushBot|AhrefsBot|MJ12bot|DotBot|Acunetix|PerplexityBot|Perplexity-User/i,t=/bytedance/i;function i(){try{var e=document.cookie;if(!e||"string"!=typeof e)return;for(var t=0,i=e.split(";");t<i.length;t++){var n=i[t],r=n.indexOf("=");if(-1!==r){var o=n.slice(0,r).trim();if(o){var a=void 0;try{a=decodeURIComponent(o)}catch(e){a=o}if("_shopify_s"===a){var d=n.slice(r+1).trim();try{return decodeURIComponent(d)}catch(e){return d}}}}}return}catch(e){return}}function n(e){try{"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(e)}catch(e){}}function r(e,t){return"string"==typeof e&&e.length>0&&e.length<=t?e:void 0}function o(e){var t;switch(null==(t=null==e?void 0:e.navigation)?void 0:t.type){case 0:return"navigate";case 1:return"reload";case 2:return"back_forward";default:return}}function a(){var e,t,i;try{var n=null==(i=null==(t=null==(e=self.ShopifyAnalytics)?void 0:e.lib)?void 0:t.trekkie)?void 0:i.state;return"awaiting-consent"===n||"initialized"===n?n:void 0}catch(e){return}}return function(d,s,u,l){var c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};try{var p=c.trekkieShim;!0!==p&&"true"!==p||null!=window.__TREKKIE_SHIM_QUEUE||(window.__TREKKIE_SHIM_QUEUE=[])}catch(e){}var f,v,h,y,g=(v=(f={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/}).modern,h=f.legacy,(y=navigator.userAgent).match(e)?"bot":y.match(v)?"modern":y.match(h)?"legacy":y.match(t)?"bot":"unknown"),m=function(e){var t,i,n=r(e,128);try{var a=window.performance,d=null==(t=null==a?void 0:a.getEntriesByType)?void 0:t.call(a,"navigation")[0];if(!d)return{requestId:n,navigationType:o(a)};var s="type"in d?r(d.type,64):void 0,u="serverTiming"in d&&Array.isArray(d.serverTiming)?d.serverTiming:[];return{requestId:null!=n?n:r(null==(i=u.find(function(e){return"requestID"===e.name}))?void 0:i.description,128),navigationType:s}}catch(e){return{requestId:n}}}(c.requestId),w=function(e){var t=e.version,r=e.browserTarget,o=e.surface,a=e.shopId,d=e.monorailEndpoint,s=window.location.href;return{emit:function(e){var u=e.status,l=e.errorMsg,c=e.failureReason,p=e.useKeepaliveFallback,f=void 0!==p&&p,v=e.navigationType,h=e.pagehidePersisted,y=e.requestId,g=e.trekkieState;if(d){var m,w;try{var b=(new Date).getTime();m=JSON.stringify({metadata:{event_sent_at_ms:b},events:[{schema_id:"web_pixels_manager_load/3.3",payload:{version:t,bundle_target:r,page_url:s,status:u,surface:o,error_msg:l,failure_reason:c,navigation_type:v,pagehide_persisted:h,request_id:y,trekkie_state:g,shop_id:a,visit_token:i()},metadata:{event_created_at_ms:b}}]})}catch(e){return}try{if("function"==typeof window.navigator.sendBeacon&&-1===(w=window.navigator.userAgent).indexOf("iPhone; CPU iPhone OS 12_")&&-1===w.indexOf("iPad; CPU OS 12_")&&-1===w.indexOf("iPod touch; CPU iPhone OS 12_")&&window.navigator.sendBeacon.bind(window.navigator)(d,m))return}catch(e){}if(f)try{"function"==typeof window.fetch&&window.fetch(d,{method:"POST",headers:{"Content-Type":"text/plain"},body:m,keepalive:!0}
2715).catch(function(){})}catch(e){}else try{var _=new XMLHttpRequest;_.open("POST",d,!0),_.setRequestHeader("Content-Type","text/plain"),_.send(m)}catch(e){n("[Web Pixels Manager] Got an unhandled error while logging to Monorail.")}}else n("[Web Pixels Manager] No Monorail endpoint provided, skipping logging.")}}}({version:u,browserTarget:g,surface:d.surface,shopId:d.shopId,monorailEndpoint:d.monorailEndpoint});if(Boolean(null==(_=null==(b=window.Shopify)?void 0:b.analytics)?void 0:_.replayQueue))w.emit({status:"setup-skipped",errorMsg:"replay queue already initialized."});else{var b,_;w.emit({status:"setup-started"}),window.Shopify=window.Shopify||{};var S=window.Shopify;S.analytics=S.analytics||{};var P=S.analytics;P.replayQueue=[],P.publish=function(e,t,i){return P.replayQueue.push([e,t,i]),!0};try{self.performance.mark("wpm:start")}catch(e){}var k,C="modern"===g?"modern":"legacy",E=(null!=l?l:{modern:"",legacy:""})[C],I=[(k={baseUrl:s,hashVersion:u,buildTarget:C}).baseUrl,"/wpm","/b",k.hashVersion,"modern"===k.buildTarget?"m":"l",".js"].join(""),O=!1,T=!1;try{c.browserTarget=g,function(){O=!0;try{window.addEventListener("pagehide",M)}catch(e){O=!1}}(),R(function(){try{R(x)}catch(e){D(e)}}),w.emit({status:"loading",requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()})}catch(e){D(e)}}function U(){var e;if(q(),!function(){var e,t;return Boolean(null==(t=null==(e=window.Shopify)?void 0:e.analytics)?void 0:t.initialized)}()){var t,i,n;try{if("function"!=typeof(null==(e=window.webPixelsManager)?void 0:e.init))return void A();if(!(null!==(n=i=t=window.webPixelsManager.init(d))&&"function"!=typeof n&&Object(n)===n&&"publish"in i&&"function"==typeof i.publish&&"publishCustomEvent"in i&&"function"==typeof i.publishCustomEvent&&"visitor"in i&&"function"==typeof i.visitor))return void A()}catch(e){return void A(e)}var r=window.Shopify.analytics;r.replayQueue.forEach(function(e){var i=e[0],n=e[1],r=e[2];t.publishCustomEvent(i,n,r)}),r.replayQueue=[],r.publish=t.publishCustomEvent,r.visitor=t.visitor,r.initialized=!0}}function A(e){B("manager_api_unavailable",void 0===e?void 0:Q(e))}function x(){B("script_load_failed","".concat(I," has failed to load"))}function B(e,t){T||(T=!0,q(),w.emit({status:"failed",errorMsg:t,failureReason:e,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function M(e){O&&(q(),w.emit({status:"pagehide-while-loading",useKeepaliveFallback:!0,pagehidePersisted:e.persisted,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function q(){O=!1;try{window.removeEventListener("pagehide",M)}catch(e){}}function R(e){var t;!function(e){var t=e.src,i=e.async,n=void 0===i||i,r=e.onload,o=e.onerror,a=e.sri,d=e.scriptDataAttributes,s=void 0===d?{}:d,u=document.createElement("script"),l=document.querySelector("head"),c=document.querySelector("body");if(u.async=n,u.src=t,a&&(u.integrity=a,u.crossOrigin="anonymous"),s)for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))try{u.dataset[p]=String(s[p])}catch(e){}if(r&&u.addEventListener("load",r),o&&u.addEventListener("error",o),l)l.appendChild(u);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(u)}}({src:I,async:!0,onload:U,onerror:e,sri:(t=E,"string"==typeof t&&/^sha384-[A-Za-z0-9+/=]+$/.test(t)?E:""),scriptDataAttributes:c})}function D(e){B("script_append_failed",Q(e))}function Q(e){return e instanceof Error?e.message:"Unknown error"}}}();wpmLoader({shopId: 94598496440,storefrontBaseUrl: "https://www.bushnellgolf.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://www.bushnellgolf.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"2886140088","configuration":"{\"vibePixelId\":\"dlziuF\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"72859894ec8aa8d5e0246c40aaed9466","type":"APP","apiClientId":132266098689,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":[],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"2880995512","configuration":"{\"storeId\":\"bf76c0df-fca6-4f5e-b65c-2fe873f7a65d\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"9b5c7e9eba54366aed35e340586c8163","type":"APP","apiClientId":274629623809,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"}
2715,{"id":"2869592248","configuration":"{\"pixel_id\":\"2tFoSPhFieY73nNhnmrSPE\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"494c214c3e1e2dea2c94ffa97cf51a83","type":"APP","apiClientId":411130036225,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"2795241656","configuration":"{\"shop\":\"1zkvfh-xt.myshopify.com\",\"projectId\":\"69cea0d90db02b3cc2b51877\",\"ingestUrl\":\"https:\/\/ingest.app.coframe.com\/ingest\/v2\/batched_events\/69cea0d90db02b3cc2b51877\/\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"27e42a1a1a8f90b0bfce6ce93f32df83","type":"APP","apiClientId":376669110273,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"2770731192","configuration":"{\"shopId\":\"1zkvfh-xt.myshopify.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"7093dff47f098f6de2afb75b62011ebe","type":"APP","apiClientId":2753413,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"2764996792","configuration":"{\"campaignID\":\"43462\",\"externalExecutionURL\":\"https:\/\/engine.saasler.com\/api\/v1\/webhook_executions\/0442a54891f774312a521fc6f8d6fff2\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"4d2ae310e7f99f154f33560b5c81cfa9","type":"APP","apiClientId":3546795,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"2753855672","configuration":"{\"ti\":\"211076447\",\"endpoint\":\"https:\/\/bat.bing.com\/action\/0\",\"tagIds\":\"[\\\"-1\\\"]\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"58a904981d2724b937c16718aa2f1aee","type":"APP","apiClientId":2997493,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"2747859128","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-YEJ1EQ502M\\\",\\\"AW-791379230\\\"],\\\"target_country\\\":\\\"ZZ\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-YEJ1EQ502M\\\",\\\"AW-791379230\\\/DzybCN3ml-AcEJ76rfkC\\\"]},{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-YEJ1EQ502M\\\",\\\"AW-791379230\\\/0Y-fCNHml-AcEJ76rfkC\\\"]},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-YEJ1EQ502M\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-YEJ1EQ502M\\\",\\\"AW-791379230\\\/B7r3CNrml-AcEJ76rfkC\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-YEJ1EQ502M\\\",\\\"AW-791379230\\\/5TPqCM7ml-AcEJ76rfkC\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-YEJ1EQ502M\\\"},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-YEJ1EQ502M\\\",\\\"AW-791379230\\\/lxT0CNfml-AcEJ76rfkC\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-YEJ1EQ502M\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-YEJ1EQ502M\\\",\\\"AW-791379230\\\/HhY-CODml-AcEJ76rfkC\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-YEJ1EQ502M\\\",\\\"AW-791379230\\\/9pjcCNTml-AcEJ76rfkC\\\"]},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-YEJ1EQ502M\\\"}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"a3321ca85cf5aaf6b57585fcd8d67b3a","type":"APP","apiClientId":1780363,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"2721710264","configuration":"{\"partnerId\":\"bushnell\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"af1c8d508ab35da0347db9e4cc555741","type":"APP","apiClientId":397
2715737066497,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data","read_customer_address","read_customer_email","read_customer_name","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"2708242616","configuration":"{\"yotpoStoreId\":\"m2djy7T11NLc8kN2FyPVbHo7xpNI2IQ4yhET0ca9\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"c5c2579aac465eb24ca7bc0501a6000d","type":"APP","apiClientId":70132,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"2659156152","configuration":"{\"pixel_id\":\"580491339402695\",\"pixel_type\":\"facebook_pixel\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"96420dbe9ea96c426a1b7f364f977719","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"2525659320","configuration":"{\"accountID\":\"XDCv4C\",\"webPixelConfig\":\"eyJlbmFibGVBZGRlZFRvQ2FydEV2ZW50cyI6IHRydWV9\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"c63c5b72c8d77be5f2d27d14c081da38","type":"APP","apiClientId":123074,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"2451079352","configuration":"{\"site_id\":\"a2d7b46f-6832-4637-907f-1bf09faa9896\",\"analytics_endpoint\":\"https:\\\/\\\/na.shgcdn3.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"695709fc3f146fa50a25299517a954f2","type":"APP","apiClientId":1158168,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"164593848","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"PostHog","dataSharingAdjustments":{"protectedCustomerApprovalScopes":[],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"167968952","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"3","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"AudioHook","dataSharingAdjustments":{"protectedCustomerApprovalScopes":[],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"168001720","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Criteo","dataSharingAdjustments":{"protectedCustomerApprovalScopes":[],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"168034488","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"MNTN","dataSharingAdjustments":{"protectedCustomerApprovalScopes":[],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"168067256","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Quora","dataSharingAdjustments":{"protectedCustomerApprovalScopes":[],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"}
2715,{"id":"168100024","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Triple Whale","dataSharingAdjustments":{"protectedCustomerApprovalScopes":[],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"173015224","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"10","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Google tag manager","dataSharingAdjustments":{"protectedCustomerApprovalScopes":[],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"Bushnell Golf","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"1zkvfh-xt.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/www.bushnellgolf.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[{"id":"10358022930616","handle":"pro-x3-link","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53271988469944","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10358021292216","handle":"tour-hybrid","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53271985750200","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10358022504632","handle":"tour-v7-shift","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53271987749048","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10358021456056","handle":"a1-slope","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53271986110648","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10358021488824","handle":"launch-pro","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53271986143416","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10362618839224","handle":"lpi-personal-launch-monitor","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53281601945784","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10358021652664","handle":"launch-pro-simulator-bundle","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53458011029688","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10364598223032","handle":"launch-pro-i-simulator-bundle","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53287034388664","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10358021947576","handle":"wingman-hd","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53271986831544","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10358021619896","handle":"wingman-view","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53271986274488","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}
2715,{"id":"10358022963384","handle":"wingman-2-gps-speaker","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53271988764856","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10358022537400","handle":"wingman-mini-gps-speaker","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53458024661176","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10358022340792","handle":"ion-elite","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53458024923320","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"10358023127224","handle":"phantom-3-slope-gps","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"53458018926776","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}],"purchasingCompany":null},},"https://www.bushnellgolf.com/cdn","5982071ew7ea472e3p69b68784m2150dfea",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"191993970872","themePublished":"true","eventMetadataId":"4c06c567-b3e5-41f7-baf1-f6b808a742f9","pageType":"page","resourceId":"162554970296","shopId":"94598496440","storefrontBaseUrl":"https:\/\/www.bushnellgolf.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"5982071ew7ea472e3p69b68784m2150dfea","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
2715<script>
2716  window.ShopifyAnalytics = window.ShopifyAnalytics || {};
2717  window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
2718  window.ShopifyAnalytics.meta.currency = 'USD';
2719  var meta = {"page":{"pageType":"page","resourceType":"page","resourceId":162554970296,"requestId":"e00e36e2-321e-490d-b594-771422cf29e3-1790853879"}};
2720  for (var attr in meta) {
2721    window.ShopifyAnalytics.meta[attr] = meta[attr];
2722  }
2723</script>
vendor: 1 bytes, line 2723
2723
2724<script class="analytics">
2725  (function () {
2726    var customDocumentWrite = function(content) {
2727      var jquery = null;
2728
2729      if (window.jQuery) {
2730        jquery = window.jQuery;
2731      } else if (window.Checkout && window.Checkout.$) {
2732        jquery = window.Checkout.$;
2733      }
2734
2735      if (jquery) {
2736        jquery('body').append(content);
2737      }
2738    };
2739
2740    var hasLoggedConversion = function(token) {
2741      if (token) {
2742        return document.cookie.indexOf('loggedConversion=' + token) !== -1;
2743      }
2744      return false;
2745    }
2746
2747    var setCookieIfConversion = function(token) {
2748      if (token) {
2749        var twoMonthsFromNow = new Date(Date.now());
2750        twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
2751
2752        document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
2753      }
2754    }
2755
2756    var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
2757    window.ShopifyAnalytics.lib.trekkie = window.trekkie;
2758    if (trekkie.integrations) {
2759      return;
2760    }
2761    trekkie.methods = [
2762      'identify',
2763      'page',
2764      'ready',
2765      'track',
2766      'trackForm',
2767      'trackLink'
2768    ];
2769    trekkie.factory = function(method) {
2770      return function() {
2771        var args = Array.prototype.slice.call(arguments);
2772        args.unshift(method);
2773        trekkie.push(args);
2774        if (method == 'track' || method == 'page') {
2775          var pageUrl;
2776          try {
2777            pageUrl = window.location.href;
2778          } catch (e) {}
2779          var pageReferrer;
2780          try {
2781            pageReferrer = document.referrer;
2782          } catch (e) {}
2783          try {
2784            if (window.__TREKKIE_SHIM_QUEUE == null) {
2785              window.__TREKKIE_SHIM_QUEUE = [];
2786            }
2787            window.__TREKKIE_SHIM_QUEUE.push({
2788              from: 'trekkie-stub',
2789              method: method,
2790              args: args.slice(1),
2791              pageContext: {
2792                url: pageUrl,
2793                referrer: pageReferrer
2794              }
2795            });
2796          } catch (e) {
2797            // no-op
2798          }
2799        }
2800        return trekkie;
2801      };
2802    };
2803    for (var i = 0; i < trekkie.methods.length; i++) {
2804      var key = trekkie.methods[i];
2805      trekkie[key] = trekkie.factory(key);
2806    }
2807    trekkie.load = function(config) {
2808      trekkie.config = config || {};
2809      trekkie.config.initialDocumentCookie = document.cookie;
2810      var first = document.getElementsByTagName('script')[0];
2811var script = document.createElement('script');
2812script.type = 'text/javascript';
2813script.onerror = function(e) {
2814  var scriptFallback = document.createElement('script');
2815  scriptFallback.type = 'text/javascript';
2816  scriptFallback.onerror = function(error) {
2817          var Monorail = {
2818      produce: function produce(monorailDomain, schemaId, payload) {
2819        var currentMs = new Date().getTime();
2820        var event = {
2821          schema_id: schemaId,
2822          payload: payload,
2823          metadata: {
2824            event_created_at_ms: currentMs,
2825            event_sent_at_ms: currentMs
2826          }
2827        };
2828        return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
2829      },
2830      sendRequest: function sendRequest(endpointUrl, payload) {
2831        // Try the sendBeacon API
2832        if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
2833          var blobData = new window.Blob([payload], {
2834            type: 'text/plain'
2835          });
2836
2837          if (window.navigator.sendBeacon(endpointUrl, blobData)) {
2838            return true;
2839          } // sendBeacon was not successful
2840
2841        } // XHR beacon
2842
2843        var xhr = new XMLHttpRequest();
2844
2845        try {
2846          xhr.open('POST', endpointUrl);
2847          xhr.setRequestHeader('Content-Type', 'text/plain');
2848          xhr.send(payload);
2849        } catch (e) {
2850          console.log(e);
2851        }
2852
2853        return false;
2854      },
2855      isIos12: function isIos12() {
2856        return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
2857      }
2858    };
2859    Monorail.produce('monorail-edge.shopifysvc.com',
2860      'trekkie_storefront_load_errors/1.1',
2861      {shop_id: 94598496440,
2862      theme_id: 191993970872,
2863      app_name: "storefront",
2864      context_url: window.location.href,
2865      source_url: "//www.bushnellgolf.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js"});
2866
2867  };
2868  scriptFallback.async = true;
2869  scriptFallback.src = '//www.bushnellgolf.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js';
2870  first.parentNode.insertBefore(scriptFallback, first);
2871};
2872script.async = true;
2873script.src = '//www.bushnellgolf.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js';
2874first.parentNode.insertBefore(script, first);
2875
2876    };
2877    trekkie.load(
2878      {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":94598496440,"isMerchantRequest":null,"themeId":191993970872,"themeCityHash":"3767458484850086570","contentLanguage":"en","currency":"USD","eventMetadataId":"4c06c567-b3e5-41f7-baf1-f6b808a742f9"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}}
2879    );
2880
2881    var loaded = false;
2882    trekkie.ready(function() {
2883      if (loaded) return;
2884      loaded = true;
2885
2886      window.ShopifyAnalytics.lib = window.trekkie;
2887
2888      var originalDocumentWrite = document.write;
2889      document.write = customDocumentWrite;
2890      try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
2891      document.write = originalDocumentWrite;
2892
2893      var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
2894      var token = match? match[1]: undefined;
2895      if (!hasLoggedConversion(token)) {
2896        setCookieIfConversion(token);
2897        
2898      }
2899    });
2900
2901    window.ShopifyAnalytics.lib.page(null,{"pageType":"page","resourceType":"page","resourceId":162554970296,"requestId":"e00e36e2-321e-490d-b594-771422cf29e3-1790853879","shopifyEmitted":true});
2902
2903    var eventsListenerScript = document.createElement('script');
2904    eventsListenerScript.async = true;
2905    eventsListenerScript.src = "//www.bushnellgolf.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js";
2906    document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
2907})();</script>
vendor: 1 bytes, line 2907
2907
2908<script
2909  defer
2910  src="https://www.bushnellgolf.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js"
2911  data-application="storefront-renderer"
2912  data-shop-id="94598496440"
2913  data-render-region="gcp-europe-west1"
2914  data-page-type="page"
2915  data-theme-instance-id="191993970872"
2916  data-theme-name="Horizon"
2917  data-theme-version="3.4.0"
2918  data-monorail-region="shop_domain"
2919  data-resource-timing-sampling-rate="10"
2920  data-shs="true"
2921  data-shs-beacon="true"
2922  data-shs-export-with-fetch="true"
2923  data-shs-logs-sample-rate="1"
2924  data-shs-beacon-endpoint="https://www.bushnellgolf.com/api/collect"
2925></script>
vendor: 1 bytes, line 2925
2925
2926<script src="https://cdn.shopify.com/storefront/web-components/account.js" type="module" crossorigin fetchpriority="low" async></script>
2926<script id="shopify-customer-account-data" type="application/json">{"customer":null,"shop":{"id":"94598496440","customerAccountTranslations":[{"key":"account_menu.signed_out_state.sheet_title","value":"Sign in or create account"},{"key":"account_menu.signed_out_state.section_divider","value":"More ways to sign in"},{"key":"account_menu.signed_out_state.alternate_divider","value":"OR"},{"key":"account_menu.signed_out_state.email_field_label","value":"Email"},{"key":"account_menu.signed_out_state.orders_button","value":"Orders"},{"key":"account_menu.signed_out_state.profile_button","value":"Profile"},{"key":"account_menu.signed_out_state.shop_login_button","value":"Sign in with Shop"},{"key":"account_menu.signed_out_state.continue_with_google","value":"Continue with Google"},{"key":"account_menu.signed_out_state.continue_with_facebook","value":"Continue with Facebook"},{"key":"account_menu.signed_out_state.marketing_consent_label","value":"Email me with news and offers"},{"key":"account_menu.signed_in_state.greeting_with_name","value":"Hi, {{first_name}}"},{"key":"account_menu.signed_in_state.greeting_without_name","value":"Account"},{"key":"account_menu.signed_in_state.orders_button","value":"Orders"},{"key":"account_menu.signed_in_state.profile_button","value":"Profile"},{"key":"account_menu.location_picker.sheet_title","value":"Locations"},{"key":"account_menu.location_picker.search_field_placeholder","value":"Search"},{"key":"account_menu.aria_labels.close_menu","value":"Close menu"},{"key":"account_menu.aria_labels.back_to_main_menu","value":"Back to main menu from {{title}}"},{"key":"account_menu.aria_labels.open_submenu","value":"{{title}}, opens submenu"},{"key":"account_menu.aria_labels.loading_menu","value":"Loading menu"},{"key":"account_menu.aria_labels.account","value":"Account"},{"key":"account_menu.aria_labels.sign_in_with_email","value":"Sign in with email"},{"key":"account_menu.aria_labels.sign_in","value":"Sign in"}],"socialLoginProviders":[{"handle":"Shop"}],"legacyCustomerAccounts":false,"signInLinksVisible":true,"b2bEnabled":false,"marketingConsentSigninEnabled":false},"visitor":{"country":"US","language":"en"}}</script>
2926
2927<meta name="shopify-y" content="91450ecc-89f4-43d5-8f64-9ddcaf49de06" data-expiration="1822411479000"><meta name="shopify-s" content="0fa2d132-a6dd-4892-a8f1-081f65d903ab" data-expiration="1790855679000"><meta name="new-cookie-storage-activated" content="t">
2928</head>
2929<body class="template-page bushnell-theme">
vendor: 67 bytes, line 2929
2929<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
2929GTM-W2RQBLD
vendor: 84 bytes, line 2929
2929" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
2930<div id="shopify-section-bushnell-utility-bar" class="shopify-section"><style>
2931  #shopify-section-bushnell-utility-bar h1,
2932  #shopify-section-bushnell-utility-bar h2,
2933  #shopify-section-bushnell-utility-bar h3,
2934  #shopify-section-bushnell-utility-bar h4,
2935  #shopify-section-bushnell-utility-bar h5,
2936  #shopify-section-bushnell-utility-bar h6 { font-family: 'Industry Bold', sans-serif; }
2937  #shopify-section-bushnell-utility-bar p,
2938  #shopify-section-bushnell-utility-bar li,
2939  #shopify-section-bushnell-utility-bar span,
2940  #shopify-section-bushnell-utility-bar a { font-family: 'Acumin Pro', sans-serif; }
2941  #shopify-section-bushnell-utility-bar .utility-links > a,
2942#shopify-section-bushnell-utility-bar .utility-links > .utility-account > a,
2943#shopify-section-bushnell-utility-bar .utility-links .bn-region-trigger {
2944  font-family: 'Industry Bold', sans-serif;
2945}
2946  @media screen and (max-width: 749px) {
2947    #shopify-section-bushnell-utility-bar .main-nav {
2948      padding-top: 8px;
2949      padding-bottom: 8px;
2950    }
2951  }
2952  @media screen and (min-width: 750px) and (max-width: 989px) {
2953    #shopify-section-bushnell-utility-bar .utility-bar {
2954      padding-top: 8px;
2955      padding-bottom: 8px;
2956    }
2957  }
2958  /* Fix: mega menu dropdown must size to its content, not the full viewport. */
2959  .mega-menu-dropdown {
2960    height: auto !important;
2961    min-height: 0 !important;
2962    max-height: none !important;
2963    overflow: visible !important;
2964  }
2965  .mega-menu-dropdown > .container {
2966    height: auto !important;
2967    max-height: none !important;
2968    overflow: visible !important;
2969  }
2970  .mega-menu-grid {
2971    height: auto !important;
2972    min-height: 0 !important;
2973    max-height: none !important;
2974    overflow: visible !important;
2975    align-items: flex-start !important;
2976  }
2977  .mega-menu-columns {
2978    height: auto !important;
2979    max-height: none !important;
2980    overflow: visible !important;
2981  }
2982  /* Full-width mega-menu sheet: span the whole viewport under the nav. */
2983  .mega-menu-dropdown {
2984    left: 0 !important;
2985    right: 0 !important;
2986    width: 100% !important;
2987    max-width: none !important;
2988    border-radius: 0 !important;
2989    border-left: none !important;
2990    border-right: none !important;
2991    border-bottom: 1px solid #e5e1dc;
2992    box-shadow: 0 12px 40px rgba(30, 37, 43, 0.18);
2993  }
2994  /* Accessories panel: every link is an unmistakable row —
2995     hairline separators + chevron affordance (name + sub read as one unit). */
2996  [data-mega-panel="accessories"] .mega-menu-col-links li {
2997    border-top: 1px solid #e5e1dc;
2998  }
2999  [data-mega-panel="accessories"] .mega-menu-col-links li a {
3000    position: relative;
3001    display: block;
3002    padding: 14px 26px 14px 0;
3003  }
3004  [data-mega-panel="accessories"] .mega-menu-col-links li a::after {
3005    content: "";
3006    position: absolute;
3007    right: 4px;
3008    top: 50%;
3009    width: 8px;
3010    height: 8px;
3011    border-top: 2px solid #9b968f;
3012    border-right: 2px solid #9b968f;
3013    transform: translateY(-50%) rotate(45deg);
3014  }
3015  /* Compact collection hero: match the approved mockups \u2014 slim padding,
3016     smaller title and stat scale. Overrides the tall base-CSS hero. */
3017  .collection-hero {
3018    padding: 44px 40px 40px !important;
3019    min-height: 0 !important;
3020  }
3021  .collection-hero-inner {
3022    padding: 0 !important;
3023  }
3024  .collection-hero h1 {
3025    font-size: 36px !important;
3026    letter-spacing: 2px !important;
3027    margin: 0 !important;
3028  }
3029  .collection-hero p {
3030    font-size: 15px !important;
3031    margin: 8px 0 0 !important;
3032  }
3033  .collection-stats {
3034    margin-top: 26px !important;
3035    gap: 48px !important;
3036  }
3037  .collection-stat-value {
3038    font-size: 28px !important;
3039  }
3040  .collection-stat-label {
3041    font-size: 11px !important;
3042    letter-spacing: 1.5px !important;
3043  }
3044  @media screen and (max-width: 749px) {
3045    .collection-hero { padding: 32px 20px 28px !important; }
3046    .collection-hero h1 { font-size: 26px !important; }
3047    .collection-stats { gap: 24px !important; margin-top: 18px !important; }
3048    .collection-stat-value { font-size: 22px !important; }
3049  }
3050  /* Product-card styling moved to bushnell.css */
3051  /* Comparison charts (custom-liquid): price shown under the product name
3052     in the header row — the JS below moves it there from a "Price" line item. */
3053  #lrf-comparison-chart .product-price {
3054    display: block;
3055    font-family: "acumin-pro-condensed", "Helvetica Neue", Arial, sans-serif;
3056    font-weight: bold;
3057    color: #000000;
3058    font-size: 1.2rem;
3059    margin-top: 0.25rem;
3060  }
3061  /* Account state — signed-out shows SIGN IN; signed-in shows pip + first name
3062     with a hover/focus dropdown (Orders, Profile, Register, Support, Sign out). */
3063  .utility-account { position: relative; display:contents; }
3064  .utility-account > a { display: inline-flex; align-items: center; gap: 7px; }
3065  .bn-acct-pip {
3066    width: 20px; height: 20px; border-radius: 50%;
3067    background: #fe5000; color: #ffffff !important;
3068    display: inline-flex; align-items: center; justify-content: center;
3069    font-family: 'Industry Bold', 'Oswald', sans-serif;
3070    font-size: 10px; font-weight: 700; line-height: 1;
3071  }
3072  .bn-acct-caret { width: 10px; height: 10px; transition: transform 0.2s ease; }
3073  .bn-acct-menu {
3074    position: fixed; z-index: 200;
3075    width: 240px; padding-top: 8px;
3076    opacity: 0; visibility: hidden; transform: translateY(-4px);
3077    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
3078  }
3079  .utility-account.bn-open .bn-acct-menu {
3080    opacity: 1; visibility: visible; transform: translateY(0);
3081  }
3082  .utility-account.bn-open .bn-acct-caret { transform: rotate(180deg); }
3083  .bn-acct-menu-card {
3084    background: #ffffff; border: 1px solid #e5e1dc; border-radius: 12px;
3085    box-shadow: 0 12px 40px rgba(30,37,43,0.18); overflow: hidden;
3086  }
3087  .bn-acct-menu-head { padding: 14px 18px 12px; border-bottom: 1px solid #f0ece7; }
3088  .bn-acct-menu-name {
3089    font-family: 'Industry Bold', 'Oswald', sans-serif;
3090    font-size: 13px; font-weight: 600; letter-spacing: 0.5px;
3091    text-transform: uppercase; color: #1e252b;
3092  }
3093  .bn-acct-menu-email {
3094    font-family: 'Acumin Pro', 'DM Sans', sans-serif;
3095    font-size: 12px; color: #6b6b6b;
3096    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
3097  }
3098  .bn-acct-menu-list { padding: 6px 0; }
3099  .bn-acct-menu-list + .bn-acct-menu-list { border-top: 1px solid #f0ece7; }
3100  .bn-acct-menu a.bn-acct-item {
3101    display: flex !important; align-items: center; gap: 10px;
3102    padding: 10px 18px !important;
3103    font-family: 'Industry Bold', 'Oswald', sans-serif;
3104    font-size: 12px; font-weight: 600; letter-spacing: 1px;
3105    text-transform: uppercase; color: #1e252b !important;
3106    text-decoration: none; transition: background 0.2s ease, color 0.2s ease;
3107  }
3108  .bn-acct-menu a.bn-acct-item:hover { background: #f7f3ee; color: #fe5000 !important; }
3109  .bn-acct-menu a.bn-acct-item--muted { color: #6b6b6b !important; }
3110  .bn-acct-menu a.bn-acct-item--muted:hover { color: #1e252b !important; }
3111  .bn-acct-menu a.bn-acct-item svg { width: 15px; height: 15px; flex-shrink: 0; }
3112  @media screen and (max-width: 749px) {
3113    .bn-acct-menu { display: none; }
3114  }
3115  /* Region selector — flag + REGION:/country stacked, click dropdown with
3116     US/Europe/Canada storefront links. Same fixed-position pattern as the
3117     account menu so it survives ancestor overflow/stacking contexts. */
3118  .utility-region { position: relative; display: flex; align-items: center; }
3119  .bn-region-trigger {
3120    display: inline-flex; align-items: center; gap: 8px;
3121    background: none; border: none; padding: 2px 0; cursor: pointer;
3122    color: #ffffff; text-align: left;
3123    font-family: inherit; letter-spacing: inherit; text-transform: inherit;
3124  }
3125  .bn-region-flag { flex-shrink: 0; }
3126  .bn-region-txt { display: flex; flex-direction: column; line-height: 1.25; }
3127  .bn-region-label {
3128    font-size: 9px; letter-spacing: 0.12em; opacity: 0.75;
3129  }
3130  .bn-region-current {
3131    display: inline-flex; align-items: center; gap: 4px;
3132    font-size: 11px; font-weight: 700;
3133    font-family: 'Industry Bold', 'Oswald', sans-serif;
3134  }
3135  .bn-region-caret { width: 10px; height: 10px; transition: transform 0.2s ease; }
3136  .utility-region.bn-open .bn-region-caret { transform: rotate(180deg); }
3137  .bn-region-menu {
3138    position: fixed; z-index: 200;
3139    width: 190px; padding-top: 8px;
3140    opacity: 0; visibility: hidden; transform: translateY(-4px);
3141    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
3142  }
3143  .utility-region.bn-open .bn-region-menu {
3144    opacity: 1; visibility: visible; transform: translateY(0);
3145  }
3146  .bn-region-menu-card {
3147    background: #ffffff; border: 1px solid #e5e1dc; border-radius: 10px;
3148    box-shadow: 0 12px 40px rgba(30,37,43,0.18); overflow: hidden;
3149    padding: 6px 0;
3150  }
3151  .bn-region-menu a.bn-region-item {
3152    display: flex !important; align-items: center; gap: 8px;
3153    padding: 10px 16px !important;
3154    font-family: 'Acumin Pro', 'DM Sans', sans-serif;
3155    font-size: 13px; text-transform: none; letter-spacing: 0;
3156    color: #1e252b !important; text-decoration: none;
3157    transition: background 0.2s ease, color 0.2s ease;
3158  }
3159  .bn-region-menu a.bn-region-item:hover { background: #f7f3ee; color: #fe5000 !important; }
3160  .bn-region-menu a.bn-region-item.is-active { font-weight: 700; }
3161  .bn-region-check {
3162    width: 14px; height: 14px; flex-shrink: 0;
3163    display: inline-flex; align-items: center; justify-content: center;
3164  }
3165  .bn-region-check svg { width: 13px; height: 13px; }
3166  /* Mobile: base CSS hides .utility-links under 769px — bring the group back
3167     but show only the region selector; contact/support/account move into the
3168     header's user-icon menu at this width. */
3169  @media screen and (max-width: 768px) {
3170    .utility-links { display: flex !important; }
3171    .utility-links > a,
3172    .utility-links .utility-account { display: none !important; }
3173  }
3174  /* Promo link inherits the bar's text colour;
3174 the highlight keeps its orange. */
3175  .utility-promo__link { color: inherit; text-decoration: none; }
3176  .utility-promo__link:hover { text-decoration: underline; }
3177</style>
3178<div class="utility-bar">
3179  <div class="container">
3180    <div class="utility-promo"><strong>FREE SHIPPING</strong> ON ORDERS OVER $99 + FREE 30-DAY RETURNS�</div>
3181    <div class="utility-links">
3182      
3183      <a href="/pages/support">
3184        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2z"/></svg>
3185        SUPPORT
3186      </a>
3187      �<a href="/account">
3188          <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M20 21v-2a4 4 0 00-4-4H8a4 4 0 00-4 4v2"/><circle cx="12" cy="7" r="4"/></svg>
3189          SIGN IN
3190        </a></div>
3191  </div>
3192</div>
3193
3194<script src="//www.bushnellgolf.com/cdn/shop/t/133/assets/bushnell-utility-bar.js?v=176354384251886478481790611765" defer></script>
3194
3195
3196
3197</div><div id="shopify-section-bushnell-header" class="shopify-section"><style>
3198  #shopify-section-bushnell-header h1,
3199  #shopify-section-bushnell-header h2,
3200  #shopify-section-bushnell-header h3,
3201  #shopify-section-bushnell-header h4,
3202  #shopify-section-bushnell-header h5,
3203  #shopify-section-bushnell-header h6 { font-family: 'Industry Bold', sans-serif; }
3204/* Main navigation */
3205#shopify-section-bushnell-header .nav-links > li > a {
3206  font-family: 'Industry Bold', sans-serif;
3207}
3208
3209/* Mega menu product names */
3210#shopify-section-bushnell-header .mega-link-name {
3211  font-family: 'Industry Bold', sans-serif;
3212}
3213
3214/* Featured product title */
3215#shopify-section-bushnell-header .mega-menu-featured-name,
3216#shopify-section-bushnell-header .mega-menu-featured-name a {
3217  font-family: 'Industry Bold', sans-serif;
3218}
3219
3220/* Featured cards laid out in a row (wrap to next line if many) */
3221#shopify-section-bushnell-header .mega-menu-featured-wrap {
3222  display: flex;
3223  flex-direction: row;
3224  flex-wrap: wrap;
3225  gap: 24px;
3226  flex-shrink: 0;
3227}
3228  @media screen and (max-width: 749px) {
3229    #shopify-section-bushnell-header .main-nav {
3230      padding-top: 8px;
3231      padding-bottom: 8px;
3232    }
3233    #shopify-section-bushnell-header .nav-links a {
3234      font-size: 24px;
3235    }
3236  }
3237  @media screen and (min-width: 750px) and (max-width: 989px) {
3238    #shopify-section-bushnell-header .main-nav {
3239      padding-top: 12px;
3240      padding-bottom: 12px;
3241    }
3242    #shopify-section-bushnell-header .nav-links a {
3243      font-size: 28px;
3244    }
3245  }
3246  #shopify-section-bushnell-header .logo img {
3247    object-fit: contain;
3248    height: 40px;
3249    width: auto;
3250  }
3251  @media screen and (min-width: 750px) {
3252    #shopify-section-bushnell-header .logo img {
3253      height: 33px;
3254    }
3255  }
3256  @media screen and (max-width: 749px) {
3257    .hide-mobile { display: none !important; }
3258  }
3259  .mobile-featured-cards { display: flex; flex-wrap: wrap; gap: 12px; padding: 8px 0 4px; }
3260  .mobile-featured-card { flex: 0 0 100%; min-width: 0; }
3261  .mobile-featured-card--half { flex: 0 0 calc(50% - 6px); }
3262  .mobile-featured-card__img { display: block; width: 100%; border-radius: 4px; margin-bottom: 6px; }
3263  .mobile-featured-card__badge { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; padding: 2px 6px; border-radius: 2px; display: inline-block; margin-bottom: 4px; }
3264  .mobile-featured-card__badge--new { background: var(--orange, #FE5000); color: #fff;position:absolute;  }
3265  .mobile-featured-card__badge--bestseller { background: #000; color: #fff; position:absolute;  }
3266  .mobile-featured-card__badge--sale { background: #e53; color: #fff;position:absolute;  }
3267  .mobile-featured-card__name { font-size: 13px; font-weight: 600; color: inherit; text-decoration: none; display: block; margin-bottom: 2px; }
3268  .mobile-featured-card__price { font-size: 12px; color: var(--grey-500, #666); margin-bottom: 6px; }
3269  .mobile-featured-card__cta { font-size: 11px; font-weight: 700; color: var(--orange, #FE5000); text-transform: uppercase; letter-spacing: 0.05em; }
3270  #shopify-section-bushnell-header .bn-cart-actions { display: flex; align-items: center; }
3271  #shopify-section-bushnell-header .bn-cart-actions header-actions { display: flex; align-items: center; }
3272  #shopify-section-bushnell-header .bn-cart-actions .account-button { display: none !important; }
3273  #shopify-section-bushnell-header .bn-cart-actions .header-actions__cart-icon { color: currentColor; }
3274  /* Mobile/tablet user menu: person icon between search and cart; click opens
3275     My Account / Contact / Support. Desktop keeps these in the utility bar.
3276     Also unhide the search icon at this width — the search overlay is global. */
3277  .bn-user-wrap { position: relative; display: none; align-items: center; }
3278  @media (max-width: 768px) {
3279    .bn-user-wrap { display: flex; }
3280    #shopify-section-bushnell-header .nav-search-btn { display: flex !important; }
3281  }
3282  .bn-user-btn { background: none; border: none; cursor: pointer; padding: 0; }
3283  .bn-user-menu {
3284    position: absolute; top: calc(100% + 12px); right: -10px; z-index: 300;
3285    width: 210px;
3286    opacity: 0; visibility: hidden; transform: translateY(-4px);
3287    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
3288  }
3289  .bn-user-wrap.bn-open .bn-user-menu { opacity: 1; visibility: visible; transform: translateY(0); }
3290  .bn-user-menu-card {
3291    background: #ffffff; border: 1px solid #e5e1dc; border-radius: 10px;
3292    box-shadow: 0 12px 40px rgba(30,37,43,0.18); overflow: hidden; padding: 6px 0;
3293  }
3294  .bn-user-menu a.bn-user-item {
3295    display: flex; align-items: center; gap: 10px;
3296    padding: 11px 16px;
3297    font-family: 'Industry Bold', 'Oswald', sans-serif;
3298    font-size: 12px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase;
3299    color: #1e252b; text-decoration: none;
3300    transition: background 0.2s ease, color 0.2s ease;
3301  }
3302  .bn-user-menu a.bn-user-item:hover { background: #f7f3ee; color: #fe5000; }
3303  .bn-user-menu a.bn-user-item svg { width: 15px; height: 15px; flex-shrink: 0; }
3304  .bn-user-menu a.bn-user-item--muted { color: #6b6b6b; border-top: 1px solid #f0ece7; margin-top: 6px; padding-top: 12px; }
3305  .bn-user-menu a.bn-user-item--muted:hover { color: #1e252b; }
3306  .bn-user-pip {
3307    width: 24px; height: 24px; border-radius: 50%;
3308    background: #fe5000; color: #ffffff;
3309    display: inline-flex; align-items: center; justify-content: center;
3310    font-family: 'Industry Bold', 'Oswald', sans-serif;
3311    font-size: 11px; font-weight: 700; line-height: 1;
3312  }
3313  .bn-user-menu-head { padding: 12px 16px 10px; border-bottom: 1px solid #f0ece7; margin-bottom: 6px; }
3314  .bn-user-menu-name {
3315    font-family: 'Industry Bold', 'Oswald', sans-serif;
3316    font-size: 13px; font-weight: 600; letter-spacing: 0.5px;
3317    text-transform: uppercase; color: #1e252b;
3318  }
3319  .bn-user-menu-email {
3320    font-family: 'Acumin Pro', 'DM Sans', sans-serif;
3321    font-size: 12px; color: #6b6b6b;
3322    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
3323  }
3324  /* ============================================
3325     NAV v2 (CRO) — whole-card featured links, quiet
3326     CTAs on multi-card panels, secondary Shop-all
3327     button, comparison cards, Greenbooks accent.
3328     ============================================ */
3329  /* Featured card: entire card is one link (stretched overlay); inner
3330     links/CTAs sit above it so they still work. */
3331  .mega-menu-featured { transition: transform 0.3s ease, box-shadow 0.3s ease; }
3332  .mega-menu-featured:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(30,37,43,0.10); }
3333  .mega-menu-featured-link { position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
3334  .mega-menu-featured .mega-menu-featured-name a,
3335  .mega-menu-featured .mega-menu-featured-img a,
3336  .mega-menu-featured .mega-menu-featured-cta { position: relative; z-index: 2; }
3337  /* Multi-card panels (e.g. Rangefinders): the orange button per card
3338     becomes a quiet "View details" affordance — one CTA style, no four
3339     competing primaries. Single-card panels keep their orange CTA. */
3340  .mega-menu-featured-cta--quiet,
3341  .mega-menu-featured-cta--quiet:hover {
3342    background: transparent;
3343    color: var(--orange, #FE5000);
3344    padding: 0;
3345    border-radius: 0;
3346    cursor: pointer;
3347  }
3348  /* Shop-all: visible secondary button instead of a quiet text link. */
3349  .mega-menu-shop-all {
3350    border: 2px solid var(--midnight, #1E252B);
3351    border-radius: 6px;
3352    padding: 12px 24px;
3353    transition: border-color 0.2s ease, color 0.2s ease;
3354  }
3355  .mega-menu-shop-all:hover { border-color: var(--orange, #FE5000); color: var(--orange, #FE5000); }
3356  /* Comparison cards (2-SKU categories: Launch Monitors, Simulators).
3357     Equal cards with differentiator rows — the menu becomes the
3358     "which one?" step. Whole card is the link. */
3359  .mega-menu-compare {
3360    display: grid;
3361    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
3362    gap: 20px;
3363    max-width: 920px;
3364    margin: 0 auto;
3365    width: 100%;
3366  }
3367  .mega-menu-compare-card {
3368    position: relative;
3369    display: flex;
3370    flex-direction: column;
3371    background: var(--cream, #F7F3EE);
3372    border: 1px solid var(--hairline, #E5E1DC);
3373    border-radius: var(--radius-lg, 12px);
3374    padding: 20px 24px 24px;
3375    color: var(--midnight, #1E252B);
3376    text-decoration: none;
3377    transition: transform 0.3s ease, box-shadow 0.3s ease;
3378  }
3379  .mega-menu-compare-card:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(30,37,43,0.10); }
3380  .mega-menu-compare-badge {
3381    position: absolute; top: 14px; left: 14px;
3382    font-family: var(--font-ui, 'Oswald', sans-serif);
3383    font-size: 10px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase;
3384    padding: 5px 10px; border-radius: 4px; z-index: 1;
3385  }
3386  .mega-menu-compare-badge--bestseller { background: var(--midnight, #1E252B); color: #fff; }
3387  .mega-menu-compare-badge--new { background: var(--orange, #FE5000); color: #fff; }
3388  .mega-menu-compare-badge--sale { background: #C62828; color: #fff; }
3389  .mega-menu-compare-img { height: 150px; display: flex; align-items: center; justify-content: center; overflow: hidden; }
3390  .mega-menu-compare-img img { max-width: 80%; max-height: 100%; object-fit: contain; }
3391  .mega-menu-compare-head {
3392    display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin-top: 14px;
3393  }
3394  .mega-menu-compare-name {
3395    font-family: var(--font-ui, 'Oswald', sans-serif);
3396    font-size: 16px; font-weight: 600; letter-spacing: 0.03em; text-transform: uppercase;
3397  }
3398  .mega-menu-compare-price { font-family: var(--font-ui, 'Oswald', sans-serif); font-size: 16px; font-weight: 600; white-space: nowrap; }
3399  .mega-menu-compare-desc { display: block; margin-top: 8px; font-size: 13px; line-height: 1.45; color: var(--grey-500, #6B6B6B); }
3400  .mega-menu-compare-specs {
3401    display: flex; flex-direction: column; gap: 8px;
3402    margin-top: 12px; padding-top: 12px;
3403    border-top: 1px solid var(--hairline, #E5E1DC);
3404  }
3405  .mega-menu-compare-spec { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; font-size: 13px; }
3406  .mega-menu-compare-spec-label { color: var(--grey-500, #888); }
3407  .mega-menu-compare-spec-value { font-weight: 500; text-align: right; }
3408  .mega-menu-compare-view {
3409    display: inline-flex; align-items: center; gap: 8px; margin-top: 14px;
3410    font-family: var(--font-ui, 'Oswald', sans-serif);
3411    font-size: 12px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase;
3412    color: var(--orange, #FE5000);
3413  }
3414  .mega-menu-compare-view svg { width: 14px; height: 14px; }
3415  /* Mockup parity: cream featured cards, left-aligned, name+price on one
3416     row, dark badge top-left, trust promo moved into the footer row. */
3417  .mega-menu-featured {
3418    position: relative;
3419    background: var(--cream, #F7F3EE);
3420    border: 1px solid var(--hairline, #E5E1DC);
3421    border-radius: 12px;
3422    text-align: left !important;
3423    display: flex;
3424    flex-direction: column;
3425  }
3426  /* Title on its own line, price below it. */
3427  .mega-menu-featured-head { display: block; margin-top: 16px; }
3428  .mega-menu-featured-head .mega-menu-featured-name {
3429    margin: 0;
3430    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
3431  }
3432  .mega-menu-featured-head .mega-menu-featured-price {
3433    margin: 4px 0 0; white-space: nowrap;
3434    font-family: var(--font-ui, 'Oswald', sans-serif);
3435    font-size: 17px; font-weight: 600; color: var(--midnight, #1E252B);
3436  }
3437  .mega-menu-featured-tagline { text-align: left; margin: 6px 0 0; color: var(--muted, #6B6B6B); }
3438  .mega-menu-featured .mega-menu-featured-cta { margin-top: auto; padding-top: 14px; justify-content: flex-start; align-self: flex-start; }
3439  .mega-menu-featured-badge {
3440    position: absolute; top: 14px; left: 14px; right: auto; z-index: 2;
3441    background: var(--midnight, #1E252B); color: #fff;
3442    font-family: var(--font-ui, 'Oswald', sans-serif);
3443    font-size: 10px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase;
3444    padding: 5px 10px; border-radius: 4px;
3445  }
3446  .mega-menu-featured-badge--new { background: var(--orange, #FE5000); }
3447  .mega-menu-featured-badge--sale { background: #C62828; }
3448  .mega-menu-footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
3449  .mega-menu-footer .mega-menu-promo {
3450    background: none; border: none; padding: 0; margin: 0;
3451    display: inline-flex; align-items: center; gap: 10px;
3452    color: var(--orange, #FE5000);
3453    font-family: var(--font-ui, 'Oswald', sans-serif);
3454    font-size: 12px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase;
3455  }
3456  /* Greenbooks is a sub-brand: give its accessories row the green accent. */
3457  [data-mega-panel="accessories"] .mega-menu-col-links a[href*="greenbook" i] .mega-link-name { color: var(--green, #4CAF50); }
3458  [data-mega-panel="accessories"] .mega-menu-col-links li a[href*="greenbook" i]::after { border-color: var(--green, #4CAF50); }
3459
3460  /* When an accessory link has a thumbnail, the image stacks on top so the
3461     row is tall. Move the chevron off the whole-link center and onto the
3462     name line instead, so it reads with the title (not floating by the image). */
3463  [data-mega-panel="accessories"] .mega-menu-col-links li a.mega-link--has-img::after { content: none; }
3464  [data-mega-panel="accessories"] .mega-menu-col-links li a.mega-link--has-img .mega-link-name {
3465    position: relative;
3466    padding-right: 22px;
3467  }
3468  [data-mega-panel="accessories"] .mega-menu-col-links li a.mega-link--has-img .mega-link-name::after {
3469    content: "";
3470    position: absolute;
3471    right: 4px;
3472    top: 50%;
3473    width: 8px;
3474    height: 8px;
3475    border-top: 2px solid #9b968f;
3476    border-right: 2px solid #9b968f;
3477    transform: translateY(-50%) rotate(45deg);
3478  }
3479  [data-mega-panel="accessories"] .mega-menu-col-links li a[href*="greenbook" i].mega-link--has-img .mega-link-name::after { border-color: var(--green, #4CAF50); }
3480</style><nav class="main-nav" data-mega-nav>
3481  <div class="container"><button class="mobile-hamburger" aria-label="Open menu" data-drawer-open>
3482      <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/></svg>
3483    </button>
3484
3485    <a class="logo" href="/"><img src="//www.bushnellgolf.com/cdn/shop/files/Bushnell.png?v=1781040317&amp;
3485width=600" alt="Bushnell Golf" srcset="//www.bushnellgolf.com/cdn/shop/files/Bushnell.png?v=1781040317&amp;width=352 352w, //www.bushnellgolf.com/cdn/shop/files/Bushnell.png?v=1781040317&amp;width=600 600w" width="600" height="213" loading="eager" class="logo__image">�</a><ul class="nav-links"><li
3486             data-mega-trigger="rangefinders"
3487            style="text-align:left;padding:0px 0px 0px 0px;"
3488            >
3489            <a href="/collections/golf-rangefinders">RANGEFINDERS</a>
3490          </li><li
3491             data-mega-trigger="launch-monitors"
3492            style="text-align:left;padding:0px 0px 0px 0px;"
3493            >
3494            <a href="/collections/launch-monitors">LAUNCH MONITORS</a>
3495          </li><li
3496             data-mega-trigger="SIMULATOR"
3497            style="text-align:left;padding:0px 0px 0px 0px;"
3498            >
3499            <a href="/collections/golf-simulators">SIMULATORS</a>
3500          </li><li
3501             data-mega-trigger="speakers"
3502            style="text-align:left;padding:0px 0px 0px 0px;"
3503            >
3504            <a href="/collections/golf-gps-speakers">Speakers</a>
3505          </li><li
3506             data-mega-trigger="gps"
3507            style="text-align:left;padding:0px 0px 0px 0px;"
3508            >
3509            <a href="/collections/golf-gps">GPS</a>
3510          </li><li
3511             data-mega-trigger="accessories"
3512            style="text-align:left;padding:0px 0px 0px 0px;"
3513            >
3514            <a href="/collections/accessories">ACCESSORIES</a>
3515          </li><li
3516            
3517            style="text-align:left;padding:0px 0px 0px 0px;"
3518            >
3519            <a href="/collections/sale">Sale</a>
3520          </li></ul>
3521
3522    <div class="nav-actions">
3523      <button aria-label="Search" class="nav-search-btn" data-search-toggle>
3524        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></svg>
3525      </button>
3526      <div class="bn-user-wrap" data-bn-user>
3527        <button type="button" aria-label="Account and support menu" class="bn-user-btn" aria-haspopup="true"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M20 21v-2a4 4 0 00-4-4H8a4 4 0 00-4 4v2"/><circle cx="12" cy="7" r="4"/></svg></button>
3528        <div class="bn-user-menu">
3529          <div class="bn-user-menu-card"><a class="bn-user-item" href="/account">
3530                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M20 21v-2a4 4 0 00-4-4H8a4 4 0 00-4 4v2"/><circle cx="12" cy="7" r="4"/></svg>
3531                Sign In
3532              </a><a class="bn-user-item" href="/pages/contact">
3533              <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"/><path d="M22 6l-10 7L2 6"/></svg>
3534              Contact
3535            </a>
3536            <a class="bn-user-item" href="/pages/support">
3537              <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 15a2 2 0 01-2 2H7l-4 4V5a2 2 0 012-2h14a2 2 0 012 2z"/></svg>
3538              Support
3539            </a></div>
3540        </div>
3541      </div>
3542      <div class="bn-cart-actions">
3543        
3543<script
3544  type="module"
3545  src="//www.bushnellgolf.com/cdn/shop/t/133/assets/cart-icon.js?v=149223991140032574051790611765"
3546  fetchpriority="low"
3547></script>
3547
3548
3549<script src="//www.bushnellgolf.com/cdn/shop/t/133/assets/bushnell-ajax-cart.js?v=161944157569204579171790611764" defer></script>
vendor: 2 bytes, line 3549
3549
3550<script src="//www.bushnellgolf.com/cdn/shop/t/133/assets/bushnell-drag-scroll.js?v=110690801177579278971790611765" defer></script>
3550
3551
3552
3553
3554
3555
3556<header-actions
3557  �>
3558  
3559    
3560    <div
3561      class="account-button header-actions__action color-scheme-1"
3562    >
3563      <shopify-store store-domain="https://www.bushnellgolf.com" country="US" language="en"></shopify-store>
3564<shopify-account
3565        menu=""
3566        
3567      >
3568        
3569          <span
3570            slot="signed-out-avatar"
3571            class="account-button__text header-actions__text-style hidden"
3572          >
3573            Account
3574          </span>
3575
3576          <span
3577            slot="signed-out-avatar"
3578            class=""
3579            aria-hidden="true"
3580          >
3581            
3582  <svg
3583    xmlns="http://www.w3.org/2000/svg"
3584    width="15"
3585    height="17"
3586    viewBox="0 0 15 17"
3587    fill="none"
3588    slot="signed-out-avatar"
3589    class="account-button__icon"
3590  >
3591    <path
3592      stroke="currentColor"
3593      stroke-linejoin="round"
3594      stroke-width="var(--icon-stroke-width)"
3595      d="M10.375 3.813a3.063 3.063 0 1 1-6.125 0 3.063 3.063 0 0 1 6.125 0ZM7.313 9.5c-3.667 0-6.24 2.691-6.563 6.125h13.125C13.552 12.191 10.979 9.5 7.312 9.5Z"
3596    />
3597  </svg>
3598
3599          </span>
3600        
3601      </shopify-account>
3602    </div>
3603  
3604
3605  
3606    
3606<script
3607      src="//www.bushnellgolf.com/cdn/shop/t/133/assets/cart-drawer.js?v=40387549154824438721790611765"
3608      type="module"
3609      fetchpriority="low"
3610    ></script>
3610
3611
3612    
3613
3614    <cart-drawer-component
3615      class="cart-drawer"
3616      
3617      
3618    >
3619      <template id="empty-cart-template">
3620        
3621      <div class="cart-drawer__header">
3622        <button
3623          ref="closeButton"
3624          on:click="cart-drawer-component/close"
3625          class="button close-button cart-drawer__close-button button-unstyled"
3626          aria-label="Close dialog"
3627        >
3628          <span class="svg-wrapper"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
3629  <path d="M12 2L2 12" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
3630  <path d="M12 12L2 2" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
3631</svg>
3632</span>
3633        </button>
3634      </div>
3635
3636      <div
3637        class="cart-drawer__content bn-empty"
3638        aria-label="Cart"
3639      >
3640        <div class="bn-empty__inner">
3641          <div class="bn-empty__icon">
3642            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><circle cx="9" cy="21" r="1"/><circle cx="20" cy="21" r="1"/><path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"/></svg>
3643          </div>
3644          <div class="bn-empty__title" id="cart-drawer-heading-empty">Your cart is empty</div>
3645          <p class="bn-empty__text">Nothing here yet — explore the gear trusted by 98.4% of PGA Tour pros.</p>
3646          <button
3647            type="button"
3648            on:click="cart-drawer-component/close"
3649            class="bn-empty__cta button-unstyled"
3650          >
3651            Continue shopping
3652          </button>
3653
3654          <div class="bn-empty__cats">
3655            <div class="bn-empty__eyebrow">Shop by category</div>
3656            <div class="bn-empty__grid">
3657              <a href="/collections/golf-rangefinders" class="bn-empty__tile">
3658                <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"><circle cx="12" cy="12" r="9"/><line x1="12" y1="2" x2="12" y2="6"/><line x1="12" y1="18" x2="12" y2="22"/><line x1="2" y1="12" x2="6" y2="12"/><line x1="18" y1="12" x2="22" y2="12"/><circle cx="12" cy="12" r="2.4"/></svg>
3659                <span>Rangefinders</span>
3660              </a>
3661              <a href="/collections/launch-monitors" class="bn-empty__tile">
3662                <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12h-4l-3 9L9 3l-3 9H2"/></svg>
3663                <span>Launch Monitors</span>
3664              </a>
3665              <a href="/collections/golf-gps" class="bn-empty__tile">
3666                <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></svg>
3667                <span>GPS</span>
3668              </a>
3669              <a href="/collections/accessories" class="bn-empty__tile">
3670                <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"/><line x1="7" y1="7" x2="7.01" y2="7"/></svg>
3671                <span>Accessories</span>
3672              </a>
3673            </div>
3674          </div>
3675        </div>
3676      </div>
3677    
3678      </template>
3679      <button
3680        class="header-actions__action button-unstyled"
3681        on:click="/open"
3682        aria-haspopup="dialog"
3683        aria-label="Cart"
3684        aria-describedby="cart-bubble-text"
3685        data-testid="cart-drawer-trigger"
3686      >
3687        
3688  <cart-icon
3689    class="header-actions__cart-icon"
3690    data-testid="cart-icon"
3691  >
3692    <span class="hidden">
3693      Cart
3694    </span>
3695
3696    <span
3697      class="svg-wrapper "
3698      aria-hidden="true"
3699    >
3700      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="none"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="var(--icon-stroke-width)" d="M3.392 6.875h13.216v8.016c0 .567-.224 1.112-.624 1.513-.4.402-.941.627-1.506.627H5.522a2.13 2.13 0 0 1-1.506-.627 2.15 2.15 0 0 1-.624-1.513zM8.818 2.969h2.333c.618 0 1.211.247 1.649.686a2.35 2.35 0 0 1 .683 1.658v1.562H6.486V5.313c0-.622.246-1.218.683-1.658a2.33 2.33 0 0 1 1.65-.686"/></svg>
3701
3702    </span>
3703
3704    <div
3705  ref="cartBubble"
3706  class="cart-bubble visually-hidden"
3707  
3708  
3709    data-maintain-ratio
3710  
3711>
3712  <span class="cart-bubble__background"></span>
3713  <span
3714    ref="cartBubbleText"
3715    id="cart-bubble-text"
3716    class="cart-bubble__text"
3717    
3718      role="status"
3719    
3720  >
3721    <span class="visually-hidden">Total items in cart: 0
3722    </span>
3723    <span
3724      class="cart-bubble__text-count hidden"
3725      ref="cartBubbleCount"
3726      aria-hidden="true"
3727      data-testid="cart-bubble"
3728    >�0</span>
3729  </span>
3730</div>
3731
3732  </cart-icon>
3733
3734      </button>
3735
3736      <dialog
3737        ref="dialog"
3738        class="cart-drawer__dialog dialog-modal dialog-drawer color-scheme-1 cart-drawer--empty"
3739        data-testid="cart-drawer-dialog"
3740        aria-labelledby="cart-drawer-heading-empty"
3741        scroll-lock
3742        cart-summary-sticky="true"
3743      >
3744        <div
3745          class="cart-drawer__inner"
3746          data-hydration-key="cart-drawer-inner"
3747        >
3748          <cart-items-component
3749            class="cart-items-component"
3750            data-drawer
3751            data-section-id="bushnell-header"
3752          >
3753      <div class="cart-drawer__header">
3754        <button
3755          ref="closeButton"
3756          on:click="cart-drawer-component/close"
3757          class="button close-button cart-drawer__close-button button-unstyled"
3758          aria-label="Close dialog"
3759        >
3760          <span class="svg-wrapper"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
3761  <path d="M12 2L2 12" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
3762  <path d="M12 12L2 2" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
3763</svg>
3764</span>
3765        </button>
3766      </div>
3767
3768      <div
3769        class="cart-drawer__content bn-empty"
3770        aria-label="Cart"
3771      >
3772        <div class="bn-empty__inner">
3773          <div class="bn-empty__icon">
3774            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5"><circle cx="9" cy="21" r="1"/><circle cx="20" cy="21" r="1"/><path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"/></svg>
3775          </div>
3776          <div class="bn-empty__title" id="cart-drawer-heading-empty">Your cart is empty</div>
3777          <p class="bn-empty__text">Nothing here yet — explore the gear trusted by 98.4% of PGA Tour pros.</p>
3778          <button
3779            type="button"
3780            on:click="cart-drawer-component/close"
3781            class="bn-empty__cta button-unstyled"
3782          >
3783            Continue shopping
3784          </button>
3785
3786          <div class="bn-empty__cats">
3787            <div class="bn-empty__eyebrow">Shop by category</div>
3788            <div class="bn-empty__grid">
3789              <a href="/collections/golf-rangefinders" class="bn-empty__tile">
3790                <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"><circle cx="12" cy="12" r="9"/><line x1="12" y1="2" x2="12" y2="6"/><line x1="12" y1="18" x2="12" y2="22"/><line x1="2" y1="12" x2="6" y2="12"/><line x1="18" y1="12" x2="22" y2="12"/><circle cx="12" cy="12" r="2.4"/></svg>
3791                <span>Rangefinders</span>
3792              </a>
3793              <a href="/collections/launch-monitors" class="bn-empty__tile">
3794                <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12h-4l-3 9L9 3l-3 9H2"/></svg>
3795                <span>Launch Monitors</span>
3796              </a>
3797              <a href="/collections/golf-gps" class="bn-empty__tile">
3798                <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></svg>
3799                <span>GPS</span>
3800              </a>
3801              <a href="/collections/accessories" class="bn-empty__tile">
3802                <svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"/><line x1="7" y1="7" x2="7.01" y2="7"/></svg>
3803                <span>Accessories</span>
3804              </a>
3805            </div>
3806          </div>
3807        </div>
3808      </div>
3809    �</cart-items-component>
3810        </div>
3811      </dialog>
3812    </cart-drawer-component>
3813  
3814</header-actions>
3815
3816
3817
3818      </div>
3819    </div>
3820  </div><div class="mega-menu-dropdown" data-mega-panel="rangefinders" hidden>
3821        <div class="container"><div class="mega-menu-grid">
3822            <div class="mega-menu-columns"></div><div class="mega-menu-featured-wrap"><div class="mega-menu-featured"
3823                    style="text-align:center;padding:20px 20px 20px 20px;"
3824                    >
3825                    <a class="mega-menu-featured-link" href="/products/pro-x3-link" aria-label="View Pro X3+LINK"></a><div class="mega-menu-featured-badge mega-menu-featured-badge--bestseller">Best Seller</div><div class="mega-menu-featured-img">
3826                        <a href="/products/pro-x3-link">
3827                          <img src="//www.bushnellgolf.com/cdn/shop/files/BG-DTC-202450-Pro-X3-Plus-Hero__38872.1748636017.386.513_08b9b827-7cea-42e0-b245-c8d6f0546c09.webp?v=1789408607&width=600" alt="Pro X3+LINK" width="600" height="200" loading="lazy">
3828                        </a>
3829                      </div><div class="mega-menu-featured-head">
3830                      <div class="mega-menu-featured-name"><a href="/products/pro-x3-link">Pro X3+LINK</a></div>
3831                      <div class="mega-menu-featured-price">$599.99</div>
3832                    </div><div class="mega-menu-featured-tagline">The most accurate rangefinder that Bushnell Golf has ever made.</div><a class="mega-menu-featured-cta mega-menu-featured-cta--quiet" href="/products/pro-x3-link">
3833                        View details
3834                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="14" height="14"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>
3835                      </a></div><div class="mega-menu-featured"
3836                    style="text-align:center;padding:20px 20px 20px 20px;"
3837                    >
3838                    <a class="mega-menu-featured-link" href="/products/tour
3838-hybrid" aria-label="View Tour Hybrid"></a><div class="mega-menu-featured-img">
3839                        <a href="/products/tour-hybrid">
3840                          <img src="//www.bushnellgolf.com/cdn/shop/files/tour-hybrid-carousel-image__72261.png?v=1780538602&width=600" alt="Tour Hybrid" width="600" height="200" loading="lazy">
3841                        </a>
3842                      </div><div class="mega-menu-featured-head">
3843                      <div class="mega-menu-featured-name"><a href="/products/tour-hybrid">Tour Hybrid</a></div>
3844                      <div class="mega-menu-featured-price">$499.99</div>
3845                    </div><div class="mega-menu-featured-tagline">Slope Compensated Laser and GPS Distances in the display</div><a class="mega-menu-featured-cta mega-menu-featured-cta--quiet" href="/products/tour-hybrid">
3846                        View details
3847                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="14" height="14"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>
3848                      </a></div><div class="mega-menu-featured"
3849                    style="text-align:center;padding:20px 20px 20px 20px;"
3850                    >
3851                    <a class="mega-menu-featured-link" href="/products/tour-v7-shift" aria-label="View Tour V7 Shift"></a><div class="mega-menu-featured-badge mega-menu-featured-badge--new">New</div><div class="mega-menu-featured-img">
3852                        <a href="/products/tour-v7-shift">
3853                          <img src="//www.bushnellgolf.com/cdn/shop/files/TOUR_V7_Carousel_Image_1__03665.1773382564.386.513_fa921b3e-6d9e-4449-9297-a97d5faa0802.png?v=1781021526&width=600" alt="Tour V7 Shift" width="600" height="200" loading="lazy">
3854                        </a>
3855                      </div><div class="mega-menu-featured-head">
3856                      <div class="mega-menu-featured-name"><a href="/products/tour-v7-shift">Tour V7 Shift</a></div>
3857                      <div class="mega-menu-featured-price">$399.99</div>
3858                    </div><div class="mega-menu-featured-tagline">All-new Dual Color (red and green) OLED Display with Slope-Switch Technology.</div><a class="mega-menu-featured-cta mega-menu-featured-cta--quiet" href="/products/tour-v7-shift">
3859                        View details
3860                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="14" height="14"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>
3861                      </a></div><div class="mega-menu-featured"
3862                    style="text-align:center;padding:20px 20px 20px 20px;"
3863                    >
3864                    <a class="mega-menu-featured-link" href="/products/a1-slope" aria-label="View A1-Slope"></a><div class="mega-menu-featured-img">
3865                        <a href="/products/a1-slope">
3866                          <img src="//www.bushnellgolf.com/cdn/shop/files/a1-slope-feature-image__34701.png?v=1782349159&width=600" alt="A1-Slope" width="600" height="200" loading="lazy">
3867                        </a>
3868                      </div><div class="mega-menu-featured-head">
3869                      <div class="mega-menu-featured-name"><a href="/products/a1-slope">A1-Slope</a></div>
3870                      <div class="mega-menu-featured-price">$299.99</div>
3871                    </div><div class="mega-menu-featured-tagline">Precision and Slope gone ultra-compact.</div><a class="mega-menu-featured-cta mega-menu-featured-cta--quiet" href="/products/a1-slope">
3872                        View details
3873                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="14" height="14"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>
3874                      </a></div></div></div><div class="mega-menu-footer"><div class="mega-menu-promo">
3875                  Trusted by 98.4% of PGA Tour pros.
3876                </div><a href="/collections/golf-rangefinders" class="mega-menu-shop-all">
3877                  SHOP ALL RANGEFINDERS
3878                  <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="14" height="14"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>
3879                </a></div></div>
3880      </div><div class="mega-menu-dropdown" data-mega-panel="launch-monitors" hidden>
3881        <div class="container"><div class="mega-menu-compare"><a class="mega-menu-compare-card" href="/products/launch-pro" ><span class="mega-menu-compare-badge mega-menu-compare-badge--bestseller">Best Seller</span><span class="mega-menu-compare-img">
3882                      <img src="//www.bushnellgolf.com/cdn/shop/files/LP_Product_Carousel_1_2_1__62065.1762889085.386.513_4c815453-5a18-4f6b-b55d-5e161ad7ab2a.png?v=1781021541&width=600" alt="Launch Pro" width="600" height="300" loading="lazy">
3883                    </span><span class="mega-menu-compare-head">
3884                    <span class="mega-menu-compare-name">Launch Pro</span>
3885                    <span class="mega-menu-compare-price">$2,999.99</span>
3886                  </span><span class="mega-menu-compare-specs"><span class="mega-menu-compare-spec"><span class="mega-menu-compare-spec-label">Where</span><span class="mega-menu-compare-spec-value">Indoor + Outdoor</span></span><span class="mega-menu-compare-spec"><span class="mega-menu-compare-spec-label">Data</span><span class="mega-menu-compare-spec-value">Club + Ball</span></span><span class="mega-menu-compare-spec"><span class="mega-menu-compare-spec-label">Best for</span><span class="mega-menu-compare-spec-value">Full sim + range use</span></span></span>
3887                  <span class="mega-menu-compare-view">
3888                    View details
3889                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="14" height="14"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>
3890                  </span>
3891                </a><a class="mega-menu-compare-card" href="/products/lpi-personal-launch-monitor" ><span class="mega-menu-compare-img">
3892                      <img src="//www.bushnellgolf.com/cdn/shop/files/LPi_Product_Carousel_1_1__92363.1762888626.386.513.png?v=1781021499&width=600" alt="Launch Pro Indoor" width="600" height="300" loading="lazy">
3893                    </span><span class="mega-menu-compare-head">
3894                    <span class="mega-menu-compare-name">Launch Pro Indoor</span>
3895                    <span class="mega-menu-compare-price">$1,999.99</span>
3896                  </span><span class="mega-menu-compare-specs"><span class="mega-menu-compare-spec"><span class="mega-menu-compare-spec-label">Where</span><span class="mega-menu-compare-spec-value">Indoor only</span></span><span class="mega-menu-compare-spec"><span class="mega-menu-compare-spec-label">Data</span><span class="mega-menu-compare-spec-value">Club + Ball</span></span><span class="mega-menu-compare-spec"><span class="mega-menu-compare-spec-label">Best for</span><span class="mega-menu-compare-spec-value">Home simulator setups</span></span></span>
3897                  <span class="mega-menu-compare-view">
3898                    View details
3899                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="14" height="14"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>
3900                  </span>
3901                </a></div><div class="mega-menu-footer"><span></span><a href="/collections/launch-monitors" class="mega-menu-shop-all">
3902                  SHOP ALL LAUNCH MONITORS
3903                  <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="14" height="14"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>
3904                </a></div></div>
3905      </div><div class="mega-menu-dropdown" data-mega-panel="SIMULATOR" hidden>
3906        <div class="container"><div class="mega-menu-compare"><a class="mega-menu-compare-card" href="/products/launch-pro-simulator-bundle" ><span class="mega-menu-compare-badge mega-menu-compare-badge--bestseller">Best Seller</span><span class="mega-menu-compare-img">
3907                      <img src="//www.bushnellgolf.com/cdn/shop/files/LP_Simulator_Package_Carousel_8.png?v=1789702490&width=600" alt="Launch Pro Simulator Bundle" width="600" height="300" loading="lazy">
3908                    </span><span class="mega-menu-compare-head">
3909                    <span class="mega-menu-compare-name">Launch Pro Simulator Bundle</span>
3910                    <span class="mega-menu-compare-price">$6,499.99</span>
3911                  </span><span class="mega-menu-compare-specs"><span class="mega-menu-compare-spec"><span class="mega-menu-compare-spec-label">Monitor</span><span class="mega-menu-compare-spec-value">Launch Pro (indoor + outdoor)</span></span><span class="mega-menu-compare-spec"><span class="mega-menu-compare-spec-label">Includes</span><span class="mega-menu-compare-spec-value">Screen + enclosure</span></span><span class="mega-menu-compare-spec"><span class="mega-menu-compare-spec-label">Best for</span><span class="mega-menu-compare-spec-value">The complete build</span></span></span>
3912                  <span class="mega-menu-compare-view">
3913                    View details
3914                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="14" height="14"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>
3915                  </span>
3916                </a><a class="mega-menu-compare-card" href="/products/launch-pro-i-simulator-bundle" ><span class="mega-menu-compare-img">
3917                      <img src="//www.bushnellgolf.com/cdn/shop/files/LP_Simulator_Package_Carousel_7.png?v=1789702153&width=600" alt="Launch Pro i Simulator Bundle" width="600" height="300" loading="lazy">
3918                    </span><span class="mega-menu-compare-head">
3919                    <span class="mega-menu-compare-name">Launch Pro i Simulator Bundle</span>
3920                    <span class="mega-menu-compare-price">$5,499.99</span>
3921                  </span><span class="mega-menu-compare-specs"><span class="mega-menu-compare-spec"><span class="mega-menu-compare-spec-label">Monitor</span><span class="mega-menu-compare-spec-value">Launch Pro i (indoor)</span></span><span class="mega-menu-compare-spec"><span class="mega-menu-compare-spec-label">Includes</span><span class="mega-menu-compare-spec-value">Full sim setup</span></span><span class="mega-menu-compare-spec"><span class="mega-menu-compare-spec-label">Best for</span><span class="mega-menu-compare-spec-value">Dedicated indoor rooms</span></span></span>
3922                  <span class="mega-menu-compare-view">
3923                    View details
3924                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="14" height="14"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>
3925                  </span>
3926                </a></div><div class="mega-menu-footer"><div class="mega-menu-promo">
3927                  Your home course, open 365 days a year.
3928                </div><a href="/collections/golf-simulators" class="mega-menu-shop-all">
3929                  SHOP ALL SIMULATORS
3930                  <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="14" height="14"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>
3931                </a></div></div>
3932      </div><div class="mega-menu-dropdown" data-mega-panel="speakers" hidden>
3933        <div class="container"><div class="mega-menu-grid">
3934            <div class="mega-menu-columns"></div><div class="mega-menu-featured-wrap"><div class="mega-menu-featured"
3935                    style="text-align:center;padding:20px 20px 20px 20px;"
3936                    >
3937                    <a class="mega-menu-featured-link" href="/products/wingman-hd" aria-label="View Wingman HD"></a><div class="mega-menu-featured-badge mega-menu-featured-badge--new">New</div><div class="mega-menu-featured-img">
3938                        <a href="/products/wingman-hd">
3939                          <img src="//www.bushnellgolf.com/cdn/shop/files/WINGMAN_HD_Carousel_Image_1__93749.1760039492.386.513_c2959888-8393-49f9-bd6a-77908e835669.png?v=1781021521&width=600" alt="Wingman HD" width="600" height="200" loading="lazy">
3940                        </a>
3941                      </div><div class="mega-menu-featured-head">
3942                      <div class="mega-menu-featured-name"><a href="/products/wingman-hd">Wingman HD</a></div>
3943                      <div class="mega-menu-featured-price">$249.99</div>
3944                    </div><div class="mega-menu-featured-tagline">3.5″ HD touchscreen + 360° audio</div><a class="mega-menu-featured-cta mega-menu-featured-cta--quiet" href="/products/wingman-hd">
3945                        View details
3946                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="14" height="14"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>
3947                      </a></div><div class="mega-menu-featured"
3948                    style="text-align:center;padding:20px 20px 20px 20px;"
3949                    >
3950                    <a class="mega-menu-featured-link" href="/products/wingman-view" aria-label="View Wingman View"></a><div class="mega-menu-featured-img">
3951                        <a href="/products/wingman-view">
3952                          <img src="//www.bushnellgolf.com/cdn/shop/files/BG-DTC-362210-Wingman-View-Hero__83017.1713450886.386.513_d34b0b06-c47d-454a-a114-e8bb9c6a3649.png?v=1781021539&width=600" alt="Wingman View" width="600" height="200" loading="lazy">
3953                        </a>
3954                      </div><div class="mega-menu-featured-head">
3955                      <div class="mega-menu-featured-name"><a href="/products/wingman-view">Wingman View</a></div>
3956                      <div class="mega-menu-featured-price">$199.99</div>
3957                    </div><div class="mega-menu-featured-tagline">Visual + audible GPS · speaker</div><a class="mega-menu-featured-cta mega-menu-featured-cta--quiet" href="/products/wingman-view">
3958                        View details
3959                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="14" height="14"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>
3960                      </a></div><div class="mega-menu-featured"
3961                    style="text-align:center;padding:20px 20px 20px 20px;"
3962                    >
3963                    <a class="mega-menu-featured-link" href="/products/wingman-2-gps-speaker" aria-label="View Wingman 2 GPS Speaker"></a><div class="mega-menu-featured-img">
3964                        <a href="/products/wingman-2-gps-speaker">
3965                          <img src="//www.bushnellgolf.com/cdn/shop/files/Wingman-2-Front-Three-Quarter__93889.1709586394.386.513_4e7f15ab-16ad-4aed-8329-7491ef314e42.png?v=1781021505&width=600" alt="Wingman 2 GPS Speaker" width="600" height="200" loading="lazy">
3966                        </a>
3967                      </div><div class="mega-menu-featured-head">
3968                      <div class="mega-menu-featured-name"><a href="/products/wingman-2-gps-speaker">Wingman 2</a></div>
3969                      <div class="mega-menu-featured-price">$169.99</div>
3970                    </div><div class="mega-menu-featured-tagline">Audible GPS · BITE magnetic speaker</div><a class="mega-menu-featured-cta mega-menu-featured-cta--quiet" href="/products/wingman-2-gps-speaker">
3971                        View details
3972                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="14" height="14"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>
3973                      </a></div><div class="mega-menu-featured"
3974                    style="text-align:center;padding:20px 20px 20px 20px;"
3975                    >
3976                    <a class="mega-menu-featured-link" href="/products/wingman-mini-gps-speaker" aria-label="View Wingman Mini GPS Speaker"></a><div class="mega-menu-featured-img">
3977                        <a href="/products/wingman-mini-gps-speaker">
3978                          <img src="//www.bushnellgolf.com/cdn/shop/files/BG-DTC-362310-362311-Wingman-Mini-Group__46217.1713452376.386.513_70382c1b-115c-4dbe-8885-57e83f36d0da.png?v=1775581314&width=600" alt="Wingman Mini GPS Speaker" width="600" height="200" loading="lazy">
3979                        </a>
3980                      </div><div class="mega-menu-featured-head">
3981                      <div class="mega-menu-featured-name"><a href="/products/wingman-mini-gps-speaker">Wingman Mini</a></div>
3982                      <div class="mega-menu-featured-price">$109.99</div>
3983                    </div><div class="mega-menu-featured-tagline">Compact GPS speaker · walkers & riders</div><a class="mega-menu-featured-cta mega-menu-featured-cta--quiet" href="/products/wingman-mini-gps-speaker">
3984                        View details
3985                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="14" height="14"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>
3986                      </a></div></div></div><div class="mega-menu-footer"><div class="mega-menu-promo">
3987                  Premium Audio for Every Adventure.
3988                </div><a href="/collections/golf-gps-speakers" class="mega-menu-shop-all">
3989                  SHOP ALL SPEAKERS
3990                  <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="14" height="14"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>
3991                </a></div></div>
3992      </div><div class="mega-menu-dropdown" data-mega-panel="gps" hidden>
3993        <div class="container"><div class="mega-menu-grid">
3994            <div class="mega-menu-columns"></div><div class="mega-menu-featured-wrap"><div class="mega-menu-featured"
3995                    style="text-align:center;padding:20px 20px 20px 20px;"
3996                    >
3997                    <a class="mega-menu-featured-link" href="/products/ion-elite" aria-label="View iON Elite"></a><div class="mega-menu-featured-img">
3998                        <a href="/products/ion-elite">
3999                          <img src="//www.bushnellgolf.com/cdn/shop/files/BG-DTC-362150-362151-iON-Elite-Group__84330.1713454139.386.513_834afcd4-d363-4826-a310-1d5a1a8e1ffd.png?v=1775581209&width=600" alt="iON Elite" width="600" height="200" loading="lazy">
4000                        </a>
4001                      </div><div class="mega-menu-featured-head">
4002                      <div class="mega-menu-featured-name"><a href="/products/ion-elite">iON Elite</a></div>
4003                      <div class="mega-menu-featured-price">$219.99</div>
4004                    </div><div class="mega-menu-featured-tagline">Slope GPS watch · preloaded courses</div><a class="mega-menu-featured-cta mega-menu-featured-cta--quiet" href="/products/ion-elite">
4005                        View details
4006                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="14" height="14"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>
4007                      </a></div><div class="mega-menu-featured"
4008                    style="text-align:center;padding:20px 20px 20px 20px;"
4009                    >
4010                    <a class="mega-menu-featured-link" href="/products/phantom-3-slope-gps" aria-label="View Phantom 3 Slope GPS"></a><div class="mega-menu-featured-img">
4011                        <a href="/products/phantom-3-slope-gps">
4012                          <img src="//www.bushnellgolf.com/cdn/shop/files/BG-DTC-362401-362402-362403-362404-Phantom-3-Group__06111.1718293560.386.513_d002f9f9-db04-4721-abad-50909e1ccdc3.png?v=1775581452&width=600" alt="Phantom 3 Slope GPS" width="600" height="200" loading="lazy">
4013                        </a>
4014                      </div><div class="mega-menu-featured-head">
4015                      <div class="mega-menu-featured-name"><a href="/products/phantom-3-slope-gps">Phantom 3</a></div>
4016                      <div class="mega-menu-featured-price">$169.99</div>
4017                    </div><div class="mega-menu-featured-tagline">Slope touchscreen GPS · front/center/back</div><a class="mega-menu-featured-cta mega-menu-featured-cta--quiet" href="/products/phantom-3-slope-gps">
4018                        View details
4019                        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="14" height="14"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>
4020                      </a></div></div></div><div class="mega-menu-footer"><div class="mega-menu-promo">
4021                  Find the Perfect GPS for Every Round.
4022                </div><a href="/collections/golf-gps" class="mega-menu-shop-all">
4023                  SHOP ALL GPS
4024                  <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="14" height="14"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>
4025                </a></div></div>
4026      </div><div class="mega-menu-dropdown" data-mega-panel="accessories" hidden>
4027        <div class="container"><div class="mega-menu-grid">
4028            <div class="mega-menu-columns"><div class="mega-menu-col"
4029                    style="text-align:left;padding:0px 0px 0px 0px;"
4030                    >
4031                    <div class="mega-menu-col-heading">Shop</div><ul class="mega-menu-col-links"><li
4032                            style="text-align:left;padding:0px 0px 0px 0px;"
4033                            >
4034                            <a href="/collections/accessories"><span class="mega-link-text">
4035                                <span class="mega-link-name">
4036                                  Cases & Mounts�</span><span class="mega-link-sub">Protect and secure your gear.</span></span>
4037                            </a>
4038                          </li><li
4039                            style="text-align:left;padding:0px 0px 0px 0px;"
4040                            >
4041                            <a href="/collections/replacement-parts"><span class="mega-link-text">
4042                                <span class="mega-link-name">
4043                                  Replacement Parts�</span><span class="mega-link-sub">Genuine parts + Extend Protection Plan</span></span>
4044                            </a>
4045                          </li></ul>
4046                  </div><div class="mega-menu-col"
4047                    style="text-align:left;padding:0px 0px 0px 0px;"
4048                    >
4049                    <div class="mega-menu-col-heading">Resources</div><ul class="mega-menu-col-links"><li
4050                            style="text-align:left;padding:0px 0px 0px 0px;"
4051                            >
4052                            <a href="https://greenbooks.com/?utm_source=Website&utm_medium=product&utm_campaign=sales&utm_content=learn+more" class="mega-link--has-img" target="_blank" rel="noopener noreferrer"><img class="mega-link-img" src="//www.bushnellgolf.com/cdn/shop/files/green-books-menu__66107.original.png?v=1785443625&width=320" alt="Greenbooks" width="160" height="160" style="width:160px;height:auto;" loading="lazy"><span class="mega-link-text">
4053                                <span class="mega-link-name">
4054                                  Greenbooks�</span><span class="mega-link-sub">The #1 course guide, used by tour caddies.</span></span>
4055                            </a>
4056                          </li></ul>
4057                  </div></div></div><div class="mega-menu-footer"><div class="mega-menu-promo">
4058                  Genuine Bushnell parts and guides
4059                </div><a href="/collections/accessories" class="mega-menu-shop-all">
4060                  SHOP ALL ACCESSORIES
4061                  <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="14" height="14"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>
4062                </a></div></div>
4063      </div>
4064</nav><div class="mobile-overlay" data-drawer-overlay></div>
4065<div class="mobile-drawer" data-mobile-drawer>
4066  <div class="mobile-drawer-header">
4067    <a class="logo" href="/"><img src="//www.bushnellgolf.com/cdn/shop/files/Bushnell.png?v=1781040317&amp;width=600" alt="Bushnell Golf" srcset="//www.bushnellgolf.com/cdn/shop/files/Bushnell.png?v=1781040317&amp;width=352 352w, //www.bushnellgolf.com/cdn/shop/files/Bushnell.png?v=1781040317&amp;width=600 600w" width="600" height="213" loading="eager" class="logo__image">�</a>
4068    <button class="mobile-drawer-close" aria-label="Close menu" data-drawer-close>
4069      <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
4070    </button>
4071  </div>
4072  <div class="mobile-drawer-search">
4073    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></svg>
4074    <form action="/search" method="get">
4075      <input type="text" name="q" placeholder="Search products..." autocomplete="off" aria-label="Search products">
4076    </form>
4077  </div>
4078  <div class="mobile-drawer-nav"><div class="mobile-accordion">
4079              <button class="mobile-accordion-trigger" data-accordion-trigger>
4080                <span>RANGEFINDERS</span>
4081                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"/></svg>
4082              </button>
4083              <div class="mobile-accordion-panel" hidden><a class="mobile-accordion-link" href="/products/pro-x3-link" >
4084                          <span class="mobile-accordion-link-row">
4085                            <span class="mobile-accordion-link-name">
4086                              Pro X3+LINK�<span class="mega-link-badge mega-link-badge--bestseller">Best Seller</span></span>
4087                            <span class="mobile-accordion-link-price">$599.99</span>
4088                          </span><span class="mobile-accordion-link-sub">The most accurate rangefinder that Bushnell Golf has ever made.</span></a><a class="mobile-accordion-link" href="/products/tour-hybrid" >
4089                          <span class="mobile-accordion-link-row">
4090                            <span class="mobile-accordion-link-name">
4091                              Tour Hybrid�</span>
4092                            <span class="mobile-accordion-link-price">$499.99</span>
4093                          </span><span class="mobile-accordion-link-sub">Slope Compensated Laser and GPS Distances in the display</span></a><a class="mobile-accordion-link" href="/products/tour-v7-shift" >
4094                          <span class="mobile-accordion-link-row">
4095                            <span class="mobile-accordion-link-name">
4096                              Tour V7 Shift�<span class="mega-link-badge mega-link-badge--new">New</span></span>
4097                            <span class="mobile-accordion-link-price">$399.99</span>
4098                          </span><span class="mobile-accordion-link-sub">All-new Dual Color (red and green) OLED Display with Slope-Switch Technology.</span></a><a class="mobile-accordion-link" href="/products/a1-slope" >
4099                          <span class="mobile-accordion-link-row">
4100                            <span class="mobile-accordion-link-name">
4101                              A1-Slope�</span>
4102                            <span class="mobile-accordion-link-price">$299.99</span>
4103                          </span><span class="mobile-accordion-link-sub">Precision and Slope gone ultra-compact.</span></a><a class="mobile-accordion-shopall" href="/collections/golf-rangefinders">
4104                    SHOP ALL RANGEFINDERS
4105                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="14" height="14"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>
4106                  </a></div>
4107            </div><div class="mobile-accordion">
4108              <button class="mobile-accordion-trigger" data-accordion-trigger>
4109                <span>LAUNCH MONITORS</span>
4110                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"/></svg>
4111              </button>
4112              <div class="mobile-accordion-panel" hidden><a class="mobile-accordion-link" href="/products/launch-pro">
4113                      <span class="mobile-accordion-link-row">
4114                        <span class="mobile-accordion-link-name">
4115                          Launch Pro�<span class="mega-link-badge mega-link-badge--bestseller">Best Seller</span></span><span class="mobile-accordion-link-price">$2,999.99</span>
4116                      </span><span class="mobile-accordion-link-sub">Indoor + Outdoor, Club + Ball</span></a><a class="mobile-accordion-link" href="/products/lpi-personal-launch-monitor">
4117                      <span class="mobile-accordion-link-row">
4118                        <span class="mobile-accordion-link-name">
4119                          Launch Pro Indoor�</span><span class="mobile-accordion-link-price">$1,999.99</span>
4120                      </span><span class="mobile-accordion-link-sub">Indoor only, Club + Ball</span></a><a class="mobile-accordion-shopall" href="/collections/launch-monitors">
4121                    SHOP ALL LAUNCH MONITORS
4122                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="14" height="14"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>
4123                  </a></div>
4124            </div><div class="mobile-accordion">
4125              <button class="mobile-accordion-trigger" data-accordion-trigger>
4126                <span>SIMULATORS</span>
4127                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"/></svg>
4128              </button>
4129              <div class="mobile-accordion-panel" hidden><a class="mobile-accordion-link" href="/products/launch-pro-simulator-bundle">
4130                      <span class="mobile-accordion-link-row">
4131                        <span class="mobile-accordion-link-name">
4132                          Launch Pro Simulator Bundle�<span class="mega-link-badge mega-link-badge--bestseller">Best Seller</span></span><span class="mobile-accordion-link-price">$6,499.99</span>
4133                      </span><span class="mobile-accordion-link-sub">Launch Pro (indoor + outdoor), Screen + enclosure</span></a><a class="mobile-accordion-link" href="/products/launch-pro-i-simulator-bundle">
4134                      <span class="mobile-accordion-link-row">
4135                        <span class="mobile-accordion-link-name">
4136                          Launch Pro i Simulator Bundle�</span><span class="mobile-accordion-link-price">$5,499.99</span>
4137                      </span><span class="mobile-accordion-link-sub">Launch Pro i (indoor), Full sim setup</span></a><a class="mobile-accordion-shopall" href="/collections/golf-simulators">
4138                    SHOP ALL SIMULATORS
4139                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="14" height="14"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>
4140                  </a></div>
4141            </div><div class="mobile-accordion">
4142              <button class="mobile-accordion-trigger" data-accordion-trigger>
4143                <span>Speakers</span>
4144                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"/></svg>
4145              </button>
4146              <div class="mobile-accordion-panel" hidden><a class="mobile-accordion-link" href="/products/wingman-hd" >
4147                          <span class="mobile-accordion-link-row">
4148                            <span class="mobile-accordion-link-name">
4149                              Wingman HD�<span class="mega-link-badge mega-link-badge--new">New</span></span>
4150                            <span class="mobile-accordion-link-price">$249.99</span>
4151                          </span><span class="mobile-accordion-link-sub">3.5″ HD touchscreen + 360° audio</span></a><a class="mobile-accordion-link" href="/products/wingman-view" >
4152                          <span class="mobile-accordion-link-row">
4153                            <span class="mobile-accordion-link-name">
4154                              Wingman View�</span>
4155                            <span class="mobile-accordion-link-price">$199.99</span>
4156                          </span><span class="mobile-accordion-link-sub">Visual + audible GPS · speaker</span></a><a class="mobile-accordion-link" href="/products/wingman-2-gps-speaker" >
4157                          <span class="mobile-accordion-link-row">
4158                            <span class="mobile-accordion-link-name">
4159                              Wingman 2 GPS Speaker�</span>
4160                            <span class="mobile-accordion-link-price">$169.99</span>
4161                          </span><span class="mobile-accordion-link-sub">Audible GPS · BITE magnetic speaker</span></a><a class="mobile-accordion-link" href="/products/wingman-mini-gps-speaker" >
4162                          <span class="mobile-accordion-link-row">
4163                            <span class="mobile-accordion-link-name">
4164                              Wingman Mini GPS Speaker�</span>
4165                            <span class="mobile-accordion-link-price">$109.99</span>
4166                          </span><span class="mobile-accordion-link-sub">Compact GPS speaker · walkers & riders</span></a><a class="mobile-accordion-shopall" href="/collections/golf-gps-speakers">
4167                    SHOP ALL SPEAKERS
4168                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="14" height="14"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>
4169                  </a></div>
4170            </div><div class="mobile-accordion">
4171              <button class="mobile-accordion-trigger" data-accordion-trigger>
4172                <span>GPS</span>
4173                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"/></svg>
4174              </button>
4175              <div class="mobile-accordion-panel" hidden><a class="mobile-accordion-link" href="/products/ion-elite" >
4176                          <span class="mobile-accordion-link-row">
4177                            <span class="mobile-accordion-link-name">
4178                              iON Elite�</span>
4179                            <span class="mobile-accordion-link-price">$219.99</span>
4180                          </span><span class="mobile-accordion-link-sub">Slope GPS watch · preloaded courses</span></a><a class="mobile-accordion-link" href="/products/phantom-3-slope-gps" >
4181                          <span class="mobile-accordion-link-row">
4182                            <span class="mobile-accordion-link-name">
4183                              Phantom 3 Slope GPS�</span>
4184                            <span class="mobile-accordion-link-price">$169.99</span>
4185                          </span><span class="mobile-accordion-link-sub">Slope touchscreen GPS · front/center/back</span></a><a class="mobile-accordion-shopall" href="/collections/golf-gps">
4186                    SHOP ALL GPS
4187                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="14" height="14"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>
4188                  </a></div>
4189            </div><div class="mobile-accordion">
4190              <button class="mobile-accordion-trigger" data-accordion-trigger>
4191                <span>ACCESSORIES</span>
4192                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"/></svg>
4193              </button>
4194              <div class="mobile-accordion-panel" hidden><div class="mobile-accordion-group">
4195                        <div class="mobile-accordion-heading">Shop</div><a class="mobile-accordion-link" href="/collections/accessories"><span class="mobile-accordion-link-text">
4196                                  <span class="mobile-accordion-link-row">
4197                                    <span class="mobile-accordion-link-name">
4198                                      Cases & Mounts�</span></span><span class="mobile-accordion-link-sub">Protect and secure your gear.</span></span>
4199                              </a><a class="mobile-accordion-link" href="/collections/replacement-parts"><span class="mobile-accordion-link-text">
4200                                  <span class="mobile-accordion-link-row">
4201                                    <span class="mobile-accordion-link-name">
4202                                      Replacement Parts�</span></span><span class="mobile-accordion-link-sub">Genuine parts + Extend Protection Plan</span></span>
4203                              </a></div><div class="mobile-accordion-group">
4204                        <div class="mobile-accordion-heading">Resources</div><a class="mobile-accordion-link mobile-accordion-link--has-img" href="https://greenbooks.com/?utm_source=Website&utm_medium=product&utm_campaign=sales&utm_content=learn+more" target="_blank" rel="noopener noreferrer"><img class="mobile-accordion-link-img" src="//www.bushnellgolf.com/cdn/shop/files/green-books-menu__66107.original.png?v=1785443625&width=88" alt="Greenbooks" width="44" height="44" style="width:44px;height:auto;" loading="lazy"><span class="mobile-accordion-link-text">
4205                                  <span class="mobile-accordion-link-row">
4206                                    <span class="mobile-accordion-link-name">
4207                                      Greenbooks�</span></span><span class="mobile-accordion-link-sub">The #1 course guide, used by tour caddies.</span></span>
4208                              </a></div><a class="mobile-accordion-shopall" href="/collections/accessories">
4209                    SHOP ALL ACCESSORIES
4210                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="14" height="14"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg>
4211                  </a></div>
4212            </div><a class="mobile-drawer-link" href="/pages/contact">Contact Us</a><a class="mobile-drawer-link" href="/pages/support">Support</a><a class="mobile-drawer-link" href="/collections/sale">Sale</a></div>
4213  <div class="mobile-drawer-footer">
4214    FREE SHIPPING on orders over $99
4215  </div>
4216</div>
4217
4218<script src="//www.bushnellgolf.com/cdn/shop/t/133/assets/bushnell-header-user-menu.js?v=136142066710242377001790611765" defer></script>
4218
4219
4220
4221</div><div class="search-overlay-backdrop" data-search-backdrop></div>
4222  <div class="search-overlay" data-search-overlay>
4223    <div class="search-overlay-inner">
4224      <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="20" height="20" style="color:var(--grey-500);flex-shrink:0;"><circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></svg>
4225      <form action="/search" method="get" style="flex:1;display:flex;">
4226        <input type="text" name="q" class="search-overlay-input" placeholder="Search rangefinders, GPS, launch monitors..." autocomplete="off">
4227        <input type="hidden" name="type" value="product">
4228      </form>
4229      <button class="search-overlay-close" data-search-close aria-label="Close search">
4230        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/></svg>
4231      </button>
4232    </div>
4233  </div>
4234
4235  <main id="MainContent" role="main">
4236    <section id="shopify-section-template--28919389880504__main" class="shopify-section bushnell-contact"><style>
4237  #shopify-section-template--28919389880504__main h1,
4238  #shopify-section-template--28919389880504__main h2,
4239  #shopify-section-template--28919389880504__main h3 { font-family: 'Industry Bold', sans-serif; }
4240  #shopify-section-template--28919389880504__main p,
4241  #shopify-section-template--28919389880504__main span,
4242  #shopify-section-template--28919389880504__main a,
4243  #shopify-section-template--28919389880504__main button,
4244  #shopify-section-template--28919389880504__main label,
4245  #shopify-section-template--28919389880504__main input,
4246  #shopify-section-template--28919389880504__main select,
4247  #shopify-section-template--28919389880504__main textarea,
4248  #shopify-section-template--28919389880504__main div { font-family: 'Acumin Pro', sans-serif; }
4249
4250  .bgct-wrap { background: #F7F3EE; }
4251  .bgct-inner { max-width: 1200px; margin: 0 auto; padding: 0 40px; }
4252  .bgct-hero { background: #1E252B; background-image: radial-gradient(circle at 85% 10%, rgba(254,80,0,0.08), transparent 55%); padding: 64px 0 56px; }
4253  .bgct-hero-stack { display: flex; flex-direction: column; gap: 18px; }
4254  .bgct-eyebrow { font-size: 11px; font-weight: 500; letter-spacing: 2px; text-transform: uppercase; color: #FE5000; }
4255  .bgct-h1 { margin: 0; font-size: 56px; line-height: 1.05; letter-spacing: 1px; text-transform: uppercase; color: #fff; }
4256  .bgct-h1 em { font-style: normal; color: #FE5000; }
4257  .bgct-hero-sub { margin: 0; font-size: 16px; line-height: 1.6; color: rgba(255,255,255,0.6); max-width: 60ch; }
4258  .bgct-stats { display: flex; gap: 28px; flex-wrap: wrap; margin-top: 10px; }
4259  .bgct-stat { display: flex; flex-direction: column; gap: 4px; }
4260  .bgct-stat b { font-family: 'Industry Bold', sans-serif; font-weight: 400; font-size: 30px; line-height: 1; color: #FE5000; }
4261  .bgct-stat span { font-size: 11px; font-weight: 500; letter-spacing: 1.5px; text-transform: uppercase; color: rgba(255,255,255,0.45); }
4262
4263  .bgct-section { padding-top: 56px; }
4264  .bgct-section-last { padding-bottom: 56px; }
4265  .bgct-h2 { margin: 0 0 6px; font-size: 34px; line-height: 1.1; letter-spacing: 1px; text-transform: uppercase; color: #1E252B; }
4266  .bgct-h2 em { font-style: normal; color: #FE5000; }
4267  .bgct-sub { margin: 0 0 24px; font-size: 15px; line-height: 1.6; color: #6B6B6B; max-width: 70ch; }
4268
4269  .bgct-channels { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 14px; }
4270  .bgct-chan { display: flex; flex-direction: column; gap: 10px; background: #fff; border: 1px solid #E5E1DC; border-radius: 12px; padding: 24px 22px; transition: box-shadow 0.3s ease, transform 0.3s ease; }
4271  .bgct-chan:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(30,37,43,0.10); }
4272  .bgct-chan-scope { font-size: 10px; font-weight: 500; letter-spacing: 1.5px; text-transform: uppercase; color: #999; }
4273  .bgct-chan h3 { margin: 0; font-size: 17px; line-height: 1.25; letter-spacing: 0.5px; text-transform: uppercase; color: #1E252B; }
4274  .bgct-chan p { margin: 0; font-size: 13px; line-height: 1.55; color: #6B6B6B; flex: 1; }
4275  .bgct-chan-tel { display: flex; align-items: center; gap: 10px; font-size: 15px; font-weight: 600; color: #1E252B; text-decoration: none; }
4276  .bgct-chan-tel:hover { color: #FE5000; }
4277  .bgct-chan-tel svg { width: 15px; height: 15px; fill: none; stroke: #FE5000; stroke-width: 2; }
4278  .bgct-chan-mail { font-size: 11px; font-weight: 500; letter-spacing: 1.5px; text-transform: uppercase; color: #FE5000; text-decoration: none; }
4279
4280  .bgct-notices { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 14px; margin-top: 14px; }
4281  .bgct-notice { display: flex; gap: 14px; align-items: flex-start; background: #fff; border: 1px solid #E5E1DC; border-radius: 12px; padding: 18px 20px; }
4282  .bgct-notice.bgct-warn { background: rgba(254,80,0,0.06); border-color: rgba(254,80,0,0.30); }
4283  .bgct-notice svg { width: 20px; height: 20px; flex-shrink: 0; fill: none; stroke: #FE5000; stroke-width: 2; margin-top: 2px; }
4284  .bgct-notice b { display: block; font-size: 13px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; color: #1E252B; margin-bottom: 4px; }
4285  .bgct-notice p { margin: 0; font-size: 13px; line-height: 1.55; color: #6B6B6B; }
4286  .bgct-notice a { color: #FE5000; font-weight: 600; text-decoration: none; }
4287
4288  .bgct-grid { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 24px; align-items: start; }
4289  .bgct-intl-panel { background: #fff; border: 1px solid #E5E1DC; border-radius: 16px; padding: 28px; display: flex; flex-direction: column; gap: 18px; min-width: 0; }
4290  .bgct-intl-panel h2 { margin: 0; font-size: 26px; line-height: 1.15; letter-spacing: 0.5px; text-transform: uppercase; color: #1E252B; }
4291  .bgct-intl-panel .bgct-formsub { margin: 0; font-size: 14px; line-height: 1.6; color: #6B6B6B; }
4292  .bgct-intl-dept { background: #F7F3EE; border: 1px solid #E5E1DC; border-radius: 12px; padding: 20px 22px; display: flex; flex-direction: column; gap: 10px; }
4293  .bgct-intl-dept .bgct-org { font-size: 13px; line-height: 1.55; color: #6B6B6B; overflow-wrap: anywhere; }
4294  .bgct-intl-dept-rows { display: flex; flex-direction: column; }
4295  .bgct-intl-h3 { margin: 0 0 4px; font-size: 15px; font-weight: 600; letter-spacing: 0.5px; text-transform: uppercase; color: #1E252B; }
4296  .bgct-intl-card .bgct-web { display: inline-block; margin-top: 2px; font-size: 11px; font-weight: 500; letter-spacing: 1.5px; color: #FE5000; text-decoration: none;
4296 overflow-wrap: anywhere; }
4297  .bgct-rail { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
4298  .bgct-card { background: #fff; border: 1px solid #E5E1DC; border-radius: 12px; padding: 24px 22px; display: flex; flex-direction: column; gap: 12px; }
4299  .bgct-card .bgct-cardsub { font-size: 14px; line-height: 1.6; color: #6B6B6B; }
4300  .bgct-phone-row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; border-bottom: 1px solid #F0ECE7; padding-bottom: 10px; flex-wrap: wrap; }
4301  .bgct-phone-row span { font-size: 13px; color: #6B6B6B; }
4302  .bgct-phone-row a { font-size: 14px; font-weight: 600; color: #1E252B; text-decoration: none; overflow-wrap: anywhere; }
4303  .bgct-phone-row a:hover { color: #FE5000; }
4304  .bgct-mail { background: #1E252B; border: 0; }
4305  .bgct-mail .bgct-addr { font-size: 14px; line-height: 1.7; color: rgba(255,255,255,0.6); }
4306  .bgct-mail .bgct-mailnote { font-size: 12px; line-height: 1.5; color: rgba(255,255,255,0.3); }
4307  .bgct-card .bgct-link { font-size: 11px; font-weight: 500; letter-spacing: 1.5px; text-transform: uppercase; color: #FE5000; text-decoration: none; }
4308
4309  .bgct-intl { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; }
4310  .bgct-intl-card { display: flex; flex-direction: column; gap: 6px; background: #fff; border: 1px solid #E5E1DC; border-radius: 12px; padding: 20px; min-width: 0; }
4311  .bgct-intl-card b { font-size: 14px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; color: #1E252B; }
4312  .bgct-intl-card .bgct-org { font-size: 13px; line-height: 1.55; color: #6B6B6B; overflow-wrap: anywhere; }
4313  .bgct-intl-card .bgct-ph { font-size: 13px; color: #1E252B; }
4314  .bgct-intl-card .bgct-em { font-size: 13px; color: #FE5000; overflow-wrap: anywhere; text-decoration: none; }
4315  .bgct-intl-card .bgct-em:hover { text-decoration: underline; }
4316
4317  @media screen and (min-width: 990px) {
4318    .bgct-rail { position: sticky; top: 24px; }
4319  }
4320  @media screen and (max-width: 989px) {
4321    .bgct-inner { padding: 0 20px; }
4322    .bgct-h1 { font-size: 42px; }
4323    .bgct-grid { grid-template-columns: minmax(0, 1fr); }
4324    .bgct-rail { order: -1; }
4325  }
4326  @media screen and (max-width: 749px) {
4327    .bgct-hero { padding: 44px 0 40px; }
4328    .bgct-h1 { font-size: 32px; }
4329    .bgct-h2 { font-size: 26px; }
4330    .bgct-section { padding-top: 40px; }
4331    .bgct-section-last { padding-bottom: 40px; }
4332    .bgct-intl-panel { padding: 22px; }
4333    .bgct-intl { grid-template-columns: 1fr; }
4334  }
4335</style>
4336
4337<div class="bgct-wrap">
4338
4339  <div class="bgct-hero">
4340    <div class="bgct-inner bgct-hero-stack">
4341      <span class="bgct-eyebrow">Support</span>
4342      <h1 class="bgct-h1">Contact Us</h1>
4343      <p class="bgct-hero-sub">We're here to help. You'll talk to representatives who understand your passion for the game of golf.</p>
4344      <div class="bgct-stats">
4345        <div class="bgct-stat"><a href="tel:8448750045"><b>(844) 875-0045</b></a><span>General Support</span></div>
4346        <div class="bgct-stat"><b>Mon–Fri</b><span>Mon–Thu 9:00 am–4:00 pm · Fri 9:00 am–2:00 pm CST</span></div>
4347        <div class="bgct-stat"><b>24–48 hrs</b><span>Email Response Time</span></div>
4348      </div>
4349    </div>
4350  </div>
4351
4352  <div class="bgct-inner bgct-section">
4353    <h2 class="bgct-h2">Choose your support team</h2>
4354    <p class="bgct-sub">Each product line is supported by its own team. Select the one that matches your product.</p>
4355
4356    <div class="bgct-channels">
4357      <div class="bgct-chan">
4358        <span class="bgct-chan-scope">Rangefinders · GPS · Accessories</span>
4359        <h3>Bushnell Golf General Support</h3>
4360        <p>Devices, orders, returns, repairs, and the Bushnell Golf Mobile app.</p>
4361        <a class="bgct-chan-tel" href="tel:8448750045"><svg viewBox="0 0 24 24"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.9
43611.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z"/></svg>(844) 875-0045</a><a class="bgct-chan-tel" href="https://bushnellgolf.zendesk.com/hc/en-us/requests/new?ticket_form_id=43846546595731" target="_blank" rel="noopener"><svg viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"/></svg>Email general support</a></div>
4362      <div class="bgct-chan">
4363        <span class="bgct-chan-scope">Greenbooks · Course Guides</span>
4364        <h3>Greenbooks &amp; Mapping Support</h3>
4365        <p>Course guide orders, mapping questions, and course updates.</p>
4366        <a class="bgct-chan-tel" href="tel:8779770162"><svg viewBox="0 0 24 24"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z"/></svg>(877) 977-0162</a><a class="bgct-chan-tel" href="https://www.golflogix.com/page/contact-us-2/" target="_blank" rel="noopener"><svg viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"/></svg>Email Greenbooks and Mapping support</a></div>
4367      <div class="bgct-chan">
4368        <span class="bgct-chan-scope">Launch Pro · LPi · Foresight+</span>
4369        <h3>Launch Pro Support</h3>
4370        <p>Launch monitors, simulator bundles, and Foresight+ software.</p>
4371        <a class="bgct-chan-tel" href="tel:8584444440"><svg viewBox="0 0 24 24"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z"/></svg>(858) 444-4440</a><a class="bgct-chan-tel" href="https://www.foresightsports.com/contact-support" target="_blank" rel="noopener"><svg viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"/></svg>Email Launch Pro support</a></div>
4372    </div>
4373
4374    <div class="bgct-notices">
4375      <div class="bgct-notice bgct-warn">
4376        <svg viewBox="0 0 24 24"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/><line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/></svg>
4377        <div><b>Returning a product? Contact us first.</b>
4378        <p>Return addresses vary by product type, and all returns must be approved by a customer service team member before shipping. <a href="/pages/returns">See the returns process</a></p></div>
4379      </div>
4380      <div class="bgct-notice">
4381        <svg viewBox="0 0 24 24"><rect x="5" y="2" width="14" height="20" rx="2"/><line x1="12" y1="18" x2="12.01" y2="18"/></svg>
4382        <div><b>Wingman users: legacy app discontinued</b>
4383        <p>The orange legacy app has ended support. Download the new Bushnell Golf Mobile app , create a new account, and remove the Wingman from your phone's Bluetooth settings before re-pairing.</p></div>
4384      </div>
4385    </div>
4386  </div>
4387
4388  <div class="bgct-inner bgct-section bgct-section-last">
4389    <div class="bgct-grid">
4390      <div class="bgct-intl-panel">
4391        <div>
4392          <span class="bgct-eyebrow">International</span>
4393          <h2 style="margin-top: 4px;">Outside the U.S.?</h2>
4394          <p class="bgct-formsub" style="margin-top: 6px;">Non-U.S. based distributors or retailers looking to reach our International customer support or sales team can contact our International Department below. Retailers and consumers looking for their local distributor can find territory contacts further down.</p>
4395        </div>
4396
4397        <div class="bgct-intl-dept">
4398          <span class="bgct-intl-h3">International Department</span>
4399          <span class="bgct-org">Bushnell Corporation<br>9955 Black Mountain Rd, San Diego, CA 92126</span>
4400          <div class="bgct-intl-dept-rows"><div class="bgct-phone-row"><span>Phone</span><a href="tel:9137523400">(913) 752-3400</a></div><div class="bgct-phone-row"><span>Fax</span><a href="tel:9137523572">(913) 752-3572</a></div><div class="bgct-phone-row" style="border-bottom: 0; padding-bottom: 0;"><span>Contact</span><a href="mailto:[email protected]">[email protected]</a></div></div>
4401        </div><div>
4402          <span class="bgct-intl-h3">Distributor Territories</span>
4403          <div class="bgct-intl"><div class="bgct-intl-card" >
4404                <b>United Kingdom</b>
4405                <span class="bgct-org">Bushnell-UK — Optimum Golf Technologies Ltd, The Pines Trading Estate, 16 Broad St, Guildford GU3 3BH</span><span class="bgct-ph">+44 1483 779225</span><a class="bgct-em" href="mailto:[email protected]">[email protected]</a><a class="bgct-web" href="https://bushnellgolfeurope.com" target="_blank" rel="noopener">bushnellgolfeurope.com</a></div><div class="bgct-intl-card" >
4406                <b>Europe</b>
4407                <span class="bgct-org">Bushnell-Europe — Optimum Golf Technologies Ltd, The Pines Trading Estate, 16 Broad St, Guildford GU3 3BH</span><span class="bgct-ph">+44 1483 779225</span><a class="bgct-em" href="mailto:[email protected]">[email protected]</a><a class="bgct-web" href="https://bushnellgolfeurope.com" target="_blank" rel="noopener">bushnellgolfeurope.com</a></div><div class="bgct-intl-card" >
4408                <b>Scandinavia</b>
4409                <span class="bgct-org">PAR Golf — Terminalgatan 2, 235 39 Vellinge</span><span class="bgct-ph">040 - 641 72 00</span><a class="bgct-em" href="mailto:[email protected]">[email protected]</a><a class="bgct-web" href="https://pargolf.se" target="_blank" rel="noopener">pargolf.se</a></div><div class="bgct-intl-card" >
4410                <b>Australia</b>
4411                <span class="bgct-org">Champion Sports PTY LTD — 1b Myer Court, Beverley, South Australia 5009</span><span class="bgct-ph">08 8268 5841</span><a class="bgct-em" href="mailto:[email protected]">[email protected]</a></div><div class="bgct-intl-card" >
4412                <b>New Zealand</b>
4413                <span class="bgct-org">New Zealand Golf Distributors — 200 Broadway Avenue, PO Box 277, Palmerston North 4410</span><span class="bgct-ph">(06) 357 4749</span><a class="bgct-em" href="mailto:[email protected]">[email protected]</a></div><div class="bgct-intl-card" >
4414                <b>Southeast Asia</b>
4415                <span class="bgct-org">Sun Golf Pte Ltd — 68 Kallang Pudding Road, #03-01 SYH Logistics Building, Singapore 349327</span><span class="bgct-ph">+65 9836 6062</span><a class="bgct-em" href="mailto:[email protected]">[email protected]</a></div><div class="bgct-intl-card" >
4416                <b>Korea</b>
4417                <span class="bgct-org">KANE Co., Ltd — 6F, 156, Nonhyeon-ro, Gangnam-gu, Seoul</span><span class="bgct-ph">(+82) 1644-4006, (+82) 2-6214-9521</span><a class="bgct-em" href="mailto:[email protected]">[email protected]</a><a class="bgct-web" href="https://bushnellgolfkorea.co.kr" target="_blank" rel="noopener">bushnellgolfkorea.co.kr</a></div><div class="bgct-intl-card" >
4418                <b>Japan</b>
4419                <span class="bgct-org">Hanshin Commercial — New Kyoei Bldg, 2-5-6 Shibata, Kita-ku, Osaka 530-0012</span><span class="bgct-ph">+81-6-6371-8548</span><a class="bgct-em" href="mailto:[email protected]">[email protected]</a></div><div class="bgct-intl-card" >
4420                <b>UAE</b>
4421                <span class="bgct-org">Prosports International — PO Box 26723, Dubai, UAE</span><span class="bgct-ph">+971 4 347 7737</span><a class="bgct-em" href="mailto:[email protected]">[email protected]</a></div><div class="bgct-intl-card" >
4422                <b>South Africa</b>
4423                <span class="bgct-org">ULTIMO / BPO SA LTD — B4 Avant-Garde Ave, Northlands Deco Park, North Riding 2169</span><span class="bgct-ph">+27 (0) 11 785 4700</span><a class="bgct-em" href="mailto:[email protected]">[email protected]</a></div><div class="bgct-intl-card" >
4424                <b>India</b>
4425                <span class="bgct-org">Zaverchand Sports Pvt Ltd — Unit 61/62, 6th Floor, Shanti Bldg, Banaji St, Mumbai 400 001</span><a class="bgct-em" href="mailto:[email protected]">[email protected]</a></div><div class="bgct-intl-card" >
4426                <b>Switzerland</b>
4427                <span class="bgct-org">OptiLink AG — Poststrasse 10 / Rue de la poste 10, 2504 Biel/Bienne</span><span class="bgct-ph">+41 32 323 56 66</span><a class="bgct-em" href="mailto:[email protected]">[email protected]</a></div><div class="bgct-intl-card" >
4428                <b>Slovakia</b>
4429                <span class="bgct-org">Golf in One, s.r.o. — Galvaniho 35a, 82104 Bratislava</span><span class="bgct-ph">+421 948 012 233</span><a class="bgct-em" href="mailto:[email protected]">[email protected]</a></div></div>
4430        </div></div>
4431      <div class="bgct-rail">
4432        <div class="bgct-card">
4433          <span class="bgct-eyebrow">By Phone</span>
4434          <span class="bgct-cardsub">Mon–Thu 9:00 am–4:00 pm · Fri 9:00 am–2:00 pm CST. Calling about a product issue? <strong>Have the product within reach.</strong></span>
4435          <div class="bgct-phone-row"><span>General Support</span><a href="tel:8448750045">(844) 875-0045</a></div>
4436          <div class="bgct-phone-row"><span>Greenbooks &amp; Mapping</span><a href="tel:8779770162">(877) 977-0162</a></div>
4437          <div class="bgct-phone-row"><span>Launch Pro Support</span><a href="tel:8584444440">(858) 444-4440</a></div>
4438          <div class="bgct-phone-row"><span>Kansas City Area</span><a href="tel:9137523400">(913) 752-3400</a></div>
4439          <div class="bgct-phone-row"><span>Dealers</span><a href="tel:8002219035">(800) 221-9035</a></div>
4440          <div class="bgct-phone-row" style="border-bottom: 0; padding-bottom: 0;"><span>Fax</span><a href="tel:9137523550">(913) 752-3550</a></div>
4441        </div>
4442
4443        <div class="bgct-card bgct-mail">
4444          <span class="bgct-eyebrow">By Mail</span>
4445          <span class="bgct-addr">ATTN: Bushnell Golf Support<br>9955 Black Mountain Rd<br>San Diego, CA 92126</span>
4446          <span class="bgct-mailnote">Do not mail a return without prior approval from a customer service agent — return addresses vary by product type.</span>
4447        </div>
4448
4449        <div class="bgct-card">
4450          <span class="bgct-eyebrow">Replacement Parts</span>
4451          <span class="bgct-cardsub" style="font-size: 13px;">Battery doors, straps, and covers are available for purchase online — no support request needed.</span></div>
4452      </div>
4453    </div>
4454  </div>
4455
4456
4457</div>
4458
4459
4460</section>
4461  </main><div id="shopify-section-bushnell-footer" class="shopify-section"><link href="//www.bushnellgolf.com/cdn/shop/t/133/assets/bushnell-footer-global.css?v=29849340986093782691790611765" rel="stylesheet" type="text/css" media="all" />�<style>
4462  /* ── Typography ── */
4463  #shopify-section-bushnell-footer h1, #shopify-section-bushnell-footer h2, #shopify-section-bushnell-footer h3,
4464  #shopify-section-bushnell-footer h4, #shopify-section-bushnell-footer h5, #shopify-section-bushnell-footer h6 {
4465    font-family: 'Industry Bold', sans-serif;
4466  }
4467  #shopify-section-bushnell-footer p, #shopify-section-bushnell-footer li,
4468  #shopify-section-bushnell-footer span, #shopify-section-bushnell-footer a {
4469    font-family: 'Acumin Pro Medium', sans-serif;
4470  }
4471
4472  /* ── Root ── */
4473  #shopify-section-bushnell-footer .bfooter {
4474    background-color: #1e252b;
4475  }
4476
4477  /* ── Newsletter ── */
4478  #shopify-section-bushnell-footer .bfooter__nl-heading { font-family: 'Industry Bold', sans-serif; }
4479  #shopify-section-bushnell-footer .bfooter__nl-btn     { font-family: 'Industry Bold', sans-serif; }
4480
4481  /* ── Logo text fallback ── */
4482  #shopify-section-bushnell-footer .bfooter__logo { font-family: 'Industry Bold', sans-serif; }
4483
4484  /* ── Main section padding (desktop) ── */
4485  #shopify-section-bushnell-footer .bfooter__main {
4486    padding-top:    64px;
4487    padding-bottom: 56px;
4488  }
4489
4490  /* ── Desktop grid ── */
4491  #shopify-section-bushnell-footer .bfooter__grid {
4492    grid-template-columns: 1.6fr 1fr 1fr 1fr;
4493    gap: 40px;
4494  }
4495
4496  /* ── Logo image width (desktop) ── */
4497  #shopify-section-bushnell-footer .bfooter__logo-img { width: 320px; }
4498
4499  /* ── Tagline ── */
4500  #shopify-section-bushnell-footer .bfooter__tagline {
4501    font-size: 14px;
4502    color: #8899aa;
4503  }
4504
4505  /* ── Column headings ── */
4506  #shopify-section-bushnell-footer .bfooter__col-heading {
4507    font-family: 'Industry Bold', sans-serif;
4508    color:          #fe5000;
4509    font-size:      11px;
4510    border-bottom-color: #2d3a44;
4511  }
4512
4513  /* ── Column links ── */
4514  #shopify-section-bushnell-footer .bfooter__col-list a {
4515    color:     #8899aa;
4516    font-size: 18px;
4517  }
4518  #shopify-section-bushnell-footer .bfooter__col-list a:hover { color: #ffffff; }
4519
4520  /* ── Bottom bar ── */
4521  #shopify-section-bushnell-footer .bfooter__bottom {
4522    border-top-color: #2d3a44;
4523    padding-top:    20px;
4524    padding-bottom: 20px;
4525  }
4526  #shopify-section-bushnell-footer .bfooter__bottom-inner {
4527    flex-direction:  column;
4528    align-items:     center;
4529    justify-content: flex-start;
4530  }
4531  #shopify-section-bushnell-footer .bfooter__copyright {
4532    color:     #dfdfdf;
4533    font-size: 16px;
4534  }
4535  #shopify-section-bushnell-footer .bfooter__policy-list a {
4536    color:     #dfdfdf;
4537    font-size: 16px;
4538  }
4539  #shopify-section-bushnell-footer .bfooter__policy-list a:hover { color: #aabbcc; }
4540  #shopify-section-bushnell-footer .bfooter__policy-list li + li::before { background: #2d3a44; }
4541  #shopify-section-bushnell-footer .bfooter__copyright,
4542  #shopify-section-bushnell-footer .bfooter__policy-list { text-align: center; }
4543
4544  /* ── Tablet ── */
4545  @media screen and (min-width: 750px) and (max-width: 989px) {
4546    #shopify-section-bushnell-footer .bfooter__main {
4547      padding-top:    48px;
4548      padding-bottom: 44px;
4549    }
4550    #shopify-section-bushnell-footer .bfooter__grid {
4551      grid-template-columns: 1fr 1fr;
4552      gap: 32px;
4553    }
4554    #shopify-section-bushnell-footer .bfooter__logo-img { width: 140px; }
4555  }
4556
4557  /* ── Mobile ── */
4558  @media screen and (max-width: 749px) {
4559    #shopify-section-bushnell-footer .bfooter__main {
4560      padding-top:    40px;
4561      padding-bottom: 36px;
4562    }
4563    #shopify-section-bushnell-footer .bfooter__grid {
4564      grid-template-columns: 1fr;
4565      gap: 28px;
4566    }
4567    #shopify-section-bushnell-footer .bfooter__logo-img { width: 200px; }
4568    #shopify-section-bushnell-footer .bfooter__brand,
4569    #shopify-section-bushnell-footer .bfooter__col    { text-align: center; }
4570    #shopify-section-bushnell-footer .bfooter__social { justify-content: center; }
4571  }
4572
4573  /* ── Desktop alignment (min-width guard prevents overriding mobile/tablet) ── */
4574  @media screen and (min-width: 990px) {
4575    #shopify-section-bushnell-footer .bfooter__brand,
4576    #shopify-section-bushnell-footer .bfooter__col    { text-align: left; }
4577    #shopify-section-bushnell-footer .bfooter__social { justify-content: flex-start; }
4578  }
4579
4580  /* ── Tablet alignment ── */
4581  @media screen and (min-width: 750px) and (max-width: 989px) {
4582    #shopify-section-bushnell-footer .bfooter__brand,
4583    #shopify-section-bushnell-footer .bfooter__col    { text-align: center; }
4584    #shopify-section-bushnell-footer .bfooter__social { justify-content: center; }
4585  }
4586
4587  /* ── Per-block: Social & Newsletter column ── */#bfooter-snl-social_newsletter_ntQEeN .bfooter__social-link {
4588    width:  46px;
4589    height: 46px;
4590    border-color: #2d3a44;
4591    color:        #8899aa;
4592  }
4593  #bfooter-snl-social_newsletter_ntQEeN .bfooter__social-link svg {
4594    width:  24px;
4595    height: 24px;
4596  }
4597  #bfooter-snl-social_newsletter_ntQEeN .bfooter__social-link:hover {
4598    border-color:     #fe5000;
4599    color:            #fe5000;
4600    background-color: #1a1f24;
4601  }
4602  #bfooter-snl-social_newsletter_ntQEeN .bfooter__col-nl-label {
4603    color:     #7a8ea0;
4604    font-size: 16px;
4605  }
4606  #bfooter-snl-social_newsletter_ntQEeN .bfooter__col-nl-input {
4607    background:   #262f37;
4608    border-color: #2d3a44;
4609    color:        #ffffff;
4610    font-size:    14px;
4611  }
4612  #bfooter-snl-social_newsletter_ntQEeN .bfooter__col-nl-btn {
4613    background: #fe5000;
4614    color:      #ffffff;
4615    font-size:  14px;
4616  }
4617  #bfooter-snl-social_newsletter_ntQEeN .bfooter__col-nl-btn:hover {
4618    background: #d94500;
4619  }
4620  #bfooter-snl-social_newsletter_ntQEeN .bfooter__kl-btn {
4621    background-color: #fe5000;
4622    color: #ffffff;
4623    border: 0px solid #fe5000;
4624    border-radius: 4px;
4625    font-size: 14px;
4626    font-weight: 700;
4627    text-transform: uppercase;
4628    padding: 12px 24px;
4629    width: auto;
4630  }
4631  #bfooter-snl-social_newsletter_ntQEeN .bfooter__kl-btn:hover {
4632    background-color: #d94500;
4633    color: #ffffff;
4634  }/* Klaviyo popup trigger button — shared structural rules */
4635  #shopify-section-bushnell-footer .bfooter__kl-btn {
4636    display: inline-block;
4637    cursor: pointer;
4638    line-height: 1;
4639    letter-spacing: 0.05em;
4640    text-decoration: none;
4641    transition: background-color 0.2s ease, color 0.2s ease;
4642  }
4643</style>
4644
4645<footer class="bfooter" id="footer" role="contentinfo"><div class="bfooter__main">
4646    <div class="bfooter__container">
4647      <div class="bfooter__grid"><div class="bfooter__brand"><a href="/" class="bfooter__logo-img-link" aria-label="Bushnell Golf home">
4648              <img
4649                src="//www.bushnellgolf.com/cdn/shop/files/Bushnell_logo_In_Golf.png?v=1780518942&width=320"
4650                srcset="//www.bushnellgolf.com/cdn/shop/files/Bushnell_logo_In_Golf.png?v=1780518942&width=320 1x, //www.bushnellgolf.com/cdn/shop/files/Bushnell_logo_In_Golf.png?v=1780518942&width=640 2x"
4651                alt="Bushnell Golf"
4652                class="bfooter__logo-img"
4653                width="320"
4654                height="290"
4655                loading="lazy"
4656              >
4657            </a></div><div class="bfooter__col bfooter__col--wide" ><ul class="bfooter__col-list" role="list"><li><a href="/pages/media">Media</a></li><li><a href="/collections/golf-simulators">Simulator Bundles</a></li><li><a href="/pages/contact">Contact Us</a></li><li><a href="/pages/support">Support</a></li><li><a href="https://customers.extend.com/en-US/warranty_terms/10001-misc-elec-adh-replace-1y" target="_blank" rel="noopener noreferrer">Extend Protection Plan</a></li><li><a href="/pages/military-discount">Military Discount</a></li><li><a href="/pages/product-registration">Product Registration</a></li><li><a href="/collections/all-products">All Products</a></li><li><a href="/pages/returns">Returns</a></li><li><a href="/pages/shipping-delivery">Shipping & Delivery</a></li><li><a href="/pages/affiliate-program">Affiliate Program</a></li><li><a href="/pages/about-bushnell-golf">About Bushnell Golf</a></li><li><a href="/collections/previous-generations">Previous Generations</a></li><li><a href="/pages/cookie-policy">Cookie Policy</a></li></ul></div><div class="bfooter__col" id="bfooter-snl-social_newsletter_ntQEeN" ><nav class="bfooter__social" aria-label="Social media"><a href="https://www.facebook.com/BushnellGolf" class="bfooter__social-link" aria-label="Facebook" target="_blank" rel="noopener noreferrer">
4658                      <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M18 2h-3a5 5 0 00-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 011-1h3z"/></svg>
4659                    </a><a href="https://www.instagram.com/bushnellgolf/" class="bfooter__social-link" aria-label="Instagram" target="_blank" rel="noopener noreferrer">
4660                      <svg viewBox="0 0 24 24" aria-hidden="true"><rect x="2" y="2" width="20" height="20" rx="5"/><path d="M16 11.37A4 4 0 1112.63 8 4 4 0 0116 11.37z"/><line x1="17.5" y1="6.5" x2="17.51" y2="6.5"/></svg>
4661                    </a><a href="https://www.youtube.com/user/BushnellGolf/featured" class="bfooter__social-link" aria-label="YouTube" target="_blank" rel="noopener noreferrer">
4662                      <svg viewBox="0 0 24 24" aria-hidden="true"><path d="M22.54 6.42a2.78 2.78 0 00-1.94-1.96C18.88 4 12 4 12 4s-6.88 0-8.59.46a2.78 2.78 0 00-1.95 1.96A29 29 0 001 12a29 29 0 00.46 5.58A2.78 2.78 0 003.41 19.6C5.12 20 12 20 12 20s6.88 0 8.59-.4a2.78 2.78 0 001.95-1.98A29 29 0 0023 12a29 29 0 00-.46-5.58z"/><polygon points="9.75 15.02 15.5 11.75 9.75 8.48 9.75 15.02"/></svg>
4663                    </a></nav>
4663<div class="bfooter__col-nl bfooter__col-nl--spaced"><p class="bfooter__col-nl-label">Get the latest golf tips and exclusive deals.</p><button type="button" class="bfooter__kl-btn" data-kl-form="XeLsMZ">Subscribe</button></div></div></div>
4664    </div>
4665  </div>
4666
4667  <div class="bfooter__bottom">
4668    <div class="bfooter__container">
4669      <div class="bfooter__bottom-inner">
4670
4671        <p class="bfooter__copyright">
4672          &copy; 2026 Bushnell Golf. All Rights Reserved.
4673        </p><ul class="bfooter__policy-list" role="list" aria-label="Legal links"><li><a href="https://www.revelyst.com/privacy-policy.html" target="_blank" rel="noopener noreferrer">Privacy Policy</a></li><li><a href="https://www.revelyst.com/termsconditions.html" target="_blank" rel="noopener noreferrer">Terms & Conditions</a></li><li><a href="https://www.revelyst.com/supply-chain-disclosure.html" target="_blank" rel="noopener noreferrer">California/UK Supply Chain Disclosure</a></li><li><a href="https://www.revelyst.com/do-not-sell-or-share-my-info.html" target="_blank" rel="noopener noreferrer">Do Not Sell or Share My Info</a></li><li><a href="https://www.revelyst.com/accessibility.html" target="_blank" rel="noopener noreferrer">Accessibility</a></li><li><a href="https://www.revelyst.com/patents.html" target="_blank" rel="noopener noreferrer">Patents</a></li></ul></div>
4674    </div>
4675  </div>
4676
4677</footer>
4678
4679<script>
4680  document.querySelectorAll('.bfooter__kl-btn[data-kl-form]').forEach(function(btn) {
4681    btn.addEventListener('click', function() {
4682      window._klOnsite = window._klOnsite || [];
4683      window._klOnsite.push(['openForm', btn.getAttribute('data-kl-form')]);
4684    });
4685  });
4686</script>
4686
4687
4688
4689</div>
4689<script>window.BN_GP_PCT = 0;</script>
4689<script src="//www.bushnellgolf.com/cdn/shop/t/133/assets/bushnell.js?v=104067278944737574051790611765" defer></script>
4689
4690  
4690<script src="//www.bushnellgolf.com/cdn/shop/t/133/assets/bushnell-buy-now-patch.js?v=119937881875179874721790611764" defer></script>
4690
4691  
4691<script src="//www.bushnellgolf.com/cdn/shop/t/133/assets/bushnell-cro-patch.js?v=107937624809619826151790611765" defer></script>
4691
4692  
4692<script src="//www.bushnellgolf.com/cdn/shop/t/133/assets/bushnell-fitcheck.js?v=163253238342203939681790611765" defer></script>
4692<!-- === Bushnell Golf Body Scripts === --><!-- VenoBox lightbox -->
4692<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/venobox.min.js" defer></script>
vendor: 2 bytes, line 4692
4692
4693<script src="//www.bushnellgolf.com/cdn/shop/t/133/assets/venobox-modal.js?v=133750148818771280501790611765" defer></script>
4693<!-- AddShoppers sharing/referral pixel -->
4693<script src="//www.bushnellgolf.com/cdn/shop/t/133/assets/addshoppers-pixel.js?v=148152654428339958861790611766" defer></script>
4693<!-- AudioHook visitor ID + IP tag -->
4693<script src="//www.bushnellgolf.com/cdn/shop/t/133/assets/audiohook-img-tag.js?v=174756476640014750461790611766" defer></script>
4693<!-- IE browser detection (adds ie-browser class to <body>) -->
4693<script src="//www.bushnellgolf.com/cdn/shop/t/133/assets/ie-browser-detect.js?v=90317604072761044421790611764" defer></script>
4693<!-- Geo "Visiting from Europe?" popup --><link href="//www.bushnellgolf.com/cdn/shop/t/133/assets/country-popup.css?v=103088157342459723301790611765" rel="stylesheet" type="text/css" media="all" />
4694
4695<div class="popup-overlay" id="popup-overlay" aria-hidden="true"></div>
4696
4697<div
4698  class="country-popup"
4699  id="pwraper"
4700  role="dialog"
4701  aria-modal="true"
4702  aria-labelledby="popup-messege-head"
4703  aria-describedby="popup-messege-body"
4704>
4705  <button class="country-popup__close" id="popup-close" type="button" aria-label="Close">
4706    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="20" height="20" stroke-linecap="round">
4707      <line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/>
4708    </svg>
4709  </button>
4710
4711  <img id="country-flag" class="country-popup__flag" src="" alt="" width="72" height="48" loading="lazy">
4712
4713  <h2 class="country-popup__head" id="popup-messege-head"></h2>
4714  <p class="country-popup__body" id="popup-messege-body"></p>
4715
4716  <div class="country-popup__actions">
4717    <a id="site-link" class="country-popup__cta" href="#" target="_blank" rel="noopener">Visit Global Store</a>
4718    <button id="popup-stay" class="country-popup__stay" type="button">Stay on US site</button>
4719  </div>
4720</div>
4721
4722<script src="//www.bushnellgolf.com/cdn/shop/t/133/assets/country-popup.js?v=150122749862362957461790611765" defer></script>
4722
4723<div id="shopify-block-AVjlXQmhCU0dqeWtte__13851707123811236908" class="shopify-block shopify-app-block">
4724<script>
4725  var Needle = window.Needle || {};
4726  Object.defineProperty(Needle, 'scheme', {
4727    get: function() { return 'https'; },
4728    set: function() {},
4729    configurable: false
4730  });
4731  window.Needle = Needle;
4732</script>
vendor: 1 bytes, line 4732
4732
4733<script
4734  async
4735  defer
4736  src="https://bushnell.needle.com/needle_service.js?ver=1"
4737></script>
4737
4738
4739<script>
4740(function() {
4741  var syncAttempts = 0;
4742  var MAX_ATTEMPTS = 30;
4743
4744  function isNeedleReady() {
4745    return typeof Needle !== 'undefined' && Needle.np;
4746  }
4747
4748  function getNeedleAttributes() {
4749    return {
4750      '_needlepin': Needle.np,
4751      '_needle_service': Needle.service,
4752      '_needle_version': Needle.version,
4753      '_needle_nps': Needle.nps || ''
4754    };
4755  }
4756
4757  function isCartModifyUrl(url) {
4758    return url && (url.includes('/cart/add') || url.includes('/cart/change'));
4759  }
4760
4761  // Returns true on a 2xx response so callers can decide whether to retry.
4762  function syncToCartSync() {
4763    if (!isNeedleReady()) return false;
4764    var xhr = new XMLHttpRequest();
4765    xhr.open('POST', '/cart/update.js', false);
4766    xhr.setRequestHeader('Content-Type', 'application/json');
4767    xhr.send(JSON.stringify({ attributes: getNeedleAttributes() }));
4768    return xhr.status >= 200 && xhr.status < 300;
4769  }
4770
4771  function syncNeedlepinToCart() {
4772    syncAttempts++;
4773    if (isNeedleReady()) {
4774      fetch('/cart/update.js', {
4775        method: 'POST',
4776        headers: { 'Content-Type': 'application/json' },
4777        body: JSON.stringify({ attributes: getNeedleAttributes() })
4778      });
4779      return;
4780    }
4781    if (syncAttempts < MAX_ATTEMPTS) {
4782      setTimeout(syncNeedlepinToCart, 500);
4783    }
4784  }
4785
4786  setTimeout(syncNeedlepinToCart, 300);
4787
4788  // Selector covers:
4789  // - .shopify-payment-button container (keyboard tab + Enter lands here)
4790  // - button/div descendants for pointer/touch activation
4791  // - [data-shopify="payment-button"] for headless/custom themes
4792  var EXPRESS_BTN_SELECTOR = [
4793    '[name="buy_now"]',
4794    '.shopify-payment-button',
4795    '.shopify-payment-button button',
4796    '.shopify-payment-button__button',
4797    '[data-shopify="payment-button"]',
4798    '[data-shopify="payment-button"] button',
4799    '.dynamic-checkout__content button',
4800    '.dynamic-checkout__content [role="button"]'
4801  ].join(', ');
4802
4803  // Dedup timestamp. Only updated on confirmed XHR success so a failed sync
4804  // does not block immediate retry on the next event.
4805  var lastExpressSyncAt = 0;
4806  function maybeSyncExpress(target) {
4807    if (!isNeedleReady()) return;
4808    if (!target || !target.closest(EXPRESS_BTN_SELECTOR)) return;
4809    var now = Date.now();
4810    if (now - lastExpressSyncAt < 500) return;
4811    if (syncToCartSync()) lastExpressSyncAt = Date.now();
4812  }
4813
4814  // mousedown fires before click for pointer devices (mouse, trackpad, stylus).
4815  document.addEventListener('mousedown', function(e) {
4816    maybeSyncExpress(e.target);
4817  }, true);
4818
4819  // For touch: touchstart/touchmove track whether the gesture is a scroll;
4820  // touchend fires the sync only on confirmed taps (no significant move).
4821  // All three use passive: true — we never call preventDefault().
4822  var _touchOnExpress = false;
4823  var _touchMoved = false;
4824  document.addEventListener('touchstart', function(e) {
4825    _touchMoved = false;
4826    _touchOnExpress = !!(e.target && e.target.closest(EXPRESS_BTN_SELECTOR));
4827  }, { capture: true, passive: true });
4828  document.addEventListener('touchmove', function() {
4829    _touchMoved = true;
4830  }, { capture: true, passive: true });
4831  document.addEventListener('touchend', function(e) {
4832    if (_touchOnExpress && !_touchMoved) maybeSyncExpress(e.target);
4833    _touchOnExpress = false;
4834    _touchMoved = false;
4835  }, { capture: true, passive: true });
4836
4837  var originalFetch = window.fetch;
4838  window.fetch = function(url) {
4839    var result = originalFetch.apply(this, arguments);
4840    if (typeof url === 'string' && isCartModifyUrl(url)) {
4841      result.then(function() { setTimeout(syncNeedlepinToCart, 100); });
4842    }
4843    return result;
4844  };
4845
4846  var originalXHROpen = XMLHttpRequest.prototype.open;
4847  XMLHttpRequest.prototype.open = function(method, url) {
4848    this._needleUrl = url;
4849    return originalXHROpen.apply(this, arguments);
4850  };
4851
4852  var originalXHRSend = XMLHttpRequest.prototype.send;
4853  XMLHttpRequest.prototype.send = function() {
4854    var xhr = this;
4855    if (isCartModifyUrl(xhr._needleUrl)) {
4856      xhr.addEventListener('load', function() { setTimeout(syncNeedlepinToCart, 100); });
4857    }
4858    return originalXHRSend.apply(this, arguments);
4859  };
4860
4861  // pagehide fires only on true page unload (navigate away, tab close),
4862  // not on tab switches or screen lock. keepalive lets the request survive
4863  // after the document is torn down.
4864  window.addEventListener('pagehide', function() {
4865    if (!isNeedleReady()) return;
4866    fetch('/cart/update.js', {
4867      method: 'POST',
4868      headers: { 'Content-Type': 'application/json' },
4869      body: JSON.stringify({ attributes: getNeedleAttributes() }),
4870      keepalive: true
4871    }).catch(function() {});
4872  });
4873
4874  document.addEventListener('submit', function(e) {
4875    var form = e.target;
4876    if (!form) return;
4877    var hasBuyNow = form.querySelector('[name="buy_now"]');
4878    var isCartAction = form.action && (form.action.includes('/cart') || form.action.includes('/cart/add'));
4879    if (hasBuyNow || isCartAction) {
4880      if (isNeedleReady()) {
4881        syncToCartSync();
4882      } else {
4883        setTimeout(syncNeedlepinToCart, 500);
4884      }
4885    }
4886  }, true);
4887
4888  document.addEventListener('click', function(e) {
4889    var addToCartBtn = e.target.closest('[name="add"], [data-add-to-cart], .add-to-cart, .product-form__submit');
4890    if (addToCartBtn) {
4891      setTimeout(syncNeedlepinToCart, 500);
4892      return;
4893    }
4894
4895    var checkoutLink = e.target.closest('a[href*="/checkout"], a[href*="/cart"]');
4896    if (checkoutLink && isNeedleReady()) {
4897      syncToCartSync();
4898      return;
4899    }
4900
4901    // Catches keyboard (Enter/Space) activation of express checkout buttons.
4902    // maybeSyncExpress dedupes if mousedown/touchend already fired 
4902within 500 ms.
4903    maybeSyncExpress(e.target);
4904  }, true);
4905})();
4906</script>
4906
4907
4908
4909
4910</div>
4910<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
4910
4911</body>
4912</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.