PageSourceSearch

https://www.bushnellgolf.com/pages/about-bushnell-golf

html bushnellgolf.com collected 2026-09-24 09:12:45 UTC 338,178 bytes, 4,752 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   <!-- OneTrust Cookies Consent Notice start for bushnellgolf.com -->
21<script src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js"  type="text/javascript" charset="UTF-8" data-domain-script="6dc80972-8ca6-414a-a7c5-a260885539e8" ></script>
21
22<script type="text/javascript">
23function OptanonWrapper() { }
24</script>
24
25<!-- OneTrust Cookies Consent Notice end for bushnellgolf.com -->
26<meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge">
27<meta name="viewport" content="width=device-width,initial-scale=1"> 
28<meta name="view-transition" content="same-origin">
29<meta name="theme-color" content="">
30<meta property="og:site_name" content="Bushnell Golf"> 
31<meta property="og:url" content="https://www.bushnellgolf.com/pages/about-bushnell-golf">
32<meta property="og:title" content="About Bushnell Golf"> 
33<meta property="og:type" content="website">
34<meta property="og:description" content="Bushnell Golf is the industry leader in high-performance sports optics for over 65 years. We offer the highest quality, most reliable and affordable products."><meta property="og:image" content="https://www.bushnellgolf.com/cdn/shop/files/bushnell_logo.webp?v=1786469888&width=1200">
35  <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">
36    <meta property="og:image:height" content="628"><meta name="twitter:card" content="summary_large_image"> 
37<meta name="twitter:title" content="About Bushnell Golf">
38<meta name="twitter:description" content="Bushnell Golf is the industry leader in high-performance sports optics for over 
3865 years. We offer the highest quality, most reliable and affordable products."><meta name="twitter:image" content="https://www.bushnellgolf.com/cdn/shop/files/bushnell_logo.webp?v=1786469888&width=1200"><title>
39  About Bushnell Golf�</title>
40<link rel="canonical" href="https://www.bushnellgolf.com/pages/about-bushnell-golf">
41<meta name="description" content="Bushnell Golf is the industry leader in high-performance sports optics for over 65 years. We offer the highest quality, most reliable and affordable products.">
42<meta name="google-site-verification" content="QB7OV1rk3Q8aMLza38ldv-0AnjJm4Ld5fvuDhJTsmyA" />
43<meta name="google-site-verification" content="maaQ54rgAe6kxaZNZo1U2leDgbetgtxqL1NlLS6E5_o" />
44<link rel="preconnect" href="https://cdn.cookielaw.org">
45  <link rel="preconnect" href="https://cdn-4.convertexperiments.com">
46  <link rel="preconnect" href="https://edge.cofra.me">
47  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
48  <link rel="dns-prefetch" href="https://cdn.jsdelivr.net">
49  <link rel="dns-prefetch" href="https://sdk.helloextend.com">
50  <link rel="preconnect" href="https://api.helloextend.com" crossorigin>
50<script type="application/ld+json">
51{
52  "@context": "https://schema.org",
53  "@type": "Corporation",
54  "name": "Bushnell Golf",
55  "url": "https://www.bushnellgolf.com",
56  "description": "Bushnell Golf — The #1 Rangefinder in Golf. Laser rangefinders, GPS devices, and launch monitors.",
57  "brand": { "@type": "Brand", "name": "Bushnell Golf" },
58  "sameAs": [
59    "https://www.facebook.com/bushnellgolf",
60    "https://www.instagram.com/bushnellgolf",
61    "https://www.twitter.com/bushnellgolf",
62    "https://www.youtube.com/bushnellgolf"
63  ],
64  "contactPoint": {
65    "@type": "ContactPoint",
66    "contactType": "Customer Support",
67    "url": "https://www.bushnellgolf.com/pages/contact"
68  }
69}
70</script>
70
71
72<script type="application/ld+json">
73{
74  "@context": "https://schema.org",
75  "@type": "WebSite",
76  "name": "Bushnell Golf",
77  "url": "https://www.bushnellgolf.com",
78  "potentialAction": {
79    "@type": "SearchAction",
80    "target": {
81      "@type": "EntryPoint",
82      "urlTemplate": "https://www.bushnellgolf.com/search?q={search_term_string}"
83    },
84    "query-input": "required name=search_term_string"
85  }
86}
87</script>
87
88<script defer src="https://cdn-4.convertexperiments.com/v1/js/10034870-10034482.js?environment=production"></script>
88
89
90
91<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/venobox.min.css" media="print" onload="this.media='all'">
92<noscript><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/venobox.min.css"></noscript> 
93��
93<script src="/cdn/shopifycloud/consent-tracking-api/v0.1/consent-tracking-api.js"></script>
93
94
95<script type="text/javascript">
96  
97;(function() {
98    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()}
98,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}
98get 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;
98const 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=`
99      mutation cartCreate($input: CartInput!) {
100        cartCreate(input: $input) {
101          cart {
102            id
103            checkoutUrl
104          }
105          userErrors {
106            field
107            message
108          }
109        }
110      }
111    `,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}
111getBuyItNowDetailsFromForm(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}}
111dispatch(){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
111h(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"}}
111get 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=>
111s.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;
111if(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;
111if(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")}
111async 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=>
111r.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 
111instanceof Error?{message:s.message,stack:s.stack}:String(s)}),this.retainedReferrer.clear()}}};a(T,"MAX_DISPATCH_ATTEMPTS",5);let K=T;window.ShogunDispatcher=K})();
112
113})();
114  
115</script>
115<script type="text/javascript">
116  ;(function() {
117    const designMode = false;
118    if (designMode) {
119      console.debug("shogun: Design mode is enabled, skipping optimizer initialization");
120      return;
121    }
122
123    // 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
124    // This is used to remove the preview bar from the page for shoppers
125    const referrer = document.referrer
126    const merchantDomains = ['admin.shopify.com', 'ab.shgapi.com', 'abc.shogun.dev']
127    if (!localStorage.getItem('_shg_is_merchant') && merchantDomains.some(domain => referrer.includes(domain))) {
128      console.debug('shogun: Setting shg_is_merchant to true')
129      localStorage.setItem('_shg_is_merchant', 'true')
130    }
131
132    // Check for optimization disable flags
133    const urlParams = new URLSearchParams(window.location.search);
134    const optimizationDisabled = urlParams.get('shg') === "false" || window.location.hostname.includes('shopifypreview');
135
136    if (optimizationDisabled) {
137      console.debug("shogun: Optimization is disabled, skipping optimizer initialization");
138      return;
139    }
140
141    // Load shop metafield configuration
142    
143    const shopMetafieldConfig = {"default_theme_id":191087509688,"method":"greedy","optimizations":[],"expires_at":1788892296000,"env":"production"};
144    
145    if (!shopMetafieldConfig) {
146      console.debug("shogun: Shop metafield configuration for optimizations is missing. Skipping optimizer initialization.");
147      return;
148    }
149
150    const optimizationsData = shopMetafieldConfig.expires_at > Date.now() ? (shopMetafieldConfig.optimizations || []) : [];
151
152    // These ID should match. It is possible for them to be different if a theme is copied from a different shop.
153    const intendedShopifyId = "94598496440"; // The hard coded shopify ID when this snippet was pushed to the theme.
154    const currentShopifyId = "94598496440"; // The current shopify ID that this theme is rendered in.
155    if (intendedShopifyId !== currentShopifyId) {
156      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.`);
157      return;
158    } else {
159      console.debug(`shogun: Shopify ID verified: ${intendedShopifyId}`);
160    }
161
162    
163      if (typeof ShogunDispatcher === 'undefined') {
164        console.error("shogun: Dispatcher is not defined. Please ensure the shogun optimizer script is properly loaded.");
165        return;
166      }
167
168      const dispatcherConfig = {
169        shop: {
170          shopId: "57f1285e-8e9b-4a81-a60f-fa678b392b91",
171          shopDomain: "1zkvfh-xt.myshopify.com",
172          analyticsUrl: "https://shogun-abc-production.global.ssl.fastly.net",
173          geoLocationApi: "https://ipinfo.io/json?token=f2ae3a557d807b",
174          storefrontAccessToken: null,
175          defaultThemeId: shopMetafieldConfig.default_theme_id ? shopMetafieldConfig.default_theme_id.toString() : null,
176          storewideEventCollection: false,
177        },
178        page: {
179          pageId: "165898748088",
180          pageType: "page",
181          templateName: "page",
182          templateSuffix: "about",
183          templateDirectory: "",
184          themeId: "190609653944",
185          languageRootUrl: "/",
186          path: window.location.pathname,
187          currentCartVariantId: null,
188        },
189        session: {
190          sessionId: urlParams.get('shgSessionId'),
191          customerId: "",
192          isB2B: false,
193        },
194        assignmentStrategy: shopMetafieldConfig.method,
195        publishedOptimizations: optimizationsData
196      }
197
198      console.debug("shogun: Initializing ShogunOptimizer v2");
199      const dispatcher = new ShogunDispatcher(dispatcherConfig);
200      dispatcher.run();
201    
202  })();
203
204</script>
204
205�<link
206      rel="icon"
207      type="image/png"
208      href="//www.bushnellgolf.com/cdn/shop/files/favicon.png?crop=center&height=32&v=1784050590&width=32"
209    ><style data-shopify>�@font-face {
210  font-family: Inter;
211  font-weight: 400;
212  font-style: normal;
213  font-display: swap;
214  src: url("//www.bushnellgolf.com/cdn/fonts/inter/inter_n4.b2a3f24c19b4de56e8871f609e73ca7f6d2e2bb9.woff2") format("woff2"),
215       url("//www.bushnellgolf.com/cdn/fonts/inter/inter_n4.af8052d517e0c9ffac7b814872cecc27ae1fa132.woff") format("woff");
216}
217@font-face {
218  font-family: Inter;
219  font-weight: 700;
220  font-style: normal;
221  font-display: swap;
222  src: url("//www.bushnellgolf.com/cdn/fonts/inter/inter_n7.02711e6b374660cfc7915d1afc1c204e633421e4.woff2") format("woff2"),
223       url("//www.bushnellgolf.com/cdn/fonts/inter/inter_n7.6dab87426f6b8813070abd79972ceaf2f8d3b012.woff") format("woff");
224}
225@font-face {
226  font-family: Inter;
227  font-weight: 400;
228  font-style: italic;
229  font-display: swap;
230  src: url("//www.bushnellgolf.com/cdn/fonts/inter/inter_i4.feae1981dda792ab80d117249d9c7e0f1017e5b3.woff2") format("woff2"),
231       url("//www.bushnellgolf.com/cdn/fonts/inter/inter_i4.62773b7113d5e5f02c71486623cf828884c85c6e.woff") format("woff");
232}
233@font-face {
234  font-family: Inter;
235  font-weight: 700;
236  font-style: italic;
237  font-display: swap;
238  src: url("//www.bushnellgolf.com/cdn/fonts/inter/inter_i7.b377bcd4cc0f160622a22d638ae7e2cd9b86ea4c.woff2") format("woff2"),
239       url("//www.bushnellgolf.com/cdn/fonts/inter/inter_i7.7c69a6a34e3bb44fcf6f975857e13b9a9b25beb4.woff") format("woff");
240}
241@font-face {
242  font-family: Inter;
243  font-weight: 500;
244  font-style: normal;
245  font-display: swap;
246  src: url("//www.bushnellgolf.com/cdn/fonts/inter/inter_n5.d7101d5e168594dd06f56f290dd759fba5431d97.woff2") format("woff2"),
247       url("//www.bushnellgolf.com/cdn/fonts/inter/inter_n5.5332a76bbd27da00474c136abb1ca3cbbf259068.woff") format("woff");
248}
249@font-face {
250  font-family: Inter;
251  font-weight: 500;
252  font-style: italic;
253  font-display: swap;
254  src: url("//www.bushnellgolf.com/cdn/fonts/inter/inter_i5.4474f48e6ab2b1e01aa2b6d942dd27fa24f2d99f.woff2") format("woff2"),
255       url("//www.bushnellgolf.com/cdn/fonts/inter/inter_i5.493dbd6ee8e49f4ad722ebb68d92f201af2c2f56.woff") format("woff");
256}
257
258
259  :root {
260    /* Page Layout */
261    --sidebar-width: 25rem;
262    --narrow-content-width: 36rem;
263    --normal-content-width: 42rem;
264    --wide-content-width: 46rem;
265    --narrow-page-width: 90rem;
266    --normal-page-width: 120rem;
267    --wide-page-width: 150rem;
268
269    /* Section Heights */
270    --section-height-small: 15rem;
271    --section-height-medium: 25rem;
272    --section-height-large: 35rem;
273
274    @media screen and (min-width: 40em) {
275      --section-height-small: 40svh;
276      --section-height-medium: 55svh;
277      --section-height-large: 70svh;
278    }
279
280    @media screen and (min-width: 60em) {
281      --section-height-small: 50svh;
282      --section-height-medium: 65svh;
283      --section-height-large: 80svh;
284    }
285
286    /* Letter spacing */
287    --letter-spacing-sm: 0.06em;
288    --letter-spacing-md: 0.13em;
289
290    /* Font families */
291    --font-body--family: Inter, sans-serif;
292    --font-body--style: normal;
293    --font-body--weight: 400;
294    --font-subheading--family: Inter, sans-serif;
295    --font-subheading--style: normal;
296    --font-subheading--weight: 500;
297    --font-heading--family: Inter, sans-serif;
298    --font-heading--style: normal;
299    --font-heading--weight: 700;
300    --font-accent--family: Inter, sans-serif;
301    --font-accent--style: normal;
302    --font-accent--weight: 700;
303
304    /* Margin sizes */
305    --font-heading--spacing: 0.25em;
306    --font-h1--spacing: var(--font-heading--spacing);
307    --font-h2--spacing: var(--font-heading--spacing);
308    --font-h3--spacing: var(--font-heading--spacing);
309    --font-h4--spacing: var(--font-heading--spacing);
310    --font-h5--spacing: var(--font-heading--spacing);
311    --font-h6--spacing: var(--font-heading--spacing);
312    --font-paragraph--spacing: 0.5em;
313
314    /* Heading colors */
315    --font-h1--color: var(--color-foreground-heading);
316    --font-h2--color: var(--color-foreground-heading);
317    --font-h3--color: var(--color-foreground-heading);
318    --font-h4--color: var(--color-foreground-heading);
319    --font-h5--color: var(--color-foreground-heading);
320    --font-h6--color: var(--color-foreground-heading);
321
322    /** Z-Index / Layering */
323    --layer-section-background: -2;
324    --layer-lowest: -1;
325    --layer-base: 0;
326    --layer-flat: 1;
327    --layer-raised: 2;
328    --layer-heightened: 4;
329    --layer-sticky: 8;
330    --layer-window-overlay: 10;
331    --layer-header-menu: 12;
332    --layer-overlay: 16;
333    --layer-menu-drawer: 18;
334    --layer-temporary: 20;
335
336    /* Max-width / Measure */
337    --max-width--body-normal: 32.5em;
338    --max-width--body-narrow: 22.75em;
339
340    --max-width--heading-normal: 32.5em;
341    --max-width--heading-narrow: 19.5em;
342
343    --max-width--display-normal: 13em;
344    --max-width--display-narrow: 9.75em;
345    --max-width--display-tight: 3.25em;
346
347    /* Letter-spacing / Tracking */
348    --letter-spacing--display-tight: -0.03em;
349    --letter-spacing--display-normal: 0em;
350    --letter-spacing--display-loose: 0.03em;
351
352    --letter-spacing--heading-tight: -0.03em;
353    --letter-spacing--heading-normal: 0em;
354    --letter-spacing--heading-loose: 0.03em;
355
356    --letter-spacing--body-tight: -0.03em;
357    --letter-spacing--body-normal: 0em;
358    --letter-spacing--body-loose: 0.03em;
359
360    /* Line height / Leading */
361    --line-height: 1;
362
363    --line-height--display-tight: 1;
364    --line-height--display-normal: 1.1;
365    --line-height--display-loose: 1.2;
366
367    --line-height--heading-tight: 1.15;
368    --line-height--heading-normal: 1.25;
369    --line-height--heading-loose: 1.35;
370
371    --line-height--body-tight: 1.2;
372    --line-height--body-normal: 1.4;
373    --line-height--body-loose: 1.6;
374
375    /* Typography presets */
376    --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);
377
378    /* Hardcoded font sizes */
379    --font-size--3xs: 0.625rem;
380    --font-size--2xs: 0.75rem;
381    --font-size--xs: 0.8125rem;
382    --font-size--sm: 0.875rem;
383    --font-size--md: 1rem;
384    --font-size--lg: 1.125rem;
385    --font-size--xl: 1.25rem;
386    --font-size--2xl: 1.5rem;
387    --font-size--3xl: 2rem;
388    --font-size--4xl: 2.5rem;
389    --font-size--5xl: 3rem;
390    --font-size--6xl: 3.5rem;
391
392    /* Menu font sizes */
393    --menu-font-sm--size: 0.875rem;
394    --menu-font-sm--line-height: calc(1.1 + 0.5 * min(16 / 14));
395    --menu-font-md--size: 1rem;
396    --menu-font-md--line-height: calc(1.1 + 0.5 * min(16 / 16));
397    --menu-font-lg--size: 1.125rem;
398    --menu-font-lg--line-height: calc(1.1 + 0.5 * min(16 / 18));
399    --menu-font-xl--size: 1.25rem;
400    --menu-font-xl--line-height: calc(1.1 + 0.5 * min(16 / 20));
401    --menu-font-2xl--size: 1.75rem;
402    --menu-font-2xl--line-height: calc(1.1 + 0.5 * min(16 / 28));
403
404    /* Colors */
405    --color-error: #8B0000;
406    --color-success: #006400;
407    --color-white: #FFFFFF;
408    --color-white-rgb: 255 255 255;
409    --color-black: #000000;
410    --color-instock: #3ED660;
411    --color-lowstock: #EE9441;
412    --color-outofstock: #C8C8C8;
413
414    /* Opacity */
415    --opacity-5: 0.05;
416    --opacity-8: 0.08;
417    --opacity-10: 0.1;
418    --opacity-15: 0.15;
419    --opacity-20: 0.2;
420    --opacity-25: 0.25;
421    --opacity-30: 0.3;
422    --opacity-40: 0.4;
423    --opacity-50: 0.5;
424    --opacity-60: 0.6;
425    --opacity-70: 0.7;
426    --opacity-80: 0.8;
427    --opacity-85: 0.85;
428    --opacity-90: 0.9;
429    --opacity-subdued-text: var(--opacity-70);
430
431    --shadow-button: 0 2px 3px rgb(0 0 0 / 20%);
432    --gradient-image-overlay: linear-gradient(to top, rgb(0 0 0 / 0.5), transparent);
433
434    /* Spacing */
435    --margin-3xs: 0.125rem;
436    --margin-2xs: 0.3rem;
437    --margin-xs: 0.5rem;
438    --margin-sm: 0.7rem;
439    --margin-md: 0.8rem;
440    --margin-lg: 1rem;
441    --margin-xl: 1.25rem;
442    --margin-2xl: 1.5rem;
443    --margin-3xl: 1.75rem;
444    --margin-4xl: 2rem;
445    --margin-5xl: 3rem;
446    --margin-6xl: 5rem;
447
448    --scroll-margin: 50px;
449
450    --padding-3xs: 0.125rem;
451    --padding-2xs: 0.25rem;
452    --padding-xs: 0.5rem;
453    --padding-sm: 0.7rem;
454    --padding-md: 0.8rem;
455    --padding-lg: 1rem;
456    --padding-xl: 1.25rem;
457    --padding-2xl: 1.5rem;
458    --padding-3xl: 1.75rem;
459    --padding-4xl: 2rem;
460    --padding-5xl: 3rem;
461    --padding-6xl: 4rem;
462
463    --gap-3xs: 0.125rem;
464    --gap-2xs: 0.3rem;
465    --gap-xs: 0.5rem;
466    --gap-sm: 0.7rem;
467    --gap-md: 0.9rem;
468    --gap-lg: 1rem;
469    --gap-xl: 1.25rem;
470    --gap-2xl: 2rem;
471    --gap-3xl: 3rem;
472
473    --spacing-scale-sm: 0.6;
474    --spacing-scale-md: 0.7;
475    --spacing-scale-default: 1.0;
476
477    /* Checkout buttons gap */
478    --checkout-button-gap: 10px;
479
480    /* Borders */
481    --style-border-width: 1px;
482    --style-border-radius-xs: 0.2rem;
483    --style-border-radius-sm: 0.6rem;
484    --style-border-radius-md: 0.8rem;
485    --style-border-radius-50: 50%;
486    --style-border-radius-lg: 1rem;
487    --style-border-radius-pills: 40px;
488    --style-border-radius-inputs: 4px;
489    --style-border-radius-buttons-primary: 14px;
490    --style-border-radius-buttons-secondary: 14px;
491    --style-border-width-primary: 0px;
492    --style-border-width-secondary: 1px;
493    --style-border-width-inputs: 1px;
494    --style-border-radius-popover: 14px;
495    --style-border-popover: 1px none rgb(var(--color-border-rgb) / 50%);
496    --style-border-drawer: 1px none rgb(var(--color-border-rgb) / 50%);
497    --style-border-swatch-opacity: 10%;
498    --style-border-swatch-width: 1px;
499    --style-border-swatch-style: solid;
500
501    /* Animation */
502    --ease-out-cubic: cubic-bezier(0.33, 1, 0.68, 1);
503    --ease-out-quad: cubic-bezier(0.32, 0.72, 0, 1);
504    --ease-in-out-quad: cubic-bezier(0.455, 0.03, 0.515, 0.955);
505    --animation-speed-fast: 0.0625s;
506    --animation-speed: 0.125s;
507    --animation-speed-slow: 0.2s;
508    --animation-speed-medium: 0.15s;
509    --animation-easing: ease-in-out;
510    --animation-slideshow-easing: cubic-bezier(0.4, 0, 0.2, 1);
511    --drawer-animation-speed: 0.2s;
512    --animation-values-slow: var(--animation-speed-slow) var(--animation-easing);
513    --animation-values: var(--animation-speed) var(--animation-easing);
514    --animation-values-fast: var(--animation-speed-fast) var(--animation-easing);
515    --animation-values-allow-discrete: var(--animation-speed) var(--animation-easing) allow-discrete;
516    --animation-timing-hover: cubic-bezier(0.25, 0.46, 0.45, 0.94);
517    --animation-timing-active: cubic-bezier(0.5, 0, 0.75, 0);
518    --animation-timing-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
519    --animation-timing-default: cubic-bezier(0, 0, 0.2, 1);
520    --animation-timing-fade-in: cubic-bezier(0.16, 1, 0.3, 1);
521    --animation-timing-fade-out: cubic-bezier(0.4, 0, 0.2, 1);
522    /* Spring definitions suffixed with perceptual duration (d<ms>) and bounce (b<%>)*/
523    --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%);
524    --spring-d300-b0-duration: 0.4980s;
525    --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%);
526    --spring-d280-b0-duration: 0.4648s;
527    --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%);
528    --spring-d260-b0-duration: 0.4316s;
529    --spring-d220-b0-easing: linear(
530      0,
531      0.0093 1.37%,
532      0.0696 4.12%,
533      0.4667 15.09%,
534      0.6322 20.58%,
535      0.6986 23.32%,
536      0.7793 27.44%,
537      0.8219 30.18%,
538      0.8721,
539      0.9089 38.42%,
540      0.9427,
541      0.9644,
542      0.978 54.88%,
543      0.9881 61.74%,
544      0.9944 69.97%,
545      0.998 80.95%,
546      0.9996 98.78%
547    );
548    --spring-d220-b0-duration: 0.3818s;
549    --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%);
550    --spring-d180-b0-duration: 0.2988s;
551
552    /* View transitions */
553    /* View transition old */
554    --view-transition-old-main-content: var(--animation-speed) var(--animation-easing) both fadeOut;
555
556    /* View transition new */
557    --view-transition-new-main-content: var(--animation-speed) var(--animation-easing) both fadeIn, var(--animation-speed) var(--animation-easing) both slideInTopViewTransition;
558
559    /* Focus */
560    --focus-outline-width: 0.09375rem;
561    --focus-outline-offset: 0.2em;
562
563    /* Badges */
564    --badge-blob-padding-block: 1px;
565    --badge-blob-padding-inline: 12px 8px;
566    --badge-rectangle-padding-block: 1px;
567    --badge-rectangle-padding-inline: 6px;
568    @media screen and (min-width: 750px) {
569      --badge-blob-padding-block: 4px;
570      --badge-blob-padding-inline: 16px 12px;
571      --badge-rectangle-padding-block: 4px;
572      --badge-rectangle-padding-inline: 10px;
573    }
574
575    /* Icons */
576    --icon-size-2xs: 0.6rem;
577    --icon-size-xs: 0.85rem;
578    --icon-size-sm: 1.25rem;
579    --icon-size-md: 1.375rem;
580    --icon-size-lg: 1.5rem;
581    --icon-stroke-width: 1.5px;
582
583    /* Input */
584    --input-email-min-width: 200px;
585    --input-search-max-width: 650px;
586    --input-padding-y: 0.8rem;
587    --input-padding-x: 0.8rem;
588    --input-padding: var(--input-padding-y) var(--input-padding-x);
589    --input-box-shadow-width: var(--style-border-width-inputs);
590    --input-box-shadow: 0 0 0 var(--input-box-shadow-width) var(--color-input-border);
591    --input-box-shadow-focus: 0 0 0 calc(var(--input-box-shadow-width) + 0.5px) var(--color-input-border);
592    --input-disabled-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10));
593    --input-disabled-border-color: rgb(var(--color-foreground-rgb) / var(--opacity-5));
594    --input-disabled-text-color: rgb(var(--color-foreground-rgb) / var(--opacity-50));
595    --input-textarea-min-height: 55px;
596
597    /* Checkbox */
598    --checkbox-size: 22px;
599    --checkbox-border-radius: 7px;
600    --checkbox-border: 1px solid rgb(var(--color-foreground-rgb) / var(--opacity-35-55));
601    --checkbox-label-padding: 8px;
602
603    @media screen and (min-width: 750px) {
604      --checkbox-size: 16px;
605      --checkbox-border-radius: 5px;
606      --checkbox-label-padding: 6px;
607    }
608
609    /* Button size */
610    --button-size-sm: 30px;
611    --button-size-md: 36px;
612    --button-size: var(--minimum-touch-target);
613    --button-padding-inline: 24px;
614    --button-padding-block: 16px;
615
616    /* Button font-family */
617    --button-font-family-primary: var(--font-body--family);
618    --button-font-family-secondary: var(--font-body--family);
619
620    /* Button text case */
621    --button-text-case: ;
622    --button-text-case-primary: default;
623    --button-text-case-secondary: default;
624
625    /* Borders */
626    --border-color: rgb(var(--color-border-rgb) / var(--opacity-50));
627    --border-width-sm: 1px;
628    --border-width-md: 2px;
629    --border-width-lg: 5px;
630    --border-radius-sm: 0.25rem;
631
632    /* Drawers */
633    --drawer-inline-padding: 25px;
634    --drawer-menu-inline-padding: 2.5rem;
635    --drawer-header-block-padding: 20px;
636    --drawer-content-block-padding: 10px;
637    --drawer-header-desktop-top: 0rem;
638    --drawer-padding: calc(var(--padding-sm) + 7px);
639    --drawer-height: 100dvh;
640    --drawer-width: 95vw;
641    --drawer-max-width: 500px;
642
643    /* Variant Picker Swatches */
644    --variant-picker-swatch-width-unitless: 34;
645    --variant-picker-swatch-height-unitless: 34;
646    --variant-picker-swatch-width: 34px;
647    --variant-picker-swatch-height: 34px;
648    --variant-picker-swatch-radius: 32px;
649    --variant-picker-border-width: 1px;
650    --variant-picker-border-style: solid;
651    --variant-picker-border-opacity: 10%;
652
653    /* Variant Picker Buttons */
654    --variant-picker-button-radius: 14px;
655    --variant-picker-button-border-width: 1px;
656
657    /* Slideshow */
658    --slideshow-controls-size: 3.5rem;
659    --slideshow-controls-icon: 2rem;
660    --peek-next-slide-size: 3rem;
661
662    /* Utilities */
663    --backdrop-opacity: 0.15;
664    --backdrop-color-rgb: var(--color-shadow-rgb);
665    --minimum-touch-target: 44px;
666    --disabled-opacity: 0.5;
667    --skeleton-opacity: 0.025;
668
669    /* Shapes */
670    --shape--circle: circle(50% at center);
671    --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%);
672    --shape--diamond: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%);
673    --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
673% 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%);
674
675    /* Buy buttons */
676    --height-buy-buttons: calc(var(--padding-lg) * 2 + var(--icon-size-sm));
677
678    /* Card image width and height variables */
679    --card-width-small: 10rem;
680
681    --height-small: 10rem;
682    --height-medium: 11.5rem;
683    --height-large: 13rem;
684    --height-full: 100vh;
685
686    @media screen and (min-width: 750px) {
687      --height-small: 17.5rem;
688      --height-medium: 21.25rem;
689      --height-large: 25rem;
690    }
691
692    /* Modal */
693    --modal-max-height: 65dvh;
694    --quick-add-modal-height: min(38.5rem, 96vh);
695    --quick-add-modal-width: min(54rem, 96vw);
696    --quick-add-modal-gallery-width: 24rem;
697
698    /* Card styles for search */
699    --card-bg-hover: rgb(var(--color-foreground-rgb) / var(--opacity-5));
700    --card-border-hover: rgb(var(--color-foreground-rgb) / var(--opacity-30));
701    --card-border-focus: rgb(var(--color-foreground-rgb) / var(--opacity-10));
702
703    /* Cart */
704    --cart-primary-font-family: var(--font-body--family);
705    --cart-primary-font-style: var(--font-body--style);
706    --cart-primary-font-weight: var(--font-body--weight);
707    --cart-secondary-font-family: var(--font-secondary--family);
708    --cart-secondary-font-style: var(--font-secondary--style);
709    --cart-secondary-font-weight: var(--font-secondary--weight);
710  }
711</style>
712<style data-shopify>
713  
714    
715      :root,
716    
717    
718    
719    .color-scheme-1 {
720        --color-background: rgb(255 255 255 / 1.0);
721        /* RGB values only to apply different opacities - Relative color values are not supported in iOS < 16.4 */
722        --color-background-rgb: 255 255 255;
723        --opacity-5-15: 0.05;
724        --opacity-10-25: 0.1;
725        --opacity-35-55: 0.35;
726        --opacity-40-60: 0.4;
727        --opacity-30-60: 0.3;
728        --color-foreground: rgb(0 0 0 / 0.81);
729        --color-foreground-rgb: 0 0 0;
730        --color-foreground-heading: rgb(0 0 0 / 1.0);
731        --color-foreground-heading-rgb: 0 0 0;
732        --color-primary: rgb(0 0 0 / 0.81);
733        --color-primary-rgb: 0 0 0;
734        --color-primary-hover: rgb(0 0 0 / 1.0);
735        --color-primary-hover-rgb: 0 0 0;
736        --color-border: rgb(0 0 0 / 0.06);
737        --color-border-rgb: 0 0 0;
738        --color-shadow: rgb(0 0 0 / 1.0);
739        --color-shadow-rgb: 0 0 0;
740        --color-primary-button-text: rgb(255 255 255 / 1.0);
741        --color-primary-button-background: rgb(0 0 0 / 1.0);
742        --color-primary-button-border: rgb(0 0 0 / 1.0);
743        --color-primary-button-hover-text: rgb(255 255 255 / 1.0);
744        --color-primary-button-hover-background: rgb(51 51 51 / 1.0);
745        --color-primary-button-hover-border: rgb(0 0 0 / 1.0);
746        --color-secondary-button-text: rgb(0 0 0 / 1.0);
747        --color-secondary-button-background: rgb(0 0 0 / 0.0);
748        --color-secondary-button-border: rgb(0 0 0 / 1.0);
749        --color-secondary-button-hover-text: rgb(51 51 51 / 1.0);
750        --color-secondary-button-hover-background: rgb(250 250 250 / 1.0);
751        --color-secondary-button-hover-border: rgb(51 51 51 / 1.0);
752        --color-input-background: rgb(255 255 255 / 0.78);
753        --color-input-text: rgb(51 51 51 / 1.0);
754        --color-input-text-rgb: 51 51 51;
755        --color-input-border: rgb(223 223 223 / 1.0);
756        --color-input-hover-background: rgb(0 0 0 / 0.01);
757        --color-variant-background: rgb(255 255 255 / 1.0);
758        --color-variant-border: rgb(0 0 0 / 0.13);
759        --color-variant-text: rgb(0 0 0 / 1.0);
760        --color-variant-text-rgb: 0 0 0;
761        --color-variant-hover-background: rgb(245 245 245 / 1.0);
762        --color-variant-hover-text: rgb(0 0 0 / 1.0);
763        --color-variant-hover-border: rgb(230 230 230 / 1.0);
764        --color-selected-variant-background: rgb(0 0 0 / 1.0);
765        --color-selected-variant-border: rgb(0 0 0 / 1.0);
766        --color-selected-variant-text: rgb(255 255 255 / 1.0);
767        --color-selected-variant-hover-background: rgb(26 26 26 / 1.0);
768        --color-selected-variant-hover-text: rgb(255 255 255 / 1.0);
769        --color-selected-variant-hover-border: rgb(26 26 26 / 1.0);
770
771        --input-disabled-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10));
772        --input-disabled-border-color: rgb(var(--color-foreground-rgb) / var(--opacity-5-15));
773        --input-disabled-text-color: rgb(var(--color-foreground-rgb) / var(--opacity-50));
774        --color-foreground-muted: rgb(var(--color-foreground-rgb) / var(--opacity-60));
775        --font-h1--color: var(--color-foreground-heading);
776        --font-h2--color: var(--color-foreground-heading);
777        --font-h3--color: var(--color-foreground-heading);
778        --font-h4--color: var(--color-foreground-heading);
779        --font-h5--color: var(--color-foreground-heading);
780        --font-h6--color: var(--color-foreground-heading);
781
782        /* Shadows */
783        
784          --shadow-drawer: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
785        
786        
787          --shadow-blur: 20px;
788          --shadow-popover: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
789        
790      }
791  
792    
793    
794    
795    .color-scheme-2 {
796        --color-background: rgb(254 80 0 / 1.0);
797        /* RGB values only to apply different opacities - Relative color values are not supported in iOS < 16.4 */
798        --color-background-rgb: 254 80 0;
799        --opacity-5-15: 0.05;
800        --opacity-10-25: 0.1;
801        --opacity-35-55: 0.35;
802        --opacity-40-60: 0.4;
803        --opacity-30-60: 0.3;
804        --color-foreground: rgb(0 0 0 / 0.81);
805        --color-foreground-rgb: 0 0 0;
806        --color-foreground-heading: rgb(0 0 0 / 1.0);
807        --color-foreground-heading-rgb: 0 0 0;
808        --color-primary: rgb(0 0 0 / 0.81);
809        --color-primary-rgb: 0 0 0;
810        --color-primary-hover: rgb(255 255 255 / 1.0);
811        --color-primary-hover-rgb: 255 255 255;
812        --color-border: rgb(223 223 223 / 1.0);
813        --color-border-rgb: 223 223 223;
814        --color-shadow: rgb(0 0 0 / 1.0);
815        --color-shadow-rgb: 0 0 0;
816        --color-primary-button-text: rgb(255 255 255 / 1.0);
817        --color-primary-button-background: rgb(0 0 0 / 1.0);
818        --color-primary-button-border: rgb(0 0 0 / 1.0);
819        --color-primary-button-hover-text: rgb(255 255 255 / 1.0);
820        --color-primary-button-hover-background: rgb(51 51 51 / 1.0);
821        --color-primary-button-hover-border: rgb(51 51 51 / 1.0);
822        --color-secondary-button-text: rgb(0 0 0 / 1.0);
823        --color-secondary-button-background: rgb(0 0 0 / 0.0);
824        --color-secondary-button-border: rgb(0 0 0 / 1.0);
825        --color-secondary-button-hover-text: rgb(0 0 0 / 1.0);
826        --color-secondary-button-hover-background: rgb(255 255 255 / 0.36);
827        --color-secondary-button-hover-border: rgb(51 51 51 / 0.73);
828        --color-input-background: rgb(0 0 0 / 0.0);
829        --color-input-text: rgb(0 0 0 / 0.53);
830        --color-input-text-rgb: 0 0 0;
831        --color-input-border: rgb(0 0 0 / 0.13);
832        --color-input-hover-background: rgb(255 255 255 / 0.36);
833        --color-variant-background: rgb(255 255 255 / 1.0);
834        --color-variant-border: rgb(230 230 230 / 1.0);
835        --color-variant-text: rgb(0 0 0 / 1.0);
836        --color-variant-text-rgb: 0 0 0;
837        --color-variant-hover-background: rgb(245 245 245 / 1.0);
838        --color-variant-hover-text: rgb(0 0 0 / 1.0);
839        --color-variant-hover-border: rgb(230 230 230 / 1.0);
840        --color-selected-variant-background: rgb(0 0 0 / 1.0);
841        --color-selected-variant-border: rgb(0 0 0 / 1.0);
842        --color-selected-variant-text: rgb(255 255 255 / 1.0);
843        --color-selected-variant-hover-background: rgb(26 26 26 / 1.0);
844        --color-selected-variant-hover-text: rgb(255 255 255 / 1.0);
845        --color-selected-variant-hover-border: rgb(26 26 26 / 1.0);
846
847        --input-disabled-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10));
848        --input-disabled-border-color: rgb(var(--color-foreground-rgb) / var(--opacity-5-15));
849        --input-disabled-text-color: rgb(var(--color-foreground-rgb) / var(--opacity-50));
850        --color-foreground-muted: rgb(var(--color-foreground-rgb) / var(--opacity-60));
851        --font-h1--color: var(--color-foreground-heading);
852        --font-h2--color: var(--color-foreground-heading);
853        --font-h3--color: var(--color-foreground-heading);
854        --font-h4--color: var(--color-foreground-heading);
855        --font-h5--color: var(--color-foreground-heading);
856        --font-h6--color: var(--color-foreground-heading);
857
858        /* Shadows */
859        
860          --shadow-drawer: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
861        
862        
863          --shadow-blur: 20px;
864          --shadow-popover: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
865        
866      }
867  
868    
869    
870    
871    .color-scheme-3 {
872        --color-background: rgb(238 241 234 / 1.0);
873        /* RGB values only to apply different opacities - Relative color values are not supported in iOS < 16.4 */
874        --color-background-rgb: 238 241 234;
875        --opacity-5-15: 0.05;
876        --opacity-10-25: 0.1;
877        --opacity-35-55: 0.35;
878        --opacity-40-60: 0.4;
879        --opacity-30-60: 0.3;
880        --color-foreground: rgb(0 0 0 / 0.81);
881        --color-foreground-rgb: 0 0 0;
882        --color-foreground-heading: rgb(0 0 0 / 1.0);
883        --color-foreground-heading-rgb: 0 0 0;
884        --color-primary: rgb(0 0 0 / 0.81);
885        --color-primary-rgb: 0 0 0;
886        --color-primary-hover: rgb(0 0 0 / 1.0);
887        --color-primary-hover-rgb: 0 0 0;
888        --color-border: rgb(0 0 0 / 0.81);
889        --color-border-rgb: 0 0 0;
890        --color-shadow: rgb(0 0 0 / 1.0);
891        --color-shadow-rgb: 0 0 0;
892        --color-primary-button-text: rgb(255 255 255 / 1.0);
893        --color-primary-button-background: rgb(0 0 0 / 1.0);
894        --color-primary-button-border: rgb(0 0 0 / 1.0);
895        --color-primary-button-hover-text: rgb(255 255 255 / 1.0);
896        --color-primary-button-hover-background: rgb(51 51 51 / 1.0);
897        --color-primary-button-hover-border: rgb(51 51 51 / 1.0);
898        --color-secondary-button-text: rgb(0 0 0 / 1.0);
899        --color-secondary-button-background: rgb(0 0 0 / 0.0);
900        --color-secondary-button-border: rgb(0 0 0 / 1.0);
901        --color-secondary-button-hover-text: rgb(0 0 0 / 0.81);
902        --color-secondary-button-hover-background: rgb(255 255 255 / 0.36);
903        --color-secondary-button-hover-border: rgb(0 0 0 / 0.81);
904        --color-input-background: rgb(0 0 0 / 0.0);
905        --color-input-text: rgb(0 0 0 / 0.81);
906        --color-input-text-rgb: 0 0 0;
907        --color-input-border: rgb(0 0 0 / 0.81);
908        --color-input-hover-background: rgb(255 255 255 / 0.36);
909        --color-variant-background: rgb(255 255 255 / 1.0);
910        --color-variant-border: rgb(230 230 230 / 1.0);
911        --color-variant-text: rgb(0 0 0 / 1.0);
912        --color-variant-text-rgb: 0 0 0;
913        --color-variant-hover-background: rgb(245 245 245 / 1.0);
914        --color-variant-hover-text: rgb(0 0 0 / 1.0);
915        --color-variant-hover-border: rgb(230 230 230 / 1.0);
916        --color-selected-variant-background: rgb(0 0 0 / 1.0);
917        --color-selected-variant-border: rgb(0 0 0 / 1.0);
918        --color-selected-variant-text: rgb(255 255 255 / 1.0);
919        --color-selected-variant-hover-background: rgb(26 26 26 / 1.0);
920        --color-selected-variant-hover-text: rgb(255 255 255 / 1.0);
921        --color-selected-variant-hover-border: rgb(26 26 26 / 1.0);
922
923        --input-disabled-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10));
924        --input-disabled-border-color: rgb(var(--color-foreground-rgb) / var(--opacity-5-15));
925        --input-disabled-text-color: rgb(var(--color-foreground-rgb) / var(--opacity-50));
926        --color-foreground-muted: rgb(var(--color-foreground-rgb) / var(--opacity-60));
927        --font-h1--color: var(--color-foreground-heading);
928        --font-h2--color: var(--color-foreground-heading);
929        --font-h3--color: var(--color-foreground-heading);
930        --font-h4--color: var(--color-foreground-heading);
931        --font-h5--color: var(--color-foreground-heading);
932        --font-h6--color: var(--color-foreground-heading);
933
934        /* Shadows */
935        
936          --shadow-drawer: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
937        
938        
939          --shadow-blur: 20px;
940          --shadow-popover: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
941        
942      }
943  
944    
945    
946    
947    .color-scheme-4 {
948        --color-background: rgb(225 237 245 / 1.0);
949        /* RGB values only to apply different opacities - Relative color values are not supported in iOS < 16.4 */
950        --color-background-rgb: 225 237 245;
951        --opacity-5-15: 0.05;
952        --opacity-10-25: 0.1;
953        --opacity-35-55: 0.35;
954        --opacity-40-60: 0.4;
955        --opacity-30-60: 0.3;
956        --color-foreground: rgb(0 0 0 / 0.81);
957        --color-foreground-rgb: 0 0 0;
958        --color-foreground-heading: rgb(0 0 0 / 1.0);
959        --color-foreground-heading-rgb: 0 0 0;
960        --color-primary: rgb(0 0 0 / 0.81);
961        --color-primary-rgb: 0 0 0;
962        --color-primary-hover: rgb(0 0 0 / 1.0);
963        --color-primary-hover-rgb: 0 0 0;
964        --color-border: rgb(29 54 134 / 0.5);
965        --color-border-rgb: 29 54 134;
966        --color-shadow: rgb(0 0 0 / 1.0);
967        --color-shadow-rgb: 0 0 0;
968        --color-primary-button-text: rgb(255 255 255 / 1.0);
969        --color-primary-button-background: rgb(0 0 0 / 1.0);
970        --color-primary-button-border: rgb(29 54 134 / 1.0);
971        --color-primary-button-hover-text: rgb(255 255 255 / 1.0);
972        --color-primary-button-hover-background: rgb(51 51 51 / 1.0);
973        --color-primary-button-hover-border: rgb(0 0 0 / 1.0);
974        --color-secondary-button-text: rgb(0 0 0 / 1.0);
975        --color-secondary-button-background: rgb(0 0 0 / 0.0);
976        --color-secondary-button-border: rgb(0 0 0 / 1.0);
977        --color-secondary-button-hover-text: rgb(0 0 0 / 0.81);
978        --color-secondary-button-hover-background: rgb(255 255 255 / 0.36);
979        --color-secondary-button-hover-border: rgb(0 0 0 / 0.81);
980        --color-input-background: rgb(0 0 0 / 0.0);
981        --color-input-text: rgb(0 0 0 / 0.81);
982        --color-input-text-rgb: 0 0 0;
983        --color-input-border: rgb(0 0 0 / 0.81);
984        --color-input-hover-background: rgb(255 255 255 / 0.36);
985        --color-variant-background: rgb(255 255 255 / 1.0);
986        --color-variant-border: rgb(230 230 230 / 1.0);
987        --color-variant-text: rgb(0 0 0 / 1.0);
988        --color-variant-text-rgb: 0 0 0;
989        --color-variant-hover-background: rgb(245 245 245 / 1.0);
990        --color-variant-hover-text: rgb(0 0 0 / 1.0);
991        --color-variant-hover-border: rgb(230 230 230 / 1.0);
992        --color-selected-variant-background: rgb(0 0 0 / 1.0);
993        --color-selected-variant-border: rgb(0 0 0 / 1.0);
994        --color-selected-variant-text: rgb(255 255 255 / 1.0);
995        --color-selected-variant-hover-background: rgb(26 26 26 / 1.0);
996        --color-selected-variant-hover-text: rgb(255 255 255 / 1.0);
997        --color-selected-variant-hover-border: rgb(26 26 26 / 1.0);
998
999        --input-disabled-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10));
1000        --input-disabled-border-color: rgb(var(--color-foreground-rgb) / var(--opacity-5-15));
1001        --input-disabled-text-color: rgb(var(--color-foreground-rgb) / var(--opacity-50));
1002        --color-foreground-muted: rgb(var(--color-foreground-rgb) / var(--opacity-60));
1003        --font-h1--color: var(--col
1003or-foreground-heading);
1004        --font-h2--color: var(--color-foreground-heading);
1005        --font-h3--color: var(--color-foreground-heading);
1006        --font-h4--color: var(--color-foreground-heading);
1007        --font-h5--color: var(--color-foreground-heading);
1008        --font-h6--color: var(--color-foreground-heading);
1009
1010        /* Shadows */
1011        
1012          --shadow-drawer: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
1013        
1014        
1015          --shadow-blur: 20px;
1016          --shadow-popover: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
1017        
1018      }
1019  
1020    
1021    
1022    
1023    .color-scheme-5 {
1024        --color-background: rgb(51 51 51 / 1.0);
1025        /* RGB values only to apply different opacities - Relative color values are not supported in iOS < 16.4 */
1026        --color-background-rgb: 51 51 51;
1027        --opacity-5-15: 0.15;
1028        --opacity-10-25: 0.25;
1029        --opacity-35-55: 0.55;
1030        --opacity-40-60: 0.6;
1031        --opacity-30-60: 0.6;
1032        --color-foreground: rgb(255 255 255 / 1.0);
1033        --color-foreground-rgb: 255 255 255;
1034        --color-foreground-heading: rgb(255 255 255 / 1.0);
1035        --color-foreground-heading-rgb: 255 255 255;
1036        --color-primary: rgb(255 255 255 / 1.0);
1037        --color-primary-rgb: 255 255 255;
1038        --color-primary-hover: rgb(255 255 255 / 0.69);
1039        --color-primary-hover-rgb: 255 255 255;
1040        --color-border: rgb(255 255 255 / 0.69);
1041        --color-border-rgb: 255 255 255;
1042        --color-shadow: rgb(0 0 0 / 1.0);
1043        --color-shadow-rgb: 0 0 0;
1044        --color-primary-button-text: rgb(0 0 0 / 1.0);
1045        --color-primary-button-background: rgb(255 255 255 / 1.0);
1046        --color-primary-button-border: rgb(255 255 255 / 1.0);
1047        --color-primary-button-hover-text: rgb(255 255 255 / 1.0);
1048        --color-primary-button-hover-background: rgb(0 0 0 / 1.0);
1049        --color-primary-button-hover-border: rgb(0 0 0 / 1.0);
1050        --color-secondary-button-text: rgb(255 255 255 / 1.0);
1051        --color-secondary-button-background: rgb(0 0 0 / 0.0);
1052        --color-secondary-button-border: rgb(255 255 255 / 0.69);
1053        --color-secondary-button-hover-text: rgb(255 255 255 / 0.93);
1054        --color-secondary-button-hover-background: rgb(255 255 255 / 0.04);
1055        --color-secondary-button-hover-border: rgb(255 255 255 / 0.69);
1056        --color-input-background: rgb(51 51 51 / 1.0);
1057        --color-input-text: rgb(255 255 255 / 0.93);
1058        --color-input-text-rgb: 255 255 255;
1059        --color-input-border: rgb(255 255 255 / 0.69);
1060        --color-input-hover-background: rgb(255 255 255 / 0.04);
1061        --color-variant-background: rgb(255 255 255 / 1.0);
1062        --color-variant-border: rgb(230 230 230 / 1.0);
1063        --color-variant-text: rgb(0 0 0 / 1.0);
1064        --color-variant-text-rgb: 0 0 0;
1065        --color-variant-hover-background: rgb(245 245 245 / 1.0);
1066        --color-variant-hover-text: rgb(0 0 0 / 1.0);
1067        --color-variant-hover-border: rgb(230 230 230 / 1.0);
1068        --color-selected-variant-background: rgb(0 0 0 / 1.0);
1069        --color-selected-variant-border: rgb(0 0 0 / 1.0);
1070        --color-selected-variant-text: rgb(255 255 255 / 1.0);
1071        --color-selected-variant-hover-background: rgb(26 26 26 / 1.0);
1072        --color-selected-variant-hover-text: rgb(255 255 255 / 1.0);
1073        --color-selected-variant-hover-border: rgb(26 26 26 / 1.0);
1074
1075        --input-disabled-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10));
1076        --input-disabled-border-color: rgb(var(--color-foreground-rgb) / var(--opacity-5-15));
1077        --input-disabled-text-color: rgb(var(--color-foreground-rgb) / var(--opacity-50));
1078        --color-foreground-muted: rgb(var(--color-foreground-rgb) / var(--opacity-60));
1079        --font-h1--color: var(--color-foreground-heading);
1080        --font-h2--color: var(--color-foreground-heading);
1081        --font-h3--color: var(--color-foreground-heading);
1082        --font-h4--color: var(--color-foreground-heading);
1083        --font-h5--color: var(--color-foreground-heading);
1084        --font-h6--color: var(--color-foreground-heading);
1085
1086        /* Shadows */
1087        
1088          --shadow-drawer: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
1089        
1090        
1091          --shadow-blur: 20px;
1092          --shadow-popover: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
1093        
1094      }
1095  
1096    
1097    
1098    
1099    .color-scheme-6 {
1100        --color-background: rgb(0 0 0 / 0.0);
1101        /* RGB values only to apply different opacities - Relative color values are not supported in iOS < 16.4 */
1102        --color-background-rgb: 0 0 0;
1103        --opacity-5-15: 0.15;
1104        --opacity-10-25: 0.25;
1105        --opacity-35-55: 0.55;
1106        --opacity-40-60: 0.6;
1107        --opacity-30-60: 0.6;
1108        --color-foreground: rgb(255 255 255 / 1.0);
1109        --color-foreground-rgb: 255 255 255;
1110        --color-foreground-heading: rgb(255 255 255 / 1.0);
1111        --color-foreground-heading-rgb: 255 255 255;
1112        --color-primary: rgb(255 255 255 / 1.0);
1113        --color-primary-rgb: 255 255 255;
1114        --color-primary-hover: rgb(255 255 255 / 0.69);
1115        --color-primary-hover-rgb: 255 255 255;
1116        --color-border: rgb(230 230 230 / 1.0);
1117        --color-border-rgb: 230 230 230;
1118        --color-shadow: rgb(0 0 0 / 1.0);
1119        --color-shadow-rgb: 0 0 0;
1120        --color-primary-button-text: rgb(0 0 0 / 1.0);
1121        --color-primary-button-background: rgb(255 255 255 / 1.0);
1122        --color-primary-button-border: rgb(255 255 255 / 1.0);
1123        --color-primary-button-hover-text: rgb(255 255 255 / 1.0);
1124        --color-primary-button-hover-background: rgb(0 0 0 / 1.0);
1125        --color-primary-button-hover-border: rgb(0 0 0 / 1.0);
1126        --color-secondary-button-text: rgb(255 255 255 / 1.0);
1127        --color-secondary-button-background: rgb(0 0 0 / 0.0);
1128        --color-secondary-button-border: rgb(255 255 255 / 1.0);
1129        --color-secondary-button-hover-text: rgb(255 255 255 / 1.0);
1130        --color-secondary-button-hover-background: rgb(255 255 255 / 0.08);
1131        --color-secondary-button-hover-border: rgb(255 255 255 / 1.0);
1132        --color-input-background: rgb(255 255 255 / 1.0);
1133        --color-input-text: rgb(0 0 0 / 0.53);
1134        --color-input-text-rgb: 0 0 0;
1135        --color-input-border: rgb(0 0 0 / 0.13);
1136        --color-input-hover-background: rgb(250 250 250 / 1.0);
1137        --color-variant-background: rgb(255 255 255 / 1.0);
1138        --color-variant-border: rgb(230 230 230 / 1.0);
1139        --color-variant-text: rgb(0 0 0 / 1.0);
1140        --color-variant-text-rgb: 0 0 0;
1141        --color-variant-hover-background: rgb(245 245 245 / 1.0);
1142        --color-variant-hover-text: rgb(0 0 0 / 1.0);
1143        --color-variant-hover-border: rgb(230 230 230 / 1.0);
1144        --color-selected-variant-background: rgb(0 0 0 / 1.0);
1145        --color-selected-variant-border: rgb(0 0 0 / 1.0);
1146        --color-selected-variant-text: rgb(255 255 255 / 1.0);
1147        --color-selected-variant-hover-background: rgb(26 26 26 / 1.0);
1148        --color-selected-variant-hover-text: rgb(255 255 255 / 1.0);
1149        --color-selected-variant-hover-border: rgb(26 26 26 / 1.0);
1150
1151        --input-disabled-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10));
1152        --input-disabled-border-color: rgb(var(--color-foreground-rgb) / var(--opacity-5-15));
1153        --input-disabled-text-color: rgb(var(--color-foreground-rgb) / var(--opacity-50));
1154        --color-foreground-muted: rgb(var(--color-foreground-rgb) / var(--opacity-60));
1155        --font-h1--color: var(--color-foreground-heading);
1156        --font-h2--color: var(--color-foreground-heading);
1157        --font-h3--color: var(--color-foreground-heading);
1158        --font-h4--color: var(--color-foreground-heading);
1159        --font-h5--color: var(--color-foreground-heading);
1160        --font-h6--color: var(--color-foreground-heading);
1161
1162        /* Shadows */
1163        
1164          --shadow-drawer: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
1165        
1166        
1167          --shadow-blur: 20px;
1168          --shadow-popover: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
1169        
1170      }
1171  
1172    
1173    
1174    
1175    .color-scheme-58084d4c-a86e-4d0a-855e-a0966e5043f7 {
1176        --color-background: rgb(0 0 0 / 0.0);
1177        /* RGB values only to apply different opacities - Relative color values are not supported in iOS < 16.4 */
1178        --color-background-rgb: 0 0 0;
1179        --opacity-5-15: 0.15;
1180        --opacity-10-25: 0.25;
1181        --opacity-35-55: 0.55;
1182        --opacity-40-60: 0.6;
1183        --opacity-30-60: 0.6;
1184        --color-foreground: rgb(0 0 0 / 1.0);
1185        --color-foreground-rgb: 0 0 0;
1186        --color-foreground-heading: rgb(0 0 0 / 1.0);
1187        --color-foreground-heading-rgb: 0 0 0;
1188        --color-primary: rgb(0 0 0 / 1.0);
1189        --color-primary-rgb: 0 0 0;
1190        --color-primary-hover: rgb(0 0 0 / 0.53);
1191        --color-primary-hover-rgb: 0 0 0;
1192        --color-border: rgb(230 230 230 / 1.0);
1193        --color-border-rgb: 230 230 230;
1194        --color-shadow: rgb(0 0 0 / 1.0);
1195        --color-shadow-rgb: 0 0 0;
1196        --color-primary-button-text: rgb(255 255 255 / 1.0);
1197        --color-primary-button-background: rgb(0 0 0 / 1.0);
1198        --color-primary-button-border: rgb(0 0 0 / 1.0);
1199        --color-primary-button-hover-text: rgb(255 255 255 / 1.0);
1200        --color-primary-button-hover-background: rgb(51 51 51 / 1.0);
1201        --color-primary-button-hover-border: rgb(51 51 51 / 1.0);
1202        --color-secondary-button-text: rgb(0 0 0 / 1.0);
1203        --color-secondary-button-background: rgb(0 0 0 / 0.0);
1204        --color-secondary-button-border: rgb(0 0 0 / 1.0);
1205        --color-secondary-button-hover-text: rgb(51 51 51 / 1.0);
1206        --color-secondary-button-hover-background: rgb(250 250 250 / 1.0);
1207        --color-secondary-button-hover-border: rgb(51 51 51 / 1.0);
1208        --color-input-background: rgb(255 255 255 / 1.0);
1209        --color-input-text: rgb(0 0 0 / 0.53);
1210        --color-input-text-rgb: 0 0 0;
1211        --color-input-border: rgb(0 0 0 / 0.13);
1212        --color-input-hover-background: rgb(250 250 250 / 1.0);
1213        --color-variant-background: rgb(255 255 255 / 1.0);
1214        --color-variant-border: rgb(230 230 230 / 1.0);
1215        --color-variant-text: rgb(0 0 0 / 1.0);
1216        --color-variant-text-rgb: 0 0 0;
1217        --color-variant-hover-background: rgb(245 245 245 / 1.0);
1218        --color-variant-hover-text: rgb(0 0 0 / 1.0);
1219        --color-variant-hover-border: rgb(230 230 230 / 1.0);
1220        --color-selected-variant-background: rgb(0 0 0 / 1.0);
1221        --color-selected-variant-border: rgb(0 0 0 / 1.0);
1222        --color-selected-variant-text: rgb(255 255 255 / 1.0);
1223        --color-selected-variant-hover-background: rgb(26 26 26 / 1.0);
1224        --color-selected-variant-hover-text: rgb(255 255 255 / 1.0);
1225        --color-selected-variant-hover-border: rgb(26 26 26 / 1.0);
1226
1227        --input-disabled-background-color: rgb(var(--color-foreground-rgb) / var(--opacity-10));
1228        --input-disabled-border-color: rgb(var(--color-foreground-rgb) / var(--opacity-5-15));
1229        --input-disabled-text-color: rgb(var(--color-foreground-rgb) / var(--opacity-50));
1230        --color-foreground-muted: rgb(var(--color-foreground-rgb) / var(--opacity-60));
1231        --font-h1--color: var(--color-foreground-heading);
1232        --font-h2--color: var(--color-foreground-heading);
1233        --font-h3--color: var(--color-foreground-heading);
1234        --font-h4--color: var(--color-foreground-heading);
1235        --font-h5--color: var(--color-foreground-heading);
1236        --font-h6--color: var(--color-foreground-heading);
1237
1238        /* Shadows */
1239        
1240          --shadow-drawer: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
1241        
1242        
1243          --shadow-blur: 20px;
1244          --shadow-popover: 0px 4px 20px rgb(var(--color-shadow-rgb) / var(--opacity-15));
1245        
1246      }
1247  
1248
1249  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 {
1250    color: var(--color-foreground);
1251    background-color: var(--color-background);
1252  }
1253</style>
1254<script async crossorigin fetchpriority="high" src="/cdn/shopifycloud/importmap-polyfill/es-modules-shim.2.4.0.js"></script>
vendor: 1 bytes, line 1254
1254
1255<script type="importmap">
1256  {
1257    "imports": {
1258      "@theme/overflow-list": "//www.bushnellgolf.com/cdn/shop/t/127/assets/overflow-list.js?v=103972619002749600251790092426",
1259      "@theme/product-title": "//www.bushnellgolf.com/cdn/shop/t/127/assets/product-title-truncation.js?v=171142440647363214041790092426",
1260      "@theme/component": "//www.bushnellgolf.com/cdn/shop/t/127/assets/component.js?v=2871837290084333401790092425",
1261      "@theme/dialog": "//www.bushnellgolf.com/cdn/shop/t/127/assets/dialog.js?v=98420710104516085021790092425",
1262      "@theme/events": "//www.bushnellgolf.com/cdn/shop/t/127/assets/events.js?v=81602296892335704251790092426",
1263      "@theme/focus": "//www.bushnellgolf.com/cdn/shop/t/127/assets/focus.js?v=78592351534870363931790092425",
1264      "@theme/morph": "//www.bushnellgolf.com/cdn/shop/t/127/assets/morph.js?v=28947075772200326741790092426",
1265      "@theme/paginated-list": "//www.bushnellgolf.com/cdn/shop/t/127/assets/paginated-list.js?v=128606916275786253511790092426",
1266      "@theme/performance": "//www.bushnellgolf.com/cdn/shop/t/127/assets/performance.js?v=76000260998028458051790092426",
1267      "@theme/product-form": "//www.bushnellgolf.com/cdn/shop/t/127/assets/product-form.js?v=65688817668972432781790092426",
1268      "@theme/recently-viewed-products": "//www.bushnellgolf.com/cdn/shop/t/127/assets/recently-viewed-products.js?v=39343464552543927101790092426",
1269      "@theme/scrolling": "//www.bushnellgolf.com/cdn/shop/t/127/assets/scrolling.js?v=56944800252707256061790092426",
1270      "@theme/section-renderer": "//www.bushnellgolf.com/cdn/shop/t/127/assets/section-renderer.js?v=157579674837333786411790092426",
1271      "@theme/section-hydration": "//www.bushnellgolf.com/cdn/shop/t/127/assets/section-hydration.js?v=725126219061066681790092426",
1272      "@theme/money-formatting": "//www.bushnellgolf.com/cdn/shop/t/127/assets/money-formatting.js?v=27089427827183356751790092426",
1273      "@theme/utilities": "//www.bushnellgolf.com/cdn/shop/t/127/assets/utilities.js?v=1621211302821184481790092426",
1274      "@theme/variant-picker": "//www.bushnellgolf.com/cdn/shop/t/127/assets/variant-picker.js?v=6469487693213381221790092426",
1275      "@theme/media-gallery": "//www.bushnellgolf.com/cdn/shop/t/127/assets/media-gallery.js?v=88799770645515588651790092426",
1276      "@theme/quick-add": "//www.bushnellgolf.com/cdn/shop/t/127/assets/quick-add.js?v=139210347678326180991790092426",
1277      "@theme/paginated-list-aspect-ratio": "//www.bushnellgolf.com/cdn/shop/t/127/assets/paginated-list-aspect-ratio.js?v=105612802989813080971790092426",
1278      "@theme/popover-polyfill": "//www.bushnellgolf.com/cdn/shop/t/127/assets/popover-polyfill.js?v=87956549048087295091790092426",
1279      "@theme/component-quantity-selector": "//www.bushnellgolf.com/cdn/shop/t/127/assets/component-quantity-selector.js?v=9159700773030885271790092425",
1280      "@theme/comparison-slider": "//www.bushnellgolf.com/cdn/shop/t/127/assets/comparison-slider.js?v=54290423415165392741790092425",
1281      "@theme/sticky-add-to-cart": "//www.bushnellgolf.com/cdn/shop/t/127/assets/sticky-add-to-cart.js?v=178695681353592012341790092426",
1282      "@theme/fly-to-cart": "//www.bushnellgolf.com/cdn/shop/t/127/assets/fly-to-cart.js?v=65654735866222019691790092425"
1283    }
1284  }
1285</script>
1285
1286
1287<script
1288  src="//www.bushnellgolf.com/cdn/shop/t/127/assets/view-transitions.js?v=29934355952596568961790092426"
1289  async
1290  
1291></script>
1291
1292
1293<link
1294  rel="modulepreload"
1295  href="//www.bushnellgolf.com/cdn/shop/t/127/assets/utilities.js?v=1621211302821184481790092426"
1296  fetchpriority="low"
1297>
1298<link
1299  rel="modulepreload"
1300  href="//www.bushnellgolf.com/cdn/shop/t/127/assets/component.js?v=2871837290084333401790092425"
1301  fetchpriority="low"
1302>
1303<link
1304  rel="modulepreload"
1305  href="//www.bushnellgolf.com/cdn/shop/t/127/assets/section-renderer.js?v=157579674837333786411790092426"
1306  fetchpriority="low"
1307>
1308<link
1309  rel="modulepreload"
1310  href="//www.bushnellgolf.com/cdn/shop/t/127/assets/section-hydration.js?v=725126219061066681790092426"
1311  fetchpriority="low"
1312>
1313<link
1314  rel="modulepreload"
1315  href="//www.bushnellgolf.com/cdn/shop/t/127/assets/morph.js?v=28947075772200326741790092426"
1316  fetchpriority="low"
1317>
1318
1319
1320
1321<link
1322  rel="modulepreload"
1323  href="//www.bushnellgolf.com/cdn/shop/t/127/assets/focus.js?v=78592351534870363931790092425"
1324  fetchpriority="low"
1325>
1326<link
1327  rel="modulepreload"
1328  href="//www.bushnellgolf.com/cdn/shop/t/127/assets/recently-viewed-products.js?v=39343464552543927101790092426"
1329  fetchpriority="low"
1330>
1331<link
1332  rel="modulepreload"
1333  href="//www.bushnellgolf.com/cdn/shop/t/127/assets/scrolling.js?v=56944800252707256061790092426"
1334  fetchpriority="low"
1335>
1336<link
1337  rel="modulepreload"
1338  href="//www.bushnellgolf.com/cdn/shop/t/127/assets/events.js?v=81602296892335704251790092426"
1339  fetchpriority="low"
1340>
1341<script
1342  src="//www.bushnellgolf.com/cdn/shop/t/127/assets/popover-polyfill.js?v=87956549048087295091790092426"
1343  type="module"
1344  fetchpriority="low"
1345></script>
1345
1346<script
1347  src="//www.bushnellgolf.com/cdn/shop/t/127/assets/overflow-list.js?v=103972619002749600251790092426"
1348  type="module"
1349  fetchpriority="low"
1350></script>
1350
1351<script
1352  src="//www.bushnellgolf.com/cdn/shop/t/127/assets/quick-add.js?v=139210347678326180991790092426"
1353  type="module"
1354  fetchpriority="low"
1355></script>
1355
1356
1357  
1357<script
1358    src="//www.bushnellgolf.com/cdn/shop/t/127/assets/cart-discount.js?v=138861295263764935711790092425"
1359    type="module"
1360    fetchpriority="low"
1361  ></script>
1361
1362
1363
1364<script
1365  src="//www.bushnellgolf.com/cdn/shop/t/127/assets/dialog.js?v=98420710104516085021790092425"
1366  type="module"
1367  fetchpriority="low"
1368></script>
1368
1369<script
1370  src="//www.bushnellgolf.com/cdn/shop/t/127/assets/variant-picker.js?v=6469487693213381221790092426"
1371  type="module"
1372  fetchpriority="low"
1373></script>
1373
1374<script
1375  src="//www.bushnellgolf.com/cdn/shop/t/127/assets/product-card.js?v=177636412167985402681790092426"
1376  type="module"
1377  fetchpriority="low"
1378></script>
1378
1379<script
1380  src="//www.bushnellgolf.com/cdn/shop/t/127/assets/product-form.js?v=65688817668972432781790092426"
1381  type="module"
1382  fetchpriority="low"
1383></script>
1383
1384<script
1385  src="//www.bushnellgolf.com/cdn/shop/t/127/assets/fly-to-cart.js?v=65654735866222019691790092425"
1386  type="module"
1387  fetchpriority="low"
1388></script>
1388
1389<script
1390  src="//www.bushnellgolf.com/cdn/shop/t/127/assets/accordion-custom.js?v=109161695428116401221790092426"
1391  type="module"
1392  fetchpriority="low"
1393></script>
1393
1394<script
1395  src="//www.bushnellgolf.com/cdn/shop/t/127/assets/media.js?v=125180963674196456411790092426"
1396  type="module"
1397  fetchpriority="low"
1398></script>
1398
1399<script
1400  src="//www.bushnellgolf.com/cdn/shop/t/127/assets/product-price.js?v=56949708730051287511790092426"
1401  type="module"
1402  fetchpriority="low"
1403></script>
1403
1404<script
1405  src="//www.bushnellgolf.com/cdn/shop/t/127/assets/product-sku.js?v=12707995544342967231790092426"
1406  type="module"
1407  fetchpriority="low"
1408></script>
1408
1409<script
1410  src="//www.bushnellgolf.com/cdn/shop/t/127/assets/product-title-truncation.js?v=171142440647363214041790092426"
1411  type="module"
1412  fetchpriority="low"
1413></script>
1413
1414<script
1415  src="//www.bushnellgolf.com/cdn/shop/t/127/assets/product-inventory.js?v=97482887429145606201790092426"
1416  type="module"
1417  fetchpriority="low"
1418></script>
1418
1419<script
1420  src="//www.bushnellgolf.com/cdn/shop/t/127/assets/show-more.js?v=70689597587884376891790092426"
1421  type="module"
1422  fetchpriority="low"
1423></script>
1423
1424<script
1425  src="//www.bushnellgolf.com/cdn/shop/t/127/assets/slideshow.js?v=135511145289867776151790092426"
1426  type="module"
1427  fetchpriority="low"
1428></script>
1428
1429<script
1430  src="//www.bushnellgolf.com/cdn/shop/t/127/assets/layered-slideshow.js?v=150049425201492448951790092426"
1431  type="module"
1432  fetchpriority="low"
1433></script>
1433
1434<script
1435  src="//www.bushnellgolf.com/cdn/shop/t/127/assets/anchored-popover.js?v=168929214168724352541790092426"
1436  type="module"
1437  fetchpriority="low"
1438></script>
1438
1439<script
1440  src="//www.bushnellgolf.com/cdn/shop/t/127/assets/floating-panel.js?v=134624273071112507821790092426"
1441  type="module"
1442  fetchpriority="low"
1443></script>
1443
1444<script
1445  src="//www.bushnellgolf.com/cdn/shop/t/127/assets/video-background.js?v=125155869468546408071790092426"
1446  type="module"
1447  fetchpriority="low"
1448></script>
1448
1449<script
1450  src="//www.bushnellgolf.com/cdn/shop/t/127/assets/component-quantity-selector.js?v=9159700773030885271790092425"
1451  type="module"
1452  fetchpriority="low"
1453></script>
1453
1454<script
1455  src="//www.bushnellgolf.com/cdn/shop/t/127/assets/media-gallery.js?v=88799770645515588651790092426"
1456  type="module"
1457  fetchpriority="low"
1458></script>
1458
1459<script
1460  src="//www.bushnellgolf.com/cdn/shop/t/127/assets/rte-formatter.js?v=50196128441411127351790092426"
1461  type="module"
1462  fetchpriority="low"
1463></script>
1463
1464<script
1465  src="//www.bushnellgolf.com/cdn/shop/t/127/assets/volume-pricing.js?v=130575904330974358741790092426"
1466  type="module"
1467  fetchpriority="low"
1468></script>
1468
1469<script
1470  src="//www.bushnellgolf.com/cdn/shop/t/127/assets/price-per-item.js?v=40571194438189935441790092426"
1471  type="module"
1472  fetchpriority="low"
1473></script>
1473
1474<script
1475  src="//www.bushnellgolf.com/cdn/shop/t/127/assets/volume-pricing-info.js?v=16866589937000989531790092426"
1476  type="module"
1477  fetchpriority="low"
1478></script>
1478
1479
1480
1481
1482
1483
1484<script
1485  src="//www.bushnellgolf.com/cdn/shop/t/127/assets/auto-close-details.js?v=46360069785536700841790092426"
1486  defer="defer"
1487></script>
1487
1488
1489<script>
1490  const Theme = {
1491    translations: {
1492      placeholder_image: `Placeholder image`,
1493      added: `Added`,
1494      recipient_form_fields_visible: `Recipient form fields are now visible`,
1495      recipient_form_fields_hidden: `Recipient form fields are now hidden`,
1496      recipient_form_error: `There was an error with the form submission`,
1497      items_added_to_cart_one: `1 item added to cart`,
1498      items_added_to_cart_other: `{{ count }} items added to cart`,
1499    },
1500    routes: {
1501      cart_add_url: '/cart/add.js',
1502      cart_change_url: '/cart/change',
1503      cart_update_url: '/cart/update',
1504      cart_url: '/cart',
1505      predictive_search_url: '/search/suggest',
1506      search_url: '/search',
1507    },
1508    template: {
1509      name: 'page.about',
1510    },
1511  };
1512</script>
1512
1513<link rel="preload" as="font" href="//www.bushnellgolf.com/cdn/shop/t/127/assets/acumin-pro.woff2?v=102240913865752762161790092426" type="font/woff2" crossorigin><link href="//www.bushnellgolf.com/cdn/shop/t/127/assets/bushnell.css?v=28925328111356423891790092425" rel="stylesheet" type="text/css" media="all" />
1514  <link href="//www.bushnellgolf.com/cdn/shop/t/127/assets/bushnell-buy-now-patch.css?v=85352361508442732821790092425" rel="stylesheet" type="text/css" media="all" />
1515  <link href="//www.bushnellgolf.com/cdn/shop/t/127/assets/bushnell-cro-patch.css?v=162323756666457044951790092425" rel="stylesheet" type="text/css" media="all" />
1516  <link href="//www.bushnellgolf.com/cdn/shop/t/127/assets/bushnell-fitcheck.css?v=97541241949286130371790092425" rel="stylesheet" type="text/css" media="all" />�<link rel="preload" as="font" href="//www.bushnellgolf.com/cdn/shop/t/127/assets/industry-medium.woff2?v=132185208873765463631790092426"  type="font/woff2" crossorigin fetchpriority="low">
1517<link rel="preload" as="font" href="//www.bushnellgolf.com/cdn/shop/t/127/assets/industry-bold.woff2?v=110081505489078479111790092425" type="font/woff2" crossorigin>
1518
1519<style>
1520  @font-face {
1521    font-family: 'Acumin Pro';
1522    src: url('//www.bushnellgolf.com/cdn/shop/t/127/assets/acumin-pro.woff2?v=102240913865752762161790092426') format('woff2');
1523    font-weight: 400;
1524    font-style: normal;
1525    font-display: swap;
1526  }
1527
1528  @font-face {
1529    font-family: 'Acumin Pro Medium';
1530    src: url('//www.bushnellgolf.com/cdn/shop/t/127/assets/acumin-pro-medium.woff2?v=90873278444693665241790092426') format('woff2');
1531    font-weight: 500;
1532    font-style: normal;
1533    font-display: swap;
1534  }
1535
1536  @font-face {
1537    font-family: 'Acumin Pro Bold';
1538    src: url('//www.bushnellgolf.com/cdn/shop/t/127/assets/acumin-pro-bold.woff2?v=16147239003615737331790092425') format('woff2');
1539    font-weight: 700;
1540    font-style: normal;
1541    font-display: swap;
1542  }
1543
1544  @font-face {
1545    font-family: 'Industry Light';
1546    src: url('//www.bushnellgolf.com/cdn/shop/t/127/assets/industry-light.woff2?v=45057905669618413361790092426') format('woff2');
1547    font-weight: 300;
1548    font-style: normal;
1549    font-display: swap;
1550  }
1551   @font-face {
1552    font-family: 'Industry';
1553    src: url('//www.bushnellgolf.com/cdn/shop/t/127/assets/industry-medium.woff2?v=132185208873765463631790092426') format('woff2');
1554    font-weight: 500;
1555    font-style: normal;
1556    font-display: swap;
1557  }
1558  @font-face {
1559    font-family: 'Industry Medium';
1560    src: url('//www.bushnellgolf.com/cdn/shop/t/127/assets/industry-medium.woff2?v=132185208873765463631790092426') format('woff2');
1561    font-weight: 500;
1562    font-style: normal;
1563    font-display: swap;
1564  }
1565
1566  @font-face {
1567    font-family: 'Industry Bold';
1568    src: url('//www.bushnellgolf.com/cdn/shop/t/127/assets/industry-bold.woff2?v=110081505489078479111790092425') format('woff2');
1569    font-weight: 700;
1570    font-style: normal;
1571    font-display: swap;
1572  }
1573
1574  @font-face {
1575    font-family: 'Industry';
1576    src: url('//www.bushnellgolf.com/cdn/shop/t/127/assets/industry-medium.woff2?v=132185208873765463631790092426') format('woff2');
1577    font-weight: 500;
1578    font-style: normal;
1579    font-display: swap;
1580  }
1581
1582  
1583
1584  :root {
1585    /* ── Per-heading Shopify theme CSS variables ── */
1586    --font-h1--family: 'Industry Bold', sans-serif;
1587    --font-h2--family: 'Industry Bold', sans-serif;
1588    --font-h3--family: 'Industry Bold', sans-serif;
1589    --font-h4--family: 'Industry Medium', sans-serif;
1590    --font-h5--family: 'Industry Medium', sans-serif;
1591    --font-h6--family: 'Industry Medium', sans-serif;
1592
1593    /* ── General heading/body Shopify variables ── */
1594    --font-heading--family:    'Industry Bold', sans-serif;
1595    --font-subheading--family: 'Industry Bold', sans-serif;
1596    --font-body--family:       'Acumin Pro', sans-serif;
1597    --font-paragraph--family:  'Acumin Pro', sans-serif;
1598    --font-accent--family:     'Acumin Pro', sans-serif;
1599
1600    /* ── Bushnell UI kit variables (bushnell.css) ── */
1601    --font-display: 'Industry Bold', sans-serif;
1602    --font-ui:      'Industry Bold', sans-serif;
1603    --font-body:    'Acumin Pro', sans-serif;
1604  }
1605
1606  /* ── Direct element overrides for full coverage ── */
1607  h1 { font-family: 'Industry Bold', sans-serif; }
1608  h2 { font-family: 'Industry Bold', sans-serif; }
1609  h3 { font-family: 'Industry Bold', sans-serif; }
1610  h4 { font-family: 'Industry Medium', sans-serif; }
1611  h5 { font-family: 'Industry Medium', sans-serif; }
1612  h6 { font-family: 'Industry Medium', sans-serif; }
1613  body, p { font-family: 'Acumin Pro', sans-serif; }
1614</style>
1615
1616  
1616<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
1616<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/94598496440/digital_wallets/dialog">
1617<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">
1618<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=4716069048"></script>
1618
1619<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
1620<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 1620
1620
1621<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 1621
1621
1622<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 1622
1622
1623<script>var Shopify = Shopify || {};
1624Shopify.shop = "1zkvfh-xt.myshopify.com";
1625Shopify.locale = "en";
1626Shopify.currency = {"active":"USD","rate":"1.0"};
1627Shopify.country = "US";
1628Shopify.theme = {"name":"9-22-2026-sold-out-lpi-and-lpi-smb","id":191774392504,"schema_name":"Horizon","schema_version":"3.4.0","theme_store_id":null,"role":"main"};
1629Shopify.theme.handle = "null";
1630Shopify.theme.style = {"id":null,"handle":null};
1631Shopify.cdnHost = "www.bushnellgolf.com/cdn";
1632Shopify.routes = Shopify.routes || {};
1633Shopify.routes.root = "/";
1634Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js";
1635Shopify.SignInWithShop = Shopify.SignInWithShop || {};
1636Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {};
1637Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 1637
1637
1638<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 1638
1638
1639<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 1639
1639
1640<script>
1641  window.ShopifyPay = window.ShopifyPay || {};
1642  window.ShopifyPay.apiHost = "shop.app\/pay";
1643  window.ShopifyPay.redirectState = null;
1644</script>
vendor: 1 bytes, line 1644
1644
1645<script>
1646  window.Shopify = window.Shopify || {};
1647  window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {};
1648  window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 };
1649  window.Shopify.SignInWithShop.eligible = true;
1650</script>
vendor: 1 bytes, line 1650
1650
1651<script id="shop-js-analytics" type="application/json">{"pageType":"page"}</script>
vendor: 1 bytes, line 1651
1651
1652<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 1652
1652
1653<script type="module">
1654  await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js");
1655
1656  window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true});
1657
1658</script>
vendor: 1 bytes, line 1658
1658
1659<script>
1660  window.Shopify = window.Shopify || {};
1661  if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {};
1662  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"]};
1663</script>
vendor: 1 bytes, line 1663
1663
1664<script>(function() {
1665  var isLoaded = false;
1666  function asyncLoad() {
1667    if (isLoaded) return;
1668    isLoaded = true;
1669    var urls = ["https:\/\/na.shgcdn3.com\/pixel-collector.js?shop=1zkvfh-xt.myshopify.com","\/\/cdn.shopify.com\/proxy\/97cd65ac45fbe7fdf6a885e2ab658a9e3163e2b1e786e17a38330ef45486114f\/cdn-scripts.signifyd.com\/shopify\/script-tag.js?shop=1zkvfh-xt.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA"];
1670    for (var i = 0; i < urls.length; i++) {
1671      var s = document.createElement('script');
1672      s.type = 'text/javascript';
1673      s.async = true;
1674      s.src = urls[i];
1675      var x = document.getElementsByTagName('script')[0];
1676      x.parentNode.insertBefore(s, x);
1677    }
1678  };
1679  if(window.attachEvent) {
1680    window.attachEvent('onload', asyncLoad);
1681  } else {
1682    window.addEventListener('load', asyncLoad, false);
1683  }
1684})();</script>
vendor: 1 bytes, line 1684
1684
1685<script id="__st">var __st={"a":94598496440,"offset":-25200,"reqid":"afd644ad-ef44-42fd-b0c9-16f367671da7-1790241164","pageurl":"www.bushnellgolf.com\/pages\/about-bushnell-golf","s":"pages-165898748088","u":"fe92a2b267c4","p":"page","rtyp":"page","rid":165898748088};</script>
vendor: 1 bytes, line 1685
1685
1686<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 1686
1686
1687<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 1687
1687
1688<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 1688
1688
1689<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>
1689<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 1689
1689
1690<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 1690
1690
1691<script>
1692  window.Shopify = window.Shopify || {};
1693  window.Shopify.MCP = window.Shopify.MCP || {};
1694  window.Shopify.MCP.enabled = true;
1695  window.Shopify.MCP.shop = "1zkvfh-xt.myshopify.com";
1696  window.Shopify.MCP.mcpEndpoint = "https:\/\/www.bushnellgolf.com\/api\/mcp";
1697  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"]}}];
1698</script>
vendor: 1 bytes, line 1698
1698
1699<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=");})();
1700</script>
vendor: 1 bytes, line 1700
1700
1701<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)}};
1702</script>
vendor: 1 bytes, line 1702
1702
1703<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
1704  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);
1705</script>
vendor: 1 bytes, line 1705
1705
1706<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})}}));
1707</script>
1707
1708<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">
1709<style id="shopify-accelerated-checkout-cart">
1710        #shopify-buyer-consent {
1711  margin-top: 1em;
1712  display: inline-block;
1713  width: 100%;
1714}
1715
1716#shopify-buyer-consent.hidden {
1717  display: none;
1718}
1719
1720#shopify-subscription-policy-button {
1721  background: none;
1722  border: none;
1723  padding: 0;
1724  text-decoration: underline;
1725  font-size: inherit;
1726  cursor: pointer;
1727}
1728
1729#shopify-subscription-policy-button::before {
1730  box-shadow: none;
1731}
1732
1733      </style>
1734<link rel="stylesheet" media="screen" href="//www.bushnellgolf.com/cdn/shop/t/127/compiled_assets/styles.css?v=160800271737863426111790100414">
1735<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
1735
1736  
1737
1738
1739
1740
1741
1742  
1742<script type="text/javascript">
1743    
1744      window.__shgMoneyFormat = window.__shgMoneyFormat || {"USD":{"currency":"USD","currency_symbol":"$","currency_symbol_location":"left","decimal_places":2,"decimal_separator":".","thousands_separator":","}};
1745    
1746    window.__shgCurrentCurrencyCode = window.__shgCurrentCurrencyCode || {
1747      currency: "USD",
1748      currency_symbol: "$",
1749      decimal_separator: ".",
1750      thousands_separator: ",",
1751      decimal_places: 2,
1752      currency_symbol_location: "left"
1753    };
1754  </script>
1754
1755
1756
1757
1758
1759  
1760
1761<script type="text/javascript">
1762  
1763    window.SHG_CUSTOMER = null;
1764  
1765</script>
1765
1766
1767
1768
1769
1770
1771
1772
1773  <!-- Extend -- Load Extend SDK Configuration script -->
1774  <!-- Extend - Add necessary SDK script tags and configure the store -->
1775<script src='https://sdk.helloextend.com/extend-sdk-client/v1/extend-sdk-client.min.js' defer='defer'></script>
1775
1776<script src='https://sdk.helloextend.com/extend-sdk-client-shopify-addon/v1/extend-sdk-client-shopify-addon.min.js' defer='defer'></script>
1776
1777
1778<script>
1779    window.addEventListener('DOMContentLoaded', function () {
1780        // Set store ID
1781        const storeId = '1bb870ec-2d72-437e-94ce-7159cce5aeae';
1782        // Set environment (production, demo, or development)
1783        const env = 'production';
1784
1785        window.Extend.config({ storeId: storeId, environment: env });
1786
1787        // Only sets window variables if Extend and ExtendShopify is defined
1788        if (window.Extend && window.ExtendShopify) {
1789            // Contains window variables used in integration
1790            window.Extend.integration = {};
1791
1792            // Configurables - Start
1793            // Set currency required to display offers (USD or CAD)
1794            window.Extend.integration.currency = 'USD';
1795            // PDP Visible Offer
1796            window.Extend.integration.pdpOffer = true;
1797            // PDP Modal Offer
1798            window.Extend.integration.pdpModalOffer = false;
1799            // PDP Offer Properties
1800            window.Extend.integration.offerProperties = {};
1801            // Cart Offers
1802            window.Extend.integration.cartOffer = true;
1803            // Sidecart Offers
1804            window.Extend.integration.sidecartOffer = true;
1805            // Cart Balancing
1806            window.Extend.integration.cartBalancing = true;
1807            // Aftermarket Modal
1808            window.Extend.integration.aftermarketModal = true;
1809            // ATC Modal Offer
1810            window.Extend.integration.atcOffer = true;
1811            // Quickview visible offer
1812            window.Extend.integration.quickviewOffer = true;
1813            // Quickview modal offer
1814            window.Extend.integration.quickviewModalOffer = true;
1815			// Cart SP
1816			window.Extend.integration.cartSP = false;
1817            // Configurables - End
1818
1819            // Aftermarket Code
1820            if (Shopify && Shopify.currency && Shopify.currency.active === Extend.integration.currency && Extend.integration.aftermarketModal) {
1821                try {
1822                    // Get params from URL
1823                    const params = (new URL(document.location)).searchParams;
1824
1825                    // Check if leadToken or leadtoken is in the URL
1826                    let leadToken = params.get('leadToken')
1827                        ? params.get('leadToken')
1828                        : params.get('leadtoken');
1829
1830                    if (leadToken) {
1831                        Extend.aftermarketModal.open({
1832                            leadToken: leadToken,
1833                            onClose: function (plan, product, quantity) {
1834                                if (plan && product) {
1835                                    ExtendShopify.addPlanToCart({
1836                                        plan: plan,
1837                                        product: product,
1838                                        leadToken: leadToken,
1839                                        quantity: quantity || 1
1840                                    }, function () {
1841                                        location = '/cart'
1842                                    })
1843                                }
1844                            }
1845                        });
1846                    }
1847                } catch (error) {
1848                    console.error("EXTEND: " + error);
1849                }
1850            }
1851        }
1852    }, { once: true });
1853</script>
1853
1854
1855<!-- Optional -->
1856<!-- Extend - Render cart shipping protection -->
1857
1858<!-- Extend - Render checkout plus -->
1859
1860
1861<!-- Extend - Render product page -->
1862<script>
1863
1864    // Run scripts on DOMContentLoaded to avoid affecting site load time
1865    window.addEventListener('DOMContentLoaded', function () {
1866        // Checks if Extend lives in the window and the active currency is USD before showing Extend offers
1867        if (Extend && ExtendShopify && Shopify && Shopify.currency && Shopify.currency.active === Extend.integration.currency && meta.page.pageType == 'product') {
1868
1869            /************************/
1870            /* Initial Variables    */
1871            /************************/
1872            const productForm = document.querySelector('form[action="/cart/add"]'); // Change this to the product form element
1873            const addToCartButton = productForm.querySelector('.bpdp-atc-btn'); // Change this to the Add-To-Cart element
1874            const dispatchSideCart = true; // Set to true if a sidecart opens after adding to cart via pdp
1875            const productCategory = (meta && meta.product) ? meta.product.type : null; // Grabs product category from meta object, works on most themes
1876
1877            // Handles creating and prepending Extend offer div
1878            const extendOffer = document.createElement('div');
1879            if (!Extend.integration.pdpOffer) extendOffer.style.display = 'none';
1880            extendOffer.className = 'extend-offer';
1881            addToCartButton.before(extendOffer);
1882
1883            /************************/
1884            /* initProductOffer     */
1885            /************************/
1886            // Initializes product offers and handles ATC button functionality for the main PDP ATC
1887            async function initProductOffer() {
1888                try {
1889
1890                    // Fail safes
1891                    if (!productForm || !addToCartButton || !extendOffer) {
1892                        throw new Error("Exiting - missing productForm, addToCartButton, or extendOffer")
1893                    }
1894
1895                    // Disables ATC if product is Extend
1896                    if (meta && meta.product && meta.product.vendor === 'Extend') addToCartButton.disabled = true;
1897
1898                    // Grabs the variantId from the productForm and renders the initial offers for it
1899                    let variantId = productForm.id.value;
1900
1901                    // Grabs the product price from the metadata, works on most themes
1902                    let productPrice = (meta && meta.product && meta.product.variants) ? parseInt(meta.product.variants.filter(variant => variant.id.toString() === variantId.toString())[0].price) : null;
1903
1904                    // Saves the offer properties to an easily accessible window object that is initialized in the config
1905                    Extend.integration.offerProperties = {variant: variantId, category: productCategory, price: productPrice}
1906
1907                    // Fetches bundle components, empty array if non-bundle
1908                    const { components } = await ExtendShopify.getBundleComponents({ 
1909                        variantId: `gid://shopify/ProductVariant/${variantId}` 
1910                    }) || {};
1911
1912                    // Renders bundle offer or regular offer as needed
1913                    Extend.buttons.render(extendOffer, components?.length > 0
1914                        ? { referenceId: variantId, products: components }
1915                        : { referenceId: variantId, price: productPrice, category: productCategory }
1916                    );
1917                    
1918                    // Listens for changes to the productForm and sets the activeProduct for extend via variantID
1919                    productForm.addEventListener('change', async function () {
1920                        variantId = productForm.id.value;
1921                        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;
1922                        const { components } = await ExtendShopify.getBundleComponents({ 
1923                            variantId: `gid://shopify/ProductVariant/${variantId}` 
1924                        }) || {};
1925                        if (!variantId) return;
1926                        Extend.setActiveProduct(extendOffer, components?.length > 0
1927                            ? { referenceId: variantId, products: components }
1928                            : { referenceId: variantId, price: productPrice, category: productCategory }
1929                        );
1930                    });
1931
1932                    document.querySelector('button.header-actions__action').addEventListener('click', function () { 
1933                        console.log("Extend: click listener"); 
1934                        setTimeout(function () { window.dispatchEvent(new Event('resize')) }, 500)
1935                    })
1936
1937
1938                    // Immediate loading feedback on the ATC button (uses the PDP's own
1939                    // .bpdp-atc-btn.is-loading spinner styles) so there's instant feedback
1940                    // on click for BOTH flows: plan selected (Extend takes a moment to add
1941                    // the plan) and no plan (Extend opens its upsell popup).
1942                    function setAtcLoading(on) {
1943                        if (!addToCartButton) return;
1944                        if (on) {
1945                            try {
1946                                var c = getComputedStyle(addToCartButton).color;
1947                                if (!c || c === 'transparent' || c.indexOf('rgba(0, 0, 0, 0)') !== -1) c = '#1c1c1c';
1948                                addToCartButton.style.setProperty('--bpdp-spin', c);
1949                            } catch (e) {}
1950                            addToCartButton.classList.add('is-loading');
1951                        } else {
1952                            addToCartButton.classList.remove('is-loading');
1953                            addToCartButton.style.removeProperty('--bpdp-spin');
1954                        }
1955                    }
1956
1957                    // click simulation handling add to cart
1958                    function handleAddToCart(e) {
1959                        e.preventDefault();
1960                        e.stopImmediatePropagation();
1961
1962                        // Instant feedback for both flows.
1963                        setAtcLoading(true);
1964                        clearTimeout(window.__bnAtcLoaderT);
1965                        window.__bnAtcLoaderT = setTimeout(function () { setAtcLoading(false); }, 12000);
1966
1967                        const quantityEl = productForm.querySelector('[name="quantity"]');
1968                        const quantity = quantityEl && quantityEl.value ? quantityEl.value : 1;
1969
1970                        ExtendShopify.handleAddToCart(extendOffer, {
1971                            quantity: quantity,
1972                            modal: Extend.integration.pdpModalOffer,
1973                            done: function () {
1974                                // keep the loader on through the actual add-to-cart
1975                                setAtcLoading(true);
1976                                // remove default click listener
1977                                addToCartButton.removeEventListener('click', handleAddToCart, true);
1978                                // click atc button
1979                                addToCartButton.click();
1980                                // add default click listener back
1981                                addToCartButton.addEventListener('click', handleAddToCart, true);
1982                                // If variable set to true, dispatches Extend side cart integration to run after adding to cart via pdp
1983                                if (dispatchSideCart) window.setTimeout(function () { window.dispatchEvent(new Event('refreshAjaxSideCart')) }, 1000)
1984                            }
1985                        });
1986                    }
1987                    // run handleCaddtoCart when we click ATC, capturing event
1988                    addToCartButton.addEventListener('click', handleAddToCart, true);
1989
1990                    // The sticky bar's Add-to-Cart submits the form directly, so it bypasses
1991                    // the Extend flow (no protection popup). Route its click through the main
1992                    // ATC so Extend runs (popup / plan add) for the sticky button too.
1993                    const stickyAtc = document.querySelector('.bpdp-sticky__atc');
1994                    if (stickyAtc) {
1995                        stickyAtc.addEventListener('click', function (e) {
1996                            e.preventDefault();
1997                            e.stopImmediatePropagation();
1998                            // mirror the loading spinner on the sticky button for feedback
1999                            try { stickyAtc.style.setProperty('--bpdp-spin', getComputedStyle(stickyAtc).color); } catch (err) {}
2000                            stickyAtc.classList.add('is-loading');
2001                            clearTimeout(window.__bnStickyAtcT);
2002                            window.__bnStickyAtcT = setTimeout(function () { stickyAtc.classList.remove('is-loading'); }, 12000);
2003                            // trigger the main ATC's Extend handler (shows popup / adds plan)
2004                            addToCartButton.click();
2005                        }, true);
2006                        // clear the sticky spinner once the cart updates
2007                        document.addEventListener('cart:update', function () { stickyAtc.classList.remove('is-loading'); });
2008                    }
2009                } catch (error) {
2010                    console.error("EXTEND:", error)
2011                }
2012            }
2013            // Initial product offer render
2014            if (!Extend.buttons.instance(extendOffer)) {
2015                initProductOffer();
2016            }
2017        }
2018    }, { once: true });
2019</script>
2019
2020
2021<style>
2022    .extend-offer {
2023        margin: 0 !important;
2024    }
2025</style>
2026<!-- Extend - Render cart -->
2027<script>
2028
2029    // run scripts on DOMContentLoaded to avoid affecting site load time
2030    window.addEventListener('DOMContentLoaded', function () {
2031
2032        // Only run ajax integration if Extend and ExtendShopify is defined, and the currency is set to USD
2033        if (!Extend || !ExtendShopify || !Shopify || !Shopify.currency || Shopify.currency.active !== Extend.integration.currency) {
2034            return;
2035        }
2036
2037        // Checks url if page is main cart
2038        const isMainCart = location.pathname.includes('/cart');
2039
2040		if (!isMainCart && !window.Extend.integration.sidecartOffer) return;
2041 		
2042        // store value to know if script initialized already
2043        let init = false;
2044
2045        /*****************************************/
2046        /* Global Variables - THEME SPECIFIC     */
2047        /*****************************************/
2048        let cartRowItem, cartRowItemTitle, cartRowItemImage, cartRowItemQuantity, warrantyContainer, warrantyOriginalMeta, metadataContainer;
2049        if (isMainCart) {
2050            // Main cart variables
2051            cartRowItem = '.bgc-item-row'; // This is the container element for each item in the cart
2052            cartRowItemImage = '.bgc-item-img a'; // This is the product image or image anchor element
2053            cartRowItemTitle = '.bgc-item-name'; // This is the title anchor element for the product
2054            cartRowItemQuantity = '.bgc-qty span'; // This is the input element containing the product quantity
2055            warrantyOriginalMeta = '.bgc-item-variant'; // Each warranty metadata item we want to remove.
2056            warrantyContainer = '.bgc-item-name'; // This is the container where the offer will be appended
2057            metadataContainer = '.bgc-item-name'; // This is where warranty metadata will be appended (Product and Term)
2058        } else {
2059            // Side cart variables
2060            cartRowItem = '.cart-items__table-row--full-width-variants'; // This is the container element for each item in the cart
2061            cartRowItemImage = '.cart-items__media-container'; // This is the product image or image anchor element
2062            cartRowItemTitle = '.cart-items__title'; // This is the title anchor element for the product
2063            cartRowItemQuantity = 'input'; // This is the input element containing the product quantity
2064            warrantyOriginalMeta = '.cart-items__variants-wrapper'; // Each warranty metadata item we want to remove.
2065            warrantyContainer = '.cart-items__product-info'; // This is the container where the offer will be appended
2066            metadataContainer = '.cart-items__product-info'; // This is where warranty metadata will be appended (Product and Term)
2067        }
2068
2069        // Add quantity wrapper selector to disable use of quantity selector on Extend items, ignored if empty string
2070        const quantityWrapper = isMainCart ? '.bgc-qty' : '.quantity-selector';
2071
2072        const offerClass = !isMainCart ? 'extend-side-cart-offer' : 'extend-cart-offer'; // This is the class that will be assigned to each Extend offer
2073        const cartEvent = !isMainCart ? 'refreshAjaxSideCart' : 'refreshAjaxCart';
2074        const regEx = /\d+$/;
2075        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
2076
2077        // Fail safe for cart
2078        if (!localCart) {
2079            console.error("EXTEND: Exiting - localCart unavailable")
2080            return false;
2081        }
2082
2083        /**************************************/
2084        /* refreshCart - THEME SPECIFIC       */
2085        /**************************************/
2086        // Refresh the cart (hard refresh by default)
2087        async function refreshCart(cart) {
2088            if (isMainCart) {
2089                // Main cart specific refresh
2090                location.reload();
2091            } else {
2092                // Sidecart specific refresh
2093                const res = await fetch('/cart.js');
2094                localCart = await res.json();
2095
2096                const cartItemsEl = document.querySelector('cart-items-component[data-drawer]');
2097                if (!cartItemsEl) return;
2098                const sectionId = cartItemsEl.dataset.sectionId;
2099                const sectionsRes = await fetch(`${window.location.pathname}?sections=${sectionId}`);
2100                const sections = await sectionsRes.json();
2101                document.dispatchEvent(new CustomEvent('cart:update', {
2102                    bubbles: true,
2103                    detail: { data: { sections } }
2104                }));
2105                await new Promise(resolve => setTimeout(resolve, 300));
2106
2107                handleStyling();
2108                //location.reload();
2109            }
2110        }
2111
2112        /* Full-screen loader shown while a protection plan is being added to the cart. */
2113        function showExtendLoader() {
2114            if (document.getElementById('bn-extend-loader')) return;
2115            const o = document.createElement('div');
2116            o.id = 'bn-extend-loader';
2117            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);');
2118            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>';
2119            document.body.appendChild(o);
2120        }
2121        function hideExtendLoader() {
2122            const o = document.getElementById('bn-extend-loader');
2123            if (o) o.remove();
2124        }
2125        /* Reopen the cart drawer (used after a plan is added, since we close it when the modal opens). */
2126        function openCartDrawer() {
2127            const drawer = document.querySelector('cart-drawer-component');
2128            if (!drawer) return;
2129            try { if (typeof drawer.open === 'function') { drawer.open(); return; } } catch (e) {}
2130            const trigger = document.querySelector('[data-testid="cart-drawer-trigger"]') ||
2131                document.querySelector('.header-actions__cart-icon, a[href$="/cart"]');
2132            if (trigger) trigger.click();
2133        }
2134        /* Called from onAddToCart: show loader, then after the cart refreshes, reopen the drawer. */
2135        function afterPlanAdded() {
2136            Promise.resolve(refreshCart()).then(function () {
2137                hideExtendLoader();
2138                if (!isMainCart) setTimeout(openCartDrawer, 150);
2139            }).catch(function () { hideExtendLoader(); });
2140        }
2141
2142        function renderCartOffer(el, variantId, quantity, index) {
2143            // Grabs the product category and price from the current item metadata
2144             let productCategory = localCart.items[index].product_type;
2145             let productPrice = localCart.items[index].price;
2146
2147
2148            if (ExtendShopify.warrantyAlreadyInCart(parseInt(variantId), localCart.items) || ExtendShopify.warrantyAlreadyInCart(variantId.toString(), localCart.items)) {
2149                return;
2150            } else {
2151
2152                // Return if this is a cart snippet and cart offers are disabled
2153                if (isMainCart && !Extend.integration.cartOffer) return;
2154                // Return if this is a sidecart snippet and sidecart offers are disabled
2155                if (!isMainCart && !Extend.integration.sidecartOffer) return;
2156
2157                // Bundle logic
2158                
2159
2160                // Gather bundle components
2161                //const bundleComponents = await getBundleComponents(variantId)
2162                let isBundle = false;
2163                //if (bundleComponents && bundleComponents.components && bundleComponents.components.length > 0) isBundle = true;
2164                // Renders Extend offer
2165                if (!isBundle) {
2166                    // Render all other buttons
2167                    Extend.buttons.renderSimpleOffer(el, {
2168                        referenceId: variantId,
2169                        price: productPrice,
2170                        category: productCategory,
2171                        onAddToCart: function (options) {
2172                            if (!isMainCart) showExtendLoader();
2173                            ExtendShopify.addPlanToCart({
2174                                plan: options.plan,
2175                                product: options.product,
2176                                quantity: quantity
2177                            }, function (err) {
2178                                // An error occurred
2179                                if (err) {
2180                                    hideExtendLoader();
2181                                    throw new Error({ "Exiting - Error in onAddToCart": error });
2182                                } else {
2183                                    afterPlanAdded();
2184                                }
2185                            });
2186                        }
2187                    });
2188                } else {
2189                    // Render all button offer button
2190                    Extend.buttons.renderSimpleOffer(el, {
2191                        referenceId: variantId,
2192                        products: bundleComponents.components,
2193                        onAddToCart: function (options) {
2194                            if (!isMainCart) showExtendLoader();
2195                            ExtendShopify.addPlanToCart({
2196                                plan: options.plan,
2197                                product: options.product,
2198                                products: options.products,
2199                                quantity: quantity
2200                            }, function (err) {
2201                                // An error occurred
2202                                if (err) {
2203                                    hideExtendLoader();
2204                                    throw new Error({ "Exiting - Error in onAddToCart": error });
2205                                } else {
2206                                    afterPlanAdded();
2207                                }
2208                            });
2209                        }
2210                    });
2211                }
2212            }
2213        }
2214
2215        /***********************/
2216        /* createElement       */
2217        /***********************/
2218        // createElement(product) - Takes in the product element, and creates the Extend offer element + appends the offer
2219        function createElement(product, index) {
2220            // Grab URL from title anchor href
2221            let url = product.querySelector(cartRowItemTitle).href;
2222
2223            // Grabs variant ID from URL if available, otherwise from localCart
2224            let variantId = (url && url.match(regEx)) ? url.match(regEx)[0] : localCart.items[index].id;
2225
2226            // Select quantity value
2227            let quantityEl = product.querySelector(cartRowItemQuantity);
2228            let quantity = quantityEl ? parseInt(quantityEl.value ?? quantityEl.innerText) : 1;
2229
2230            if (!variantId || quantity.length > 0) {
2231                throw new Error("Exiting - Error with variantId {0} or quantity {1}", variantId, quantity);
2232            }
2233
2234            // Removes existing offer elements before creating new ones
2235            let extendOffer = product.querySelector('.' + offerClass);
2236            if (extendOffer) {
2237                if (extendOffer.dataset.extendVariant !== variantId || extendOffer.dataset.extendQuantity !== quantity) {
2238                    extendOffer.remove();
2239                } else {
2240                    return;
2241                }
2242            }
2243
2244            // Parent container to append ajax offer
2245            let container = product.querySelector(warrantyContainer);
2246
2247            // Fail safes
2248            if (!variantId || !quantity || !container) {
2249                throw new Error("Exiting - variant, quantity or container unavailable");
2250            }
2251
2252            // Create new element & set class, data-extend-variant, and data-extend-quantity attributes
2253            let newExtendOffer = document.createElement('div');
2254            newExtendOffer.className = offerClass;
2255            newExtendOffer.setAttribute('data-extend-variant', variantId);
2256            newExtendOffer.setAttribute('data-extend-quantity', quantity);
2257
2258            // Append the offer to the container element (THEME SPECIFIC)
2259            container.append(newExtendOffer);
2260
2261            renderCartOffer(newExtendOffer, variantId, quantity, index);
2262
2263            // The Extend widget renders asynchronously (after the drawer grid has already
2264            // laid out), so the item row can stay too short and clip the offer until the
2265            // user interacts. Watch the offer for its render/size change and nudge the row
2266            // to reflow + repaint so it shows correctly straight away.
2267            if ('ResizeObserver' in window) {
2268                let ro = new ResizeObserver(function () {
2269                    let row = newExtendOffer.closest(cartRowItem) || newExtendOffer.closest('.cart-items__table-row');
2270                    if (!row) return;
2271                    void row.offsetHeight;                  // force reflow (grow the grid row)
2272                    row.style.transform = 'translateZ(0)';  // force a repaint of the clipped row
2273                    requestAnimationFrame(function () { row.style.transform = ''; });
2274                });
2275                ro.observe(newExtendOffer);
2276                // Stop observing once the widget has settled to avoid ongoing overhead.
2277                setTimeout(function () { ro.disconnect(); }, 6000);
2278            }
2279        }
2280
2281        /************************/
2282        /* Handle Styling       */
2283        /************************/
2284        // Finds all cartRowItems and styles only Extend warranties
2285        function handleStyling() {
2286
2287            document.querySelectorAll(cartRowItem).forEach(function (el, index) {
2288                try {
2289                    // Grab the title of the current item
2290                    let title = el.querySelector(cartRowItemTitle);
2291
2292                    // Title fail safe
2293                    if (!title) {
2294                        throw new Error("Exiting - title unavailable");
2295                    }
2296
2297                    // If it's a warranty set isExtend to true and remove links
2298                    if (title.innerText.toLowerCase().indexOf('extend protection') > -1) { // Grab the image of the current item and fail safe
2299                        // Select and remove pointerEvents from warranty title
2300                        title.style.pointerEvents = 'none';
2301
2302                        let image = el.querySelector(cartRowItemImage);
2303
2304                        if (!image) {
2305                            throw new Error("Exiting - image unavailable");
2306                        }
2307
2308                        // Select and remove pointerEvents from warranty image
2309                        image.style.pointerEvents = 'none';
2310
2311                        /**************************************/
2312                        /* THEME SPECIFIC STYLING START       */
2313                        /**************************************/
2314                        // Removes old metadata
2315                        if (el.querySelector(warrantyOriginalMeta)) {
2316                            el.querySelectorAll(warrantyOriginalMeta).forEach(function (each) {
2317                                each.remove();
2318                            })
2319                        }
2320
2321                        if (quantityWrapper && quantityWrapper != '' && el.querySelector(quantityWrapper)) {
2322                            el.querySelectorAll(quantityWrapper).forEach((each) => {
2323                                each.style.opacity = '75%';
2324                                each.style.pointerEvents = 'none';
2325                            })
2326                        }
2327
2328                        // Selects where to append warranty metadata
2329                        let contentContainer = el.querySelector(metadataContainer)
2330                        let warrantyProductData;
2331                        let warrantyTermData;
2332
2333                        if (!localCart.items[index]) return;
2334
2335                        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
2336                            let regexReplace = localCart.items[index].options_with_values[0].value.match(/\-\d{5,}/g);
2337                            warrantyProductData = localCart.items[index].options_with_values[0].value.replace(regexReplace, '');
2338                            warrantyTermData = localCart.items[index].options_with_values[1].value;
2339                        } else {
2340                            warrantyProductData = localCart.items[index].properties.Product;
2341                            warrantyTermData = localCart.items[index].properties.Term;
2342                        }
2343
2344                        // For category offers, fetch title by filtering through cart for warranted product refId
2345                        if (warrantyProductData === "Covered Product") {
2346                            const coveredProdId = localCart.items[index].properties['_Extend.ProductId'];
2347                            const coveredProdTitle = localCart.items.filter((item) => item.id.toString() == coveredProdId)[0].title;
2348                            warrantyProductData = coveredProdTitle;
2349                        }
2350
2351                        // Appends Product and Term metadata
2352                        if (el.querySelector(metadataContainer)) {
2353                            let warrantyProductName = document.createElement('p');
2354                            warrantyProductName.className = 'extend-warranty-info extend-warranty-info-product';
2355                            warrantyProductName.innerHTML = '<b>Product: </b>' + warrantyProductData;
2356                            warrantyProductName.setAttribute('data-cy', 'warranty-description-product');
2357                            let warrantyProductTerm = document.createElement('p')
2358                            warrantyProductTerm.className = 'extend-warranty-info extend-warranty-info-term';
2359                            warrantyProductTerm.innerHTML = '<b>Term: </b>' + warrantyTermData;
2360                            warrantyProductTerm.setAttribute('data-cy', 'warranty-description-term');
2361
2362                            // Only append the metadata if it's not already there
2363                            if (!el.querySelector('.extend-warranty-info')) {
2364                                contentContainer.append(warrantyProductName, warrantyProductTerm)
2365                            }
2366                        }
2367
2368                        /**************************************/
2369                        /* THEME SPECIFIC STYLING END         */
2370                        /**************************************/
2371
2372                    } else { // Create an offer element for each product
2373                        createElement(el, index);
2374                    }
2375                } catch (error) {
2376                    console.error("EXTEND:", error);
2377                }
2378            });
2379        }
2380
2381        function initEventListeners() {
2382            if (init) return;
2383
2384            function refreshCartOffer() {
2385                fetch('/cart.js', {
2386                    credentials: 'same-origin',
2387                    method: 'GET',
2388                    headers: {
2389                        'Content-Type': 'application/json',
2390                        'X-Requested-With': 'XMLHttpRequest'
2391                    }
2392                })
2393                    .then((e) => e.json())
2394                    .then((e) => {
2395                        localCart = e;
2396                        initializeCartOffer();
2397                    })
2398                    .catch((error) => {
2399                        console.error("EXTEND:", error)
2400                    });
2401            }
2402
2403            // https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Multiple_identical_event_listeners
2404            window.addEventListener(cartEvent, refreshCartOffer);
2405
2406            // Listen for SP dispatching refresh
2407            window.addEventListener('refreshSP', refreshCart);
2408
2409        }
2410
2411        /************************/
2412        /* initializeCartOffer  */
2413        /************************/
2414        // Invokes handleStyling and finds all offers in the cart, handling both normalization and balancing
2415        function initializeCartOffer() {
2416
2417            // ** Checkout Plus Init - Uncomment if using Checkout Plus **
2418            // let cartSpLocation;
2419            // cartSpLocation = isMainCart ? 'main' : 'side';
2420            // window.Extend.integration.SPHelper.RenderOrUpdate(localCart, cartSpLocation);
2421            // window.Extend.integration.SPHelper.addOrUpdateCheckoutPlusOffer(localCart);
2422
2423            // Runs this normalization from extend-shipping.liquid if using cart SP
2424            if (Extend.integration.cartSP && Extend.integration.normalizeCartSP) {
2425                Extend.integration.normalizeCartSP()
2426            }
2427
2428            // Handles styling and creates offer elements
2429            handleStyling();
2430
2431            initEventListeners();
2432
2433            init = true;
2434
2435            // Use standard normalization if SP is not present in cart
2436            if (!window.Extend.integration.cartSP) {
2437                // Normalization ensures there is a 1:1 relationship between the product and the warranty
2438                ExtendShopify.normalizeCart({
2439                    cart: localCart,
2440                    balance: Extend.integration.cartBalancing
2441                }, function (err, data) {
2442                    try {
2443                        // An error occurred
2444                        if (err) {
2445                            throw new Error({ "Exiting - Error in normalizeCart": error });
2446                        } else if (data && data.updates) { // Calls refreshCart to update the cart for normalization
2447                            refreshCart();
2448                        }
2449                    } catch (error) {
2450                        console.error("EXTEND:", error)
2451                    }
2452                });
2453            }
2454        }
2455
2456        try {
2457            // initializeCartOffer when script is initially rendered
2458            initializeCartOffer();
2459
2460            // The side-cart offer is often rendered while the drawer is still hidden
2461            // (display:none / off-screen), so Extend measures it at ~0 height and it
2462            // stays collapsed until the user interacts. When the drawer opens, nudge the
2463            // widgets to recompute and, if any are still collapsed, re-render them while
2464            // the drawer is visible so they show at full height immediately.
2465            if (!isMainCart) {
2466                function fixCollapsedSideCartOffers() {
2467                    window.dispatchEvent(new Event('resize'));
2468                    setTimeout(function () {
2469                        let collapsed = false;
2470                        document.querySelectorAll('.' + offerClass).forEach(function (el) {
2471                            if (el.offsetHeight > 0 && el.offsetHeight < 30) collapsed = true;
2472                        });
2473                        if (collapsed) {
2474                            document.querySelectorAll('.' + offerClass).forEach(function (el) { el.remove(); });
2475                            handleStyling();
2476                        }
2477                    }, 150);
2478                }
2479
2480                const drawerEl = document.querySelector('cart-drawer-component');
2481                if (drawerEl) {
2482                    // Fires when the drawer <dialog> opens.
2483                    drawerEl.addEventListener('dialog:open', fixCollapsedSideCartOffers);
2484                    // Fallback: watch the dialog's `open` attribute directly.
2485                    const dlg = drawerEl.querySelector('dialog, .cart-drawer__dialog');
2486                    if (dlg && 'MutationObserver' in window) {
2487                        new MutationObserver(function () {
2488                            if (dlg.open || dlg.hasAttribute('open')) fixCollapsedSideCartOffers();
2489                        }).observe(dlg, { attributes: true, attributeFilter: ['open'] });
2490                    }
2491                }
2492            }
2493
2494            // When the shopper clicks the Extend offer in the drawer, Extend opens its
2495            // protection modal over the page. Close the cart drawer so the modal isn't
2496            // hidden behind it.
2497            function closeCartDrawer() {
2498                const drawer = document.querySelector('cart-drawer-component');
2499                if (!drawer) return;
2500                try {
2501                    if (typeof drawer.close === 'function') { drawer.close(); return; }
2502                } catch (e) {}
2503                const closeBtn = drawer.querySelector('.cart-drawer__close-button, [ref="closeButton"], [aria-label*="close" i]');
2504                if (closeBtn) closeBtn.click();
2505            }
2506            if (!isMainCart) {
2507                // The offer button is often a cross-origin iframe, so a click on it does
2508                // not bubble to the page. Instead, watch for Extend's protection modal
2509                // (added to <body>, or a pre-existing hidden modal being shown) and close
2510                // the drawer when it becomes visible.
2511                const isModalVisible = function (el) {
2512                    if (!el) return false;
2513                    const r = el.getBoundingClientRect();
2514                    const cs = getComputedStyle(el);
2515                    return r.height > 80 && r.width > 80 &&
2516                        cs.display !== 'none' && cs.visibility !== 'hidden' && cs.opacity !== '0';
2517                };
2518                const watchModal = function (el) {
2519                    if (!el || el.__bnModalWatch) return;
2520                    el.__bnModalWatch = true;
2521                    const check = function () { if (isModalVisible(el)) closeCartDrawer(); };
2522                    check();
2523                    if ('MutationObserver' in window) {
2524                        new MutationObserver(check).observe(el, {
2525                            attributes: true,
2526                            attributeFilter: ['style', 'class', 'hidden', 'aria-hidden', 'open']
2527                        });
2528                    }
2529                };
2530                const MODAL_SEL = '#extend-offers-modal-iframe, #extend-learn-more-modal-iframe, [id*="extend"][id*="modal"], [class*="extend"][class*="modal"]';
2531                document.querySelectorAll(MODAL_SEL).forEach(watchModal);
2532                if ('MutationObserver' in window) {
2533                    new MutationObserver(function (muts) {
2534                        muts.forEach(function (m) {
2535                            m.addedNodes.forEach(function (n) {
2536                                if (n.nodeType !== 1) return;
2537                                if (n.matches && n.matches(MODAL_SEL)) watchModal(n);
2538                                if (n.querySelectorAll) n.querySelectorAll(MODAL_SEL).forEach(watchModal);
2539                            });
2540                        });
2541                    }).observe(document.body, { childList: true, subtree: true });
2542                }
2543
2544                // Also try the direct click path (works when the offer is a normal DOM button).
2545                document.addEventListener('click', function (e) {
2546                    if (e.target && e.target.closest && e.target.closest('.' + offerClass)) {
2547                        setTimeout(closeCartDrawer, 0);
2548                    }
2549                }, true);
2550            }
2551
2552            // Use this to refresh the sidecart when the mini cart trigger or quantity selectors/remove buttons are clicked
2553             document.addEventListener('click', function(e) {
2554                 if (e.target.closest('.quantity-plus') || e.target.closest('.quantity-minus') || e.target.closest('.cart-items__remove')) {  // Replace with your click listen selector
2555                    window.setTimeout(function () {
2556                        window.dispatchEvent(new Event('refreshAjaxSideCart'));
2557                    }, 2000);
2558                 }
2559             })
2560
2561             document.addEventListener('click', function(e) {
2562                 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
2563                    console.log("Extend: main cart quant") 
2564                    window.setTimeout(function () {
2565                        window.dispatchEvent(new Event('refreshAjaxCart'));
2566                    }, 2000);
2567                 }
2568             })
2569
2570        } catch (err) {
2571            console.error('EXTEND: ', err);
2572        }
2573
2574    }, { once: true });
2575</script>
2575
2576
2577<style>
2578    .extend-cart-offer {
2579        margin: 0;
2580    }
2581
2582    .extend-side-cart-offer {
2583        margin: 10px 0;
2584    }
2585
2586    @keyframes bn-extend-spin { to { transform: rotate(360deg); } }
2587
2588    /* Side cart (drawer): render the offer as a full-width block under the title
2589       so it lays out cleanly and the item row grows to fit it (no clipping). */
2590    .cart-drawer .extend-side-cart-offer {
2591        display: block;
2592        width: 100%;
2593        margin: 8px 0 4px;
2594        clear: both;
2595    }
2596    .cart-drawer .extend-side-cart-offer:empty {
2597        display: none;
2598    }
2599
2600    .extend-warranty-info {
2601        margin: 0 !important;
2602    }
2603
2604    .extend-warranty-info-product {}
2605
2606    .extend-warranty-info-term {}
2607
2608    #extend-offers-modal-iframe {
2609        z-index: 99999999999 !important;
2610    }
2611
2612    #extend-learn-more-modal-iframe {
2613        z-index: 99999999999 !important;
2614    }
2615</style>
2616
2617<!-- Optional -->
2618<!-- Extend - Render atc -->
2619
2620<!-- Extend - Render quickview -->
2621
2622  <!-- Extend -- End Extend code -->
2623<!-- BEGIN app block: shopify://apps/coframe-app-prod/blocks/coframe/019f3a40-3aa2-70f5-b75e-ee2ca0be8280 -->
2624<script>
2625    (function () {
2626      var d = document;
2627      // `cf_disable` is the kill switch the SDK and the hand-installed snippet
2628      // both honour, and it is what LCP benchmarking uses for its "Coframe
2629      // off" arm. Hiding here anyway would put a blank page in that arm and
2630      // make the comparison meaningless.
2631      if (/cf_disable/.test(location.search)) return;
2632      // Another integration on this page already hides it — the hand-installed
2633      // snippet uses this same element id, and a store can carry both it and
2634      // the app embed. Two hides do not stack (both read --cf-show, so the
2635      // first reveal un-hides both), but only one should own the element.
2636      if (d.getElementById('coframe-antiflicker')) return;
2637      var s = d.createElement('style');
2638      s.id = 'coframe-antiflicker';
2639      s.textContent = ':root{--cf-show:0}body{opacity:var(--cf-show)!important;transition:opacity 0.2s ease}';
2640      (d.head || d.documentElement).appendChild(s);
2641      setTimeout(function () {
2642        var r = d.documentElement;
2643        r.style.setProperty('--cf-show', '1');
2644        r.style.setProperty('--cf-visibility', 'visible');
2645        if (s.parentNode) s.parentNode.removeChild(s);
2646      }, 1000);
2647    })();
2648  </script>
2648<script async src="https://shop.coframe.com/coframe-storefront.js?shop=1zkvfh-xt.myshopify.com"></script>
2648
2649
2650
2651<!-- END app block --><!-- BEGIN app block: shopify://apps/yotpo-product-reviews/blocks/settings/eb7dfd7d-db44-4334-bc49-c893b51b36cf -->
2652
2653
2654  
2654<script type="text/javascript" src="https://cdn-widgetsrepository.yotpo.com/v1/loader/m2djy7T11NLc8kN2FyPVbHo7xpNI2IQ4yhET0ca9?languageCode=en" async></script>
2654
2655
2656
2657
2658  
2659<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 -->
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672  
2672<script async src="https://static.klaviyo.com/onsite/js/XDCv4C/klaviyo.js?company_id=XDCv4C"></script>
2672
2673  
2673<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>
2673
2674
2675  
2676
2677
2678
2679
2680  
2680<script>
2681    window.klaviyoReviewsProductDesignMode = false
2682  </script>
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692<!-- 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 />
2693<link rel='preconnect dns-prefetch' href='https://conf.config-security.com/' crossorigin />
2694<script>
2695/* >> TriplePixel :: start*/
2696window.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);
2697/* << TriplePixel :: end*/
2698</script>
2698
2699
2700
2701
2702<!-- END app block --><!-- BEGIN app block: shopify://apps/bushnell-sale-automation/blocks/sale-collection-control/019ffd7a-8c8a-7a7c-bdeb-ed3ef47858b1 --><style>
2703    a[href$="/collections/sale"],
2704    a[href*="/collections/sale?"],
2705    a[href*="/collections/sale/"] { display: none !important; }
2706  </style>
2707<!-- END app block --><link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
2708<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 2708
2708
2709<script>
2710  window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || [];
2711</script>
vendor: 1 bytes, line 2711
2711
2712<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}
2712).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: ["16072cab","8450a54b"],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"}
2712,{"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":"3b0a66505e38d4995b6d711dbc972bc9","type":"APP","apiClientId":2753413,"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":"2764996792","configuration":"{\"campaignID\":\"43462\",\"externalExecutionURL\":\"https:\/\/engine.saasler.com\/api\/v1\/webhook_executions\/0442a54891f774312a521fc6f8d6fff2\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"7a47b06116c806e4367c27d301f4f458","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
2712737066497,"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"},{"id":"167968952","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"3","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"AudioHook"},{"id":"168001720","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Criteo"},{"id":"168034488","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"MNTN"},{"id":"168067256","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Quora"},{"id":"168100024","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Triple Whale"},{"id":"173015224","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"10","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Google tag manager"},{"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"}
2712,"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}]},{"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","c8540278we853e1abpb62b2c4amde256306",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"191774392504","themePublished":"true","eventMetadataId":"4707c850-9f87-417b-a6dc-a5e1201b2e96","pageType":"page","resourceId":"165898748088","shopId":"94598496440","storefrontBaseUrl":"https:\/\/www.bushnellgolf.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"16072cab\", \"8450a54b\"]","isMerchantRequest":"false","hashVersion":"c8540278we853e1abpb62b2c4amde256306","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
2712<script>
2713  window.ShopifyAnalytics = window.ShopifyAnalytics || {};
2714  window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
2715  window.ShopifyAnalytics.meta.currency = 'USD';
2716  var meta = {"page":{"pageType":"page","resourceType":"page","resourceId":165898748088,"requestId":"afd644ad-ef44-42fd-b0c9-16f367671da7-1790241164"}};
2717  for (var attr in meta) {
2718    window.ShopifyAnalytics.meta[attr] = meta[attr];
2719  }
2720</script>
vendor: 1 bytes, line 2720
2720
2721<script class="analytics">
2722  (function () {
2723    var customDocumentWrite = function(content) {
2724      var jquery = null;
2725
2726      if (window.jQuery) {
2727        jquery = window.jQuery;
2728      } else if (window.Checkout && window.Checkout.$) {
2729        jquery = window.Checkout.$;
2730      }
2731
2732      if (jquery) {
2733        jquery('body').append(content);
2734      }
2735    };
2736
2737    var hasLoggedConversion = function(token) {
2738      if (token) {
2739        return document.cookie.indexOf('loggedConversion=' + token) !== -1;
2740      }
2741      return false;
2742    }
2743
2744    var setCookieIfConversion = function(token) {
2745      if (token) {
2746        var twoMonthsFromNow = new Date(Date.now());
2747        twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
2748
2749        document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
2750      }
2751    }
2752
2753    var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
2754    window.ShopifyAnalytics.lib.trekkie = window.trekkie;
2755    if (trekkie.integrations) {
2756      return;
2757    }
2758    trekkie.methods = [
2759      'identify',
2760      'page',
2761      'ready',
2762      'track',
2763      'trackForm',
2764      'trackLink'
2765    ];
2766    trekkie.factory = function(method) {
2767      return function() {
2768        var args = Array.prototype.slice.call(arguments);
2769        args.unshift(method);
2770        trekkie.push(args);
2771        if (method == 'track' || method == 'page') {
2772          try {
2773            if (window.__TREKKIE_SHIM_QUEUE == null) {
2774              window.__TREKKIE_SHIM_QUEUE = [];
2775            }
2776            window.__TREKKIE_SHIM_QUEUE.push({
2777              from: 'trekkie-stub',
2778              method: method,
2779              args: args.slice(1)
2780            });
2781          } catch (e) {
2782            // no-op
2783          }
2784        }
2785        return trekkie;
2786      };
2787    };
2788    for (var i = 0; i < trekkie.methods.length; i++) {
2789      var key = trekkie.methods[i];
2790      trekkie[key] = trekkie.factory(key);
2791    }
2792    trekkie.load = function(config) {
2793      trekkie.config = config || {};
2794      trekkie.config.initialDocumentCookie = document.cookie;
2795      var first = document.getElementsByTagName('script')[0];
2796var script = document.createElement('script');
2797script.type = 'text/javascript';
2798script.onerror = function(e) {
2799  var scriptFallback = document.createElement('script');
2800  scriptFallback.type = 'text/javascript';
2801  scriptFallback.onerror = function(error) {
2802          var Monorail = {
2803      produce: function produce(monorailDomain, schemaId, payload) {
2804        var currentMs = new Date().getTime();
2805        var event = {
2806          schema_id: schemaId,
2807          payload: payload,
2808          metadata: {
2809            event_created_at_ms: currentMs,
2810            event_sent_at_ms: currentMs
2811          }
2812        };
2813        return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
2814      },
2815      sendRequest: function sendRequest(endpointUrl, payload) {
2816        // Try the sendBeacon API
2817        if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
2818          var blobData = new window.Blob([payload], {
2819            type: 'text/plain'
2820          });
2821
2822          if (window.navigator.sendBeacon(endpointUrl, blobData)) {
2823            return true;
2824          } // sendBeacon was not successful
2825
2826        } // XHR beacon
2827
2828        var xhr = new XMLHttpRequest();
2829
2830        try {
2831          xhr.open('POST', endpointUrl);
2832          xhr.setRequestHeader('Content-Type', 'text/plain');
2833          xhr.send(payload);
2834        } catch (e) {
2835          console.log(e);
2836        }
2837
2838        return false;
2839      },
2840      isIos12: function isIos12() {
2841        return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
2842      }
2843    };
2844    Monorail.produce('monorail-edge.shopifysvc.com',
2845      'trekkie_storefront_load_errors/1.1',
2846      {shop_id: 94598496440,
2847      theme_id: 191774392504,
2848      app_name: "storefront",
2849      context_url: window.location.href,
2850      source_url: "//www.bushnellgolf.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js"});
2851
2852  };
2853  scriptFallback.async = true;
2854  scriptFallback.src = '//www.bushnellgolf.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js';
2855  first.parentNode.insertBefore(scriptFallback, first);
2856};
2857script.async = true;
2858script.src = '//www.bushnellgolf.com/cdn/s/trekkie.storefront.f1ba865b3fecd812ad617f74ac079261075e9edb.min.js';
2859first.parentNode.insertBefore(script, first);
2860
2861    };
2862    trekkie.load(
2863      {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":94598496440,"isMerchantRequest":null,"themeId":191774392504,"themeCityHash":"9880103544750747950","contentLanguage":"en","currency":"USD","eventMetadataId":"4707c850-9f87-417b-a6dc-a5e1201b2e96"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}}
2864    );
2865
2866    var loaded = false;
2867    trekkie.ready(function() {
2868      if (loaded) return;
2869      loaded = true;
2870
2871      window.ShopifyAnalytics.lib = window.trekkie;
2872
2873      var originalDocumentWrite = document.write;
2874      document.write = customDocumentWrite;
2875      try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
2876      document.write = originalDocumentWrite;
2877
2878      var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
2879      var token = match? match[1]: undefined;
2880      if (!hasLoggedConversion(token)) {
2881        setCookieIfConversion(token);
2882        
2883      }
2884    });
2885
2886    window.ShopifyAnalytics.lib.page(null,{"pageType":"page","resourceType":"page","resourceId":165898748088,"requestId":"afd644ad-ef44-42fd-b0c9-16f367671da7-1790241164","shopifyEmitted":true});
2887
2888    var eventsListenerScript = document.createElement('script');
2889    eventsListenerScript.async = true;
2890    eventsListenerScript.src = "//www.bushnellgolf.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js";
2891    document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
2892})();</script>
vendor: 1 bytes, line 2892
2892
2893<script
2894  defer
2895  src="https://www.bushnellgolf.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js"
2896  data-application="storefront-renderer"
2897  data-shop-id="94598496440"
2898  data-render-region="gcp-us-central1"
2899  data-page-type="page"
2900  data-theme-instance-id="191774392504"
2901  data-theme-name="Horizon"
2902  data-theme-version="3.4.0"
2903  data-monorail-region="shop_domain"
2904  data-resource-timing-sampling-rate="10"
2905  data-shs="true"
2906  data-shs-beacon="true"
2907  data-shs-export-with-fetch="true"
2908  data-shs-logs-sample-rate="1"
2909  data-shs-beacon-endpoint="https://www.bushnellgolf.com/api/collect"
2910></script>
vendor: 1 bytes, line 2910
2910
2911<script src="https://cdn.shopify.com/storefront/web-components/account.js" type="module" crossorigin fetchpriority="low" async></script>
2911<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>
2911
2912<meta name="shopify-y" content="140db174-3f5d-4ae6-b755-3f4dbff6f348" data-expiration="1821798764000"><meta name="shopify-s" content="899cca35-0358-4392-a60f-d47f42da7b6c" data-expiration="1790242964000"><meta name="new-cookie-storage-activated" content="t">
2913</head>
2914<body class="template-page bushnell-theme">
vendor: 67 bytes, line 2914
2914<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
2914GTM-W2RQBLD
vendor: 84 bytes, line 2914
2914" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
2915<div id="shopify-section-bushnell-utility-bar" class="shopify-section"><style>
2916  #shopify-section-bushnell-utility-bar h1,
2917  #shopify-section-bushnell-utility-bar h2,
2918  #shopify-section-bushnell-utility-bar h3,
2919  #shopify-section-bushnell-utility-bar h4,
2920  #shopify-section-bushnell-utility-bar h5,
2921  #shopify-section-bushnell-utility-bar h6 { font-family: 'Industry Bold', sans-serif; }
2922  #shopify-section-bushnell-utility-bar p,
2923  #shopify-section-bushnell-utility-bar li,
2924  #shopify-section-bushnell-utility-bar span,
2925  #shopify-section-bushnell-utility-bar a { font-family: 'Acumin Pro', sans-serif; }
2926  #shopify-section-bushnell-utility-bar .utility-links > a,
2927#shopify-section-bushnell-utility-bar .utility-links > .utility-account > a,
2928#shopify-section-bushnell-utility-bar .utility-links .bn-region-trigger {
2929  font-family: 'Industry Bold', sans-serif;
2930}
2931  @media screen and (max-width: 749px) {
2932    #shopify-section-bushnell-utility-bar .main-nav {
2933      padding-top: 8px;
2934      padding-bottom: 8px;
2935    }
2936  }
2937  @media screen and (min-width: 750px) and (max-width: 989px) {
2938    #shopify-section-bushnell-utility-bar .utility-bar {
2939      padding-top: 8px;
2940      padding-bottom: 8px;
2941    }
2942  }
2943  /* Fix: mega menu dropdown must size to its content, not the full viewport. */
2944  .mega-menu-dropdown {
2945    height: auto !important;
2946    min-height: 0 !important;
2947    max-height: none !important;
2948    overflow: visible !important;
2949  }
2950  .mega-menu-dropdown > .container {
2951    height: auto !important;
2952    max-height: none !important;
2953    overflow: visible !important;
2954  }
2955  .mega-menu-grid {
2956    height: auto !important;
2957    min-height: 0 !important;
2958    max-height: none !important;
2959    overflow: visible !important;
2960    align-items: flex-start !important;
2961  }
2962  .mega-menu-columns {
2963    height: auto !important;
2964    max-height: none !important;
2965    overflow: visible !important;
2966  }
2967  /* Full-width mega-menu sheet: span the whole viewport under the nav. */
2968  .mega-menu-dropdown {
2969    left: 0 !important;
2970    right: 0 !important;
2971    width: 100% !important;
2972    max-width: none !important;
2973    border-radius: 0 !important;
2974    border-left: none !important;
2975    border-right: none !important;
2976    border-bottom: 1px solid #e5e1dc;
2977    box-shadow: 0 12px 40px rgba(30, 37, 43, 0.18);
2978  }
2979  /* Accessories panel: every link is an unmistakable row —
2980     hairline separators + chevron affordance (name + sub read as one unit). */
2981  [data-mega-panel="accessories"] .mega-menu-col-links li {
2982    border-top: 1px solid #e5e1dc;
2983  }
2984  [data-mega-panel="accessories"] .mega-menu-col-links li a {
2985    position: relative;
2986    display: block;
2987    padding: 14px 26px 14px 0;
2988  }
2989  [data-mega-panel="accessories"] .mega-menu-col-links li a::after {
2990    content: "";
2991    position: absolute;
2992    right: 4px;
2993    top: 50%;
2994    width: 8px;
2995    height: 8px;
2996    border-top: 2px solid #9b968f;
2997    border-right: 2px solid #9b968f;
2998    transform: translateY(-50%) rotate(45deg);
2999  }
3000  /* Compact collection hero: match the approved mockups \u2014 slim padding,
3001     smaller title and stat scale. Overrides the tall base-CSS hero. */
3002  .collection-hero {
3003    padding: 44px 40px 40px !important;
3004    min-height: 0 !important;
3005  }
3006  .collection-hero-inner {
3007    padding: 0 !important;
3008  }
3009  .collection-hero h1 {
3010    font-size: 36px !important;
3011    letter-spacing: 2px !important;
3012    margin: 0 !important;
3013  }
3014  .collection-hero p {
3015    font-size: 15px !important;
3016    margin: 8px 0 0 !important;
3017  }
3018  .collection-stats {
3019    margin-top: 26px !important;
3020    gap: 48px !important;
3021  }
3022  .collection-stat-value {
3023    font-size: 28px !important;
3024  }
3025  .collection-stat-label {
3026    font-size: 11px !important;
3027    letter-spacing: 1.5px !important;
3028  }
3029  @media screen and (max-width: 749px) {
3030    .collection-hero { padding: 32px 20px 28px !important; }
3031    .collection-hero h1 { font-size: 26px !important; }
3032    .collection-stats { gap: 24px !important; margin-top: 18px !important; }
3033    .collection-stat-value { font-size: 22px !important; }
3034  }
3035  /* Product-card styling moved to bushnell.css */
3036  /* Comparison charts (custom-liquid): price shown under the product name
3037     in the header row — the JS below moves it there from a "Price" line item. */
3038  #lrf-comparison-chart .product-price {
3039    display: block;
3040    font-family: "acumin-pro-condensed", "Helvetica Neue", Arial, sans-serif;
3041    font-weight: bold;
3042    color: #000000;
3043    font-size: 1.2rem;
3044    margin-top: 0.25rem;
3045  }
3046  /* Account state — signed-out shows SIGN IN; signed-in shows pip + first name
3047     with a hover/focus dropdown (Orders, Profile, Register, Support, Sign out). */
3048  .utility-account { position: relative; display:contents; }
3049  .utility-account > a { display: inline-flex; align-items: center; gap: 7px; }
3050  .bn-acct-pip {
3051    width: 20px; height: 20px; border-radius: 50%;
3052    background: #fe5000; color: #ffffff !important;
3053    display: inline-flex; align-items: center; justify-content: center;
3054    font-family: 'Industry Bold', 'Oswald', sans-serif;
3055    font-size: 10px; font-weight: 700; line-height: 1;
3056  }
3057  .bn-acct-caret { width: 10px; height: 10px; transition: transform 0.2s ease; }
3058  .bn-acct-menu {
3059    position: fixed; z-index: 200;
3060    width: 240px; padding-top: 8px;
3061    opacity: 0; visibility: hidden; transform: translateY(-4px);
3062    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
3063  }
3064  .utility-account.bn-open .bn-acct-menu {
3065    opacity: 1; visibility: visible; transform: translateY(0);
3066  }
3067  .utility-account.bn-open .bn-acct-caret { transform: rotate(180deg); }
3068  .bn-acct-menu-card {
3069    background: #ffffff; border: 1px solid #e5e1dc; border-radius: 12px;
3070    box-shadow: 0 12px 40px rgba(30,37,43,0.18); overflow: hidden;
3071  }
3072  .bn-acct-menu-head { padding: 14px 18px 12px; border-bottom: 1px solid #f0ece7; }
3073  .bn-acct-menu-name {
3074    font-family: 'Industry Bold', 'Oswald', sans-serif;
3075    font-size: 13px; font-weight: 600; letter-spacing: 0.5px;
3076    text-transform: uppercase; color: #1e252b;
3077  }
3078  .bn-acct-menu-email {
3079    font-family: 'Acumin Pro', 'DM Sans', sans-serif;
3080    font-size: 12px; color: #6b6b6b;
3081    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
3082  }
3083  .bn-acct-menu-list { padding: 6px 0; }
3084  .bn-acct-menu-list + .bn-acct-menu-list { border-top: 1px solid #f0ece7; }
3085  .bn-acct-menu a.bn-acct-item {
3086    display: flex !important; align-items: center; gap: 10px;
3087    padding: 10px 18px !important;
3088    font-family: 'Industry Bold', 'Oswald', sans-serif;
3089    font-size: 12px; font-weight: 600; letter-spacing: 1px;
3090    text-transform: uppercase; color: #1e252b !important;
3091    text-decoration: none; transition: background 0.2s ease, color 0.2s ease;
3092  }
3093  .bn-acct-menu a.bn-acct-item:hover { background: #f7f3ee; color: #fe5000 !important; }
3094  .bn-acct-menu a.bn-acct-item--muted { color: #6b6b6b !important; }
3095  .bn-acct-menu a.bn-acct-item--muted:hover { color: #1e252b !important; }
3096  .bn-acct-menu a.bn-acct-item svg { width: 15px; height: 15px; flex-shrink: 0; }
3097  @media screen and (max-width: 749px) {
3098    .bn-acct-menu { display: none; }
3099  }
3100  /* Region selector — flag + REGION:/country stacked, click dropdown with
3101     US/Europe/Canada storefront links. Same fixed-position pattern as the
3102     account menu so it survives ancestor overflow/stacking contexts. */
3103  .utility-region { position: relative; display: flex; align-items: center; }
3104  .bn-region-trigger {
3105    display: inline-flex; align-items: center; gap: 8px;
3106    background: none; border: none; padding: 2px 0; cursor: pointer;
3107    color: #ffffff; text-align: left;
3108    font-family: inherit; letter-spacing: inherit; text-transform: inherit;
3109  }
3110  .bn-region-flag { flex-shrink: 0; }
3111  .bn-region-txt { display: flex; flex-direction: column; line-height: 1.25; }
3112  .bn-region-label {
3113    font-size: 9px; letter-spacing: 0.12em; opacity: 0.75;
3114  }
3115  .bn-region-current {
3116    display: inline-flex; align-items: center; gap: 4px;
3117    font-size: 11px; font-weight: 700;
3118    font-family: 'Industry Bold', 'Oswald', sans-serif;
3119  }
3120  .bn-region-caret { width: 10px; height: 10px; transition: transform 0.2s ease; }
3121  .utility-region.bn-open .bn-region-caret { transform: rotate(180deg); }
3122  .bn-region-menu {
3123    position: fixed; z-index: 200;
3124    width: 190px; padding-top: 8px;
3125    opacity: 0; visibility: hidden; transform: translateY(-4px);
3126    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
3127  }
3128  .utility-region.bn-open .bn-region-menu {
3129    opacity: 1; visibility: visible; transform: translateY(0);
3130  }
3131  .bn-region-menu-card {
3132    background: #ffffff; border: 1px solid #e5e1dc; border-radius: 10px;
3133    box-shadow: 0 12px 40px rgba(30,37,43,0.18); overflow: hidden;
3134    padding: 6px 0;
3135  }
3136  .bn-region-menu a.bn-region-item {
3137    display: flex !important; align-items: center; gap: 8px;
3138    padding: 10px 16px !important;
3139    font-family: 'Acumin Pro', 'DM Sans', sans-serif;
3140    font-size: 13px; text-transform: none; letter-spacing: 0;
3141    color: #1e252b !important; text-decoration: none;
3142    transition: background 0.2s ease, color 0.2s ease;
3143  }
3144  .bn-region-menu a.bn-region-item:hover { background: #f7f3ee; color: #fe5000 !important; }
3145  .bn-region-menu a.bn-region-item.is-active { font-weight: 700; }
3146  .bn-region-check {
3147    width: 14px; height: 14px; flex-shrink: 0;
3148    display: inline-flex; align-items: center; justify-content: center;
3149  }
3150  .bn-region-check svg { width: 13px; height: 13px; }
3151  /* Mobile: base CSS hides .utility-links under 769px — bring the group back
3152     but show only the region selector; contact/support/account move into the
3153     header's user-icon menu at this width. */
3154  @media screen and (max-width: 768px) {
3155    .utility-links { display: flex !important; }
3156    .utility-links > a,
3157    .utility-links .utility-account { display: none !important; }
3158  }
3159  /* Promo link inherits the bar's text colour;
3159 the highlight keeps its orange. */
3160  .utility-promo__link { color: inherit; text-decoration: none; }
3161  .utility-promo__link:hover { text-decoration: underline; }
3162</style>
3163<div class="utility-bar">
3164  <div class="container">
3165    <div class="utility-promo"><strong>FREE SHIPPING</strong> ON ORDERS OVER $99 + FREE 30-DAY RETURNS�</div>
3166    <div class="utility-links">
3167      
3168      <a href="/pages/support">
3169        <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>
3170        SUPPORT
3171      </a>
3172      �<a href="/account">
3173          <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>
3174          SIGN IN
3175        </a></div>
3176  </div>
3177</div>
3178
3179<script src="//www.bushnellgolf.com/cdn/shop/t/127/assets/bushnell-utility-bar.js?v=176354384251886478481790092425" defer></script>
3179
3180
3181
3182</div><div id="shopify-section-bushnell-header" class="shopify-section"><style>
3183  #shopify-section-bushnell-header h1,
3184  #shopify-section-bushnell-header h2,
3185  #shopify-section-bushnell-header h3,
3186  #shopify-section-bushnell-header h4,
3187  #shopify-section-bushnell-header h5,
3188  #shopify-section-bushnell-header h6 { font-family: 'Industry Bold', sans-serif; }
3189/* Main navigation */
3190#shopify-section-bushnell-header .nav-links > li > a {
3191  font-family: 'Industry Bold', sans-serif;
3192}
3193
3194/* Mega menu product names */
3195#shopify-section-bushnell-header .mega-link-name {
3196  font-family: 'Industry Bold', sans-serif;
3197}
3198
3199/* Featured product title */
3200#shopify-section-bushnell-header .mega-menu-featured-name,
3201#shopify-section-bushnell-header .mega-menu-featured-name a {
3202  font-family: 'Industry Bold', sans-serif;
3203}
3204
3205/* Featured cards laid out in a row (wrap to next line if many) */
3206#shopify-section-bushnell-header .mega-menu-featured-wrap {
3207  display: flex;
3208  flex-direction: row;
3209  flex-wrap: wrap;
3210  gap: 24px;
3211  flex-shrink: 0;
3212}
3213  @media screen and (max-width: 749px) {
3214    #shopify-section-bushnell-header .main-nav {
3215      padding-top: 8px;
3216      padding-bottom: 8px;
3217    }
3218    #shopify-section-bushnell-header .nav-links a {
3219      font-size: 24px;
3220    }
3221  }
3222  @media screen and (min-width: 750px) and (max-width: 989px) {
3223    #shopify-section-bushnell-header .main-nav {
3224      padding-top: 12px;
3225      padding-bottom: 12px;
3226    }
3227    #shopify-section-bushnell-header .nav-links a {
3228      font-size: 28px;
3229    }
3230  }
3231  #shopify-section-bushnell-header .logo img {
3232    object-fit: contain;
3233    height: 40px;
3234    width: auto;
3235  }
3236  @media screen and (min-width: 750px) {
3237    #shopify-section-bushnell-header .logo img {
3238      height: 33px;
3239    }
3240  }
3241  @media screen and (max-width: 749px) {
3242    .hide-mobile { display: none !important; }
3243  }
3244  .mobile-featured-cards { display: flex; flex-wrap: wrap; gap: 12px; padding: 8px 0 4px; }
3245  .mobile-featured-card { flex: 0 0 100%; min-width: 0; }
3246  .mobile-featured-card--half { flex: 0 0 calc(50% - 6px); }
3247  .mobile-featured-card__img { display: block; width: 100%; border-radius: 4px; margin-bottom: 6px; }
3248  .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; }
3249  .mobile-featured-card__badge--new { background: var(--orange, #FE5000); color: #fff;position:absolute;  }
3250  .mobile-featured-card__badge--bestseller { background: #000; color: #fff; position:absolute;  }
3251  .mobile-featured-card__badge--sale { background: #e53; color: #fff;position:absolute;  }
3252  .mobile-featured-card__name { font-size: 13px; font-weight: 600; color: inherit; text-decoration: none; display: block; margin-bottom: 2px; }
3253  .mobile-featured-card__price { font-size: 12px; color: var(--grey-500, #666); margin-bottom: 6px; }
3254  .mobile-featured-card__cta { font-size: 11px; font-weight: 700; color: var(--orange, #FE5000); text-transform: uppercase; letter-spacing: 0.05em; }
3255  #shopify-section-bushnell-header .bn-cart-actions { display: flex; align-items: center; }
3256  #shopify-section-bushnell-header .bn-cart-actions header-actions { display: flex; align-items: center; }
3257  #shopify-section-bushnell-header .bn-cart-actions .account-button { display: none !important; }
3258  #shopify-section-bushnell-header .bn-cart-actions .header-actions__cart-icon { color: currentColor; }
3259  /* Mobile/tablet user menu: person icon between search and cart; click opens
3260     My Account / Contact / Support. Desktop keeps these in the utility bar.
3261     Also unhide the search icon at this width — the search overlay is global. */
3262  .bn-user-wrap { position: relative; display: none; align-items: center; }
3263  @media (max-width: 768px) {
3264    .bn-user-wrap { display: flex; }
3265    #shopify-section-bushnell-header .nav-search-btn { display: flex !important; }
3266  }
3267  .bn-user-btn { background: none; border: none; cursor: pointer; padding: 0; }
3268  .bn-user-menu {
3269    position: absolute; top: calc(100% + 12px); right: -10px; z-index: 300;
3270    width: 210px;
3271    opacity: 0; visibility: hidden; transform: translateY(-4px);
3272    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
3273  }
3274  .bn-user-wrap.bn-open .bn-user-menu { opacity: 1; visibility: visible; transform: translateY(0); }
3275  .bn-user-menu-card {
3276    background: #ffffff; border: 1px solid #e5e1dc; border-radius: 10px;
3277    box-shadow: 0 12px 40px rgba(30,37,43,0.18); overflow: hidden; padding: 6px 0;
3278  }
3279  .bn-user-menu a.bn-user-item {
3280    display: flex; align-items: center; gap: 10px;
3281    padding: 11px 16px;
3282    font-family: 'Industry Bold', 'Oswald', sans-serif;
3283    font-size: 12px; font-weight: 600; letter-spacing: 1px; text-transform: uppercase;
3284    color: #1e252b; text-decoration: none;
3285    transition: background 0.2s ease, color 0.2s ease;
3286  }
3287  .bn-user-menu a.bn-user-item:hover { background: #f7f3ee; color: #fe5000; }
3288  .bn-user-menu a.bn-user-item svg { width: 15px; height: 15px; flex-shrink: 0; }
3289  .bn-user-menu a.bn-user-item--muted { color: #6b6b6b; border-top: 1px solid #f0ece7; margin-top: 6px; padding-top: 12px; }
3290  .bn-user-menu a.bn-user-item--muted:hover { color: #1e252b; }
3291  .bn-user-pip {
3292    width: 24px; height: 24px; border-radius: 50%;
3293    background: #fe5000; color: #ffffff;
3294    display: inline-flex; align-items: center; justify-content: center;
3295    font-family: 'Industry Bold', 'Oswald', sans-serif;
3296    font-size: 11px; font-weight: 700; line-height: 1;
3297  }
3298  .bn-user-menu-head { padding: 12px 16px 10px; border-bottom: 1px solid #f0ece7; margin-bottom: 6px; }
3299  .bn-user-menu-name {
3300    font-family: 'Industry Bold', 'Oswald', sans-serif;
3301    font-size: 13px; font-weight: 600; letter-spacing: 0.5px;
3302    text-transform: uppercase; color: #1e252b;
3303  }
3304  .bn-user-menu-email {
3305    font-family: 'Acumin Pro', 'DM Sans', sans-serif;
3306    font-size: 12px; color: #6b6b6b;
3307    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
3308  }
3309  /* ============================================
3310     NAV v2 (CRO) — whole-card featured links, quiet
3311     CTAs on multi-card panels, secondary Shop-all
3312     button, comparison cards, Greenbooks accent.
3313     ============================================ */
3314  /* Featured card: entire card is one link (stretched overlay); inner
3315     links/CTAs sit above it so they still work. */
3316  .mega-menu-featured { transition: transform 0.3s ease, box-shadow 0.3s ease; }
3317  .mega-menu-featured:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(30,37,43,0.10); }
3318  .mega-menu-featured-link { position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
3319  .mega-menu-featured .mega-menu-featured-name a,
3320  .mega-menu-featured .mega-menu-featured-img a,
3321  .mega-menu-featured .mega-menu-featured-cta { position: relative; z-index: 2; }
3322  /* Multi-card panels (e.g. Rangefinders): the orange button per card
3323     becomes a quiet "View details" affordance — one CTA style, no four
3324     competing primaries. Single-card panels keep their orange CTA. */
3325  .mega-menu-featured-cta--quiet,
3326  .mega-menu-featured-cta--quiet:hover {
3327    background: transparent;
3328    color: var(--orange, #FE5000);
3329    padding: 0;
3330    border-radius: 0;
3331    cursor: pointer;
3332  }
3333  /* Shop-all: visible secondary button instead of a quiet text link. */
3334  .mega-menu-shop-all {
3335    border: 2px solid var(--midnight, #1E252B);
3336    border-radius: 6px;
3337    padding: 12px 24px;
3338    transition: border-color 0.2s ease, color 0.2s ease;
3339  }
3340  .mega-menu-shop-all:hover { border-color: var(--orange, #FE5000); color: var(--orange, #FE5000); }
3341  /* Comparison cards (2-SKU categories: Launch Monitors, Simulators).
3342     Equal cards with differentiator rows — the menu becomes the
3343     "which one?" step. Whole card is the link. */
3344  .mega-menu-compare {
3345    display: grid;
3346    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
3347    gap: 20px;
3348    max-width: 920px;
3349    margin: 0 auto;
3350    width: 100%;
3351  }
3352  .mega-menu-compare-card {
3353    position: relative;
3354    display: flex;
3355    flex-direction: column;
3356    background: var(--cream, #F7F3EE);
3357    border: 1px solid var(--hairline, #E5E1DC);
3358    border-radius: var(--radius-lg, 12px);
3359    padding: 20px 24px 24px;
3360    color: var(--midnight, #1E252B);
3361    text-decoration: none;
3362    transition: transform 0.3s ease, box-shadow 0.3s ease;
3363  }
3364  .mega-menu-compare-card:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(30,37,43,0.10); }
3365  .mega-menu-compare-badge {
3366    position: absolute; top: 14px; left: 14px;
3367    font-family: var(--font-ui, 'Oswald', sans-serif);
3368    font-size: 10px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase;
3369    padding: 5px 10px; border-radius: 4px; z-index: 1;
3370  }
3371  .mega-menu-compare-badge--bestseller { background: var(--midnight, #1E252B); color: #fff; }
3372  .mega-menu-compare-badge--new { background: var(--orange, #FE5000); color: #fff; }
3373  .mega-menu-compare-badge--sale { background: #C62828; color: #fff; }
3374  .mega-menu-compare-img { height: 150px; display: flex; align-items: center; justify-content: center; overflow: hidden; }
3375  .mega-menu-compare-img img { max-width: 80%; max-height: 100%; object-fit: contain; }
3376  .mega-menu-compare-head {
3377    display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin-top: 14px;
3378  }
3379  .mega-menu-compare-name {
3380    font-family: var(--font-ui, 'Oswald', sans-serif);
3381    font-size: 16px; font-weight: 600; letter-spacing: 0.03em; text-transform: uppercase;
3382  }
3383  .mega-menu-compare-price { font-family: var(--font-ui, 'Oswald', sans-serif); font-size: 16px; font-weight: 600; white-space: nowrap; }
3384  .mega-menu-compare-desc { display: block; margin-top: 8px; font-size: 13px; line-height: 1.45; color: var(--grey-500, #6B6B6B); }
3385  .mega-menu-compare-specs {
3386    display: flex; flex-direction: column; gap: 8px;
3387    margin-top: 12px; padding-top: 12px;
3388    border-top: 1px solid var(--hairline, #E5E1DC);
3389  }
3390  .mega-menu-compare-spec { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; font-size: 13px; }
3391  .mega-menu-compare-spec-label { color: var(--grey-500, #888); }
3392  .mega-menu-compare-spec-value { font-weight: 500; text-align: right; }
3393  .mega-menu-compare-view {
3394    display: inline-flex; align-items: center; gap: 8px; margin-top: 14px;
3395    font-family: var(--font-ui, 'Oswald', sans-serif);
3396    font-size: 12px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase;
3397    color: var(--orange, #FE5000);
3398  }
3399  .mega-menu-compare-view svg { width: 14px; height: 14px; }
3400  /* Mockup parity: cream featured cards, left-aligned, name+price on one
3401     row, dark badge top-left, trust promo moved into the footer row. */
3402  .mega-menu-featured {
3403    position: relative;
3404    background: var(--cream, #F7F3EE);
3405    border: 1px solid var(--hairline, #E5E1DC);
3406    border-radius: 12px;
3407    text-align: left !important;
3408    display: flex;
3409    flex-direction: column;
3410  }
3411  /* Title on its own line, price below it. */
3412  .mega-menu-featured-head { display: block; margin-top: 16px; }
3413  .mega-menu-featured-head .mega-menu-featured-name {
3414    margin: 0;
3415    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
3416  }
3417  .mega-menu-featured-head .mega-menu-featured-price {
3418    margin: 4px 0 0; white-space: nowrap;
3419    font-family: var(--font-ui, 'Oswald', sans-serif);
3420    font-size: 17px; font-weight: 600; color: var(--midnight, #1E252B);
3421  }
3422  .mega-menu-featured-tagline { text-align: left; margin: 6px 0 0; color: var(--muted, #6B6B6B); }
3423  .mega-menu-featured .mega-menu-featured-cta { margin-top: auto; padding-top: 14px; justify-content: flex-start; align-self: flex-start; }
3424  .mega-menu-featured-badge {
3425    position: absolute; top: 14px; left: 14px; right: auto; z-index: 2;
3426    background: var(--midnight, #1E252B); color: #fff;
3427    font-family: var(--font-ui, 'Oswald', sans-serif);
3428    font-size: 10px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase;
3429    padding: 5px 10px; border-radius: 4px;
3430  }
3431  .mega-menu-featured-badge--new { background: var(--orange, #FE5000); }
3432  .mega-menu-featured-badge--sale { background: #C62828; }
3433  .mega-menu-footer { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
3434  .mega-menu-footer .mega-menu-promo {
3435    background: none; border: none; padding: 0; margin: 0;
3436    display: inline-flex; align-items: center; gap: 10px;
3437    color: var(--orange, #FE5000);
3438    font-family: var(--font-ui, 'Oswald', sans-serif);
3439    font-size: 12px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase;
3440  }
3441  /* Greenbooks is a sub-brand: give its accessories row the green accent. */
3442  [data-mega-panel="accessories"] .mega-menu-col-links a[href*="greenbook" i] .mega-link-name { color: var(--green, #4CAF50); }
3443  [data-mega-panel="accessories"] .mega-menu-col-links li a[href*="greenbook" i]::after { border-color: var(--green, #4CAF50); }
3444
3445  /* When an accessory link has a thumbnail, the image stacks on top so the
3446     row is tall. Move the chevron off the whole-link center and onto the
3447     name line instead, so it reads with the title (not floating by the image). */
3448  [data-mega-panel="accessories"] .mega-menu-col-links li a.mega-link--has-img::after { content: none; }
3449  [data-mega-panel="accessories"] .mega-menu-col-links li a.mega-link--has-img .mega-link-name {
3450    position: relative;
3451    padding-right: 22px;
3452  }
3453  [data-mega-panel="accessories"] .mega-menu-col-links li a.mega-link--has-img .mega-link-name::after {
3454    content: "";
3455    position: absolute;
3456    right: 4px;
3457    top: 50%;
3458    width: 8px;
3459    height: 8px;
3460    border-top: 2px solid #9b968f;
3461    border-right: 2px solid #9b968f;
3462    transform: translateY(-50%) rotate(45deg);
3463  }
3464  [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); }
3465</style><nav class="main-nav" data-mega-nav>
3466  <div class="container"><button class="mobile-hamburger" aria-label="Open menu" data-drawer-open>
3467      <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>
3468    </button>
3469
3470    <a class="logo" href="/"><img src="//www.bushnellgolf.com/cdn/shop/files/Bushnell.png?v=1781040317&amp;
3470width=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
3471             data-mega-trigger="rangefinders"
3472            style="text-align:left;padding:0px 0px 0px 0px;"
3473            >
3474            <a href="/collections/golf-rangefinders">RANGEFINDERS</a>
3475          </li><li
3476             data-mega-trigger="launch-monitors"
3477            style="text-align:left;padding:0px 0px 0px 0px;"
3478            >
3479            <a href="/collections/launch-monitors">LAUNCH MONITORS</a>
3480          </li><li
3481             data-mega-trigger="SIMULATOR"
3482            style="text-align:left;padding:0px 0px 0px 0px;"
3483            >
3484            <a href="/collections/golf-simulators">SIMULATORS</a>
3485          </li><li
3486             data-mega-trigger="speakers"
3487            style="text-align:left;padding:0px 0px 0px 0px;"
3488            >
3489            <a href="/collections/golf-gps-speakers">Speakers</a>
3490          </li><li
3491             data-mega-trigger="gps"
3492            style="text-align:left;padding:0px 0px 0px 0px;"
3493            >
3494            <a href="/collections/golf-gps">GPS</a>
3495          </li><li
3496             data-mega-trigger="accessories"
3497            style="text-align:left;padding:0px 0px 0px 0px;"
3498            >
3499            <a href="/collections/accessories">ACCESSORIES</a>
3500          </li><li
3501            
3502            style="text-align:left;padding:0px 0px 0px 0px;"
3503            >
3504            <a href="/collections/sale">Sale</a>
3505          </li></ul>
3506
3507    <div class="nav-actions">
3508      <button aria-label="Search" class="nav-search-btn" data-search-toggle>
3509        <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>
3510      </button>
3511      <div class="bn-user-wrap" data-bn-user>
3512        <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>
3513        <div class="bn-user-menu">
3514          <div class="bn-user-menu-card"><a class="bn-user-item" href="/account">
3515                <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>
3516                Sign In
3517              </a><a class="bn-user-item" href="/pages/contact">
3518              <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>
3519              Contact
3520            </a>
3521            <a class="bn-user-item" href="/pages/support">
3522              <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>
3523              Support
3524            </a></div>
3525        </div>
3526      </div>
3527      <div class="bn-cart-actions">
3528        
3528<script
3529  type="module"
3530  src="//www.bushnellgolf.com/cdn/shop/t/127/assets/cart-icon.js?v=149223991140032574051790092425"
3531  fetchpriority="low"
3532></script>
3532
3533
3534<script src="//www.bushnellgolf.com/cdn/shop/t/127/assets/bushnell-ajax-cart.js?v=161944157569204579171790092425" defer></script>
3534
3535<script src="//www.bushnellgolf.com/cdn/shop/t/127/assets/bushnell-drag-scroll.js?v=110690801177579278971790092425" defer></script>
3535
3536
3537
3538
3539
3540
3541<header-actions
3542  �>
3543  
3544    
3545    <div
3546      class="account-button header-actions__action color-scheme-1"
3547    >
3548      <shopify-store store-domain="https://www.bushnellgolf.com" country="US" language="en"></shopify-store>
3549<shopify-account
3550        menu=""
3551        
3552      >
3553        
3554          <span
3555            slot="signed-out-avatar"
3556            class="account-button__text header-actions__text-style hidden"
3557          >
3558            Account
3559          </span>
3560
3561          <span
3562            slot="signed-out-avatar"
3563            class=""
3564            aria-hidden="true"
3565          >
3566            
3567  <svg
3568    xmlns="http://www.w3.org/2000/svg"
3569    width="15"
3570    height="17"
3571    viewBox="0 0 15 17"
3572    fill="none"
3573    slot="signed-out-avatar"
3574    class="account-button__icon"
3575  >
3576    <path
3577      stroke="currentColor"
3578      stroke-linejoin="round"
3579      stroke-width="var(--icon-stroke-width)"
3580      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"
3581    />
3582  </svg>
3583
3584          </span>
3585        
3586      </shopify-account>
3587    </div>
3588  
3589
3590  
3591    
3591<script
3592      src="//www.bushnellgolf.com/cdn/shop/t/127/assets/cart-drawer.js?v=40387549154824438721790092425"
3593      type="module"
3594      fetchpriority="low"
3595    ></script>
3595
3596
3597    
3598
3599    <cart-drawer-component
3600      class="cart-drawer"
3601      
3602      
3603    >
3604      <template id="empty-cart-template">
3605        
3606      <div class="cart-drawer__header">
3607        <button
3608          ref="closeButton"
3609          on:click="cart-drawer-component/close"
3610          class="button close-button cart-drawer__close-button button-unstyled"
3611          aria-label="Close dialog"
3612        >
3613          <span class="svg-wrapper"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
3614  <path d="M12 2L2 12" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
3615  <path d="M12 12L2 2" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
3616</svg>
3617</span>
3618        </button>
3619      </div>
3620
3621      <div
3622        class="cart-drawer__content bn-empty"
3623        aria-label="Cart"
3624      >
3625        <div class="bn-empty__inner">
3626          <div class="bn-empty__icon">
3627            <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>
3628          </div>
3629          <div class="bn-empty__title" id="cart-drawer-heading-empty">Your cart is empty</div>
3630          <p class="bn-empty__text">Nothing here yet — explore the gear trusted by 98.4% of PGA Tour pros.</p>
3631          <button
3632            type="button"
3633            on:click="cart-drawer-component/close"
3634            class="bn-empty__cta button-unstyled"
3635          >
3636            Continue shopping
3637          </button>
3638
3639          <div class="bn-empty__cats">
3640            <div class="bn-empty__eyebrow">Shop by category</div>
3641            <div class="bn-empty__grid">
3642              <a href="/collections/golf-rangefinders" class="bn-empty__tile">
3643                <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>
3644                <span>Rangefinders</span>
3645              </a>
3646              <a href="/collections/launch-monitors" class="bn-empty__tile">
3647                <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>
3648                <span>Launch Monitors</span>
3649              </a>
3650              <a href="/collections/golf-gps" class="bn-empty__tile">
3651                <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>
3652                <span>GPS</span>
3653              </a>
3654              <a href="/collections/accessories" class="bn-empty__tile">
3655                <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>
3656                <span>Accessories</span>
3657              </a>
3658            </div>
3659          </div>
3660        </div>
3661      </div>
3662    
3663      </template>
3664      <button
3665        class="header-actions__action button-unstyled"
3666        on:click="/open"
3667        aria-haspopup="dialog"
3668        aria-label="Cart"
3669        aria-describedby="cart-bubble-text"
3670        data-testid="cart-drawer-trigger"
3671      >
3672        
3673  <cart-icon
3674    class="header-actions__cart-icon"
3675    data-testid="cart-icon"
3676  >
3677    <span class="hidden">
3678      Cart
3679    </span>
3680
3681    <span
3682      class="svg-wrapper "
3683      aria-hidden="true"
3684    >
3685      <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>
3686
3687    </span>
3688
3689    <div
3690  ref="cartBubble"
3691  class="cart-bubble visually-hidden"
3692  
3693  
3694    data-maintain-ratio
3695  
3696>
3697  <span class="cart-bubble__background"></span>
3698  <span
3699    ref="cartBubbleText"
3700    id="cart-bubble-text"
3701    class="cart-bubble__text"
3702    
3703      role="status"
3704    
3705  >
3706    <span class="visually-hidden">Total items in cart: 0
3707    </span>
3708    <span
3709      class="cart-bubble__text-count hidden"
3710      ref="cartBubbleCount"
3711      aria-hidden="true"
3712      data-testid="cart-bubble"
3713    >�0</span>
3714  </span>
3715</div>
3716
3717  </cart-icon>
3718
3719      </button>
3720
3721      <dialog
3722        ref="dialog"
3723        class="cart-drawer__dialog dialog-modal dialog-drawer color-scheme-1 cart-drawer--empty"
3724        data-testid="cart-drawer-dialog"
3725        aria-labelledby="cart-drawer-heading-empty"
3726        scroll-lock
3727        cart-summary-sticky="true"
3728      >
3729        <div
3730          class="cart-drawer__inner"
3731          data-hydration-key="cart-drawer-inner"
3732        >
3733          <cart-items-component
3734            class="cart-items-component"
3735            data-drawer
3736            data-section-id="bushnell-header"
3737          >
3738      <div class="cart-drawer__header">
3739        <button
3740          ref="closeButton"
3741          on:click="cart-drawer-component/close"
3742          class="button close-button cart-drawer__close-button button-unstyled"
3743          aria-label="Close dialog"
3744        >
3745          <span class="svg-wrapper"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
3746  <path d="M12 2L2 12" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
3747  <path d="M12 12L2 2" stroke="currentColor" stroke-width="var(--icon-stroke-width)" stroke-linecap="round" stroke-linejoin="round"/>
3748</svg>
3749</span>
3750        </button>
3751      </div>
3752
3753      <div
3754        class="cart-drawer__content bn-empty"
3755        aria-label="Cart"
3756      >
3757        <div class="bn-empty__inner">
3758          <div class="bn-empty__icon">
3759            <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>
3760          </div>
3761          <div class="bn-empty__title" id="cart-drawer-heading-empty">Your cart is empty</div>
3762          <p class="bn-empty__text">Nothing here yet — explore the gear trusted by 98.4% of PGA Tour pros.</p>
3763          <button
3764            type="button"
3765            on:click="cart-drawer-component/close"
3766            class="bn-empty__cta button-unstyled"
3767          >
3768            Continue shopping
3769          </button>
3770
3771          <div class="bn-empty__cats">
3772            <div class="bn-empty__eyebrow">Shop by category</div>
3773            <div class="bn-empty__grid">
3774              <a href="/collections/golf-rangefinders" class="bn-empty__tile">
3775                <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>
3776                <span>Rangefinders</span>
3777              </a>
3778              <a href="/collections/launch-monitors" class="bn-empty__tile">
3779                <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>
3780                <span>Launch Monitors</span>
3781              </a>
3782              <a href="/collections/golf-gps" class="bn-empty__tile">
3783                <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>
3784                <span>GPS</span>
3785              </a>
3786              <a href="/collections/accessories" class="bn-empty__tile">
3787                <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>
3788                <span>Accessories</span>
3789              </a>
3790            </div>
3791          </div>
3792        </div>
3793      </div>
3794    �</cart-items-component>
3795        </div>
3796      </dialog>
3797    </cart-drawer-component>
3798  
3799</header-actions>
3800
3801
3802
3803      </div>
3804    </div>
3805  </div><div class="mega-menu-dropdown" data-mega-panel="rangefinders" hidden>
3806        <div class="container"><div class="mega-menu-grid">
3807            <div class="mega-menu-columns"></div><div class="mega-menu-featured-wrap"><div class="mega-menu-featured"
3808                    style="text-align:center;padding:20px 20px 20px 20px;"
3809                    >
3810                    <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">
3811                        <a href="/products/pro-x3-link">
3812                          <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">
3813                        </a>
3814                      </div><div class="mega-menu-featured-head">
3815                      <div class="mega-menu-featured-name"><a href="/products/pro-x3-link">Pro X3+LINK</a></div>
3816                      <div class="mega-menu-featured-price">$599.99</div>
3817                    </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">
3818                        View details
3819                        <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>
3820                      </a></div><div class="mega-menu-featured"
3821                    style="text-align:center;padding:20px 20px 20px 20px;"
3822                    >
3823                    <a class="mega-menu-featured-link" href="/products/tour
3823-hybrid" aria-label="View Tour Hybrid"></a><div class="mega-menu-featured-img">
3824                        <a href="/products/tour-hybrid">
3825                          <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">
3826                        </a>
3827                      </div><div class="mega-menu-featured-head">
3828                      <div class="mega-menu-featured-name"><a href="/products/tour-hybrid">Tour Hybrid</a></div>
3829                      <div class="mega-menu-featured-price">$499.99</div>
3830                    </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">
3831                        View details
3832                        <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>
3833                      </a></div><div class="mega-menu-featured"
3834                    style="text-align:center;padding:20px 20px 20px 20px;"
3835                    >
3836                    <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">
3837                        <a href="/products/tour-v7-shift">
3838                          <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">
3839                        </a>
3840                      </div><div class="mega-menu-featured-head">
3841                      <div class="mega-menu-featured-name"><a href="/products/tour-v7-shift">Tour V7 Shift</a></div>
3842                      <div class="mega-menu-featured-price">$399.99</div>
3843                    </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">
3844                        View details
3845                        <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>
3846                      </a></div><div class="mega-menu-featured"
3847                    style="text-align:center;padding:20px 20px 20px 20px;"
3848                    >
3849                    <a class="mega-menu-featured-link" href="/products/a1-slope" aria-label="View A1-Slope"></a><div class="mega-menu-featured-img">
3850                        <a href="/products/a1-slope">
3851                          <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">
3852                        </a>
3853                      </div><div class="mega-menu-featured-head">
3854                      <div class="mega-menu-featured-name"><a href="/products/a1-slope">A1-Slope</a></div>
3855                      <div class="mega-menu-featured-price">$299.99</div>
3856                    </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">
3857                        View details
3858                        <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>
3859                      </a></div></div></div><div class="mega-menu-footer"><div class="mega-menu-promo">
3860                  Trusted by 98.4% of PGA Tour pros.
3861                </div><a href="/collections/golf-rangefinders" class="mega-menu-shop-all">
3862                  SHOP ALL RANGEFINDERS
3863                  <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>
3864                </a></div></div>
3865      </div><div class="mega-menu-dropdown" data-mega-panel="launch-monitors" hidden>
3866        <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">
3867                      <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">
3868                    </span><span class="mega-menu-compare-head">
3869                    <span class="mega-menu-compare-name">Launch Pro</span>
3870                    <span class="mega-menu-compare-price">$2,999.99</span>
3871                  </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>
3872                  <span class="mega-menu-compare-view">
3873                    View details
3874                    <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>
3875                  </span>
3876                </a><a class="mega-menu-compare-card" href="/products/lpi-personal-launch-monitor" ><span class="mega-menu-compare-img">
3877                      <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">
3878                    </span><span class="mega-menu-compare-head">
3879                    <span class="mega-menu-compare-name">Launch Pro Indoor</span>
3880                    <span class="mega-menu-compare-price">$1,999.99</span>
3881                  </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>
3882                  <span class="mega-menu-compare-view">
3883                    View details
3884                    <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>
3885                  </span>
3886                </a></div><div class="mega-menu-footer"><span></span><a href="/collections/launch-monitors" class="mega-menu-shop-all">
3887                  SHOP ALL LAUNCH MONITORS
3888                  <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>
3889                </a></div></div>
3890      </div><div class="mega-menu-dropdown" data-mega-panel="SIMULATOR" hidden>
3891        <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">
3892                      <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">
3893                    </span><span class="mega-menu-compare-head">
3894                    <span class="mega-menu-compare-name">Launch Pro Simulator Bundle</span>
3895                    <span class="mega-menu-compare-price">$6,499.99</span>
3896                  </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>
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><a class="mega-menu-compare-card" href="/products/launch-pro-i-simulator-bundle" ><span class="mega-menu-compare-img">
3902                      <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">
3903                    </span><span class="mega-menu-compare-head">
3904                    <span class="mega-menu-compare-name">Launch Pro i Simulator Bundle</span>
3905                    <span class="mega-menu-compare-price">$5,499.99</span>
3906                  </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>
3907                  <span class="mega-menu-compare-view">
3908                    View details
3909                    <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>
3910                  </span>
3911                </a></div><div class="mega-menu-footer"><div class="mega-menu-promo">
3912                  Your home course, open 365 days a year.
3913                </div><a href="/collections/golf-simulators" class="mega-menu-shop-all">
3914                  SHOP ALL SIMULATORS
3915                  <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>
3916                </a></div></div>
3917      </div><div class="mega-menu-dropdown" data-mega-panel="speakers" hidden>
3918        <div class="container"><div class="mega-menu-grid">
3919            <div class="mega-menu-columns"></div><div class="mega-menu-featured-wrap"><div class="mega-menu-featured"
3920                    style="text-align:center;padding:20px 20px 20px 20px;"
3921                    >
3922                    <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">
3923                        <a href="/products/wingman-hd">
3924                          <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">
3925                        </a>
3926                      </div><div class="mega-menu-featured-head">
3927                      <div class="mega-menu-featured-name"><a href="/products/wingman-hd">Wingman HD</a></div>
3928                      <div class="mega-menu-featured-price">$249.99</div>
3929                    </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">
3930                        View details
3931                        <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>
3932                      </a></div><div class="mega-menu-featured"
3933                    style="text-align:center;padding:20px 20px 20px 20px;"
3934                    >
3935                    <a class="mega-menu-featured-link" href="/products/wingman-view" aria-label="View Wingman View"></a><div class="mega-menu-featured-img">
3936                        <a href="/products/wingman-view">
3937                          <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">
3938                        </a>
3939                      </div><div class="mega-menu-featured-head">
3940                      <div class="mega-menu-featured-name"><a href="/products/wingman-view">Wingman View</a></div>
3941                      <div class="mega-menu-featured-price">$199.99</div>
3942                    </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">
3943                        View details
3944                        <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>
3945                      </a></div><div class="mega-menu-featured"
3946                    style="text-align:center;padding:20px 20px 20px 20px;"
3947                    >
3948                    <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">
3949                        <a href="/products/wingman-2-gps-speaker">
3950                          <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">
3951                        </a>
3952                      </div><div class="mega-menu-featured-head">
3953                      <div class="mega-menu-featured-name"><a href="/products/wingman-2-gps-speaker">Wingman 2</a></div>
3954                      <div class="mega-menu-featured-price">$169.99</div>
3955                    </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">
3956                        View details
3957                        <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>
3958                      </a></div><div class="mega-menu-featured"
3959                    style="text-align:center;padding:20px 20px 20px 20px;"
3960                    >
3961                    <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">
3962                        <a href="/products/wingman-mini-gps-speaker">
3963                          <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">
3964                        </a>
3965                      </div><div class="mega-menu-featured-head">
3966                      <div class="mega-menu-featured-name"><a href="/products/wingman-mini-gps-speaker">Wingman Mini</a></div>
3967                      <div class="mega-menu-featured-price">$109.99</div>
3968                    </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">
3969                        View details
3970                        <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>
3971                      </a></div></div></div><div class="mega-menu-footer"><div class="mega-menu-promo">
3972                  Premium Audio for Every Adventure.
3973                </div><a href="/collections/golf-gps-speakers" class="mega-menu-shop-all">
3974                  SHOP ALL SPEAKERS
3975                  <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>
3976                </a></div></div>
3977      </div><div class="mega-menu-dropdown" data-mega-panel="gps" hidden>
3978        <div class="container"><div class="mega-menu-grid">
3979            <div class="mega-menu-columns"></div><div class="mega-menu-featured-wrap"><div class="mega-menu-featured"
3980                    style="text-align:center;padding:20px 20px 20px 20px;"
3981                    >
3982                    <a class="mega-menu-featured-link" href="/products/ion-elite" aria-label="View iON Elite"></a><div class="mega-menu-featured-img">
3983                        <a href="/products/ion-elite">
3984                          <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">
3985                        </a>
3986                      </div><div class="mega-menu-featured-head">
3987                      <div class="mega-menu-featured-name"><a href="/products/ion-elite">iON Elite</a></div>
3988                      <div class="mega-menu-featured-price">$219.99</div>
3989                    </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">
3990                        View details
3991                        <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>
3992                      </a></div><div class="mega-menu-featured"
3993                    style="text-align:center;padding:20px 20px 20px 20px;"
3994                    >
3995                    <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">
3996                        <a href="/products/phantom-3-slope-gps">
3997                          <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">
3998                        </a>
3999                      </div><div class="mega-menu-featured-head">
4000                      <div class="mega-menu-featured-name"><a href="/products/phantom-3-slope-gps">Phantom 3</a></div>
4001                      <div class="mega-menu-featured-price">$169.99</div>
4002                    </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">
4003                        View details
4004                        <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>
4005                      </a></div></div></div><div class="mega-menu-footer"><div class="mega-menu-promo">
4006                  Find the Perfect GPS for Every Round.
4007                </div><a href="/collections/golf-gps" class="mega-menu-shop-all">
4008                  SHOP ALL GPS
4009                  <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>
4010                </a></div></div>
4011      </div><div class="mega-menu-dropdown" data-mega-panel="accessories" hidden>
4012        <div class="container"><div class="mega-menu-grid">
4013            <div class="mega-menu-columns"><div class="mega-menu-col"
4014                    style="text-align:left;padding:0px 0px 0px 0px;"
4015                    >
4016                    <div class="mega-menu-col-heading">Shop</div><ul class="mega-menu-col-links"><li
4017                            style="text-align:left;padding:0px 0px 0px 0px;"
4018                            >
4019                            <a href="/collections/accessories"><span class="mega-link-text">
4020                                <span class="mega-link-name">
4021                                  Cases & Mounts�</span><span class="mega-link-sub">Protect and secure your gear.</span></span>
4022                            </a>
4023                          </li><li
4024                            style="text-align:left;padding:0px 0px 0px 0px;"
4025                            >
4026                            <a href="/collections/replacement-parts"><span class="mega-link-text">
4027                                <span class="mega-link-name">
4028                                  Replacement Parts�</span><span class="mega-link-sub">Genuine parts + Extend Protection Plan</span></span>
4029                            </a>
4030                          </li></ul>
4031                  </div><div class="mega-menu-col"
4032                    style="text-align:left;padding:0px 0px 0px 0px;"
4033                    >
4034                    <div class="mega-menu-col-heading">Resources</div><ul class="mega-menu-col-links"><li
4035                            style="text-align:left;padding:0px 0px 0px 0px;"
4036                            >
4037                            <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">
4038                                <span class="mega-link-name">
4039                                  Greenbooks�</span><span class="mega-link-sub">The #1 course guide, used by tour caddies.</span></span>
4040                            </a>
4041                          </li></ul>
4042                  </div></div></div><div class="mega-menu-footer"><div class="mega-menu-promo">
4043                  Genuine Bushnell parts and guides
4044                </div><a href="/collections/accessories" class="mega-menu-shop-all">
4045                  SHOP ALL ACCESSORIES
4046                  <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>
4047                </a></div></div>
4048      </div>
4049</nav><div class="mobile-overlay" data-drawer-overlay></div>
4050<div class="mobile-drawer" data-mobile-drawer>
4051  <div class="mobile-drawer-header">
4052    <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>
4053    <button class="mobile-drawer-close" aria-label="Close menu" data-drawer-close>
4054      <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>
4055    </button>
4056  </div>
4057  <div class="mobile-drawer-search">
4058    <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>
4059    <form action="/search" method="get">
4060      <input type="text" name="q" placeholder="Search products..." autocomplete="off" aria-label="Search products">
4061    </form>
4062  </div>
4063  <div class="mobile-drawer-nav"><div class="mobile-accordion">
4064              <button class="mobile-accordion-trigger" data-accordion-trigger>
4065                <span>RANGEFINDERS</span>
4066                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"/></svg>
4067              </button>
4068              <div class="mobile-accordion-panel" hidden><a class="mobile-accordion-link" href="/products/pro-x3-link" >
4069                          <span class="mobile-accordion-link-row">
4070                            <span class="mobile-accordion-link-name">
4071                              Pro X3+LINK�<span class="mega-link-badge mega-link-badge--bestseller">Best Seller</span></span>
4072                            <span class="mobile-accordion-link-price">$599.99</span>
4073                          </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" >
4074                          <span class="mobile-accordion-link-row">
4075                            <span class="mobile-accordion-link-name">
4076                              Tour Hybrid�</span>
4077                            <span class="mobile-accordion-link-price">$499.99</span>
4078                          </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" >
4079                          <span class="mobile-accordion-link-row">
4080                            <span class="mobile-accordion-link-name">
4081                              Tour V7 Shift�<span class="mega-link-badge mega-link-badge--new">New</span></span>
4082                            <span class="mobile-accordion-link-price">$399.99</span>
4083                          </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" >
4084                          <span class="mobile-accordion-link-row">
4085                            <span class="mobile-accordion-link-name">
4086                              A1-Slope�</span>
4087                            <span class="mobile-accordion-link-price">$299.99</span>
4088                          </span><span class="mobile-accordion-link-sub">Precision and Slope gone ultra-compact.</span></a><a class="mobile-accordion-shopall" href="/collections/golf-rangefinders">
4089                    SHOP ALL RANGEFINDERS
4090                    <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>
4091                  </a></div>
4092            </div><div class="mobile-accordion">
4093              <button class="mobile-accordion-trigger" data-accordion-trigger>
4094                <span>LAUNCH MONITORS</span>
4095                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"/></svg>
4096              </button>
4097              <div class="mobile-accordion-panel" hidden><a class="mobile-accordion-link" href="/products/launch-pro">
4098                      <span class="mobile-accordion-link-row">
4099                        <span class="mobile-accordion-link-name">
4100                          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>
4101                      </span><span class="mobile-accordion-link-sub">Indoor + Outdoor, Club + Ball</span></a><a class="mobile-accordion-link" href="/products/lpi-personal-launch-monitor">
4102                      <span class="mobile-accordion-link-row">
4103                        <span class="mobile-accordion-link-name">
4104                          Launch Pro Indoor�</span><span class="mobile-accordion-link-price">$1,999.99</span>
4105                      </span><span class="mobile-accordion-link-sub">Indoor only, Club + Ball</span></a><a class="mobile-accordion-shopall" href="/collections/launch-monitors">
4106                    SHOP ALL LAUNCH MONITORS
4107                    <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>
4108                  </a></div>
4109            </div><div class="mobile-accordion">
4110              <button class="mobile-accordion-trigger" data-accordion-trigger>
4111                <span>SIMULATORS</span>
4112                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"/></svg>
4113              </button>
4114              <div class="mobile-accordion-panel" hidden><a class="mobile-accordion-link" href="/products/launch-pro-simulator-bundle">
4115                      <span class="mobile-accordion-link-row">
4116                        <span class="mobile-accordion-link-name">
4117                          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>
4118                      </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">
4119                      <span class="mobile-accordion-link-row">
4120                        <span class="mobile-accordion-link-name">
4121                          Launch Pro i Simulator Bundle�</span><span class="mobile-accordion-link-price">$5,499.99</span>
4122                      </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">
4123                    SHOP ALL SIMULATORS
4124                    <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>
4125                  </a></div>
4126            </div><div class="mobile-accordion">
4127              <button class="mobile-accordion-trigger" data-accordion-trigger>
4128                <span>Speakers</span>
4129                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"/></svg>
4130              </button>
4131              <div class="mobile-accordion-panel" hidden><a class="mobile-accordion-link" href="/products/wingman-hd" >
4132                          <span class="mobile-accordion-link-row">
4133                            <span class="mobile-accordion-link-name">
4134                              Wingman HD�<span class="mega-link-badge mega-link-badge--new">New</span></span>
4135                            <span class="mobile-accordion-link-price">$249.99</span>
4136                          </span><span class="mobile-accordion-link-sub">3.5″ HD touchscreen + 360° audio</span></a><a class="mobile-accordion-link" href="/products/wingman-view" >
4137                          <span class="mobile-accordion-link-row">
4138                            <span class="mobile-accordion-link-name">
4139                              Wingman View�</span>
4140                            <span class="mobile-accordion-link-price">$199.99</span>
4141                          </span><span class="mobile-accordion-link-sub">Visual + audible GPS · speaker</span></a><a class="mobile-accordion-link" href="/products/wingman-2-gps-speaker" >
4142                          <span class="mobile-accordion-link-row">
4143                            <span class="mobile-accordion-link-name">
4144                              Wingman 2 GPS Speaker�</span>
4145                            <span class="mobile-accordion-link-price">$169.99</span>
4146                          </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" >
4147                          <span class="mobile-accordion-link-row">
4148                            <span class="mobile-accordion-link-name">
4149                              Wingman Mini GPS Speaker�</span>
4150                            <span class="mobile-accordion-link-price">$109.99</span>
4151                          </span><span class="mobile-accordion-link-sub">Compact GPS speaker · walkers & riders</span></a><a class="mobile-accordion-shopall" href="/collections/golf-gps-speakers">
4152                    SHOP ALL SPEAKERS
4153                    <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>
4154                  </a></div>
4155            </div><div class="mobile-accordion">
4156              <button class="mobile-accordion-trigger" data-accordion-trigger>
4157                <span>GPS</span>
4158                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"/></svg>
4159              </button>
4160              <div class="mobile-accordion-panel" hidden><a class="mobile-accordion-link" href="/products/ion-elite" >
4161                          <span class="mobile-accordion-link-row">
4162                            <span class="mobile-accordion-link-name">
4163                              iON Elite�</span>
4164                            <span class="mobile-accordion-link-price">$219.99</span>
4165                          </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" >
4166                          <span class="mobile-accordion-link-row">
4167                            <span class="mobile-accordion-link-name">
4168                              Phantom 3 Slope GPS�</span>
4169                            <span class="mobile-accordion-link-price">$169.99</span>
4170                          </span><span class="mobile-accordion-link-sub">Slope touchscreen GPS · front/center/back</span></a><a class="mobile-accordion-shopall" href="/collections/golf-gps">
4171                    SHOP ALL GPS
4172                    <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>
4173                  </a></div>
4174            </div><div class="mobile-accordion">
4175              <button class="mobile-accordion-trigger" data-accordion-trigger>
4176                <span>ACCESSORIES</span>
4177                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="6 9 12 15 18 9"/></svg>
4178              </button>
4179              <div class="mobile-accordion-panel" hidden><div class="mobile-accordion-group">
4180                        <div class="mobile-accordion-heading">Shop</div><a class="mobile-accordion-link" href="/collections/accessories"><span class="mobile-accordion-link-text">
4181                                  <span class="mobile-accordion-link-row">
4182                                    <span class="mobile-accordion-link-name">
4183                                      Cases & Mounts�</span></span><span class="mobile-accordion-link-sub">Protect and secure your gear.</span></span>
4184                              </a><a class="mobile-accordion-link" href="/collections/replacement-parts"><span class="mobile-accordion-link-text">
4185                                  <span class="mobile-accordion-link-row">
4186                                    <span class="mobile-accordion-link-name">
4187                                      Replacement Parts�</span></span><span class="mobile-accordion-link-sub">Genuine parts + Extend Protection Plan</span></span>
4188                              </a></div><div class="mobile-accordion-group">
4189                        <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">
4190                                  <span class="mobile-accordion-link-row">
4191                                    <span class="mobile-accordion-link-name">
4192                                      Greenbooks�</span></span><span class="mobile-accordion-link-sub">The #1 course guide, used by tour caddies.</span></span>
4193                              </a></div><a class="mobile-accordion-shopall" href="/collections/accessories">
4194                    SHOP ALL ACCESSORIES
4195                    <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>
4196                  </a></div>
4197            </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>
4198  <div class="mobile-drawer-footer">
4199    FREE SHIPPING on orders over $99
4200  </div>
4201</div>
4202
4203<script src="//www.bushnellgolf.com/cdn/shop/t/127/assets/bushnell-header-user-menu.js?v=136142066710242377001790092425" defer></script>
4203
4204
4205
4206</div><div class="search-overlay-backdrop" data-search-backdrop></div>
4207  <div class="search-overlay" data-search-overlay>
4208    <div class="search-overlay-inner">
4209      <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>
4210      <form action="/search" method="get" style="flex:1;display:flex;">
4211        <input type="text" name="q" class="search-overlay-input" placeholder="Search rangefinders, GPS, launch monitors..." autocomplete="off">
4212        <input type="hidden" name="type" value="product">
4213      </form>
4214      <button class="search-overlay-close" data-search-close aria-label="Close search">
4215        <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>
4216      </button>
4217    </div>
4218  </div>
4219
4220  <main id="MainContent" role="main">
4221    <section id="shopify-section-template--28849658233016__main" class="shopify-section bushnell-about"><style>
4222  #shopify-section-template--28849658233016__main h1,
4223  #shopify-section-template--28849658233016__main h2,
4224  #shopify-section-template--28849658233016__main h3,
4225  #shopify-section-template--28849658233016__main h4 { font-family: 'Industry Bold', sans-serif; }
4226  #shopify-section-template--28849658233016__main p,
4227  #shopify-section-template--28849658233016__main span,
4228  #shopify-section-template--28849658233016__main a,
4229  #shopify-section-template--28849658233016__main li,
4230  #shopify-section-template--28849658233016__main div { font-family: 'Acumin Pro', sans-serif; }
4231
4232  .bab-wrap { background: #F7F3EE; }
4233  .bab-inner { max-width: 1200px; margin: 0 auto; padding: 0 40px; }
4234
4235  .bab-hero { background: #1E252B; background-image: radial-gradient(circle at 85% 10%, rgba(254,80,0,0.10), transparent 55%); padding: 64px 0 56px; }
4236  .bab-hero-stack { display: flex; flex-direction: column; gap: 18px; }
4237  .bab-eyebrow { font-size: 11px; font-weight: 500; letter-spacing: 2px; text-transform: uppercase; color: #FE5000; }
4238  .bab-h1 { margin: 0; font-size: 56px; line-height: 1.05; letter-spacing: 1px; text-transform: uppercase; color: #fff; max-width: 20ch; }
4239  .bab-h1 em { font-style: normal; color: #FE5000; }
4240  .bab-sub { margin: 0; font-size: 16px; line-height: 1.6; color: rgba(255,255,255,0.6); max-width: 62ch; }
4241
4242  .bab-stats { display: flex; flex-wrap: wrap; gap: 48px; margin-top: 6px; }
4243  .bab-stat-value { font-size: 28px; line-height: 1; font-weight: 700; letter-spacing: 0.5px; text-transform: uppercase; color: #FE5000; margin-bottom: 6px; }
4244  .bab-stat-label { font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; color: rgba(255,255,255,0.5); }
4245
4246  .bab-content { padding: 56px 0 80px; }
4247  .bab-rte { max-width: 900px; }
4248  .bab-rte > *:first-child { margin-top: 0; }
4249  .bab-rte p { margin: 0 0 20px; font-size: 16px; line-height: 1.75; color: #3A3F45; }
4250  .bab-rte h2 { margin: 40px 0 14px; font-size: 30px; line-height: 1.15; letter-spacing: 0.5px; text-transform: uppercase; color: #1E252B; }
4251  .bab-rte h3 { margin: 32px 0 12px; font-size: 20px; line-height: 1.2; letter-spacing: 0.5px; text-transform: uppercase; color: #1E252B; }
4252  .bab-rte strong { color: #1E252B; }
4253  .bab-rte a { color: #FE5000; text-decoration: none; }
4254  .bab-rte a:hover { text-decoration: underline; }
4255  .bab-rte ul, .bab-rte ol { margin: 0 0 20px; padding-left: 22px; display: flex; flex-direction: column; gap: 8px; font-size: 16px; line-height: 1.6; color: #3A3F45; }
4256  .bab-rte img { max-width: 100%; height: auto; border-radius: 10px; }
4257
4258  @media screen and (max-width: 989px) {
4259    .bab-inner { padding: 0 20px; }
4260    .bab-h1 { font-size: 42px; }
4261  }
4262  @media screen and (max-width: 749px) {
4263    .bab-hero { padding: 44px 0 40px; }
4264    .bab-h1 { font-size: 32px; }
4265    .bab-stats { gap: 28px; }
4266    .bab-content { padding: 40px 0 56px; }
4267    .bab-rte h2 { font-size: 24px; }
4268  }
4269</style>
4270
4271<div class="bab-wrap"><div class="bab-hero">
4272    <div class="bab-inner bab-hero-stack"><span class="bab-eyebrow">About · Bushnell Golf</span><h1 class="bab-h1">About <em>Bushnell Golf</em></h1><p class="bab-sub">Industry-leading sports optics for more than 65 years — and the #1 rangefinder in golf.</p><div class="bab-stats"><div class="bab-stat" >
4273                <div class="bab-stat-value">65+ Years</div><div class="bab-stat-label">
4273Sports Optics Leader</div></div><div class="bab-stat" >
4274                <div class="bab-stat-value">#1</div><div class="bab-stat-label">Rangefinder in Golf</div></div><div class="bab-stat" >
4275                <div class="bab-stat-value">Award-Winning</div><div class="bab-stat-label">Design & Performance</div></div></div></div>
4276  </div>
4277
4278  <div class="bab-content">
4279    <div class="bab-inner">
4280      <div class="bab-rte"><div class="about">
4281<div class="about-heading">
4282<div class="PageHeader">
4283<h2>About Bushnell Golf</h2>
4284</div>
4285</div>
4286<div class="about-content">
4287<p>Bushnell has been the industry leader in high-performance sports optics for more than 65 years. Our guiding principle is to provide the highest quality, most reliable and affordable sports optics products on the market. And, our commitment to outstanding customer service and strong retailer partnerships is unmatched.</p>
4288<p>Bushnell boasts leading market share in all of the sports optics categories, and our products have consistently won design and performance awards. Our product lines enhance the enjoyment of every outdoor pursuit from golf, spectator sports, nature study, hunting, fishing and birding to stargazing. Indoors, binoculars bring the audience closer to the action in fast-moving sports or the fine arts at theaters and concerts.</p>
4289<p>With a constant emphasis on product innovation, Bushnell Golf developed the first combo laser/GPS device with the Hybrid, and in 2017 launched the revolutionary Pro X2 which features Slope-Switch Technology, Dual Display Technology, PinSeeker with JOLT Technology and 2nd Generation E.S.P. (Extreme. Speed. Precision.) to make it the world's most technologically advanced laser rangefinder. It is this constant dedication to innovation that has made Bushnell Golf the #1 Rangefinder in Golf.</p>
4290<span class="subheader">VISTA OUTDOOR LLC</span>
4291<p><a href="http://www.vistaoutdoor.com/" target="_blank">Vista Outdoor</a> is a leading global designer, manufacturer and marketer of consumer products in the growing outdoor sports and recreation markets. The company operates in two segments, Shooting Sports and Outdoor Products, and has more than 30 well-recognized brands that provide consumers with a range of performance-driven, high-quality and innovative products in the ammunition, firearms and outdoor accessories categories.</p>
4292<p>Vista Outdoor products are sold at leading retailers and distributors across North America and worldwide. Vista Outdoor is headquartered in Utah and has manufacturing operations and facilities in 10 U.S. States, Puerto Rico, Mexico and Canada along with international sales and sourcing operations in Canada, Europe, Australia, New Zealand and Asia.</p>
4293</div>
4294</div>�</div>
4295    </div>
4296  </div>
4297</div>
4298
4299
4300</section>
4301  </main><div id="shopify-section-bushnell-footer" class="shopify-section"><link href="//www.bushnellgolf.com/cdn/shop/t/127/assets/bushnell-footer-global.css?v=29849340986093782691790092425" rel="stylesheet" type="text/css" media="all" />�<style>
4302  /* ── Typography ── */
4303  #shopify-section-bushnell-footer h1, #shopify-section-bushnell-footer h2, #shopify-section-bushnell-footer h3,
4304  #shopify-section-bushnell-footer h4, #shopify-section-bushnell-footer h5, #shopify-section-bushnell-footer h6 {
4305    font-family: 'Industry Bold', sans-serif;
4306  }
4307  #shopify-section-bushnell-footer p, #shopify-section-bushnell-footer li,
4308  #shopify-section-bushnell-footer span, #shopify-section-bushnell-footer a {
4309    font-family: 'Acumin Pro Medium', sans-serif;
4310  }
4311
4312  /* ── Root ── */
4313  #shopify-section-bushnell-footer .bfooter {
4314    background-color: #1e252b;
4315  }
4316
4317  /* ── Newsletter ── */
4318  #shopify-section-bushnell-footer .bfooter__nl-heading { font-family: 'Industry Bold', sans-serif; }
4319  #shopify-section-bushnell-footer .bfooter__nl-btn     { font-family: 'Industry Bold', sans-serif; }
4320
4321  /* ── Logo text fallback ── */
4322  #shopify-section-bushnell-footer .bfooter__logo { font-family: 'Industry Bold', sans-serif; }
4323
4324  /* ── Main section padding (desktop) ── */
4325  #shopify-section-bushnell-footer .bfooter__main {
4326    padding-top:    64px;
4327    padding-bottom: 56px;
4328  }
4329
4330  /* ── Desktop grid ── */
4331  #shopify-section-bushnell-footer .bfooter__grid {
4332    grid-template-columns: 1.6fr 1fr 1fr 1fr;
4333    gap: 40px;
4334  }
4335
4336  /* ── Logo image width (desktop) ── */
4337  #shopify-section-bushnell-footer .bfooter__logo-img { width: 320px; }
4338
4339  /* ── Tagline ── */
4340  #shopify-section-bushnell-footer .bfooter__tagline {
4341    font-size: 14px;
4342    color: #8899aa;
4343  }
4344
4345  /* ── Column headings ── */
4346  #shopify-section-bushnell-footer .bfooter__col-heading {
4347    font-family: 'Industry Bold', sans-serif;
4348    color:          #fe5000;
4349    font-size:      11px;
4350    border-bottom-color: #2d3a44;
4351  }
4352
4353  /* ── Column links ── */
4354  #shopify-section-bushnell-footer .bfooter__col-list a {
4355    color:     #8899aa;
4356    font-size: 18px;
4357  }
4358  #shopify-section-bushnell-footer .bfooter__col-list a:hover { color: #ffffff; }
4359
4360  /* ── Bottom bar ── */
4361  #shopify-section-bushnell-footer .bfooter__bottom {
4362    border-top-color: #2d3a44;
4363    padding-top:    20px;
4364    padding-bottom: 20px;
4365  }
4366  #shopify-section-bushnell-footer .bfooter__bottom-inner {
4367    flex-direction:  column;
4368    align-items:     center;
4369    justify-content: flex-start;
4370  }
4371  #shopify-section-bushnell-footer .bfooter__copyright {
4372    color:     #dfdfdf;
4373    font-size: 16px;
4374  }
4375  #shopify-section-bushnell-footer .bfooter__policy-list a {
4376    color:     #dfdfdf;
4377    font-size: 16px;
4378  }
4379  #shopify-section-bushnell-footer .bfooter__policy-list a:hover { color: #aabbcc; }
4380  #shopify-section-bushnell-footer .bfooter__policy-list li + li::before { background: #2d3a44; }
4381  #shopify-section-bushnell-footer .bfooter__copyright,
4382  #shopify-section-bushnell-footer .bfooter__policy-list { text-align: center; }
4383
4384  /* ── Tablet ── */
4385  @media screen and (min-width: 750px) and (max-width: 989px) {
4386    #shopify-section-bushnell-footer .bfooter__main {
4387      padding-top:    48px;
4388      padding-bottom: 44px;
4389    }
4390    #shopify-section-bushnell-footer .bfooter__grid {
4391      grid-template-columns: 1fr 1fr;
4392      gap: 32px;
4393    }
4394    #shopify-section-bushnell-footer .bfooter__logo-img { width: 140px; }
4395  }
4396
4397  /* ── Mobile ── */
4398  @media screen and (max-width: 749px) {
4399    #shopify-section-bushnell-footer .bfooter__main {
4400      padding-top:    40px;
4401      padding-bottom: 36px;
4402    }
4403    #shopify-section-bushnell-footer .bfooter__grid {
4404      grid-template-columns: 1fr;
4405      gap: 28px;
4406    }
4407    #shopify-section-bushnell-footer .bfooter__logo-img { width: 200px; }
4408    #shopify-section-bushnell-footer .bfooter__brand,
4409    #shopify-section-bushnell-footer .bfooter__col    { text-align: center; }
4410    #shopify-section-bushnell-footer .bfooter__social { justify-content: center; }
4411  }
4412
4413  /* ── Desktop alignment (min-width guard prevents overriding mobile/tablet) ── */
4414  @media screen and (min-width: 990px) {
4415    #shopify-section-bushnell-footer .bfooter__brand,
4416    #shopify-section-bushnell-footer .bfooter__col    { text-align: left; }
4417    #shopify-section-bushnell-footer .bfooter__social { justify-content: flex-start; }
4418  }
4419
4420  /* ── Tablet alignment ── */
4421  @media screen and (min-width: 750px) and (max-width: 989px) {
4422    #shopify-section-bushnell-footer .bfooter__brand,
4423    #shopify-section-bushnell-footer .bfooter__col    { text-align: center; }
4424    #shopify-section-bushnell-footer .bfooter__social { justify-content: center; }
4425  }
4426
4427  /* ── Per-block: Social & Newsletter column ── */#bfooter-snl-social_newsletter_ntQEeN .bfooter__social-link {
4428    width:  46px;
4429    height: 46px;
4430    border-color: #2d3a44;
4431    color:        #8899aa;
4432  }
4433  #bfooter-snl-social_newsletter_ntQEeN .bfooter__social-link svg {
4434    width:  24px;
4435    height: 24px;
4436  }
4437  #bfooter-snl-social_newsletter_ntQEeN .bfooter__social-link:hover {
4438    border-color:     #fe5000;
4439    color:            #fe5000;
4440    background-color: #1a1f24;
4441  }
4442  #bfooter-snl-social_newsletter_ntQEeN .bfooter__col-nl-label {
4443    color:     #7a8ea0;
4444    font-size: 16px;
4445  }
4446  #bfooter-snl-social_newsletter_ntQEeN .bfooter__col-nl-input {
4447    background:   #262f37;
4448    border-color: #2d3a44;
4449    color:        #ffffff;
4450    font-size:    14px;
4451  }
4452  #bfooter-snl-social_newsletter_ntQEeN .bfooter__col-nl-btn {
4453    background: #fe5000;
4454    color:      #ffffff;
4455    font-size:  14px;
4456  }
4457  #bfooter-snl-social_newsletter_ntQEeN .bfooter__col-nl-btn:hover {
4458    background: #d94500;
4459  }
4460  #bfooter-snl-social_newsletter_ntQEeN .bfooter__kl-btn {
4461    background-color: #fe5000;
4462    color: #ffffff;
4463    border: 0px solid #fe5000;
4464    border-radius: 4px;
4465    font-size: 14px;
4466    font-weight: 700;
4467    text-transform: uppercase;
4468    padding: 12px 24px;
4469    width: auto;
4470  }
4471  #bfooter-snl-social_newsletter_ntQEeN .bfooter__kl-btn:hover {
4472    background-color: #d94500;
4473    color: #ffffff;
4474  }/* Klaviyo popup trigger button — shared structural rules */
4475  #shopify-section-bushnell-footer .bfooter__kl-btn {
4476    display: inline-block;
4477    cursor: pointer;
4478    line-height: 1;
4479    letter-spacing: 0.05em;
4480    text-decoration: none;
4481    transition: background-color 0.2s ease, color 0.2s ease;
4482  }
4483</style>
4484
4485<footer class="bfooter" id="footer" role="contentinfo"><div class="bfooter__main">
4486    <div class="bfooter__container">
4487      <div class="bfooter__grid"><div class="bfooter__brand"><a href="/" class="bfooter__logo-img-link" aria-label="Bushnell Golf home">
4488              <img
4489                src="//www.bushnellgolf.com/cdn/shop/files/Bushnell_logo_In_Golf.png?v=1780518942&width=320"
4490                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"
4491                alt="Bushnell Golf"
4492                class="bfooter__logo-img"
4493                width="320"
4494                height="290"
4495                loading="lazy"
4496              >
4497            </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="/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">
4498                      <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>
4499                    </a><a href="https://www.instagram.com/bushnellgolf/" class="bfooter__social-link" aria-label="Instagram" target="_blank" rel="noopener noreferrer">
4500                      <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>
4501                    </a><a href="https://www.youtube.com/user/BushnellGolf/featured" class="bfooter__social-link" aria-label="YouTube" target="_blank" rel="noopener noreferrer">
4502                      <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>
4503                    </a></nav>
4503<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>
4504    </div>
4505  </div>
4506
4507  <div class="bfooter__bottom">
4508    <div class="bfooter__container">
4509      <div class="bfooter__bottom-inner">
4510
4511        <p class="bfooter__copyright">
4512          &copy; 2026 Bushnell Golf. All Rights Reserved.
4513        </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>
4514    </div>
4515  </div>
4516
4517</footer>
4518
4519<script>
4520  document.querySelectorAll('.bfooter__kl-btn[data-kl-form]').forEach(function(btn) {
4521    btn.addEventListener('click', function() {
4522      window._klOnsite = window._klOnsite || [];
4523      window._klOnsite.push(['openForm', btn.getAttribute('data-kl-form')]);
4524    });
4525  });
4526</script>
4526
4527
4528
4529</div>
4529<script>window.BN_GP_PCT = 0;</script>
4529<script src="//www.bushnellgolf.com/cdn/shop/t/127/assets/bushnell.js?v=104067278944737574051790092425" defer></script>
4529
4530  
4530<script src="//www.bushnellgolf.com/cdn/shop/t/127/assets/bushnell-buy-now-patch.js?v=119937881875179874721790092425" defer></script>
4530
4531  
4531<script src="//www.bushnellgolf.com/cdn/shop/t/127/assets/bushnell-cro-patch.js?v=107937624809619826151790092425" defer></script>
4531
4532  
4532<script src="//www.bushnellgolf.com/cdn/shop/t/127/assets/bushnell-fitcheck.js?v=163253238342203939681790092425" defer></script>
4532<!-- === Bushnell Golf Body Scripts === --><!-- VenoBox lightbox -->
4532<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/venobox.min.js" defer></script>
4532
4533<script src="//www.bushnellgolf.com/cdn/shop/t/127/assets/venobox-modal.js?v=133750148818771280501790092426" defer></script>
4533<!-- AddShoppers sharing/referral pixel -->
4533<script src="//www.bushnellgolf.com/cdn/shop/t/127/assets/addshoppers-pixel.js?v=119463310293073622541790092426" defer></script>
4533<!-- AudioHook visitor ID + IP tag -->
4533<script src="//www.bushnellgolf.com/cdn/shop/t/127/assets/audiohook-img-tag.js?v=174756476640014750461790092425" defer></script>
4533<!-- IE browser detection (adds ie-browser class to <body>) -->
4533<script src="//www.bushnellgolf.com/cdn/shop/t/127/assets/ie-browser-detect.js?v=90317604072761044421790092426" defer></script>
4533<!-- Geo "Visiting from Europe?" popup --><link href="//www.bushnellgolf.com/cdn/shop/t/127/assets/country-popup.css?v=103088157342459723301790092426" rel="stylesheet" type="text/css" media="all" />
4534
4535<div class="popup-overlay" id="popup-overlay" aria-hidden="true"></div>
4536
4537<div
4538  class="country-popup"
4539  id="pwraper"
4540  role="dialog"
4541  aria-modal="true"
4542  aria-labelledby="popup-messege-head"
4543  aria-describedby="popup-messege-body"
4544>
4545  <button class="country-popup__close" id="popup-close" type="button" aria-label="Close">
4546    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="20" height="20" stroke-linecap="round">
4547      <line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/>
4548    </svg>
4549  </button>
4550
4551  <img id="country-flag" class="country-popup__flag" src="" alt="" width="72" height="48" loading="lazy">
4552
4553  <h2 class="country-popup__head" id="popup-messege-head"></h2>
4554  <p class="country-popup__body" id="popup-messege-body"></p>
4555
4556  <div class="country-popup__actions">
4557    <a id="site-link" class="country-popup__cta" href="#" target="_blank" rel="noopener">Visit Global Store</a>
4558    <button id="popup-stay" class="country-popup__stay" type="button">Stay on US site</button>
4559  </div>
4560</div>
4561
4562<script src="//www.bushnellgolf.com/cdn/shop/t/127/assets/country-popup.js?v=150122749862362957461790092425" defer></script>
4562
4563<div id="shopify-block-AVjlXQmhCU0dqeWtte__13851707123811236908" class="shopify-block shopify-app-block">
4564<script>
4565  var Needle = window.Needle || {};
4566  Object.defineProperty(Needle, 'scheme', {
4567    get: function() { return 'https'; },
4568    set: function() {},
4569    configurable: false
4570  });
4571  window.Needle = Needle;
4572</script>
vendor: 1 bytes, line 4572
4572
4573<script
4574  async
4575  defer
4576  src="https://bushnell.needle.com/needle_service.js?ver=1"
4577></script>
4577
4578
4579<script>
4580(function() {
4581  var syncAttempts = 0;
4582  var MAX_ATTEMPTS = 30;
4583
4584  function isNeedleReady() {
4585    return typeof Needle !== 'undefined' && Needle.np;
4586  }
4587
4588  function getNeedleAttributes() {
4589    return {
4590      '_needlepin': Needle.np,
4591      '_needle_service': Needle.service,
4592      '_needle_version': Needle.version,
4593      '_needle_nps': Needle.nps || ''
4594    };
4595  }
4596
4597  function isCartModifyUrl(url) {
4598    return url && (url.includes('/cart/add') || url.includes('/cart/change'));
4599  }
4600
4601  // Returns true on a 2xx response so callers can decide whether to retry.
4602  function syncToCartSync() {
4603    if (!isNeedleReady()) return false;
4604    var xhr = new XMLHttpRequest();
4605    xhr.open('POST', '/cart/update.js', false);
4606    xhr.setRequestHeader('Content-Type', 'application/json');
4607    xhr.send(JSON.stringify({ attributes: getNeedleAttributes() }));
4608    return xhr.status >= 200 && xhr.status < 300;
4609  }
4610
4611  function syncNeedlepinToCart() {
4612    syncAttempts++;
4613    if (isNeedleReady()) {
4614      fetch('/cart/update.js', {
4615        method: 'POST',
4616        headers: { 'Content-Type': 'application/json' },
4617        body: JSON.stringify({ attributes: getNeedleAttributes() })
4618      });
4619      return;
4620    }
4621    if (syncAttempts < MAX_ATTEMPTS) {
4622      setTimeout(syncNeedlepinToCart, 500);
4623    }
4624  }
4625
4626  setTimeout(syncNeedlepinToCart, 300);
4627
4628  // Selector covers:
4629  // - .shopify-payment-button container (keyboard tab + Enter lands here)
4630  // - button/div descendants for pointer/touch activation
4631  // - [data-shopify="payment-button"] for headless/custom themes
4632  var EXPRESS_BTN_SELECTOR = [
4633    '[name="buy_now"]',
4634    '.shopify-payment-button',
4635    '.shopify-payment-button button',
4636    '.shopify-payment-button__button',
4637    '[data-shopify="payment-button"]',
4638    '[data-shopify="payment-button"] button',
4639    '.dynamic-checkout__content button',
4640    '.dynamic-checkout__content [role="button"]'
4641  ].join(', ');
4642
4643  // Dedup timestamp. Only updated on confirmed XHR success so a failed sync
4644  // does not block immediate retry on the next event.
4645  var lastExpressSyncAt = 0;
4646  function maybeSyncExpress(target) {
4647    if (!isNeedleReady()) return;
4648    if (!target || !target.closest(EXPRESS_BTN_SELECTOR)) return;
4649    var now = Date.now();
4650    if (now - lastExpressSyncAt < 500) return;
4651    if (syncToCartSync()) lastExpressSyncAt = Date.now();
4652  }
4653
4654  // mousedown fires before click for pointer devices (mouse, trackpad, stylus).
4655  document.addEventListener('mousedown', function(e) {
4656    maybeSyncExpress(e.target);
4657  }, true);
4658
4659  // For touch: touchstart/touchmove track whether the gesture is a scroll;
4660  // touchend fires the sync only on confirmed taps (no significant move).
4661  // All three use passive: true — we never call preventDefault().
4662  var _touchOnExpress = false;
4663  var _touchMoved = false;
4664  document.addEventListener('touchstart', function(e) {
4665    _touchMoved = false;
4666    _touchOnExpress = !!(e.target && e.target.closest(EXPRESS_BTN_SELECTOR));
4667  }, { capture: true, passive: true });
4668  document.addEventListener('touchmove', function() {
4669    _touchMoved = true;
4670  }, { capture: true, passive: true });
4671  document.addEventListener('touchend', function(e) {
4672    if (_touchOnExpress && !_touchMoved) maybeSyncExpress(e.target);
4673    _touchOnExpress = false;
4674    _touchMoved = false;
4675  }, { capture: true, passive: true });
4676
4677  var originalFetch = window.fetch;
4678  window.fetch = function(url) {
4679    var result = originalFetch.apply(this, arguments);
4680    if (typeof url === 'string' && isCartModifyUrl(url)) {
4681      result.then(function() { setTimeout(syncNeedlepinToCart, 100); });
4682    }
4683    return result;
4684  };
4685
4686  var originalXHROpen = XMLHttpRequest.prototype.open;
4687  XMLHttpRequest.prototype.open = function(method, url) {
4688    this._needleUrl = url;
4689    return originalXHROpen.apply(this, arguments);
4690  };
4691
4692  var originalXHRSend = XMLHttpRequest.prototype.send;
4693  XMLHttpRequest.prototype.send = function() {
4694    var xhr = this;
4695    if (isCartModifyUrl(xhr._needleUrl)) {
4696      xhr.addEventListener('load', function() { setTimeout(syncNeedlepinToCart, 100); });
4697    }
4698    return originalXHRSend.apply(this, arguments);
4699  };
4700
4701  // pagehide fires only on true page unload (navigate away, tab close),
4702  // not on tab switches or screen lock. keepalive lets the request survive
4703  // after the document is torn down.
4704  window.addEventListener('pagehide', function() {
4705    if (!isNeedleReady()) return;
4706    fetch('/cart/update.js', {
4707      method: 'POST',
4708      headers: { 'Content-Type': 'application/json' },
4709      body: JSON.stringify({ attributes: getNeedleAttributes() }),
4710      keepalive: true
4711    }).catch(function() {});
4712  });
4713
4714  document.addEventListener('submit', function(e) {
4715    var form = e.target;
4716    if (!form) return;
4717    var hasBuyNow = form.querySelector('[name="buy_now"]');
4718    var isCartAction = form.action && (form.action.includes('/cart') || form.action.includes('/cart/add'));
4719    if (hasBuyNow || isCartAction) {
4720      if (isNeedleReady()) {
4721        syncToCartSync();
4722      } else {
4723        setTimeout(syncNeedlepinToCart, 500);
4724      }
4725    }
4726  }, true);
4727
4728  document.addEventListener('click', function(e) {
4729    var addToCartBtn = e.target.closest('[name="add"], [data-add-to-cart], .add-to-cart, .product-form__submit');
4730    if (addToCartBtn) {
4731      setTimeout(syncNeedlepinToCart, 500);
4732      return;
4733    }
4734
4735    var checkoutLink = e.target.closest('a[href*="/checkout"], a[href*="/cart"]');
4736    if (checkoutLink && isNeedleReady()) {
4737      syncToCartSync();
4738      return;
4739    }
4740
4741    // Catches keyboard (Enter/Space) activation of express checkout buttons.
4742    // maybeSyncExpress dedupes if mousedown/touchend already fired 
4742within 500 ms.
4743    maybeSyncExpress(e.target);
4744  }, true);
4745})();
4746</script>
4746
4747
4748
4749
4750</div>
4750<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
4750
4751</body>
4752</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.