<!doctype html>
<!--[if lte IE 8]> <html class="ie-low no-js" lang="en"> <![endif]-->
<!--[if IE 9]> <html class="ie9 no-js" lang="en"> <![endif]-->
<!--[if (gt IE 9)|!(IE)]><!--> <html class="no-js html--index" lang="en"> <!--<![endif]--><head>
  
<script>
(function () {
  if (window.__cartFetchCoalescerInstalled || !window.fetch) return;
  window.__cartFetchCoalescerInstalled = true;

  var nativeFetch = window.fetch.bind(window);
  var TTL = 1000; // ms

  var inflight = null; // shared Promise<Response> for an in-flight GET /cart.js
  var cached = null;   // { at: number, response: Response } — response is never read directly

  var CART_JS_RE = /^\/(?:[a-z]{2}(?:-[a-z]{2})?\/)?cart\.js(?:$|\?)/i;
  var CART_MUTATION_RE = /^\/(?:[a-z]{2}(?:-[a-z]{2})?\/)?cart\/(?:add|change|update|clear)(?:\.js)?(?:$|\?)/i;

  function methodOf(input, init) {
    return String(
      (init && init.method) ||
      (input && typeof input === 'object' && input.method) ||
      'GET'
    ).toUpperCase();
  }

  function pathOf(input) {
    try {
      var raw = typeof input === 'string' ? input : (input && input.url) || '';
      var u = new URL(raw, window.location.origin);
      if (u.origin !== window.location.origin) return null;
      return u.pathname + u.search;
    } catch (e) {
      return null;
    }
  }

  window.fetch = function (input, init) {
    try {
      var method = methodOf(input, init);
      var path = pathOf(input);

      // Any cart mutation invalidates the cache so later reads are fresh.
      if (method !== 'GET' && path && CART_MUTATION_RE.test(path)) {
        cached = null;
        inflight = null;
        return nativeFetch(input, init);
      }

      if (method === 'GET' && path && CART_JS_RE.test(path)) {
        var now = Date.now();

        if (cached && (now - cached.at) < TTL) {
          return Promise.resolve(cached.response.clone());
        }

        if (inflight) {
          return inflight.then(function (res) { return res.clone(); });
        }

        inflight = nativeFetch(input, init).then(function (res) {
          if (res && res.ok) cached = { at: Date.now(), response: res.clone() };
          inflight = null;
          return res;
        }).catch(function (err) {
          inflight = null;
          throw err;
        });

        return inflight.then(function (res) { return res.clone(); });
      }
    } catch (e) {
      /* fall through to native fetch on any wrapper error */
    }

    return nativeFetch(input, init);
  };
})();
</script>

  <script>
window.dataLayer = window.dataLayer || [];
function gtag() {
  dataLayer.push(arguments);
}

// --- Default Consent States ---
const DENIED_CONSENT = {
  functionality_storage: "denied",
  personalization_storage: "denied",
  analytics_storage: "denied",
  ad_storage: "denied",
  security_storage: "granted",
  ad_user_data: "denied",
  ad_personalization: "denied",
};

const GRANTED_CONSENT = {
  functionality_storage: "granted",
  personalization_storage: "granted",
  analytics_storage: "granted",
  ad_storage: "granted",
  security_storage: "granted",
  ad_user_data: "granted",
  ad_personalization: "granted",
};

// --- Geo API ---
async function getUserLocation() {
  try {
    const response = await fetch("https://geo.pii.ai/geo");
    const data = await response.json();
    return {
      continent: data.location.continent.code,
      country: data.location.country.code,
      region: data.location.region.code,
      city: data.location.city,
      gpc : data.gpc
    };
  } catch (error) {
    console.error("Error getting location from internal API:", error);
    return null;
  }
}

// --- Cookie helper ---
async function getCookieValue(name) {
  const match = document.cookie.match(new RegExp("(^| )" + name + "=([^;]+)"));
  return match ? decodeURIComponent(match[2]) : null;
}

// --- Region-based rules ---
async function shouldEnableConsentByDefault(location) {
  if (!location) return false;

  const { country, region, continent } = location;

  // EU requires explicit consent
  if (continent === "EU") return false;

  if (country === "US" && gpc) return false;

  // Canada - Quebec requires explicit consent
  if (country === "CA" && region === "CA-QC") return false;

  // US - California requires explicit consent
  if (country === "US" && region === "US-CA") return false;

	// US - Washington, Nevada requires explicit consent  
  if (country === "US" && ["US-WA", "US-NV"].includes(region)) return false;

  // Default: implicit consent allowed
  return true;
}

// --- Consent Application ---
async function applyConsentSettings() {
  const location = await getUserLocation();
  if (!location) return false;

  const allowConsent = await shouldEnableConsentByDefault(location);

    // Everywhere else → region rules
    if (allowConsent) {
      gtag("consent", "default", GRANTED_CONSENT);
      gtag("set", "url_passthrough", true);
      gtag("set", "ads_data_redaction", false);
    } else {
      gtag("consent", "default", DENIED_CONSENT);
      gtag("set", "url_passthrough", false);
      gtag("set", "ads_data_redaction", true);
    }
}

// --- Bootstrap ---
(async function () {
  let consentSettings = DENIED_CONSENT;
  let consentFlag = false;

  // --- Check base consent cookie ---
  const consentCookie = await getCookieValue("consentGiven");
  if (consentCookie) {
    try {
      consentSettings = JSON.parse(consentCookie);
      consentFlag = true;
    } catch {
      //consentSettings = DENIED_CONSENT;
	  console.warn('Error while parse cookie')
    }
  }

  // --- Apply consent ---
  if (consentFlag) {
    await applyConsentSettings();
    gtag("consent", "update", consentSettings);
  } else {
    await applyConsentSettings();
  }

  // --- Advanced consent cookie ---
  const consentAdvance = await getCookieValue("consentAdvanceSetting");
  if (consentAdvance) {
    try {
      const consentAdvanceSetting = JSON.parse(consentAdvance);
      if (consentAdvanceSetting && typeof consentAdvanceSetting === "object") {
        Object.entries(consentAdvanceSetting).forEach(([key, value]) => {
          gtag("set", key, value);
        });
      } else {
        throw new Error("Invalid consent object");
      }
    } catch (e) {
      console.warn("Invalid consentAdvanceSetting cookie", e);
    }
  }

  // Expose flag globally
  window.consentFlag = consentFlag;
})();
</script>

  <script type="text/javascript" src="https://cdn.cookie.pii.ai/scripts/1/ws/61be7347-87d6-4b9b-b5f1-d2feab54ad7e/domain/15ee3aac-eff8-4c44-87cd-8411493eaa80/pieeyeBlocking-bulletproof.js" async></script>

  <link href="//www.bulletproof.com/cdn/shop/t/617/assets/pieeye-gpc.min.css?v=69768133246923216631776326502" rel="stylesheet" type="text/css" media="all" />

  <script type="text/javascript" src="https://pieeyegpc.pii.ai/1/dsrp/1b93a272-b019-4e92-acc3-0a5a8731fc18/gpc.min.js" async></script>

  
<script>
  window.Shopify = window.Shopify || {theme: {id: 164195139619, role: 'main' } };
  window._template = {
      directory: "",
      name: "index",
      suffix: ""
  };
  window.__productIdFromTemplate = null;
  window.__plpCollectionIdFromTemplate = null;
  window.igProductData = (function() {
    const data = {};return data;
  })();
</script><script type="module" blocking="render" fetchpriority="high" src="https://cdn.intelligems.io/esm/b3ce98de1c13/bundle.js" data-em-disable async></script><script>
/*  Rapid+JS v8.0.2 Released on 2024-03-13T20:07Z | (c) Yottaa, Inc. | https://www.yottaa.com/rapidjs-license */ var $yojscomp=$yojscomp||{};$yojscomp.scope={};$yojscomp.arrayIteratorImpl=function(d){var m=0;return function(){return m<d.length?{done:!1,value:d[m++]}:{done:!0}}};$yojscomp.arrayIterator=function(d){return{next:$yojscomp.arrayIteratorImpl(d)}};$yojscomp.makeIterator=function(d){var m='undefined'!=typeof Symbol&&Symbol.iterator&&d[Symbol.iterator];return m?m.call(d):$yojscomp.arrayIterator(d)}; $yojscomp.getGlobal=function(d){return'undefined'!=typeof window&&window===d?d:'undefined'!=typeof global&&null!=global?global:d};$yojscomp.global=$yojscomp.getGlobal(this);$yojscomp.ASSUME_ES5=!1;$yojscomp.ASSUME_NO_NATIVE_MAP=!1;$yojscomp.ASSUME_NO_NATIVE_SET=!1;$yojscomp.SIMPLE_FROUND_POLYFILL=!1;$yojscomp.defineProperty=$yojscomp.ASSUME_ES5||'function'==typeof Object.defineProperties?Object.defineProperty:function(d,m,n){d!=Array.prototype&&d!=Object.prototype&&(d[m]=n.value)}; $yojscomp.polyfill=function(d,m,n,r){if(m){n=$yojscomp.global;d=d.split('.');for(r=0;r<d.length-1;r++){var u=d[r];u in n||(n[u]={});n=n[u]}d=d[d.length-1];r=n[d];m=m(r);m!=r&&null!=m&&$yojscomp.defineProperty(n,d,{configurable:!0,writable:!0,value:m})}};$yojscomp.FORCE_POLYFILL_PROMISE=!1; $yojscomp.polyfill('Promise',function(d){function m(){this.batch_=null}function n(d){return d instanceof u?d:new u(function(m,n){m(d)})}if(d&&!$yojscomp.FORCE_POLYFILL_PROMISE)return d;m.prototype.asyncExecute=function(d){if(null==this.batch_){this.batch_=[];var m=this;this.asyncExecuteFunction(function(){m.executeBatch_()})}this.batch_.push(d)};var r=$yojscomp.global.setTimeout;m.prototype.asyncExecuteFunction=function(d){r(d,0)};m.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var d= this.batch_;this.batch_=[];for(var m=0;m<d.length;++m){var n=d[m];d[m]=null;try{n()}catch(la){this.asyncThrow_(la)}}}this.batch_=null};m.prototype.asyncThrow_=function(d){this.asyncExecuteFunction(function(){throw d;})};var u=function(d){this.state_=0;this.result_=void 0;this.onSettledCallbacks_=[];var m=this.createResolveAndReject_();try{d(m.resolve,m.reject)}catch(ka){m.reject(ka)}};u.prototype.createResolveAndReject_=function(){function d(d){return function(x){n||(n=!0,d.call(m,x))}}var m=this, n=!1;return{resolve:d(this.resolveTo_),reject:d(this.reject_)}};u.prototype.resolveTo_=function(d){if(d===this)this.reject_(new TypeError('A Promise cannot resolve to itself'));else if(d instanceof u)this.settleSameAsPromise_(d);else{a:switch(typeof d){case 'object':var m=null!=d;break a;case 'function':m=!0;break a;default:m=!1}m?this.resolveToNonPromiseObj_(d):this.fulfill_(d)}};u.prototype.resolveToNonPromiseObj_=function(d){var m=void 0;try{m=d.then}catch(ka){this.reject_(ka);return}'function'== typeof m?this.settleSameAsThenable_(m,d):this.fulfill_(d)};u.prototype.reject_=function(d){this.settle_(2,d)};u.prototype.fulfill_=function(d){this.settle_(1,d)};u.prototype.settle_=function(d,m){if(0!=this.state_)throw Error('Cannot settle('+d+', '+m+'): Promise already settled in state'+this.state_);this.state_=d;this.result_=m;this.executeOnSettledCallbacks_()};u.prototype.executeOnSettledCallbacks_=function(){if(null!=this.onSettledCallbacks_){for(var d=0;d<this.onSettledCallbacks_.length;++d)A.asyncExecute(this.onSettledCallbacks_[d]); this.onSettledCallbacks_=null}};var A=new m;u.prototype.settleSameAsPromise_=function(d){var m=this.createResolveAndReject_();d.callWhenSettled_(m.resolve,m.reject)};u.prototype.settleSameAsThenable_=function(d,m){var n=this.createResolveAndReject_();try{d.call(m,n.resolve,n.reject)}catch(la){n.reject(la)}};u.prototype.then=function(d,m){function n(d,m){return'function'==typeof d?function(m){try{r(d(m))}catch(sa){x(sa)}}:m}var r,x,A=new u(function(d,m){r=d;x=m});this.callWhenSettled_(n(d,r),n(m,x)); return A};u.prototype.catch=function(d){return this.then(void 0,d)};u.prototype.callWhenSettled_=function(d,m){function n(){switch(u.state_){case 1:d(u.result_);break;case 2:m(u.result_);break;default:throw Error('Unexpected state: '+u.state_);}}var u=this;null==this.onSettledCallbacks_?A.asyncExecute(n):this.onSettledCallbacks_.push(n)};u.resolve=n;u.reject=function(d){return new u(function(m,n){n(d)})};u.race=function(d){return new u(function(m,u){for(var r=$yojscomp.makeIterator(d),A=r.next();!A.done;A= r.next())n(A.value).callWhenSettled_(m,u)})};u.all=function(d){var m=$yojscomp.makeIterator(d),r=m.next();return r.done?n([]):new u(function(d,u){function A(m){return function(n){x[m]=n;ca--;0==ca&&d(x)}}var x=[],ca=0;do x.push(void 0),ca++,n(r.value).callWhenSettled_(A(x.length-1),u),r=m.next();while(!r.done)})};return u},'es6','es3');$yojscomp.SYMBOL_PREFIX='jscomp_symbol_';$yojscomp.initSymbol=function(){$yojscomp.initSymbol=function(){};$yojscomp.global.Symbol||($yojscomp.global.Symbol=$yojscomp.Symbol)}; $yojscomp.SymbolClass=function(d,m){this.$yojscomp$symbol$id_=d;$yojscomp.defineProperty(this,'description',{configurable:!0,writable:!0,value:m})};$yojscomp.SymbolClass.prototype.toString=function(){return this.$yojscomp$symbol$id_};$yojscomp.Symbol=function(){function d(n){if(this instanceof d)throw new TypeError('Symbol is not a constructor');return new $yojscomp.SymbolClass($yojscomp.SYMBOL_PREFIX+(n||'')+'_'+m++,n)}var m=0;return d}(); $yojscomp.initSymbolIterator=function(){$yojscomp.initSymbol();var d=$yojscomp.global.Symbol.iterator;d||(d=$yojscomp.global.Symbol.iterator=$yojscomp.global.Symbol('Symbol.iterator'));'function'!=typeof Array.prototype[d]&&$yojscomp.defineProperty(Array.prototype,d,{configurable:!0,writable:!0,value:function(){return $yojscomp.iteratorPrototype($yojscomp.arrayIteratorImpl(this))}});$yojscomp.initSymbolIterator=function(){}}; $yojscomp.initSymbolAsyncIterator=function(){$yojscomp.initSymbol();var d=$yojscomp.global.Symbol.asyncIterator;d||(d=$yojscomp.global.Symbol.asyncIterator=$yojscomp.global.Symbol('Symbol.asyncIterator'));$yojscomp.initSymbolAsyncIterator=function(){}};$yojscomp.iteratorPrototype=function(d){$yojscomp.initSymbolIterator();d={next:d};d[$yojscomp.global.Symbol.iterator]=function(){return this};return d};$yojscomp.underscoreProtoCanBeSet=function(){var d={a:!0},m={};try{return m.__proto__=d,m.a}catch(n){}return!1}; $yojscomp.setPrototypeOf='function'==typeof Object.setPrototypeOf?Object.setPrototypeOf:$yojscomp.underscoreProtoCanBeSet()?function(d,m){d.__proto__=m;if(d.__proto__!==m)throw new TypeError(d+' is not extensible');return d}:null;$yojscomp.generator={};$yojscomp.generator.ensureIteratorResultIsObject_=function(d){if(!(d instanceof Object))throw new TypeError('Iterator result '+d+' is not an object');}; $yojscomp.generator.Context=function(){this.isRunning_=!1;this.yieldAllIterator_=null;this.yieldResult=void 0;this.nextAddress=1;this.finallyAddress_=this.catchAddress_=0;this.finallyContexts_=this.abruptCompletion_=null};$yojscomp.generator.Context.prototype.start_=function(){if(this.isRunning_)throw new TypeError('Generator is already running');this.isRunning_=!0};$yojscomp.generator.Context.prototype.stop_=function(){this.isRunning_=!1}; $yojscomp.generator.Context.prototype.jumpToErrorHandler_=function(){this.nextAddress=this.catchAddress_||this.finallyAddress_};$yojscomp.generator.Context.prototype.next_=function(d){this.yieldResult=d};$yojscomp.generator.Context.prototype.throw_=function(d){this.abruptCompletion_={exception:d,isException:!0};this.jumpToErrorHandler_()};$yojscomp.generator.Context.prototype.return=function(d){this.abruptCompletion_={return:d};this.nextAddress=this.finallyAddress_}; $yojscomp.generator.Context.prototype.jumpThroughFinallyBlocks=function(d){this.abruptCompletion_={jumpTo:d};this.nextAddress=this.finallyAddress_};$yojscomp.generator.Context.prototype.yield=function(d,m){this.nextAddress=m;return{value:d}};$yojscomp.generator.Context.prototype.yieldAll=function(d,m){d=$yojscomp.makeIterator(d);var n=d.next();$yojscomp.generator.ensureIteratorResultIsObject_(n);if(n.done)this.yieldResult=n.value,this.nextAddress=m;else return this.yieldAllIterator_=d,this.yield(n.value,m)}; $yojscomp.generator.Context.prototype.jumpTo=function(d){this.nextAddress=d};$yojscomp.generator.Context.prototype.jumpToEnd=function(){this.nextAddress=0};$yojscomp.generator.Context.prototype.setCatchFinallyBlocks=function(d,m){this.catchAddress_=d;void 0!=m&&(this.finallyAddress_=m)};$yojscomp.generator.Context.prototype.setFinallyBlock=function(d){this.catchAddress_=0;this.finallyAddress_=d||0};$yojscomp.generator.Context.prototype.leaveTryBlock=function(d,m){this.nextAddress=d;this.catchAddress_=m||0}; $yojscomp.generator.Context.prototype.enterCatchBlock=function(d){this.catchAddress_=d||0;d=this.abruptCompletion_.exception;this.abruptCompletion_=null;return d};$yojscomp.generator.Context.prototype.enterFinallyBlock=function(d,m,n){n?this.finallyContexts_[n]=this.abruptCompletion_:this.finallyContexts_=[this.abruptCompletion_];this.catchAddress_=d||0;this.finallyAddress_=m||0}; $yojscomp.generator.Context.prototype.leaveFinallyBlock=function(d,m){m=this.finallyContexts_.splice(m||0)[0];if(m=this.abruptCompletion_=this.abruptCompletion_||m){if(m.isException)return this.jumpToErrorHandler_();void 0!=m.jumpTo&&this.finallyAddress_<m.jumpTo?(this.nextAddress=m.jumpTo,this.abruptCompletion_=null):this.nextAddress=this.finallyAddress_}else this.nextAddress=d};$yojscomp.generator.Context.prototype.forIn=function(d){return new $yojscomp.generator.Context.PropertyIterator(d)}; $yojscomp.generator.Context.PropertyIterator=function(d){this.object_=d;this.properties_=[];for(var m in d)this.properties_.push(m);this.properties_.reverse()};$yojscomp.generator.Context.PropertyIterator.prototype.getNext=function(){for(;0<this.properties_.length;){var d=this.properties_.pop();if(d in this.object_)return d}return null};$yojscomp.generator.Engine_=function(d){this.context_=new $yojscomp.generator.Context;this.program_=d}; $yojscomp.generator.Engine_.prototype.next_=function(d){this.context_.start_();if(this.context_.yieldAllIterator_)return this.yieldAllStep_(this.context_.yieldAllIterator_.next,d,this.context_.next_);this.context_.next_(d);return this.nextStep_()}; $yojscomp.generator.Engine_.prototype.return_=function(d){this.context_.start_();var m=this.context_.yieldAllIterator_;if(m)return this.yieldAllStep_('return'in m?m['return']:function(d){return{value:d,done:!0}},d,this.context_.return);this.context_.return(d);return this.nextStep_()}; $yojscomp.generator.Engine_.prototype.throw_=function(d){this.context_.start_();if(this.context_.yieldAllIterator_)return this.yieldAllStep_(this.context_.yieldAllIterator_['throw'],d,this.context_.next_);this.context_.throw_(d);return this.nextStep_()}; $yojscomp.generator.Engine_.prototype.yieldAllStep_=function(d,m,n){try{var r=d.call(this.context_.yieldAllIterator_,m);$yojscomp.generator.ensureIteratorResultIsObject_(r);if(!r.done)return this.context_.stop_(),r;var u=r.value}catch(A){return this.context_.yieldAllIterator_=null,this.context_.throw_(A),this.nextStep_()}this.context_.yieldAllIterator_=null;n.call(this.context_,u);return this.nextStep_()}; $yojscomp.generator.Engine_.prototype.nextStep_=function(){for(;this.context_.nextAddress;)try{var d=this.program_(this.context_);if(d)return this.context_.stop_(),{value:d.value,done:!1}}catch(m){this.context_.yieldResult=void 0,this.context_.throw_(m)}this.context_.stop_();if(this.context_.abruptCompletion_){d=this.context_.abruptCompletion_;this.context_.abruptCompletion_=null;if(d.isException)throw d.exception;return{value:d.return,done:!0}}return{value:void 0,done:!0}}; $yojscomp.generator.Generator_=function(d){this.next=function(m){return d.next_(m)};this.throw=function(m){return d.throw_(m)};this.return=function(m){return d.return_(m)};$yojscomp.initSymbolIterator();this[Symbol.iterator]=function(){return this}};$yojscomp.generator.createGenerator=function(d,m){m=new $yojscomp.generator.Generator_(new $yojscomp.generator.Engine_(m));$yojscomp.setPrototypeOf&&$yojscomp.setPrototypeOf(m,d.prototype);return m}; $yojscomp.asyncExecutePromiseGenerator=function(d){function m(m){return d.next(m)}function n(m){return d.throw(m)}return new Promise(function(r,u){function A(d){d.done?r(d.value):Promise.resolve(d.value).then(m,n).then(A,u)}A(d.next())})};$yojscomp.asyncExecutePromiseGeneratorFunction=function(d){return $yojscomp.asyncExecutePromiseGenerator(d())};$yojscomp.asyncExecutePromiseGeneratorProgram=function(d){return $yojscomp.asyncExecutePromiseGenerator(new $yojscomp.generator.Generator_(new $yojscomp.generator.Engine_(d)))}; $yojscomp.checkStringArgs=function(d,m,n){if(null==d)throw new TypeError("The 'this' value for String.prototype."+n+' must not be null or undefined');if(m instanceof RegExp)throw new TypeError('First argument to String.prototype.'+n+' must not be a regular expression');return d+''}; $yojscomp.polyfill('String.prototype.startsWith',function(d){return d?d:function(d,n){var m=$yojscomp.checkStringArgs(this,d,'startsWith');d+='';var u=m.length,A=d.length;n=Math.max(0,Math.min(n|0,m.length));for(var x=0;x<A&&n<u;)if(m[n++]!=d[x++])return!1;return x>=A}},'es6','es3'); $yojscomp.iteratorFromArray=function(d,m){$yojscomp.initSymbolIterator();d instanceof String&&(d+='');var n=0,r={next:function(){if(n<d.length){var u=n++;return{value:m(u,d[u]),done:!1}}r.next=function(){return{done:!0,value:void 0}};return r.next()}};r[Symbol.iterator]=function(){return r};return r};$yojscomp.polyfill('Array.prototype.keys',function(d){return d?d:function(){return $yojscomp.iteratorFromArray(this,function(d){return d})}},'es6','es3'); $yojscomp.findInternal=function(d,m,n){d instanceof String&&(d=String(d));for(var r=d.length,u=0;u<r;u++){var A=d[u];if(m.call(n,A,u,d))return{i:u,v:A}}return{i:-1,v:void 0}};$yojscomp.polyfill('Array.prototype.find',function(d){return d?d:function(d,n){return $yojscomp.findInternal(this,d,n).v}},'es6','es3');$yojscomp.polyfill('Number.MAX_SAFE_INTEGER',function(){return 9007199254740991},'es6','es3'); $yojscomp.polyfill('Object.is',function(d){return d?d:function(d,n){return d===n?0!==d||1/d===1/n:d!==d&&n!==n}},'es6','es3');$yojscomp.polyfill('Array.prototype.includes',function(d){return d?d:function(d,n){var m=this;m instanceof String&&(m=String(m));var u=m.length;n=n||0;for(0>n&&(n=Math.max(n+u,0));n<u;n++){var A=m[n];if(A===d||Object.is(A,d))return!0}return!1}},'es7','es3'); $yojscomp.polyfill('String.prototype.includes',function(d){return d?d:function(d,n){return-1!==$yojscomp.checkStringArgs(this,d,'includes').indexOf(d,n||0)}},'es6','es3'); $yojscomp.polyfill('Array.from',function(d){return d?d:function(d,n,r){n=null!=n?n:function(d){return d};var m=[],A='undefined'!=typeof Symbol&&Symbol.iterator&&d[Symbol.iterator];if('function'==typeof A){d=A.call(d);for(var x=0;!(A=d.next()).done;)m.push(n.call(r,A.value,x++))}else for(A=d.length,x=0;x<A;x++)m.push(n.call(r,d[x],x));return m}},'es6','es3'); (function(d,m){return m(d)})('undefined'!==typeof window?window:this,function(d,m){function n(a){return f.rum.key+'-'+a}function r(){for(var a=f.rum.key?f.rum.key:l.getCookie('yo-rum-key'),b=0,c=0,e=0,k=0;k<f.delayed.length;k++){var t=f.delayed[k];'none'!=t.orgDelayType&&(ta='active',t.newNode&&t.newNode.nodeName?'img'==t.newNode.nodeName.toLowerCase()?c++:'script'==t.newNode.nodeName.toLowerCase()&&'attributesrc'!=t.type&&b++:t.me&&t.me.nodeName&&'script'==t.me.nodeName.toLowerCase()&&e++)}k=null!= a?a:d.location.hostname;a=Fa;t=B.releaseDate;var I=document.location.href,h=navigator.userAgent,m=document.title,p=Ga,u=l.hasResourceTiming()&&l.def(d.performance.timing.toJSON),q=l.hasResourceTiming(),r=l.hasResourceTiming(),z=l.metaDataValue('X-Yottaa-Optimizations'),A=(new Date).getTime();if(0==l.hasResourceTiming()||0==l.def(d.performance.getEntriesByType))var D={};else{D=d.performance.getEntriesByType('resource');for(var y=D.length,w={},C=0;C<y;C++){var x=D[C],E=w[x.initiatorType];E?(E.count++, E.size+=x.decodedBodySize):w[x.initiatorType]={count:1,size:x.decodedBodySize}}D=w}b={siteKey:k,uuid:a,formatVersion:'3',releaseDate:t,requestType:'navigation',fullPageURL:I,pageCategory:'',userAgent:h,pageTitle:m,lastInteraction:p,isNavigationSupported:u,isResourceTimingSupported:q,isPaintTimingSupported:r,yOptimizations:z,eventTimestamp:A,entryMap:D,domElementCount:document.getElementsByTagName('*').length,pagePrefetched:_isPagePrefetched(),maxScrollDepth:B.maxScrollDepth,sequencing:{numScriptsSequenced:b, numImagesSequenced:c,numBlocksSequenced:e,numDelayedObjects:f.delayed.length},commonDimensions:{}};f.rum.pageCategory&&(b.pageCategory=f.rum.pageCategory);B.geo&&(b.geo=B.geo);c=navigator.connection||navigator.mozConnection||navigator.webkitConnection;b.connection={};1==g.def(c)&&(b.connection.effectiveType=c.effectiveType,b.connection.rtt=c.rtt);for(var v in da)b.commonDimensions[v]=da[v];b.commonDimensions.optState||(b.commonDimensions.optState=ta);try{if(d.localStorage&&localStorage.getItem){var F= localStorage.getItem(n('rapid-js-visitor-3'));if(null!=F){F=JSON.parse(F);var G=(new Date).getTime()>F.visitorTimestamp+f.sessionTimeout;b.visitor={visitorTimestamp:(new Date).getTime(),numVisitorPageViews:F.numVisitorPageViews+1,numSessionPageViews:G?1:F.numSessionPageViews+1,visitorId:F.visitorId?F.visitorId:l.uuid(),numSessions:G?F.numSessions+1:F.numSessions,sessionId:G?l.uuid():F.sessionId,bandwidth:''}}else b.visitor={visitorTimestamp:(new Date).getTime(),numVisitorPageViews:1,numSessionPageViews:1, numSessions:1,visitorId:l.uuid(),sessionId:l.uuid(),bandwidth:''};localStorage.setItem(n('rapid-js-visitor-3'),JSON.stringify(b.visitor));var H=localStorage.getItem(n('rapid-js-qoe-5'));null!=H&&(b.qoe=JSON.parse(H))}}catch(Rb){l.log('localStorage was not available',Rb)}1==b.isNavigationSupported&&!0!==f.rum.spa&&(b.navigationTiming=d.performance.timing.toJSON(),b.experienceMetrics=R,kb&&(b.webVitalsInfo=T));b.isPaintTimingSupported=!1;b.paintTiming={};b.userTiming={};b.measureTiming={};if(d.performance&& d.performance.getEntriesByType){v=d.performance.getEntriesByType('paint');if(null!=v&&0<v.length)for(b.isPaintTimingSupported=!0,k=0;k<v.length;k++)b.paintTiming[v[k].name]=v[k].startTime;v=d.performance.getEntriesByType('mark');if(null!=v&&0<v.length)for(k=0;k<v.length;k++)b.userTiming[v[k].name]=v[k].startTime;v=d.performance.getEntriesByType('measure');if(null!=v&&0<v.length)for(k=0;k<v.length;k++)b.measureTiming[v[k].name]=v[k].duration}B.rum=b}function u(a){for(var b=0;b<f.delayed.length;b++){var c= f.delayed[b];if(c.src==a||c.srcAttr==a)return c}return null}function A(a,b,c,e){a={lastByteTime:c.duration,implementationType:'dom',type:a,zone:b,resourceName:c.name,resourceSizeBytes:c.decodedBodySize};c=u(c.name);null!=c&&(a.delayedType=c.orgDelayType,a.delayedValue=c.delayValue);g.def(e)&&(a.stack=e);return a}function x(a){if(0!=l.hasResourceTiming()){try{if(!d.localStorage||!d.localStorage.getItem)return}catch(jb){l.log('localStorage was not available');return}var b=B.rum,c=[],e=d.performance.timing, k=0,t=0,I=e.domInteractive-e.navigationStart,h=e.domContentLoadedEventEnd-e.navigationStart,m=e.domComplete-e.navigationStart,p=e.loadEventEnd-e.navigationStart,q=d.performance.getEntries();e=q.length;a:{if(document.querySelector){var r=document.querySelector('img[class*=hero]');if(null!=r){r=r.currentSrc||r.src;break a}}for(var v=document.getElementsByTagName('img'),y=null,w=0,D=document.documentElement.scrollTop||document.body.scrollTop,x=0;x<v.length;x++){r=v[x];var C=r.getBoundingClientRect(); if(C.top-D<d.innerHeight)C.width*C.height>w&&(y=r.currentSrc||r.src,w=C.width*C.height);else break}r=y}for(v=0;v<e;v++)D=q[v],y=D.startTime,x=0,'resource'==D.entryType&&(y<=I?(t+=f.rum.advanced.domInteractiveCoef,x=1):y<=h?(t+=f.rum.advanced.domContentLoadedEventCoef,x=2):y<=m?(t+=f.rum.advanced.domCompleteCoef,x=3):y<=p||a&&v<a?(t+=f.rum.advanced.loadEventCoef,x=4):0<D.duration&&(k+=D.duration),w=Ha[D.name],0!=x&&D.duration>f.rum.advanced.blockingTime?U.push(A(4,x,D,w)):0==x&&D.duration>f.rum.advanced.performanceTime&& U.push(A(0,x,D,w)),D.decodedBodySize>f.rum.advanced.violationSize&&U.push(A(1,x,D,w)),1==D.name.toLowerCase().startsWith('https:')&&1==D.name.toLowerCase().startsWith('http:')&&U.push(A(3,x,D,w)),r==D.name&&(z.setExperienceMetric('hero_image_display',D.startTime+D.duration),z.setExperienceMetric('hero_image',r)),D.toJSON&&(D=D.toJSON(),D.implementationType='dom',g.def(w)&&(D.stack=w),w=u(D.name),null!=w&&(D.delayedType=w.orgDelayType,D.delayedValue=w.delayValue),D.onLoadStartTime=y-p,c.push(D))); 1<e&&g._calculateTti(q,e,p);d.performance.getEntriesByName&&!0!==f.rum.spaTransition&&(a=document.getElementsByTagName('script'),Ia(a,'src'),a=document.getElementsByTagName('link'),Ia(a,'href'),a=document.getElementsByTagName('img'),Ia(a,'currentSrc'));a=localStorage.getItem(n('rapid-js-qoe-5'));null==a?a={sessionTimeSaved:k,journeyTime:k}:(a=JSON.parse(a),a={sessionTimeSaved:(new Date).getTime()>a.collectionTimestamp+f.sessionTimeout?k:a.sessionTimeSaved+k,journeyTime:a.journeyTime+k});a.entries= e;a.timeSaved=k;a.score=t;a.pageMeasured=b?b.fullPageURL:d.location.href;a.pageMeasuredCategory=b?b.pageCategory:'';a.violations=U;!0===f.rum.requests&&(a.resourceTiming=c);a.jsErrors=Ja;a.domElementCount=document.getElementsByTagName('*').length;a.maxScrollDepth=B.maxScrollDepth;a.pageMeasuredPrefetched=b.pagePrefetched;a.pageMeasuredUuid=Fa;a.lastInteraction=Ga;a.serviceWorkers=B.serviceWorkers;a.collectionTimestamp=(new Date).getTime();a.commonDimensions={};for(var E in da)a.commonDimensions[E]= da[E];a.experienceMetrics=R;kb&&(a.webVitalsInfo=T);a.commonDimensions.optState||(a.commonDimensions.optState=ta);try{!0!==f.sendRumOnUnload?localStorage.setItem(n('rapid-js-qoe-5'),JSON.stringify(a)):b.qoe=a}catch(jb){g.log('LocalStorage failed to save',jb)}}}function Mb(a){if(d.performance&&d.performance.getEntriesByType)for(var b=d.performance.getEntriesByType('resource'),c=0;c<b.length;c++)if(b[c].name===a)return c;return-1}function ka(a,b,c,e){if(f.sequenceWrites&&'script'==a.nodeName.toLowerCase()){for(var k in L)0< L[k].length&&e.writeSelector!=L[k][0].getWriteSelector()&&g.def(e.writeSelector)&&(a.yo_writeSelector=e.writeSelector);g.def(e.writeSelector)&&g.def(e.writeSelector.nodeName)&&(e.writeSelector.id?e.writeSelector='#'+e.writeSelector.id:(b='yo_write_'+Math.floor(1E9*Math.random()),e.writeSelector.setAttribute('id',b),e.writeSelector='#'+b));k=g.select(e.writeSelector);if(null!=k){e=new J(k,{src:a},e);e.initialize();a.write_context=e;a.original_onload=a.onload;a.original_onreadystatechange=a.onreadystatechange; a.onload=a.onreadystatechange=null;var d=!1;a.onerror=a.onload=function(){d||this.readyState&&'loaded'!==this.readyState&&'complete'!==this.readyState||(g.log('loading ',this,this.write_context.getId()),d=!0,this.original_onload?this.original_onload.call(arguments):h.publish({topic:'sequence/afterloaded/'+a.src,message:a}),this.write_context.finalizeWriteOverride(),this.original_onload=this.write_context=this.onload=this.onreadystatechange=null)};a.onreadystatechange=function(){d||this.readyState&& 'loaded'!==this.readyState&&'complete'!==this.readyState||(g.log('loading ',this,this.write_context.getId()),d=!0,this.original_onload||h.publish({topic:'sequence/afterloaded/'+a.src,message:a}),this.write_context.finalizeWriteOverride(),this.original_onload=this.write_context=this.onload=this.onreadystatechange=null);this.original_onreadystatechange&&this.original_onreadystatechange.call(arguments)}}}return!0}function la(a,b){for(;a.firstChild;)a.removeChild(a.firstChild);g.writeHTML(a,b)}function Nb(){if(0!= f.afterShockLoaded){for(var a=0;a<f.delayed.length;a++)if('none'!=f.delayed[a].delayType)return;null!=f.intervalID&&(clearInterval(f.intervalID),f.intervalID=null,g.log('Turning off response timer all objects are loaded.'))}}function ib(a){f.sequenceWrites&&g.undef(a.yo_write)&&(a.yo_write=a.write,Ka=Ob,a.writeln=a.write=function(){var b=Array.prototype.slice.call(arguments).join('');Ka(b,a)})}function Ob(a,b){for(var c=!1,e=0;e<f.write.length;e++){var k=f.write[e];if(a.match(k.start)||1==k.state){e= {document:b};for(var d in k)e[d]=k[d];c=!0;k.string&&0==La?k.string+=a:(k.state=1,k.string=a);if(g.undef(k.end)||a.match(k.end)){if(g.undef(e.delayType)||'none'==e.delayType){k.config=e;if(g.def(e.onBefore))e.onBefore(k,b);g.undef(e.selector)||null==e.selector?e.selector=b:e.selector=g.select(e.selector);e.selector.yo_write?(La=!0,-1!=k.string.indexOf('m_js_controller.js')&&(La=!0),e.selector.yo_write(k.string)):g.writeHTML(e.selector,k.string,e.how);if(g.def(e.onAfter))e.onAfter(k,b)}else g.undef(e.selector)? (e.selector='yo_write_'+Math.floor(1E9*Math.random()),g.undef(e.how)&&(e.how='append'),g.undef(e.delayValue)&&(e.delayValue=e.selector),document.yo_write('<di'+'v id='+e.selector+' style=width:0px;height:0px></di'+'v>'),e.selector=g.select(e.selector).parentNode):e.selector=g.select(e.selector),d=Yo.sequence.resource(''),g.def(e.onBefore)&&d.beforeLoading(e.onBefore),g.def(e.onLoad)&&d.afterLoaded(e.onLoad),d.type='inner',d.how=k.how,d.newNode=a,d.before=e.selector,d.me=e.selector,f.delayed.push(d),domCompleteTriggered&& d.execute();k.state=2;k.string=''}break}}0==c&&b.yo_write(a);g.log('write hander = '+a)}function ca(a){return function(b,c){var e='on'+b.toLowerCase(),k=M[e];g.log('loadEventSequencing: _addListener via fireLoadEvents',b,c,e);if(k)0==ea?fa(function(){try{g.log('loadEventSequencing: triggger event immediately not async',k),c.call(k.object||d,k.event)}catch(I){g.log('loadEventSequencing: Overridden event listener threw an exception',I)}},0):(k.listeners.push(c),k.stacks.push(Error().stack));else try{var t= Array.prototype.slice.call(arguments,0);return a?this.yo_addEventListener.apply(this,t):this.yo_attachEvent.apply(this,t)}catch(I){g.log('loadEventSequencing: Overridden event listener threw an exception',I)}}}function Pb(a,b,c){function e(a){g.log('Loading '+c.before.src+' via event handler '+c.delayValue);c.afterShock();var k=null;g.def(a.currentTarget)?k=a.currentTarget:g.def(a.srcElement)&&(k=a.srcElement);g.removeEvent(k,b[0],e)}g.log('Adding event ',b[0],b[1]);g.addEvent(a,b[0],e)}function sa(a, b){return a.top>b.top-a.height&&a.bottom<b.bottom+f.offset+2*a.height&&a.left>b.left-a.width&&a.right<b.right+f.offset+2*a.width}function Sb(a,b){return Ma(this,a,b,'insertBefore')}function Tb(a){return Ma(this,a,a,'appendChild')}function Ub(){for(var a=0;a<arguments.length;a++){var b=arguments[a];1==l.def(b)&&null!=b&&Ma(this,b,b,'append')}}function Ma(a,b,c,e){if(1!=l.undef(b)&&null!=b){h.publish({topic:'sequence/captured',message:{parentNode:a,newNode:b,before:c,captureType:e}});if(0==ua(b,a,function(a, d){a=a.clone();a.type=e;a.newNode=b;a.src=b?b.src:'';a.before=c;a.me=d;f.delayed.push(a)}))return X.safeWriteInsert(b,c,a,oa(b),e);a=f.delayed[f.delayed.length-1];if(domCompleteTriggered||'none'==a.delayType)return a.execute()}}function ua(a,b,c){var e=null,k=null,d=!1;a&&a.nodeName&&(e=a.nodeName.toLowerCase());if('script'==e||'iframe'==e){1==f.log&&g.log('Found',e,'(',a,') beginning analysis for optimization. Callstack',Error().stack);k=oa(a);c(k,b);d=!0;var I=!1;a.onreadystatechange&&(a.onreadystatechangeOriginal= a.onreadystatechange,a.onreadystatechange=null);a.onreadystatechange=function(){I||this.readyState&&'loaded'!==this.readyState&&'complete'!==this.readyState||(h.publish({persistent:!0,topic:'sequence/afterloaded/'+k.key,message:k}),I=!0);if(this.onreadystatechangeOriginal){var a=this.onreadystatechangeOriginal;this.onreadystatechangeOriginal=null;a.apply(this,arguments)}};a.onload&&(a.onloadOriginal=a.onload,a.onload=null);a.onload=function(){0==I&&(h.publish({persistent:!0,topic:'sequence/afterloaded/'+ k.key,message:k}),I=!0);if(this.onloadOriginal){var a=this.onloadOriginal;this.onloadOriginal=null;a.apply(this,arguments)}}}else if(k=oa(b),null==k||'none'!=k.delayType)c(k,b),k.before=b,d=!0;g.log(a.nodeName+' '+a.src+' is'+(d?' ':' NOT ')+'sequenced.');0==d&&h.publish({topic:'sequence/beforeloading/'+k.key,message:k});return d}function oa(a){var b=a.src;1==f.excludeParameters&&b&&b.split&&(b=b.split('?')[0]);1==g.def(a.yo_src)&&(b=a.yo_src);if(null==b||0==b.length){var c=new (_delayed());c.delayType= 'none';return c}for(c=0;c<f.resources.length;c++){var e=f.resources[c];if(1==e.match&&1==g.matchUrl(e.url,b)||'function'===typeof e.url&&1==e.url(a,e))if(a.nodeName===e.nodeName||'resource'===e.nodeName&&('SCRIPT'===a.nodeName||'IFRAME'===a.nodeName))return g.log('Found configuration for ',b,' delayType ',e.delayType,e.delayValue),'empty'==e.delayType&&(a.src=null==e.delaySrc?'data:text/javascript;plain,//':e.delaySrc,e.delayType='none'),e}g.log('Did NOT find configuration for '+b+' checking local configuration. '); c=new (_delayed());c.key=c.src=b;if(null!=a.delayType)'empty'==a.delayType&&(a.src=null==a.delaySrc?'data:text/javascript;plain,//':a.delaySrc,a.delayType='none'),c[a.delayType](a.delayValue);else c[f.defaultType](f.defaultDelay);c.before=a;return c}function Na(){for(var a=0;a<f.resources.length;a++){var b=f.resources[a];if(!b.isConfig){var c=new (_delayed());c.key=c.url=b.url;c.match=!0;c.local=!0;c[b.delayType](b.delayValue);f.resources[a]=c}}}function Oa(){var a=g.browser();return!!a&&'chrome'=== a.name}function lb(a,b,c){pa.postMessage({url:b[c],extensionId:a,extensionAssetUrls:b,assetIndex:c})}function Pa(a,b){va++;p.setExtensionState(a,b);va===p.supportedExtensions.length&&(p.detectionComplete=!0,h.publish({topic:'hijacking/finished',message:p.extensionList()}))}function Vb(a){var b=new XMLHttpRequest;b.open('GET',a.data.url);b.onreadystatechange=function(){4===this.readyState&&postMessage({assetFound:200===this.status,extId:a.data.extensionId,extAssetUrls:a.data.extensionAssetUrls,assetIdx:a.data.assetIndex})}; b.send(null)}function Wb(){var a=new Blob(['self.onmessage = ',Vb.toString()],{type:'application/javascript'});a=new Worker(URL.createObjectURL(a));a.onerror=function(a){q.utils.log('Journey Hijacking Web Worker Error: '+a.message)};a.onmessage=function(a){var b=a.data.assetFound,e=a.data.extId,k=a.data.extAssetUrls;a=a.data.assetIdx;b?Pa(e,p.states.INSTALLED):a===k.length-1?Pa(e,b?p.states.INSTALLED:p.states.NOT_INSTALLED):lb(e,k,a+1)};return a}function wa(a,b,c,e){F.checkedComponents.push({id:a.id, state:b,extensionId:c.id});p.setExtensionState(c.id,p.states.INSTALLED);h.publish({topic:'hijacking/component-found',message:{element:e,component:a,extension:c}})}function Qa(a,b,c){Xb.call(a);wa(b,xa.BLOCKED,c,a);q.utils.log('Journey Hijacking removed',a,'which matches component',b,'of extension',c);h.publish({topic:'hijacking/blocked',message:{element:a,component:b,extension:c}})}function mb(a,b){Ra.push(h.subscribe({topic:'hijacking/found/'+a.id,callback:b}))}function Yb(a,b,c){c.reportOnly||'active'!== p.optState?b.requireDetection&&p.assetDetection.enabled?mb(c,function(){wa(b,xa.DETECTED,c,a)}):wa(b,xa.DETECTED,c,a):!0!==b.requireDetection?Qa(a,b,c):F.aggressiveBlocking?Qa(a,b,c):p.assetDetection.enabled?mb(c,function(){Qa(a,b,c)}):wa(b,xa.DETECTED,c,a)}function Zb(){var a={childList:!0,subtree:!1};N=new MutationObserver(function(a){for(var b=0;b<a.length;b++)for(var e=0;e<a[b].addedNodes.length;e++)a:for(var k=a[b].addedNodes[e],d=p.supportedExtensions,f=0;f<d.length;f++){var g=d[f];if(g.components)for(var h= 0;h<g.components.length;h++){b:{var l=k,m=g.components[h],n=g;try{if(m.test(l)){Yb(l,m,n);var q=!0;break b}}catch(tc){q=!1;break b}q=void 0}if(q)break a}}});N.observe(d.document.documentElement,a);d.document.body?N.observe(d.document.body,a):d.document.addEventListener('DOMContentLoaded',function(){N.observe(d.document.body,a)})}function nb(a){var b=q.stats().rum;b={siteKey:b.siteKey,sessionId:b.visitor.sessionId,pageMeasured:b.fullPageURL,pageCategory:b.pageCategory,visitorId:b.visitor.visitorId, requestId:b.uuid,optState:p.optState,extensions:p.extensionList(),components:F.checkedComponents};if(a){a:{a=Sa();var c=d.localStorage.getItem(a);if(c){try{var e=JSON.parse(c)}catch(k){d.localStorage.removeItem(a);e=null;break a}d.localStorage.removeItem(a)}else e=null}e&&(b.previousPage=e)}return b}function Ta(){q.utils.log('Journey Hijacking will save new components to localstorage');ya=h.subscribe({topic:'hijacking/component-found',callback:$b})}function Sa(){var a=q.stats().rum;return'hijacking-'+ (a&&a.visitor&&a.visitor.sessionId)}function $b(){var a=nb(!1),b=Sa(),c=JSON.stringify(a);d.localStorage.setItem(b,c);h.publish({topic:'hijacking/payload-saved',message:{storageKey:b,payload:a}})}function ob(){null!==za&&(h.unsubscribe(za),za=null)}function pb(){ob();var a=nb(!0);if(!a.previousPage&&!1===p.hasDetectedExtensions)return q.utils.log('Journey Hijacking beacon cancelled, nothing to send'),Ta(),!1;var b=h.publish({topic:'hijacking/beforeSend',async:!1,message:a});if(0<b.length&&!1===b[0])return q.utils.log('Journey Hijacking beacon cancelled in beforeSend'), Ta(),!1;h.publish({topic:'hijacking/send',message:a});g.sendData(a,p.config.reportUri);q.utils.log('Journey Hijacking beacon sent');Ta();return!0}function qb(){var a=g.browser();return a?'chrome'===a.name?!!(d.chrome&&d.chrome.runtime&&d.chrome.runtime.sendMessage)||!1===g.isAndroid()&&!1===g.isIos():'safari'===a.name?!0:!1:!1}if(d.Yo)return d.Yo;var q={},fa=d.setTimeout,rb=d.setInterval,y=console.log,O=console.table,f={defaultDelay:5E3,defaultType:'none',log:!1,throttle:20,sequenceXHR:!1,sequenceWrites:!1, sendTimingData:!1,timingDataURL:'',offset:100,scan:['script','img','source','picture'],resources:[],abTesting:[],write:[],intervalID:null,lazyCheckSize:!0,pre:'data-yo-',srcAttrs:['data-yo-src','data-yo-srcset'],afterShockLoaded:!1,optimizeIE:!0,logPrefix:'Yo.utils.log: ',delayed:[],maxMessageSize:2048E3,scriptAttrs:['async','nomodule','defer','crossorigin'],ttiWatcherInterval:3E3,ttiLagTime:2E3,scrapeLevel:'top',sendRumOnUnload:!1,excludeParameters:!1,rumDelay:100,sessionTimeout:18E5,newConfigFetch:!1}, l={log:function(){if(f.log&&1==l.def(y)){var a=Array.prototype.slice.call(arguments);a.unshift(f.logPrefix);y.apply(console,a)}},def:function(a){return'undefined'!=typeof a},undef:function(a){return!l.def(a)},isFunction:function(a){return!!(a&&a.constructor&&a.call&&a.apply)},decodeSafeString:function(a){return decodeURIComponent(a)},getCookie:function(a){for(var b=document.cookie.split(';'),c=0;c<b.length;c++){var e=b[c],k=e.indexOf(a+'=');if(0==k||1==k&&' '==e.charAt(0)){for(;' '==e.charAt(0);)e= e.substring(1,e.length);return e.substring(a.length+1,e.length)}}return null},setCookie:function(a,b,c){var e='';c&&(e=new Date,e=new Date(e.getTime()+1E3*c),e='; expires='+e.toGMTString());document.cookie=a+'='+b+e+'; path=/';return!0},addEvent:function(a,b,c){a.attachEvent?a.attachEvent('on'+b,c):a.addEventListener&&a.addEventListener(b,c,!1)},removeEvent:function(a,b,c){a.detachEvent?a.detachEvent('on'+b,c):a.removeEventListener(b,c,!1)},metaDataValue:function(a,b){var c=document.getElementsByName(a); return null!=c&&1==c.length?1==arguments.length?c[0].getAttribute('content'):c[0].setAttribute('content',b):null},matchUrl:function(a,b){if(null==b||null==a||''==a)return!1;l.log('Match Criteria',a,'and resource Url',b);return'string'===typeof a&&-1!=b.indexOf(a)||'object'===typeof a&&null!=b.match(a)},sendData:function(a,b){if(1==l.isIE('8'))return l.log('IE 8 detected we will not send data back for this browser currently.'),!1;var c=JSON.stringify(a);if(navigator.sendBeacon&&c.length<f.maxMessageSize&& 3E4>c.length)q.pubsub.publish({topic:'sequence/beforeloading/'+b,message:a}),navigator.sendBeacon(b,c),q.pubsub.publish({topic:'sequence/afterloaded/'+b,message:a});else if(c.length<f.maxMessageSize)if(1==l.def(d.fetch))fetch(b,{method:'POST',headers:{'Content-Type':'application/json'},body:c}).then(function(a){l.log('Successfully sent beacon data via fetch',a.status)})['catch'](function(a){l.log('Error from sending beacon data via fetch',a)});else a=new XMLHttpRequest,a.onreadystatechange=function(){4== this.readyState&&l.log('Rum data response received',this.status)},a.open('POST',b,!0),a.setRequestHeader('Content-type','application/json'),a.send(c);else l.log('Message is larger than max message length for qoe calles message size: ',c.length,f.maxMessageSize)},uuid:function(){var a='0123456789abcdef'.split(''),b=[],c=Math.random;b[8]=b[13]=b[18]=b[23]='-';b[14]='4';for(var e=0;36>e;e++)if(!b[e]){var k=0|16*c();b[e]=a[19==e?k&3|8:k&15]}return b.join('')}},h={},V={},sb=1,Ua={},Aa=[],ac=function(a, b){fa(function(){a.callback.call(a.context,b.message,b.topic)},0)};h.reset=function(){V={};sb=1;Ua={};Aa=[]};h.subscribe=function(a){a.id=++sb;l.undef(a.priority)&&(a.priority=0);l.undef(a.priority)&&(a.priority=0);'string'===typeof a.topic&&-1!=a.topic.indexOf('*')&&(a.topic=new RegExp(a.topic.replace(/\*/g,'.*')));if('string'===typeof a.topic){a.topic=a.topic.toLowerCase();1==l.undef(V[a.topic])&&(V[a.topic]=[]);V[a.topic].push(a);V[a.topic].sort(function(a,b){return b.priority-a.priority});var b= Ua[a.topic];l.def(b)&&a.callback.call(b.context,b.message,b.topic)}else Aa.push(a);l.log('_pubsub.subscribe',a.topic,a.id);return a.id};h.publish=function(a){var b=a.topic;a.topic=a.topic.toLowerCase();for(var c=V[a.topic],e=c=1==l.undef(c)?[]:c.slice(0),k=0;k<Aa.length;k++){var d=Aa[k];null!=a.topic.match(d.topic)&&e.push(d)}a.persistent&&(Ua[a.topic]=a);if(0<c.length){e=[];for(k=0;k<c.length;k++){d=c[k];var f=!0;1==a.async?ac(d,a):(f=d.callback.call(d.context,a.message,b),1==l.def(f)&&e.push(f)); l.log('_pubsub.publish',d.topic,d.id);if(0==f&&!0===a.cancellable)break}return e}l.log('_pubsub.publish',a.topic,'no callbacks');return 0};h.unsubscribe=function(a){for(var b in V)for(var c=V[b],e=0;e<c.length;e++)if(c[e].id==a)return c.splice(e,1),l.log('_pubsub.unsubscribe','found',a),!0;l.log('_pubsub.unsubscribe','not found');return!1};var B={releaseDate:'v8.0.2-2024-03-13T20:07Z',errors:{has:!1},config:f,maxScrollDepth:0,serviceWorkers:{supported:!1,registrations:[],cacheStats:[]}},qa=function(){return B}; h.subscribe({topic:'core/configure',callback:function(a){qa.config=f}});h.subscribe({topic:'core/start',callback:function(){qa.config=f;'serviceWorker'in navigator&&(B.serviceWorkers.supported=!0,navigator.serviceWorker.getRegistrations().then(function(a){for(var b=0;b<a.length;b++){var c=a[b].active;B.serviceWorkers.registrations.push({scope:a[b].scope,scriptURL:1==l.def(c)?c.scriptURL:'',state:1==l.def(c)?c.state:''})}}))}});l.addEvent(d,'scroll',function(){var a=d.innerHeight||document.documentElement.clientHeight|| document.body.clientHeight;a>B.maxScrollDepth&&(B.maxScrollDepth=a)});l.addEvent(d,'error',function(a){var b=a.message,c=a.lineno,e=a.filename;3==arguments.length&&(b=arguments[0],e=arguments[1],c=arguments[2]);l.log('errorCapture',b,c,e);var k='';try{k=a&&a.error&&a.error.stack?a.error.stack:Error().stack}catch(t){}h.publish({topic:'core/js/error',persistent:!0,message:{message:b,implementationType:'dom',resourceName:e,lineNumber:c,stack:k,collectionTimestamp:(new Date).getTime()}});B.errors={has:!0}}); var tb=0,ub=!1;l.hasWebVitals=function(){return'undefined'!==typeof d.LayoutShift};var Va=function(){(new PerformanceObserver(function(a){a=a.getEntries();for(var b=0;b<a.length;b++){var c=a[b];h.publish({topic:'web-vitals/cumulative-layout-shift',persistent:!0,message:{score:c.value,entry:c}})}})).observe({type:'layout-shift',buffered:!0});(new PerformanceObserver(function(a){a=a.getEntries();for(var b=0;b<a.length;b++){var c=a[b];h.publish({topic:'web-vitals/first-input',persistent:!0,message:{delay:c.processingEnd- c.startTime,name:c.name,startTime:c.startTime,entry:c}})}})).observe({type:'first-input'});(new PerformanceObserver(function(a){if(1!=ub){a=a.getEntries();for(var b=0;b<a.length;b++){var c=a[b];h.publish({topic:'web-vitals/largest-contentful-paint',persistent:!0,message:{time:c.startTime,entry:c}})}}})).observe({type:'largest-contentful-paint',buffered:!0});(new PerformanceObserver(function(a){a=a.getEntries();for(var b=0;b<a.length;b++){var c=a[b];g.def(c.interactionId)&&tb<c.duration&&(tb=c.duration, h.publish({topic:'web-vitals/interaction-to-next-paint',persistent:!0,message:{time:c.duration,entry:c}}))}})).observe({type:'event',durationThreshold:16,buffered:!0})};try{1==l.hasWebVitals()&&Va()}catch(a){l.log('WebVital initialize error',a.message)}l.hasResourceTiming=function(){return l.def(d.performance)&&l.def(d.performance.getEntries)};l.calculateTti=function(){var a=d.performance.timing;if(0==l.hasResourceTiming()||l.undef(a.loadEventEnd))return-1;var b=d.performance.getEntries();return l._calculateTti(b, b.length,a.loadEventEnd-a.navigationStart)};l._calculateTti=function(a,b,c){for(var e=[],k=f.ttiLagTime,d=-1,g=a[0],h=g.startTime,l=h+g.duration,m=[h,l+k],n=0;n<b;n++)if(g=a[n],h=g.startTime,l=h+g.duration,'resource'==g.entryType)if(1==(h+l>=m[0]&&h<=m[1])){if(e.push(g),2<e.length)if(m=[h,l+k],vb(e,m),3<=e.length)d=m[1]-k;else break}else if(h>m[1]-k){if(l>c)break;m=[h,l+k];vb(e,m)}if(d<c){if(0==f.afterShockLoaded)return-1;d=c}z.setExperienceMetric('time_to_interactive',d);return d};var vb=function(a, b){for(var c=0;c<a.length;c++){var e=a[c],k=e.startTime;0==(k+(k+e.duration)>=b[0]&&k<=b[1])&&(a.splice(c,1),c--)}};h.publish({topic:'sequencing/user/first',callback:function(){ub=!0}});var v={defaultCurrency:'USD',purchaseMapFunctions:[],trackBusinessValue:function(a,b){1==l.def(b)&&(v.defaultCurrency=b);1==l.def(a)&&(v.purchaseMapFunctions=a.concat(v.purchaseMapFunctions));v._analyzePage()},_shopify:function(){if(Shopify&&Shopify.Checkout)return{currencyType:Shopify.Checkout.currency,purchaseAmount:Shopify.Checkout.totalPrice, purchaseType:'Standard',orderId:Shopify.Checkout.token,source:'shopify'}},_gtm:function(){if(d.dataLayer)for(var a=0;a<d.dataLayer.length;a++){var b=d.dataLayer[a];if(b.event&&-1<b.event.indexOf('purchase'))return a=b.ecommerce||b,1==l.undef(a.transaction_id)&&(a=b.ecommerce.purchase.actionField),{currencyType:a.currency,purchaseAmount:a.total||a.value||(parseFloat(a.revenue)+parseFloat(a.tax)+parseFloat(a.shipping)).toFixed(2),purchaseType:'Standard',orderId:a.transaction_id||a.id,source:'gtm'}}}, _ga4:function(){if(d.dataLayer)for(var a=0;a<d.dataLayer.length;a++){var b=d.dataLayer[a];if(3<=b.length&&b[1]&&-1<b[1].indexOf('purchase'))return a=b[2],1==l.undef(a.transaction_id)&&(a=b.ecommerce.purchase.actionField),{currencyType:a.currency,purchaseAmount:a.total||a.value||(parseFloat(a.revenue)+parseFloat(a.tax)+parseFloat(a.shipping)).toFixed(2),purchaseType:'Standard',orderId:a.transaction_id||a.id,source:'ga4'}}},_omniture:function(){var a=d.s||d.omnitureActivity;if(a&&a.events&&-1!=a.events.indexOf('purchase'))return{purchaseAmount:a.products.split(';').pop(), purchaseType:'Standard',orderId:a.purchaseID,currencyType:a.currencyCode,source:'omniture'}},_uniVariable:function(){if(d.universal_variable&&d.universal_variable.transaction){var a=d.universal_variable.transaction;return{currencyType:a.currency,purchaseAmount:a.total,purchaseType:'Standard',orderId:a.order_id,source:'universalvariable'}}}};v.purchaseMapFunctions.push(v._shopify);v.purchaseMapFunctions.push(v._gtm);v.purchaseMapFunctions.push(v._ga4);v.purchaseMapFunctions.push(v._omniture);v.purchaseMapFunctions.push(v._uniVariable); v._wasPurchaseAlreadyReported=function(a){try{if(localStorage){var b=localStorage.getItem('yottaa-ci');if(null==b)b={history:[a]};else if(b=JSON.parse(b),1==l.undef(b.history))b={history:[a]};else{if(-1<b.history.indexOf(a))return!1;b.history.push(a)}localStorage.setItem('yottaa-ci',JSON.stringify(b))}}catch(c){l.log('Error handling localStorage of purchase')}};v._fixPurchaseAmount=function(a){a&&'string'===typeof a&&(a=a.replace(/[^0-9.-]+/g,''));return a};v._analyzePage=function(){h.subscribe({topic:'rum/beforeSend', callback:function(a,b){for(b=0;b<v.purchaseMapFunctions.length;b++)try{var c=v.purchaseMapFunctions[b].call();if(c&&c.purchaseAmount)return a.purchase=c,a.purchase.purchaseAmount=v._fixPurchaseAmount(c.purchaseAmount),a.purchase.currency=a.purchase.currency||v.defaultCurrency,a.pageCategory='order-confirmation',v._wasPurchaseAlreadyReported(a.purchase.orderId)}catch(e){l.log('Purchase mapping error',e,'we will keep going.')}return!0}})};var z={trackBusinessValue:v.trackBusinessValue},wb=!1,Ja=[], U=[],ta='unknown',da={optState:ta},Fa=l.uuid(),Ha={},Wa=0,xb=0,Ga={},R={},kb=l.hasWebVitals(),T={lcp:[],cls:[],fid:[],inp:[]};_isPagePrefetched=function(){var a=B;if(a.serviceWorkers&&a.serviceWorkers.cacheStats){a=a.serviceWorkers.cacheStats.hits||[];for(var b=0;b<a.length;b++)if(0==a[b].indexOf(d.location.toString()))return!0}return!1};z.captureRum=function(){l.def(f.rum)&&l.def(f.rum.beaconUrl)&&0==wb&&(wb=!0,!0!==f.rum.spa&&fa(function(){l.log('onload window event triggered');!0===f.sendRumOnUnload? r():h.publish({topic:'rum/send',message:B.rum})},f.rumDelay),l.addEvent(d,'beforeunload',function(){l.log('beforeunload window event triggered');!0===f.sendRumOnUnload?h.publish({topic:'rum/send',message:B.rum}):x()}))};z.initialize=function(a,b,c,e,k){f.rum={beaconUrl:a,requests:b,key:c,post:!0,advanced:{performanceTime:1500,blockingTime:750,violationSize:1024E3,domInteractiveCoef:200,domContentLoadedEventCoef:150,domCompleteCoef:100,loadEventCoef:50}};l.def(k)&&(k.performanceTime&&(f.rum.advanced.performanceTime= k.performanceTime),k.blockingTime&&(f.rum.advanced.blockingTime=k.blockingTime),k.violationSize&&(f.rum.advanced.violationSize=k.violationSize),k.maxMessageSize&&(f.maxMessageSize=k.maxMessageSize));d.performance&&d.performance.setResourceTimingBufferSize&&d.performance.setResourceTimingBufferSize(500)};z.addViolation=function(a,b){U.push({lastByteTime:0,implementationType:'dom',type:a,zone:0,duration:0,startTime:-1,resourceName:b,resourceSizeBytes:0})};var Ia=function(a,b){for(var c=0;c<a.length;c++)if('href'!= b||'stylesheet'==a[c].rel){var e=a[c][b];if(null!=e&&''!=e&&(0==e.indexOf('//')&&(e=d.location.protocol+e),1==e.startsWith('http'))){var k=d.performance.getEntriesByName(e);null!=k&&0!=k.length||U.push(A(2,0,{name:e,duration:0,decodedBodySize:0},Ha[e]))}}};Va=function(){z.setExperienceMetric('cumulative_layout_shift',0);h.subscribe({topic:'web-vitals/cumulative-layout-shift',callback:function(a){var b=a.entry,c=[];if(!b.hadRecentInput){var e=z.getExperienceMetric('cumulative_layout_shift');z.setExperienceMetric('cumulative_layout_shift', e+a.score)}for(a=0;a<b.sources.length;a++)e=b.sources[a],c.push({node:l.elementToString(e.node),currentRect:e.currentRect,previousRect:e.previousRect});T.cls.push({duration:b.duration,entryType:b.entryType,hadRecentInput:b.hadRecentInput,lastInputTime:b.lastInputTime,name:b.name,sources:c,startTime:b.startTime,value:b.value})}});h.subscribe({topic:'web-vitals/first-input',callback:function(a){var b=a.entry;z.setExperienceMetric('first_input_delay',a.delay);z.setExperienceMetric('first_input_name', a.name);z.setExperienceMetric('first_input_start_time',a.startTime);T.fid.push({cancelable:b.cancelable,duration:b.duration,entryType:b.entryType,name:b.name,processingEnd:b.processingEnd,processingStart:b.processingStart,startTime:b.startTime,target:l.elementToString(b.target)})}});h.subscribe({topic:'web-vitals/largest-contentful-paint',callback:function(a){var b=a.entry;z.setExperienceMetric('largest_contentful_paint',a.time);T.lcp.push({entryType:b.entryType,duration:b.duration,id:b.id,name:b.name, renderTime:b.renderTime,startTime:b.startTime,size:b.size,loadTime:b.loadTime,url:b.url,resourceIndex:Mb(b.url),element:l.elementToString(b.element)})}});h.subscribe({topic:'web-vitals/interaction-to-next-paint',callback:function(a){var b=a.entry;z.setExperienceMetric('interaction_to_next_paint',a.time);T.inp.push({duration:b.duration,entryType:b.entryType,interactionId:b.interactionId,name:b.name,processingEnd:b.processingEnd,processingStart:b.processingStart,startTime:b.startTime,target:l.elementToString(b.target)})}})}; z.captureStack=function(){try{return Error().stack}catch(a){return''}};z.set=function(a,b){da[a]=b};z.spa=function(){f.rum&&(f.rum.spa=!0)};z.get=function(){return da};z.now=function(){return d.performance&&d.performance.now?Math.floor(d.performance.now()):Math.floor((new Date).getTime())};z.setExperienceMetric=function(a,b){if(b>R[a]||1==l.undef(R[a]))R[a]=b};z.getExperienceMetric=function(a){return R[a]};z.getCoreWebVitalDetails=function(){return T};h.subscribe({topic:'core/load',callback:function(){1== g.def(f.rum)&&(f.rum.onLoadTime=z.now());z.captureRum()}});h.subscribe({topic:'sequence/captured',callback:function(a,b){b='';a.open_args?b=a.open_args[1]:a.newNode&&a.newNode.src?b=a.newNode.src:a.delayed&&a.delayed.newNode&&a.delayed.newNode.src?b=a.delayed.newNode.src:a.src&&(b=a.src);Ha[b]=z.captureStack()}});h.subscribe({topic:'core/js/error',callback:function(a,b){Ja.push(a)}});h.subscribe({topic:'rum/spa/transition/start',callback:function(a,b){if(0!=Wa){a=z.now();b=B.rum;f.rum.spa=f.rum.spaTransition= !0;f.delayed=[];if(l.undef(b)||l.undef(b.navigationTiming))l.undef(b)&&(b={}),d.performance&&d.performance.timing&&(b.navigationTiming=d.performance.timing.toJSON());for(var c in b.navigationTiming)b.navigationTiming[c]=a;Fa=l.uuid();U=[];Ja=[];x(xb);d.performance&&(z.clearResourceTimings.call(d.performance),d.performance.clearMarks&&d.performance.clearMarks(),d.performance.clearMeasures&&d.performance.clearMeasures())}}});h.subscribe({topic:'rum/spa/rendered',callback:function(a,b){b=B.rum;var c= z.now(),e=b?b.navigationTiming:null;r();b=B.rum;1==g.undef(b.navigationTiming)&&(b.navigationTiming=e?e:d.performance&&d.performance.timing?d.performance.timing.toJSON():{});a.pageType&&a.viewType&&(b.pageCategory=a.pageType+'-'+a.viewType);1==Yo.utils.def(a.trigger)&&(b.spaTrigger=a.trigger);if(!0===f.rum.spaTransition)b.navigationTiming.loadEventEnd=c;else if(f.rum.onLoadTime)b.navigationTiming.loadEventEnd=b.navigationTiming.navigationStart+(b.navigationTiming.loadEventEnd-b.navigationTiming.navigationStart)+ (c-f.rum.onLoadTime);else return f.rum.spa=!1,Wa++,!1;f.rum.spaTransition=!1;1==l.hasResourceTiming()&&(xb=d.performance.getEntries().length);Wa++;a=h.publish({topic:'rum/beforeSend',async:!1,message:B.rum});if(0==a.length||!1!==a[0])l.sendData(B.rum,f.rum.beaconUrl),h.publish({topic:'rum/sendBeacon',message:B.rum});R.cumulative_layout_shift=0;R.time_to_interactive=0;R.interaction_to_next_paint=0;T={lcp:[],cls:[],fid:[],inp:[]};1==g.def(q.sequence)&&(q.configure({scan:['img','source','script']}), q.sequence.displayNow())}});h.subscribe({topic:'rum/send',callback:function(a,b){r();!0===f.sendRumOnUnload&&x();a=h.publish({topic:'rum/beforeSend',async:!1,message:B.rum});if(0==a.length||!1!==a[0])l.sendData(B.rum,f.rum.beaconUrl),h.publish({topic:'rum/sendBeacon',message:B.rum})}});d.performance&&d.performance.clearResourceTimings&&(z.clearResourceTimings=d.performance.clearResourceTimings,d.performance.clearResourceTimings=function(){});(function(){var a=function(a){Ga={type:a.type,target:l.elementToString(a.target)}}; l.addEvent(document,'keydown',a);l.addEvent(document,'click',a);l.addEvent(document,'touchstart',a)})();Va();var ha=document;_loadCookieConfig=function(){var a=l.getCookie('yo-aftershock-config');if(null!=a&&0<a.length)try{a=JSON.parse(a);for(var b=a.resources||[],c=0;c<b.length;c++){var e=b[c];Yo.sequence[e.delayObject||'resource'](e.url)[e.delayType||'none'](e.delayValue)}delete a.resources;q.configure(a)}catch(k){}};_domready=function(){function a(a){b(a)}function b(a){('poll'===a||'readystatechange'=== a.type)&&'complete'!==ha.readyState||e||(e=!0,f.afterShockLoaded=!0,h.publish({topic:'core/load',async:!0,message:q,persistent:!0}))}function c(){try{ha.documentElement.doScroll('left')}catch(t){fa(c,50);return}b('poll')}var e=!1,k=!0;if('complete'===ha.readyState)f.afterShockLoaded=!0,h.publish({topic:'core/load',async:!0,message:Yo,persistent:!0});else{if(ha.createEventObject&&ha.documentElement.doScroll){try{k=!d.frameElement}catch(t){}k&&c()}l.addEvent(d,'load',a)}};h.subscribe({topic:'core/start', callback:function(){_loadCookieConfig();_domready()}});var H={man:function(){y('__   __    _   _    \n\\ \\ / /   | | | |            \n \\ V /___ | |_| |_ __ _  __ _  \n  \\ // _ \\| __| __/ _` |/ _` |\n  | | (_) | |_| || (_| | (_| | \n  \\_/\\___/ \\__|\\__\\__,_|\\__,_|');y('\n\nUse the console to see information about Yottaa running on your application\n');O([{command:'Yo.utils.console.man();',help:'You just ran this command, which displays this help.'},{command:'Yo.utils.console.rum();',help:'See RUM statistics captured by Yottaa for the current web page.'}, {command:'Yo.utils.console.resources();',help:'See information about resources that were loaded. Add a URL to see details about that specific URL.'},{command:'Yo.utils.console.coreWebVitals();',help:'See information about Core Web Vitals as they happen on your website.'},{command:'Yo.utils.console.sequencing();',help:'See the configuration for sequencing and the resources it is applied to.'},{command:'Yo.utils.console.storeLocalConfiguration();',help:'Store your local configuration for easier debugging.'}, {command:'Yo.utils.console.updateABTest();',help:'Update an A/B test variation.'}])},coreWebVitals:function(){y('\n\nCore web vital information for your page is detailed below.\n');1==l.def(z.getCoreWebVitalDetails)&&(y('\n\nRaw core web vital information below\n\n'),y(z.getCoreWebVitalDetails()));var a=function(a,c,e){var b=new PerformanceObserver(function(k){y(c);k=k.getEntries();if('event'!=a)O(e(k));else{var d={duration:-1};(k||[]).forEach(function(a){l.def(a.interactionId)&&d.duration<a.duration&& (d=a)});0<=d.duration&&O(e([d]))}b.disconnect()});b.observe({type:a,durationThreshold:16,buffered:!0})};a('layout-shift','\n\nCumlative Layout Shift (CLS).\n',function(a){return a.map(function(a){return{value:a.value,elementsChanged:a.sources.length,firstElement:0<a.sources.length?a.sources[0].node:'No element'}})});a('largest-contentful-paint','\n\nLargest Contentful Paint (LCP).\n',function(a){return a.map(function(a){return{element:a.element,url:a.url,startTime:a.startTime,duration:a.duration}})}); a('event','\n\nInteraction to Next Paint (INP)\n',function(a){return a.map(function(a){return{target:a.target,entryType:a.entryType,name:a.name,startTime:a.startTime,duration:a.duration}})})},rum:function(){y('\n\nRum information for your page is detailed below.\n');var a=Yo.stats().rum;if(a){y();var b=function(a,b){this.prop=a;this.value=b};y('\n\nPAGE LEVEL DATA.\n');O([new b('Site Key',a.siteKey),new b('Optimization State',Yo.rum.get().optState||'None'),new b('Full Url',a.fullPageURL),new b('Category', a.pageCategory),new b('Title',a.pageTitle),new b('User Agent',a.userAgent),new b('Page Prefetched By Service Worker',a.pagePrefetched?'Yes':'No'),new b('Library Release Date',a.releaseDate),new b('Is SPA Site',B.config.rum.spa?'Yes':'No'),new b('Is Edge Page',a.yOptimizations?'Yes':'No'),new b('SPA Trigger',a.spaTrigger?JSON.stringify(a.spaTrigger):'No Info')]);var c=z.get().testVariations;1==l.def(c)?(y('\n\nA/B TESTS.\n'),O(c.map(function(a){return{'Test name':a.testName,'Variation name':a.variationName, Stickiness:a.sticky,Timeout:a.timeout}}))):y('\n\nNO A/B TESTS.\n');y('\n\nVISITOR INFORMATION.\n');c=a.visitor;O([new b('Visitor',c.visitorId),new b('Visitor Sessions',c.numSessions),new b('Visitor Page views',c.numVisitorPageViews),new b('Session',c.sessionId),new b('Session Page views',c.numSessionPageViews)]);y('\n\nNAVIGATION TIMING INFORMATION.\n');c=a.navigationTiming;O([new b('DNS Lookup',c.domainLookupEnd-c.navigationStart),new b('Connection',c.connectEnd-c.navigationStart),new b('First Byte', c.responseStart-c.navigationStart),new b('Last Byte',c.responseEnd-c.navigationStart),new b('domLoading',c.domLoading-c.navigationStart),new b('domInteractive',c.domInteractive-c.navigationStart),new b('DOMContentLoaded',c.domContentLoadedEventEnd-c.navigationStart),new b('domComplete',c.domComplete-c.navigationStart),new b(B.config.rum.spa?'SPA Rendered':'onLoad',c.loadEventEnd-c.navigationStart)]);a=a.experienceMetrics;1==Yo.utils.def(a)&&(y('\n\nCORE WEB VITALS.\n\nFor detailed information of the core web vital information\nUser the Yo.utils.console.coreWebVitals(); function.'), O([new b('CLS',a.cumulative_layout_shift||'No Data'),new b('INP',a.interaction_to_next_paint||'No Data'),new b('LCP',a.largest_contentful_paint||'No Data'),new b('FID',a.first_input_delay||'No Data')]))}else y('NO DATA WAS COLLECTED')},sequencing:function(){y('\n\nSequencing information for your page is detailed below.\n\n');var a=H._rapidInfo();H._rapidOutput(a);y('document.head sequenced - ',1==l.def(document.head.yo_ac),'\n\ndocument.body sequenced - ',1==l.def(document.body.yo_ac),'\n\nThe table below shows all the rules that have been scheduled for sequencing.\n'); O(Yo.stats().config.resources.map(function(a){return{'Applies To':a.url,'Delay Type':a.delayType,'Delay Value':a.delayValue||'','# of Resources Caught':H._resourceAppliedTo(a.url)}}))},resources:function(a){var b=B.rum,c=b.navigationTiming,e=Math.round(100*(c.responseEnd-c.navigationStart)/(c.loadEventEnd-c.navigationStart)).toFixed(2);y('\n\nResources loaded by the website are detailed below.\n');y('\n\n%c It took %sms to load the html %s% of the onload\n','background: #222; color: #bada55',Math.floor(c.responseEnd- c.navigationStart),e);var k=H._rapidInfo();H._rapidOutput(k);e=B.rum.experienceMetrics;var f={DOMInteractive:Math.floor(c.domInteractive-c.navigationStart),LCP:Math.floor(e?e.largest_contentful_paint:0)};!0===B.config.rum.spa?(0==H._isSpaTransition()?y('\n\nThis is a SPA clean page %s.\n',b.pageCategory):y('\n\nThis is a SPA transition %s.\n',b.pageCategory),f['SPA Rendered']=Math.floor(c.loadEventEnd-c.navigationStart)):f.OnLoad=Math.floor(c.loadEventEnd-c.navigationStart);O(d.performance.getEntriesByType('resource').filter(function(b){return!a|| 0<=b.name.indexOf(a)}).map(function(a,b){return{'Resource Name':a.name,'Resource Type':H._initiatorType(a),'Load Time':Math.floor(a.duration),'Started Loading':H._isSpaTransition()?Math.floor(a.responseEnd-a.duration-c.navigationStart):Math.floor(a.responseEnd),'Yottaa Sequencing Type':H._sequencingType(a.name,b,k)}}).reduce(function(a,b){Object.keys(f).sort(function(a,b){return f[a]>f[b]}).forEach(function(c){0<f[c]&&b['Started Loading']>f[c]&&(a.push({'Resource Name':c,'Resource Type':'EVENT','Load Time':'---', 'Started Loading':f[c],'Yottaa Sequencing Type':'---'}),f[c]=Number.MAX_VALUE)});a.push(b);return a},[]))},storeLocalConfiguration:function(a){l.setCookie('yo-aftershock-config',JSON.stringify(a||{}))},updateABTest:function(a,b){var c=z.get().testVariations;a=a||'A/B Testing';if(1==l.def(c)){var e=c.find(function(b){return b.testName==a});null==e?y('No test with the name of',a,'was found'):(1==l.def(b)?e.variationName=b:e.variationName='Optimized'==e.variationName?'Unoptimized':'Optimized',localStorage.setItem('rapid.testVariations', JSON.stringify(c)),y(a,'test variation name was set to',e.variationName,'Please refresh.'))}else y('No A/B Tests were enabled')},_sequencingType:function(a,b,c){b+=1;var e=qa.config.delayed.filter(function(b){return b.src&&0<b.src.length?b.src==a:b.url==a});return 0==e.length||b<c.configResource?1==c.sa?'No Rule Applied':b<c.libraryResource?'No Library':b==c.libraryResource?'THE LIBRARY':b<c.configResource?'No Configuration':b==c.configResource?'THE CONFIGURATION':'No Rule Applied':1==e.length?e[0].orgDelayType: e.map(function(a){return a.orgDelayType}).join(',')},_resourceAppliedTo:function(a){var b=qa.config.delayed.filter(function(b){return l.matchUrl(a,b.src)});return b?b.length:0},_initiatorType:function(a){if(0<=a.name.indexOf('/rapid/lib/'))return'RAPID LIBRARY';if(0<=a.name.indexOf('qoe-1.yottaa.net/log-nt/event'))return'RAPID RUM';if(0<=a.name.indexOf('/api/v1/configure.rapid.js'))return'RAPID CONFIG';var b=B.rum.webVitalsInfo;return b&&b.lcp&&null!=b.lcp.find(function(b){return a.name==b.url})? 'LCP Trigger':a.initiatorType},_rapidInfo:function(){var a=B.rum;a={sa:l.def(a.yOptimizations)&&null!=a.yOptimizations,libraryResource:0,configResource:0};for(var b=d.performance.getEntriesByType('resource'),c=0;c<b.length;c++){var e=b[c];0<=e.name.indexOf('/rapid/lib/')&&(a.libraryResource=c+1);0<=e.name.indexOf('/api/v1/configure.rapid.js')&&(a.configResource=c+1)}1==H._isSpaTransition()&&(a.libraryResource=1,a.configResource=1);return a},_rapidOutput:function(a){1==a.sa?y('Rapid was loaded via HTML using Edge'): 1==H._isSpaTransition()?y('This is a SPA Transition page its assumed rapid was already running.'):(0==a.libraryResource?y('Rapid was NOT loaded via an external resource, assumed to be loaded via another resource'):y('Rapid was was %s resource to load',a.libraryResource),0==a.configResource?y('Rapid Configuration was NOT loaded via an external resource, assumed to be delivere through config caching'):y('Rapid Configuration %s resource to load',a.configResource))},_isSpaTransition:function(){var a= B.rum;return B.config.rum.spa&&a.pageCategory&&-1==a.pageCategory.toLowerCase().indexOf('clean')}};l.console=H;l.webWorker={initialize:function(a,b,c){if(!0===l.undef(d.Worker))return null;a=new Blob(['self.onmessage = ',a.toString()],{type:'application/javascript'});c=new Worker(URL.createObjectURL(a),c);c.onerror=function(a){q.utils.log('Web Worker Error: '+a.message)};c.onmessage=function(a){b(a)};return c}};var g=l;String.prototype.startsWith||(String.prototype.startsWith=function(a,b){return this.substr(b|| 0,a.length)===a});String.prototype.endsWith||(String.prototype.endsWith=function(a){return-1!==this.indexOf(a,this.length-a.length)});g.rewrite=function(a){var b=g.metaDataValue('resource.version'),c=g.metaDataValue('cdn.hostname'),e=g.metaDataValue('profile.id');return location.protocol+c+'/'+e+'/'+location.hostname+'/'+b+(0!=a.indexOf('/')?'/':'')+a};g.rewriteImageAPI=function(a){var b=g.metaDataValue('resource.version'),c=g.metaDataValue('cdn.hostname'),e=g.metaDataValue('profile.id'),k='o~',f= g.browser();f&&'chrome'===f.name?k+='f_webp':f&&'safari'===f.name&&13<=f.version&&(k+='f_jp2');1==a.startsWith('/')&&0==a.startsWith('//')&&(a=d.location.protocol+'//'+d.location.hostname+a);return location.protocol+c+'/'+e+'/'+k+'/'+b+'/'+a};g.rewriteSrcSet=function(a,b){a=a.split(',');for(var c='',e=0;e<a.length;e++){var k=a[e].trim(),d=k.lastIndexOf(' '),f='';-1!=d&&(f=' '+k.substring(d).trim(),k=k.substring(0,d).trim());k=b(k,f);c+=k+f;e<a.length-1&&(c+=', ')}return c};g.select=function(a){var b; if(null==a||1==a.length)return null;if('document'==a)return document;if('window'==a)return d;if(g.def(a.nodeName))return a;if('.'==a[0])return a=document.getElementsByClassName(a.substring(1)),0<a.length?a[0]:null;if(-1!=(b=a.indexOf('['))){var c=a.substring(0,b),e=a.substring(b+1),k=e.indexOf(']'),f=e.indexOf('[');e=e.substring(0,k);var h,l=[],m=null;if(-1!=(h=e.indexOf('~')))k=2;else if(-1!=(h=e.indexOf('*')))k=1;else if(-1!=(h=e.indexOf('=')))k=0;else return null;if(-1!=f){f=a.substring(b+1+f+ 1);b=f.indexOf(']');try{f=parseInt(f.substring(0,b))}catch(sc){}}var n=e.substring(0,h);h=e.substring(h+1);2==k&&(m=new RegExp(h));c=document.getElementsByTagName(c);for(b=0;b<c.length;b++){var p=0<n.length?c[b].getAttribute(n):c[b].innerHTML;0==k&&p==h?l.push(c[b]):1==k&&null!=p&&-1!=p.indexOf(h)?l.push(c[b]):2==k&&null!=p&&-1!=p.search(m)&&l.push(c[b])}g.log(a,e,n,h,0==l.length?l.length:l[0]);return-1!=f?f<l.length?l[f]:null:l[0]}'#'==a[0]&&(a=a.substring(1));return document.getElementById(a)}; g.writeHTML=function(a,b,c){var e=document.createElement('div');e.innerHTML='string'===typeof b?b:b.innerHTML;for(b=e.childNodes;0<b.length;)if('script'==b[0].nodeName.toLowerCase())if(b[0].src)q.sequence.script(e.removeChild(b[0]).src).load();else try{eval(e.removeChild(b[0]).innerHTML)}catch(k){g.log(k)}else'insert'==c?a.parentNode.insertBefore(e.removeChild(b[0]),a):a.appendChild(e.removeChild(b[0]))};g.contains=document.documentElement.compareDocumentPosition?function(a,b){return!!(a.compareDocumentPosition(b)& 16)}:document.documentElement.contains?function(a,b){return a!==b&&(a.contains?a.contains(b):!1)}:function(a,b){for(;b=b.parentNode;)if(b===a)return!0;return!1};g.updateHeadItemAttributes=function(a,b,c){0>a&&(document.cookie='yo-disable-instanton=true;Max-Age=2',d.location.reload(!0));a=document.documentElement.getElementsByTagName('head')[0].children[a];for(var e=0;e<b.length;e++)a.removeAttribute(b[e]);for(var k in c)a.setAttribute(k,c[k])};g.replaceHeadItemContent=function(a,b){0>a&&(document.cookie= 'yo-disable-instanton=true;Max-Age=2',d.location.reload(!0));document.documentElement.getElementsByTagName('head')[0].children[a].textContent=b};g.isIE=function(a){var b=navigator.userAgent;return b&&a&&11==parseInt(a)&&-1!=b.indexOf('rv:11')?!0:b&&a&&-1!=b.indexOf('MSIE '+a)?!0:b&&(-1!=b.indexOf('MSIE')||-1!=b.indexOf('rv:11'))};g.isIos=function(){return/iPad|iPhone|iPod/.test(navigator.userAgent)&&!d.MSStream};g.isAndroid=function(){return/Android/.test(navigator.userAgent)&&!d.MSStream};g.browser= function(){var a=navigator.userAgent,b=a.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i)||[];if(/trident/i.test(b[1])){var c=/\brv[ :]+(\d+)/g.exec(a)||[];return{name:'IE',version:c[1]||''}}if('Chrome'===b[1]&&(c=a.match(/\bOPR|Edge\/(\d+)/),null!=c))return{name:'Opera',version:c[1]};b=b[2]?[b[1],b[2]]:[navigator.appName,navigator.appVersion,'-?'];null!=(c=a.match(/version\/(\d+)/i))&&b.splice(1,1,c[1]);return{name:b[0].toLowerCase(),version:parseInt(b[1])}};g.inArray=function(a, b,c){if(b){if(Array.prototype.indexOf)return Array.prototype.indexOf.call(b,a,c);var e=b.length;for(c=c?0>c?Math.max(0,e+c):c:0;c<e;c++)if(c in b&&b[c]===a)return c}return-1};g.elementToString=function(a){try{if(a instanceof HTMLElement){var b='<'+a.nodeName.toLowerCase();if(a.getAttribute){var c=a.getAttribute('name'),e=a.getAttribute('id'),k=a.getAttribute('class');null!=c&&0<c.length&&(b+=' name="'+c+'"');null!=e&&0<e.length&&(b+=' id="'+e+'"');null!=k&&0<k.length&&(b+=' class="'+k+'"')}return b+ ' />'}return a.toString?a.toString():'[Object]'}catch(t){}};var Xa=function(a){h.subscribe({topic:'sequence/beforeloading/'+this.key,callback:a,context:this});return this},Ya=function(a){h.subscribe({topic:'sequence/afterloaded/'+this.key,callback:a,context:this});return this},X={},L={},J=function(a,b,c){this.id='yo_write_'+Math.floor(1E9*Math.random());this.writeContent='';this.writeLocation=a;this.offScreenDom=null;this.delayed=c;this.domElement=b;this.scripts=[];g.log('creating WriteContext',this.id, this.domElement.src);J.prototype.getId=function(a){return this.id};J.prototype.collectDocumentWrite=function(a){this.writeContent+=a;g.log('write override',this.getId(),this.domElement.src,a)};J.prototype.addScript=function(a){this.scripts.push(a)};J.prototype.getWriteSelector=function(){return this.delayed.writeSelector};J.prototype.executeDeferredScripts=function(){for(var a=0;a<this.scripts.length;a++){var b=this.scripts[a],c=b.getAttribute('src');g.def(b.yo_src)&&(c=b.yo_src);q.sequence.script(c).none().writeLocation(b.yo_writeSelector).load()}}; J.prototype.finalizeWriteOverride=function(){null==this.writeLocation?g.log('write location is null, content ignored',this.getId(),this.domElement.src):0<this.writeContent.length?(g.log('creating off screen DOM',this.getId(),this.domElement.src),this.offScreenDom=ha.createElement('div'),this.offScreenDom.innerHTML=this.writeContent):g.log('no content, just continue',this.getId(),this.domElement.src);this.continueWrite()};J.prototype.initialize=function(){var a=L[this.delayed.writeSelector];g.undef(a)&& (a=L[this.delayed.writeSelector]=[]);a.push(this);Ka=function(){var b=Array.prototype.slice.call(arguments,0,-1).join('');0<a.length&&a[a.length-1].collectDocumentWrite(b)}};J.prototype.insertContent=function(){for(;0<this.offScreenDom.childNodes.length;){var a=this.offScreenDom.childNodes[0],b=a.nodeName.toLowerCase();if('script'==b){b=a.getAttribute('language');if(null==b||'vbscript'!=b.toLowerCase()){L[this.delayed.writeSelector].push(this);try{this.offScreenDom.removeChild(a)}catch(t){}q.sequence.script(a.getAttribute('src')).none().writeLocation(this.delayed.writeSelector).load(); return!1}try{eval(a.innerHTML),this.offScreenDom.removeChild(a)}catch(t){}this.writeLocation.parentNode.insertBefore(a,this.writeLocation)}else if('link'==b&&'stylesheet'==a.getAttribute('rel').toLowerCase()){document.getElementsByTagName('head')[0].appendChild(a);try{this.offScreenDom.removeChild(a)}catch(t){}}else this.writeLocation.parentNode.insertBefore(a,this.writeLocation)}this.offScreenDom.innerHTML='';return!0};J.prototype.continueWrite=function(){for(var a=L[this.delayed.writeSelector], b=a.pop();b;){g.log('Continue writing ',b.getId());if(b.offScreenDom&&0==b.insertContent())break;0==a.length&&b.executeDeferredScripts();b=a.pop()}}};X.safeWriteInsert=function(a,b,c,e,d){if(1==ka(a,b,c,e)){a:{try{1==g.def(a.yo_src)&&(1==g.isIE()?a.setAttribute('src',a.yo_src):a.src=a.yo_src);a.yo_processed=!0;var k='yo_ac'==d||c.contains&&0==c.contains(b)?c.yo_ac(a):'yo_a'==d?c.yo_a(a):c.yo_ib(a,b);break a}catch(I){g.log('ERROR adding domElement into dom',a,I)}k=void 0}return k}};X.safeWriteEval= function(a,b,c,e,k){b=a;if(f.sequenceWrites&&g.def(e.writeLocation)){for(var t in L)0<L[t].length&&e.writeSelector!=L[t][0].getWriteSelector()&&g.def(e.writeSelector)&&(e.yo_writeSelector=e.writeSelector);g.def(e.writeSelector)&&g.def(e.writeSelector.nodeName)&&(e.writeSelector.id?e.writeSelector='#'+e.writeSelector.id:(t='yo_write_'+Math.floor(1E9*Math.random()),e.writeSelector.setAttribute('id',t),e.writeSelector='#'+t));t=g.select(e.writeSelector);null!=t&&(t=new J(t,{src:b},e),t.initialize(), e.write_context=t)}try{t=['<sc','ript>','</sc','ript>'];a=a.replace(t[0]+t[1],'').replace(t[2]+t[3],'');'gpt'==k&&(a='googletag.cmd.push(function() { googletag.pubads().enableSyncRendering = function(){}; '+a+'});');if(null!=e.before&&1==l.def(e.before.getAttribute)&&'module'==e.before.getAttribute('data-yo-type')){var h=document.createElement('script');for(k=0;k<f.scriptAttrs.length;k++){var m=f.scriptAttrs[k],n=e.before.getAttribute(m);null!=n&&h.setAttribute(m,n)}h.setAttribute('type','module'); h.appendChild(document.createTextNode(a));e.before.parentNode.insertBefore(h,e.before)}else d.eval(a);f.sequenceWrites&&e.write_context.finalizeWriteOverride()}catch(na){g.log('Error eval',na)}};f.delayed=[];f.targets=[];var P=function(){this.executed=!1;this.cont=!0};P.prototype.afterLoaded=Ya;P.prototype.beforeLoading=Xa;P.prototype.execute=function(){return this.afterShock()};P.prototype.clone=function(){var a=new P,b;for(b in this)a[b]=this[b];return a};P.prototype.preventDefault=function(){this.cont= !1};P.prototype.key=null;P.prototype.isConfig=function(a){return this.delayType==a};P.prototype.afterShock=function(){var a=null;if(1!=this.loaded&&(this.delayType='none',this.loaded=!0,g.log('Injecting ',this.newNode,', by ',this.type,' into the DOM now.'),'attributesrc'!=this.type&&h.publish({topic:'sequence/beforeloading/'+this.key,message:this}),0!=this.cont)){var b=this.newNode,c=this.type,e=this.before;if('insertBefore'==c)a=X.safeWriteInsert(b,e,this.me,this,c);else if('appendChild'==c)a=X.safeWriteInsert(b, null,this.me,this,c);else if('append'==c)a=X.safeWriteInsert(b,null,this.me,this,c);else if('replace'==c)this.me.replaceChild(b,e),h.publish({topic:'sequence/afterloaded/'+this.key,message:this});else if('attributesrc'==c)e.setAttribute('src',b.yo_src);else if('src'==c)g.def(this.animator)&&null!=this.animator?animator(e,this.animator):g.def(f.animator)&&animator(e,f.animator),c=e.getAttribute(f.pre+'srcset'),null!=c&&e.setAttribute('srcset',c),e.src=this.srcAttr;else if('style'==c)b.setAttribute('style', b.getAttribute(f.pre+'style'));else if('inner'==c)g.log(this.how+' -> '+b),'replace'==this.how?la(e,b):'eval'==this.how||'gpt'==this.how?a=X.safeWriteEval(b,e,this.me,this,this.how):g.writeHTML(e,b,this.how),h.publish({persistent:!0,topic:'sequence/afterloaded/'+this.key,message:this});else if('function'==c)g.log(this.how+' -> '+b),e=this.func.apply(this.funcThis,this.funcParameters),h.publish({topic:'sequence/afterloaded/'+this.key,message:{delayed:this,retVal:e}});else if('xhr'==c){this.xhr.onreadystatechange&& (this.xhr.original_oonreadystatechange=this.xhr.onreadystatechange);var d=this;this.xhr.onreadystatechange=function(a){4==d.xhr.readyState&&h.publish({topic:'sequence/afterloaded/'+d.key,message:[a,this]});d.xhr.original_oonreadystatechange&&d.xhr.original_oonreadystatechange.apply(this)};this.xhr.xhr_send.apply(this.xhr,this.xhr._yo.send_args)}else{if('fetch'==c)return d=this,this.fetch.originalFetch.apply(this.fetch.self,this.fetch.args).then(function(a){h.publish({topic:'sequence/afterloaded/'+ d.src,message:[a,b]});d.fetch.resolve&&d.fetch.resolve(a);return a})['catch'](function(a){d.fetch.reject&&d.fetch.reject(a);h.publish({topic:'sequence/afterloaded/'+d.src,message:[a,b]});return a});'image'==c&&this.loadImage(this)}Nb();return a}};_delayed=function(){return P};var Y=function(a){var b=new (_delayed());'string'===typeof a&&0==a.indexOf('/')&&a.lastIndexOf('/')==a.length-1&&(a=new RegExp(a));b.key=b.url=a;b.match=!0;b.nodeName='resource';g.undef(f.resources)&&(f.resources=[]);for(var c= -1,e=0;e<f.resources.length;e++){var d=f.resources[e].url;if('string'===typeof a&&'string'===typeof d&&-1!=a.indexOf(d)||'string'!==typeof d&&'function'!==typeof d&&'string'===typeof a&&null!=a.match(d)){c=e;break}}b.writeLocation=function(a){this.writeSelector=a;return this};-1==c?f.resources.push(b):f.resources.splice(c,0,b);return b},Ka=null,La=!1;h.subscribe({topic:'core/configure',callback:function(){ib(document)}});var K={},bc=function(a,b,c,e,d){this._yo={open_args:arguments,async:!1===c?!1: !0};g.log('xhr open = '+b+', async '+c);h.publish({topic:'sequence/captured',message:this._yo});return this.xhr_open.apply(this,arguments)},cc=function(a){if(g.undef(this._yo)||!0!==this._yo.async){h.publish({topic:'sequence/beforeloading/'+this._yo.open_args[1],message:{src:this._yo.open_args[1],nodeName:'xhr',args:this._yo.open_args}});var b=this.xhr_send.apply(this,arguments);h.publish({topic:'sequence/afterloaded/'+this._yo.open_args[1],message:{src:this._yo.open_args[1],nodeName:'xhr',args:this._yo.open_args}}); return b}var c=this;b={src:this._yo.open_args[1],nodeName:'xhr'};if(0==ua(b,b,function(a,b){a=a.clone();a.type='xhr';a.xhr=c;a.src=b.src;a.newNode=b;f.delayed.push(a);1==f.afterShockLoaded&&a.execute()}))return g.log('xhr send is NOT deferred, '+b.src),this.xhr_send.apply(this,arguments);this._yo.send_args=arguments;var e=f.delayed[f.delayed.length-1];g.log('xhr send is deferred, ',b.src,', ',e.delayType,e.delayValue);return this},dc=function(){if(g.undef(this._yo)||g.undef(this._yo.send_args)||!0!== this._yo.async)return this.xhr_abort.apply(this,arguments);g.log('Abort to the xhr object is called',' async true')};if(g.def(d.fetch))var ec=function(){g.log('fetch called ',arguments);h.publish({topic:'sequence/captured',message:{fetch_args:arguments}});var a=this,b={src:arguments[0].toString(),nodeName:'xhr'};if(0==ua(b,b,function(b,c){b=b.clone();b.type='fetch';b.xhr=a;b.src=c.src;b.newNode=c;f.delayed.push(b);1==f.afterShockLoaded&&b.execute()}))return g.log('fetch send is NOT deferred, ',b.src), K.originalFetch.apply(this,arguments).then(function(a){h.publish({topic:'sequence/afterloaded/'+b.src,message:[a,b]});return a})['catch'](function(a){h.publish({topic:'sequence/afterloaded/'+b.src,message:[a,b]});return a});var c=f.delayed[f.delayed.length-1];c.fetch={args:arguments,originalFetch:K.originalFetch,self:this};c.fetch.promise=new Promise(function(a,b){c.fetch.resolve=a;c.fetch.reject=b;g.log('Promise for delayed fetch call',c)});g.log('fetch is deferred, ',b.src,c.delayType,c.delayValue); return c.fetch.promise};K.create=function(a){1!=f.sequenceXHR&&q.configure({sequenceXHR:!0});a=Y(a);a.nodeName='xhr';a.rewrite=function(a){this.afterLoaded(function(b){g.log('Begging to rewrite data for ajax call.');try{if(!(2>b.length)){var c=b[1],d=null,f=this;if('text'==c.responseType||''==c.responseType)d=c.responseText,d=a.call(this,d);else if('json'==c.responseType)d=JSON.stringify(c.response),d=a.call(this,d);else if('blob'==c.responseType){console.log('blob response',c.response);var h=c.onload; h&&(c.onload=null);var l=new FileReader;l.addEventListener('load',function(){f.blobText=a.call(f,l.result);h.call(c)});l.readAsText(c.response)}else return;Object.defineProperty&&(Object.defineProperty(c,'responseText',{get:function(){return d}}),Object.defineProperty(c,'response',{get:function(){return'json'==this.responseType?JSON.parse(d):'blob'==this.responseType?new Blob([f.blobText],{type:'application/json'}):d}}))}}catch(Qb){g.log('Error in rewrite handling',Qb)}})};return a};K.captureMethods= function(a){1==g.undef(a.XMLHttpRequest.prototype.xhr_open)&&(a.XMLHttpRequest.prototype.xhr_open=a.XMLHttpRequest.prototype.open,a.XMLHttpRequest.prototype.xhr_send=a.XMLHttpRequest.prototype.send,a.XMLHttpRequest.prototype.xhr_abort=a.XMLHttpRequest.prototype.abort,1==g.def(a.fetch)&&(K.originalFetch=a.fetch))};K.overrideMethods=function(a){a.XMLHttpRequest.prototype.open=bc;a.XMLHttpRequest.prototype.send=cc;a.XMLHttpRequest.prototype.abort=dc;1==g.def(a.fetch)&&(a.fetch=function(){var a=this, c=arguments;return $yojscomp.asyncExecutePromiseGeneratorProgram(function(b){return b.return(ec.apply(a,c))})})};K.captureMethods(d);h.subscribe({topic:'core/configure',callback:function(){1==f.sequenceXHR&&1==g.def(XMLHttpRequest)&&K.overrideMethods(d)}});_findTags=function(a,b){var c=document.getElementsByTagName(a);g.log('Find all '+a+' tags in the document.');for(var e=0,d=c.length;e<d;e+=1){var t=c[e];if(!0===b){var h=t.getAttribute(f.pre+'delayType');null==h||'defer'!=h&&'lazy'!=h||(t.setAttribute(f.pre+ 'delayType','none'),t.setAttribute(f.pre+'delayValue',''));h=t.getAttribute('type');null!=h&&(-1<h.indexOf('yo/sequence/defer')||-1<h.indexOf('yo/sequence/lazy'))&&t.setAttribute('type','yo/sequence/none/')}if('true'!==t.getAttribute(f.pre+'loaded')){h=_srcAttr(t);var l=t.getAttribute(f.pre+'style');h?(g.log('Found src ',a,', src = '+h+' tag to handle with AfterShocK.'),q.sequence.content(t).load()):'script'==a?(h=t.getAttribute('type'),t.getAttribute(f.pre+'src'),h&&-1<h.indexOf('yo/sequence')?(g.log('Found a '+ a+', yo/sequence tag to handle with AfterShocK.'),q.sequence.content(t).load()):'yo/abtest'==h&&_abTestScript(t)):l&&(g.log('Found style ',a,', src = '+h+' tag to handle with AfterShocK.'),t=q.sequence.content(t),t.type='style',t.before=t.newNode,t.load())}}};_srcAttr=function(a){for(var b=0;b<f.srcAttrs.length;b++){var c=a.getAttribute(f.srcAttrs[b]);if(null!=c)return c}return(c=a.getAttribute('src'))&&'data:image/cloaked;plain,'==c.slice(0,25)?c.substring(25):null};_needsEval=function(a){var b= a.getAttribute('type');return'SCRIPT'==a.nodeName.toUpperCase()&&null==a.getAttribute('src')&&null!=b&&0<=b.indexOf('chain')};_loadFromDOM=function(a){a='string'===typeof a?g.select(a):a;var b=content=g.select(a.getAttribute(f.pre+'location')),c=a.getAttribute(f.pre+'how'),e=new (_delayed()),k=a.nodeName.toLowerCase(),h=a;'eval'==c||'gpt'==c?(content=a.innerHTML,e=q.sequence.script(content)):1==_needsEval(a)?(content=a.innerHTML,c='eval',e=q.sequence.script(content)):null==c&&(c='replace');var l= a.getAttribute(f.pre+'key');null!=l&&(e.key=l);var m=a.getAttribute(f.pre+'delayType'),n=a.getAttribute(f.pre+'delayValue'),p=_srcAttr(a),u=p&&0<p.length?'src':'inner',r=a.getAttribute(f.pre+'animator'),v=a.getAttribute(f.pre+'onbefore');null!=v&&g.isFunction(d[v])&&e.beforeLoading(d[v]);var w=a.getAttribute(f.pre+'onLoad');null!=w&&g.isFunction(d[w])&&e.afterLoaded(d[w]);null==content&&(content=a,c='insert');a.setAttribute(f.pre+'loaded','true');if(-1===g.inArray(a,f.targets)){e.animator=r;if('img'== k||'source'==k||'picture'==k)null==m&&(m='lazy'),null==b&&(b=a);else if('script'==k){k=a.getAttribute('type');null!=k&&(k=k.split('/'),2<k.length&&(m=k[2],n=k[3]));k=a.getAttribute(f.pre+'writeLocation');e.writeSelector=k||a;r=p;null==r&&'chain'==m&&(r=a.getAttribute('src'));if(null!=r){null==m&&(m='none');b={};for(c=0;c<f.scriptAttrs.length;c++)e=f.scriptAttrs[c],b[e]=a.getAttribute(e);c=a.getAttribute(f.pre+'type');null!=c&&(b.type=c);e=q.sequence.script(r,b)[m](n);null!=l&&(e.key=l);null!=v&&g.isFunction(d[v])&& e.beforeLoading(d[v]);null!=w&&g.isFunction(d[w])&&e.afterLoaded(d[w]);e.writeLocation(k||a);e.src=r;e.me=a;e.load();return e}null==b&&(b=a)}null==m&&(m='none');1==g.contains(document.documentElement,a)&&a.setAttribute(f.pre+'loaded','true');e[m](n);e.before=b;e.me=h;e.type=u;e.srcAttr=p;e.how=c;e.match=!1;e.newNode='eval'==c||'gpt'==c?content:a;e.key||(e.key=e.srcAttr);return e}};h.subscribe({topic:'core/load',callback:function(){q.sequence.scanTags(!1)}});var ia={},M={},ea=!1,Za=null,yb=[],fc=function(a, b){var c='on'+b.toLowerCase();if(!g.def(M[c])&&(M[c]={object:a,name:b,event:null,propertySets:[],listeners:[],stacks:[]},g.addEvent(a,b,function(c){var e=M['on'+b.toLowerCase()];e.event=c;navigator.userAgent.match(/MSIE /)&&(e.event={type:c.type});!a.yo_addEventListener&&a.addEventListener&&(a.yo_addEventListener=a.addEventListener,a.addEventListener=ca(!0));!a.yo_attachEvent&&a.attachEvent&&(a.yo_attachEvent=a.attachEvent,a.attachEvent=ca(!1))}),Object.defineProperty&&'load'==b))try{Object.defineProperty(d, 'onload',{set:function(a){try{g.log('loadEventSequencing: defineProperty window.onload',ea),0==ea?a.call(d,M.onload.event):(M.onload.propertySets.push(a),M.onload.stacks.push(Error().stack))}catch(k){g.log('loadEventSequencing: Overridden onload threw an exception',k)}}})}catch(e){g.log('loadEventSequencing: onload property event handler threw exception',e)}};_clearEvents=function(a){1==g.def(a.yo_addEventListener)&&(a.addEventListener=a.yo_addEventListener,delete a.yo_addEventListener);1==g.def(a.yo_attachEvent)&& (a.attachEvent=a.yo_attachEvent,delete a.yo_attachEvent)};ia.loadEvents=function(a,b){1==g.undef(a)&&(a=[{eventName:'DOMContentLoaded',eventObject:document},{eventName:'load',eventObject:d}]);1==g.def(b)&&(ea=b);for(b=0;b<a.length;b++)fc(a[b].eventObject,a[b].eventName)};ia.clearEvents=function(){for(var a=[d,document],b=0;b<a.length;b++)_clearEvents(a[b])};ia.fireLoadEvents=function(){if(1==ea){ea=!1;g.log('loadEventSequencing: fireLoadEvents was called will loop through all the events',M);for(var a in M){var b= M[a];if(b){for(var c=0;c<b.propertySets.length;c++)try{g.log('loadEventSequencing: Firing propertySets via fireLoadEvents',b),b.propertySets[c].call(d,b.event)}catch(e){g.log('loadEventSequencing: Exception for the property set listener',b,e)}for(c=0;c<b.listeners.length;c++)try{g.log('loadEventSequencing: Firing listeners via fireLoadEvents',b),b.listeners[c].call(b.object||d,b.event)}catch(e){g.log('loadEventSequencing: Exception for the event listener',b,e)}}}}};ia.jQueryEvents=function(a,b){Za= $.fn.ready;$.fn.ready=function(){g.log('sequencejQueryEvents $.fn.ready',arguments,this);var a=Array.prototype.slice.call(arguments);if(0<this.length&&9===this[0].nodeType)yb.push({self:this,args:a});else return oldReady.apply(this,a)}};ia.firejQueryEvents=function(){g.log('sequencejQueryEvents $.fn.ready',arguments,this);1==Yo.utils.def(Za)&&($.fn.ready=Za);yb.forEach(function(a){$(document).ready(a.args[0])});1==g.def(d.$)&&1==g.def($.prototype.on)&&$(d).trigger('load')};var Ba=null,zb=function(a){a.tempImage= new Ba;var b=a.image.onload;a.image.onload=null;a.tempImage.onload=function(c){b&&b.call(a.image,c);h.publish({topic:'sequence/afterloaded/'+a.key,message:arguments})};var c=a.image.onerror;a.image.onerror=null;a.tempImage.onerror=function(b){c&&c.call(a.image,b);h.publish({topic:'sequence/afterloaded/'+a.key,message:arguments})};h.publish({topic:'sequence/beforeloading/'+a.key,message:arguments});0==a.webWorkerCallback?(a.tempImage.src=a.src,a.image.setAttribute('src',a.src)):gc(a.src,function(a, b){a=URL.createObjectURL(a.data.blob);b.image.setAttribute('src',a);h.publish({topic:'sequence/afterloaded/'+b.key,message:b})},a)},hc=function(a,b,c){this.yo_src=a;Yo.utils.log('Overloaded image src being set',a);a={src:a,key:a.toLowerCase()};h.publish({topic:'sequence/captured',message:a});var e={src:a.src,key:a.key,nodeName:'image'};nodeConfig=oa(e);var d=nodeConfig.clone();d.type='image';d.nodeName='image';d.src=e.src;d.image=b;d.newNode=e;f.delayed.push(d);d.loadImage=zb;1==f.afterShockLoaded&& d.execute();a.image=c||b;'none'==nodeConfig.delayType&&zb(a)},ic=function(){null==Ba&&(Ba=Image,Image=function(){var a=new Ba;try{Object.defineProperty(a,'src',{set:function(b){hc(b,this,a)},get:function(){return this.yo_src?this.yo_src:''}})}catch(b){g.log(b)}return a})},$a=null,ab={},gc=function(a,b,c){try{null===$a&&($a=l.webWorker.initialize(function(a){var b,c,e;return $yojscomp.asyncExecutePromiseGeneratorProgram(function(d){if(1==d.nextAddress)return b=a.data.imageUrl,!0===a.data.log&&console.log('Loading image via a web worker', b),d.yield(fetch(b,a.data.fetchOptions),2);if(3!=d.nextAddress)return c=d.yieldResult,d.yield(c.blob(),3);e=d.yieldResult;!0===a.data.log&&console.log('Image finished loading and now posting message back',b);self.postMessage({imageURL:b,uuid:a.data.uuid,blob:e});d.jumpToEnd()})},function(a){b(a,ab[a.data.uuid].delayedObject);delete ab[a.data.uuid]},{name:'yottaa-image-manager'}));var e=l.uuid();ab[e]={delayedObject:c,imageUrl:a};$a.postMessage({uuid:e,imageUrl:a,log:f.log,fetchOptions:c.fetchOptions})}catch(k){l.log('Error creating image web worker', k)}};h.subscribe({topic:'core/configure',callback:function(){1==f.sequenceImage&&ic()}});h.subscribe({topic:'core/load',callback:function(){}});_delayed().prototype.defer=function(a){this.orgDelayType=this.delayType='defer';this.delayValue=a;if(1==g.isIE()&&0==f.optimizeIE)return g.log('Override defer on IE',this.url),this.none();this.execute=function(){if(0!=f.afterShockLoaded&&1!=this.executed){this.executed=!0;g.log('Loading ',this.newNode,' via timer event. It will load in ',this.delayValue); var a=this;fa(function(){a.afterShock()},1*this.delayValue);return this}};return this};_delayed().prototype.event=function(a){this.orgDelayType=this.delayType='event';this.delayValue=a;this.execute=function(){if(0!=f.afterShockLoaded&&1!=this.executed){this.executed=!0;g.log('Event handling '+(this.before?this.before.src:'no object')+' '+this.delayValue);var a=this.delayValue.split(' '),c=a[0].toLowerCase(),e=this;if('beforeloading'==c||'afterloaded'==c){a=a[1];if('#adjacent'==a)return this.defer(0); h.subscribe({topic:'sequence/'+c+'/'+a,context:this,callback:function(a){g.log('Loading '+(this.before?this.before.src:'no object')+' via event handler '+this.delayValue);e.afterShock()}})}else'pubsub'==c?(a=a[1],h.subscribe({topic:a,context:this,callback:function(a){g.log('Loading '+(this.before?this.before.src:'no object')+' via pubsub handler '+this.delayValue);e.afterShock()}})):Pb(g.select(a[1]),a,this);return this}};return this};h.subscribe({topic:'core/load',callback:function(){}});var Z={}, W={top:0-f.offset,left:0-f.offset,height:0,width:0,right:0,bottom:0},Ab=function(a){a=a.getBoundingClientRect();g.undef(a.width)&&(a={top:a.top,left:a.left,right:a.right,bottom:a.bottom,width:a.right-a.left,height:a.bottom-a.top});return a},Bb,Cb;document.defaultView&&document.defaultView.getComputedStyle&&(Bb=function(a,b){var c;if(c=a.ownerDocument.defaultView){if(c=c.getComputedStyle(a,null)){var e=c.getPropertyValue(b);''!==e||g.contains(a.ownerDocument.documentElement,a)||(e=a.style[b])}return e}}); document.documentElement.currentStyle&&(Cb=function(a,b){a=a.currentStyle&&a.currentStyle[b];return''===a?'auto':a});var bb=Bb||Cb;document.getElementsByClassName||(document.getElementsByClassName=function(a){return this.querySelectorAll('.'+a)});Z.scrollHandler=function(a){if(1==g.undef(document.body)||null==document.body)return!0;W.height=d.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;W.bottom=W.height;W.width=d.innerWidth||document.documentElement.clientWidth|| document.body.clientWidth;W.right=W.width;if(g.undef(document.documentElement.getBoundingClientRect))return!0;for(var b=a=0;b<f.delayed.length;b++)if(f.delayed[b].isConfig('lazy')){var c=b,e=f.delayed[c],k=e.delayValue;if('string'===typeof k)k=g.select(k);else if(null==k||g.def(k))k=e.before;if(null!=k&&(k&&'SOURCE'==k.nodeName&&(k=k.parentNode),1==g.contains(document.documentElement,k))){var h=Ab(k);if(0==(null!=f.intervalID&&g.def(k.getBoundingClientRect))&&h.top<W.height+f.offset)g.log('showIfVisible is visible ', c,', ',k),f.delayed[c].afterShock();else{if(e=1==(null!=f.intervalID&&g.def(k.getBoundingClientRect)))if(e=(!f.lazyCheckSize||0<h.width&&0<h.height)&&1==sa(h,W)){b:{e=k;for(var l=e.parentNode;null!=l&&1==l.nodeType;){var m=bb(l,'overflow');if(m&&'hidden'==m.toLowerCase())e.yo_clipped=l;else if(0==bb(l,'opacity')||'none'==bb(l,'display')){e=!1;break b}l=l.parentNode}1==g.undef(e.yo_clipped)&&(e.yo_clipped=!1);e=0!=e.yo_clipped?sa(h,Ab(e.yo_clipped)):!0}e=1==e}e&&(g.log('showIfVisible is visible ', c,', ',k),f.delayed[c].afterShock())}}a++}};Z.delayed=function(a){this.orgDelayType=this.delayType='lazy';this.delayValue=a;this.execute=function(a){return this};return this};var Db=function(a,b){var c=0;return function(){var e=+new Date;e-c<b||(c=e,a.apply(this,arguments))}}(Z.scrollHandler,20);g.addEvent(d,'scroll',Db);g.addEvent(d,'resize',Db);h.subscribe({topic:'core/load',callback:function(){Z.scrollHandler()}});_delayed().prototype.lazy=Z.delayed;h.subscribe({topic:'core/configure',callback:function(a){0< a.lazyTimer&&null==f.intervalID&&(f.intervalID=rb(Z.scrollHandler,a.lazyTimer))}});_delayed().prototype.none=function(){this.orgDelayType=this.delayType='none';this.execute=function(){return this.afterShock()};return this};_delayed().prototype.remove=function(a,b,c){var e=!1,d='yostore'+g.metaDataValue('resource.version')+this.key;this.delayValue=a;g.undef(a)||'always'==a?(e=!0,this.delayValue='always'):'session'==a?sessionStorage&&'true'==sessionStorage.getItem(d)?e=!0:sessionStorage&&sessionStorage.setItem(d, 'true'):'visitor'==a&&(localStorage&&'true'==localStorage.getItem(d)?e=!0:localStorage&&localStorage.setItem(d,'true'));if(1==e)this.orgDelayType=this.delayType='remove',this.execute=function(){return this};else this[b](c);return this};var N=null,jc=function(a,b){var c=g.select(b);N=new MutationObserver(function(c){for(var e=!1,d=0;d<c.length;d++){var f=c[d];if('attributes'==f.type&&'observe.attributes'==a.delayType||'observe.all'==a.delayType)if(g.log('The '+f.attributeName+' attribute was modified for ', b),'all'==a.delayValue){e=!0;break}else{if(f.attributeName==a.delayValue){e=!0;break}}else if('childList'==f.type&&'observe.children'==a.delayType||'observe.all'==a.delayType)if(g.log('A child node has been added or removed for',b),'all'==a.delayValue){e=!0;break}else if(0<f.addedNodes.length&&'added'==a.delayValue){e=!0;break}else if(0<f.removedNodes.length&&'removed'==a.delayValue){e=!0;break}}1==e&&(a.afterShock(),N.disconnect())});N.observe(c,{attributes:!0,childList:!0})};_delayed().prototype.observe= function(a,b,c){this.orgDelayType=this.delayType='observe.'+b;this.delayValue=c?c:'all';if('undefined'===typeof MutationObserver)return g.log('Override defer on IE',this.url),this.none();this.execute=function(){if(0!=f.afterShockLoaded&&1!=this.executed)return this.executed=!0,g.log('Loading ',this.newNode,' via observer. It will loaded when ',a,'changes',b),jc(this,a),this};return this};_delayed().prototype.firstInput=function(a,b){return this.webvitals('first-input',a,b)};_delayed().prototype.largestContentfulPaint= function(a,b){return this.webvitals('largest-contentful-paint',a,b)};_delayed().prototype.timeToInteractive=function(a,b){return this.webvitals('time-to-interactive',a,b)};var kc=function(){var a=g.calculateTti();0<a&&(clearInterval(f.ttiWatcherIntervalID),h.publish({topic:'web-vitals/time-to-interactive',persistent:!0,message:{time:a}}))};_delayed().prototype.webvitals=function(a,b,c){this.delayType=this.orgDelayType=a;this.delayValue=[a,b];0==g.hasWebVitals()?(g.log('webvitals fallback for ',this.url), this.defer(b?b:1E3)):this.execute=function(){var a=this;this.executed=!0;h.subscribe({topic:'web-vitals/'+this.orgDelayType,callback:function(e,d){d=!0;c&&(d=c(e));d&&(f.afterShockLoaded?a.afterShock():a.defer(b?b:0))}});'time-to-interactive'==this.orgDelayType&&(0<f.ttiWatcherInterval&&null==f.ttiWatcherIntervalID&&(f.ttiWatcherIntervalID=rb(kc,f.ttiWatcherInterval)),a.defer(b?b:1E3));0==g.hasWebVitals()&&(g.log('webvitals fallback for ',this.url),a.defer(b?b:1E3))};return this};_delayed().prototype.spa= function(a){if(a)return this[a]();var b=this;this.event('pubsub rum/spa/rendered');h.subscribe({topic:'rum/spa/transition/start',callback:function(a,e){b.event('pubsub rum/spa/rendered')}});h.subscribe({topic:'rum/spa/rendered',callback:function(a,e){b.none()}})};_delayed().prototype.startTransition=function(a){this.orgDelayType=this.delayType='startTransition';this.delayValue=a;this.execute=function(){var a=this;this.executed=!0;h.subscribe({topic:'rum/spa/transition/start',callback:function(b,e){(g.undef(a.delayValue)|| 0<=(b.pageType+'-'+b.viewType).indexOf(a.delayValue))&&a.afterShock()}});return this};return this};_delayed().prototype.finishedRendering=function(a){this.orgDelayType=this.delayType='finishedRendering';this.delayValue=a;this.execute=function(){var a=this;this.executed=!0;h.subscribe({topic:'rum/spa/rendered',callback:function(b,e){(g.undef(a.delayValue)||0<=(b.pageType+'-'+b.viewType).indexOf(a.delayValue))&&a.afterShock()}});return this};return this};var Eb=!1,Fb=!1,Q=function(){0==Fb&&(h.publish({topic:'sequencing/user/first', async:!1,persistent:!0,message:{}}),g.removeEvent(document,'mousemove',Q),g.removeEvent(document,'scroll',Q),g.removeEvent(document,'keydown',Q),g.removeEvent(document,'click',Q),g.removeEvent(document,'touchstart',Q),Fb=!0)};_delayed().prototype.firstInteraction=function(a,b){this.orgDelayType=this.delayType='firstInteraction';this.delayValue=[a,b];this.execute=function(){var c=this;this.executed=!0;h.subscribe({topic:'sequencing/user/first',callback:function(e,d){1!=a||f.afterShockLoaded?c.afterShock(): c.defer(b?b:0)}})};return this};0==Eb&&(Eb=!0,g.addEvent(document,'mousemove',Q),g.addEvent(document,'scroll',Q),g.addEvent(document,'keydown',Q),g.addEvent(document,'click',Q),g.addEvent(document,'touchstart',Q));var Ca={};f.chaining={};_lastChainedResource=function(a,b){var c=Ca[a];if(1==g.undef(c))return Ca[a]=[b],null;c.push(b);return c[c.length-2]};h.subscribe({topic:'core/load',callback:function(){}});_delayed().prototype.chain=function(a){this.orgDelayType=this.delayType='chain';this.chainId= this.delayValue=a;if(1==g.undef(this.before))return this;if(1==g.isIE()&&0==f.optimizeIE)return g.log('Override defer on IE',this.url),this.none();var b=_lastChainedResource(a,this);this.chainIndex=null==b?0:b.chainIndex+1;this.key='chained-resource-'+a+'-'+this.chainIndex;this.beforeLoading(function(a){1==g.undef(a.writeSelector)&&(a.writeSelector=a.domElement||a.me);1==g.def(a.writeSelector)&&(a.writeSelector.id&&''!=a.writeSelector.id?a.writeSelector='#'+a.writeSelector.id:a.writeSelector.setAttribute&& (a.writeSelector.setAttribute('id',a.key),a.writeSelector='#'+a.key),0==f.sequenceWrites&&(f.sequenceWrites=!0,q.sequence.document(document)));var b=f.chaining[a.chainId];b&&0==a.chainIndex&&!0!==b.started&&(b.started=!0,h.publish({topic:'sequence/chain/'+a.chainId+'/starting',message:{id:a.key,config:b,resources:Ca[a.chainId]}}))});if(null==b){var c=f.chaining[a];1==g.def(c)?c(this):this.defer(10);f.chaining[a]={started:!1,resources:[]}}else this.execute=function(){this.key='chained-resource-'+a+ '-'+this.chainIndex;this.before&&this.before.src&&(this.key+='/'+this.before.src);this.executed=!0;var c=this;h.subscribe({topic:'sequence/afterloaded/'+b.key,context:this,callback:function(a){g.log('Loading chained resource',a);c.afterShock()}});this.afterLoaded(function(a){var b=f.chaining[a.chainId],c=Ca[a.chainId];c&&a.chainIndex==c[c.length-1].chainIndex&&!0!==b.finished&&(b.finished=!0,h.publish({topic:'sequence/chain/'+a.chainId+'/finished',message:{id:a.chainId,config:b,resources:c}}))})}; return this};var ra={},aa=null;_isImageLike=function(a){return-1!='imgpicturesourceiframe'.indexOf(a)};var lc=function(a,b){for(var c=f.scan.length,e=0;e<c;e++)if(f.scan[e]===b){var d=a.getAttribute('src'),g={domElement:a,src:''!=a.src?d:a.textContent,nodeName:'dom'};ua(g,g,function(c,e){c=c.clone();c.type='dom';c.src=d;c.newNode=e;f.delayed.push(c);'script'==b&&(a.setAttribute(f.pre+'type',a.getAttribute('type')),a.type='yo/sequence/'+c.delayType+'/'+c.delayValue,''!=a.src?(a.setAttribute(f.pre+ 'src',a.src),a.src=''):a.setAttribute(f.pre+'how','eval'))})}},Gb=function(a){'none'===a&&null!==aa?(aa.disconnect(),aa=null):'none'!==a&&'undefined'!==typeof MutationObserver&&null==aa&&(aa=new MutationObserver(function(a){for(var b=0;b<a.length;b++)for(var e=a[b].addedNodes,d=0;d<e.length;d++){var h=e[d];if(h.nodeType===Node.ELEMENT_NODE){var l=h.nodeName.toLowerCase();if('body'===l)C.node(h),'top'===f.scrapeLevel&&aa.disconnect();else if('sequencing'===f.scrapeLevel&&(null==h.type||h.type.indexOf&& -1==h.type.indexOf('yo/sequence')))try{lc(h,l)}catch(ma){g.log('Exception _sequenceScraping',ma)}}}}),aa.observe(document,{childList:!0,subtree:!0,attributes:!1,characterData:!1}))};Gb(f.scrapeLevel);h.subscribe({topic:'core/configure',callback:function(a,b){Na();Gb(a.scrapeLevel)}});ra.createElement=function(a){a.yo_createElement||(a.yo_createElement=a.createElement,a.createElement=function(b){var c=a.yo_createElement(b),e=b.toLowerCase();g.log('_sequencing.createElement',c,b);if(('iframe'==e||'script'== e)&&1==g.undef(c.yo_src_override)){c.yo_src_override=!0;try{Object.defineProperty(c,'src',{set:function(a){if(this.yo_src=a)if(g.log('Object.src',a),nodeConfig=oa(this),null!=nodeConfig&&'none'!=nodeConfig.delayType){if(a=nodeConfig.clone(),a.type='attributesrc',a.newNode=this,a.before=this,a.me=this,f.delayed.push(a),domCompleteTriggered)return a.execute()}else this.setAttribute('src',a)},get:function(){return this.yo_src?this.yo_src:''}})}catch(k){g.log(k)}}return c})};ra.create=function(a){var b= null;if(1===arguments.length)b=Y(a);else if(2===arguments.length){var c=arguments[0],e=arguments[1];b=Y(function(a){if('dom'==a.nodeName&&a.domElement.src&&0<a.domElement.src.length){var b=!1,d=!1;null!=c&&(b=null!=a.domElement.src.match(c));null!=e&&(d=null!=a.domElement.src.match(e));if(1==b&&1==d)return Yo.utils.log('This node was both excluded and include. It will be excluded - ',a),!1;Yo.utils.log('Included - ',b,'Excluded - ',d,' - ',a);return d?!d:b}Yo.utils.log('NODE => bypass nothing to do ', a);return!1})}'sequencing'!=f.scrapeLevel&&q.configure({scrapeLevel:'sequencing'});b.nodeName='dom';return b};1==g.isIE()&&1==f.optimizeIE&&ra.createElement(document);h.subscribe({topic:'core/load',callback:function(){}});_delayed().prototype.alwaysBefore=function(a){this.alwaysBefore=a;if(1==g.isIE()&&0==f.optimizeIE)return g.log('Override defer on IE',this.url),this.none();var b=this.execute;this.execute=function(){1==g.def(b)&&b.call(this);if(0!=f.afterShockLoaded&&1!=this.alwaysBeforeExecuted){this.alwaysBeforeExecuted= !0;g.log('Loading ',this.newNode,' via alwaysBefore timer event. It will load in ',this.alwaysBefore);var a=this;fa(function(){a.afterShock()},1*this.alwaysBefore);return this}};return this};var C={};domCompleteTriggered=!1;C.node=function(a){if(a=g.select(a))a.yo_ac=g.def(a.yo_ac)?a.yo_ac:a.appendChild,a.yo_ib=g.def(a.yo_ib)?a.yo_ib:a.insertBefore,a.yo_a=g.def(a.yo_a)?a.yo_a:a.append,a.appendChild=Tb,a.append=Ub,a.insertBefore=Sb};C.clearNode=function(a){g.def(a.yo_ib)&&(a.insertBefore=a.yo_ib); g.def(a.yo_ac)&&(a.appendChild=a.yo_ac);g.def(a.yo_a)&&(a.append=a.yo_a)};C.addScanner=function(a){f.scan||(f.scan=[]);-1===g.inArray(a,f.scan)&&f.scan.push(a)};C.displayNow=function(a){!0===a&&'active'==q.rum.get().optState&&(a=!1);g.log('Handle the display of all visible tags up to now.');C.scanTags(!0,a);Z.scrollHandler({})};C.createTimer=function(a,b){Yo.configure({lazyTimer:a});b&&Yo.configure({lazyCheckSize:b})};C.resource=Y;C.script=function(a,b,c){var e=Y(a);1==g.isFunction(a)?(e.src='[object Function]'+ a.name,e.key=c||'[object Function]'+a.name,e.func=a):(e.src=a,e.newNode=a,1==g.def(c)&&(e.key=c));1==g.undef(b)&&(b={});e.before={src:a,attributes:b};e.load=function(a){var c=document.createElement('script');c.type='text/javascript';b.async=!0;for(var e in b)null!=b[e]&&c.setAttribute(e,b[e]);c.yo_src=this.url;(a||document.getElementsByTagName('script')[0].parentNode).appendChild(c);return this};e.eval=function(){f.delayed.push(this);this.how='eval';this.type='inner';this.execute();return this};e.apply= function(a,b){f.delayed.push(this);this.how='apply';this.type='function';this.funcThis=a;this.funcParameters=b;this.execute();return this};e.writeLocation=function(a){this.writeSelector=a;return this};return e};C.xhr=K.create;C.content=function(a){var b=_loadFromDOM(a);h.publish({topic:'sequence/captured',message:{delayed:b,location:a}});b.load=function(){g.log('Sequence a script = ',a,', type '+this.type);null==this.delayType||'none'==this.delayType?g.log('Content found that needs to be loaded immediately'): g.log('Content found that needs to be sequenced',this.delayType,this.delayValue);this.execute(f.delayed.length-1);f.delayed.push(this)};return b};C.event=ia;C.image=function(a){1!=f.sequenceImage&&q.configure({sequenceImage:!0});var b=Y(a);b.nodeName='image';b.webWorkerCallback=!1;b.webWorker=function(a,e){b.webWorkerCallback=e||!0;b.webWorkerFetchOptions=a;return b};return b};C.dom=ra.create;C.createElement=ra.createElement;C.scanTags=function(a,b){if(f.scan){for(var c=0,e=f.scan.length;c<e;c++)_findTags(f.scan[c], b);!0!==a&&(f.scan=[])}};C.cloakImages=function(a,b){if(1!=g.undef(d.btoa))for(var c=0,e=a.length;c<e;c+=1){var k=a[c],f=document.getElementsByTagName(k);g.log('Cloak '+k);for(var h=0,l=f.length;h<l;h+=1)for(var m=f[h],n=0,p=b.length;n<p;n+=1){var q=b[n],r=m.getAttribute(q);null!=r&&(g.log('Cloak '+k,q,r),m.setAttribute(q,'data:image/cloaked;base64,'+btoa(r)))}}};C.document=ib;C.captureMethods=K.captureMethods;C.overrideMethods=K.overrideMethods;var Hb=document.getElementsByTagName('script');0<Hb.length&& C.node(Hb[0].parentNode);C.node(document.getElementsByTagName('head')[0]);var cb=document.getElementsByTagName('body');null!=cb&&0<cb.length&&C.node(cb[0]);g.addEvent(document,'readystatechange',function(a){'interactive'===document.readyState&&(g.log('readystatechange is document.interactive, calling displayNow'),'unknown'!==q.rum.get().optState&&C.displayNow(!0))});h.subscribe({topic:'core/start',callback:function(){Na()}});h.subscribe({topic:'core/configure',callback:function(a,b){Na()}});h.subscribe({topic:'core/load', callback:function(){domCompleteTriggered=!0;for(var a=0;a<f.delayed.length;a++)f.delayed[a].execute()}});f.services=[];var ja={add:function(a){a={afterLoaded:Ya,beforeLoading:Xa,host:a.host,key:'*'+a.host+'*',properties:a,name:a.name,budget:a.budget};f.services.push(a);h.publish({topic:'services/add',message:a});return a},findByHost:function(a){for(var b=ja.list(),c=0;c<b.length;c++){var e=b[c];if(1==g.matchUrl(e.host,a))return g.log('Found service configuration for '+a+' service ',e),e}g.log('Did NOT find service configuration for '+ a+' checking local configuration. ');return null},findByName:function(a){for(var b=ja.list(),c=0;c<b.length;c++){var e=b[c];if(e.name==a)return g.log('Found service configuration for '+a+' service ',e),e}g.log('Did NOT find service configuration for '+a+' checking local configuration. ');return null},list:function(){return f.services}},ba={};f.scheduling={onLoadTime:null,lastScheduleTime:6E3,last:100,step:100,scheduled:!1,hosts:[],priorities:{low:{last:3E3,step:100},medium:{last:1E3,step:100},high:{last:100, step:100},critical:{last:-1}},prioritiesToKeep:[],serviceToKeep:[],budgetTime:!1,servicesToBudget:[],loadTime:(new Date).getTime()};ba.resource=function(a){return{afterLoaded:Ya,beforeLoading:Xa,src:a,key:'*'+a+'*'}};ba.bestFit=function(){f.scheduling.type='bestfit';f.scheduling.scheduled=!0};ba.priority=function(a){f.scheduling.type='priority';f.scheduling.scheduled=!0;if(a&&a.services)for(var b=0;b<a.services.length;b++)q.services.add(a.services[b])};ba.spread=function(a){f.scheduling.type='spread'; g.def(a)&&(f.scheduling.step=a);f.scheduling.scheduled=!0};ba.configure=function(a){for(var b in a)f.scheduling[b]=a[b];h.publish({topic:'schedule/configure',message:f});return f.scheduling};ba.budget=function(a){if(a){a.budgetTime&&(f.scheduling.budgetTime=a.budgetTime);a.prioritiesToKeep&&(f.scheduling.prioritiesToKeep=a.prioritiesToKeep);if(a.servicesToBudget){f.scheduling.servicesToBudget=a.servicesToBudget;for(var b=0;b<a.servicesToBudget.length;b++){var c=a.servicesToBudget[b];c.budget=!0;q.services.add(c)}}f.scheduling.budgeter= a.budgeter?a.budgeter:mc}};h.subscribe({topic:'core/start',callback:function(){}});h.subscribe({topic:'sequence/captured',callback:function(a,b){null!=f.scheduling.onLoadTime&&(new Date).getTime()>f.scheduling.onLoadTime+f.scheduling.lastScheduleTime?g.log('Scheduling has expired',f.scheduling.lastScheduleTime):1==f.scheduling.scheduled&&('spread'==f.scheduling.type?db(a,b):'bestfit'!=f.scheduling.type&&'priority'==f.scheduling.type&&nc(a,b))}});var nc=function(a,b){if(a.newNode){var c=a.newNode.src; if(c&&0<c.length){var e=eb(c),d=ja.findByHost(e);if(null!=e&&-1==f.scheduling.hosts.indexOf(e)){if(null==d)return db(a,b);var l=f.scheduling.priorities[d.properties.priority];g.log('Service found ',d.properties.name,d.properties.priority);if(1==g.undef(l))return db(a,b);0<=l.last&&(l.last+=l.step,h.subscribe({topic:'sequence/beforeloading/*'+e+'*',callback:function(){-1==f.scheduling.hosts.indexOf(e)&&f.scheduling.hosts.push(e)}}),b=null!=f.scheduling.budgeter?f.scheduling.budgeter(d,c,a,f.scheduling): !1,g.log('Scheduling resource ',a.newNode.src,e,'defer',l.last,', isBudgeted = ',b),1==b?a.newNode.delayType='remove':(a.newNode.delayType='defer',a.newNode.delayValue=l.last))}}}},db=function(a,b){if(a.newNode&&(b=a.newNode.src)&&0<b.length){var c=eb(b),e=ja.findByHost(b);null!=c&&-1==f.scheduling.hosts.indexOf(c)&&(f.scheduling.last+=f.scheduling.step,h.subscribe({topic:'sequence/beforeloading/*'+c+'*',callback:function(){-1==f.scheduling.hosts.indexOf(c)&&f.scheduling.hosts.push(c)}}),b=null!= f.scheduling.budgeter?f.scheduling.budgeter(e,b,a,f.scheduling):!1,g.log('Scheduling resource ',a.newNode.src,c,'defer',f.scheduling.last,', isBudgeted = ',b),1==b?a.newNode.delayType='remove':(a.newNode.delayType='defer',a.newNode.delayValue=f.scheduling.last))}},mc=function(a,b,c,e){c=e.budgetTime;var d=eb(b);if(!1!==c){if((new Date).getTime()-f.scheduling.loadTime>=c){if(-1!=e.hosts.indexOf(d))return!1;if(e.servicesToBudget&&0<e.servicesToBudget.length)return(a=ja.findByHost(b))&&!0===a.budget? (z.addViolation(5,b),!0):!1;if(-1!=e.prioritiesToKeep.indexOf(a.properties.priority)||null!=a&&0==a.budget)return!1;z.addViolation(5,b);return!0}null!=a&&(a.budget=!1)}return!1},eb=function(a){return(a=a.split('/')[2])?a=a.split('.').slice(-2).join('.'):null};h.subscribe({topic:'core/load',callback:function(){f.scheduling.onLoadTime=(new Date).getTime()}});var fb={create:function(a){var b=f;-1==b.srcAttrs.indexOf('data-src')&&b.srcAttrs.push('data-src');-1==b.srcAttrs.indexOf('data-srcset')&&b.srcAttrs.push('data-srcset'); b.imagePipeline=a;h.subscribe({topic:'sequence/beforeloading/*',callback:function(b,e){g.log('Yo.imagePipeline.beforeLoading - ',b);e=b.before;var c=a.optimizer||fb.optimizer;c&&e&&e.nodeName&&'img'==e.nodeName.toLowerCase()&&(e=c(e,b.srcAttr))&&(g.log('Yo.imagePipeline updating image src - ',e),b.srcAttr=e)}})},rewrite:function(a,b){if(-1==b.indexOf('.yottaa.net')){var c=Yo.stats().config.imagePipeline;g.log('Yo.imagePipeline.rewrite',c,a,b);return location.protocol+c.cdn+'/'+c.profileId+'/'+a+'/'+ c.version+'/'+b}},optimizer:function(a,b,c){g.log('Yo.imagePipeline default image optimized',a,b);c=c||[];(a=g.browser())&&'chrome'===a.name?c.push('f_webp'):a&&'safari'===a.name&&13<=a.version&&c.push('f_jp2');return fb.rewrite('o~'+c.join(','),b)}},Jb=function(a,b){var c='ul= dl= dt= sd= sr= vp= ct= rtt='.split(' ');c[0]+=navigator.language;c[1]+=encodeURIComponent(d.location.href.substring(0,1E3));c[2]+=encodeURIComponent(document.title);c[3]+=d.screen.colorDepth;c[4]+=d.screen.width+','+d.screen.height; c[5]+=d.screen.availWidth+','+d.screen.availHeight;if(b)for(var e in b)c.push(e+'='+encodeURIComponent(b[e]));b=navigator.connection||navigator.mozConnection||navigator.webkitConnection;c[6]+=b?b.effectiveType:'unknown';c[7]+=b?b.rtt:'unknown';try{if(d.localStorage&&localStorage.getItem){var k=localStorage.getItem('rapid.testVariations');if(k&&'undefined'!=k)try{var g=JSON.parse(k);for(k=0;k<g.length;k++){var h=g[k];if(!1!==h.sticky){var m=(new Date).getTime()>h.time+(h.timeout||f.sessionTimeout); 'visitor'!=h.sticky&&!1!==m||c.push('testVariation='+h.testId+'-'+h.variationName)}}}catch(na){l.log('Configuration error - Exception parsing test variations',na)}if(-1!=(iPos=d.location.hash.indexOf('yoQoeConfig='))){var n=d.location.hash.substring(iPos+12).split('&');c=c.concat(n)}}}catch(na){l.log('Configuration error - create test variation data.',na)}if(1==l.def(d.fetch)&&1==f.newConfigFetch)fetch(a+'&'+c.join('&')).then(function(b){b.text().then(function(b){Ib(b,a)});return b})['catch'](function(a){l.log('Error from loading ctrl configuration via fetch', a)});else g=null,g=d.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject('Microsoft.XMLHTTP'),g.open('GET',a+'&'+c.join('&'),!1),g.send(''),Ib(g.responseText,a)},Ib=function(a,b){try{var c=document.createElement('script');c.type='text/javascript';c.text=a;document.getElementsByTagName('head')[0].appendChild(c);l.log('Adding Rapid CTRL script into DOM: ',b);if(d.localStorage&&localStorage.setItem){var e=z.get().testVariations;a=[];if(e){for(b=0;b<e.length;b++){var k=e[b];k.time=(new Date).getTime(); k.timeout=k.timeout||f.sessionTimeout;k.sticky=1==k.sticky?'session':k.sticky;a.push(k.testId)}var g=localStorage.getItem('rapid.testVariations');try{var m=JSON.parse(g);for(b=0;b<m.length;b++)-1==a.indexOf(m[b].testId)&&e.push(m[b])}catch(ma){l.log('Configuration error - Exception parsing test variations',ma)}localStorage.setItem('rapid.testVariations',JSON.stringify(e))}}h.publish({topic:'core/ctrlConfigLoaded',message:B.config})}catch(ma){l.log('Error handling the response from the ctrl configuration call', ma)}},Kb={releaseDate:'2024-03-13T20:07Z',version:'8.0.2',log:!1,resources:[],messageBridge:!1,defaultBlockedResponse:{status:200,body:'Blocked by service-worked'},security:{},handledResources:[],documentUri:'',publishHit:!0,caches:[],cacheHits:[],cacheTimeToLive:Number.MAX_SAFE_INTEGER,maxRefreshCount:3,cacheCheck:'htmlDocuments'};self._serviceWorkerConfig=Kb;var Da={},oc={EQ:function(a,b){return a===b},NEQ:function(a,b){return a!==b},CONTAIN:function(a,b){return-1<a.indexOf(b)},'NOT-CONTAIN':function(a, b){return-1===a.indexOf(b)},'STARTS-WITH':function(a,b){return 0===a.indexOf(b)},'ENDS-WITH':function(a,b){return a.indexOf(b)===a.length-b.length},IN:function(a,b){return!0===b.includes(a)},'NOT-IN':function(a,b){return!1===b.includes(a)},REGEX:function(a,b){return gb(a,b)},MATCH:function(a,b){return gb(a,b)},'NOT-MATCH':function(a,b){return 0==gb(a,b)},'>':function(a,b){try{return parseFloat(b)>parseFloat(a)}catch(c){return!1}},'>=':function(a,b){try{return parseFloat(b)>=parseFloat(a)}catch(c){return!1}}, '<':function(a,b){try{return parseFloat(b)<parseFloat(a)}catch(c){return!1}},'<=':function(a,b){try{return parseFloat(b)<=parseFloat(a)}catch(c){return!1}},'==':function(a,b){try{return parseFloat(a)==parseFloat(b)}catch(c){return!1}},'!=':function(a,b){try{return parseFloat(a)!=parseFloat(b)}catch(c){return!1}}},pc={PROTOCOL:function(a){return a.protocol},HOSTNAME:function(a){return a.hostname},HOST:function(a){return a.hostname},PATHNAME:function(a){return a.pathname},SEARCH:function(a){return a.search}, EXTENSION:function(a){var b=a.pathname.lastIndexOf('.');return-1==b?'':a.pathname.substring(b+1)}},qc={COUNTRYNAME:function(a){return a.countryname},COUNTRYCODE:function(a){return a.countrycode},REGION:function(a){return a.region},REGIONCODE:function(a){return a.regioncode},METRO:function(a){return a.metro},ZIPCODE:function(a){return a.zipcode},LONGITUDE:function(a){return a.longitude},LATITUDE:function(a){return a.latitude},CONTINENT:function(a){return a.continent}},rc={ALL:function(a){return!1}, 'function':function(a,b,c,e){return a.condition},'DOCUMENT-URI':function(a,b,c,e){return Kb.documentUri},'REQUEST-URI':function(a,b,c,e){return b.url},'USER-AGENT':function(a,b,c,e){return(e||d).navigator.userAgent},'User-Agent':function(a,b,c,e){return b.headers['User-Agent']},URI:function(a,b,c,e){return d.location.toString()},'URI-Component':function(a,b,c,e){return pc[a.request_property.toUpperCase()](b.uri)},Geo:function(a,b,c,e){return qc[a.request_property.toUpperCase()](b.geo)}};Da.matchAll= function(a,b,c){return new Promise(function(e,d){var k=Da.match(b,a,c);1!=k?d(k):e(a)})};Da.match=function(a,b,c){for(var e=0;e<b.length;e++)if(1==l.def(b[e].match)){a:{var d=a;for(var f=b[e].match,g=c,h=0;h<f.length;h++)if(0==Lb(f[h],d,g)){d=f[h];break a}d=!0}if(1!=d)return!1}else if(0==Lb(b[e],a,c))return b[e];return!0};var Lb=function(a,b,c){var e=rc[a.type||a.name];return e?(c=e(a,b,c,self),'function'===a.type?a.condition(a,b):'ALL'===a.type?!0:(b=oc[a.operator])&&c&&a.condition?b(c,a.condition): !1):!1},gb=function(a,b){try{if('object'===typeof b)return null!==a.match(b,'i');var c=b.indexOf('(?i)');return-1==c?null!==a.match(b):null!==a.match(new RegExp(b.substring(c+4),'i'))}catch(e){return l.log('Bad Regex in Condition',e),!1}},G={enableAssetDetection:function(){if(G.enabled)return!1;if(!G.shouldDetectAssets)return q.utils.log('Journey Hijacking asset detection disabled'),!1;if(!Oa())return q.utils.log('Journey Hijacking asset detection not supported'),!1;G.enabled=!0;q.utils.log('Journey Hijacking asset detection enabled'); p.config.detectOn&&(p.detectOnId=h.subscribe({topic:p.config.detectOn,callback:G.startDetection}));return!0},startDetection:function(){if(!G.enabled)return!1;q.utils.log('Journey Hijacking starting asset detection');h.publish({topic:'hijacking/start',message:p.config});pa=Wb();va=0;for(var a=p.supportedExtensions,b=0;b<a.length;b++){var c=a[b];c.assetUrls&&0!=c.assetUrls.length?lb(c.id,c.assetUrls,0):Pa(c.id,p.states.UNKNOWN)}return!0},isSupported:Oa,setAssetDetection:function(a){if(G.enabled||!1=== Oa())return!1;G.shouldDetectAssets=!0===a;return!0},resetAssetDetection:function(){G.enabled=!1;G.shouldDetectAssets=!0;pa&&(pa.terminate(),pa=null);va=0},shouldDetectAssets:!0,enabled:!1},va=0,pa=null;N=null;var xa={DETECTED:1,NOT_DETECTED:2,BLOCKED:3},Ra=[],Xb=document.createElement('div').remove,F={enableComponentDetection:function(){var a;if(a=!1===F.enabled)a:{a=p.supportedExtensions;for(var b=0;b<a.length;b++)if(a[b].components&&0<a[b].components.length){a=!0;break a}a=!1}a&&(Zb(),F.enabled= !0,q.utils.log('Component detection enabled'));return F.enabled},resetComponentDetection:function(){N&&N.disconnect();F.enabled=!1;F.checkedComponents=[];F.aggressiveBlocking=!1;for(var a=0;a<Ra.length;a++)h.unsubscribe(Ra[a])},checkedComponents:[],setAggressiveBlocking:function(a){F.aggressiveBlocking=!0===a},aggressiveBlocking:!1,enabled:!1},za=null,ya=null,hb={send:function(){return p.assetDetection.enabled&&!1===p.detectionComplete?(za=h.subscribe({topic:'hijacking/finished',callback:pb}),!1): pb()},resetAnalytics:function(){ob();null!==ya&&(h.unsubscribe(ya),ya=null);d.localStorage.removeItem(Sa())}},Ea={UNKNOWN:-1,INSTALLED:1,NOT_INSTALLED:2},p={configure:function(a){if(!1===qb())return q.utils.log('Journey Hijacking was configured but is not supported in this browser'),!1;if(p.enabled)return q.utils.log('Journey Hijacking already configured'),!1;if(!a.reportUri||!a.extensions||0===a.extensions.length)return q.utils.log('Journey Hijacking config is invalid. Detection not enabled.'),!1; void 0!==a.detectAssets&&G.setAssetDetection(a.detectAssets);void 0!==a.aggressiveBlocking&&F.setAggressiveBlocking(a.aggressiveBlocking);p.allExtensions=a.extensions;var b=p,c=a.extensions,e=g.browser().name;'safari'===e&&(e=g.isIos()?'safari_ios':'safari_mac');for(var d=[],f=0;f<c.length;f++){var l=c[f];l.browsers&&!l.browsers[e]||d.push(l)}b.supportedExtensions=d;if(0===p.supportedExtensions.length)return q.utils.log('No extensions supported for this browser.'),!1;q.utils.log(p.supportedExtensions.length+ ' extensions supported out of '+p.allExtensions.length+' for this browser.');a.hasOwnProperty('detectOn')||(a.detectOn='core/load');a.hasOwnProperty('sendOn')||(a.sendOn='rum/sendBeacon');p.config=a;q.stats().config.hijacking=a;'unknown'===p.optState&&(b=q.rum.get().optState,p.optState='none'===b?'active':b);if('disabled'===p.optState)return q.utils.log('Journey Hijacking disabled.'),!1;p.enabled=!0;F.enableComponentDetection();G.enableAssetDetection();p.config.sendOn&&(p.sendOnId=h.subscribe({topic:p.config.sendOn, callback:hb.send}));h.publish({topic:'hijacking/configure',message:a});return!0},startDetection:G.startDetection,isSupported:qb,setOptState:function(a){if(p.enabled)return!1;if(-1===['active','bypass','control','none','disabled'].indexOf(a))return q.utils.log('Invalid optState '+a),!1;p.optState=a;return!0},setExtensionState:function(a,b){var c=p.extensionState[a]===Ea.INSTALLED;c||(p.extensionState[a]=b);b===Ea.INSTALLED&&(p.hasDetectedExtensions=!0,c||(b={id:a,state:b},h.publish({topic:'hijacking/found/'+ a,persistent:!0,message:b}),h.publish({topic:'hijacking/found',message:b})))},extensionList:function(){for(var a=[],b=0;b<p.supportedExtensions.length;b++){var c=p.supportedExtensions[b],e=p.extensionState;a.push({id:c.id,state:c.id in e?e[c.id]:Ea.UNKNOWN})}return a},setAssetDetection:G.setAssetDetection,setAggressiveBlocking:F.setAggressiveBlocking,send:hb.send,reset:function(){p.detectOnId&&(h.unsubscribe(p.detectOnId),p.detectOnId=null);p.sendOnId&&(h.unsubscribe(p.sendOnId),p.sendOnId=null); p.enabled=!1;p.hasDetectedExtensions=!1;p.optState='unknown';p.detectionComplete=!1;p.allExtensions=[];p.supportedExtensions=[];p.extensionState={};p.config={};q.stats().config.hijacking={};F.resetComponentDetection();hb.resetAnalytics();G.resetAssetDetection();return!0},supportedExtensions:[],allExtensions:[],extensionState:{},enabled:!1,detectionComplete:!1,hasDetectedExtensions:!1,detectOnId:null,sendOnId:null,assetDetection:G,componentDetection:F,optState:'unknown',states:Ea};C.serviceWorker= function(a){var b=Y(a);b.finalize=function(){l.log('Sending the url ',a,'to the service worker so it can sequence it.');h.publish({topic:'service-worker/broker/sequence/finalize',message:[a,b.delayType,b.delayValue]})};return b};var S={create:function(a){1==l.undef(a.exclusions)&&1==l.def(f.serviceWorker)&&1==l.def(f.serviceWorker.exclusions)&&(a.exclusions=f.serviceWorker.exclusions);S._broker('create',arguments)},destroy:function(a){S._broker('destroy',arguments)},destroyAll:function(){S._broker('destroyAll', arguments)},putResources:function(a){S._broker('putResources',arguments)},removeResources:function(a){S._broker('removeResources',arguments)},refreshResources:function(a){S._broker('refreshResources',arguments)},stats:function(a){var b=h.subscribe({topic:'service-worker/cache/stats/return',callback:function(c){a(c.originalMessage);h.unsubscribe(b)}});S._broker('stats',[])},onCacheHit:function(a){h.subscribe({topic:'service-worker/cache/hit',callback:function(b){a(b.originalMessage.url)}})},_broker:function(a, b){h.publish({topic:'service-worker/broker/cache/'+a,message:Array.prototype.slice.call(b)})}};h.subscribe({topic:'core/start',callback:function(a,b){S.stats(function(a){B.serviceWorkers.cacheStats=a})}});var E={cache:S};f.serviceWorker={};E.manage=function(a){var b=a||f.serviceWorker;if('serviceWorker'in navigator&&!0===l.def(b))return new Promise(function(a,e){!0===Yo.utils.undef(b.scriptUrl)?b.scriptUrl='https://'+d.location.host+'/yottaa.service.worker.js':0==b.scriptUrl.startsWith('http')&&(1== b.scriptUrl.startsWith('/')&&(b.scriptUrl=b.scriptUrl.substring(1)),b.scriptUrl='https://'+d.location.host+'/'+b.scriptUrl);'install'===b.mode?E.install(b.scriptUrl,b.scope).then(function(c){null!=navigator.serviceWorker.controller&&!0===l.def(b.requiredVersion)?E.version().then(function(c){c.version!==b.requiredVersion?(Yo.utils.log('Service worker version mismatch; updating version from: ',c.version,'to',b.version),E.update(b.scriptUrl).then(function(){Yo.utils.log('Successfully updated version from: ', c.version,'to',b.version);a(c)}).catch(function(a){Yo.utils.log('Error updating version from: ',c.version,'to',b.version,' Error:',a);e(a)})):(Yo.utils.log('Service worker versions match ',b.version),a(c))}).catch(function(a){Yo.utils.log('Error getting version from: Error:',a);e(a)}):a(c)}).catch(function(a){Yo.utils.log('Error installing service worker. Error:',a);e(a)}):'uninstall'===b.mode?E.uninstall(b.scriptUrl).then(function(b){Yo.utils.log('Successfully uninstalled service worker');a(b)}).catch(function(a){Yo.utils.log('Error uninstalling service worker. Error:', a);e(a)}):(Yo.utils.log('No mode was set for on the configuration variable. { mode: <install|uninstall> }'),a({}))})};E.install=function(a,b){if('serviceWorker'in navigator)return new Promise(function(c,e){l.log('ServiceWorker API present, we will register our worker.');navigator.serviceWorker.register(a,{scope:b}).then(function(b){l.log('ServiceWorker registration successful',a,b.scope);h.publish({topic:'service-worker/installed',message:{scope:b.scope,scriptURL:b.active?b.active.scriptURL:a}}); c(b)}).catch(function(a){l.log('ServiceWorker registration failed: ',a);h.publish({topic:'service-worker/exception',message:a});e(a)})})};E.uninstall=function(a){if('serviceWorker'in navigator)return new Promise(function(b,c){l.log('ServiceWorker API present, we will attempt to unregister our worker.');E.get(a).then(function(e){e.unregister().then(function(c){l.log('ServiceWorker has been unregistered successfully, ',c);h.publish({topic:'service-worker/uninstalled',message:{scope:e.scope,scriptURL:e.active? e.active.scriptURL:a}});b(e)}).catch(function(b){l.log('Failed to unregister the url',a,b);c(b)})}).catch(function(b){l.log('We did not get the service work for',a,' we cannot unregister',b);c(b)})})};E.version=function(){if('serviceWorker'in navigator)return new Promise(function(a,b){if(1==Yo.utils.def(f.serviceWorker.version))a(f.serviceWorker.version);else{var c=h.subscribe({topic:'service-worker/version/info/return',callback:function(b){a(b.originalMessage);h.unsubscribe(c)}});h.publish({topic:'service-worker/broker/version/info', message:{}})}})};E.update=function(a){if('serviceWorker'in navigator)return new Promise(function(b,c){l.log('ServiceWorker API present, we will attempt to update our worker.');E.get(a).then(function(e){e.update().then(function(c){l.log('ServiceWorker has been updated successfully, ',c);h.publish({topic:'service-worker/updated',message:{scope:e.scope,scriptURL:e.active?e.active.scriptURL:a}});b(e)}).catch(function(b){l.log('Failed to update the url',a,b);c(b)})}).catch(function(b){l.log('We did not get the service work for', a,' we cannot update',b);c(b)})})};E.capability=function(){return'serviceWorker'in navigator};E.get=function(a){if('serviceWorker'in navigator)return new Promise(function(b,c){navigator.serviceWorker.getRegistrations().then(function(e){l.log('Service Workers registrations',e);(e=e.find(function(b){return 1==l.def(b.active)&&null!=b.active&&a==b.active.scriptURL}))?b(e):c({error:'Script url was not found: '+a})}).catch(function(a){c(a)})})};E.configure=function(a){for(var b in a)f.serviceWorker[b]= a[b];h.publish({topic:'service-worker/configure',message:f.serviceWorker});return f.serviceWorker};'serviceWorker'in navigator&&(l.log('ServiceWorker API present, initialize communication layer'),navigator.serviceWorker.addEventListener('message',function(a){if(a.data&&a.data.topic)return h.publish({topic:a.data.topic,message:{sendFromServiceWorker:!0,originalMessage:a.data.message}})}),h.subscribe({topic:'core/load',callback:function(a,b){h.publish({topic:'service-worker/application/loaded',message:{}})}}), h.subscribe({topic:'service-worker/start',callback:function(a,b){q.configure({})}}),h.subscribe({topic:/service-worker.*/,callback:function(a,b){if(navigator.serviceWorker.controller&&!0!==a.sendFromServiceWorker)try{return navigator.serviceWorker.controller.postMessage({message:a,topic:b})}catch(c){l.log('Post message to the service worker error',c)}}}));var w={ready:!1,version:1,prefetchAfter:36E5,initializeCore:function(a,b){var c=w.state();c.cacheNames=a||[];c.cacheObjects={};c.cacheUpdates=[]; c.serviceWorkerScriptUrl=b||f.serviceWorker.scriptUrl;c.version!=w.version&&(c.objectsAlreadyInCache=[]);c.version=w.version;w.state(c);w._serviceWorkerReady()},state:function(){if(0==arguments.length){try{return JSON.parse(localStorage.getItem('_tec.state'))||{}}catch(a){l.log('_tec: Error getting state',a)}return{}}try{return arguments[0].updatedAt=new Date,localStorage.setItem('_tec.state',JSON.stringify(arguments[0])),arguments[0]}catch(a){l.log('_tec: Error updating state',a)}},createCache:function(a, b){h.subscribe({topic:'tec/ready',callback:function(){var c=w.state();-1===c.cacheNames.indexOf(a.name)?(l.log('_tec: Adding cache object that was NOT already created',a),c.cacheNames.push(a.name),c.cacheObjects[a.name]=a,E.cache.create(a)):!0===b&&(l.log('_tec: Forcing cache object to be created that WAS already created',a),c.cacheObjects[a.name]=a,E.cache.create(a));w.state(c)}})},refreshResources:function(a,b){var c=w.state(),e=b||c.cacheNames;l.log('_tec: refreshResources for ',e,a||[/.*/]);h.subscribe({topic:'tec/ready', callback:function(){e.forEach(function(b){var e=c.cacheObjects[b];b={name:l.def(e)?e.name:b,process:'single',resources:a||[/.*/]};1==l.def(e)&&(b.version=e.version);E.cache.refreshResources(b)})}})},removeResources:function(a,b){var c=b||w.state().cacheNames;l.log('_tec: removeResources for ',c,a||[/.*/]);h.subscribe({topic:'tec/ready',callback:function(){c.forEach(function(b){var c=w.state(),e=c.cacheObjects[b];c.objectsAlreadyInCache=[];w.state(c);b={name:l.def(e)?e.name:b,resources:a||[/.*/]}; 1==l.def(e)&&(b.version=e.version);E.cache.removeResources(b)})}})},putResources:function(a,b){var c=w.state().cacheObjects[a];l.log('_tec: putResources for ',a,b,c);h.subscribe({topic:'tec/ready',callback:function(){var e={name:l.def(c)?c.name:a,resources:b};1==l.def(c)&&(e.version=c.version);E.cache.putResources(e)}})},sequencingInteraction:function(a,b,c){a.forEach(function(a){a.afterLoaded(function(){'refresh'===b?w.refreshResources(c):w.removeResources(c)})})},navigationInteraction:function(a, b,c){h.subscribe({topic:'core/load',callback:function(){null!=a.find(function(a){return a instanceof RegExp?null!=d.location.toString().match(a):-1!==a.indexOf('*')?null!=d.location.toString().match(new RegExp(a.replace(/\*/g,'.*'))):d.location.toString()===a})&&('refresh'===b?w.refreshResources(c):w.removeResources(c))}})},smartPrefetch:function(a,b,c,d){h.subscribe({topic:'tec/ready',callback:function(){b&&0<b.length&&'string'!==typeof b[0]&&(b=b.filter(function(a){return 1==l.undef(a.deviceType)? !0:l.isIos()||l.isAndroid()?2==a.deviceType:1==a.deviceType}).map(function(a){return a.pageUrl}));var e=w._findOnPageUrls(b,c||3);l.log('_tec: smartPrefetch being setup',a,b,c,e);w._fillCache(a,e,d||w.prefetchAfter)}})},cartReadiness:function(a,b){h.subscribe({topic:'tec/ready',callback:function(){var c=w.state();-1==c.cacheNames.indexOf(a)?(l.log('_tec: create cart-readiness cache',a,b),c.cacheNames.push('cart-readiness'),E.cache.create({name:'cart-readiness',prefetch:!0,process:'single',resources:[a], expireAfter:b||3E5,htmlDocuments:!0}),w.state(c)):l.log('_tec: cart-readiness cache should already be created',a,b)}})},_serviceWorkerReady:function(){!1===w.ready&&navigator.serviceWorker.ready.then(function(a){l.log('_tec: Service worker ready notification, configure message bridge',a);E.configure({messageBridge:!0});var b=h.subscribe({topic:'service-worker/*',callback:function(a,d){!1===w.ready&&(l.log('_tec: Service worker has started sending message consider it activated',d),w.ready=!0,h.unsubscribe(b), h.publish({topic:'tec/ready',persistent:!0,message:{}}),E.configure({messageBridge:!1}))}})})},_isExpired:function(a,b){a=(new Date(a)).getTime();return(new Date).getTime()>a+(b||w.prefetchAfter)},_findOnPageUrls:function(a,b,c){var e=Array.from(document.querySelectorAll('a:not([href*="#"])')).map(function(a){return a.href});a=a.map(function(a){return-1!=a.indexOf('://'+d.location.hostname)?a:0===a.indexOf('/')?d.location.protocol+'//'+d.location.host+a:d.location.protocol+'//'+d.location.host+'/'+ a});var f=w.state();f.updatedAt&&1!=w._isExpired(f.updatedAt,c)||(f.objectsAlreadyInCache=[]);var g=f.objectsAlreadyInCache||[];return a.reduce(function(a,c){a.length<=b&&-1!=e.indexOf(c)&&-1==g.indexOf(c)&&a.push(c);return a},[])},_fillCache:function(a,b){if(0<b.length){var c=w.state(),d=c.cacheObjects[a];c.objectsAlreadyInCache=(c.objectsAlreadyInCache||[]).concat(b);w.state(c);var f=!1;h.subscribe({topic:'tec/ready',callback:function(c,e){l.log('_tec: fill cache for smartPrefetch with new',b); 0==f&&(f=!0,c={name:l.def(d)?d.name:a,process:'single',refreshExisting:!1,resources:b},1==l.def(d)&&(c.version=d.version),E.cache.putResources(c))}})}}};d.Yo||(d.Yo={});q={utils:g,pubsub:h,configure:function(a,b){if('string'===typeof a)Jb(a,b);else for(var c in a)'resources'==c?f.resources=f.resources.concat(a.resources):'configurationUrl'==c?Jb(a[c],b):f[c]=a[c];h.publish({topic:'core/configure',message:f})},sequence:C,rum:z,insert:{HEAD_START:'head_start',HEAD_END:'head_end',BODY_START:'body_start', BODY_END:'body_end',location:function(a){document.write((null!=document.body?['<d',"iv id='yo_tag_",a,"'></d",'iv>']:['<scr',"ipt id='yo_tag_",a,"'></scr",'ipt>']).join(''));h.publish({topic:'tag/location/'+a,persistent:!0})},resource:function(a,b,c,d){var e=q.sequence.script(a);e.loaded=!0;h.subscribe({topic:'tag/location/'+b,callback:function(){var a=g.select('#yo_tag_'+b);q.sequence.node(a);c&&''!=c||(c='none');e[c](d);e.loaded=!1;e.load(a)}});return e},script:function(a,b,c,d){var e=Yo.sequence.script(a); e.loaded=!0;h.subscribe({topic:'tag/location/'+b,callback:function(){c&&''!=c||(c='none');e[c](d);e.loaded=!1;e.eval()}});return e},content:function(a,b,c,d){var e=document.createElement('script');c&&''!=c||(c='none');e.setAttribute('type','yo/sequencing/'+c+'/'+d);var f=Yo.sequence.content(e);f.loaded=!0;0==b.indexOf('css:')?h.subscribe({topic:'core/load',callback:function(){g.def(a.nodeName)?e.appendChild(a):e.innerHTML=a;var c=b.split(':');f.before=g.select(c[1]);3==c.length&&('after'==c[2]?null== f.before.nextSibling?(f.before=f.before.parentNode,f.how='append'):f.before=f.before.nextSibling:'prepend'==c[2]?0<f.before.childNodes.length?f.before=f.before.childNodes[0]:f.how='append':'append'==c[2]&&(f.how='append'));f.loaded=!1;f.load()}}):h.subscribe({topic:'tag/location/'+b,callback:function(){g.def(a.nodeName)?e.appendChild(a):e.innerHTML=a;f.loaded=!1;f.before=g.select('#yo_tag_'+b);f.load()}});return f}},stats:qa,geo:function(){if(0===arguments.length)return B.geo;1===arguments.length&& (B.geo=arguments[0],h.publish({topic:'core/geo',message:arguments[0]}))},services:ja,schedule:ba,imagePipeline:fb,spa:{trackMetrics:function(){z.spa()},startTransition:function(a,b){return h.publish({topic:'rum/spa/transition/start',message:{pageType:a,viewType:b}})},finishedRendering:function(a,b,c){return h.publish({topic:'rum/spa/rendered',message:{pageType:a,viewType:b,trigger:c}})}},context:Da,hijacking:p,serviceWorker:E,tec:w};d.Yo=q;h.publish({topic:'core/start',message:q});return q}); 
let yoRequest = {
  uri: {
    pathname: window.location.pathname,
    hostname: window.location.hostname,
    protocol: window.location.protocol,
    search: window.location.search,
    extension: window.location.pathname.substring(window.location.pathname.lastIndexOf(".") + 1)
  },
  headers: {
    "User-Agent": navigator.userAgent
  },
  geo: {}
};

(function(yottaaRequest){
  Yo.rum.initialize("https://qoe-1.yottaa.net/log-nt/event", 5.000000 > Math.random() * 100.0, "MJw5M6-_JgnSgw", true, {violationSize: 614400});
  var getForcedYoOptState = function(defaultValue){
      var urlHash = new URL(document.URL).hash;
      if (urlHash.length > 1) {
        var cookieTry = urlHash.substr(1);
        var split = cookieTry.split("=", 2);
        if (split[0] == "yo-opt-state" && split.length == 2) {
          document.cookie = cookieTry;
        }
      }
      if (document.cookie.includes('yo-opt-state')) {
         var found = document.cookie.split(';')
                   .map(c => c.trim())
                   .filter(c => c.startsWith("yo-opt-state"))
                   .map(c => {
                         if (c.includes("=")) {
                           pair = c.split("=");
                           return pair[1];
                         }
                         else {
                           return false;
                         }
                       })
                   .reduce(function(a, b) { return b;});
          if (found) {
             return found;
          }
      }
      return defaultValue;
  };
  var optState = getForcedYoOptState("none");
  var isControlRequest = optState == "control" || (optState == "none" && 0.10 > Math.random());
  var isBypassRequest = optState == "bypass";
  // Using Profile: Default Profile

  Yo.rum.set("profileId", 66117);

  // Action Sequence OneTrust

  if(!isControlRequest && !isBypassRequest){
    Yo.sequence.resource(Yo.utils.decodeSafeString("1trust.app")).none();

    optState = "active";
  }
  if(!isControlRequest && !isBypassRequest){
    Yo.sequence.resource(Yo.utils.decodeSafeString("cdn.cookielaw.org")).none();

  }
  if(!isControlRequest && !isBypassRequest){
    Yo.sequence.resource(Yo.utils.decodeSafeString("onetrust.com")).none();

  }
  // Action Sequence Yotpo

  if(!isControlRequest && !isBypassRequest){
    Yo.sequence.resource(Yo.utils.decodeSafeString("yotpo.com")).none();

    optState = "active";
  }
  // Action Sequence

  if(!isControlRequest && !isBypassRequest){
    Yo.sequence.resource(Yo.utils.decodeSafeString("cdn.shopify.com")).none();

    optState = "active";
  }
  // Action Sequence Shopify

  if(!isControlRequest && !isBypassRequest){
    Yo.sequence.resource(Yo.utils.decodeSafeString("cdn.shopify.com")).none();

    optState = "active";
  }
  if(!isControlRequest && !isBypassRequest){
    Yo.sequence.resource(Yo.utils.decodeSafeString("shopify.com")).none();

  }
  if(!isControlRequest && !isBypassRequest){
    Yo.sequence.resource(Yo.utils.decodeSafeString("us.myshopify.com")).none();

  }
  if(!isControlRequest && !isBypassRequest){
    Yo.sequence.resource(Yo.utils.decodeSafeString(".shopify.com")).none();

  }
  if(!isControlRequest && !isBypassRequest){
    Yo.sequence.resource(Yo.utils.decodeSafeString(".shopifysvc.com")).none();

  }
  if(!isControlRequest && !isBypassRequest){
    Yo.sequence.resource(Yo.utils.decodeSafeString(".shopifycloud.com")).none();

  }
  // Action Sequence

  if(!isControlRequest && !isBypassRequest){
    Yo.sequence.resource("//" + window.location.hostname).none();

    optState = "active";
  }
  // Action JavaScript

  if(!isControlRequest && !isBypassRequest){
  !function(){var e=null;if(document.body)return Yo.utils.log("Sequence body node, it already exists"),
void Yo.sequence.node(document.body);"undefined"!=typeof MutationObserver&&null==e&&(e=new MutationObserver(function(o){
for(var n=0;n<o.length;n++)for(var t=o[n].addedNodes,d=0;d<t.length;d++){
var u=t[d];u.nodeType===Node.ELEMENT_NODE&&"BODY"===u.nodeName&&
(Yo.utils.log("Sequence body node, found be MutationObserver"),Yo.sequence.node(u),e.disconnect())}}),
Yo.utils.log("MutationObserver to find body node"),e.observe(document,{childList:!0,subtree:!0,attributes:!1,characterData:!1}))}
(document,MutationObserver);
  }
  // Action Sequence iFrames

  if(!isControlRequest && !isBypassRequest){
    Yo.sequence.resource(Yo.utils.decodeSafeString("about:blank")).none();

    optState = "active";
  }
  if(!isControlRequest && !isBypassRequest){
    Yo.sequence.resource(Yo.utils.decodeSafeString("javascript:")).none();

  }
  // Action Sequence jQuery

  if(!isControlRequest && !isBypassRequest){
    Yo.sequence.resource(Yo.utils.decodeSafeString("jquery")).none();

    optState = "active";
  }
  // Action Sequence Google Analytics Universal

  if(!isControlRequest && !isBypassRequest){
    Yo.sequence.resource(Yo.utils.decodeSafeString("analytics.js")).none();

    optState = "active";
  }
  if(!isControlRequest && !isBypassRequest){
    Yo.sequence.resource(Yo.utils.decodeSafeString("google-analytics.com")).none();

  }
  // Action Sequence Google Tag Manager

  if(!isControlRequest && !isBypassRequest){
    Yo.sequence.resource(Yo.utils.decodeSafeString("googletagmanager")).none();

    optState = "active";
  }
  // Action Sequence

  if(!isControlRequest && !isBypassRequest){
    Yo.sequence.resource(Yo.utils.decodeSafeString("/.*/")).defer(0);

    optState = "active";
  }
  if (isBypassRequest) {
    Yo.rum.set("optState", "bypass");
  } else if (isControlRequest) {
    Yo.rum.set("optState", "control");
  } else {
    Yo.rum.set("optState", optState);
  }
})(yoRequest);
</script>
<script>window.BulletproofB2B = false;</script><script>
  /*
  
  */
  var elevarPageType = "index";
  var elevarPageTitle = "Bulletproof Coffee, MCT Oil \u0026amp; Collagen | Shop Bulletproof";
  
</script>
<script src="//www.bulletproof.com/cdn/shop/t/617/assets/elevar-customizations.js?v=107344514954131688831789540245" defer="defer"></script>


<script>
document.addEventListener('DOMContentLoaded', () => {
  window.dataLayer = window.dataLayer || [];
  /*
  
  */

  window.dataLayer.push({
    
    

  });
  
  

  /*
  
  */  

  
});
</script>
<title>Bulletproof Coffee, MCT Oil &amp; Collagen | Shop Bulletproof</title><meta name="description" content="You want coffee that fuels you, delicious snacks and proven supplements. Bulletproof products deliver. Explore our shop and see how our products are different."><meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  <meta name="viewport" content="viewport-fit=cover, width=device-width, initial-scale=1">
  <meta name="google-site-verification" content="8u7VcVP0NskilvbLnqXG5Sz_GCRYy6jnqQklIp3K4Ew" /><meta name="p:domain_verify" content="c2507c65803eceb4299194c6c304a2f3"/>
  <meta name="theme-color" content="#ff5100">

  <link rel="preconnect" href="https://cdn.shopify.com" crossorigin>
  <link rel="preload" href="//www.bulletproof.com/cdn/shop/t/617/assets/Fields-Regular.woff2?v=12867807506987010451776326502" as="font" type="font/woff2" crossorigin>
  <link rel="preload" href="//www.bulletproof.com/cdn/shop/t/617/assets/Fields-Medium.woff2?v=45480833541647195721776326501" as="font" type="font/woff2" crossorigin>
  <link rel="preload" href="//www.bulletproof.com/cdn/shop/t/617/assets/Fields-Bold.woff2?v=45367906678878174141776326501" as="font" type="font/woff2" crossorigin>
  <link rel="preload" href="//www.bulletproof.com/cdn/shop/t/617/assets/Dosis-Bold.woff2?v=102548650403799063391776326500" as="font" type="font/woff2" crossorigin>
      <link rel="canonical" href="https://www.bulletproof.com/"><link rel="shortcut icon" href="//www.bulletproof.com/cdn/shop/files/favicon-bp.jpg?crop=center&height=32&v=1748850660&width=32" type="image/png">
<script>
  if (sessionStorage.getItem('notification-bar-hidden')) document.documentElement.classList.add('notification-bar--hidden');
</script>
<style>
  .notification-bar--hidden .notification-bar {
    display: none;
  }
</style><script>
  window.SubscriptionPromotions = [];
  window.SubscriptionPromotionsFunction = [{"enabled":false,"item_tag":"gwp-free-1","qualifying_tag":"get-gwp-free-1","message":"Free glass tumbler with new subscription!","subscription_required":true,"remove_unqualifying_gift":true}];
</script>
<!-- /snippets/social-meta-tags.liquid -->



<meta name="twitter:site" content="@">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Bulletproof Coffee, MCT Oil &amp; Collagen | Shop Bulletproof">
<meta name="twitter:description" content="You want coffee that fuels you, delicious snacks and proven supplements. Bulletproof products deliver. Explore our shop and see how our products are different.">
<meta name="twitter:image:alt" content="Bulletproof Coffee, MCT Oil &amp; Collagen | Shop Bulletproof">



<meta property="og:site_name" content="Bulletproof">
<meta property="og:url" content="https://www.bulletproof.com/">
<meta property="og:title" content="Bulletproof Coffee, MCT Oil &amp; Collagen | Shop Bulletproof">
<meta property="og:type" content="website">
<meta property="og:description" content="You want coffee that fuels you, delicious snacks and proven supplements. Bulletproof products deliver. Explore our shop and see how our products are different.">

<style>@font-face{ font-family: 'Fields'; font-style: normal; font-weight: 400; src: local('Fields-Regular'), url(//www.bulletproof.com/cdn/shop/t/617/assets/Fields-Regular.woff2?v=12867807506987010451776326502) format('woff2'); font-display: swap}@font-face{ font-family: 'Fields'; font-style: normal; font-weight: 500; src: local('Fields-Medium'), url(//www.bulletproof.com/cdn/shop/t/617/assets/Fields-Medium.woff2?v=45480833541647195721776326501) format('woff2'); font-display: swap}@font-face{ font-family: 'Fields'; font-style: normal; font-weight: 700; src: local('Fields-Bold'), url(//www.bulletproof.com/cdn/shop/t/617/assets/Fields-Bold.woff2?v=45367906678878174141776326501) format('woff2'); font-display: swap}@font-face{ font-family: 'Dosis'; font-style: normal; font-weight: 700; src: local('Dosis-Bold'), url(//www.bulletproof.com/cdn/shop/t/617/assets/Dosis-Bold.woff2?v=102548650403799063391776326500) format('woff2'); font-display: swap}</style>
<style>/**
 * Swiper 12.0.3
 * Most modern mobile touch slider and framework with hardware accelerated transitions
 * https://swiperjs.com
 *
 * Copyright 2014-2025 Vladimir Kharlampidi
 *
 * Released under the MIT License
 *
 * Released on: October 21, 2025
 */

:root{--swiper-theme-color:#007aff}:host{display:block;margin-left:auto;margin-right:auto;position:relative;z-index:1}.swiper{display:block;list-style:none;margin-left:auto;margin-right:auto;overflow:hidden;padding:0;position:relative;z-index:1}.swiper-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{box-sizing:initial;display:flex;height:100%;position:relative;transition-property:transform;transition-timing-function:var(--swiper-wrapper-transition-timing-function,initial);width:100%;z-index:1}.swiper-android .swiper-slide,.swiper-ios .swiper-slide,.swiper-wrapper{transform:translateZ(0)}.swiper-horizontal{touch-action:pan-y}.swiper-vertical{touch-action:pan-x}.swiper-slide{display:block;flex-shrink:0;height:100%;position:relative;transition-property:transform;width:100%}.swiper-slide-invisible-blank{visibility:hidden}.swiper-autoheight,.swiper-autoheight .swiper-slide{height:auto}.swiper-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-backface-hidden .swiper-slide{backface-visibility:hidden;transform:translateZ(0)}.swiper-3d.swiper-css-mode .swiper-wrapper{perspective:1200px}.swiper-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-3d{perspective:1200px;.swiper-cube-shadow,.swiper-slide{transform-style:preserve-3d}}.swiper-css-mode{>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none;&::-webkit-scrollbar{display:none}}>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}&.swiper-horizontal{>.swiper-wrapper{scroll-snap-type:x mandatory}}&.swiper-vertical{>.swiper-wrapper{scroll-snap-type:y mandatory}}&.swiper-free-mode{>.swiper-wrapper{scroll-snap-type:none}>.swiper-wrapper>.swiper-slide{scroll-snap-align:none}}&.swiper-centered{>.swiper-wrapper:before{content:"";flex-shrink:0;order:9999}>.swiper-wrapper>.swiper-slide{scroll-snap-align:center center;scroll-snap-stop:always}}&.swiper-centered.swiper-horizontal{>.swiper-wrapper>.swiper-slide:first-child{margin-inline-start:var(--swiper-centered-offset-before)}>.swiper-wrapper:before{height:100%;min-height:1px;width:var(--swiper-centered-offset-after)}}&.swiper-centered.swiper-vertical{>.swiper-wrapper>.swiper-slide:first-child{margin-block-start:var(--swiper-centered-offset-before)}>.swiper-wrapper:before{height:var(--swiper-centered-offset-after);min-width:1px;width:100%}}}.swiper-3d{.swiper-slide-shadow,.swiper-slide-shadow-bottom,.swiper-slide-shadow-left,.swiper-slide-shadow-right,.swiper-slide-shadow-top{height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:10}.swiper-slide-shadow{background:#00000026}.swiper-slide-shadow-left{background-image:linear-gradient(270deg,#00000080,#0000)}.swiper-slide-shadow-right{background-image:linear-gradient(90deg,#00000080,#0000)}.swiper-slide-shadow-top{background-image:linear-gradient(0deg,#00000080,#0000)}.swiper-slide-shadow-bottom{background-image:linear-gradient(180deg,#00000080,#0000)}}.swiper-lazy-preloader{border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top:4px solid #0000;box-sizing:border-box;height:42px;left:50%;margin-left:-21px;margin-top:-21px;position:absolute;top:50%;transform-origin:50%;width:42px;z-index:10}.swiper-watch-progress .swiper-slide-visible,.swiper:not(.swiper-watch-progress){.swiper-lazy-preloader{animation:swiper-preloader-spin 1s linear infinite}}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.swiper-virtual .swiper-slide{-webkit-backface-visibility:hidden;transform:translateZ(0)}.swiper-virtual.swiper-css-mode{.swiper-wrapper:after{content:"";left:0;pointer-events:none;position:absolute;top:0}}.swiper-virtual.swiper-css-mode.swiper-horizontal{.swiper-wrapper:after{height:1px;width:var(--swiper-virtual-size)}}.swiper-virtual.swiper-css-mode.swiper-vertical{.swiper-wrapper:after{height:var(--swiper-virtual-size);width:1px}}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{align-items:center;color:var(--swiper-navigation-color,var(--swiper-theme-color));cursor:pointer;display:flex;height:var(--swiper-navigation-size);justify-content:center;position:absolute;width:var(--swiper-navigation-size);z-index:10;&.swiper-button-disabled{cursor:auto;opacity:.35;pointer-events:none}&.swiper-button-hidden{cursor:auto;opacity:0;pointer-events:none}.swiper-navigation-disabled &{display:none!important}svg{height:100%;object-fit:contain;transform-origin:center;width:100%;fill:currentColor;pointer-events:none}}.swiper-button-lock{display:none}.swiper-button-next,.swiper-button-prev{margin-top:calc(0px - var(--swiper-navigation-size)/2);top:var(--swiper-navigation-top-offset,50%)}.swiper-button-prev{left:var(--swiper-navigation-sides-offset,4px);right:auto;.swiper-navigation-icon{transform:rotate(180deg)}}.swiper-button-next{left:auto;right:var(--swiper-navigation-sides-offset,4px)}.swiper-horizontal{.swiper-button-next,.swiper-button-prev,~.swiper-button-next,~.swiper-button-prev{margin-left:0;margin-top:calc(0px - var(--swiper-navigation-size)/2);top:var(--swiper-navigation-top-offset,50%)}&.swiper-rtl .swiper-button-next,&.swiper-rtl~.swiper-button-next,&~.swiper-button-prev,.swiper-button-prev{left:var(--swiper-navigation-sides-offset,4px);right:auto}&.swiper-rtl .swiper-button-prev,&.swiper-rtl~.swiper-button-prev,&~.swiper-button-next,.swiper-button-next{left:auto;right:var(--swiper-navigation-sides-offset,4px)}&.swiper-rtl .swiper-button-next,&.swiper-rtl~.swiper-button-next,&~.swiper-button-prev,.swiper-button-prev{.swiper-navigation-icon{transform:rotate(180deg)}}&.swiper-rtl .swiper-button-prev,&.swiper-rtl~.swiper-button-prev{.swiper-navigation-icon{transform:rotate(0deg)}}}.swiper-vertical{.swiper-button-next,.swiper-button-prev,~.swiper-button-next,~.swiper-button-prev{left:var(--swiper-navigation-top-offset,50%);margin-left:calc(0px - var(--swiper-navigation-size)/2);margin-top:0;right:auto}.swiper-button-prev,~.swiper-button-prev{bottom:auto;top:var(--swiper-navigation-sides-offset,4px);.swiper-navigation-icon{transform:rotate(-90deg)}}.swiper-button-next,~.swiper-button-next{bottom:var(--swiper-navigation-sides-offset,4px);top:auto;.swiper-navigation-icon{transform:rotate(90deg)}}}.swiper-pagination{position:absolute;text-align:center;transform:translateZ(0);transition:opacity .3s;z-index:10;&.swiper-pagination-hidden{opacity:0}&.swiper-pagination-disabled,.swiper-pagination-disabled>&{display:none!important}}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-bullets.swiper-pagination-horizontal,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:var(--swiper-pagination-bottom,8px);left:0;top:var(--swiper-pagination-top,auto);width:100%}.swiper-pagination-bullets-dynamic{font-size:0;overflow:hidden;.swiper-pagination-bullet{position:relative;transform:scale(.33)}.swiper-pagination-bullet-active,.swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullet-active-next-next{transform:scale(.33)}}.swiper-pagination-bullet{background:var(--swiper-pagination-bullet-inactive-color,#000);border-radius:var(--swiper-pagination-bullet-border-radius,50%);display:inline-block;height:var(--swiper-pagination-bullet-height,var(--swiper-pagination-bullet-size,8px));opacity:var(--swiper-pagination-bullet-inactive-opacity,.2);width:var(--swiper-pagination-bullet-width,var(--swiper-pagination-bullet-size,8px));button&{appearance:none;border:none;box-shadow:none;margin:0;padding:0}.swiper-pagination-clickable &{cursor:pointer}&:only-child{display:none!important}}.swiper-pagination-bullet-active{background:var(--swiper-pagination-color,var(--swiper-theme-color));opacity:var(--swiper-pagination-bullet-opacity,1)}.swiper-pagination-vertical.swiper-pagination-bullets,.swiper-vertical>.swiper-pagination-bullets{left:var(--swiper-pagination-left,auto);right:var(--swiper-pagination-right,8px);top:50%;transform:translate3d(0,-50%,0);.swiper-pagination-bullet{display:block;margin:var(--swiper-pagination-bullet-vertical-gap,6px) 0}&.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px;.swiper-pagination-bullet{display:inline-block;transition:transform .2s,top .2s}}}.swiper-horizontal>.swiper-pagination-bullets,.swiper-pagination-horizontal.swiper-pagination-bullets{.swiper-pagination-bullet{margin:0 var(--swiper-pagination-bullet-horizontal-gap,4px)}&.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap;.swiper-pagination-bullet{transition:transform .2s,left .2s}}}.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:transform .2s,right .2s}.swiper-pagination-fraction{color:var(--swiper-pagination-fraction-color,inherit)}.swiper-pagination-progressbar{background:var(--swiper-pagination-progressbar-bg-color,#00000040);position:absolute;.swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));height:100%;left:0;position:absolute;top:0;transform:scale(0);transform-origin:left top;width:100%}.swiper-rtl & .swiper-pagination-progressbar-fill{transform-origin:right top}&.swiper-pagination-horizontal,&.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,.swiper-horizontal>&,.swiper-vertical>&.swiper-pagination-progressbar-opposite{height:var(--swiper-pagination-progressbar-size,4px);left:0;top:0;width:100%}&.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,&.swiper-pagination-vertical,.swiper-horizontal>&.swiper-pagination-progressbar-opposite,.swiper-vertical>&{height:100%;left:0;top:0;width:var(--swiper-pagination-progressbar-size,4px)}}.swiper-pagination-lock{display:none}.swiper-scrollbar{background:var(--swiper-scrollbar-bg-color,#0000001a);border-radius:var(--swiper-scrollbar-border-radius,10px);position:relative;touch-action:none;&.swiper-scrollbar-disabled,.swiper-scrollbar-disabled>&{display:none!important}&.swiper-scrollbar-horizontal,.swiper-horizontal>&{bottom:var(--swiper-scrollbar-bottom,4px);height:var(--swiper-scrollbar-size,4px);left:var(--swiper-scrollbar-sides-offset,1%);position:absolute;top:var(--swiper-scrollbar-top,auto);width:calc(100% - var(--swiper-scrollbar-sides-offset, 1%)*2);z-index:50}&.swiper-scrollbar-vertical,.swiper-vertical>&{height:calc(100% - var(--swiper-scrollbar-sides-offset, 1%)*2);left:var(--swiper-scrollbar-left,auto);position:absolute;right:var(--swiper-scrollbar-right,4px);top:var(--swiper-scrollbar-sides-offset,1%);width:var(--swiper-scrollbar-size,4px);z-index:50}}.swiper-scrollbar-drag{background:var(--swiper-scrollbar-drag-bg-color,#00000080);border-radius:var(--swiper-scrollbar-border-radius,10px);height:100%;left:0;position:relative;top:0;width:100%}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{align-items:center;display:flex;height:100%;justify-content:center;text-align:center;width:100%;>canvas,>img,>svg{max-height:100%;max-width:100%;object-fit:contain}}.swiper-slide-zoomed{cursor:move;touch-action:none}.swiper .swiper-notification{left:0;opacity:0;pointer-events:none;position:absolute;top:0;z-index:-1000}.swiper-free-mode>.swiper-wrapper{margin:0 auto;transition-timing-function:ease-out}.swiper-grid>.swiper-wrapper{flex-wrap:wrap}.swiper-grid-column>.swiper-wrapper{flex-direction:column;flex-wrap:wrap}.swiper-fade{&.swiper-free-mode{.swiper-slide{transition-timing-function:ease-out}}.swiper-slide{pointer-events:none;transition-property:opacity;.swiper-slide{pointer-events:none}}.swiper-slide-active{pointer-events:auto;& .swiper-slide-active{pointer-events:auto}}}.swiper.swiper-cube{overflow:visible}.swiper-cube{.swiper-slide{backface-visibility:hidden;height:100%;pointer-events:none;transform-origin:0 0;visibility:hidden;width:100%;z-index:1;.swiper-slide{pointer-events:none}}&.swiper-rtl .swiper-slide{transform-origin:100% 0}.swiper-slide-active{&,& .swiper-slide-active{pointer-events:auto}}.swiper-slide-active,.swiper-slide-next,.swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-cube-shadow{bottom:0;height:100%;left:0;opacity:.6;position:absolute;width:100%;z-index:0;&:before{background:#000;bottom:0;content:"";filter:blur(50px);left:0;position:absolute;right:0;top:0}}}.swiper-cube{.swiper-slide-next+.swiper-slide{pointer-events:auto;visibility:visible}}.swiper-cube{.swiper-slide-shadow-cube.swiper-slide-shadow-bottom,.swiper-slide-shadow-cube.swiper-slide-shadow-left,.swiper-slide-shadow-cube.swiper-slide-shadow-right,.swiper-slide-shadow-cube.swiper-slide-shadow-top{backface-visibility:hidden;z-index:0}}.swiper.swiper-flip{overflow:visible}.swiper-flip{.swiper-slide{backface-visibility:hidden;pointer-events:none;z-index:1;.swiper-slide{pointer-events:none}}.swiper-slide-active{&,& .swiper-slide-active{pointer-events:auto}}}.swiper-flip{.swiper-slide-shadow-flip.swiper-slide-shadow-bottom,.swiper-slide-shadow-flip.swiper-slide-shadow-left,.swiper-slide-shadow-flip.swiper-slide-shadow-right,.swiper-slide-shadow-flip.swiper-slide-shadow-top{backface-visibility:hidden;z-index:0}}.swiper-creative{.swiper-slide{backface-visibility:hidden;overflow:hidden;transition-property:transform,opacity,height}}.swiper.swiper-cards{overflow:visible}.swiper-cards{.swiper-slide{backface-visibility:hidden;overflow:hidden;transform-origin:center bottom}}
/* ==========================================================================
   GLOBAL STYLES
   ========================================================================== */

.image-gallery--swiper {
  align-items: flex-start;
  display: flex;
  flex-direction: row-reverse;
  justify-content: flex-end;
  margin-top: 30px;
  min-height: 216px;
  overflow: hidden;
  transition: 200ms ease-in-out 300ms;
}

@media (min-width: 1024px) {
  .image-gallery--swiper {
    margin-top: 0;
    overflow: visible;
    position: sticky;
    top: 50px;
  }
}

@media (min-width: 1170px) {
  .image-gallery--swiper {
    top: 110px;
  }
}

.image-gallery--swiper .badge {
  z-index: 2;
}

.image-gallery--swiper .image-gallery__image-container {
  display: block;
  position: relative;
  width: 100%;
  height: 100%;
}

.image-gallery--swiper .image-gallery__image-container:focus {
  outline: none;
}

.image-gallery--swiper .image-gallery__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.image-gallery--swiper .image-gallery__item:not(.swiper-slide-active) .image-gallery__image {
  max-width: calc(100% - 2px);
}

.image-gallery--swiper .image-gallery__items {
  flex-grow: 1;
  flex-shrink: 0;
  overflow: hidden;
  position: relative;
  width: auto;
  aspect-ratio: 1 / 1;
}

@supports not (aspect-ratio: 1 / 1) {
  .image-gallery--swiper .image-gallery__items {
    height: 0;
    padding-bottom: 100%;
  }
}

.image-gallery--swiper .swiper-wrapper {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  display: flex;
  transition-property: transform;
  box-sizing: content-box;
}

.image-gallery--swiper .swiper-slide {
  flex-shrink: 0;
  width: 100%;
  height: 100%;
  position: relative;
  transition-property: transform;
}

.image-gallery--swiper .image-gallery__item {
  display: flex;
  flex-shrink: 0;
  width: 100%;
  height: 100%;
  position: relative;
}

.image-gallery--swiper .pdp-play {
  height: 50px;
  left: 50%;
  pointer-events: none;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 50px;
  z-index: 1;
}

.image-gallery--swiper .placeholder-img__container-video {
  position: relative;
}

.image-gallery--swiper .swiper-initialized.image-gallery__items {
  opacity: 1;
}

.image-gallery--swiper .swiper-initialized .image-gallery__item {
  position: static;
}

.image-gallery--swiper .swiper-initialized .image-gallery__nav-item {
  position: relative;
}

/* Hide nav and arrows until Swiper is initialized to prevent CLS */
.image-gallery__nav:not(.swiper-initialized) {
  opacity: 0;
}

.image-gallery__nav.swiper-initialized {
  opacity: 1;
}

/* Hide thumbnail arrows until gallery is ready */
.image-gallery--swiper .image-gallery__nav-arrow {
  opacity: 0;
}

/* Show arrows when Swiper is initialized (modern browsers with :has() support) */
.image-gallery__nav-container:has(.image-gallery__nav.swiper-initialized) .image-gallery__nav-arrow {
  opacity: 1;
}

/* Fallback for browsers without :has() support - use JS class */
.image-gallery--gallery-ready .image-gallery__nav-arrow {
  opacity: 1;
}

/* FCP (First Contentful Paint) placeholder - shows immediately, hides when gallery is ready */
.pdp__fcp {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
  background-color: #f1ece7;
}

.pdp__fcp-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

/* Hide FCP once gallery is fully ready (controlled by JS) */
.image-gallery--slides-ready .pdp__fcp {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.product-detail__zoom-toggle {
  align-items: center;
  background-color: rgba(255, 255, 255, 0.8);
  border: 1px solid transparent;
  bottom: 10px;
  color: #000;
  display: flex;
  height: 50px;
  justify-content: center;
  min-height: auto;
  outline: none;
  padding: 0;
  position: absolute;
  right: 10px;
  transition: .2s ease-in-out;
  width: 50px;
  z-index: 2;
}

.product-detail__zoom-toggle svg {
  display: block;
  height: auto;
  width: 100%;
}

.product-detail__zoom-toggle circle[fill="#FFFFFF"] {
  -webkit-transition: .2s ease-in-out;
  transition: .2s ease-in-out;
}

.product-detail__zoom-toggle:focus,
.product-detail__zoom-toggle:hover {
  background-color: #F3F1EF;
  color: #333;
}

.product-detail__zoom-toggle:focus {
  border-color: var(--orange);
  outline: none;
}

@media (max-width: 768px) {
  .product-detail__zoom-toggle {
    height: 34px;
    width: 34px;
  }
}

/* ==========================================================================
   NAV CAROUSEL (THUMBNAILS)
   ========================================================================== */

.image-gallery__nav-container {
  --thumbs-gutter: 10px;
  --thumbs-size: 54px;
  --thumbs-without-arrows: 4;
  --thumbs-with-arrows: 2;
}

/* Mobile breakpoints (vertical thumbnails below 769px) */
@media (min-width: 414px) {
  .image-gallery__nav-container {
    --thumbs-without-arrows: 4;
    --thumbs-with-arrows: 2;
  }
}

@media (min-width: 478px) {
  .image-gallery__nav-container {
    --thumbs-without-arrows: 5;
    --thumbs-with-arrows: 3;
  }
}

@media (min-width: 542px) {
  .image-gallery__nav-container {
    --thumbs-without-arrows: 6;
    --thumbs-with-arrows: 4;
  }
}

@media (min-width: 607px) {
  .image-gallery__nav-container {
    --thumbs-without-arrows: 7;
    --thumbs-with-arrows: 5;
  }
}

@media (min-width: 670px) {
  .image-gallery__nav-container {
    --thumbs-without-arrows: 8;
    --thumbs-with-arrows: 6;
  }
}

@media (min-width: 734px) {
  .image-gallery__nav-container {
    --thumbs-without-arrows: 9;
    --thumbs-with-arrows: 7;
  }
}

/* Desktop breakpoints (horizontal thumbnails at 769px+) */
@media (min-width: 769px) {
  .image-gallery__nav-container {
    --thumbs-without-arrows: 10;
    --thumbs-with-arrows: 8;
    --thumbs-size: 107px;
  }
}

@media (min-width: 780px) {
  .image-gallery__nav-container {
    --thumbs-without-arrows: 4;
    --thumbs-with-arrows: 3;
  }
}

@media (min-width: 910px) {
  .image-gallery__nav-container {
    --thumbs-without-arrows: 5;
    --thumbs-with-arrows: 3;
  }
}

@media (min-width: 1024px) {
  .image-gallery__nav-container {
    --thumbs-without-arrows: 4;
    --thumbs-with-arrows: 2;
  }
}

@media (min-width: 1170px) {
  .image-gallery__nav-container {
    --thumbs-without-arrows: 4;
    --thumbs-with-arrows: 3;
    --thumbs-gutter: 20px;
    --thumbs-size: 90px;
  }
}

@media (min-width: 1500px) {
  .image-gallery__nav-container {
    --thumbs-without-arrows: 5;
    --thumbs-with-arrows: 3;
  }
}

@media (min-width: 1653px) {
  .image-gallery__nav-container {
    --thumbs-without-arrows: 6;
    --thumbs-with-arrows: 4;
  }
}

@media (min-width: 1654px) {
  .image-gallery__nav-container {
    --thumbs-without-arrows: 7;
    --thumbs-with-arrows: 5;
  }
}

[data-image-gallery-nav-arrows="true"] {
  --thumbs: var(--thumbs-with-arrows);
}

[data-image-gallery-nav-arrows="false"] {
  --thumbs: var(--media-count);
}

.image-gallery--swiper .image-gallery__nav {
  position: relative;
  flex-shrink: 0;
  margin: 0 10px 0 0;
  width: var(--thumbs-size);
  height: calc((var(--thumbs-size) * var(--thumbs)) + ((var(--thumbs) - 1) * var(--thumbs-gutter)));
}

@media (min-width: 769px) {
  .image-gallery--swiper .image-gallery__nav {
    margin-right: 20px;
  }
}

.image-gallery--swiper .image-gallery__nav-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: var(--thumbs-size);
  height: var(--thumbs-size);
}

.image-gallery--swiper .image-gallery__nav-arrow--prev {
  margin-bottom: var(--thumbs-gutter);
}

.image-gallery--swiper .image-gallery__nav-arrow--next {
  margin-top: var(--thumbs-gutter);
}

.image-gallery--swiper .image-gallery__nav-arrow svg {
  transform: rotate(90deg);
  width: 20px;
  height: 20px;
}

.image-gallery--swiper .image-gallery__nav-arrow {
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
  transition: 200ms ease-in-out;
}

.image-gallery--swiper .image-gallery__nav-arrow:hover svg path,
.image-gallery--swiper .image-gallery__nav-arrow:focus svg path {
  stroke: var(--orange);
}

.image-gallery--swiper .image-gallery__nav-arrow:focus {
  outline: none;
}

.image-gallery--swiper .image-gallery__nav .swiper-button-disabled {
  opacity: 0.2;
  pointer-events: none;
}

.image-gallery--swiper .image-gallery__nav .swiper-wrapper {
  position: relative;
}

.image-gallery--swiper .image-gallery__nav.swiper-vertical .swiper-slide {
  border: none;
}

.image-gallery--swiper .image-gallery__nav--all-thumbs-visible .swiper-wrapper {
  transform: none !important;
}

.image-gallery--swiper .image-gallery__nav-item.swiper-slide-thumb-active:after {
  border-color: var(--orange);
}

.image-gallery--swiper .image-gallery__nav-item {
  cursor: pointer;
  height: 100%;
  overflow: hidden;
  position: relative;
  width: 100%;
  display: block;
  aspect-ratio: 1 / 1;
}

@supports not (aspect-ratio: 1 / 1) {
  .image-gallery--swiper .image-gallery__nav .swiper-slide {
    height: 0;
    padding-bottom: var(--size);
  }

  .image-gallery--swiper .image-gallery__nav-item {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
  }
}

.image-gallery--swiper .image-gallery__nav-item:after {
  border: 2px solid transparent;
  content: "";
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  transition: 200ms ease-in-out;
  width: 100%;
}

.image-gallery--swiper .image-gallery__nav-item:focus {
  outline: none;
}

.image-gallery--swiper .image-gallery__nav-item:focus:after {
  border-color: var(--orange);
}

.image-gallery--swiper .image-gallery__nav-item:focus img,
.image-gallery--swiper .image-gallery__nav-item:hover img {
  transform: scale(1.04);
}

.image-gallery--swiper .image-gallery__nav-item img {
  height: 100%;
  left: 0;
  width: 100%;
  min-height: 100%;
  min-width: 100%;
  object-fit: cover;
  object-position: center;
  position: absolute;
  top: 0;
  transform-origin: center;
  transition: transform 200ms ease-in-out;
}

.image-gallery--swiper .image-gallery__nav-item svg.pdp-play {
  position: absolute;
  top: 48%;
  left: 53%;
  height: 40%;
  width: 30%;
  color: #f1ece7;
  filter: drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.5));
  transform: translate(-50%, -50%);
  opacity: 1 !important;
}

/* ==========================================================================
   MAIN CAROUSEL
   ========================================================================== */

.image-gallery--swiper .image-gallery__items .swiper-button-prev,
.image-gallery--swiper .image-gallery__items .swiper-button-next {
  align-items: center;
  background-color: rgba(255, 255, 255, 0.9);
  border: 1px solid transparent;
  color: #000;
  display: flex;
  height: 34px;
  justify-content: center;
  min-height: 34px;
  transition: background-color 200ms ease-in-out, border-color 200ms ease-in-out;
  width: 34px;
  z-index: 1;
}

@media (min-width: 769px) {
  .image-gallery--swiper .image-gallery__items .swiper-button-prev,
  .image-gallery--swiper .image-gallery__items .swiper-button-next {
    height: 50px;
    min-height: 50px;
    width: 50px;
  }
}

.image-gallery--swiper .image-gallery__items .swiper-button-prev:focus,
.image-gallery--swiper .image-gallery__items .swiper-button-next:focus {
  background-color: #F3F1EF;
  border-color: var(--orange);
  color: #333;
  outline: none;
  stroke: #333 !important;
}

.image-gallery--swiper .image-gallery__items .swiper-button-prev:hover,
.image-gallery--swiper .image-gallery__items .swiper-button-next:hover {
  background-color: #F3F1EF;
  color: #333;
}

.image-gallery--swiper .image-gallery__items .swiper-button-prev path,
.image-gallery--swiper .image-gallery__items .swiper-button-next path {
  stroke: #333;
  fill: none;
}

.image-gallery--swiper .image-gallery__items .swiper-button-prev svg,
.image-gallery--swiper .image-gallery__items .swiper-button-next svg {
  stroke-width: 2px;
  width: 9px;
}

@media (min-width: 769px) {
  .image-gallery--swiper .image-gallery__items .swiper-button-prev svg,
  .image-gallery--swiper .image-gallery__items .swiper-button-next svg {
    width: 13.5px;
  }
}

.image-gallery--swiper .image-gallery__items .swiper-button-disabled {
  opacity: 0;
}

.image-gallery--swiper .image-gallery__items .swiper-pagination {
  display: none !important;
}

.image-gallery--swiper .image-gallery__items .swiper-wrapper {
  cursor: default;
}

.image-gallery--swiper .image-gallery__items .swiper-button-next {
  right: 10px;
}

.image-gallery--swiper .image-gallery__items .swiper-button-prev {
  left: 10px;
}

</style>

  <link href="//www.bulletproof.com/cdn/shop/t/617/assets/theme.min.css?v=44229322169254857291789402694" rel="stylesheet" type="text/css" media="all" />
<link rel="stylesheet" href="//www.bulletproof.com/cdn/shop/t/617/assets/klevu-quick.css?v=65243070077689474131776326501" media="print" onload="this.media='all'"><style id="head-css">:root{--icon-add:url("//www.bulletproof.com/cdn/shop/t/617/assets/icon-add.svg?v=120867400545955639631776326500");--icon-add-hover:url("//www.bulletproof.com/cdn/shop/t/617/assets/icon-add-hover.svg?v=167563673712819028911776326500");--icon-adding:url("//www.bulletproof.com/cdn/shop/t/617/assets/icon-adding.svg?v=20891218863252784721776326501");--icon-arrow-left-orange:url("//www.bulletproof.com/cdn/shop/t/617/assets/icon-arrow-left--orange.svg?v=36882883016451445961776326502");--icon-arrow-left-black:url("//www.bulletproof.com/cdn/shop/t/617/assets/icon-arrow-left--black.svg?v=57213247261104991561776326501");--icon-arrow-right-orange:url("//www.bulletproof.com/cdn/shop/t/617/assets/icon-arrow-right--orange.svg?v=132942246362315414931776326502");--icon-arrow-right-black:url("//www.bulletproof.com/cdn/shop/t/617/assets/icon-arrow-right--black.svg?v=113097522756344338831776326502");--icon-gift-orange:url("//www.bulletproof.com/cdn/shop/t/617/assets/icon-gift--orange.svg?v=114351020343372996201776326500");--icon-gift-white:url("//www.bulletproof.com/cdn/shop/t/617/assets/icon-gift--white.svg?v=70762864542419476501776326501");--icon-star-empty:url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTYgMTYiIGZpbGw9IiNmZjUyMDAiIGhlaWdodD0iMTYiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNOC4wMDAwMiAxMi4xNzMzTDMuMjk4MDIgMTQuODA1M0w0LjM0ODAyIDkuNTE5OTJMMC4zOTEzNTcgNS44NjEyNUw1Ljc0MjY5IDUuMjI2NTlMOC4wMDAwMiAwLjMzMzI1MkwxMC4yNTc0IDUuMjI2NTlMMTUuNjA4NyA1Ljg2MTI1TDExLjY1MiA5LjUxOTkyTDEyLjcwMiAxNC44MDUzTDguMDAwMDIgMTIuMTczM1pNOC4wMDAwMiAxMC42NDUzTDEwLjgzMTQgMTIuMjI5OUwxMC4xOTg3IDkuMDQ3OTJMMTIuNTgwNyA2Ljg0NDU5TDkuMzU4NjkgNi40NjI1OUw4LjAwMDAyIDMuNTE2NTlMNi42NDEzNiA2LjQ2MzI1TDMuNDE5MzYgNi44NDQ1OUw1LjgwMTM2IDkuMDQ3OTJMNS4xNjg2OSAxMi4yMjk5TDguMDAwMDIgMTAuNjQ1M1oiPjwvcGF0aD48L3N2Zz4=");--icon-star-full:url('data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTYgMTYiIGZpbGw9IiNmZjUyMDAiIGhlaWdodD0iMTYiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNOC4wMDAwMiAxMi4xNzMzTDMuMjk4MDIgMTQuODA1M0w0LjM0ODAyIDkuNTE5OTJMMC4zOTEzNTcgNS44NjEyNUw1Ljc0MjY5IDUuMjI2NTlMOC4wMDAwMiAwLjMzMzI1MkwxMC4yNTc0IDUuMjI2NTlMMTUuNjA4NyA1Ljg2MTI1TDExLjY1MiA5LjUxOTkyTDEyLjcwMiAxNC44MDUzTDguMDAwMDIgMTIuMTczM1oiPjwvcGF0aD48L3N2Zz4=');--icon-star-half:url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTYgMTYiIGZpbGw9IiNmZjUyMDAiIGhlaWdodD0iMTYiIHdpZHRoPSIxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNOC4wMDAwMiAxMC42NDUzTDEwLjgzMTQgMTIuMjI5OUwxMC4xOTg3IDkuMDQ3OTJMMTIuNTgwNyA2Ljg0NDU5TDkuMzU4NjkgNi40NjI1OUw4LjAwMDAyIDMuNTE2NTlWMTAuNjQ1M1pNOC4wMDAwMiAxMi4xNzMzTDMuMjk4MDIgMTQuODA1M0w0LjM0ODAyIDkuNTE5OTJMMC4zOTEzNTcgNS44NjEyNUw1Ljc0MjY5IDUuMjI2NTlMOC4wMDAwMiAwLjMzMzI1MkwxMC4yNTc0IDUuMjI2NTlMMTUuNjA4NyA1Ljg2MTI1TDExLjY1MiA5LjUxOTkyTDEyLjcwMiAxNC44MDUzTDguMDAwMDIgMTIuMTczM1oiPjwvcGF0aD48L3N2Zz4=");--icon-truck-orange:url("//www.bulletproof.com/cdn/shop/t/617/assets/icon-truck--orange.svg?v=116930536139744718851776326499");--icon-truck-white:url("//www.bulletproof.com/cdn/shop/t/617/assets/icon-truck--white.svg?v=1862196354378464641776326500");--icon-thumbs-down:url("//www.bulletproof.com/cdn/shop/t/617/assets/thumbs-down.svg?v=164605569901156182021776326502");--icon-thumbs-up:url("//www.bulletproof.com/cdn/shop/t/617/assets/thumbs-up.svg?v=182132721149786595171776326500");--icon-thumbs-down-voted:url("//www.bulletproof.com/cdn/shop/t/617/assets/thumbs-down-voted.svg?v=181566976208896156961776326502");--icon-thumbs-up-voted:url("//www.bulletproof.com/cdn/shop/t/617/assets/thumbs-up-voted.svg?v=22885513854017388791776326499");--pri:#f04c00;--color-primary:#f04c00;--dark:#333;--light:#f1ece7;--pri-bg:#f1ece7;--sec-bg:#e2c8b6;--border:#e2c8b6;--nav-link:#333;--nav-link-hover:#f04c00;--text:#333;--font-secondary:#838383;--color-text:#333;--color-text-field:transparent;--color-text-field-text:#333;--color-text-lt-grey:#696969;}[aria-modal="true"][class*="kl-"]{z-index:2147483639 !important;}[aria-modal="true"][class*="kl-"] button:focus{background:transparent !important;color:#333 !important;outline:2px solid #333 !important;outline-offset:-2px !important;}/*================ Index sections ================*/.index-section{padding:0;}.index-section:first-child{padding-top:0;border-top:0;}.index-section:last-child{padding-bottom:0;border-bottom:none;}.index-section.index-section--flush{padding-top:0;padding-bottom:0;}@media only screen and (max-width:479px){.index-section--featured-product:first-child{margin-top:-12px;}}</style><script id="vendor-head-js">/*!
 * JavaScript Cookie v2.2.1
 * https://github.com/js-cookie/js-cookie
 *
 * Copyright 2006, 2015 Klaus Hartl & Fagner Brack
 * Released under the MIT license
 */;(function(factory){var registeredInModuleLoader;if(typeof define==="function"&&define.amd){define(factory);registeredInModuleLoader=true}if(typeof exports==="object"){module.exports=factory();registeredInModuleLoader=true}if(!registeredInModuleLoader){var OldCookies=window.Cookies;var api=window.Cookies=factory();api.noConflict=function(){window.Cookies=OldCookies;return api}}})(function(){function extend(){var i=0;var result={};for(;i<arguments.length;i++){var attributes=arguments[i];for(var key in attributes){result[key]=attributes[key]}}return result}function decode(s){return s.replace(/(%[0-9A-Z]{2})+/g,decodeURIComponent)}function init(converter){function api(){}function set(key,value,attributes){if(typeof document==="undefined"){return}attributes=extend({path:"/"},api.defaults,attributes);if(typeof attributes.expires==="number"){attributes.expires=new Date(new Date*1+attributes.expires*864e5)}attributes.expires=attributes.expires?attributes.expires.toUTCString():"";try{var result=JSON.stringify(value);if(/^[\{\[]/.test(result)){value=result}}catch(e){}value=converter.write?converter.write(value,key):encodeURIComponent(String(value)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent);key=encodeURIComponent(String(key)).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/[\(\)]/g,escape);var stringifiedAttributes="";for(var attributeName in attributes){if(!attributes[attributeName]){continue}stringifiedAttributes+="; "+attributeName;if(attributes[attributeName]===true){continue}stringifiedAttributes+="="+attributes[attributeName].split(";")[0]}return document.cookie=key+"="+value+stringifiedAttributes}function get(key,json){if(typeof document==="undefined"){return}var jar={};var cookies=document.cookie?document.cookie.split("; "):[];var i=0;for(;i<cookies.length;i++){var parts=cookies[i].split("=");var cookie=parts.slice(1).join("=");if(!json&&cookie.charAt(0)==='"'){cookie=cookie.slice(1,-1)}try{var name=decode(parts[0]);cookie=(converter.read||converter)(cookie,name)||decode(cookie);if(json){try{cookie=JSON.parse(cookie)}catch(e){}}jar[name]=cookie;if(key===name){break}}catch(e){}}return key?jar[key]:jar}api.set=set;api.get=function(key){return get(key,false)};api.getJSON=function(key){return get(key,true)};api.remove=function(key,attributes){set(key,"",extend(attributes,{expires:-1}))};api.defaults={};api.withConverter=init;return api}return init(function(){})});/*! jQuery v3.7.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */!(function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,true):function(e2){if(!e2.document)throw new Error("jQuery requires a window with a document");return t(e2)}:t(e)})("undefined"!=typeof window?window:this,function(ie,e){"use strict";var oe=[],r=Object.getPrototypeOf,ae=oe.slice,g=oe.flat?function(e2){return oe.flat.call(e2)}:function(e2){return oe.concat.apply([],e2)},s=oe.push,se=oe.indexOf,n={},i=n.toString,ue=n.hasOwnProperty,o=ue.toString,a=o.call(Object),le={},v=function(e2){return"function"==typeof e2&&"number"!=typeof e2.nodeType&&"function"!=typeof e2.item},y=function(e2){return null!=e2&&e2===e2.window},C=ie.document,u={type:true,src:true,nonce:true,noModule:true};function m(e2,t2,n2){var r2,i2,o2=(n2=n2||C).createElement("script");if(o2.text=e2,t2)for(r2 in u)(i2=t2[r2]||t2.getAttribute&&t2.getAttribute(r2))&&o2.setAttribute(r2,i2);n2.head.appendChild(o2).parentNode.removeChild(o2)}function x(e2){return null==e2?e2+"":"object"==typeof e2||"function"==typeof e2?n[i.call(e2)]||"object":typeof e2}var t="3.7.1",l=/HTML$/i,ce=function(e2,t2){return new ce.fn.init(e2,t2)};function c(e2){var t2=!!e2&&"length"in e2&&e2.length,n2=x(e2);return!v(e2)&&!y(e2)&&("array"===n2||0===t2||"number"==typeof t2&&0<t2&&t2-1 in e2)}function fe(e2,t2){return e2.nodeName&&e2.nodeName.toLowerCase()===t2.toLowerCase()}ce.fn=ce.prototype={jquery:t,constructor:ce,length:0,toArray:function(){return ae.call(this)},get:function(e2){return null==e2?ae.call(this):e2<0?this[e2+this.length]:this[e2]},pushStack:function(e2){var t2=ce.merge(this.constructor(),e2);return t2.prevObject=this,t2},each:function(e2){return ce.each(this,e2)},map:function(n2){return this.pushStack(ce.map(this,function(e2,t2){return n2.call(e2,t2,e2)}))},slice:function(){return this.pushStack(ae.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(ce.grep(this,function(e2,t2){return(t2+1)%2}))},odd:function(){return this.pushStack(ce.grep(this,function(e2,t2){return t2%2}))},eq:function(e2){var t2=this.length,n2=+e2+(e2<0?t2:0);return this.pushStack(0<=n2&&n2<t2?[this[n2]]:[])},end:function(){return this.prevObject||this.constructor()},push:s,sort:oe.sort,splice:oe.splice},ce.extend=ce.fn.extend=function(){var e2,t2,n2,r2,i2,o2,a2=arguments[0]||{},s2=1,u2=arguments.length,l2=false;for("boolean"==typeof a2&&(l2=a2,a2=arguments[s2]||{},s2++),"object"==typeof a2||v(a2)||(a2={}),s2===u2&&(a2=this,s2--);s2<u2;s2++)if(null!=(e2=arguments[s2]))for(t2 in e2)r2=e2[t2],"__proto__"!==t2&&a2!==r2&&(l2&&r2&&(ce.isPlainObject(r2)||(i2=Array.isArray(r2)))?(n2=a2[t2],o2=i2&&!Array.isArray(n2)?[]:i2||ce.isPlainObject(n2)?n2:{},i2=false,a2[t2]=ce.extend(l2,o2,r2)):void 0!==r2&&(a2[t2]=r2));return a2},ce.extend({expando:"jQuery"+(t+Math.random()).replace(/\D/g,""),isReady:true,error:function(e2){throw new Error(e2)},noop:function(){},isPlainObject:function(e2){var t2,n2;return!(!e2||"[object Object]"!==i.call(e2))&&(!(t2=r(e2))||"function"==typeof(n2=ue.call(t2,"constructor")&&t2.constructor)&&o.call(n2)===a)},isEmptyObject:function(e2){var t2;for(t2 in e2)return false;return true},globalEval:function(e2,t2,n2){m(e2,{nonce:t2&&t2.nonce},n2)},each:function(e2,t2){var n2,r2=0;if(c(e2)){for(n2=e2.length;r2<n2;r2++)if(false===t2.call(e2[r2],r2,e2[r2]))break}else for(r2 in e2)if(false===t2.call(e2[r2],r2,e2[r2]))break;return e2},text:function(e2){var t2,n2="",r2=0,i2=e2.nodeType;if(!i2)while(t2=e2[r2++])n2+=ce.text(t2);return 1===i2||11===i2?e2.textContent:9===i2?e2.documentElement.textContent:3===i2||4===i2?e2.nodeValue:n2},makeArray:function(e2,t2){var n2=t2||[];return null!=e2&&(c(Object(e2))?ce.merge(n2,"string"==typeof e2?[e2]:e2):s.call(n2,e2)),n2},inArray:function(e2,t2,n2){return null==t2?-1:se.call(t2,e2,n2)},isXMLDoc:function(e2){var t2=e2&&e2.namespaceURI,n2=e2&&(e2.ownerDocument||e2).documentElement;return!l.test(t2||n2&&n2.nodeName||"HTML")},merge:function(e2,t2){for(var n2=+t2.length,r2=0,i2=e2.length;r2<n2;r2++)e2[i2++]=t2[r2];return e2.length=i2,e2},grep:function(e2,t2,n2){for(var r2=[],i2=0,o2=e2.length,a2=!n2;i2<o2;i2++)!t2(e2[i2],i2)!==a2&&r2.push(e2[i2]);return r2},map:function(e2,t2,n2){var r2,i2,o2=0,a2=[];if(c(e2))for(r2=e2.length;o2<r2;o2++)null!=(i2=t2(e2[o2],o2,n2))&&a2.push(i2);else for(o2 in e2)null!=(i2=t2(e2[o2],o2,n2))&&a2.push(i2);return g(a2)},guid:1,support:le}),"function"==typeof Symbol&&(ce.fn[Symbol.iterator]=oe[Symbol.iterator]),ce.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e2,t2){n["[object "+t2+"]"]=t2.toLowerCase()});var pe=oe.pop,de=oe.sort,he=oe.splice,ge="[\\x20\\t\\r\\n\\f]",ve=new RegExp("^"+ge+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ge+"+$","g");ce.contains=function(e2,t2){var n2=t2&&t2.parentNode;return e2===n2||!(!n2||1!==n2.nodeType||!(e2.contains?e2.contains(n2):e2.compareDocumentPosition&&16&e2.compareDocumentPosition(n2)))};var f=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;function p(e2,t2){return t2?"\0"===e2?"\uFFFD":e2.slice(0,-1)+"\\"+e2.charCodeAt(e2.length-1).toString(16)+" ":"\\"+e2}ce.escapeSelector=function(e2){return(e2+"").replace(f,p)};var ye=C,me=s;!(function(){var e2,b2,w2,o2,a2,T2,r2,C2,d2,i2,k2=me,S2=ce.expando,E2=0,n2=0,s2=W2(),c2=W2(),u2=W2(),h2=W2(),l2=function(e3,t3){return e3===t3&&(a2=true),0},f2="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",t2="(?:\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",p2="\\["+ge+"*("+t2+")(?:"+ge+"*([*^$|!~]?=)"+ge+`*(?:'((?:\\\\.|[^\\\\'])*)'|"((?:\\\\.|[^\\\\"])*)"|(`+t2+"))|)"+ge+"*\\]",g2=":("+t2+`)(?:\\((('((?:\\\\.|[^\\\\'])*)'|"((?:\\\\.|[^\\\\"])*)")|((?:\\\\.|[^\\\\()[\\]]|`+p2+")*)|.*)\\)|)",v2=new RegExp(ge+"+","g"),y2=new RegExp("^"+ge+"*,"+ge+"*"),m2=new RegExp("^"+ge+"*([>+~]|"+ge+")"+ge+"*"),x2=new RegExp(ge+"|>"),j2=new RegExp(g2),A2=new RegExp("^"+t2+"$"),D2={ID:new RegExp("^#("+t2+")"),CLASS:new RegExp("^\\.("+t2+")"),TAG:new RegExp("^("+t2+"|[*])"),ATTR:new RegExp("^"+p2),PSEUDO:new RegExp("^"+g2),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ge+"*(even|odd|(([+-]|)(\\d*)n|)"+ge+"*(?:([+-]|)"+ge+"*(\\d+)|))"+ge+"*\\)|)","i"),bool:new RegExp("^(?:"+f2+")$","i"),needsContext:new RegExp("^"+ge+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ge+"*((?:-\\d)?\\d*)"+ge+"*\\)|)(?=[^-]|$)","i")},N2=/^(?:input|select|textarea|button)$/i,q2=/^h\d$/i,L2=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,H2=/[+~]/,O2=new RegExp("\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\([^\\r\\n\\f])","g"),P2=function(e3,t3){var n3="0x"+e3.slice(1)-65536;return t3||(n3<0?String.fromCharCode(n3+65536):String.fromCharCode(n3>>10|55296,1023&n3|56320))},M2=function(){V2()},R2=J2(function(e3){return true===e3.disabled&&fe(e3,"fieldset")},{dir:"parentNode",next:"legend"});try{k2.apply(oe=ae.call(ye.childNodes),ye.childNodes),oe[ye.childNodes.length].nodeType}catch(e3){k2={apply:function(e4,t3){me.apply(e4,ae.call(t3))},call:function(e4){me.apply(e4,ae.call(arguments,1))}}}function I2(t3,e3,n3,r3){var i3,o3,a3,s3,u3,l3,c3,f3=e3&&e3.ownerDocument,p3=e3?e3.nodeType:9;if(n3=n3||[],"string"!=typeof t3||!t3||1!==p3&&9!==p3&&11!==p3)return n3;if(!r3&&(V2(e3),e3=e3||T2,C2)){if(11!==p3&&(u3=L2.exec(t3)))if(i3=u3[1]){if(9===p3){if(!(a3=e3.getElementById(i3)))return n3;if(a3.id===i3)return k2.call(n3,a3),n3}else if(f3&&(a3=f3.getElementById(i3))&&I2.contains(e3,a3)&&a3.id===i3)return k2.call(n3,a3),n3}else{if(u3[2])return k2.apply(n3,e3.getElementsByTagName(t3)),n3;if((i3=u3[3])&&e3.getElementsByClassName)return k2.apply(n3,e3.getElementsByClassName(i3)),n3}if(!(h2[t3+" "]||d2&&d2.test(t3))){if(c3=t3,f3=e3,1===p3&&(x2.test(t3)||m2.test(t3))){(f3=H2.test(t3)&&U2(e3.parentNode)||e3)==e3&&le.scope||((s3=e3.getAttribute("id"))?s3=ce.escapeSelector(s3):e3.setAttribute("id",s3=S2)),o3=(l3=Y2(t3)).length;while(o3--)l3[o3]=(s3?"#"+s3:":scope")+" "+Q2(l3[o3]);c3=l3.join(",")}try{return k2.apply(n3,f3.querySelectorAll(c3)),n3}catch(e4){h2(t3,true)}finally{s3===S2&&e3.removeAttribute("id")}}}return re2(t3.replace(ve,"$1"),e3,n3,r3)}function W2(){var r3=[];return function e3(t3,n3){return r3.push(t3+" ")>b2.cacheLength&&delete e3[r3.shift()],e3[t3+" "]=n3}}function F2(e3){return e3[S2]=true,e3}function $2(e3){var t3=T2.createElement("fieldset");try{return!!e3(t3)}catch(e4){return false}finally{t3.parentNode&&t3.parentNode.removeChild(t3),t3=null}}function B2(t3){return function(e3){return fe(e3,"input")&&e3.type===t3}}function _2(t3){return function(e3){return(fe(e3,"input")||fe(e3,"button"))&&e3.type===t3}}function z2(t3){return function(e3){return"form"in e3?e3.parentNode&&false===e3.disabled?"label"in e3?"label"in e3.parentNode?e3.parentNode.disabled===t3:e3.disabled===t3:e3.isDisabled===t3||e3.isDisabled!==!t3&&R2(e3)===t3:e3.disabled===t3:"label"in e3&&e3.disabled===t3}}function X2(a3){return F2(function(o3){return o3=+o3,F2(function(e3,t3){var n3,r3=a3([],e3.length,o3),i3=r3.length;while(i3--)e3[n3=r3[i3]]&&(e3[n3]=!(t3[n3]=e3[n3]))})})}function U2(e3){return e3&&"undefined"!=typeof e3.getElementsByTagName&&e3}function V2(e3){var t3,n3=e3?e3.ownerDocument||e3:ye;return n3!=T2&&9===n3.nodeType&&n3.documentElement&&(r2=(T2=n3).documentElement,C2=!ce.isXMLDoc(T2),i2=r2.matches||r2.webkitMatchesSelector||r2.msMatchesSelector,r2.msMatchesSelector&&ye!=T2&&(t3=T2.defaultView)&&t3.top!==t3&&t3.addEventListener("unload",M2),le.getById=$2(function(e4){return r2.appendChild(e4).id=ce.expando,!T2.getElementsByName||!T2.getElementsByName(ce.expando).length}),le.disconnectedMatch=$2(function(e4){return i2.call(e4,"*")}),le.scope=$2(function(){return T2.querySelectorAll(":scope")}),le.cssHas=$2(function(){try{return T2.querySelector(":has(*,:jqfake)"),false}catch(e4){return true}}),le.getById?(b2.filter.ID=function(e4){var t4=e4.replace(O2,P2);return function(e5){return e5.getAttribute("id")===t4}},b2.find.ID=function(e4,t4){if("undefined"!=typeof t4.getElementById&&C2){var n4=t4.getElementById(e4);return n4?[n4]:[]}}):(b2.filter.ID=function(e4){var n4=e4.replace(O2,P2);return function(e5){var t4="undefined"!=typeof e5.getAttributeNode&&e5.getAttributeNode("id");return t4&&t4.value===n4}},b2.find.ID=function(e4,t4){if("undefined"!=typeof t4.getElementById&&C2){var n4,r3,i3,o3=t4.getElementById(e4);if(o3){if((n4=o3.getAttributeNode("id"))&&n4.value===e4)return[o3];i3=t4.getElementsByName(e4),r3=0;while(o3=i3[r3++])if((n4=o3.getAttributeNode("id"))&&n4.value===e4)return[o3]}return[]}}),b2.find.TAG=function(e4,t4){return"undefined"!=typeof t4.getElementsByTagName?t4.getElementsByTagName(e4):t4.querySelectorAll(e4)},b2.find.CLASS=function(e4,t4){if("undefined"!=typeof t4.getElementsByClassName&&C2)return t4.getElementsByClassName(e4)},d2=[],$2(function(e4){var t4;r2.appendChild(e4).innerHTML="<a id='"+S2+"' href='' disabled='disabled'></a><select id='"+S2+"-\r\\' disabled='disabled'><option selected=''></option></select>",e4.querySelectorAll("[selected]").length||d2.push("\\["+ge+"*(?:value|"+f2+")"),e4.querySelectorAll("[id~="+S2+"-]").length||d2.push("~="),e4.querySelectorAll("a#"+S2+"+*").length||d2.push(".#.+[+~]"),e4.querySelectorAll(":checked").length||d2.push(":checked"),(t4=T2.createElement("input")).setAttribute("type","hidden"),e4.appendChild(t4).setAttribute("name","D"),r2.appendChild(e4).disabled=true,2!==e4.querySelectorAll(":disabled").length&&d2.push(":enabled",":disabled"),(t4=T2.createElement("input")).setAttribute("name",""),e4.appendChild(t4),e4.querySelectorAll("[name='']").length||d2.push("\\["+ge+"*name"+ge+"*="+ge+`*(?:''|"")`)}),le.cssHas||d2.push(":has"),d2=d2.length&&new RegExp(d2.join("|")),l2=function(e4,t4){if(e4===t4)return a2=true,0;var n4=!e4.compareDocumentPosition-!t4.compareDocumentPosition;return n4||(1&(n4=(e4.ownerDocument||e4)==(t4.ownerDocument||t4)?e4.compareDocumentPosition(t4):1)||!le.sortDetached&&t4.compareDocumentPosition(e4)===n4?e4===T2||e4.ownerDocument==ye&&I2.contains(ye,e4)?-1:t4===T2||t4.ownerDocument==ye&&I2.contains(ye,t4)?1:o2?se.call(o2,e4)-se.call(o2,t4):0:4&n4?-1:1)}),T2}for(e2 in I2.matches=function(e3,t3){return I2(e3,null,null,t3)},I2.matchesSelector=function(e3,t3){if(V2(e3),C2&&!h2[t3+" "]&&(!d2||!d2.test(t3)))try{var n3=i2.call(e3,t3);if(n3||le.disconnectedMatch||e3.document&&11!==e3.document.nodeType)return n3}catch(e4){h2(t3,true)}return 0<I2(t3,T2,null,[e3]).length},I2.contains=function(e3,t3){return(e3.ownerDocument||e3)!=T2&&V2(e3),ce.contains(e3,t3)},I2.attr=function(e3,t3){(e3.ownerDocument||e3)!=T2&&V2(e3);var n3=b2.attrHandle[t3.toLowerCase()],r3=n3&&ue.call(b2.attrHandle,t3.toLowerCase())?n3(e3,t3,!C2):void 0;return void 0!==r3?r3:e3.getAttribute(t3)},I2.error=function(e3){throw new Error("Syntax error, unrecognized expression: "+e3)},ce.uniqueSort=function(e3){var t3,n3=[],r3=0,i3=0;if(a2=!le.sortStable,o2=!le.sortStable&&ae.call(e3,0),de.call(e3,l2),a2){while(t3=e3[i3++])t3===e3[i3]&&(r3=n3.push(i3));while(r3--)he.call(e3,n3[r3],1)}return o2=null,e3},ce.fn.uniqueSort=function(){return this.pushStack(ce.uniqueSort(ae.apply(this)))},(b2=ce.expr={cacheLength:50,createPseudo:F2,match:D2,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:true}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:true},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e3){return e3[1]=e3[1].replace(O2,P2),e3[3]=(e3[3]||e3[4]||e3[5]||"").replace(O2,P2),"~="===e3[2]&&(e3[3]=" "+e3[3]+" "),e3.slice(0,4)},CHILD:function(e3){return e3[1]=e3[1].toLowerCase(),"nth"===e3[1].slice(0,3)?(e3[3]||I2.error(e3[0]),e3[4]=+(e3[4]?e3[5]+(e3[6]||1):2*("even"===e3[3]||"odd"===e3[3])),e3[5]=+(e3[7]+e3[8]||"odd"===e3[3])):e3[3]&&I2.error(e3[0]),e3},PSEUDO:function(e3){var t3,n3=!e3[6]&&e3[2];return D2.CHILD.test(e3[0])?null:(e3[3]?e3[2]=e3[4]||e3[5]||"":n3&&j2.test(n3)&&(t3=Y2(n3,true))&&(t3=n3.indexOf(")",n3.length-t3)-n3.length)&&(e3[0]=e3[0].slice(0,t3),e3[2]=n3.slice(0,t3)),e3.slice(0,3))}},filter:{TAG:function(e3){var t3=e3.replace(O2,P2).toLowerCase();return"*"===e3?function(){return true}:function(e4){return fe(e4,t3)}},CLASS:function(e3){var t3=s2[e3+" "];return t3||(t3=new RegExp("(^|"+ge+")"+e3+"("+ge+"|$)"))&&s2(e3,function(e4){return t3.test("string"==typeof e4.className&&e4.className||"undefined"!=typeof e4.getAttribute&&e4.getAttribute("class")||"")})},ATTR:function(n3,r3,i3){return function(e3){var t3=I2.attr(e3,n3);return null==t3?"!="===r3:!r3||(t3+="","="===r3?t3===i3:"!="===r3?t3!==i3:"^="===r3?i3&&0===t3.indexOf(i3):"*="===r3?i3&&-1<t3.indexOf(i3):"$="===r3?i3&&t3.slice(-i3.length)===i3:"~="===r3?-1<(" "+t3.replace(v2," ")+" ").indexOf(i3):"|="===r3&&(t3===i3||t3.slice(0,i3.length+1)===i3+"-"))}},CHILD:function(d3,e3,t3,h3,g3){var v3="nth"!==d3.slice(0,3),y3="last"!==d3.slice(-4),m3="of-type"===e3;return 1===h3&&0===g3?function(e4){return!!e4.parentNode}:function(e4,t4,n3){var r3,i3,o3,a3,s3,u3=v3!==y3?"nextSibling":"previousSibling",l3=e4.parentNode,c3=m3&&e4.nodeName.toLowerCase(),f3=!n3&&!m3,p3=false;if(l3){if(v3){while(u3){o3=e4;while(o3=o3[u3])if(m3?fe(o3,c3):1===o3.nodeType)return false;s3=u3="only"===d3&&!s3&&"nextSibling"}return true}if(s3=[y3?l3.firstChild:l3.lastChild],y3&&f3){p3=(a3=(r3=(i3=l3[S2]||(l3[S2]={}))[d3]||[])[0]===E2&&r3[1])&&r3[2],o3=a3&&l3.childNodes[a3];while(o3=++a3&&o3&&o3[u3]||(p3=a3=0)||s3.pop())if(1===o3.nodeType&&++p3&&o3===e4){i3[d3]=[E2,a3,p3];break}}else if(f3&&(p3=a3=(r3=(i3=e4[S2]||(e4[S2]={}))[d3]||[])[0]===E2&&r3[1]),false===p3){while(o3=++a3&&o3&&o3[u3]||(p3=a3=0)||s3.pop())if((m3?fe(o3,c3):1===o3.nodeType)&&++p3&&(f3&&((i3=o3[S2]||(o3[S2]={}))[d3]=[E2,p3]),o3===e4))break}return(p3-=g3)===h3||p3%h3==0&&0<=p3/h3}}},PSEUDO:function(e3,o3){var t3,a3=b2.pseudos[e3]||b2.setFilters[e3.toLowerCase()]||I2.error("unsupported pseudo: "+e3);return a3[S2]?a3(o3):1<a3.length?(t3=[e3,e3,"",o3],b2.setFilters.hasOwnProperty(e3.toLowerCase())?F2(function(e4,t4){var n3,r3=a3(e4,o3),i3=r3.length;while(i3--)e4[n3=se.call(e4,r3[i3])]=!(t4[n3]=r3[i3])}):function(e4){return a3(e4,0,t3)}):a3}},pseudos:{not:F2(function(e3){var r3=[],i3=[],s3=ne2(e3.replace(ve,"$1"));return s3[S2]?F2(function(e4,t3,n3,r4){var i4,o3=s3(e4,null,r4,[]),a3=e4.length;while(a3--)(i4=o3[a3])&&(e4[a3]=!(t3[a3]=i4))}):function(e4,t3,n3){return r3[0]=e4,s3(r3,null,n3,i3),r3[0]=null,!i3.pop()}}),has:F2(function(t3){return function(e3){return 0<I2(t3,e3).length}}),contains:F2(function(t3){return t3=t3.replace(O2,P2),function(e3){return-1<(e3.textContent||ce.text(e3)).indexOf(t3)}}),lang:F2(function(n3){return A2.test(n3||"")||I2.error("unsupported lang: "+n3),n3=n3.replace(O2,P2).toLowerCase(),function(e3){var t3;do{if(t3=C2?e3.lang:e3.getAttribute("xml:lang")||e3.getAttribute("lang"))return(t3=t3.toLowerCase())===n3||0===t3.indexOf(n3+"-")}while((e3=e3.parentNode)&&1===e3.nodeType);return false}}),target:function(e3){var t3=ie.location&&ie.location.hash;return t3&&t3.slice(1)===e3.id},root:function(e3){return e3===r2},focus:function(e3){return e3===(function(){try{return T2.activeElement}catch(e4){}})()&&T2.hasFocus()&&!!(e3.type||e3.href||~e3.tabIndex)},enabled:z2(false),disabled:z2(true),checked:function(e3){return fe(e3,"input")&&!!e3.checked||fe(e3,"option")&&!!e3.selected},selected:function(e3){return e3.parentNode&&e3.parentNode.selectedIndex,true===e3.selected},empty:function(e3){for(e3=e3.firstChild;e3;e3=e3.nextSibling)if(e3.nodeType<6)return false;return true},parent:function(e3){return!b2.pseudos.empty(e3)},header:function(e3){return q2.test(e3.nodeName)},input:function(e3){return N2.test(e3.nodeName)},button:function(e3){return fe(e3,"input")&&"button"===e3.type||fe(e3,"button")},text:function(e3){var t3;return fe(e3,"input")&&"text"===e3.type&&(null==(t3=e3.getAttribute("type"))||"text"===t3.toLowerCase())},first:X2(function(){return[0]}),last:X2(function(e3,t3){return[t3-1]}),eq:X2(function(e3,t3,n3){return[n3<0?n3+t3:n3]}),even:X2(function(e3,t3){for(var n3=0;n3<t3;n3+=2)e3.push(n3);return e3}),odd:X2(function(e3,t3){for(var n3=1;n3<t3;n3+=2)e3.push(n3);return e3}),lt:X2(function(e3,t3,n3){var r3;for(r3=n3<0?n3+t3:t3<n3?t3:n3;0<=--r3;)e3.push(r3);return e3}),gt:X2(function(e3,t3,n3){for(var r3=n3<0?n3+t3:n3;++r3<t3;)e3.push(r3);return e3})}}).pseudos.nth=b2.pseudos.eq,{radio:true,checkbox:true,file:true,password:true,image:true})b2.pseudos[e2]=B2(e2);for(e2 in{submit:true,reset:true})b2.pseudos[e2]=_2(e2);function G2(){}function Y2(e3,t3){var n3,r3,i3,o3,a3,s3,u3,l3=c2[e3+" "];if(l3)return t3?0:l3.slice(0);a3=e3,s3=[],u3=b2.preFilter;while(a3){for(o3 in n3&&!(r3=y2.exec(a3))||(r3&&(a3=a3.slice(r3[0].length)||a3),s3.push(i3=[])),n3=false,(r3=m2.exec(a3))&&(n3=r3.shift(),i3.push({value:n3,type:r3[0].replace(ve," ")}),a3=a3.slice(n3.length)),b2.filter)!(r3=D2[o3].exec(a3))||u3[o3]&&!(r3=u3[o3](r3))||(n3=r3.shift(),i3.push({value:n3,type:o3,matches:r3}),a3=a3.slice(n3.length));if(!n3)break}return t3?a3.length:a3?I2.error(e3):c2(e3,s3).slice(0)}function Q2(e3){for(var t3=0,n3=e3.length,r3="";t3<n3;t3++)r3+=e3[t3].value;return r3}function J2(a3,e3,t3){var s3=e3.dir,u3=e3.next,l3=u3||s3,c3=t3&&"parentNode"===l3,f3=n2++;return e3.first?function(e4,t4,n3){while(e4=e4[s3])if(1===e4.nodeType||c3)return a3(e4,t4,n3);return false}:function(e4,t4,n3){var r3,i3,o3=[E2,f3];if(n3){while(e4=e4[s3])if((1===e4.nodeType||c3)&&a3(e4,t4,n3))return true}else while(e4=e4[s3])if(1===e4.nodeType||c3)if(i3=e4[S2]||(e4[S2]={}),u3&&fe(e4,u3))e4=e4[s3]||e4;else{if((r3=i3[l3])&&r3[0]===E2&&r3[1]===f3)return o3[2]=r3[2];if((i3[l3]=o3)[2]=a3(e4,t4,n3))return true}return false}}function K2(i3){return 1<i3.length?function(e3,t3,n3){var r3=i3.length;while(r3--)if(!i3[r3](e3,t3,n3))return false;return true}:i3[0]}function Z2(e3,t3,n3,r3,i3){for(var o3,a3=[],s3=0,u3=e3.length,l3=null!=t3;s3<u3;s3++)(o3=e3[s3])&&(n3&&!n3(o3,r3,i3)||(a3.push(o3),l3&&t3.push(s3)));return a3}function ee2(d3,h3,g3,v3,y3,e3){return v3&&!v3[S2]&&(v3=ee2(v3)),y3&&!y3[S2]&&(y3=ee2(y3,e3)),F2(function(e4,t3,n3,r3){var i3,o3,a3,s3,u3=[],l3=[],c3=t3.length,f3=e4||(function(e5,t4,n4){for(var r4=0,i4=t4.length;r4<i4;r4++)I2(e5,t4[r4],n4);return n4})(h3||"*",n3.nodeType?[n3]:n3,[]),p3=!d3||!e4&&h3?f3:Z2(f3,u3,d3,n3,r3);if(g3?g3(p3,s3=y3||(e4?d3:c3||v3)?[]:t3,n3,r3):s3=p3,v3){i3=Z2(s3,l3),v3(i3,[],n3,r3),o3=i3.length;while(o3--)(a3=i3[o3])&&(s3[l3[o3]]=!(p3[l3[o3]]=a3))}if(e4){if(y3||d3){if(y3){i3=[],o3=s3.length;while(o3--)(a3=s3[o3])&&i3.push(p3[o3]=a3);y3(null,s3=[],i3,r3)}o3=s3.length;while(o3--)(a3=s3[o3])&&-1<(i3=y3?se.call(e4,a3):u3[o3])&&(e4[i3]=!(t3[i3]=a3))}}else s3=Z2(s3===t3?s3.splice(c3,s3.length):s3),y3?y3(null,t3,s3,r3):k2.apply(t3,s3)})}function te2(e3){for(var i3,t3,n3,r3=e3.length,o3=b2.relative[e3[0].type],a3=o3||b2.relative[" "],s3=o3?1:0,u3=J2(function(e4){return e4===i3},a3,true),l3=J2(function(e4){return-1<se.call(i3,e4)},a3,true),c3=[function(e4,t4,n4){var r4=!o3&&(n4||t4!=w2)||((i3=t4).nodeType?u3(e4,t4,n4):l3(e4,t4,n4));return i3=null,r4}];s3<r3;s3++)if(t3=b2.relative[e3[s3].type])c3=[J2(K2(c3),t3)];else{if((t3=b2.filter[e3[s3].type].apply(null,e3[s3].matches))[S2]){for(n3=++s3;n3<r3;n3++)if(b2.relative[e3[n3].type])break;return ee2(1<s3&&K2(c3),1<s3&&Q2(e3.slice(0,s3-1).concat({value:" "===e3[s3-2].type?"*":""})).replace(ve,"$1"),t3,s3<n3&&te2(e3.slice(s3,n3)),n3<r3&&te2(e3=e3.slice(n3)),n3<r3&&Q2(e3))}c3.push(t3)}return K2(c3)}function ne2(e3,t3){var n3,v3,y3,m3,x3,r3,i3=[],o3=[],a3=u2[e3+" "];if(!a3){t3||(t3=Y2(e3)),n3=t3.length;while(n3--)(a3=te2(t3[n3]))[S2]?i3.push(a3):o3.push(a3);(a3=u2(e3,(v3=o3,m3=0<(y3=i3).length,x3=0<v3.length,r3=function(e4,t4,n4,r4,i4){var o4,a4,s3,u3=0,l3="0",c3=e4&&[],f3=[],p3=w2,d3=e4||x3&&b2.find.TAG("*",i4),h3=E2+=null==p3?1:Math.random()||.1,g3=d3.length;for(i4&&(w2=t4==T2||t4||i4);l3!==g3&&null!=(o4=d3[l3]);l3++){if(x3&&o4){a4=0,t4||o4.ownerDocument==T2||(V2(o4),n4=!C2);while(s3=v3[a4++])if(s3(o4,t4||T2,n4)){k2.call(r4,o4);break}i4&&(E2=h3)}m3&&((o4=!s3&&o4)&&u3--,e4&&c3.push(o4))}if(u3+=l3,m3&&l3!==u3){a4=0;while(s3=y3[a4++])s3(c3,f3,t4,n4);if(e4){if(0<u3)while(l3--)c3[l3]||f3[l3]||(f3[l3]=pe.call(r4));f3=Z2(f3)}k2.apply(r4,f3),i4&&!e4&&0<f3.length&&1<u3+y3.length&&ce.uniqueSort(r4)}return i4&&(E2=h3,w2=p3),c3},m3?F2(r3):r3))).selector=e3}return a3}function re2(e3,t3,n3,r3){var i3,o3,a3,s3,u3,l3="function"==typeof e3&&e3,c3=!r3&&Y2(e3=l3.selector||e3);if(n3=n3||[],1===c3.length){if(2<(o3=c3[0]=c3[0].slice(0)).length&&"ID"===(a3=o3[0]).type&&9===t3.nodeType&&C2&&b2.relative[o3[1].type]){if(!(t3=(b2.find.ID(a3.matches[0].replace(O2,P2),t3)||[])[0]))return n3;l3&&(t3=t3.parentNode),e3=e3.slice(o3.shift().value.length)}i3=D2.needsContext.test(e3)?0:o3.length;while(i3--){if(a3=o3[i3],b2.relative[s3=a3.type])break;if((u3=b2.find[s3])&&(r3=u3(a3.matches[0].replace(O2,P2),H2.test(o3[0].type)&&U2(t3.parentNode)||t3))){if(o3.splice(i3,1),!(e3=r3.length&&Q2(o3)))return k2.apply(n3,r3),n3;break}}}return(l3||ne2(e3,c3))(r3,t3,!C2,n3,!t3||H2.test(e3)&&U2(t3.parentNode)||t3),n3}G2.prototype=b2.filters=b2.pseudos,b2.setFilters=new G2,le.sortStable=S2.split("").sort(l2).join("")===S2,V2(),le.sortDetached=$2(function(e3){return 1&e3.compareDocumentPosition(T2.createElement("fieldset"))}),ce.find=I2,ce.expr[":"]=ce.expr.pseudos,ce.unique=ce.uniqueSort,I2.compile=ne2,I2.select=re2,I2.setDocument=V2,I2.tokenize=Y2,I2.escape=ce.escapeSelector,I2.getText=ce.text,I2.isXML=ce.isXMLDoc,I2.selectors=ce.expr,I2.support=ce.support,I2.uniqueSort=ce.uniqueSort})();var d=function(e2,t2,n2){var r2=[],i2=void 0!==n2;while((e2=e2[t2])&&9!==e2.nodeType)if(1===e2.nodeType){if(i2&&ce(e2).is(n2))break;r2.push(e2)}return r2},h=function(e2,t2){for(var n2=[];e2;e2=e2.nextSibling)1===e2.nodeType&&e2!==t2&&n2.push(e2);return n2},b=ce.expr.match.needsContext,w=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function T(e2,n2,r2){return v(n2)?ce.grep(e2,function(e3,t2){return!!n2.call(e3,t2,e3)!==r2}):n2.nodeType?ce.grep(e2,function(e3){return e3===n2!==r2}):"string"!=typeof n2?ce.grep(e2,function(e3){return-1<se.call(n2,e3)!==r2}):ce.filter(n2,e2,r2)}ce.filter=function(e2,t2,n2){var r2=t2[0];return n2&&(e2=":not("+e2+")"),1===t2.length&&1===r2.nodeType?ce.find.matchesSelector(r2,e2)?[r2]:[]:ce.find.matches(e2,ce.grep(t2,function(e3){return 1===e3.nodeType}))},ce.fn.extend({find:function(e2){var t2,n2,r2=this.length,i2=this;if("string"!=typeof e2)return this.pushStack(ce(e2).filter(function(){for(t2=0;t2<r2;t2++)if(ce.contains(i2[t2],this))return true}));for(n2=this.pushStack([]),t2=0;t2<r2;t2++)ce.find(e2,i2[t2],n2);return 1<r2?ce.uniqueSort(n2):n2},filter:function(e2){return this.pushStack(T(this,e2||[],false))},not:function(e2){return this.pushStack(T(this,e2||[],true))},is:function(e2){return!!T(this,"string"==typeof e2&&b.test(e2)?ce(e2):e2||[],false).length}});var k,S=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(ce.fn.init=function(e2,t2,n2){var r2,i2;if(!e2)return this;if(n2=n2||k,"string"==typeof e2){if(!(r2="<"===e2[0]&&">"===e2[e2.length-1]&&3<=e2.length?[null,e2,null]:S.exec(e2))||!r2[1]&&t2)return!t2||t2.jquery?(t2||n2).find(e2):this.constructor(t2).find(e2);if(r2[1]){if(t2=t2 instanceof ce?t2[0]:t2,ce.merge(this,ce.parseHTML(r2[1],t2&&t2.nodeType?t2.ownerDocument||t2:C,true)),w.test(r2[1])&&ce.isPlainObject(t2))for(r2 in t2)v(this[r2])?this[r2](t2[r2]):this.attr(r2,t2[r2]);return this}return(i2=C.getElementById(r2[2]))&&(this[0]=i2,this.length=1),this}return e2.nodeType?(this[0]=e2,this.length=1,this):v(e2)?void 0!==n2.ready?n2.ready(e2):e2(ce):ce.makeArray(e2,this)}).prototype=ce.fn,k=ce(C);var E=/^(?:parents|prev(?:Until|All))/,j={children:true,contents:true,next:true,prev:true};function A(e2,t2){while((e2=e2[t2])&&1!==e2.nodeType);return e2}ce.fn.extend({has:function(e2){var t2=ce(e2,this),n2=t2.length;return this.filter(function(){for(var e3=0;e3<n2;e3++)if(ce.contains(this,t2[e3]))return true})},closest:function(e2,t2){var n2,r2=0,i2=this.length,o2=[],a2="string"!=typeof e2&&ce(e2);if(!b.test(e2)){for(;r2<i2;r2++)for(n2=this[r2];n2&&n2!==t2;n2=n2.parentNode)if(n2.nodeType<11&&(a2?-1<a2.index(n2):1===n2.nodeType&&ce.find.matchesSelector(n2,e2))){o2.push(n2);break}}return this.pushStack(1<o2.length?ce.uniqueSort(o2):o2)},index:function(e2){return e2?"string"==typeof e2?se.call(ce(e2),this[0]):se.call(this,e2.jquery?e2[0]:e2):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e2,t2){return this.pushStack(ce.uniqueSort(ce.merge(this.get(),ce(e2,t2))))},addBack:function(e2){return this.add(null==e2?this.prevObject:this.prevObject.filter(e2))}}),ce.each({parent:function(e2){var t2=e2.parentNode;return t2&&11!==t2.nodeType?t2:null},parents:function(e2){return d(e2,"parentNode")},parentsUntil:function(e2,t2,n2){return d(e2,"parentNode",n2)},next:function(e2){return A(e2,"nextSibling")},prev:function(e2){return A(e2,"previousSibling")},nextAll:function(e2){return d(e2,"nextSibling")},prevAll:function(e2){return d(e2,"previousSibling")},nextUntil:function(e2,t2,n2){return d(e2,"nextSibling",n2)},prevUntil:function(e2,t2,n2){return d(e2,"previousSibling",n2)},siblings:function(e2){return h((e2.parentNode||{}).firstChild,e2)},children:function(e2){return h(e2.firstChild)},contents:function(e2){return null!=e2.contentDocument&&r(e2.contentDocument)?e2.contentDocument:(fe(e2,"template")&&(e2=e2.content||e2),ce.merge([],e2.childNodes))}},function(r2,i2){ce.fn[r2]=function(e2,t2){var n2=ce.map(this,i2,e2);return"Until"!==r2.slice(-5)&&(t2=e2),t2&&"string"==typeof t2&&(n2=ce.filter(t2,n2)),1<this.length&&(j[r2]||ce.uniqueSort(n2),E.test(r2)&&n2.reverse()),this.pushStack(n2)}});var D=/[^\x20\t\r\n\f]+/g;function N(e2){return e2}function q(e2){throw e2}function L(e2,t2,n2,r2){var i2;try{e2&&v(i2=e2.promise)?i2.call(e2).done(t2).fail(n2):e2&&v(i2=e2.then)?i2.call(e2,t2,n2):t2.apply(void 0,[e2].slice(r2))}catch(e3){n2.apply(void 0,[e3])}}ce.Callbacks=function(r2){var e2,n2;r2="string"==typeof r2?(e2=r2,n2={},ce.each(e2.match(D)||[],function(e3,t3){n2[t3]=true}),n2):ce.extend({},r2);var i2,t2,o2,a2,s2=[],u2=[],l2=-1,c2=function(){for(a2=a2||r2.once,o2=i2=true;u2.length;l2=-1){t2=u2.shift();while(++l2<s2.length)false===s2[l2].apply(t2[0],t2[1])&&r2.stopOnFalse&&(l2=s2.length,t2=false)}r2.memory||(t2=false),i2=false,a2&&(s2=t2?[]:"")},f2={add:function(){return s2&&(t2&&!i2&&(l2=s2.length-1,u2.push(t2)),(function n3(e3){ce.each(e3,function(e4,t3){v(t3)?r2.unique&&f2.has(t3)||s2.push(t3):t3&&t3.length&&"string"!==x(t3)&&n3(t3)})})(arguments),t2&&!i2&&c2()),this},remove:function(){return ce.each(arguments,function(e3,t3){var n3;while(-1<(n3=ce.inArray(t3,s2,n3)))s2.splice(n3,1),n3<=l2&&l2--}),this},has:function(e3){return e3?-1<ce.inArray(e3,s2):0<s2.length},empty:function(){return s2&&(s2=[]),this},disable:function(){return a2=u2=[],s2=t2="",this},disabled:function(){return!s2},lock:function(){return a2=u2=[],t2||i2||(s2=t2=""),this},locked:function(){return!!a2},fireWith:function(e3,t3){return a2||(t3=[e3,(t3=t3||[]).slice?t3.slice():t3],u2.push(t3),i2||c2()),this},fire:function(){return f2.fireWith(this,arguments),this},fired:function(){return!!o2}};return f2},ce.extend({Deferred:function(e2){var o2=[["notify","progress",ce.Callbacks("memory"),ce.Callbacks("memory"),2],["resolve","done",ce.Callbacks("once memory"),ce.Callbacks("once memory"),0,"resolved"],["reject","fail",ce.Callbacks("once memory"),ce.Callbacks("once memory"),1,"rejected"]],i2="pending",a2={state:function(){return i2},always:function(){return s2.done(arguments).fail(arguments),this},"catch":function(e3){return a2.then(null,e3)},pipe:function(){var i3=arguments;return ce.Deferred(function(r2){ce.each(o2,function(e3,t2){var n2=v(i3[t2[4]])&&i3[t2[4]];s2[t2[1]](function(){var e4=n2&&n2.apply(this,arguments);e4&&v(e4.promise)?e4.promise().progress(r2.notify).done(r2.resolve).fail(r2.reject):r2[t2[0]+"With"](this,n2?[e4]:arguments)})}),i3=null}).promise()},then:function(t2,n2,r2){var u2=0;function l2(i3,o3,a3,s3){return function(){var n3=this,r3=arguments,e3=function(){var e4,t4;if(!(i3<u2)){if((e4=a3.apply(n3,r3))===o3.promise())throw new TypeError("Thenable self-resolution");t4=e4&&("object"==typeof e4||"function"==typeof e4)&&e4.then,v(t4)?s3?t4.call(e4,l2(u2,o3,N,s3),l2(u2,o3,q,s3)):(u2++,t4.call(e4,l2(u2,o3,N,s3),l2(u2,o3,q,s3),l2(u2,o3,N,o3.notifyWith))):(a3!==N&&(n3=void 0,r3=[e4]),(s3||o3.resolveWith)(n3,r3))}},t3=s3?e3:function(){try{e3()}catch(e4){ce.Deferred.exceptionHook&&ce.Deferred.exceptionHook(e4,t3.error),u2<=i3+1&&(a3!==q&&(n3=void 0,r3=[e4]),o3.rejectWith(n3,r3))}};i3?t3():(ce.Deferred.getErrorHook?t3.error=ce.Deferred.getErrorHook():ce.Deferred.getStackHook&&(t3.error=ce.Deferred.getStackHook()),ie.setTimeout(t3))}}return ce.Deferred(function(e3){o2[0][3].add(l2(0,e3,v(r2)?r2:N,e3.notifyWith)),o2[1][3].add(l2(0,e3,v(t2)?t2:N)),o2[2][3].add(l2(0,e3,v(n2)?n2:q))}).promise()},promise:function(e3){return null!=e3?ce.extend(e3,a2):a2}},s2={};return ce.each(o2,function(e3,t2){var n2=t2[2],r2=t2[5];a2[t2[1]]=n2.add,r2&&n2.add(function(){i2=r2},o2[3-e3][2].disable,o2[3-e3][3].disable,o2[0][2].lock,o2[0][3].lock),n2.add(t2[3].fire),s2[t2[0]]=function(){return s2[t2[0]+"With"](this===s2?void 0:this,arguments),this},s2[t2[0]+"With"]=n2.fireWith}),a2.promise(s2),e2&&e2.call(s2,s2),s2},when:function(e2){var n2=arguments.length,t2=n2,r2=Array(t2),i2=ae.call(arguments),o2=ce.Deferred(),a2=function(t3){return function(e3){r2[t3]=this,i2[t3]=1<arguments.length?ae.call(arguments):e3,--n2||o2.resolveWith(r2,i2)}};if(n2<=1&&(L(e2,o2.done(a2(t2)).resolve,o2.reject,!n2),"pending"===o2.state()||v(i2[t2]&&i2[t2].then)))return o2.then();while(t2--)L(i2[t2],a2(t2),o2.reject);return o2.promise()}});var H=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;ce.Deferred.exceptionHook=function(e2,t2){ie.console&&ie.console.warn&&e2&&H.test(e2.name)&&ie.console.warn("jQuery.Deferred exception: "+e2.message,e2.stack,t2)},ce.readyException=function(e2){ie.setTimeout(function(){throw e2})};var O=ce.Deferred();function P(){C.removeEventListener("DOMContentLoaded",P),ie.removeEventListener("load",P),ce.ready()}ce.fn.ready=function(e2){return O.then(e2)["catch"](function(e3){ce.readyException(e3)}),this},ce.extend({isReady:false,readyWait:1,ready:function(e2){(true===e2?--ce.readyWait:ce.isReady)||(ce.isReady=true)!==e2&&0<--ce.readyWait||O.resolveWith(C,[ce])}}),ce.ready.then=O.then,"complete"===C.readyState||"loading"!==C.readyState&&!C.documentElement.doScroll?ie.setTimeout(ce.ready):(C.addEventListener("DOMContentLoaded",P),ie.addEventListener("load",P));var M=function(e2,t2,n2,r2,i2,o2,a2){var s2=0,u2=e2.length,l2=null==n2;if("object"===x(n2))for(s2 in i2=true,n2)M(e2,t2,s2,n2[s2],true,o2,a2);else if(void 0!==r2&&(i2=true,v(r2)||(a2=true),l2&&(a2?(t2.call(e2,r2),t2=null):(l2=t2,t2=function(e3,t3,n3){return l2.call(ce(e3),n3)})),t2))for(;s2<u2;s2++)t2(e2[s2],n2,a2?r2:r2.call(e2[s2],s2,t2(e2[s2],n2)));return i2?e2:l2?t2.call(e2):u2?t2(e2[0],n2):o2},R=/^-ms-/,I=/-([a-z])/g;function W(e2,t2){return t2.toUpperCase()}function F(e2){return e2.replace(R,"ms-").replace(I,W)}var $=function(e2){return 1===e2.nodeType||9===e2.nodeType||!+e2.nodeType};function B(){this.expando=ce.expando+B.uid++}B.uid=1,B.prototype={cache:function(e2){var t2=e2[this.expando];return t2||(t2={},$(e2)&&(e2.nodeType?e2[this.expando]=t2:Object.defineProperty(e2,this.expando,{value:t2,configurable:true}))),t2},set:function(e2,t2,n2){var r2,i2=this.cache(e2);if("string"==typeof t2)i2[F(t2)]=n2;else for(r2 in t2)i2[F(r2)]=t2[r2];return i2},get:function(e2,t2){return void 0===t2?this.cache(e2):e2[this.expando]&&e2[this.expando][F(t2)]},access:function(e2,t2,n2){return void 0===t2||t2&&"string"==typeof t2&&void 0===n2?this.get(e2,t2):(this.set(e2,t2,n2),void 0!==n2?n2:t2)},remove:function(e2,t2){var n2,r2=e2[this.expando];if(void 0!==r2){if(void 0!==t2){n2=(t2=Array.isArray(t2)?t2.map(F):(t2=F(t2))in r2?[t2]:t2.match(D)||[]).length;while(n2--)delete r2[t2[n2]]}(void 0===t2||ce.isEmptyObject(r2))&&(e2.nodeType?e2[this.expando]=void 0:delete e2[this.expando])}},hasData:function(e2){var t2=e2[this.expando];return void 0!==t2&&!ce.isEmptyObject(t2)}};var _=new B,z=new B,X=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,U=/[A-Z]/g;function V(e2,t2,n2){var r2,i2;if(void 0===n2&&1===e2.nodeType)if(r2="data-"+t2.replace(U,"-$&").toLowerCase(),"string"==typeof(n2=e2.getAttribute(r2))){try{n2="true"===(i2=n2)||"false"!==i2&&("null"===i2?null:i2===+i2+""?+i2:X.test(i2)?JSON.parse(i2):i2)}catch(e3){}z.set(e2,t2,n2)}else n2=void 0;return n2}ce.extend({hasData:function(e2){return z.hasData(e2)||_.hasData(e2)},data:function(e2,t2,n2){return z.access(e2,t2,n2)},removeData:function(e2,t2){z.remove(e2,t2)},_data:function(e2,t2,n2){return _.access(e2,t2,n2)},_removeData:function(e2,t2){_.remove(e2,t2)}}),ce.fn.extend({data:function(n2,e2){var t2,r2,i2,o2=this[0],a2=o2&&o2.attributes;if(void 0===n2){if(this.length&&(i2=z.get(o2),1===o2.nodeType&&!_.get(o2,"hasDataAttrs"))){t2=a2.length;while(t2--)a2[t2]&&0===(r2=a2[t2].name).indexOf("data-")&&(r2=F(r2.slice(5)),V(o2,r2,i2[r2]));_.set(o2,"hasDataAttrs",true)}return i2}return"object"==typeof n2?this.each(function(){z.set(this,n2)}):M(this,function(e3){var t3;if(o2&&void 0===e3)return void 0!==(t3=z.get(o2,n2))?t3:void 0!==(t3=V(o2,n2))?t3:void 0;this.each(function(){z.set(this,n2,e3)})},null,e2,1<arguments.length,null,true)},removeData:function(e2){return this.each(function(){z.remove(this,e2)})}}),ce.extend({queue:function(e2,t2,n2){var r2;if(e2)return t2=(t2||"fx")+"queue",r2=_.get(e2,t2),n2&&(!r2||Array.isArray(n2)?r2=_.access(e2,t2,ce.makeArray(n2)):r2.push(n2)),r2||[]},dequeue:function(e2,t2){t2=t2||"fx";var n2=ce.queue(e2,t2),r2=n2.length,i2=n2.shift(),o2=ce._queueHooks(e2,t2);"inprogress"===i2&&(i2=n2.shift(),r2--),i2&&("fx"===t2&&n2.unshift("inprogress"),delete o2.stop,i2.call(e2,function(){ce.dequeue(e2,t2)},o2)),!r2&&o2&&o2.empty.fire()},_queueHooks:function(e2,t2){var n2=t2+"queueHooks";return _.get(e2,n2)||_.access(e2,n2,{empty:ce.Callbacks("once memory").add(function(){_.remove(e2,[t2+"queue",n2])})})}}),ce.fn.extend({queue:function(t2,n2){var e2=2;return"string"!=typeof t2&&(n2=t2,t2="fx",e2--),arguments.length<e2?ce.queue(this[0],t2):void 0===n2?this:this.each(function(){var e3=ce.queue(this,t2,n2);ce._queueHooks(this,t2),"fx"===t2&&"inprogress"!==e3[0]&&ce.dequeue(this,t2)})},dequeue:function(e2){return this.each(function(){ce.dequeue(this,e2)})},clearQueue:function(e2){return this.queue(e2||"fx",[])},promise:function(e2,t2){var n2,r2=1,i2=ce.Deferred(),o2=this,a2=this.length,s2=function(){--r2||i2.resolveWith(o2,[o2])};"string"!=typeof e2&&(t2=e2,e2=void 0),e2=e2||"fx";while(a2--)(n2=_.get(o2[a2],e2+"queueHooks"))&&n2.empty&&(r2++,n2.empty.add(s2));return s2(),i2.promise(t2)}});var G=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,Y=new RegExp("^(?:([+-])=|)("+G+")([a-z%]*)$","i"),Q=["Top","Right","Bottom","Left"],J=C.documentElement,K=function(e2){return ce.contains(e2.ownerDocument,e2)},Z={composed:true};J.getRootNode&&(K=function(e2){return ce.contains(e2.ownerDocument,e2)||e2.getRootNode(Z)===e2.ownerDocument});var ee=function(e2,t2){return"none"===(e2=t2||e2).style.display||""===e2.style.display&&K(e2)&&"none"===ce.css(e2,"display")};function te(e2,t2,n2,r2){var i2,o2,a2=20,s2=r2?function(){return r2.cur()}:function(){return ce.css(e2,t2,"")},u2=s2(),l2=n2&&n2[3]||(ce.cssNumber[t2]?"":"px"),c2=e2.nodeType&&(ce.cssNumber[t2]||"px"!==l2&&+u2)&&Y.exec(ce.css(e2,t2));if(c2&&c2[3]!==l2){u2/=2,l2=l2||c2[3],c2=+u2||1;while(a2--)ce.style(e2,t2,c2+l2),(1-o2)*(1-(o2=s2()/u2||.5))<=0&&(a2=0),c2/=o2;c2*=2,ce.style(e2,t2,c2+l2),n2=n2||[]}return n2&&(c2=+c2||+u2||0,i2=n2[1]?c2+(n2[1]+1)*n2[2]:+n2[2],r2&&(r2.unit=l2,r2.start=c2,r2.end=i2)),i2}var ne={};function re(e2,t2){for(var n2,r2,i2,o2,a2,s2,u2,l2=[],c2=0,f2=e2.length;c2<f2;c2++)(r2=e2[c2]).style&&(n2=r2.style.display,t2?("none"===n2&&(l2[c2]=_.get(r2,"display")||null,l2[c2]||(r2.style.display="")),""===r2.style.display&&ee(r2)&&(l2[c2]=(u2=a2=o2=void 0,a2=(i2=r2).ownerDocument,s2=i2.nodeName,(u2=ne[s2])||(o2=a2.body.appendChild(a2.createElement(s2)),u2=ce.css(o2,"display"),o2.parentNode.removeChild(o2),"none"===u2&&(u2="block"),ne[s2]=u2)))):"none"!==n2&&(l2[c2]="none",_.set(r2,"display",n2)));for(c2=0;c2<f2;c2++)null!=l2[c2]&&(e2[c2].style.display=l2[c2]);return e2}ce.fn.extend({show:function(){return re(this,true)},hide:function(){return re(this)},toggle:function(e2){return"boolean"==typeof e2?e2?this.show():this.hide():this.each(function(){ee(this)?ce(this).show():ce(this).hide()})}});var xe,be,we=/^(?:checkbox|radio)$/i,Te=/<([a-z][^\/\0>\x20\t\r\n\f]*)/i,Ce=/^$|^module$|\/(?:java|ecma)script/i;xe=C.createDocumentFragment().appendChild(C.createElement("div")),(be=C.createElement("input")).setAttribute("type","radio"),be.setAttribute("checked","checked"),be.setAttribute("name","t"),xe.appendChild(be),le.checkClone=xe.cloneNode(true).cloneNode(true).lastChild.checked,xe.innerHTML="<textarea>x</textarea>",le.noCloneChecked=!!xe.cloneNode(true).lastChild.defaultValue,xe.innerHTML="<option></option>",le.option=!!xe.lastChild;var ke={thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function Se(e2,t2){var n2;return n2="undefined"!=typeof e2.getElementsByTagName?e2.getElementsByTagName(t2||"*"):"undefined"!=typeof e2.querySelectorAll?e2.querySelectorAll(t2||"*"):[],void 0===t2||t2&&fe(e2,t2)?ce.merge([e2],n2):n2}function Ee(e2,t2){for(var n2=0,r2=e2.length;n2<r2;n2++)_.set(e2[n2],"globalEval",!t2||_.get(t2[n2],"globalEval"))}ke.tbody=ke.tfoot=ke.colgroup=ke.caption=ke.thead,ke.th=ke.td,le.option||(ke.optgroup=ke.option=[1,"<select multiple='multiple'>","</select>"]);var je=/<|&#?\w+;/;function Ae(e2,t2,n2,r2,i2){for(var o2,a2,s2,u2,l2,c2,f2=t2.createDocumentFragment(),p2=[],d2=0,h2=e2.length;d2<h2;d2++)if((o2=e2[d2])||0===o2)if("object"===x(o2))ce.merge(p2,o2.nodeType?[o2]:o2);else if(je.test(o2)){a2=a2||f2.appendChild(t2.createElement("div")),s2=(Te.exec(o2)||["",""])[1].toLowerCase(),u2=ke[s2]||ke._default,a2.innerHTML=u2[1]+ce.htmlPrefilter(o2)+u2[2],c2=u2[0];while(c2--)a2=a2.lastChild;ce.merge(p2,a2.childNodes),(a2=f2.firstChild).textContent=""}else p2.push(t2.createTextNode(o2));f2.textContent="",d2=0;while(o2=p2[d2++])if(r2&&-1<ce.inArray(o2,r2))i2&&i2.push(o2);else if(l2=K(o2),a2=Se(f2.appendChild(o2),"script"),l2&&Ee(a2),n2){c2=0;while(o2=a2[c2++])Ce.test(o2.type||"")&&n2.push(o2)}return f2}var De=/^([^.]*)(?:\.(.+)|)/;function Ne(){return true}function qe(){return false}function Le(e2,t2,n2,r2,i2,o2){var a2,s2;if("object"==typeof t2){for(s2 in"string"!=typeof n2&&(r2=r2||n2,n2=void 0),t2)Le(e2,s2,n2,r2,t2[s2],o2);return e2}if(null==r2&&null==i2?(i2=n2,r2=n2=void 0):null==i2&&("string"==typeof n2?(i2=r2,r2=void 0):(i2=r2,r2=n2,n2=void 0)),false===i2)i2=qe;else if(!i2)return e2;return 1===o2&&(a2=i2,(i2=function(e3){return ce().off(e3),a2.apply(this,arguments)}).guid=a2.guid||(a2.guid=ce.guid++)),e2.each(function(){ce.event.add(this,t2,i2,r2,n2)})}function He(e2,r2,t2){t2?(_.set(e2,r2,false),ce.event.add(e2,r2,{namespace:false,handler:function(e3){var t3,n2=_.get(this,r2);if(1&e3.isTrigger&&this[r2]){if(n2)(ce.event.special[r2]||{}).delegateType&&e3.stopPropagation();else if(n2=ae.call(arguments),_.set(this,r2,n2),this[r2](),t3=_.get(this,r2),_.set(this,r2,false),n2!==t3)return e3.stopImmediatePropagation(),e3.preventDefault(),t3}else n2&&(_.set(this,r2,ce.event.trigger(n2[0],n2.slice(1),this)),e3.stopPropagation(),e3.isImmediatePropagationStopped=Ne)}})):void 0===_.get(e2,r2)&&ce.event.add(e2,r2,Ne)}ce.event={global:{},add:function(t2,e2,n2,r2,i2){var o2,a2,s2,u2,l2,c2,f2,p2,d2,h2,g2,v2=_.get(t2);if($(t2)){n2.handler&&(n2=(o2=n2).handler,i2=o2.selector),i2&&ce.find.matchesSelector(J,i2),n2.guid||(n2.guid=ce.guid++),(u2=v2.events)||(u2=v2.events=Object.create(null)),(a2=v2.handle)||(a2=v2.handle=function(e3){return"undefined"!=typeof ce&&ce.event.triggered!==e3.type?ce.event.dispatch.apply(t2,arguments):void 0}),l2=(e2=(e2||"").match(D)||[""]).length;while(l2--)d2=g2=(s2=De.exec(e2[l2])||[])[1],h2=(s2[2]||"").split(".").sort(),d2&&(f2=ce.event.special[d2]||{},d2=(i2?f2.delegateType:f2.bindType)||d2,f2=ce.event.special[d2]||{},c2=ce.extend({type:d2,origType:g2,data:r2,handler:n2,guid:n2.guid,selector:i2,needsContext:i2&&ce.expr.match.needsContext.test(i2),namespace:h2.join(".")},o2),(p2=u2[d2])||((p2=u2[d2]=[]).delegateCount=0,f2.setup&&false!==f2.setup.call(t2,r2,h2,a2)||t2.addEventListener&&t2.addEventListener(d2,a2)),f2.add&&(f2.add.call(t2,c2),c2.handler.guid||(c2.handler.guid=n2.guid)),i2?p2.splice(p2.delegateCount++,0,c2):p2.push(c2),ce.event.global[d2]=true)}},remove:function(e2,t2,n2,r2,i2){var o2,a2,s2,u2,l2,c2,f2,p2,d2,h2,g2,v2=_.hasData(e2)&&_.get(e2);if(v2&&(u2=v2.events)){l2=(t2=(t2||"").match(D)||[""]).length;while(l2--)if(d2=g2=(s2=De.exec(t2[l2])||[])[1],h2=(s2[2]||"").split(".").sort(),d2){f2=ce.event.special[d2]||{},p2=u2[d2=(r2?f2.delegateType:f2.bindType)||d2]||[],s2=s2[2]&&new RegExp("(^|\\.)"+h2.join("\\.(?:.*\\.|)")+"(\\.|$)"),a2=o2=p2.length;while(o2--)c2=p2[o2],!i2&&g2!==c2.origType||n2&&n2.guid!==c2.guid||s2&&!s2.test(c2.namespace)||r2&&r2!==c2.selector&&("**"!==r2||!c2.selector)||(p2.splice(o2,1),c2.selector&&p2.delegateCount--,f2.remove&&f2.remove.call(e2,c2));a2&&!p2.length&&(f2.teardown&&false!==f2.teardown.call(e2,h2,v2.handle)||ce.removeEvent(e2,d2,v2.handle),delete u2[d2])}else for(d2 in u2)ce.event.remove(e2,d2+t2[l2],n2,r2,true);ce.isEmptyObject(u2)&&_.remove(e2,"handle events")}},dispatch:function(e2){var t2,n2,r2,i2,o2,a2,s2=new Array(arguments.length),u2=ce.event.fix(e2),l2=(_.get(this,"events")||Object.create(null))[u2.type]||[],c2=ce.event.special[u2.type]||{};for(s2[0]=u2,t2=1;t2<arguments.length;t2++)s2[t2]=arguments[t2];if(u2.delegateTarget=this,!c2.preDispatch||false!==c2.preDispatch.call(this,u2)){a2=ce.event.handlers.call(this,u2,l2),t2=0;while((i2=a2[t2++])&&!u2.isPropagationStopped()){u2.currentTarget=i2.elem,n2=0;while((o2=i2.handlers[n2++])&&!u2.isImmediatePropagationStopped())u2.rnamespace&&false!==o2.namespace&&!u2.rnamespace.test(o2.namespace)||(u2.handleObj=o2,u2.data=o2.data,void 0!==(r2=((ce.event.special[o2.origType]||{}).handle||o2.handler).apply(i2.elem,s2))&&false===(u2.result=r2)&&(u2.preventDefault(),u2.stopPropagation()))}return c2.postDispatch&&c2.postDispatch.call(this,u2),u2.result}},handlers:function(e2,t2){var n2,r2,i2,o2,a2,s2=[],u2=t2.delegateCount,l2=e2.target;if(u2&&l2.nodeType&&!("click"===e2.type&&1<=e2.button)){for(;l2!==this;l2=l2.parentNode||this)if(1===l2.nodeType&&("click"!==e2.type||true!==l2.disabled)){for(o2=[],a2={},n2=0;n2<u2;n2++)void 0===a2[i2=(r2=t2[n2]).selector+" "]&&(a2[i2]=r2.needsContext?-1<ce(i2,this).index(l2):ce.find(i2,this,null,[l2]).length),a2[i2]&&o2.push(r2);o2.length&&s2.push({elem:l2,handlers:o2})}}return l2=this,u2<t2.length&&s2.push({elem:l2,handlers:t2.slice(u2)}),s2},addProp:function(t2,e2){Object.defineProperty(ce.Event.prototype,t2,{enumerable:true,configurable:true,get:v(e2)?function(){if(this.originalEvent)return e2(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[t2]},set:function(e3){Object.defineProperty(this,t2,{enumerable:true,configurable:true,writable:true,value:e3})}})},fix:function(e2){return e2[ce.expando]?e2:new ce.Event(e2)},special:{load:{noBubble:true},click:{setup:function(e2){var t2=this||e2;return we.test(t2.type)&&t2.click&&fe(t2,"input")&&He(t2,"click",true),false},trigger:function(e2){var t2=this||e2;return we.test(t2.type)&&t2.click&&fe(t2,"input")&&He(t2,"click"),true},_default:function(e2){var t2=e2.target;return we.test(t2.type)&&t2.click&&fe(t2,"input")&&_.get(t2,"click")||fe(t2,"a")}},beforeunload:{postDispatch:function(e2){void 0!==e2.result&&e2.originalEvent&&(e2.originalEvent.returnValue=e2.result)}}}},ce.removeEvent=function(e2,t2,n2){e2.removeEventListener&&e2.removeEventListener(t2,n2)},ce.Event=function(e2,t2){if(!(this instanceof ce.Event))return new ce.Event(e2,t2);e2&&e2.type?(this.originalEvent=e2,this.type=e2.type,this.isDefaultPrevented=e2.defaultPrevented||void 0===e2.defaultPrevented&&false===e2.returnValue?Ne:qe,this.target=e2.target&&3===e2.target.nodeType?e2.target.parentNode:e2.target,this.currentTarget=e2.currentTarget,this.relatedTarget=e2.relatedTarget):this.type=e2,t2&&ce.extend(this,t2),this.timeStamp=e2&&e2.timeStamp||Date.now(),this[ce.expando]=true},ce.Event.prototype={constructor:ce.Event,isDefaultPrevented:qe,isPropagationStopped:qe,isImmediatePropagationStopped:qe,isSimulated:false,preventDefault:function(){var e2=this.originalEvent;this.isDefaultPrevented=Ne,e2&&!this.isSimulated&&e2.preventDefault()},stopPropagation:function(){var e2=this.originalEvent;this.isPropagationStopped=Ne,e2&&!this.isSimulated&&e2.stopPropagation()},stopImmediatePropagation:function(){var e2=this.originalEvent;this.isImmediatePropagationStopped=Ne,e2&&!this.isSimulated&&e2.stopImmediatePropagation(),this.stopPropagation()}},ce.each({altKey:true,bubbles:true,cancelable:true,changedTouches:true,ctrlKey:true,detail:true,eventPhase:true,metaKey:true,pageX:true,pageY:true,shiftKey:true,view:true,"char":true,code:true,charCode:true,key:true,keyCode:true,button:true,buttons:true,clientX:true,clientY:true,offsetX:true,offsetY:true,pointerId:true,pointerType:true,screenX:true,screenY:true,targetTouches:true,toElement:true,touches:true,which:true},ce.event.addProp),ce.each({focus:"focusin",blur:"focusout"},function(r2,i2){function o2(e2){if(C.documentMode){var t2=_.get(this,"handle"),n2=ce.event.fix(e2);n2.type="focusin"===e2.type?"focus":"blur",n2.isSimulated=true,t2(e2),n2.target===n2.currentTarget&&t2(n2)}else ce.event.simulate(i2,e2.target,ce.event.fix(e2))}ce.event.special[r2]={setup:function(){var e2;if(He(this,r2,true),!C.documentMode)return false;(e2=_.get(this,i2))||this.addEventListener(i2,o2),_.set(this,i2,(e2||0)+1)},trigger:function(){return He(this,r2),true},teardown:function(){var e2;if(!C.documentMode)return false;(e2=_.get(this,i2)-1)?_.set(this,i2,e2):(this.removeEventListener(i2,o2),_.remove(this,i2))},_default:function(e2){return _.get(e2.target,r2)},delegateType:i2},ce.event.special[i2]={setup:function(){var e2=this.ownerDocument||this.document||this,t2=C.documentMode?this:e2,n2=_.get(t2,i2);n2||(C.documentMode?this.addEventListener(i2,o2):e2.addEventListener(r2,o2,true)),_.set(t2,i2,(n2||0)+1)},teardown:function(){var e2=this.ownerDocument||this.document||this,t2=C.documentMode?this:e2,n2=_.get(t2,i2)-1;n2?_.set(t2,i2,n2):(C.documentMode?this.removeEventListener(i2,o2):e2.removeEventListener(r2,o2,true),_.remove(t2,i2))}}}),ce.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(e2,i2){ce.event.special[e2]={delegateType:i2,bindType:i2,handle:function(e3){var t2,n2=e3.relatedTarget,r2=e3.handleObj;return n2&&(n2===this||ce.contains(this,n2))||(e3.type=r2.origType,t2=r2.handler.apply(this,arguments),e3.type=i2),t2}}}),ce.fn.extend({on:function(e2,t2,n2,r2){return Le(this,e2,t2,n2,r2)},one:function(e2,t2,n2,r2){return Le(this,e2,t2,n2,r2,1)},off:function(e2,t2,n2){var r2,i2;if(e2&&e2.preventDefault&&e2.handleObj)return r2=e2.handleObj,ce(e2.delegateTarget).off(r2.namespace?r2.origType+"."+r2.namespace:r2.origType,r2.selector,r2.handler),this;if("object"==typeof e2){for(i2 in e2)this.off(i2,t2,e2[i2]);return this}return false!==t2&&"function"!=typeof t2||(n2=t2,t2=void 0),false===n2&&(n2=qe),this.each(function(){ce.event.remove(this,e2,n2,t2)})}});var Oe=/<script|<style|<link/i,Pe=/checked\s*(?:[^=]|=\s*.checked.)/i,Me=/^\s*<!\[CDATA\[|\]\]>\s*$/g;function Re(e2,t2){return fe(e2,"table")&&fe(11!==t2.nodeType?t2:t2.firstChild,"tr")&&ce(e2).children("tbody")[0]||e2}function Ie(e2){return e2.type=(null!==e2.getAttribute("type"))+"/"+e2.type,e2}function We(e2){return"true/"===(e2.type||"").slice(0,5)?e2.type=e2.type.slice(5):e2.removeAttribute("type"),e2}function Fe(e2,t2){var n2,r2,i2,o2,a2,s2;if(1===t2.nodeType){if(_.hasData(e2)&&(s2=_.get(e2).events))for(i2 in _.remove(t2,"handle events"),s2)for(n2=0,r2=s2[i2].length;n2<r2;n2++)ce.event.add(t2,i2,s2[i2][n2]);z.hasData(e2)&&(o2=z.access(e2),a2=ce.extend({},o2),z.set(t2,a2))}}function $e(n2,r2,i2,o2){r2=g(r2);var e2,t2,a2,s2,u2,l2,c2=0,f2=n2.length,p2=f2-1,d2=r2[0],h2=v(d2);if(h2||1<f2&&"string"==typeof d2&&!le.checkClone&&Pe.test(d2))return n2.each(function(e3){var t3=n2.eq(e3);h2&&(r2[0]=d2.call(this,e3,t3.html())),$e(t3,r2,i2,o2)});if(f2&&(t2=(e2=Ae(r2,n2[0].ownerDocument,false,n2,o2)).firstChild,1===e2.childNodes.length&&(e2=t2),t2||o2)){for(s2=(a2=ce.map(Se(e2,"script"),Ie)).length;c2<f2;c2++)u2=e2,c2!==p2&&(u2=ce.clone(u2,true,true),s2&&ce.merge(a2,Se(u2,"script"))),i2.call(n2[c2],u2,c2);if(s2)for(l2=a2[a2.length-1].ownerDocument,ce.map(a2,We),c2=0;c2<s2;c2++)u2=a2[c2],Ce.test(u2.type||"")&&!_.access(u2,"globalEval")&&ce.contains(l2,u2)&&(u2.src&&"module"!==(u2.type||"").toLowerCase()?ce._evalUrl&&!u2.noModule&&ce._evalUrl(u2.src,{nonce:u2.nonce||u2.getAttribute("nonce")},l2):m(u2.textContent.replace(Me,""),u2,l2))}return n2}function Be(e2,t2,n2){for(var r2,i2=t2?ce.filter(t2,e2):e2,o2=0;null!=(r2=i2[o2]);o2++)n2||1!==r2.nodeType||ce.cleanData(Se(r2)),r2.parentNode&&(n2&&K(r2)&&Ee(Se(r2,"script")),r2.parentNode.removeChild(r2));return e2}ce.extend({htmlPrefilter:function(e2){return e2},clone:function(e2,t2,n2){var r2,i2,o2,a2,s2,u2,l2,c2=e2.cloneNode(true),f2=K(e2);if(!(le.noCloneChecked||1!==e2.nodeType&&11!==e2.nodeType||ce.isXMLDoc(e2)))for(a2=Se(c2),r2=0,i2=(o2=Se(e2)).length;r2<i2;r2++)s2=o2[r2],u2=a2[r2],void 0,"input"===(l2=u2.nodeName.toLowerCase())&&we.test(s2.type)?u2.checked=s2.checked:"input"!==l2&&"textarea"!==l2||(u2.defaultValue=s2.defaultValue);if(t2)if(n2)for(o2=o2||Se(e2),a2=a2||Se(c2),r2=0,i2=o2.length;r2<i2;r2++)Fe(o2[r2],a2[r2]);else Fe(e2,c2);return 0<(a2=Se(c2,"script")).length&&Ee(a2,!f2&&Se(e2,"script")),c2},cleanData:function(e2){for(var t2,n2,r2,i2=ce.event.special,o2=0;void 0!==(n2=e2[o2]);o2++)if($(n2)){if(t2=n2[_.expando]){if(t2.events)for(r2 in t2.events)i2[r2]?ce.event.remove(n2,r2):ce.removeEvent(n2,r2,t2.handle);n2[_.expando]=void 0}n2[z.expando]&&(n2[z.expando]=void 0)}}}),ce.fn.extend({detach:function(e2){return Be(this,e2,true)},remove:function(e2){return Be(this,e2)},text:function(e2){return M(this,function(e3){return void 0===e3?ce.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e3)})},null,e2,arguments.length)},append:function(){return $e(this,arguments,function(e2){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Re(this,e2).appendChild(e2)})},prepend:function(){return $e(this,arguments,function(e2){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t2=Re(this,e2);t2.insertBefore(e2,t2.firstChild)}})},before:function(){return $e(this,arguments,function(e2){this.parentNode&&this.parentNode.insertBefore(e2,this)})},after:function(){return $e(this,arguments,function(e2){this.parentNode&&this.parentNode.insertBefore(e2,this.nextSibling)})},empty:function(){for(var e2,t2=0;null!=(e2=this[t2]);t2++)1===e2.nodeType&&(ce.cleanData(Se(e2,false)),e2.textContent="");return this},clone:function(e2,t2){return e2=null!=e2&&e2,t2=null==t2?e2:t2,this.map(function(){return ce.clone(this,e2,t2)})},html:function(e2){return M(this,function(e3){var t2=this[0]||{},n2=0,r2=this.length;if(void 0===e3&&1===t2.nodeType)return t2.innerHTML;if("string"==typeof e3&&!Oe.test(e3)&&!ke[(Te.exec(e3)||["",""])[1].toLowerCase()]){e3=ce.htmlPrefilter(e3);try{for(;n2<r2;n2++)1===(t2=this[n2]||{}).nodeType&&(ce.cleanData(Se(t2,false)),t2.innerHTML=e3);t2=0}catch(e4){}}t2&&this.empty().append(e3)},null,e2,arguments.length)},replaceWith:function(){var n2=[];return $e(this,arguments,function(e2){var t2=this.parentNode;ce.inArray(this,n2)<0&&(ce.cleanData(Se(this)),t2&&t2.replaceChild(e2,this))},n2)}}),ce.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e2,a2){ce.fn[e2]=function(e3){for(var t2,n2=[],r2=ce(e3),i2=r2.length-1,o2=0;o2<=i2;o2++)t2=o2===i2?this:this.clone(true),ce(r2[o2])[a2](t2),s.apply(n2,t2.get());return this.pushStack(n2)}});var _e=new RegExp("^("+G+")(?!px)[a-z%]+$","i"),ze=/^--/,Xe=function(e2){var t2=e2.ownerDocument.defaultView;return t2&&t2.opener||(t2=ie),t2.getComputedStyle(e2)},Ue=function(e2,t2,n2){var r2,i2,o2={};for(i2 in t2)o2[i2]=e2.style[i2],e2.style[i2]=t2[i2];for(i2 in r2=n2.call(e2),t2)e2.style[i2]=o2[i2];return r2},Ve=new RegExp(Q.join("|"),"i");function Ge(e2,t2,n2){var r2,i2,o2,a2,s2=ze.test(t2),u2=e2.style;return(n2=n2||Xe(e2))&&(a2=n2.getPropertyValue(t2)||n2[t2],s2&&a2&&(a2=a2.replace(ve,"$1")||void 0),""!==a2||K(e2)||(a2=ce.style(e2,t2)),!le.pixelBoxStyles()&&_e.test(a2)&&Ve.test(t2)&&(r2=u2.width,i2=u2.minWidth,o2=u2.maxWidth,u2.minWidth=u2.maxWidth=u2.width=a2,a2=n2.width,u2.width=r2,u2.minWidth=i2,u2.maxWidth=o2)),void 0!==a2?a2+"":a2}function Ye(e2,t2){return{get:function(){if(!e2())return(this.get=t2).apply(this,arguments);delete this.get}}}!(function(){function e2(){if(l2){u2.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",l2.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",J.appendChild(u2).appendChild(l2);var e3=ie.getComputedStyle(l2);n2="1%"!==e3.top,s2=12===t2(e3.marginLeft),l2.style.right="60%",o2=36===t2(e3.right),r2=36===t2(e3.width),l2.style.position="absolute",i2=12===t2(l2.offsetWidth/3),J.removeChild(u2),l2=null}}function t2(e3){return Math.round(parseFloat(e3))}var n2,r2,i2,o2,a2,s2,u2=C.createElement("div"),l2=C.createElement("div");l2.style&&(l2.style.backgroundClip="content-box",l2.cloneNode(true).style.backgroundClip="",le.clearCloneStyle="content-box"===l2.style.backgroundClip,ce.extend(le,{boxSizingReliable:function(){return e2(),r2},pixelBoxStyles:function(){return e2(),o2},pixelPosition:function(){return e2(),n2},reliableMarginLeft:function(){return e2(),s2},scrollboxSize:function(){return e2(),i2},reliableTrDimensions:function(){var e3,t3,n3,r3;return null==a2&&(e3=C.createElement("table"),t3=C.createElement("tr"),n3=C.createElement("div"),e3.style.cssText="position:absolute;left:-11111px;border-collapse:separate",t3.style.cssText="box-sizing:content-box;border:1px solid",t3.style.height="1px",n3.style.height="9px",n3.style.display="block",J.appendChild(e3).appendChild(t3).appendChild(n3),r3=ie.getComputedStyle(t3),a2=parseInt(r3.height,10)+parseInt(r3.borderTopWidth,10)+parseInt(r3.borderBottomWidth,10)===t3.offsetHeight,J.removeChild(e3)),a2}}))})();var Qe=["Webkit","Moz","ms"],Je=C.createElement("div").style,Ke={};function Ze(e2){var t2=ce.cssProps[e2]||Ke[e2];return t2||(e2 in Je?e2:Ke[e2]=(function(e3){var t3=e3[0].toUpperCase()+e3.slice(1),n2=Qe.length;while(n2--)if((e3=Qe[n2]+t3)in Je)return e3})(e2)||e2)}var et=/^(none|table(?!-c[ea]).+)/,tt={position:"absolute",visibility:"hidden",display:"block"},nt={letterSpacing:"0",fontWeight:"400"};function rt(e2,t2,n2){var r2=Y.exec(t2);return r2?Math.max(0,r2[2]-(n2||0))+(r2[3]||"px"):t2}function it(e2,t2,n2,r2,i2,o2){var a2="width"===t2?1:0,s2=0,u2=0,l2=0;if(n2===(r2?"border":"content"))return 0;for(;a2<4;a2+=2)"margin"===n2&&(l2+=ce.css(e2,n2+Q[a2],true,i2)),r2?("content"===n2&&(u2-=ce.css(e2,"padding"+Q[a2],true,i2)),"margin"!==n2&&(u2-=ce.css(e2,"border"+Q[a2]+"Width",true,i2))):(u2+=ce.css(e2,"padding"+Q[a2],true,i2),"padding"!==n2?u2+=ce.css(e2,"border"+Q[a2]+"Width",true,i2):s2+=ce.css(e2,"border"+Q[a2]+"Width",true,i2));return!r2&&0<=o2&&(u2+=Math.max(0,Math.ceil(e2["offset"+t2[0].toUpperCase()+t2.slice(1)]-o2-u2-s2-.5))||0),u2+l2}function ot(e2,t2,n2){var r2=Xe(e2),i2=(!le.boxSizingReliable()||n2)&&"border-box"===ce.css(e2,"boxSizing",false,r2),o2=i2,a2=Ge(e2,t2,r2),s2="offset"+t2[0].toUpperCase()+t2.slice(1);if(_e.test(a2)){if(!n2)return a2;a2="auto"}return(!le.boxSizingReliable()&&i2||!le.reliableTrDimensions()&&fe(e2,"tr")||"auto"===a2||!parseFloat(a2)&&"inline"===ce.css(e2,"display",false,r2))&&e2.getClientRects().length&&(i2="border-box"===ce.css(e2,"boxSizing",false,r2),(o2=s2 in e2)&&(a2=e2[s2])),(a2=parseFloat(a2)||0)+it(e2,t2,n2||(i2?"border":"content"),o2,r2,a2)+"px"}function at(e2,t2,n2,r2,i2){return new at.prototype.init(e2,t2,n2,r2,i2)}ce.extend({cssHooks:{opacity:{get:function(e2,t2){if(t2){var n2=Ge(e2,"opacity");return""===n2?"1":n2}}}},cssNumber:{animationIterationCount:true,aspectRatio:true,borderImageSlice:true,columnCount:true,flexGrow:true,flexShrink:true,fontWeight:true,gridArea:true,gridColumn:true,gridColumnEnd:true,gridColumnStart:true,gridRow:true,gridRowEnd:true,gridRowStart:true,lineHeight:true,opacity:true,order:true,orphans:true,scale:true,widows:true,zIndex:true,zoom:true,fillOpacity:true,floodOpacity:true,stopOpacity:true,strokeMiterlimit:true,strokeOpacity:true},cssProps:{},style:function(e2,t2,n2,r2){if(e2&&3!==e2.nodeType&&8!==e2.nodeType&&e2.style){var i2,o2,a2,s2=F(t2),u2=ze.test(t2),l2=e2.style;if(u2||(t2=Ze(s2)),a2=ce.cssHooks[t2]||ce.cssHooks[s2],void 0===n2)return a2&&"get"in a2&&void 0!==(i2=a2.get(e2,false,r2))?i2:l2[t2];"string"===(o2=typeof n2)&&(i2=Y.exec(n2))&&i2[1]&&(n2=te(e2,t2,i2),o2="number"),null!=n2&&n2==n2&&("number"!==o2||u2||(n2+=i2&&i2[3]||(ce.cssNumber[s2]?"":"px")),le.clearCloneStyle||""!==n2||0!==t2.indexOf("background")||(l2[t2]="inherit"),a2&&"set"in a2&&void 0===(n2=a2.set(e2,n2,r2))||(u2?l2.setProperty(t2,n2):l2[t2]=n2))}},css:function(e2,t2,n2,r2){var i2,o2,a2,s2=F(t2);return ze.test(t2)||(t2=Ze(s2)),(a2=ce.cssHooks[t2]||ce.cssHooks[s2])&&"get"in a2&&(i2=a2.get(e2,true,n2)),void 0===i2&&(i2=Ge(e2,t2,r2)),"normal"===i2&&t2 in nt&&(i2=nt[t2]),""===n2||n2?(o2=parseFloat(i2),true===n2||isFinite(o2)?o2||0:i2):i2}}),ce.each(["height","width"],function(e2,u2){ce.cssHooks[u2]={get:function(e3,t2,n2){if(t2)return!et.test(ce.css(e3,"display"))||e3.getClientRects().length&&e3.getBoundingClientRect().width?ot(e3,u2,n2):Ue(e3,tt,function(){return ot(e3,u2,n2)})},set:function(e3,t2,n2){var r2,i2=Xe(e3),o2=!le.scrollboxSize()&&"absolute"===i2.position,a2=(o2||n2)&&"border-box"===ce.css(e3,"boxSizing",false,i2),s2=n2?it(e3,u2,n2,a2,i2):0;return a2&&o2&&(s2-=Math.ceil(e3["offset"+u2[0].toUpperCase()+u2.slice(1)]-parseFloat(i2[u2])-it(e3,u2,"border",false,i2)-.5)),s2&&(r2=Y.exec(t2))&&"px"!==(r2[3]||"px")&&(e3.style[u2]=t2,t2=ce.css(e3,u2)),rt(0,t2,s2)}}}),ce.cssHooks.marginLeft=Ye(le.reliableMarginLeft,function(e2,t2){if(t2)return(parseFloat(Ge(e2,"marginLeft"))||e2.getBoundingClientRect().left-Ue(e2,{marginLeft:0},function(){return e2.getBoundingClientRect().left}))+"px"}),ce.each({margin:"",padding:"",border:"Width"},function(i2,o2){ce.cssHooks[i2+o2]={expand:function(e2){for(var t2=0,n2={},r2="string"==typeof e2?e2.split(" "):[e2];t2<4;t2++)n2[i2+Q[t2]+o2]=r2[t2]||r2[t2-2]||r2[0];return n2}},"margin"!==i2&&(ce.cssHooks[i2+o2].set=rt)}),ce.fn.extend({css:function(e2,t2){return M(this,function(e3,t3,n2){var r2,i2,o2={},a2=0;if(Array.isArray(t3)){for(r2=Xe(e3),i2=t3.length;a2<i2;a2++)o2[t3[a2]]=ce.css(e3,t3[a2],false,r2);return o2}return void 0!==n2?ce.style(e3,t3,n2):ce.css(e3,t3)},e2,t2,1<arguments.length)}}),((ce.Tween=at).prototype={constructor:at,init:function(e2,t2,n2,r2,i2,o2){this.elem=e2,this.prop=n2,this.easing=i2||ce.easing._default,this.options=t2,this.start=this.now=this.cur(),this.end=r2,this.unit=o2||(ce.cssNumber[n2]?"":"px")},cur:function(){var e2=at.propHooks[this.prop];return e2&&e2.get?e2.get(this):at.propHooks._default.get(this)},run:function(e2){var t2,n2=at.propHooks[this.prop];return this.options.duration?this.pos=t2=ce.easing[this.easing](e2,this.options.duration*e2,0,1,this.options.duration):this.pos=t2=e2,this.now=(this.end-this.start)*t2+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n2&&n2.set?n2.set(this):at.propHooks._default.set(this),this}}).init.prototype=at.prototype,(at.propHooks={_default:{get:function(e2){var t2;return 1!==e2.elem.nodeType||null!=e2.elem[e2.prop]&&null==e2.elem.style[e2.prop]?e2.elem[e2.prop]:(t2=ce.css(e2.elem,e2.prop,""))&&"auto"!==t2?t2:0},set:function(e2){ce.fx.step[e2.prop]?ce.fx.step[e2.prop](e2):1!==e2.elem.nodeType||!ce.cssHooks[e2.prop]&&null==e2.elem.style[Ze(e2.prop)]?e2.elem[e2.prop]=e2.now:ce.style(e2.elem,e2.prop,e2.now+e2.unit)}}}).scrollTop=at.propHooks.scrollLeft={set:function(e2){e2.elem.nodeType&&e2.elem.parentNode&&(e2.elem[e2.prop]=e2.now)}},ce.easing={linear:function(e2){return e2},swing:function(e2){return .5-Math.cos(e2*Math.PI)/2},_default:"swing"},ce.fx=at.prototype.init,ce.fx.step={};var st,ut,lt,ct,ft=/^(?:toggle|show|hide)$/,pt=/queueHooks$/;function dt(){ut&&(false===C.hidden&&ie.requestAnimationFrame?ie.requestAnimationFrame(dt):ie.setTimeout(dt,ce.fx.interval),ce.fx.tick())}function ht(){return ie.setTimeout(function(){st=void 0}),st=Date.now()}function gt(e2,t2){var n2,r2=0,i2={height:e2};for(t2=t2?1:0;r2<4;r2+=2-t2)i2["margin"+(n2=Q[r2])]=i2["padding"+n2]=e2;return t2&&(i2.opacity=i2.width=e2),i2}function vt(e2,t2,n2){for(var r2,i2=(yt.tweeners[t2]||[]).concat(yt.tweeners["*"]),o2=0,a2=i2.length;o2<a2;o2++)if(r2=i2[o2].call(n2,t2,e2))return r2}function yt(o2,e2,t2){var n2,a2,r2=0,i2=yt.prefilters.length,s2=ce.Deferred().always(function(){delete u2.elem}),u2=function(){if(a2)return false;for(var e3=st||ht(),t3=Math.max(0,l2.startTime+l2.duration-e3),n3=1-(t3/l2.duration||0),r3=0,i3=l2.tweens.length;r3<i3;r3++)l2.tweens[r3].run(n3);return s2.notifyWith(o2,[l2,n3,t3]),n3<1&&i3?t3:(i3||s2.notifyWith(o2,[l2,1,0]),s2.resolveWith(o2,[l2]),false)},l2=s2.promise({elem:o2,props:ce.extend({},e2),opts:ce.extend(true,{specialEasing:{},easing:ce.easing._default},t2),originalProperties:e2,originalOptions:t2,startTime:st||ht(),duration:t2.duration,tweens:[],createTween:function(e3,t3){var n3=ce.Tween(o2,l2.opts,e3,t3,l2.opts.specialEasing[e3]||l2.opts.easing);return l2.tweens.push(n3),n3},stop:function(e3){var t3=0,n3=e3?l2.tweens.length:0;if(a2)return this;for(a2=true;t3<n3;t3++)l2.tweens[t3].run(1);return e3?(s2.notifyWith(o2,[l2,1,0]),s2.resolveWith(o2,[l2,e3])):s2.rejectWith(o2,[l2,e3]),this}}),c2=l2.props;for(!(function(e3,t3){var n3,r3,i3,o3,a3;for(n3 in e3)if(i3=t3[r3=F(n3)],o3=e3[n3],Array.isArray(o3)&&(i3=o3[1],o3=e3[n3]=o3[0]),n3!==r3&&(e3[r3]=o3,delete e3[n3]),(a3=ce.cssHooks[r3])&&"expand"in a3)for(n3 in o3=a3.expand(o3),delete e3[r3],o3)n3 in e3||(e3[n3]=o3[n3],t3[n3]=i3);else t3[r3]=i3})(c2,l2.opts.specialEasing);r2<i2;r2++)if(n2=yt.prefilters[r2].call(l2,o2,c2,l2.opts))return v(n2.stop)&&(ce._queueHooks(l2.elem,l2.opts.queue).stop=n2.stop.bind(n2)),n2;return ce.map(c2,vt,l2),v(l2.opts.start)&&l2.opts.start.call(o2,l2),l2.progress(l2.opts.progress).done(l2.opts.done,l2.opts.complete).fail(l2.opts.fail).always(l2.opts.always),ce.fx.timer(ce.extend(u2,{elem:o2,anim:l2,queue:l2.opts.queue})),l2}ce.Animation=ce.extend(yt,{tweeners:{"*":[function(e2,t2){var n2=this.createTween(e2,t2);return te(n2.elem,e2,Y.exec(t2),n2),n2}]},tweener:function(e2,t2){v(e2)?(t2=e2,e2=["*"]):e2=e2.match(D);for(var n2,r2=0,i2=e2.length;r2<i2;r2++)n2=e2[r2],yt.tweeners[n2]=yt.tweeners[n2]||[],yt.tweeners[n2].unshift(t2)},prefilters:[function(e2,t2,n2){var r2,i2,o2,a2,s2,u2,l2,c2,f2="width"in t2||"height"in t2,p2=this,d2={},h2=e2.style,g2=e2.nodeType&&ee(e2),v2=_.get(e2,"fxshow");for(r2 in n2.queue||(null==(a2=ce._queueHooks(e2,"fx")).unqueued&&(a2.unqueued=0,s2=a2.empty.fire,a2.empty.fire=function(){a2.unqueued||s2()}),a2.unqueued++,p2.always(function(){p2.always(function(){a2.unqueued--,ce.queue(e2,"fx").length||a2.empty.fire()})})),t2)if(i2=t2[r2],ft.test(i2)){if(delete t2[r2],o2=o2||"toggle"===i2,i2===(g2?"hide":"show")){if("show"!==i2||!v2||void 0===v2[r2])continue;g2=true}d2[r2]=v2&&v2[r2]||ce.style(e2,r2)}if((u2=!ce.isEmptyObject(t2))||!ce.isEmptyObject(d2))for(r2 in f2&&1===e2.nodeType&&(n2.overflow=[h2.overflow,h2.overflowX,h2.overflowY],null==(l2=v2&&v2.display)&&(l2=_.get(e2,"display")),"none"===(c2=ce.css(e2,"display"))&&(l2?c2=l2:(re([e2],true),l2=e2.style.display||l2,c2=ce.css(e2,"display"),re([e2]))),("inline"===c2||"inline-block"===c2&&null!=l2)&&"none"===ce.css(e2,"float")&&(u2||(p2.done(function(){h2.display=l2}),null==l2&&(c2=h2.display,l2="none"===c2?"":c2)),h2.display="inline-block")),n2.overflow&&(h2.overflow="hidden",p2.always(function(){h2.overflow=n2.overflow[0],h2.overflowX=n2.overflow[1],h2.overflowY=n2.overflow[2]})),u2=false,d2)u2||(v2?"hidden"in v2&&(g2=v2.hidden):v2=_.access(e2,"fxshow",{display:l2}),o2&&(v2.hidden=!g2),g2&&re([e2],true),p2.done(function(){for(r2 in g2||re([e2]),_.remove(e2,"fxshow"),d2)ce.style(e2,r2,d2[r2])})),u2=vt(g2?v2[r2]:0,r2,p2),r2 in v2||(v2[r2]=u2.start,g2&&(u2.end=u2.start,u2.start=0))}],prefilter:function(e2,t2){t2?yt.prefilters.unshift(e2):yt.prefilters.push(e2)}}),ce.speed=function(e2,t2,n2){var r2=e2&&"object"==typeof e2?ce.extend({},e2):{complete:n2||!n2&&t2||v(e2)&&e2,duration:e2,easing:n2&&t2||t2&&!v(t2)&&t2};return ce.fx.off?r2.duration=0:"number"!=typeof r2.duration&&(r2.duration in ce.fx.speeds?r2.duration=ce.fx.speeds[r2.duration]:r2.duration=ce.fx.speeds._default),null!=r2.queue&&true!==r2.queue||(r2.queue="fx"),r2.old=r2.complete,r2.complete=function(){v(r2.old)&&r2.old.call(this),r2.queue&&ce.dequeue(this,r2.queue)},r2},ce.fn.extend({fadeTo:function(e2,t2,n2,r2){return this.filter(ee).css("opacity",0).show().end().animate({opacity:t2},e2,n2,r2)},animate:function(t2,e2,n2,r2){var i2=ce.isEmptyObject(t2),o2=ce.speed(e2,n2,r2),a2=function(){var e3=yt(this,ce.extend({},t2),o2);(i2||_.get(this,"finish"))&&e3.stop(true)};return a2.finish=a2,i2||false===o2.queue?this.each(a2):this.queue(o2.queue,a2)},stop:function(i2,e2,o2){var a2=function(e3){var t2=e3.stop;delete e3.stop,t2(o2)};return"string"!=typeof i2&&(o2=e2,e2=i2,i2=void 0),e2&&this.queue(i2||"fx",[]),this.each(function(){var e3=true,t2=null!=i2&&i2+"queueHooks",n2=ce.timers,r2=_.get(this);if(t2)r2[t2]&&r2[t2].stop&&a2(r2[t2]);else for(t2 in r2)r2[t2]&&r2[t2].stop&&pt.test(t2)&&a2(r2[t2]);for(t2=n2.length;t2--;)n2[t2].elem!==this||null!=i2&&n2[t2].queue!==i2||(n2[t2].anim.stop(o2),e3=false,n2.splice(t2,1));!e3&&o2||ce.dequeue(this,i2)})},finish:function(a2){return false!==a2&&(a2=a2||"fx"),this.each(function(){var e2,t2=_.get(this),n2=t2[a2+"queue"],r2=t2[a2+"queueHooks"],i2=ce.timers,o2=n2?n2.length:0;for(t2.finish=true,ce.queue(this,a2,[]),r2&&r2.stop&&r2.stop.call(this,true),e2=i2.length;e2--;)i2[e2].elem===this&&i2[e2].queue===a2&&(i2[e2].anim.stop(true),i2.splice(e2,1));for(e2=0;e2<o2;e2++)n2[e2]&&n2[e2].finish&&n2[e2].finish.call(this);delete t2.finish})}}),ce.each(["toggle","show","hide"],function(e2,r2){var i2=ce.fn[r2];ce.fn[r2]=function(e3,t2,n2){return null==e3||"boolean"==typeof e3?i2.apply(this,arguments):this.animate(gt(r2,true),e3,t2,n2)}}),ce.each({slideDown:gt("show"),slideUp:gt("hide"),slideToggle:gt("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e2,r2){ce.fn[e2]=function(e3,t2,n2){return this.animate(r2,e3,t2,n2)}}),ce.timers=[],ce.fx.tick=function(){var e2,t2=0,n2=ce.timers;for(st=Date.now();t2<n2.length;t2++)(e2=n2[t2])()||n2[t2]!==e2||n2.splice(t2--,1);n2.length||ce.fx.stop(),st=void 0},ce.fx.timer=function(e2){ce.timers.push(e2),ce.fx.start()},ce.fx.interval=13,ce.fx.start=function(){ut||(ut=true,dt())},ce.fx.stop=function(){ut=null},ce.fx.speeds={slow:600,fast:200,_default:400},ce.fn.delay=function(r2,e2){return r2=ce.fx&&ce.fx.speeds[r2]||r2,e2=e2||"fx",this.queue(e2,function(e3,t2){var n2=ie.setTimeout(e3,r2);t2.stop=function(){ie.clearTimeout(n2)}})},lt=C.createElement("input"),ct=C.createElement("select").appendChild(C.createElement("option")),lt.type="checkbox",le.checkOn=""!==lt.value,le.optSelected=ct.selected,(lt=C.createElement("input")).value="t",lt.type="radio",le.radioValue="t"===lt.value;var mt,xt=ce.expr.attrHandle;ce.fn.extend({attr:function(e2,t2){return M(this,ce.attr,e2,t2,1<arguments.length)},removeAttr:function(e2){return this.each(function(){ce.removeAttr(this,e2)})}}),ce.extend({attr:function(e2,t2,n2){var r2,i2,o2=e2.nodeType;if(3!==o2&&8!==o2&&2!==o2)return"undefined"==typeof e2.getAttribute?ce.prop(e2,t2,n2):(1===o2&&ce.isXMLDoc(e2)||(i2=ce.attrHooks[t2.toLowerCase()]||(ce.expr.match.bool.test(t2)?mt:void 0)),void 0!==n2?null===n2?void ce.removeAttr(e2,t2):i2&&"set"in i2&&void 0!==(r2=i2.set(e2,n2,t2))?r2:(e2.setAttribute(t2,n2+""),n2):i2&&"get"in i2&&null!==(r2=i2.get(e2,t2))?r2:null==(r2=ce.find.attr(e2,t2))?void 0:r2)},attrHooks:{type:{set:function(e2,t2){if(!le.radioValue&&"radio"===t2&&fe(e2,"input")){var n2=e2.value;return e2.setAttribute("type",t2),n2&&(e2.value=n2),t2}}}},removeAttr:function(e2,t2){var n2,r2=0,i2=t2&&t2.match(D);if(i2&&1===e2.nodeType)while(n2=i2[r2++])e2.removeAttribute(n2)}}),mt={set:function(e2,t2,n2){return false===t2?ce.removeAttr(e2,n2):e2.setAttribute(n2,n2),n2}},ce.each(ce.expr.match.bool.source.match(/\w+/g),function(e2,t2){var a2=xt[t2]||ce.find.attr;xt[t2]=function(e3,t3,n2){var r2,i2,o2=t3.toLowerCase();return n2||(i2=xt[o2],xt[o2]=r2,r2=null!=a2(e3,t3,n2)?o2:null,xt[o2]=i2),r2}});var bt=/^(?:input|select|textarea|button)$/i,wt=/^(?:a|area)$/i;function Tt(e2){return(e2.match(D)||[]).join(" ")}function Ct(e2){return e2.getAttribute&&e2.getAttribute("class")||""}function kt(e2){return Array.isArray(e2)?e2:"string"==typeof e2&&e2.match(D)||[]}ce.fn.extend({prop:function(e2,t2){return M(this,ce.prop,e2,t2,1<arguments.length)},removeProp:function(e2){return this.each(function(){delete this[ce.propFix[e2]||e2]})}}),ce.extend({prop:function(e2,t2,n2){var r2,i2,o2=e2.nodeType;if(3!==o2&&8!==o2&&2!==o2)return 1===o2&&ce.isXMLDoc(e2)||(t2=ce.propFix[t2]||t2,i2=ce.propHooks[t2]),void 0!==n2?i2&&"set"in i2&&void 0!==(r2=i2.set(e2,n2,t2))?r2:e2[t2]=n2:i2&&"get"in i2&&null!==(r2=i2.get(e2,t2))?r2:e2[t2]},propHooks:{tabIndex:{get:function(e2){var t2=ce.find.attr(e2,"tabindex");return t2?parseInt(t2,10):bt.test(e2.nodeName)||wt.test(e2.nodeName)&&e2.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),le.optSelected||(ce.propHooks.selected={get:function(e2){var t2=e2.parentNode;return t2&&t2.parentNode&&t2.parentNode.selectedIndex,null},set:function(e2){var t2=e2.parentNode;t2&&(t2.selectedIndex,t2.parentNode&&t2.parentNode.selectedIndex)}}),ce.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){ce.propFix[this.toLowerCase()]=this}),ce.fn.extend({addClass:function(t2){var e2,n2,r2,i2,o2,a2;return v(t2)?this.each(function(e3){ce(this).addClass(t2.call(this,e3,Ct(this)))}):(e2=kt(t2)).length?this.each(function(){if(r2=Ct(this),n2=1===this.nodeType&&" "+Tt(r2)+" "){for(o2=0;o2<e2.length;o2++)i2=e2[o2],n2.indexOf(" "+i2+" ")<0&&(n2+=i2+" ");a2=Tt(n2),r2!==a2&&this.setAttribute("class",a2)}}):this},removeClass:function(t2){var e2,n2,r2,i2,o2,a2;return v(t2)?this.each(function(e3){ce(this).removeClass(t2.call(this,e3,Ct(this)))}):arguments.length?(e2=kt(t2)).length?this.each(function(){if(r2=Ct(this),n2=1===this.nodeType&&" "+Tt(r2)+" "){for(o2=0;o2<e2.length;o2++){i2=e2[o2];while(-1<n2.indexOf(" "+i2+" "))n2=n2.replace(" "+i2+" "," ")}a2=Tt(n2),r2!==a2&&this.setAttribute("class",a2)}}):this:this.attr("class","")},toggleClass:function(t2,n2){var e2,r2,i2,o2,a2=typeof t2,s2="string"===a2||Array.isArray(t2);return v(t2)?this.each(function(e3){ce(this).toggleClass(t2.call(this,e3,Ct(this),n2),n2)}):"boolean"==typeof n2&&s2?n2?this.addClass(t2):this.removeClass(t2):(e2=kt(t2),this.each(function(){if(s2)for(o2=ce(this),i2=0;i2<e2.length;i2++)r2=e2[i2],o2.hasClass(r2)?o2.removeClass(r2):o2.addClass(r2);else void 0!==t2&&"boolean"!==a2||((r2=Ct(this))&&_.set(this,"__className__",r2),this.setAttribute&&this.setAttribute("class",r2||false===t2?"":_.get(this,"__className__")||""))}))},hasClass:function(e2){var t2,n2,r2=0;t2=" "+e2+" ";while(n2=this[r2++])if(1===n2.nodeType&&-1<(" "+Tt(Ct(n2))+" ").indexOf(t2))return true;return false}});var St=/\r/g;ce.fn.extend({val:function(n2){var r2,e2,i2,t2=this[0];return arguments.length?(i2=v(n2),this.each(function(e3){var t3;1===this.nodeType&&(null==(t3=i2?n2.call(this,e3,ce(this).val()):n2)?t3="":"number"==typeof t3?t3+="":Array.isArray(t3)&&(t3=ce.map(t3,function(e4){return null==e4?"":e4+""})),(r2=ce.valHooks[this.type]||ce.valHooks[this.nodeName.toLowerCase()])&&"set"in r2&&void 0!==r2.set(this,t3,"value")||(this.value=t3))})):t2?(r2=ce.valHooks[t2.type]||ce.valHooks[t2.nodeName.toLowerCase()])&&"get"in r2&&void 0!==(e2=r2.get(t2,"value"))?e2:"string"==typeof(e2=t2.value)?e2.replace(St,""):null==e2?"":e2:void 0}}),ce.extend({valHooks:{option:{get:function(e2){var t2=ce.find.attr(e2,"value");return null!=t2?t2:Tt(ce.text(e2))}},select:{get:function(e2){var t2,n2,r2,i2=e2.options,o2=e2.selectedIndex,a2="select-one"===e2.type,s2=a2?null:[],u2=a2?o2+1:i2.length;for(r2=o2<0?u2:a2?o2:0;r2<u2;r2++)if(((n2=i2[r2]).selected||r2===o2)&&!n2.disabled&&(!n2.parentNode.disabled||!fe(n2.parentNode,"optgroup"))){if(t2=ce(n2).val(),a2)return t2;s2.push(t2)}return s2},set:function(e2,t2){var n2,r2,i2=e2.options,o2=ce.makeArray(t2),a2=i2.length;while(a2--)((r2=i2[a2]).selected=-1<ce.inArray(ce.valHooks.option.get(r2),o2))&&(n2=true);return n2||(e2.selectedIndex=-1),o2}}}}),ce.each(["radio","checkbox"],function(){ce.valHooks[this]={set:function(e2,t2){if(Array.isArray(t2))return e2.checked=-1<ce.inArray(ce(e2).val(),t2)}},le.checkOn||(ce.valHooks[this].get=function(e2){return null===e2.getAttribute("value")?"on":e2.value})});var Et=ie.location,jt={guid:Date.now()},At=/\?/;ce.parseXML=function(e2){var t2,n2;if(!e2||"string"!=typeof e2)return null;try{t2=new ie.DOMParser().parseFromString(e2,"text/xml")}catch(e3){}return n2=t2&&t2.getElementsByTagName("parsererror")[0],t2&&!n2||ce.error("Invalid XML: "+(n2?ce.map(n2.childNodes,function(e3){return e3.textContent}).join("\n"):e2)),t2};var Dt=/^(?:focusinfocus|focusoutblur)$/,Nt=function(e2){e2.stopPropagation()};ce.extend(ce.event,{trigger:function(e2,t2,n2,r2){var i2,o2,a2,s2,u2,l2,c2,f2,p2=[n2||C],d2=ue.call(e2,"type")?e2.type:e2,h2=ue.call(e2,"namespace")?e2.namespace.split("."):[];if(o2=f2=a2=n2=n2||C,3!==n2.nodeType&&8!==n2.nodeType&&!Dt.test(d2+ce.event.triggered)&&(-1<d2.indexOf(".")&&(d2=(h2=d2.split(".")).shift(),h2.sort()),u2=d2.indexOf(":")<0&&"on"+d2,(e2=e2[ce.expando]?e2:new ce.Event(d2,"object"==typeof e2&&e2)).isTrigger=r2?2:3,e2.namespace=h2.join("."),e2.rnamespace=e2.namespace?new RegExp("(^|\\.)"+h2.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,e2.result=void 0,e2.target||(e2.target=n2),t2=null==t2?[e2]:ce.makeArray(t2,[e2]),c2=ce.event.special[d2]||{},r2||!c2.trigger||false!==c2.trigger.apply(n2,t2))){if(!r2&&!c2.noBubble&&!y(n2)){for(s2=c2.delegateType||d2,Dt.test(s2+d2)||(o2=o2.parentNode);o2;o2=o2.parentNode)p2.push(o2),a2=o2;a2===(n2.ownerDocument||C)&&p2.push(a2.defaultView||a2.parentWindow||ie)}i2=0;while((o2=p2[i2++])&&!e2.isPropagationStopped())f2=o2,e2.type=1<i2?s2:c2.bindType||d2,(l2=(_.get(o2,"events")||Object.create(null))[e2.type]&&_.get(o2,"handle"))&&l2.apply(o2,t2),(l2=u2&&o2[u2])&&l2.apply&&$(o2)&&(e2.result=l2.apply(o2,t2),false===e2.result&&e2.preventDefault());return e2.type=d2,r2||e2.isDefaultPrevented()||c2._default&&false!==c2._default.apply(p2.pop(),t2)||!$(n2)||u2&&v(n2[d2])&&!y(n2)&&((a2=n2[u2])&&(n2[u2]=null),ce.event.triggered=d2,e2.isPropagationStopped()&&f2.addEventListener(d2,Nt),n2[d2](),e2.isPropagationStopped()&&f2.removeEventListener(d2,Nt),ce.event.triggered=void 0,a2&&(n2[u2]=a2)),e2.result}},simulate:function(e2,t2,n2){var r2=ce.extend(new ce.Event,n2,{type:e2,isSimulated:true});ce.event.trigger(r2,null,t2)}}),ce.fn.extend({trigger:function(e2,t2){return this.each(function(){ce.event.trigger(e2,t2,this)})},triggerHandler:function(e2,t2){var n2=this[0];if(n2)return ce.event.trigger(e2,t2,n2,true)}});var qt=/\[\]$/,Lt=/\r?\n/g,Ht=/^(?:submit|button|image|reset|file)$/i,Ot=/^(?:input|select|textarea|keygen)/i;function Pt(n2,e2,r2,i2){var t2;if(Array.isArray(e2))ce.each(e2,function(e3,t3){r2||qt.test(n2)?i2(n2,t3):Pt(n2+"["+("object"==typeof t3&&null!=t3?e3:"")+"]",t3,r2,i2)});else if(r2||"object"!==x(e2))i2(n2,e2);else for(t2 in e2)Pt(n2+"["+t2+"]",e2[t2],r2,i2)}ce.param=function(e2,t2){var n2,r2=[],i2=function(e3,t3){var n3=v(t3)?t3():t3;r2[r2.length]=encodeURIComponent(e3)+"="+encodeURIComponent(null==n3?"":n3)};if(null==e2)return"";if(Array.isArray(e2)||e2.jquery&&!ce.isPlainObject(e2))ce.each(e2,function(){i2(this.name,this.value)});else for(n2 in e2)Pt(n2,e2[n2],t2,i2);return r2.join("&")},ce.fn.extend({serialize:function(){return ce.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e2=ce.prop(this,"elements");return e2?ce.makeArray(e2):this}).filter(function(){var e2=this.type;return this.name&&!ce(this).is(":disabled")&&Ot.test(this.nodeName)&&!Ht.test(e2)&&(this.checked||!we.test(e2))}).map(function(e2,t2){var n2=ce(this).val();return null==n2?null:Array.isArray(n2)?ce.map(n2,function(e3){return{name:t2.name,value:e3.replace(Lt,"\r\n")}}):{name:t2.name,value:n2.replace(Lt,"\r\n")}}).get()}});var Mt=/%20/g,Rt=/#.*$/,It=/([?&])_=[^&]*/,Wt=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ft=/^(?:GET|HEAD)$/,$t=/^\/\//,Bt={},_t={},zt="*/".concat("*"),Xt=C.createElement("a");function Ut(o2){return function(e2,t2){"string"!=typeof e2&&(t2=e2,e2="*");var n2,r2=0,i2=e2.toLowerCase().match(D)||[];if(v(t2))while(n2=i2[r2++])"+"===n2[0]?(n2=n2.slice(1)||"*",(o2[n2]=o2[n2]||[]).unshift(t2)):(o2[n2]=o2[n2]||[]).push(t2)}}function Vt(t2,i2,o2,a2){var s2={},u2=t2===_t;function l2(e2){var r2;return s2[e2]=true,ce.each(t2[e2]||[],function(e3,t3){var n2=t3(i2,o2,a2);return"string"!=typeof n2||u2||s2[n2]?u2?!(r2=n2):void 0:(i2.dataTypes.unshift(n2),l2(n2),false)}),r2}return l2(i2.dataTypes[0])||!s2["*"]&&l2("*")}function Gt(e2,t2){var n2,r2,i2=ce.ajaxSettings.flatOptions||{};for(n2 in t2)void 0!==t2[n2]&&((i2[n2]?e2:r2||(r2={}))[n2]=t2[n2]);return r2&&ce.extend(true,e2,r2),e2}Xt.href=Et.href,ce.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Et.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(Et.protocol),global:true,processData:true,async:true,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":zt,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":true,"text json":JSON.parse,"text xml":ce.parseXML},flatOptions:{url:true,context:true}},ajaxSetup:function(e2,t2){return t2?Gt(Gt(e2,ce.ajaxSettings),t2):Gt(ce.ajaxSettings,e2)},ajaxPrefilter:Ut(Bt),ajaxTransport:Ut(_t),ajax:function(e2,t2){"object"==typeof e2&&(t2=e2,e2=void 0),t2=t2||{};var c2,f2,p2,n2,d2,r2,h2,g2,i2,o2,v2=ce.ajaxSetup({},t2),y2=v2.context||v2,m2=v2.context&&(y2.nodeType||y2.jquery)?ce(y2):ce.event,x2=ce.Deferred(),b2=ce.Callbacks("once memory"),w2=v2.statusCode||{},a2={},s2={},u2="canceled",T2={readyState:0,getResponseHeader:function(e3){var t3;if(h2){if(!n2){n2={};while(t3=Wt.exec(p2))n2[t3[1].toLowerCase()+" "]=(n2[t3[1].toLowerCase()+" "]||[]).concat(t3[2])}t3=n2[e3.toLowerCase()+" "]}return null==t3?null:t3.join(", ")},getAllResponseHeaders:function(){return h2?p2:null},setRequestHeader:function(e3,t3){return null==h2&&(e3=s2[e3.toLowerCase()]=s2[e3.toLowerCase()]||e3,a2[e3]=t3),this},overrideMimeType:function(e3){return null==h2&&(v2.mimeType=e3),this},statusCode:function(e3){var t3;if(e3)if(h2)T2.always(e3[T2.status]);else for(t3 in e3)w2[t3]=[w2[t3],e3[t3]];return this},abort:function(e3){var t3=e3||u2;return c2&&c2.abort(t3),l2(0,t3),this}};if(x2.promise(T2),v2.url=((e2||v2.url||Et.href)+"").replace($t,Et.protocol+"//"),v2.type=t2.method||t2.type||v2.method||v2.type,v2.dataTypes=(v2.dataType||"*").toLowerCase().match(D)||[""],null==v2.crossDomain){r2=C.createElement("a");try{r2.href=v2.url,r2.href=r2.href,v2.crossDomain=Xt.protocol+"//"+Xt.host!=r2.protocol+"//"+r2.host}catch(e3){v2.crossDomain=true}}if(v2.data&&v2.processData&&"string"!=typeof v2.data&&(v2.data=ce.param(v2.data,v2.traditional)),Vt(Bt,v2,t2,T2),h2)return T2;for(i2 in(g2=ce.event&&v2.global)&&0==ce.active++&&ce.event.trigger("ajaxStart"),v2.type=v2.type.toUpperCase(),v2.hasContent=!Ft.test(v2.type),f2=v2.url.replace(Rt,""),v2.hasContent?v2.data&&v2.processData&&0===(v2.contentType||"").indexOf("application/x-www-form-urlencoded")&&(v2.data=v2.data.replace(Mt,"+")):(o2=v2.url.slice(f2.length),v2.data&&(v2.processData||"string"==typeof v2.data)&&(f2+=(At.test(f2)?"&":"?")+v2.data,delete v2.data),false===v2.cache&&(f2=f2.replace(It,"$1"),o2=(At.test(f2)?"&":"?")+"_="+jt.guid+++o2),v2.url=f2+o2),v2.ifModified&&(ce.lastModified[f2]&&T2.setRequestHeader("If-Modified-Since",ce.lastModified[f2]),ce.etag[f2]&&T2.setRequestHeader("If-None-Match",ce.etag[f2])),(v2.data&&v2.hasContent&&false!==v2.contentType||t2.contentType)&&T2.setRequestHeader("Content-Type",v2.contentType),T2.setRequestHeader("Accept",v2.dataTypes[0]&&v2.accepts[v2.dataTypes[0]]?v2.accepts[v2.dataTypes[0]]+("*"!==v2.dataTypes[0]?", "+zt+"; q=0.01":""):v2.accepts["*"]),v2.headers)T2.setRequestHeader(i2,v2.headers[i2]);if(v2.beforeSend&&(false===v2.beforeSend.call(y2,T2,v2)||h2))return T2.abort();if(u2="abort",b2.add(v2.complete),T2.done(v2.success),T2.fail(v2.error),c2=Vt(_t,v2,t2,T2)){if(T2.readyState=1,g2&&m2.trigger("ajaxSend",[T2,v2]),h2)return T2;v2.async&&0<v2.timeout&&(d2=ie.setTimeout(function(){T2.abort("timeout")},v2.timeout));try{h2=false,c2.send(a2,l2)}catch(e3){if(h2)throw e3;l2(-1,e3)}}else l2(-1,"No Transport");function l2(e3,t3,n3,r3){var i3,o3,a3,s3,u3,l3=t3;h2||(h2=true,d2&&ie.clearTimeout(d2),c2=void 0,p2=r3||"",T2.readyState=0<e3?4:0,i3=200<=e3&&e3<300||304===e3,n3&&(s3=(function(e4,t4,n4){var r4,i4,o4,a4,s4=e4.contents,u4=e4.dataTypes;while("*"===u4[0])u4.shift(),void 0===r4&&(r4=e4.mimeType||t4.getResponseHeader("Content-Type"));if(r4){for(i4 in s4)if(s4[i4]&&s4[i4].test(r4)){u4.unshift(i4);break}}if(u4[0]in n4)o4=u4[0];else{for(i4 in n4){if(!u4[0]||e4.converters[i4+" "+u4[0]]){o4=i4;break}a4||(a4=i4)}o4=o4||a4}if(o4)return o4!==u4[0]&&u4.unshift(o4),n4[o4]})(v2,T2,n3)),!i3&&-1<ce.inArray("script",v2.dataTypes)&&ce.inArray("json",v2.dataTypes)<0&&(v2.converters["text script"]=function(){}),s3=(function(e4,t4,n4,r4){var i4,o4,a4,s4,u4,l4={},c3=e4.dataTypes.slice();if(c3[1])for(a4 in e4.converters)l4[a4.toLowerCase()]=e4.converters[a4];o4=c3.shift();while(o4)if(e4.responseFields[o4]&&(n4[e4.responseFields[o4]]=t4),!u4&&r4&&e4.dataFilter&&(t4=e4.dataFilter(t4,e4.dataType)),u4=o4,o4=c3.shift()){if("*"===o4)o4=u4;else if("*"!==u4&&u4!==o4){if(!(a4=l4[u4+" "+o4]||l4["* "+o4])){for(i4 in l4)if((s4=i4.split(" "))[1]===o4&&(a4=l4[u4+" "+s4[0]]||l4["* "+s4[0]])){true===a4?a4=l4[i4]:true!==l4[i4]&&(o4=s4[0],c3.unshift(s4[1]));break}}if(true!==a4)if(a4&&e4["throws"])t4=a4(t4);else try{t4=a4(t4)}catch(e5){return{state:"parsererror",error:a4?e5:"No conversion from "+u4+" to "+o4}}}}return{state:"success",data:t4}})(v2,s3,T2,i3),i3?(v2.ifModified&&((u3=T2.getResponseHeader("Last-Modified"))&&(ce.lastModified[f2]=u3),(u3=T2.getResponseHeader("etag"))&&(ce.etag[f2]=u3)),204===e3||"HEAD"===v2.type?l3="nocontent":304===e3?l3="notmodified":(l3=s3.state,o3=s3.data,i3=!(a3=s3.error))):(a3=l3,!e3&&l3||(l3="error",e3<0&&(e3=0))),T2.status=e3,T2.statusText=(t3||l3)+"",i3?x2.resolveWith(y2,[o3,l3,T2]):x2.rejectWith(y2,[T2,l3,a3]),T2.statusCode(w2),w2=void 0,g2&&m2.trigger(i3?"ajaxSuccess":"ajaxError",[T2,v2,i3?o3:a3]),b2.fireWith(y2,[T2,l3]),g2&&(m2.trigger("ajaxComplete",[T2,v2]),--ce.active||ce.event.trigger("ajaxStop")))}return T2},getJSON:function(e2,t2,n2){return ce.get(e2,t2,n2,"json")},getScript:function(e2,t2){return ce.get(e2,void 0,t2,"script")}}),ce.each(["get","post"],function(e2,i2){ce[i2]=function(e3,t2,n2,r2){return v(t2)&&(r2=r2||n2,n2=t2,t2=void 0),ce.ajax(ce.extend({url:e3,type:i2,dataType:r2,data:t2,success:n2},ce.isPlainObject(e3)&&e3))}}),ce.ajaxPrefilter(function(e2){var t2;for(t2 in e2.headers)"content-type"===t2.toLowerCase()&&(e2.contentType=e2.headers[t2]||"")}),ce._evalUrl=function(e2,t2,n2){return ce.ajax({url:e2,type:"GET",dataType:"script",cache:true,async:false,global:false,converters:{"text script":function(){}},dataFilter:function(e3){ce.globalEval(e3,t2,n2)}})},ce.fn.extend({wrapAll:function(e2){var t2;return this[0]&&(v(e2)&&(e2=e2.call(this[0])),t2=ce(e2,this[0].ownerDocument).eq(0).clone(true),this[0].parentNode&&t2.insertBefore(this[0]),t2.map(function(){var e3=this;while(e3.firstElementChild)e3=e3.firstElementChild;return e3}).append(this)),this},wrapInner:function(n2){return v(n2)?this.each(function(e2){ce(this).wrapInner(n2.call(this,e2))}):this.each(function(){var e2=ce(this),t2=e2.contents();t2.length?t2.wrapAll(n2):e2.append(n2)})},wrap:function(t2){var n2=v(t2);return this.each(function(e2){ce(this).wrapAll(n2?t2.call(this,e2):t2)})},unwrap:function(e2){return this.parent(e2).not("body").each(function(){ce(this).replaceWith(this.childNodes)}),this}}),ce.expr.pseudos.hidden=function(e2){return!ce.expr.pseudos.visible(e2)},ce.expr.pseudos.visible=function(e2){return!!(e2.offsetWidth||e2.offsetHeight||e2.getClientRects().length)},ce.ajaxSettings.xhr=function(){try{return new ie.XMLHttpRequest}catch(e2){}};var Yt={0:200,1223:204},Qt=ce.ajaxSettings.xhr();le.cors=!!Qt&&"withCredentials"in Qt,le.ajax=Qt=!!Qt,ce.ajaxTransport(function(i2){var o2,a2;if(le.cors||Qt&&!i2.crossDomain)return{send:function(e2,t2){var n2,r2=i2.xhr();if(r2.open(i2.type,i2.url,i2.async,i2.username,i2.password),i2.xhrFields)for(n2 in i2.xhrFields)r2[n2]=i2.xhrFields[n2];for(n2 in i2.mimeType&&r2.overrideMimeType&&r2.overrideMimeType(i2.mimeType),i2.crossDomain||e2["X-Requested-With"]||(e2["X-Requested-With"]="XMLHttpRequest"),e2)r2.setRequestHeader(n2,e2[n2]);o2=function(e3){return function(){o2&&(o2=a2=r2.onload=r2.onerror=r2.onabort=r2.ontimeout=r2.onreadystatechange=null,"abort"===e3?r2.abort():"error"===e3?"number"!=typeof r2.status?t2(0,"error"):t2(r2.status,r2.statusText):t2(Yt[r2.status]||r2.status,r2.statusText,"text"!==(r2.responseType||"text")||"string"!=typeof r2.responseText?{binary:r2.response}:{text:r2.responseText},r2.getAllResponseHeaders()))}},r2.onload=o2(),a2=r2.onerror=r2.ontimeout=o2("error"),void 0!==r2.onabort?r2.onabort=a2:r2.onreadystatechange=function(){4===r2.readyState&&ie.setTimeout(function(){o2&&a2()})},o2=o2("abort");try{r2.send(i2.hasContent&&i2.data||null)}catch(e3){if(o2)throw e3}},abort:function(){o2&&o2()}}}),ce.ajaxPrefilter(function(e2){e2.crossDomain&&(e2.contents.script=false)}),ce.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e2){return ce.globalEval(e2),e2}}}),ce.ajaxPrefilter("script",function(e2){void 0===e2.cache&&(e2.cache=false),e2.crossDomain&&(e2.type="GET")}),ce.ajaxTransport("script",function(n2){var r2,i2;if(n2.crossDomain||n2.scriptAttrs)return{send:function(e2,t2){r2=ce("<script>").attr(n2.scriptAttrs||{}).prop({charset:n2.scriptCharset,src:n2.url}).on("load error",i2=function(e3){r2.remove(),i2=null,e3&&t2("error"===e3.type?404:200,e3.type)}),C.head.appendChild(r2[0])},abort:function(){i2&&i2()}}});var Jt,Kt=[],Zt=/(=)\?(?=&|$)|\?\?/;ce.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e2=Kt.pop()||ce.expando+"_"+jt.guid++;return this[e2]=true,e2}}),ce.ajaxPrefilter("json jsonp",function(e2,t2,n2){var r2,i2,o2,a2=false!==e2.jsonp&&(Zt.test(e2.url)?"url":"string"==typeof e2.data&&0===(e2.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(e2.data)&&"data");if(a2||"jsonp"===e2.dataTypes[0])return r2=e2.jsonpCallback=v(e2.jsonpCallback)?e2.jsonpCallback():e2.jsonpCallback,a2?e2[a2]=e2[a2].replace(Zt,"$1"+r2):false!==e2.jsonp&&(e2.url+=(At.test(e2.url)?"&":"?")+e2.jsonp+"="+r2),e2.converters["script json"]=function(){return o2||ce.error(r2+" was not called"),o2[0]},e2.dataTypes[0]="json",i2=ie[r2],ie[r2]=function(){o2=arguments},n2.always(function(){void 0===i2?ce(ie).removeProp(r2):ie[r2]=i2,e2[r2]&&(e2.jsonpCallback=t2.jsonpCallback,Kt.push(r2)),o2&&v(i2)&&i2(o2[0]),o2=i2=void 0}),"script"}),le.createHTMLDocument=((Jt=C.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===Jt.childNodes.length),ce.parseHTML=function(e2,t2,n2){return"string"!=typeof e2?[]:("boolean"==typeof t2&&(n2=t2,t2=false),t2||(le.createHTMLDocument?((r2=(t2=C.implementation.createHTMLDocument("")).createElement("base")).href=C.location.href,t2.head.appendChild(r2)):t2=C),o2=!n2&&[],(i2=w.exec(e2))?[t2.createElement(i2[1])]:(i2=Ae([e2],t2,o2),o2&&o2.length&&ce(o2).remove(),ce.merge([],i2.childNodes)));var r2,i2,o2},ce.fn.load=function(e2,t2,n2){var r2,i2,o2,a2=this,s2=e2.indexOf(" ");return-1<s2&&(r2=Tt(e2.slice(s2)),e2=e2.slice(0,s2)),v(t2)?(n2=t2,t2=void 0):t2&&"object"==typeof t2&&(i2="POST"),0<a2.length&&ce.ajax({url:e2,type:i2||"GET",dataType:"html",data:t2}).done(function(e3){o2=arguments,a2.html(r2?ce("<div>").append(ce.parseHTML(e3)).find(r2):e3)}).always(n2&&function(e3,t3){a2.each(function(){n2.apply(this,o2||[e3.responseText,t3,e3])})}),this},ce.expr.pseudos.animated=function(t2){return ce.grep(ce.timers,function(e2){return t2===e2.elem}).length},ce.offset={setOffset:function(e2,t2,n2){var r2,i2,o2,a2,s2,u2,l2=ce.css(e2,"position"),c2=ce(e2),f2={};"static"===l2&&(e2.style.position="relative"),s2=c2.offset(),o2=ce.css(e2,"top"),u2=ce.css(e2,"left"),("absolute"===l2||"fixed"===l2)&&-1<(o2+u2).indexOf("auto")?(a2=(r2=c2.position()).top,i2=r2.left):(a2=parseFloat(o2)||0,i2=parseFloat(u2)||0),v(t2)&&(t2=t2.call(e2,n2,ce.extend({},s2))),null!=t2.top&&(f2.top=t2.top-s2.top+a2),null!=t2.left&&(f2.left=t2.left-s2.left+i2),"using"in t2?t2.using.call(e2,f2):c2.css(f2)}},ce.fn.extend({offset:function(t2){if(arguments.length)return void 0===t2?this:this.each(function(e3){ce.offset.setOffset(this,t2,e3)});var e2,n2,r2=this[0];return r2?r2.getClientRects().length?(e2=r2.getBoundingClientRect(),n2=r2.ownerDocument.defaultView,{top:e2.top+n2.pageYOffset,left:e2.left+n2.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e2,t2,n2,r2=this[0],i2={top:0,left:0};if("fixed"===ce.css(r2,"position"))t2=r2.getBoundingClientRect();else{t2=this.offset(),n2=r2.ownerDocument,e2=r2.offsetParent||n2.documentElement;while(e2&&(e2===n2.body||e2===n2.documentElement)&&"static"===ce.css(e2,"position"))e2=e2.parentNode;e2&&e2!==r2&&1===e2.nodeType&&((i2=ce(e2).offset()).top+=ce.css(e2,"borderTopWidth",true),i2.left+=ce.css(e2,"borderLeftWidth",true))}return{top:t2.top-i2.top-ce.css(r2,"marginTop",true),left:t2.left-i2.left-ce.css(r2,"marginLeft",true)}}},offsetParent:function(){return this.map(function(){var e2=this.offsetParent;while(e2&&"static"===ce.css(e2,"position"))e2=e2.offsetParent;return e2||J})}}),ce.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t2,i2){var o2="pageYOffset"===i2;ce.fn[t2]=function(e2){return M(this,function(e3,t3,n2){var r2;if(y(e3)?r2=e3:9===e3.nodeType&&(r2=e3.defaultView),void 0===n2)return r2?r2[i2]:e3[t3];r2?r2.scrollTo(o2?r2.pageXOffset:n2,o2?n2:r2.pageYOffset):e3[t3]=n2},t2,e2,arguments.length)}}),ce.each(["top","left"],function(e2,n2){ce.cssHooks[n2]=Ye(le.pixelPosition,function(e3,t2){if(t2)return t2=Ge(e3,n2),_e.test(t2)?ce(e3).position()[n2]+"px":t2})}),ce.each({Height:"height",Width:"width"},function(a2,s2){ce.each({padding:"inner"+a2,content:s2,"":"outer"+a2},function(r2,o2){ce.fn[o2]=function(e2,t2){var n2=arguments.length&&(r2||"boolean"!=typeof e2),i2=r2||(true===e2||true===t2?"margin":"border");return M(this,function(e3,t3,n3){var r3;return y(e3)?0===o2.indexOf("outer")?e3["inner"+a2]:e3.document.documentElement["client"+a2]:9===e3.nodeType?(r3=e3.documentElement,Math.max(e3.body["scroll"+a2],r3["scroll"+a2],e3.body["offset"+a2],r3["offset"+a2],r3["client"+a2])):void 0===n3?ce.css(e3,t3,i2):ce.style(e3,t3,n3,i2)},s2,n2?e2:void 0,n2)}})}),ce.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e2,t2){ce.fn[t2]=function(e3){return this.on(t2,e3)}}),ce.fn.extend({bind:function(e2,t2,n2){return this.on(e2,null,t2,n2)},unbind:function(e2,t2){return this.off(e2,null,t2)},delegate:function(e2,t2,n2,r2){return this.on(t2,e2,n2,r2)},undelegate:function(e2,t2,n2){return 1===arguments.length?this.off(e2,"**"):this.off(t2,e2||"**",n2)},hover:function(e2,t2){return this.on("mouseenter",e2).on("mouseleave",t2||e2)}}),ce.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e2,n2){ce.fn[n2]=function(e3,t2){return 0<arguments.length?this.on(n2,null,e3,t2):this.trigger(n2)}});var en=/^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;ce.proxy=function(e2,t2){var n2,r2,i2;if("string"==typeof t2&&(n2=e2[t2],t2=e2,e2=n2),v(e2))return r2=ae.call(arguments,2),(i2=function(){return e2.apply(t2||this,r2.concat(ae.call(arguments)))}).guid=e2.guid=e2.guid||ce.guid++,i2},ce.holdReady=function(e2){e2?ce.readyWait++:ce.ready(true)},ce.isArray=Array.isArray,ce.parseJSON=JSON.parse,ce.nodeName=fe,ce.isFunction=v,ce.isWindow=y,ce.camelCase=F,ce.type=x,ce.now=Date.now,ce.isNumeric=function(e2){var t2=ce.type(e2);return("number"===t2||"string"===t2)&&!isNaN(e2-parseFloat(e2))},ce.trim=function(e2){return null==e2?"":(e2+"").replace(en,"$1")},"function"==typeof define&&define.amd&&define("jquery",[],function(){return ce});var tn=ie.jQuery,nn=ie.$;return ce.noConflict=function(e2){return ie.$===ce&&(ie.$=nn),e2&&ie.jQuery===ce&&(ie.jQuery=tn),ce},"undefined"==typeof e&&(ie.jQuery=ie.$=ce),ce});
</script><script src="//www.bulletproof.com/cdn/shop/t/617/assets/swiper.min.js?v=132102316488120220701776326501" defer="defer"></script><style id="yotpo-stars-css">
  .product-ratings {
    align-items: center;
    color: #333;
    font-size: 11.5px;
    display: flex;
    height: var(--product-ratings-height, calc(var(--yotpo-star-size, 16px) - 1px));
  }

  .product-ratings__el {
    flex-shrink: 0;
    height: var(--yotpo-star-size, 16px);
  }

  .product-ratings__el--count {
    font-weight: normal;
    height: 10px;
    line-height: 1;
    margin-left: 4px;
  }

  .product-ratings__el--star {
    background-position: left center;
    background-repeat: no-repeat;
    background-size: 85% auto;
    width: var(--yotpo-star-size, 16px);
  }

  .product-ratings__el--star--full {
      background-image: var(--icon-star-full)
  }

  .product-ratings__el--star--half {
      background-image: var(--icon-star-half)
  }

  .product-ratings__el--star--empty {
      background-image: var(--icon-star-empty)
  }

  /*specific overrides*/
  /*solution pages*/
  .specific-products .product-card .product-ratings {
    margin: 6px 10px 10px;
    order:0;
  }
  /*plp grid*/
  .product-card-grid .product-card .product-ratings {
    margin: 4px 7px;
  }
  @media only screen and (min-width: 769px) {
    .product-card-grid .product-card .product-ratings {
      margin: 5px 10px 4px;
    }
    /*solution pages*/
    .specific-products .product-card .product-ratings {
      margin: 5px 10px 10px;
    }
    /*nosto*/
    .nosto_carousel .product-card .product-ratings {
      margin: 5px 10px;
    }
  }

  @media (-webkit-min-device-pixel-ratio: 1.5),
    (-moz-min-device-pixel-ratio: 1.5),
    (-o-min-device-pixel-ratio: 3/2),
    (min-device-pixel-ratio: 1.5) {
    .product-ratings__el--count {
      position: relative;
    }
  }
  
</style><script id="head-js">document.addEventListener('DOMContentLoaded', () => { /* fix horizontal overlow with positioned els using 100vw width when veritcal scrollbars visible */ document.documentElement.style.setProperty('--scrollbar-width', `${window.innerWidth - document.body.clientWidth}px`);});window.cartIconLoadingState = function() { Array.from(document.querySelectorAll('[data-side-menu-toggle="cart-menu"]')).forEach(el => {el.classList.add('opened'); });};window.addToCart = function(el) { const $form = $(el).closest('form'); const isKlaviyo = el.classList.contains('kuLandingAddToCartBtn'); const formData = isKlaviyo ? `id=${el.closest('[data-id]').dataset.id}&quantity=1` : $form.serialize(); const quantityAdded = 1; el.classList.add('product-form--waiting'); $.ajax( {type: 'POST',url: '/cart/add.js',data: formData,dataType: 'json',success: function ( cartData ) { console.log('addToCart() succcess', cartData); window.dispatchEvent(new CustomEvent('cart:items-added', { detail: { items: [cartData] } })); $form.trigger( {type: 'AjaxAddToCart',response: cartData,quantityAdded: quantityAdded } ) .trigger( {type: 'AjaxCartRequest',response: cartData } ); if (window.BulletproofB2B) {window.location.href = '/cart'; } if (!el.hasAttribute('data-nosto-atc') || typeof nostojs === 'undefined') return; nostojs(function(api) {const productId = el.dataset.variantId;const nostoId = el.closest('.nosto_element').id;api.recommendedProductAddedToCart(productId, nostoId); });},error: function ( request, status ) { console.log('addToCart() error', request); $form.trigger( {type: 'AjaxAddToCart',response: request } );} });};/* bundle add to carts */window.addEventListener('cart-ajax:update-and-open', function() { window.cartIconLoadingState();});/* capture add to cart clicks before dom is ready */document.addEventListener('click', e => { const el = e.target; const isAddToCart = el.closest('[data-atc]') || el.closest('.kuLandingAddToCartBtn'); if (!isAddToCart) return; e.preventDefault(); window.cartIconLoadingState(); window.addToCart(el);});window.lazySizesConfig = window.lazySizesConfig || {};window.lazySizesConfig.customMedia = {'--x-small':'(max-width: 375px)','--small':'(max-width: 480px)','--medium':'(max-width: 768px)','--large':'(max-width: 1169px)'};window.lazySizesConfig.lazyMode = 0;/* Add any missing alt tags */window.addMissingAlts = function() { document.querySelectorAll('img:not([alt])').forEach(function(el) {el.setAttribute('alt', '');if (el.getAttribute('title') === 'blank image') { el.removeAttribute('title');} });};window.addEventListener('load', addMissingAlts);window.imgURL = function( src, size, center = false ) { if (src === null || src === undefined || src === 'undefined') return; const centerVal = center ? '_crop_center' : ''; /* Remove any current image size then add the new image size */ return src.replace( /_(pico|icon|thumb|small|compact|medium|large|grande|original|1024x1024|2048x2048|master)+\./g, '.' ).replace( /\.jpg|\.png|\.gif|\.jpeg/g, match => { return '_' + size + centerVal + match} );};window.acfImgURL = function( src, size ) { if ( !src || !size || typeof src !== 'string' ) return; return src.replace('options=', `options=w${size}`);};window.acfImgSrcset = (src, sizes) => { if (!src) return; if (!sizes || !sizes.length > 0) return src; let srcset = ''; sizes.forEach((size, index) => {srcset += `${index > 0 ? ', ' : ''}${window.acfImgURL(src, size)} ${size}w`; }); return srcset;};var theme = {strings: { fileUrl: "\/\/www.bulletproof.com\/cdn\/shop\/files\/?v=60244", cartEmpty: "Your cart is currently empty.", addToCart: "Add to cart", addToCartMobile: "Add", soldOut: "Sold out", addToCartSubscribe: "Subscribe", addToCartSuccess: "Added to Cart", addToCartSuccessMobile: "Added", addToCartFull: "Not enough stock", unavailable: "Unavailable", available: "In stock", showMore: "Show More", showLess: "Show Less", shopEmail: "care@bulletproof.com", yotpoDisclaimer: "We always love receiving reviews from our customers. However, please do not disclose sensitive information like personal health information, bank account details, credit card numbers, home address or data that could be damaging to you if it were made public. Also, avoid reviews that imply that our products may treat, cure, or prevent any disease or illness, or may lessen the need to use medications or forego medical treatment. These reviews will be removed.",},assets: { iconClose: "//www.bulletproof.com/cdn/shop/t/617/assets/ico-close.svg?v=88021678518847803601776326502", loader: '<div class="loader"><div class="line-spin-fade-loader"><div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div></div></div>', prevArrow: '<svg class="icon icon-chevron-left" xmlns="http://www.w3.org/2000/svg" width="11" height="19" viewBox="0 0 11 19"><path fill="none" fill-rule="evenodd" stroke="#000" d="M9.857 1L1 9.857l8.457 8.457"/></svg>', prevArrowThin: '<svg width="17px" height="26px" viewBox="0 0 17 26" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g transform="translate(-15.000000, -12.000000)" fill="#000000"><path d="M17,25 L16.335636,25.747409 L15.494801,25 L16.335636,24.252591 L17,25 Z M31.164364,13.74741 L17.664364,25.747409 L16.335636,24.25259 L29.835636,12.25259 L31.164364,13.74741 Z M17.664364,24.252591 L31.164364,36.252591 L29.835636,37.74741 L16.335636,25.747409 L17.664364,24.252591 Z"></path></g></g></svg>', nextArrow: '<svg class="icon icon-chevron-right" xmlns="http://www.w3.org/2000/svg" width="11" height="19" viewBox="0 0 11 19"><path fill="none" fill-rule="evenodd" stroke="#000" d="M1 18.314l8.857-8.857L1.401 1"/></svg>', nextArrowThin: '<svg xmlns="http://www.w3.org/2000/svg" width="50" height="50" fill="none" viewBox="0 0 50 50"><circle cx="25" cy="25" r="25" fill="#fff" opacity=".8"/><path stroke="#000" stroke-width="2" d="M19 13l13.5 12L19 37"/></svg>', modaal: "\/\/www.bulletproof.com\/cdn\/shop\/t\/617\/assets\/modaal.js?v=17652981531386889961776326504", productReviewsCss: "\/\/www.bulletproof.com\/cdn\/shop\/t\/617\/assets\/product-reviews.css?v=150264318503493595041787677080",},settings: { modaalBg: "rgba(236, 236, 236, 0.8)", continueShoppingLabel: 'Continue Shopping'},currency: Cookies.get('currency'),currencySymbol: (function(){if(Cookies.get('currency') != undefined){ if(Cookies.get('currency') == 'USD'){return '$'} if(Cookies.get('currency') == 'GBP'){return '£'} if(Cookies.get('currency') == 'EUR'){return '€'}} else {  return "$"} })()};var currencyFormat = { shopifyMoneyFormat: '<span class="_money">'+theme.currencySymbol+'{{amount}}</span>', shopifyMoneyFormatJSON: '"${{amount}}"'};document.documentElement.className = document.documentElement.className.replace('no-js', 'js');window.fileURL = function(src, size) { if (!src || typeof src === 'undefined') return; size = typeof size !== 'undefined' ? size : ''; const extension = src.slice(src.lastIndexOf('.')); const fileUrl = "\/\/www.bulletproof.com\/cdn\/shop\/files\/?v=60244".split('/?'); return fileUrl[0] + '/' + src.replace(extension, (size !== '' ? '_' : '') + size + extension);};document.addEventListener('DOMContentLoaded', () => { const klevuIsReady = new Promise(resolve => {let timer = setInterval(() => { if (typeof klevu !== 'undefined' && typeof klevu.ready === 'function') {clearInterval(timer);return resolve(); }}, 30); }); klevuIsReady.then(() => {klevu.ready(function() { document.dispatchEvent(new CustomEvent('klevuReady')); window.klevuReady = true;}); }).catch(error => {console.log(`Something went wrong loading ${settings.src}`, error); }); /* load script when section is in viewport */ window.inView = () => {const inViewEls = document.querySelectorAll('[data-in-view]', '[data-in-view-load-asset]');const inViewObserver = new IntersectionObserver((entries) => { entries.forEach(entry => {if (entry.isIntersecting) { entry.target.classList.add('in-view'); if (!entry.target.hasAttribute('data-in-view-load-asset')) return; loadAsset(JSON.parse(el.dataset.inViewLoadAsset));} });});inViewEls.forEach(el => inViewObserver.observe(el)); }; inView(); /* load script onclick */ window.loadAssetOnclick = () => {document.querySelectorAll('[data-load-asset-onclick]').forEach(el => { el.addEventListener('click', () => {loadAsset(JSON.parse(el.dataset.loadAssetOnclick)); });}); }; loadAssetOnclick();});window.loadAsset = settings => { if (!settings.hasOwnProperty('src')) return; const injectAsset = () => {if (document.head.querySelector(`script[src="${settings.src}"]`)) return;const $firstScript = document.getElementsByTagName('script')[0];const $script = document.createElement('script');$script.async = true;$script.src = settings.src;$firstScript.parentNode.insertBefore($script, $firstScript);/* Load modaal css */if (settings.src === window.theme.assets.modaal) { /* TODO: make this into a setting */ const $link = document.createElement('link'); $link.rel = 'stylesheet'; $link.href = "\/\/www.bulletproof.com\/cdn\/shop\/t\/617\/assets\/modaal.css?v=59810723780608740671776326504"; $firstScript.parentNode.insertBefore($link, $firstScript);} }; const hasIsReadyCallback = settings.hasOwnProperty('isReady') && typeof window[settings.isReady] === 'function'; if (!hasIsReadyCallback || !window[settings.isReady]()) {injectAsset(); } if (!hasIsReadyCallback) return; const scriptIsReady = new Promise(resolve => {let timer = setInterval(() => { if (window[settings.isReady]()) {clearInterval(timer);return resolve(); }}, 30); }); scriptIsReady.then(() => {if (typeof window[settings.callback] !== 'function') return;window[settings.callback](); }).catch(error => {console.log(`Something went wrong loading ${settings.src}`, error); });};//# sourceMappingURL=data:application/json;base64,/* base64'd inline sourcemap */ </script><!--[if lte IE 9]><script src="//www.bulletproof.com/cdn/shop/t/617/assets/flexibility.min.js?v=60244"></script><![endif]-->
  <!--[if lte IE 9]><script src="//www.bulletproof.com/cdn/shop/t/617/assets/html5shiv.min.js?v=60244"></script><![endif]-->
  <!--[if lte IE 9]><script src="//www.bulletproof.com/cdn/shop/t/617/assets/match-media.min.js?v=22265819453975888031776326501" type="text/javascript"></script><![endif]--><script type="text/javascript" src="//connect.nosto.com/include/shopify-434700319" async></script>


<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script><meta name="facebook-domain-verification" content="ewr3afxty0mk3ya2t98jdbg027p29l">
<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/434700319/digital_wallets/dialog">
<meta id="in-context-paypal-metadata" data-shop-id="434700319" data-venmo-supported="true" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD">
<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=2004353059"></script>
<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=2004353059&shop_id=434700319" crossorigin="anonymous"></script>
<script id="shopify-features" type="application/json">{"accessToken":"78e80a8e392cbd9f6d816002698f2951","betas":["rich-media-storefront-analytics"],"domain":"www.bulletproof.com","predictiveSearch":true,"shopId":434700319,"locale":"en"}</script>
<script>var Shopify = Shopify || {};
Shopify.shop = "bulletproof-coffee.myshopify.com";
Shopify.locale = "en";
Shopify.currency = {"active":"USD","rate":"1.0"};
Shopify.country = "US";
Shopify.theme = {"name":"bulletproof-shopify-theme\/main","id":164195139619,"schema_name":"Bulletproof Coffee","schema_version":"1.0.0","theme_store_id":null,"role":"main"};
Shopify.theme.handle = "null";
Shopify.theme.style = {"id":null,"handle":null};
Shopify.cdnHost = "www.bulletproof.com/cdn";
Shopify.routes = Shopify.routes || {};
Shopify.routes.root = "/";
Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js";
Shopify.SignInWithShop = Shopify.SignInWithShop || {};
Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {};
Shopify.SignInWithShop.User.recognized = false;</script>
<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
<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>
<script>
  window.ShopifyPay = window.ShopifyPay || {};
  window.ShopifyPay.apiHost = "shop.app\/pay";
  window.ShopifyPay.redirectState = null;
</script>
<script>
  window.Shopify = window.Shopify || {};
  window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {};
  window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 };
  window.Shopify.SignInWithShop.eligible = true;
</script>
<script id="shop-js-analytics" type="application/json">{"pageType":"index"}</script>
<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>
<script type="module">
  await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js");

  window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true});

</script>
<script>
  window.Shopify = window.Shopify || {};
  if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {};
  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"]};
</script>
<script>(function() {
  var isLoaded = false;
  function asyncLoad() {
    if (isLoaded) return;
    isLoaded = true;
    var urls = ["https:\/\/static.klaviyo.com\/onsite\/js\/klaviyo.js?company_id=Y6n6JQ\u0026shop=bulletproof-coffee.myshopify.com","\/\/cdn.shopify.com\/proxy\/0567220a24d8cf574b1355fb58a741cf1f0e62fb2bc8df4f8eda2a1197aa8d83\/s3-us-west-2.amazonaws.com\/jsstore\/a\/X2JHYMN\/ge.js?shop=bulletproof-coffee.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA","\/\/cdn.shopify.com\/proxy\/eaad99debab06821fb3c5d83ac55d33501445745dd7f69676be65944fc3ea946\/app.retention.com\/shopify\/shopify_app_add_to_cart_script.js?shop=bulletproof-coffee.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA","https:\/\/connect.nosto.com\/include\/script\/shopify-434700319.js?shop=bulletproof-coffee.myshopify.com","https:\/\/cdn.cookie.pii.ai\/scripts\/1\/ws\/61be7347-87d6-4b9b-b5f1-d2feab54ad7e\/domain\/15ee3aac-eff8-4c44-87cd-8411493eaa80\/shopify-loadscript-15ee3aac-eff8-4c44-87cd-8411493eaa80.js?shop=bulletproof-coffee.myshopify.com","\/\/cdn.shopify.com\/proxy\/c0a2c45b7ca1c8ad31bb4efe0b582a4c7d51182fde70efc3e63f85480df184a8\/api.kount.com\/shopify\/js?m_id=171428\u0026shop=bulletproof-coffee.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA","https:\/\/ecom-app.rakutenadvertising.io\/rakuten_advertising.js?shop=bulletproof-coffee.myshopify.com","https:\/\/tag.rmp.rakuten.com\/127469.ct.js?shop=bulletproof-coffee.myshopify.com","\/\/backinstock.useamp.com\/widget\/10828_1783058326.js?category=bis\u0026v=6\u0026shop=bulletproof-coffee.myshopify.com","https:\/\/widget.wickedreports.com\/v2\/5241\/wr-744a1ab27ee8f0f90e49c477c0941c7c.js?shop=bulletproof-coffee.myshopify.com"];
    for (var i = 0; i < urls.length; i++) {
      var s = document.createElement('script');
      s.type = 'text/javascript';
      s.async = true;
      s.src = urls[i];
      var x = document.getElementsByTagName('script')[0];
      x.parentNode.insertBefore(s, x);
    }
  };
  if(window.attachEvent) {
    window.attachEvent('onload', asyncLoad);
  } else {
    window.addEventListener('load', asyncLoad, false);
  }
})();</script>
<script id="__st">var __st={"a":434700319,"offset":-25200,"reqid":"59a94d40-48c1-41b2-b9d4-029188dad948-1790116169","pageurl":"www.bulletproof.com\/","u":"f2a253333311","p":"home"};</script>
<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
<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,!1)}();</script>
<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//www.bulletproof.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
<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.bulletproof.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><script crossorigin="anonymous" defer="defer" src="//www.bulletproof.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-bf1cdb70.js?v=20250812"></script>
<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>
<script>
  window.Shopify = window.Shopify || {};
  window.Shopify.MCP = window.Shopify.MCP || {};
  window.Shopify.MCP.enabled = true;
  window.Shopify.MCP.shop = "bulletproof-coffee.myshopify.com";
  window.Shopify.MCP.mcpEndpoint = "https:\/\/www.bulletproof.com\/api\/mcp";
  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"]}}];
</script>
<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.bulletproof.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-be5c57f6.js","sha256-dhWtEgtgh3kTN0MZoHRLIet4bcWHAYegv46Ks3++L3A=");})();
</script>
<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.bulletproof.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}};
</script>
<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
  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);
</script>
<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})}}));
</script>
<script integrity="sha256-YUdo0/Dhag2j8aNyo53OtmjaA3YqNqx4Sshg978fDAg=" data-source-attribution="shopify.remote_product_tracking" data-shopify-remote-tracking="{&quot;publisher_shop_id&quot;:434700319,&quot;theme_id&quot;:164195139619,&quot;theme_published&quot;:true,&quot;theme_store_id&quot;:0,&quot;placement&quot;:&quot;collection&quot;,&quot;event_data&quot;:{&quot;handle&quot;:&quot;&quot;,&quot;page_type&quot;:&quot;home&quot;},&quot;recommendations_tracking_enabled&quot;:true}" defer="defer" src="//www.bulletproof.com/cdn/shopifycloud/storefront/assets/storefront/remote_product_tracking-b93ca347.js" crossorigin="anonymous"></script>
<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://www.bulletproof.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous">
<style id="shopify-accelerated-checkout-cart">
        #shopify-buyer-consent {
  margin-top: 1em;
  display: inline-block;
  width: 100%;
}

#shopify-buyer-consent.hidden {
  display: none;
}

#shopify-subscription-policy-button {
  background: none;
  border: none;
  padding: 0;
  text-decoration: underline;
  font-size: inherit;
  cursor: pointer;
}

#shopify-subscription-policy-button::before {
  box-shadow: none;
}

      </style>

<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
    
  <script>
  function getCookie(name) {
    const value = `; ${document.cookie}`;
    const parts = value.split(`; ${name}=`);
    if (parts.length === 2) return parts.pop().split(';').shift();
    return null;
  }
  
  // Helper function to check and apply checkout consent
  function checkAndApplyCheckoutConsent() {
    try {
      // Try getTrackingConsent() first
      const trackingConsent = window.Shopify.customerPrivacy.getTrackingConsent();
  
      // Handle string responses - "no" means explicitly denied, "yes" means explicitly granted
      if (typeof trackingConsent === 'string') {
        if (trackingConsent === "no" || trackingConsent === "NO") {
          return {
            found: true,
            consent: {
              analytics: typeof window.Shopify?.customerPrivacy?.analyticsProcessingAllowed === "function"
                ? window.Shopify.customerPrivacy.analyticsProcessingAllowed() === true
                : false,
              marketing: typeof window.Shopify?.customerPrivacy?.marketingAllowed === "function"
                ? window.Shopify.customerPrivacy.marketingAllowed() === true
                : false,
              preferences: typeof window.Shopify?.customerPrivacy?.preferencesProcessingAllowed === "function"
                ? window.Shopify.customerPrivacy.preferencesProcessingAllowed() === true
                : false,
              sale_of_data: typeof window.Shopify?.customerPrivacy?.marketingAllowed === "function"
                ? window.Shopify.customerPrivacy.marketingAllowed() === true
                : false,
            }
          };
        } else if (trackingConsent === "yes" || trackingConsent === "YES") {
          // When "yes", we should check if there are specific consent values stored
          // For now, treat "yes" as all granted, but ideally we'd get the actual values
          // This might need to be handled via subscribe callback for detailed consent
          return {
            found: true,
            // If consent found means needs to set yes, but should check each category
            consent: {
              analytics: typeof window.Shopify?.customerPrivacy?.analyticsProcessingAllowed === "function"
                ? window.Shopify.customerPrivacy.analyticsProcessingAllowed() === true
                : false,
              marketing: typeof window.Shopify?.customerPrivacy?.marketingAllowed === "function"
                ? window.Shopify.customerPrivacy.marketingAllowed() === true
                : false,
              preferences: typeof window.Shopify?.customerPrivacy?.preferencesProcessingAllowed === "function"
                ? window.Shopify.customerPrivacy.preferencesProcessingAllowed() === true
                : false,
              sale_of_data: typeof window.Shopify?.customerPrivacy?.marketingAllowed === "function"
                ? window.Shopify.customerPrivacy.marketingAllowed() === true
                : false,
            }
          };
        } 
      }
    } catch (e) {
      console.warn('Error checking getTrackingConsent():', e);
    }
    return { found: false, consent: null };
  }
  
   // --- Geo API ---
  async function getUserLocation() {
    try {
      const response = await fetch("https://geo.pii.ai/geo");
      const data = await response.json();
      return {
        continent: data.location.continent.code,
        country: data.location.country.code,
        region: data.location.region.code,
        city: data.location.city,
        gpc: data.gpc
      };
    } catch (error) {
      console.error("Error getting location from internal API:", error);
      return null;
    }
  }

  // --- Region-based rules ---
  async function shouldEnableConsentByDefault(location) {
    if (!location) return false;

    const { country, region, continent, gpc } = location;
    
    // EU requires explicit consent
    if (continent === "EU") return false;
    
    // GPC for US
    if (gpc && country === "US") return false;

    // Canada - Quebec requires explicit consent
    if (country === "CA" && region === "CA-QC") return false;

    // US - California requires explicit consent
    if (country === "US" && region === "US-CA") return false;

    // US - Washington, Nevada requires explicit consent  
    if (country === "US" && ["US-WA", "US-NV"].includes(region)) return false;

    // Default: implicit consent allowed
    return true;
  }

  async function applyConsentSettings() {
    const location = await getUserLocation();
    return shouldEnableConsentByDefault(location);
  }
  
  
  // Main consent initialization function
  function initializeConsent() {
    let checkoutConsentFound = false;
    let consentInitialized = false;
  
    // Helper function to apply PieEye cookie logic
    async function applyPieEyeLogic() {
      if (consentInitialized) return; // Already initialized
      consentInitialized = true;
  
      console.log('Consent - No checkout consent found, checking PieEye cookie');
      const pieEyeCookie = getCookie('PieEyeConsent');
  
      if (!pieEyeCookie) {
          console.log('Consent - PieEyeConsent cookie not found, setting initial consent');
         const allowedConsent = await applyConsentSettings();

		if (!allowedConsent) {
			window.Shopify.customerPrivacy.setTrackingConsent(
			{
				analytics: false,
				marketing: false,
				preferences: false,
				sale_of_data: false,
			},
			() => console.log('Default explicit consent set')
			);
		} else {
			window.Shopify.customerPrivacy.setTrackingConsent(
			{
				analytics: true,
				marketing: true,
				preferences: true,
				sale_of_data: true,
			},
			() => console.log('Default Implied consent set')
			);
		}
      } else {
        console.log('Consent - PieEyeConsent cookie found, using existing consent settings');
      }
    }
 
    // First, try to get checkout consent immediately
    const immediateCheck = checkAndApplyCheckoutConsent();
    if (immediateCheck.found) {
      if (immediateCheck.consent) {
        // We have the actual consent values, apply them immediately
        console.log('Consent - Checkout consent found immediately with values, applying it:', immediateCheck.consent);
        checkoutConsentFound = true;
        consentInitialized = true;
        window.Shopify.customerPrivacy.setTrackingConsent(immediateCheck.consent, () => {
          console.log('Consent - Checkout consent applied successfully');
        });
        // Map our categories to appropriate cookie categories
        // Strictly Necessary: always true (Shopify core requirement)
        // Functionality: preferences
        // Performance: analytics
        // Targeting/Advertising: marketing or sale_of_data
        // Create a cookie with the names of categories that are granted (true)
        var grantedCategories = [];
        grantedCategories.push('Strictly Necessary');
        if (immediateCheck.consent.analytics === true) grantedCategories.push('Performance');
        if (immediateCheck.consent.marketing === true || immediateCheck.consent.sale_of_data === true) grantedCategories.push('Targeting/Advertising');
        if (immediateCheck.consent.preferences === true) grantedCategories.push('Functionality');
        if (grantedCategories.length > 0) {
          const domain = window.location.hostname;
          //document.cookie = `pieeye-checkout-consent=${grantedCategories.join(',')};path=/;max-age=31536000;domain=${domain};SameSite=None;Secure`;
          //document.cookie = `pieeye-checkout-consent=${grantedCategories.join(',')}; path=/; max-age=31536000;`;
        }
        return; // Exit early, skip PieEye cookie logic
      } else {
        // Consent exists but we need to wait for subscribe to get the actual values
        console.log('Consent - waiting for subscribe callback to get values');
        checkoutConsentFound = true; // Mark as found so we don't run PieEye logic
        // Don't set consentInitialized yet - wait for subscribe to provide values
      }
    }
  
    // Subscribe to detect consent from checkout
    let subscribeFired = false;
    let pieEyeLogicApplied = false;
  
    if (typeof window.Shopify.customerPrivacy.subscribe === 'function') {
      window.Shopify.customerPrivacy.subscribe(function(consent) {
        console.log('Consent - subscribe callback received:', JSON.stringify(consent, null, 2));
        subscribeFired = true;
  
        // First, try getTrackingConsent() again (it might be available now)
        const trackingCheck = checkAndApplyCheckoutConsent();
        if (trackingCheck.found && trackingCheck.consent && !checkoutConsentFound && !consentInitialized) {
          console.log('Consent - Checkout consent found via getTrackingConsent() in subscribe callback');
          checkoutConsentFound = true;
          consentInitialized = true;
          window.Shopify.customerPrivacy.setTrackingConsent(trackingCheck.consent, () => {
            console.log('Consent - Checkout consent applied successfully from subscribe (getTrackingConsent)');
          });
          return;
        }
  
        // Also try to extract from subscribe callback - check multiple possible formats
        let visitorConsent = null;
  
        // Format 1: consent.visitorConsent
        if (consent && consent.visitorConsent) {
          visitorConsent = consent.visitorConsent;
          console.log('Consent - Extracted visitorConsent from subscribe.visitorConsent:', visitorConsent);
        }
        // Format 2: consent.current.visitorConsent
        else if (consent && consent.current && consent.current.visitorConsent) {
          visitorConsent = consent.current.visitorConsent;
          console.log('Consent - Extracted visitorConsent from subscribe.current.visitorConsent:', visitorConsent);
        }
        // Format 3: consent.value.visitorConsent
        else if (consent && consent.value && consent.value.visitorConsent) {
          visitorConsent = consent.value.visitorConsent;
          console.log('Consent - Extracted visitorConsent from subscribe.value.visitorConsent:', visitorConsent);
        }
        // Format 4: consent directly has consent fields (check this last as it's less specific)
        else if (consent && typeof consent === 'object' &&
          (consent.analytics !== undefined || consent.marketing !== undefined ||
            consent.preferences !== undefined || consent.saleOfData !== undefined ||
            consent.sale_of_data !== undefined)) {
          visitorConsent = consent;
          console.log('Consent - Using consent directly from subscribe (has consent fields):', visitorConsent);
        }
  
        // Debug: log the full consent structure if we couldn't extract visitorConsent
        if (!visitorConsent && consent) {
          console.log('Consent - Could not extract visitorConsent. Full consent object:', consent);
          console.log('Consent - Consent keys:', Object.keys(consent));
        }
  
        if (visitorConsent) {
          // Check if this is actual consent (not just empty/undefined values)
          const hasValidConsent =
            visitorConsent.analytics !== undefined ||
            visitorConsent.marketing !== undefined ||
            visitorConsent.preferences !== undefined ||
            visitorConsent.saleOfData !== undefined ||
            visitorConsent.sale_of_data !== undefined;
  
          if (hasValidConsent) {
            console.log('Consent - Checkout consent detected via subscribe callback:', visitorConsent);
  
            // Apply checkout consent immediately (highest priority) - even if already initialized
            const consentToApply = {
              analytics: visitorConsent.analytics !== undefined ? visitorConsent.analytics : false,
              marketing: visitorConsent.marketing !== undefined ? visitorConsent.marketing : false,
              preferences: visitorConsent.preferences !== undefined ? visitorConsent.preferences : false,
              sale_of_data: (visitorConsent.saleOfData !== undefined ? visitorConsent.saleOfData :
                visitorConsent.sale_of_data !== undefined ? visitorConsent.sale_of_data : false)
            };
  
            console.log('Consent - Applying checkout consent (overriding any existing):', consentToApply);
  
            // Mark as found and initialized to prevent PieEye logic
            checkoutConsentFound = true;
            consentInitialized = true;
  
            window.Shopify.customerPrivacy.setTrackingConsent(consentToApply, () => {
              console.log('Consent - Checkout consent applied successfully from subscribe');
            });
            return; // Exit early, consent found
          } else {
            console.log('Consent - Subscribe callback has visitorConsent but fields are undefined:', visitorConsent);
          }
        } else {
          console.log('Consent - No visitorConsent found in subscribe callback. Consent object structure:', Object.keys(consent || {}));
        }
  
        // If subscribe fired but no valid consent found, proceed with PieEye logic (only once)
        // This handles both cases: no checkout consent detected, or checkout consent detected but no values provided
        if (!consentInitialized && !pieEyeLogicApplied) {
          if (checkoutConsentFound) {
            console.log('Consent - Checkout consent was detected but subscribe did not provide values. Falling back to PieEye cookie logic.');
            checkoutConsentFound = false; // Reset so PieEye can run
          } else {
            console.log('Consent - Subscribe fired but no checkout consent found, falling back to PieEye cookie logic');
          }
          pieEyeLogicApplied = true;
          applyPieEyeLogic();
        }
      });
      console.log('Consent - Subscribed to Shopify Customer Privacy API for checkout consent detection');
    } else {
      console.warn('Consent - Subscribe method not available');
    }
  
    // Wait a short time for subscribe to fire, then fallback to PieEye logic if no consent found
    setTimeout(function() {
      // If checkout consent was found but not yet initialized, check if subscribe provided values
      if (checkoutConsentFound && !consentInitialized) {
        // Try one more time to get consent values
        const finalCheck = checkAndApplyCheckoutConsent();
        if (finalCheck.found && finalCheck.consent) {
          console.log('Consent - Checkout consent values found in final check, applying it:', finalCheck.consent);
          consentInitialized = true;
          window.Shopify.customerPrivacy.setTrackingConsent(finalCheck.consent, () => {
            console.log('Consent - Checkout consent applied successfully from final check');
          });
          return;
        }
  
        // If subscribe fired but didn't provide values, or subscribe didn't fire, fall back to PieEye
        if (subscribeFired) {
          console.log('Consent - Checkout consent was detected but subscribe did not provide values. Falling back to PieEye cookie logic.');
        } else {
          console.log('Consent - Checkout consent was detected but subscribe did not fire. Falling back to PieEye cookie logic.');
        }
        // Reset checkoutConsentFound since we couldn't get actual values, allow PieEye to run
        checkoutConsentFound = false;
        // Fall through to run PieEye logic below
      }
  
      // If no checkout consent found or we reset it above, proceed with PieEye logic
      if (!checkoutConsentFound && !consentInitialized && !pieEyeLogicApplied) {
        // Try one more time to get consent
        const finalCheck = checkAndApplyCheckoutConsent();
        if (finalCheck.found && finalCheck.consent) {
          console.log('Consent - Checkout consent found in final check, applying it');
          checkoutConsentFound = true;
          consentInitialized = true;
          window.Shopify.customerPrivacy.setTrackingConsent(finalCheck.consent, () => {
            console.log('Consent - Checkout consent applied successfully from final check');
          });
          return;
        }
  
        if (subscribeFired) {
          console.log('Consent - Subscribe fired but no checkout consent detected, falling back to PieEye cookie logic');
        } else {
          console.log('Consent - Subscribe did not fire within timeout, falling back to PieEye cookie logic');
        }
        pieEyeLogicApplied = true;
        applyPieEyeLogic();
      }
    }, 3000); // Wait 3 seconds for subscribe to fire
  }
  
  window.Shopify.loadFeatures(
    [
      {
        name: 'consent-tracking-api',
        version: '0.1',
      },
    ],
    function (error) {
      if (error) throw error;
      console.log('Consent - tracking API loaded');
      initializeConsent();
    }
  );
  window.addEventListener("pieEyeShopifyConsent", function (e) {
    const existConsentShopify = setInterval(function () {
      if (window.Shopify.customerPrivacy) {
        clearInterval(existConsentShopify);
        window.Shopify.customerPrivacy.setTrackingConsent({
          "analytics": e.detail.analytics,
          "marketing": e.detail.marketing,
          "preferences": e.detail.preferences,
          "sale_of_data": e.detail.sale_of_data,
        }, () => console.log("Consent - consent captured"));
      }
    }, 100);
  });
  </script>




  
    <script type="application/ld+json">
{
  "@context": "https://schema.org", 
  "@type": "Organization", 
  "name": "Bulletproof", 
  "url": "https://www.bulletproof.com/", 
  "logo": "https://cdn.shopify.com/s/files/1/0004/3470/0319/files/bulletproof-logo.svg", 
  "description" : "Bulletproof is a food and beverage company, known for Bulletproof Coffee and products that fuel your mind and body.", 
  "contactPoint":{
    "@type": "ContactPoint", 
    "telephone": "+1 844-640-3003", 
    "email": "care@bulletproof.com", 
    "contactType": "customer service"
  }, 
  "sameAs": [ 
    "https://www.facebook.com/Bulletproof/", 
    "https://www.instagram.com/bulletproof/", 
    "https://www.tiktok.com/@bulletprooftok",
    "https://twitter.com/bpnutrition/", 
    "https://www.pinterest.com/bulletproofpins/", 
    "https://www.youtube.com/user/bulletproofexecutive/", 
    "https://www.linkedin.com/company/bulletproof-nutrition/", 
    "https://www.amazon.com/stores/page/CC7B95EF-13F1-4F00-B481-8DFFED90207E?ingress=0&visitId=28f5c062-f5bb-4d79-b2dd-d4942ded5df2"
  ], 
  "address":{
    "@type": "PostalAddress", 
    "addressLocality": "Seattle", 
    "addressRegion": "WA", 
    "postalCode": "98117", 
    "streetAddress": "2400 NW 80th Street PMB 113"
  }
}
</script>
<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "name" : "Bulletproof",
  "url": "https://www.bulletproof.com/",
  "potentialAction": {
    "@type": "SearchAction",
    "target": "https://www.bulletproof.com/search?q={search_term_string}",
    "query-input": "required name=search_term_string"
  }
}
</script>
  

  

  
<script type="text/javascript">
  document.addEventListener('DOMContentLoaded', function() {
    const piiInputs = [
      '#SearchMenuInput',
    ];

    const piiKeywordsBlacklist = ['test blacklist keyword'];

    const dobRegex = new RegExp(
      "\\b(?:" +
        "(?:\\d{4}[-\\/](?:0?[1-9]|1[0-2])[-\\/](?:0?[1-9]|[12][0-9]|3[01]))|" +                // ISO YYYY-MM-DD
        "(?:0?[1-9]|1[0-2])[\\/\\-](?:0?[1-9]|[12][0-9]|3[01])[\\/\\-](?:\\d{2}|\\d{4})|" +      // US MM/DD/YYYY
        "(?:0?[1-9]|[12][0-9]|3[01])[\\/\\-](?:0?[1-9]|1[0-2])[\\/\\-](?:\\d{2}|\\d{4})|" +      // EU DD/MM/YYYY
        "(?:Jan(?:uary)?|Feb(?:ruary)?|Mar(?:ch)?|Apr(?:il)?|May|Jun(?:e)?|Jul(?:y)?|" +
          "Aug(?:ust)?|Sep(?:t(?:ember)?)?|Oct(?:ober)?|Nov(?:ember)?|Dec(?:ember)?)\\s+" +
        "(?:0?[1-9]|[12][0-9]|3[01])(st|nd|rd|th)?(?:,)?\\s+\\d{4}" +                           // Month DD(st|nd|rd|th), YYYY
      ")\\b",
      "gi"
    );

    const piiRegex = {
      email: {
        regex: /\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}\b/gi,
        message: 'Please do not search by email address.',
      },
      phone: {
        regex: /\b(\+?1\s*[-.]?)?\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}\b/g,
        message: 'Please do not search using a phone number.',
      },
      credit_card: {
        regex: /\b(?:4\d{3}|5[1-5]\d{2}|3[47]\d{2}|6(?:011|5\d{2}))[- ]?\d{4}[- ]?\d{4}[- ]?\d{4}\b/g,
        message: 'Please do not input credit card information.',
      },
      social_security_number: {
        regex: /\b\d{3}-\d{2}-\d{4}\b/g,
        message: 'Please do not input Social Security Numbers.',
      },
      date_of_birth: {
        regex: dobRegex,
        message: 'Please do not include date of birth.',
      },
      ip_address: {
        regex: /\b(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]?\d)\b/g,
        message: 'Please do not input IP addresses.',
      }
    };

    piiInputs.forEach(selector => {
      const inputElement = document.querySelector(selector);
      if (!inputElement) return;

      // Prevent form submission if PII is present
      const parentForm = inputElement.closest('form');
      if (parentForm) {
        parentForm.addEventListener('submit', (e) => {
          const value = inputElement.value;
          let foundMessages = new Set();
          Object.values(piiRegex).forEach(({ regex, message }) => {
            if (regex.test(value)) {
              foundMessages.add(message);
            }
          });
          // Check for blacklisted keywords (case-insensitive)
          piiKeywordsBlacklist.forEach(keyword => {
            if (keyword && value.toLowerCase().includes(keyword.toLowerCase())) {
              foundMessages.add('Please do not include sensitive keywords: ' + keyword);
            }
          });
          if (foundMessages.size > 0) {
            Array.from(foundMessages).forEach(msg => {
              console.warn(msg);
            });
            alert(Array.from(foundMessages).join('\n'));
            e.preventDefault();
            e.stopPropagation();
          }
        }, true);
      }

      inputElement.addEventListener('input', (e) => {
        let value = e.target.value;
        let foundMessages = new Set();
        let piiMatches = [];

        Object.values(piiRegex).forEach(({ regex, message }) => {
          const matches = [...value.matchAll(regex)];
          if (matches.length > 0) {
            foundMessages.add(message);
            matches.forEach(match => {
              piiMatches.push({ match: match[0], regex });
            });
          }
        });

        // Check for blacklisted keywords (case-insensitive)
        piiKeywordsBlacklist.forEach(keyword => {
          if (keyword && value.toLowerCase().includes(keyword.toLowerCase())) {
            foundMessages.add('Please do not include sensitive keywords: ' + keyword);
          }
        });

        if (foundMessages.size > 0) {
          Array.from(foundMessages).forEach(msg => {
            console.warn(msg);
          });
          alert(Array.from(foundMessages).join('\n'));
          e.preventDefault();
          e.stopPropagation();

          let newValue = value;
          piiMatches.forEach(({ match, regex }) => {
            newValue = newValue.replace(regex, '').trim();
          });
          // Remove blacklisted keywords
          piiKeywordsBlacklist.forEach(keyword => {
            if (keyword) {
              const keywordRegex = new RegExp(keyword, 'gi');
              newValue = newValue.replace(keywordRegex, '').trim();
            }
          });
          e.target.value = newValue;
        }
      });
    });
  });
</script>
<script>(function() {  const params = new URLSearchParams(window.location.search);  const utmSource = params.get("utm_source");  const utmMedium = params.get("utm_medium");  const utmCampaign = params.get("utm_campaign");  if (utmSource || utmMedium || utmCampaign) {    const storage = sessionStorage.getItem('saved_utm_params');    let needsUpdate = !storage;    if (storage) {      const storageObj = JSON.parse(storage);      if (storageObj.utmSource !== utmSource || storageObj.utmMedium !== utmMedium || storageObj.utmCampaign !== utmCampaign) {        needsUpdate = true;      }    }    if (!needsUpdate) return;    const attributes = {};    if (utmSource) attributes.utm_source = utmSource;    if (utmMedium) attributes.utm_medium = utmMedium;    if (utmCampaign) attributes.utm_campaign = utmCampaign;    fetch('/cart/update.js', {      method: 'POST',      headers: { 'Content-Type': 'application/json' },      body: JSON.stringify({ attributes: attributes })    }).then(function() {      sessionStorage.setItem('saved_utm_params', JSON.stringify({        utmSource,        utmMedium,        utmCampaign      }));    });  }})();</script><style>/* remove focusability in slick inactive slides */
.slick-slide:not(.slick-active) a,
.slick-slide:not(.slick-active) button {
  visibility: hidden;
}
</style>
<!-- BEGIN app block: shopify://apps/blockify-fraud-filter/blocks/app_embed/2e3e0ba5-0e70-447a-9ec5-3bf76b5ef12e --><link href="https://cdn.shopify.com/extensions/01a0c762-52b4-7219-bd21-6e3e19168328/region-restrictions-375/assets/ip-blocker-embed.min.js" as="script" type="text/javascript" rel="preload">

<link rel="preconnect" href="https://media.synctrack.io">

<script type="application/json" id="ipblocker-config">
  {
    "shopIdentifier": "bulletproof-coffee.myshopify.com",
    "ipBlockerMetafields": "{\"showOverlayByPass\":false,\"disableSpyExtensions\":false,\"blockUnknownBots\":true,\"activeApp\":true,\"blockByMetafield\":false,\"visitorAnalytic\":true,\"showWatermark\":true}",
    "ipBlockerRules": [{"i":816697,"t":"1","c":"2","p":"1","rt":"cidr","co":"BR","st":"São Paulo","ua":"0","o":0,"ac":true,"h":0},{"i":816698,"t":"1","c":"2","p":"1","rt":"cidr","co":"MX","st":"Mexico City","ua":"0","o":0,"ac":true,"h":0},{"i":816699,"t":"1","c":"3","p":"1","rt":"cidr","co":"KH","ua":"0","o":0,"ac":true,"h":0},{"i":817451,"t":"1","c":"2","p":"1","rt":"cidr","co":"MA","st":"Tanger-Tetouan-Al Hoceima","cy":"Tangier","ua":"0","o":0,"ac":true,"h":0},{"i":817452,"t":"1","c":"3","p":"1","rt":"cidr","co":"SC","ua":"0","o":0,"ac":true,"h":0},{"i":818534,"t":"1","c":"3","p":"1","rt":"cidr","co":"MA","ua":"0","o":0,"ac":true,"h":0},{"i":848551,"t":"1","c":"3","p":"1","rt":"cidr","co":"KP","ua":"0","o":0,"ac":true,"h":0},{"i":848552,"t":"1","c":"3","p":"1","rt":"cidr","co":"RU","ua":"0","o":0,"ac":true,"h":0},{"i":848553,"t":"1","c":"3","p":"1","rt":"cidr","co":"IR","ua":"0","o":0,"ac":true,"h":0},{"i":849247,"t":"1","c":"2","p":"1","rt":"cidr","co":"CZ","st":"South Moravian","ua":"0","o":0,"ac":true,"h":0},{"i":849248,"t":"1","c":"2","p":"1","rt":"cidr","co":"BD","st":"Dhaka","ua":"0","o":0,"ac":true,"h":0},{"i":849249,"t":"1","c":"2","p":"1","rt":"cidr","co":"HU","st":"Szabolcs-Szatmár-Bereg","cy":"Nyíregyháza (Jósaváros)","ua":"0","o":0,"ac":true,"h":0},{"i":849250,"t":"1","c":"2","p":"1","rt":"cidr","co":"HU","st":"Szabolcs-Szatmár-Bereg","cy":"Nyíregyháza","ua":"0","o":0,"ac":true,"h":0},{"i":849251,"t":"1","c":"2","p":"1","rt":"cidr","co":"HU","st":"Szabolcs-Szatmár-Bereg","cy":"Nyíregyháza (Oros)","ua":"0","o":0,"ac":true,"h":0},{"i":878115,"t":"1","c":"2","p":"1","rt":"cidr","co":"IN","st":"Madhya Pradesh","cy":"Bhopal (Shymala Hills)","ua":"0","o":0,"ac":true,"h":0},{"i":878116,"t":"1","c":"2","p":"1","rt":"cidr","co":"IN","st":"Madhya Pradesh","cy":"Bhopal (Bagmugaliya)","ua":"0","o":0,"ac":true,"h":0},{"i":878117,"t":"1","c":"2","p":"1","rt":"cidr","co":"IN","st":"Madhya Pradesh","cy":"Bhopal (Lalita Nagar)","ua":"0","o":0,"ac":true,"h":0},{"i":878118,"t":"1","c":"2","p":"1","rt":"cidr","co":"IN","st":"Madhya Pradesh","cy":"Bhopal (Malviya Nagar)","ua":"0","o":0,"ac":true,"h":0},{"i":878119,"t":"1","c":"2","p":"1","rt":"cidr","co":"IN","st":"Madhya Pradesh","cy":"Bhopal","ua":"0","o":0,"ac":true,"h":0},{"i":878120,"t":"1","c":"2","p":"1","rt":"cidr","co":"IN","st":"Madhya Pradesh","cy":"Bhopal (Arera Hills)","ua":"0","o":0,"ac":true,"h":0},{"i":878121,"t":"1","c":"2","p":"1","rt":"cidr","co":"IN","st":"Madhya Pradesh","cy":"Bhopal (Kotra Sultanabad)","ua":"0","o":0,"ac":true,"h":0},{"i":878122,"t":"1","c":"2","p":"1","rt":"cidr","co":"IN","st":"Madhya Pradesh","cy":"Bhopal (B Sector)","ua":"0","o":0,"ac":true,"h":0},{"i":878123,"t":"1","c":"2","p":"1","rt":"cidr","co":"IN","st":"Madhya Pradesh","cy":"Bhopal (Sector B)","ua":"0","o":0,"ac":true,"h":0},{"i":878141,"t":"1","c":"2","p":"1","rt":"cidr","co":"PL","st":"Mazovia","cy":"Warsaw (Ursynów)","ua":"0","o":0,"ac":true,"h":0},{"i":878142,"t":"1","c":"2","p":"1","rt":"cidr","co":"PL","st":"Mazovia","cy":"Warsaw (Mokotów)","ua":"0","o":0,"ac":true,"h":0},{"i":878143,"t":"1","c":"2","p":"1","rt":"cidr","co":"PL","st":"Mazovia","cy":"Warsaw (Ochota)","ua":"0","o":0,"ac":true,"h":0},{"i":878144,"t":"1","c":"2","p":"1","rt":"cidr","co":"PL","st":"Mazovia","cy":"Warsaw (Radiowo)","ua":"0","o":0,"ac":true,"h":0},{"i":878145,"t":"1","c":"2","p":"1","rt":"cidr","co":"PL","st":"Mazovia","cy":"Warsaw (Targówek)","ua":"0","o":0,"ac":true,"h":0},{"i":878146,"t":"1","c":"2","p":"1","rt":"cidr","co":"PL","st":"Mazovia","cy":"Warsaw (Wawer)","ua":"0","o":0,"ac":true,"h":0},{"i":878147,"t":"1","c":"2","p":"1","rt":"cidr","co":"PL","st":"Mazovia","cy":"Warsaw (Bemowo)","ua":"0","o":0,"ac":true,"h":0},{"i":878148,"t":"1","c":"2","p":"1","rt":"cidr","co":"PL","st":"Mazovia","cy":"Warsaw (Białołęka)","ua":"0","o":0,"ac":true,"h":0},{"i":878149,"t":"1","c":"2","p":"1","rt":"cidr","co":"PL","st":"Mazovia","cy":"Warsaw (Bielany)","ua":"0","o":0,"ac":true,"h":0},{"i":878150,"t":"1","c":"2","p":"1","rt":"cidr","co":"PL","st":"Mazovia","cy":"Warsaw (Wilanów)","ua":"0","o":0,"ac":true,"h":0},{"i":878151,"t":"1","c":"2","p":"1","rt":"cidr","co":"PL","st":"Mazovia","cy":"Warsaw (Wola)","ua":"0","o":0,"ac":true,"h":0},{"i":878152,"t":"1","c":"2","p":"1","rt":"cidr","co":"PL","st":"Mazovia","cy":"Warsaw","ua":"0","o":0,"ac":true,"h":0},{"i":878153,"t":"1","c":"2","p":"1","rt":"cidr","co":"PL","st":"Mazovia","cy":"Warsaw (Śródmieście)","ua":"0","o":0,"ac":true,"h":0},{"i":878154,"t":"1","c":"2","p":"1","rt":"cidr","co":"PL","st":"Mazovia","cy":"Warsaw (Wesoła)","ua":"0","o":0,"ac":true,"h":0},{"i":878155,"t":"1","c":"2","p":"1","rt":"cidr","co":"PL","st":"Mazovia","cy":"Warsaw (Włochy)","ua":"0","o":0,"ac":true,"h":0},{"i":878156,"t":"1","c":"2","p":"1","rt":"cidr","co":"PL","st":"Mazovia","cy":"Warsaw (Praga-Północ)","ua":"0","o":0,"ac":true,"h":0},{"i":878157,"t":"1","c":"2","p":"1","rt":"cidr","co":"PL","st":"Mazovia","cy":"Warsaw (Praga Południe)","ua":"0","o":0,"ac":true,"h":0},{"i":879510,"t":"1","c":"3","p":"1","rt":"cidr","co":"CZ","ua":"0","o":0,"ac":true,"h":0},{"i":2305241,"c":"1","p":"2","a":"189.36.227.140","rt":"cidr","ua":"0","o":1,"ac":true,"h":0},{"i":2346614,"c":"1","p":"2","a":"187.57.155.190","rt":"cidr","ua":"0","o":1,"ac":true,"h":0},{"i":2661313,"c":"1","p":"2","a":"187.89.119.121","rt":"cidr","ua":"0","o":1,"ac":true,"h":0},{"i":2703387,"c":"1","p":"2","a":"2804:7f0:9542:207:c8cd:1619:4d3e:9c2e","rt":"cidr","ua":"0","o":1,"ac":true,"h":0}],
    "ipBlockerGeneral": {"activeVpnProxy":false,"vpnRiskCore":66,"torBlock":false,"showWatermark":true,"autoBlock":false,"enableVisitorAnalytics":true,"blockUnknownBots":true,"blockingTemplateId":1,"protectTexts":false,"protectImages":false,"protectContents":false,"allowVpnFromPrivateRelay":false,"plan":"shopify plus","enableApp":true,"siteUrl":"shop.bulletproof.com","showOverlayByPass":false,"useClientSideCheck":false},
    "ipBlockerBlockTemplate": "{\"customCss\":\"#blockify---container{--bg-blockify: #fff;position:relative}#blockify---container::after{content:'';position:absolute;inset:0;background-repeat:no-repeat !important;background-size:cover !important;background:var(--bg-blockify);z-index:0}#blockify---container #blockify---container__inner{display:flex;flex-direction:column;align-items:center;position:relative;z-index:1}#blockify---container #blockify---container__inner #blockify-block-content{display:flex;flex-direction:column;align-items:center;text-align:center}#blockify---container #blockify---container__inner #blockify-block-content #blockify-block-superTitle{display:none !important}#blockify---container #blockify---container__inner #blockify-block-content #blockify-block-title{font-size:313%;font-weight:bold;margin-top:1em}@media only screen and (min-width: 768px) and (max-width: 1199px){#blockify---container #blockify---container__inner #blockify-block-content #blockify-block-title{font-size:188%}}@media only screen and (max-width: 767px){#blockify---container #blockify---container__inner #blockify-block-content #blockify-block-title{font-size:107%}}#blockify---container #blockify---container__inner #blockify-block-content #blockify-block-description{font-size:125%;margin:1.5em;line-height:1.5}@media only screen and (min-width: 768px) and (max-width: 1199px){#blockify---container #blockify---container__inner #blockify-block-content #blockify-block-description{font-size:88%}}@media only screen and (max-width: 767px){#blockify---container #blockify---container__inner #blockify-block-content #blockify-block-description{font-size:107%}}#blockify---container #blockify---container__inner #blockify-block-content #blockify-block-description #blockify-block-text-blink{display:none !important}#blockify---container #blockify---container__inner #blockify-logo-block-image{position:relative;width:400px;height:auto;max-height:300px}@media only screen and (max-width: 767px){#blockify---container #blockify---container__inner #blockify-logo-block-image{width:200px}}#blockify---container #blockify---container__inner #blockify-logo-block-image::before{content:'';display:block;padding-bottom:56.2%}#blockify---container #blockify---container__inner #blockify-logo-block-image img{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain}\\n\",\"logoImage\":{\"active\":true,\"value\":\"https:\/\/apps-shopify.ipblocker.io\/s\/api\/public\/assets\/default-thumbnail.png\",\"altText\":\"Red octagonal stop sign with a black hand symbol in the center, indicating a warning or prohibition\"},\"superTitle\":{\"active\":false,\"text\":\"403\",\"color\":\"#899df1\"},\"title\":{\"active\":true,\"text\":\"We’re Sorry, This Site Isn’t Available in Your Region\",\"color\":\"#000\"},\"description\":{\"active\":true,\"text\":\"Due to legal, regulatory, or business restrictions, our website is not accessible from your location at this time. We appreciate your interest and apologize for any inconvenience this may cause.\",\"color\":\"#333\"},\"background\":{\"active\":true,\"colorFrom\":null,\"colorTo\":null,\"type\":1,\"value\":\"#f1ece7\"}}",
    "ipBlockerBotsAllow": [{"botName":"aHrefs Bot","regex":"AhrefsBot"},{"botName":"Facebook External Hit","regex":"facebookexternalhit|facebookplatform|facebookexternalua"},{"botName":"Googlebot","regex":"AdsBot-Google(-Mobile)?|Adwords-(DisplayAds|Express|Instant)|Google Web Preview|Google[ -]Publisher[ -]Plugin|Google-(Ads-Qualify|Adwords|AMPHTML|Assess|HotelAdsVerifier|Read-Aloud|Shopping-Quality|Site-Verification|speakr|Test|Youtube-Links)|(APIs|DuplexWeb|Feedfetcher|Mediapartners)-Google|Googlebot(-Mobile|-Image|-Video|-News)?|GoogleProducer|Google.*\/\\+\/web\/snippet"},{"botName":"Applebot","regex":"Applebot"},{"botName":"Lighthouse","regex":"([A-z0-9]*)-Lighthouse"},{"botName":"BingBot","regex":"MSNBot|msrbot|bingbot|BingPreview|msnbot-(UDiscovery|NewsBlogs)|adidxbot"},{"botName":"LinkedIn Bot","regex":"LinkedInBot"},{"botName":"Semrush Bot","regex":"SemrushBot"},{"botName":"Pinterest","regex":"Pinterest(bot)?\/\\d\\.\\d.*www\\.pinterest\\.com.*"}],
    "baseUrl": "https:\/\/fraud.blockifyapp.com\/s\/api",
    "bucketUrl": "https:\/\/media.synctrack.io\/megamind-fraud",
    "storefrontApiUrl": "https:\/\/fraud.blockifyapp.com\/p\/api",
    "ipBlockerChecking": true,
    "ipBlockerCollectionId": null,
    "ipBlockerProductCollections": null,
    "ipBlockerCheckoutProduct": null
  }
</script>

<script
  id="blockifyScriptTag"
  src="https://cdn.shopify.com/extensions/01a0c762-52b4-7219-bd21-6e3e19168328/region-restrictions-375/assets/ip-blocker-embed.min.js"
  async
></script><!-- END app block --><!-- BEGIN app block: shopify://apps/elevar-conversion-tracking/blocks/dataLayerEmbed/bc30ab68-b15c-4311-811f-8ef485877ad6 -->



<script type="module" dynamic>
  const configUrl = "/a/elevar/static/configs/f7cdb5ec51d4fb1edabd696e378d24206615fa8e/config.js";
  const config = (await import(configUrl)).default;
  const scriptUrl = config.script_src_app_theme_embed;

  if (scriptUrl) {
    const { handler } = await import(scriptUrl);

    await handler(
      config,
      {
        cartData: {
  marketId: "1539211299",
  localeCountryCode:"US",
  attributes:{},
  cartTotal: "0.0",
  currencyCode:"USD",
  items: []
}
,
        user: {
  cartTotal: "0.0",
  currencyCode:"USD",
  customer: {},
}
,
        isOnCartPage:false,
        collectionView:null,
        searchResultsView:null,
        productView:null,
      }
    );
  }
</script>


<!-- END app block --><meta property="og:image" content="https://cdn.shopify.com/s/files/1/0004/3470/0319/files/bp-logo-large.png?v=1785948157" />
<meta property="og:image:secure_url" content="https://cdn.shopify.com/s/files/1/0004/3470/0319/files/bp-logo-large.png?v=1785948157" />
<meta property="og:image:width" content="3420" />
<meta property="og:image:height" content="1879" />
<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
<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: 434700319,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "index"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
<script>
  window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || [];
</script>
<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}).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: 434700319,storefrontBaseUrl: "https://www.bulletproof.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://www.bulletproof.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["0fa89373","16072cab"],webPixelsConfigList: [{"id":"809533475","configuration":"{\"shopId\":\"bulletproof-coffee.myshopify.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"31536d5a2ef62c1887054e49fd58dba0","type":"APP","apiClientId":4845829,"privacyPurposes":["ANALYTICS"],"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":"801243171","configuration":"{\"loggingEnabled\":\"true\",\"serverPixelEnabled\":\"true\",\"useShopifyItemLevelTax\":\"false\",\"ranMid\":\"54192\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"3c4e0707a22db0bd439a5e4b720ea9d0","type":"APP","apiClientId":2531653,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"791445539","configuration":"{\"projectId\":\"vnzflnq4qb\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"d8a2bb2ccbb513dc8e8b6937f4b8033e","type":"APP","apiClientId":240074326017,"privacyPurposes":[],"capabilities":["advanced_dom_events"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"715489315","configuration":"{\"accountID\":\"Y6n6JQ\",\"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":"532414499","configuration":"{\"accountID\":\"BLOCKIFY_TRACKING-123\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"b35abd85befe01ff41cd41df4ff83ae0","type":"APP","apiClientId":2309454,"privacyPurposes":["ANALYTICS","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":"22544419","configuration":"{\"myshopifyDomain\":\"bulletproof-coffee.myshopify.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"23b97d18e2aa74363140dc29c9284e87","type":"APP","apiClientId":2775569,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_phone","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"1474595","configuration":"{\"config_url\": \"https:\/\/shopify-gtm-suite.getelevar.com\/configs\/f7cdb5ec51d4fb1edabd696e378d24206615fa8e\/config.js\"}","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"7ae63d00911d5ee26809bf1e3232d852","type":"APP","apiClientId":2509311,"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":"26247203","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"11","type":"CUSTOM","privacyPurposes":[],"name":"Elevar PieEYe- Custom Pixel"},{"id":"26279971","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["SALE_OF_DATA"],"name":"Retention.com script"},{"id":"26312739","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":[],"name":"Yottaa script PROD"},{"id":"90767395","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"3","type":"CUSTOM","privacyPurposes":[],"name":"PieEye Consent Event "},{"id":"92799011","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"3","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Wicked Reports (Checkout)"},{"id":"98140195","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"2","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"name":"Klevu Order Tracking"},{"id":"98926627","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":[],"name":"PieEye Self Healing"},{"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":"Bulletproof","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"bulletproof-coffee.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/www.bulletproof.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[{"id":"6682999128099","handle":"enhanced-creamer-pumpkin-spice-14-8-oz","isCollective":false,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"39667887472675","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7272676098083","handle":"mood-booster-mushroom-coffee","isCollective":false,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43857800495139","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]},{"id":"7272674426915","handle":"flavored-coffee-cinnamon-vanilla","isCollective":false,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"43857798856739","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}],"purchasingCompany":null},},"https://www.bulletproof.com/cdn","0717081aw18228a65p9e6fbe92m697c756b",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"false","themeId":"164195139619","themePublished":"true","eventMetadataId":"9755ca16-a654-4e3c-866d-4ed4e4162b4b","pageType":"home","shopId":"434700319","storefrontBaseUrl":"https:\/\/www.bulletproof.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"0fa89373\", \"16072cab\"]","isMerchantRequest":"false","hashVersion":"0717081aw18228a65p9e6fbe92m697c756b","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script><script>
  window.ShopifyAnalytics = window.ShopifyAnalytics || {};
  window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
  window.ShopifyAnalytics.meta.currency = 'USD';
  var meta = {"page":{"pageType":"home","requestId":"59a94d40-48c1-41b2-b9d4-029188dad948-1790116169"}};
  for (var attr in meta) {
    window.ShopifyAnalytics.meta[attr] = meta[attr];
  }
</script>
<script class="analytics">
  (function () {
    var customDocumentWrite = function(content) {
      var jquery = null;

      if (window.jQuery) {
        jquery = window.jQuery;
      } else if (window.Checkout && window.Checkout.$) {
        jquery = window.Checkout.$;
      }

      if (jquery) {
        jquery('body').append(content);
      }
    };

    var hasLoggedConversion = function(token) {
      if (token) {
        return document.cookie.indexOf('loggedConversion=' + token) !== -1;
      }
      return false;
    }

    var setCookieIfConversion = function(token) {
      if (token) {
        var twoMonthsFromNow = new Date(Date.now());
        twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);

        document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
      }
    }

    var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
    window.ShopifyAnalytics.lib.trekkie = window.trekkie;
    if (trekkie.integrations) {
      return;
    }
    trekkie.methods = [
      'identify',
      'page',
      'ready',
      'track',
      'trackForm',
      'trackLink'
    ];
    trekkie.factory = function(method) {
      return function() {
        var args = Array.prototype.slice.call(arguments);
        args.unshift(method);
        trekkie.push(args);
        if (window.__TREKKIE_SHIM_QUEUE && (method == 'track' || method == 'page')) {
          try {
            window.__TREKKIE_SHIM_QUEUE.push({
              from: 'trekkie-stub',
              method: method,
              args: args.slice(1)
            });
          } catch (e) {
            // no-op
          }
        }
        return trekkie;
      };
    };
    for (var i = 0; i < trekkie.methods.length; i++) {
      var key = trekkie.methods[i];
      trekkie[key] = trekkie.factory(key);
    }
    trekkie.load = function(config) {
      trekkie.config = config || {};
      trekkie.config.initialDocumentCookie = document.cookie;
      var first = document.getElementsByTagName('script')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.onerror = function(e) {
  var scriptFallback = document.createElement('script');
  scriptFallback.type = 'text/javascript';
  scriptFallback.onerror = function(error) {
          var Monorail = {
      produce: function produce(monorailDomain, schemaId, payload) {
        var currentMs = new Date().getTime();
        var event = {
          schema_id: schemaId,
          payload: payload,
          metadata: {
            event_created_at_ms: currentMs,
            event_sent_at_ms: currentMs
          }
        };
        return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
      },
      sendRequest: function sendRequest(endpointUrl, payload) {
        // Try the sendBeacon API
        if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
          var blobData = new window.Blob([payload], {
            type: 'text/plain'
          });

          if (window.navigator.sendBeacon(endpointUrl, blobData)) {
            return true;
          } // sendBeacon was not successful

        } // XHR beacon

        var xhr = new XMLHttpRequest();

        try {
          xhr.open('POST', endpointUrl);
          xhr.setRequestHeader('Content-Type', 'text/plain');
          xhr.send(payload);
        } catch (e) {
          console.log(e);
        }

        return false;
      },
      isIos12: function isIos12() {
        return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
      }
    };
    Monorail.produce('monorail-edge.shopifysvc.com',
      'trekkie_storefront_load_errors/1.1',
      {shop_id: 434700319,
      theme_id: 164195139619,
      app_name: "storefront",
      context_url: window.location.href,
      source_url: "//www.bulletproof.com/cdn/s/trekkie.storefront.d9edb3bdf5942835a042805ba4faf61fecd95cf4.min.js"});

  };
  scriptFallback.async = true;
  scriptFallback.src = '//www.bulletproof.com/cdn/s/trekkie.storefront.d9edb3bdf5942835a042805ba4faf61fecd95cf4.min.js';
  first.parentNode.insertBefore(scriptFallback, first);
};
script.async = true;
script.src = '//www.bulletproof.com/cdn/s/trekkie.storefront.d9edb3bdf5942835a042805ba4faf61fecd95cf4.min.js';
first.parentNode.insertBefore(script, first);

    };
    trekkie.load(
      {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":434700319,"isMerchantRequest":null,"themeId":164195139619,"themeCityHash":"10369296426960388534","contentLanguage":"en","currency":"USD","eventMetadataId":"9755ca16-a654-4e3c-866d-4ed4e4162b4b"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain"},"Session Attribution":{},"S2S":{"facebookCapiEnabled":false,"source":"trekkie-storefront-renderer","apiClientId":580111}}
    );

    var loaded = false;
    trekkie.ready(function() {
      if (loaded) return;
      loaded = true;

      window.ShopifyAnalytics.lib = window.trekkie;

      var originalDocumentWrite = document.write;
      document.write = customDocumentWrite;
      try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
      document.write = originalDocumentWrite;

      var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
      var token = match? match[1]: undefined;
      if (!hasLoggedConversion(token)) {
        setCookieIfConversion(token);
        
      }
    });

    window.ShopifyAnalytics.lib.page(null,{"pageType":"home","requestId":"59a94d40-48c1-41b2-b9d4-029188dad948-1790116169","shopifyEmitted":true});

    var eventsListenerScript = document.createElement('script');
    eventsListenerScript.async = true;
    eventsListenerScript.src = "//www.bulletproof.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js";
    document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
})();</script>
<script
  defer
  src="https://www.bulletproof.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js"
  data-application="storefront-renderer"
  data-shop-id="434700319"
  data-render-region="gcp-europe-west1"
  data-page-type="index"
  data-theme-instance-id="164195139619"
  data-theme-name="Bulletproof Coffee"
  data-theme-version="1.0.0"
  data-monorail-region="shop_domain"
  data-resource-timing-sampling-rate="10"
  data-shs="true"
  data-shs-beacon="true"
  data-shs-export-with-fetch="true"
  data-shs-logs-sample-rate="1"
  data-shs-beacon-endpoint="https://www.bulletproof.com/api/collect"
></script>
<meta name="shopify-y" content="00000000-0000-0000-5000-000000000000" data-expiration="1821673769000"><meta name="shopify-s" content="00000000-0000-0000-5000-000000000000" data-expiration="1790117969000"><meta name="new-cookie-storage-activated" content="t">
</head><body id="body" class="template-index  customer--dtc"><button class="in-page-link visually-hidden skip-link" type="button" data-toggle-accessibility-widget-header>Skip to accessibility menu</button>  <div class="visually-hidden" role="alert" aria-live="assertive">    <span class="hide" data-ada-menu-not-ready-alert>Loading accessibility menu</span>  </div>  <a class="in-page-link visually-hidden skip-link" href="#MainContent">Skip to main content</a>  <a class="in-page-link visually-hidden skip-link" href="#MainNav">Skip to navigation</a>  <a class="in-page-link visually-hidden skip-link" href="/pages/bulletproof-accessibility-policy">View Accessibility Policy</a><a class="in-page-link visually-hidden skip-link" href="/cart"      onclick="        const cartBtn = document.querySelector('.header__button[data-side-menu-toggle=cart-menu]');        if (!cartBtn) return;        event.preventDefault();        cartBtn.click();      ">      Skip to cart    </a><svg style="display:none"><defs><g id="account"><desc id="login_desc">Click to login to your Account</desc><circle role="presentation" cx="10" cy="5" r="4"></circle><path stroke-linecap="round" d="M18.986 21.25s.163-9.14-9.138-9.14S.66 21.25.66 21.25"></path></g><g id="arrow-right" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"><g transform="translate(-1395.000000, -2972.000000)" stroke="#ff5200" class="icon-stroke"><g transform="translate(1245.000000, 1810.500000)"><g transform="translate(75.500000, 1143.000000)"><g transform="translate(75.000000, 19.600000)"><line x1="0" y1="5.33333333" x2="13.3333333" y2="5.33333333"></line><polyline points="7.98547161 1.03582589e-14 13.3333333 5.33333333 7.98547161 10.7288977"></polyline></g></g></g></g></g><g id="cart" fill="none" fill-rule="evenodd" stroke="#000" class="icon-stroke"><path stroke-linecap="round" d="M.595.763h5.869L9.79 13.866h12.524l2.39-10.431h-14.39"></path><circle cx="12" cy="19" r="2"></circle><circle cx="20" cy="19" r="2"></circle></g><g id="chevron-down" aria-hidden="true" class="icon-stroke" focusable="false" role="presentation"><path d="M80.93 271.76A35 35 0 0 1 140.68 247l189.74 189.75L520.16 247a35 35 0 1 1 49.5 49.5L355.17 511a35 35 0 0 1-49.5 0L91.18 296.5a34.89 34.89 0 0 1-10.25-24.74z" transform="translate(-80.93 -236.76)"></path></g><g id="close" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g transform="translate(-1444.000000, -1829.000000)"><g transform="translate(1245.000000, 1810.500000)"><g transform="translate(185.000000, 5.000000)"><rect x="0" y="0" width="50" height="50"></rect><g transform="translate(14.000000, 14.000000)" stroke="#000000" class="icon-stroke"><path d transform="translate(10.960155, 10.960155) rotate(-45.000000) translate(-10.960155, -10.960155) "></path><path d transform="translate(10.960155, 10.960155) rotate(45.000000) translate(-10.960155, -10.960155) "></path></g></g></g></g></g><g id="locator" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g transform="translate(-2645.000000, -508.000000)" stroke="#000000"><g transform="translate(2631.000000, 211.000000)"><g transform="translate(0.000000, 223.000000)"><g transform="translate(11.000000, 61.000000)"><g transform="translate(0.000000, 13.000000)"><path d="M10.5,0.5 C12.4329966,0.5 14.1829966,1.28350169 15.4497475,2.55025253 C16.7164983,3.81700338 17.5,5.56700338 17.5,7.5 C17.5,10.1417182 15.1389351,15.3162066 10.4993669,23.0319153 C5.86076801,15.3155559 3.5,10.141552 3.5,7.5 C3.5,5.56700338 4.28350169,3.81700338 5.55025253,2.55025253 C6.81700338,1.28350169 8.56700338,0.5 10.5,0.5 Z"></path><circle cx="10.5" cy="8.5" r="3"></circle></g></g></g></g></g></g><g id="logo" fill="#fff"><path xmlns="http://www.w3.org/2000/svg" fill="#ff5100" d="M0 0h110v61H0z"/><path d="M110 61.001H0V-.001h110V61zM1.272 59.729h107.456V1.271H1.272v58.458zm15.786-33.231c3.795 0 3.795-9.196 0-9.196h-1.792l.026 6.772c0 .922 0 2.424 1.765 2.424m-.659-10.514c2.767 0 2.767-5.296 0-5.296-1.002 0-1.028.685-1.028 1.081l-.106 4.216h1.133zM9.417 9.371h7.641c7.483 0 8.696 5.586 3.637 7.378 6.456 2.608 5.85 11.067-3.637 11.067H9.417c.843-3.004.711-15.916 0-18.445m60.942 18.445c.711-2.635.843-15.336 0-18.445h13.254l.026 6.272c-2.187-3.241-4.638-4.401-7.088-4.77-.184 1.607-.29 3.953-.316 6.377 1.318-.263 2.688-.896 3.768-2.293v5.876c-.896-1.238-2.372-1.897-3.795-2.239.026 2.951.132 5.876.343 7.72 2.451-.369 4.901-1.529 7.088-4.769l-.026 6.271H70.359z"/><path d="M41.695 27.816c.712-2.635.843-15.336 0-18.445h6.456c-.738 2.715-.738 12.649-.263 16.943 2.451-.369 4.901-1.529 7.088-4.769l-.026 6.271H41.695zm14.256 0c.712-2.635.843-15.336 0-18.445h6.456c-.738 2.715-.738 12.649-.263 16.943 2.451-.369 4.901-1.529 7.088-4.769l-.026 6.271H55.951zm29.847 23.693c.805-2.982.954-17.354 0-20.873h14.999l.03 7.097c-2.475-3.668-5.248-4.98-8.021-5.397-.209 1.819-.328 4.473-.358 7.216 1.491-.298 3.042-1.014 4.264-2.595v6.65c-1.014-1.402-2.684-2.147-4.294-2.535.03 4.473.269 8.886.686 10.436h-7.306zm-30.817-1.156c4.913 0 4.913-18.562 0-18.562-4.941 0-4.941 18.562 0 18.562m.001-20.463c12.799 0 12.799 22.364 0 22.364-12.856 0-12.856-22.364 0-22.364m20.285 20.463c4.914 0 4.914-18.562 0-18.562-4.94 0-4.94 18.562 0 18.562m.001-20.463c12.799 0 12.799 22.364 0 22.364-12.856 0-12.856-22.364 0-22.364M16.07 43.309h1.312c3.131 0 3.101-11.182 0-11.182-1.133 0-1.193.776-1.193 1.223l-.119 9.959zm2.058-12.673c9.422 0 10.705 14.164 0 14.164H16.07c-.06 4.861.268 5.04.715 6.709H9.48c.805-2.982.954-17.354 0-20.873h8.648z"/><path d="M35.07 32.127c-1.197 0-1.26.776-1.26 1.222l-.126 9.065c0 .388.567.895 1.386.895 3.307 0 3.276-11.182 0-11.182m-8.346 19.382c.85-2.982 1.008-17.354 0-20.873h9.134c8.031 0 10.457 9.244 5.134 12.792 1.071 4.115 2.362 7.127 3.622 8.081h-8.567c.346-1.193-.693-6.769-1.732-6.769-1.449 0-.535 5.755.126 6.769h-7.716zM85.326 9.371h16.179l.026 6.271c-1.239-2.239-3.215-3.715-4.98-4.532-.501 4.611-.343 14.387.29 16.706h-6.456c.632-2.319.791-12.332.264-16.89-1.844.817-4.005 2.319-5.349 4.716l.026-6.271zm18.846 21.288l-.236 1.114-.236-1.114h-.437v1.968h.222v-1.762h.059l.244 1.131h.297l.245-1.131h.058v1.762h.222v-1.968h-.438zm-2.773.205h.617v1.762h.216v-1.762h.62v-.205h-1.454v.205z"/><path d="M39.874 19.856c0 6.192-3.768 8.643-7.22 8.643-3.557 0-6.851-2.582-6.851-8.037 0-2.951-.184-9.565-.579-11.068h6.456c-.395 1.502-.606 8.143-.606 11.12 0 3.347 1.871 4.875 3.689 4.875 1.923 0 3.794-1.713 3.794-4.506 0-1.818-1.344-9.855-4.269-11.489h6.456c-.764 2.873-.869 9.697-.869 10.462"/></g><g id="search" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g transform="translate(-1439.000000, -1885.000000)" stroke="currentColor" class="icon-stroke"><g transform="translate(1245.000000, 1810.500000)"><g transform="translate(10.000000, 60.000000)"><g transform="translate(170.000000, 0.000000)"><path d="M27.8249069,28.20824 L35.2283026,35 M22.5716974,30 C26.8795185,30 30.3716974,26.6421356 30.3716974,22.5 C30.3716974,18.3578644 26.8795185,15 22.5716974,15 C18.2638764,15 14.7716974,18.3578644 14.7716974,22.5 C14.7716974,26.6421356 18.2638764,30 22.5716974,30 Z"></path></g></g></g></g></g><g id="show" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g transform="translate(-40.000000, -106.000000)" fill-rule="nonzero"><g transform="translate(40.500000, 105.000000)"><path d="M10,12.9988242 C13.1341491,12.9988242 16.2771105,11.2204934 19.4288843,7.66383174 L19.4288709,7.66381991 C19.7645181,7.28505437 19.7642745,6.71523748 19.4283037,6.33675905 C16.2692393,2.77800457 13.1264714,0.998627326 10,0.998627326 C6.86409244,0.998627326 3.71178992,2.9612251 0.543092453,6.88642065 L0.543070492,6.88640292 C0.223800205,7.28189612 0.251986138,7.85397056 0.608587403,8.21616378 C3.74780092,11.4046041 6.87827179,12.9988242 10,12.9988242 Z" fill="#4A4A4A"></path><circle fill="#FFFFFF" cx="10" cy="7" r="4"></circle><circle fill="#4A4A4A" cx="10" cy="7" r="2"></circle></g></g></g><g id="hide" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g transform="translate(-41.000000, -82.000000)" stroke="#000000"><g transform="translate(40.500000, 82.000000)"><path d="M10,1.49862733 C12.0748031,1.49862733 15.1490797,3.37616275 19.2475169,7.00056362 C15.148733,10.6223371 12.0746801,12.4988242 10,12.4988242 C7.92632129,12.4988242 4.85059123,10.8110962 0.753049415,7.54146003 C4.85233384,3.56568422 7.92420406,1.49862733 10,1.49862733 Z"></path><circle cx="10" cy="7" r="2.5"></circle><line x1="17.5" y1="0.5" x2="1.5" y2="13.5" stroke-linecap="square"></line></g></g></g><g id="subscribe-and-save"><defs><path d="M2.624,5.864 C2.624,6.16000148 2.71199912,6.40199906 2.888,6.59 C3.06400088,6.77800094 3.27999872,6.92599946 3.536,7.034 C3.7493344,7.12400045 4.03210988,7.22649965 4.38433263,7.34149979 L4.604,7.412 C5.17200284,7.58800088 5.63199824,7.7559992 5.984,7.916 C6.33600176,8.0760008 6.63599876,8.31399842 6.884,8.63 C7.13200124,8.94600158 7.256,9.3639974 7.256,9.884 C7.256,10.5320032 7.02400232,11.0659979 6.56,11.486 C6.09599768,11.9060021 5.47200392,12.1599996 4.688,12.248 L4.688,13.844 L3.812,13.844 L3.812,12.26 C3.25999724,12.2199998 2.72600258,12.0840012 2.21,11.852 C1.69399742,11.6199988 1.24000196,11.3200018 0.848,10.952 L1.364,9.956 C1.764002,10.348002 2.2139975,10.6499989 2.714,10.862 C3.2140025,11.0740011 3.69999764,11.18 4.172,11.18 C4.7320028,11.18 5.17399838,11.0700011 5.498,10.85 C5.82200162,10.6299989 5.984,10.3320019 5.984,9.956 C5.984,9.65999852 5.89600088,9.41600096 5.72,9.224 C5.54399912,9.03199904 5.32200134,8.88000056 5.054,8.768 C4.87533244,8.69333296 4.65488931,8.61333339 4.39266738,8.52800018 L3.968,8.396 C3.4079972,8.22799916 2.95200176,8.0640008 2.6,7.904 C2.24799824,7.7439992 1.95000122,7.50800156 1.706,7.196 C1.46199878,6.88399844 1.34,6.47200256 1.34,5.96 C1.34,5.34399692 1.56399776,4.83800198 2.012,4.442 C2.46000224,4.04599802 3.05999624,3.8080004 3.812,3.728 L3.812,2.276 L4.688,2.276 L4.688,3.716 C5.1280022,3.74800016 5.55599792,3.83599928 5.972,3.98 C6.38800208,4.12400072 6.75999836,4.30399892 7.088,4.52 L6.608,5.552 C6.21599804,5.30399876 5.8100021,5.11800062 5.39,4.994 C4.9699979,4.86999938 4.58400176,4.808 4.232,4.808 C3.74399756,4.808 3.35400146,4.90199906 3.062,5.09 C2.76999854,5.27800094 2.624,5.53599836 2.624,5.864 Z" id="subscribe-and-save-path-1"></path></defs><g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><g><g transform="translate(6.000000, 2.000000)" fill-rule="nonzero"><g><use fill="#000000" xlink:href="#subscribe-and-save-path-1"></use><use fill="#19A340" xlink:href="#subscribe-and-save-path-1"></use></g></g><circle stroke="#19A340" cx="10" cy="10" r="9.5"></circle><rect fill="#FFFFFF" fill-rule="nonzero" x="7" y="0" width="3" height="2"></rect><rect fill="#FFFFFF" fill-rule="nonzero" x="12" y="17" width="3" height="3"></rect><polyline stroke="#19A340" points="15.4628491 13.7455836 15.8208082 17.8379393 19.5489651 17.8379393"></polyline><polyline stroke="#19A340" transform="translate(4.043058, 3.046178) rotate(180.000000) translate(-4.043058, -3.046178) " points="1.99999998 1.00000032 2.35795906 5.092356 6.086116 5.092356"></polyline></g></g></g><g id="deals" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd"><defs><path d="M0 0h20v20H0z"/></defs><g><path fill="#ff5200" d="M8.43 20a2.972 2.972 0 0 1-2.117-.877L.876 13.686a2.993 2.993 0 0 1 0-4.23L9.453.875A2.973 2.973 0 0 1 11.57 0h5.438A2.996 2.996 0 0 1 20 2.992V8.43a2.972 2.972 0 0 1-.877 2.118l-8.576 8.576A2.973 2.973 0 0 1 8.43 20zm3.14-19a1.98 1.98 0 0 0-1.409.584l-8.578 8.578a1.993 1.993 0 0 0 0 2.817l5.438 5.437a1.992 1.992 0 0 0 2.817 0l8.578-8.578A1.98 1.98 0 0 0 19 8.429V2.992A1.994 1.994 0 0 0 17.008 1H11.57zm4.94 3.988a1.497 1.497 0 1 1 .002-2.994 1.497 1.497 0 0 1-.003 2.994zm0-1.993a.497.497 0 1 0 0 .998.497.497 0 0 0 0-1v.002z"/><path fill="#ff5200" d="M10.944 12.697c.77-.77.763-1.994.006-2.75L9.82 8.815c-.192-.19-.199-.466.013-.678l.552-.552c.219-.205.466-.212.665-.014l1.138 1.138c.19.191.198.439-.014.65l-.276.277 1.054 1.053.389-.389c.7-.7.678-1.866.007-2.538l-.304-.304.629-.63-.8-.799-.628.63-.297-.297a1.748 1.748 0 0 0-2.482.021l-.708.721c-.756.757-.791 1.966-.014 2.744l1.139 1.138c.19.191.205.46-.007.672l-.587.587c-.205.205-.46.205-.658.007l-1.124-1.124c-.191-.191-.205-.46.007-.672l.297-.297-1.054-1.054-.41.41c-.686.686-.707 1.853-.007 2.553l.248.248-.686.685.799.8.686-.686.36.36c.658.658 1.726.707 2.454-.021l.742-.757z"/></g></g><g id="quiz" stroke="#ff5200"><path fill="#ff5200" d="M12.4 15.1H7.2c0-.3 0-.7-.1-1-.2-1.1-.7-2.1-1.2-3.2L4.6 8.3c-1-2.7 0-5.6 2.5-7 3.3-1.9 7.7.2 8.2 4 .2 1.4-.1 2.7-.7 4l-1.5 2.9c-.4.8-.6 1.8-.6 2.7-.1.1-.1.1-.1.2zm-.6-.7c.1-1.4.7-2.6 1.3-3.8.5-1 1.1-2 1.4-3 .6-2.1-.2-4.4-2.1-5.5-2-1.2-4.4-1-6 .6-1.5 1.5-1.8 3.4-1.1 5.4l1.3 2.6c.6 1.1 1.1 2.3 1.3 3.6 0 .2.1.2.2.2h1.8c.6-.1 1.2-.1 1.9-.1zm-4.6 1.4h5.3v.8 1.8c0 .2 0 .3-.2.4-.7.4-1.3.7-2.1.8-.7.1-1.3-.1-1.9-.3a4.67 4.67 0 0 1-1-.5c-.1 0-.1-.1-.1-.2v-2.8zm.7.7v.9c0 .8 0 .8.7 1.1.6.3 1.3.4 2 .2.3-.1.7-.3 1-.4.1 0 .1-.1.1-.2v-1.6H7.9zM1.7 6.7V6h1.7v.7H1.7zm.6-4.3c.1-.2.2-.4.4-.6l1.4.8c-.1.3-.2.5-.3.7l-1.5-.9zm.2 8.1l-.3-.6c.5-.3 1-.5 1.5-.8l.3.6c-.5.3-1 .6-1.5.8zm13.4-7.3l-.3-.6c.5-.3 1-.5 1.5-.8l.3.6c-.5.3-1 .5-1.5.8zm.8 3.5c0-.2 0-.4-.1-.7l1.7-.2c0 .2 0 .4.1.7l-1.7.2zm-.9 2.9l.3-.6c.5.2 1 .5 1.5.7l-.3.6c-.5-.2-1-.5-1.5-.7z" stroke-width=".396" stroke-miterlimit="10"/><path fill="#ff5200" d="M9.3 8.4c0-.3.1-.5.2-.7l1-1.3c.1-.1.1-.1.1-.2v-.4c0-.2-.2-.4-.4-.4h-1c-.2.1-.4.2-.4.4v.5h-.9v-.4c0-.7.6-1.4 1.3-1.4h1.1c.7 0 1.3.7 1.3 1.3v.3c0 .3-.1.5-.2.7l-1 1.3c0 .1-.1.1-.1.2v.3h-1v-.2h0zm0 1.3h1v1.1h-1V9.7z" stroke-width=".346" stroke-miterlimit="10"/></g></defs></svg><!-- BEGIN sections: header-group -->
<div id="shopify-section-sections--22082463170595__notification-bar" class="shopify-section shopify-section-group-header-group"><style>
      #shopify-section-sections--22082463170595__notification-bar .notification-bar {
          --hover-color: #f04c00;
        }

      #shopify-section-sections--22082463170595__notification-bar .notification-bar__close::after,
      #shopify-section-sections--22082463170595__notification-bar .notification-bar__close::before {
        background-color: var(--nb-controls-color);
      }

      #shopify-section-sections--22082463170595__notification-bar .notification-bar__arrow {
        color: var(--nb-controls-color);
      }

      #shopify-section-sections--22082463170595__notification-bar .notification-bar__close:hover::after,
      #shopify-section-sections--22082463170595__notification-bar .notification-bar__close:hover::before,
      #shopify-section-sections--22082463170595__notification-bar .notification-bar__close:focus::after,
      #shopify-section-sections--22082463170595__notification-bar .notification-bar__close:focus::before {
        background-color: var(--hover-color);
      }

      #shopify-section-sections--22082463170595__notification-bar .notification-bar__arrow:hover,
      #shopify-section-sections--22082463170595__notification-bar .notification-bar__arrow:focus {
        color: var(--hover-color);
      }
    </style>

    <div
      class="notification-bar notification-bar--slider"
      data-notification-bar="container"
      style="--nb-controls-color: #ffffff;"
    ><div class="notification-bar__swiper swiper" data-nb-swiper style="--nb-content-width: 800px;">
          <div
            class="notification-bar__nav-wrap"
          >
            <button
              type="button"
              class="notification-bar__arrow notification-bar__arrow--prev"
              aria-label="Previous announcement"
            >
              <svg
                class="icon icon-chevron-left"
                xmlns="http://www.w3.org/2000/svg"
                width="11"
                height="19"
                viewBox="0 0 11 19"
              >
                <path fill="none" fill-rule="evenodd" stroke="currentColor" d="M9.857 1L1 9.857l8.457 8.457"></path>
              </svg>
              <span class="visually-hidden">Previous</span>
            </button>
            <button
              type="button"
              class="notification-bar__arrow notification-bar__arrow--next"
              aria-label="Next announcement"
            >
              <svg
                class="icon icon-chevron-right"
                xmlns="http://www.w3.org/2000/svg"
                width="11"
                height="19"
                viewBox="0 0 11 19"
              >
                <path fill="none" fill-rule="evenodd" stroke="currentColor" d="M1 18.314l8.857-8.857L1.401 1"></path>
              </svg>
              <span class="visually-hidden">Next</span>
            </button>
          </div>
          <div class="swiper-wrapper"><div
          class="notification-bar__slide swiper-slide"
          style="background-color: #eb751c; font-weight: 700;"
          data-controls-color="#ffffff"
          
        ><div class="notification-bar__slide-inner "><a
                
                  href="/products/enhanced-creamer-pumpkin-spice-14-8-oz"
                
                class="notification-bar__message"
              >
                <span class="nb-txt" style="color: #ffffff;">Pumpkin Spice Creamer is back—sold out 3 years in a row</span><span class="notification-bar__cta light">
                    Don't Miss It
                  </span></a></div></div><div
          class="notification-bar__slide swiper-slide"
          style="background-color: #e2c8b6; font-weight: 700;"
          data-controls-color="#333333"
          
        ><div class="notification-bar__slide-inner "><a
                
                  href="/collections/coffee"
                
                class="notification-bar__message"
              >
                <span class="nb-txt" style="color: #333333;">500 million+ cups of coffee sold worldwide!<span
                      class="nb-mobile-cta hide-xs-up"
                      
                        style="color: #ffffff;"
                      
                    >
                      <svg
                        class="icon icon-cta-arrow"
                        width="15"
                        height="13"
                        viewBox="0 0 15 13"
                        fill="none"
                        xmlns="http://www.w3.org/2000/svg"
                        aria-hidden="true"
                      >
                        <path d="M0 6.47095H13" stroke="currentColor" stroke-width="2"/><path d="M7.78589 1.5L13.0001 6.471L7.78589 11.5" stroke="currentColor" stroke-width="2"/>
                      </svg>
                    </span></span><span class="notification-bar__cta default hide-xs">
                    Join the Millions
                  </span></a></div></div></div>
        </div><button type="button" class="notification-bar__close" data-notification-bar="close">
        <span class="visually-hidden">Close Notification</span>
      </button>
    </div><script>
        (function() {
          function initNbSwiper() {
            var el = document.querySelector('[data-nb-swiper]');
            if (!el || typeof Swiper === 'undefined') return;
            var section = el.closest('[data-notification-bar="container"]');
            var prevBtn = section ? section.querySelector('.notification-bar__arrow--prev') : null;
            var nextBtn = section ? section.querySelector('.notification-bar__arrow--next') : null;
            function syncControlsColor(swiper) {
              if (!section) return;
              var slide = swiper.slides[swiper.activeIndex];
              var color = slide && slide.getAttribute('data-controls-color');
              if (color) section.style.setProperty('--nb-controls-color', color);
            }
            new Swiper(el, {
              slidesPerView: 1,
              loop: true,
              navigation: {
                prevEl: prevBtn,
                nextEl: nextBtn
              },
              on: {
                init: syncControlsColor,
                slideChange: syncControlsColor
              },autoplay: {
                delay: 5000,
                disableOnInteraction: false,
                pauseOnMouseEnter: true
              },a11y: {
                enabled: true,
                prevSlideMessage: 'Previous announcement',
                nextSlideMessage: 'Next announcement'
              }
            });
          }
          document.addEventListener('DOMContentLoaded', initNbSwiper);
        })();
      </script><script>
      (function () {
        function initNbCountdowns() {
          document.querySelectorAll('[data-nb-countdown]').forEach(function (el) {
            var endDate = el.getAttribute('data-end-date');
            if (!endDate) return;
            var timeEl = el.querySelector('.nb-countdown__time');
            var dayEl = el.querySelector('.nb-countdown__day');
            var hourEl = el.querySelector('.nb-countdown__hour');
            var minEl = el.querySelector('.nb-countdown__minute');
            var secEl = el.querySelector('.nb-countdown__second');
            var expEl = el.querySelector('.nb-countdown__expired');
            var end = new Date(endDate).getTime();
            var timer = setInterval(function () {
              var diff = end - Date.now();
              if (diff < 0) {
                clearInterval(timer);
                if (timeEl) timeEl.style.display = 'none';
                if (expEl) expEl.style.display = 'block';
                return;
              }
              var d = ('0' + Math.floor(diff / 86400000)).slice(-2);
              var h = ('0' + Math.floor((diff % 86400000) / 3600000)).slice(-2);
              var m = ('0' + Math.floor((diff % 3600000) / 60000)).slice(-2);
              var s = ('0' + Math.floor((diff % 60000) / 1000)).slice(-2);
              if (dayEl) dayEl.innerHTML = d;
              if (hourEl) hourEl.innerHTML = h;
              if (minEl) minEl.innerHTML = m;
              if (secEl) secEl.innerHTML = s;
              if (timeEl) timeEl.style.opacity = '1';
              if (expEl) expEl.style.display = 'none';
            }, 500);
          });
        }
        if (document.readyState === 'loading') {
          document.addEventListener('DOMContentLoaded', initNbCountdowns);
        } else {
          initNbCountdowns();
        }
      })();
    </script>
</div>
<!-- END sections: header-group -->
    <div class="header-group-sticky">
      <!-- BEGIN sections: header-group-sticky -->
<div id="shopify-section-sections--22082474934307__header" class="shopify-section shopify-section-group-header-group-sticky"><style id="header-css">:root{--border-color:#e2c8b6;--breadcrumbs-padding-top:20px; /* @POST-DEPLOY-UPDATE 2 of 2:after nav-redesign gets merged into master, remove this */--header-height:60px;--header-height-scrolled:var(--header-top-height);--header-icon-account:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMDAgMjAwIiBmaWxsPSIjMzMzIiB4bWxuczp2PSJodHRwczovL3ZlY3RhLmlvL25hbm8iPjxwYXRoIGQ9Ik05Mi4xMiA5OC4zN2MtMjQuNDcgMC00NC4zNy0xOS44NC00NC4zNy00NC4yM1M2Ny42NSA5LjkgOTIuMTIgOS45czQ0LjM3IDE5Ljg0IDQ0LjM3IDQ0LjIzLTE5LjkxIDQ0LjIzLTQ0LjM3IDQ0LjIzem0wLTc4LjQ3Yy0xOC45NSAwLTM0LjM3IDE1LjM2LTM0LjM3IDM0LjIzczE1LjQyIDM0LjIzIDM0LjM3IDM0LjIzUzEyNi40OSA3MyAxMjYuNDkgNTQuMTMgMTExLjA3IDE5LjkgOTIuMTIgMTkuOXptNzYuMzcgMTcwLjJjLTIuNzYgMC01LTIuMjQtNS01IDAtMzkuMzUtMzIuMDItNzEuMzctNzEuMzctNzEuMzdzLTcxLjM3IDMyLjAxLTcxLjM3IDcxLjM3YzAgMi43Ni0yLjI0IDUtNSA1cy01LTIuMjQtNS01YzAtNDQuODcgMzYuNS04MS4zNyA4MS4zNy04MS4zN3M4MS4zNyAzNi41IDgxLjM3IDgxLjM3YzAgMi43Ni0yLjI0IDUtNSA1em0yMC43Ni04OS4yNmMwIDIuNzYtMi4yNCA1LTUgNWgtMTQuMDN2MTMuOGMwIDIuNzYtMi4yNCA1LTUgNXMtNS0yLjI0LTUtNXYtMTMuOGgtMTQuMDRjLTIuNzYgMC01LTIuMjQtNS01czIuMjQtNSA1LTVoMTQuMDR2LTEzLjhjMC0yLjc2IDIuMjQtNSA1LTVzNSAyLjI0IDUgNXYxMy44aDE0LjAzYzIuNzYgMCA1IDIuMjMgNSA1eiIvPjwvc3ZnPg==");--header-icon-account-hover:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMDAgMjAwIiBmaWxsPSIjRkY1MjAwIiB4bWxuczp2PSJodHRwczovL3ZlY3RhLmlvL25hbm8iPjxwYXRoIGQ9Ik05Mi4xMiA5OC4zN2MtMjQuNDcgMC00NC4zNy0xOS44NC00NC4zNy00NC4yM1M2Ny42NSA5LjkgOTIuMTIgOS45czQ0LjM3IDE5Ljg0IDQ0LjM3IDQ0LjIzLTE5LjkxIDQ0LjIzLTQ0LjM3IDQ0LjIzem0wLTc4LjQ3Yy0xOC45NSAwLTM0LjM3IDE1LjM2LTM0LjM3IDM0LjIzczE1LjQyIDM0LjIzIDM0LjM3IDM0LjIzUzEyNi40OSA3MyAxMjYuNDkgNTQuMTMgMTExLjA3IDE5LjkgOTIuMTIgMTkuOXptNzYuMzcgMTcwLjJjLTIuNzYgMC01LTIuMjQtNS01IDAtMzkuMzUtMzIuMDItNzEuMzctNzEuMzctNzEuMzdzLTcxLjM3IDMyLjAxLTcxLjM3IDcxLjM3YzAgMi43Ni0yLjI0IDUtNSA1cy01LTIuMjQtNS01YzAtNDQuODcgMzYuNS04MS4zNyA4MS4zNy04MS4zN3M4MS4zNyAzNi41IDgxLjM3IDgxLjM3YzAgMi43Ni0yLjI0IDUtNSA1em0yMC43Ni04OS4yNmMwIDIuNzYtMi4yNCA1LTUgNWgtMTQuMDN2MTMuOGMwIDIuNzYtMi4yNCA1LTUgNXMtNS0yLjI0LTUtNXYtMTMuOGgtMTQuMDRjLTIuNzYgMC01LTIuMjQtNS01czIuMjQtNSA1LTVoMTQuMDR2LTEzLjhjMC0yLjc2IDIuMjQtNSA1LTVzNSAyLjI0IDUgNXYxMy44aDE0LjAzYzIuNzYgMCA1IDIuMjMgNSA1eiIvPjwvc3ZnPg==");--header-icon-arrow-right:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTEiIHZpZXdCb3g9IjAgMCAxMiAxMSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsaXAtcGF0aD0idXJsKCNwcHduejAyZ2hhKSIgc3Ryb2tlPSIjMzMzIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgIDxwYXRoIGQ9Ik0uNCA1LjU4OWg5LjUzNE02LjExIDEuOTQ0bDMuODIzIDMuNjQ1TDYuMTEgOS4yNzciLz4KICAgIDwvZz4KICAgIDxkZWZzPgogICAgICAgIDxjbGlwUGF0aCBpZD0icHB3bnowMmdoYSI+CiAgICAgICAgICAgIDxwYXRoIGZpbGw9IiNmZmYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC40IC44NDQpIiBkPSJNMCAwaDExdjkuNTMzSDB6Ii8+CiAgICAgICAgPC9jbGlwUGF0aD4KICAgIDwvZGVmcz4KPC9zdmc+Cg==");--header-icon-arrow-right-hover:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTEiIHZpZXdCb3g9IjAgMCAxMiAxMSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxnIGNsaXAtcGF0aD0idXJsKCNwcHduejAyZ2hhKSIgc3Ryb2tlPSIjZmY1MjAwIiBzdHJva2Utd2lkdGg9IjIiPgogICAgICAgIDxwYXRoIGQ9Ik0uNCA1LjU4OWg5LjUzNE02LjExIDEuOTQ0bDMuODIzIDMuNjQ1TDYuMTEgOS4yNzciLz4KICAgIDwvZz4KICAgIDxkZWZzPgogICAgICAgIDxjbGlwUGF0aCBpZD0icHB3bnowMmdoYSI+CiAgICAgICAgICAgIDxwYXRoIGZpbGw9IiNmZmYiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC40IC44NDQpIiBkPSJNMCAwaDExdjkuNTMzSDB6Ii8+CiAgICAgICAgPC9jbGlwUGF0aD4KICAgIDwvZGVmcz4KPC9zdmc+Cg==");--header-icon-back:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MCA1MCIgZm9jdXNhYmxlPSJmYWxzZSIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIiBmaWxsPSJub25lIj4KICA8cGF0aCBkPSJNMjMuODc1IDE4LjMzMyAxNi4zNzUgMjVsNy41IDYuNjY3TTM0LjM3NSAyNWgtMTgiIHN0cm9rZT0iIzMzMyIvPgo8L3N2Zz4=');--header-icon-cart:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMDAgMjAwIiB4bWxuczp2PSJodHRwczovL3ZlY3RhLmlvL25hbm8iPjxwYXRoIGQ9Im01OS45OCwxMjIuMDZoMTA0LjUyYzIuMTMsMCw0LjAyLTEuMzUsNC43Mi0zLjM2bDI4LjM3LTgxLjc0Yy41My0xLjUzLjI5LTMuMjItLjY1LTQuNTRzLTIuNDUtMi4xLTQuMDctMi4xSDM1LjMybC0zLjUtMTAuMDljLS43LTIuMDItMi42LTMuMzYtNC43My0zLjM2SDcuMTNjLTIuNzYsMC01LDIuMjMtNSw1czIuMjQsNSw1LDVoMTYuNDFsMy4wOCw4Ljg2di4wMmwyNi44Niw3Ny40cy0uMDkuMDMtLjE0LjA1Yy04LjEsMi44Mi0xMy45MywxMC41My0xMy45MywxOS41N3YuMTljMCw5LjQsNi4yOSwxNy4zNiwxNC44OSwxOS44OC0uNjEsMi4wOC0uOTMsNC4yOC0uOTMsNi41NSwwLDEzLjA5LDEwLjY1LDIzLjc0LDIzLjc0LDIzLjc0czIzLjc0LTEwLjY1LDIzLjc0LTIzLjc0YzAtMS45Ny0uMjQtMy44OC0uNy01LjcxaDMwLjAxYy0uNDYsMS44My0uNywzLjc0LS43LDUuNzEsMCwxMy4wOSwxMC42NSwyMy43NCwyMy43NCwyMy43NHMyMy43My0xMC42NSwyMy43My0yMy43NC0xMC42NC0yMy43NC0yMy43My0yMy43NGMtNy4wNywwLTEzLjQzLDMuMTEtMTcuNzgsOC4wM2gtNDAuNTNjLTQuMzUtNC45Mi0xMC43MS04LjAzLTE3Ljc4LTguMDNzLTEzLjQxLDMuMS0xNy43NSw4Yy01LjU1LS40LTkuOTUtNS4wNC05Ljk1LTEwLjY5di0uMTljMC01Ljg2LDQuNzMtMTAuNjMsMTAuNTctMTAuNzFabS0yMS4zNS04MS43NGgxNDcuMjFsLTI0LjksNzEuNzRINjMuNTNsLTI0LjktNzEuNzRabTExNC41NywxMDUuMzNjNy41NywwLDEzLjczLDYuMTYsMTMuNzMsMTMuNzRzLTYuMTYsMTMuNzQtMTMuNzMsMTMuNzQtMTMuNzQtNi4xNy0xMy43NC0xMy43NCw2LjE2LTEzLjc0LDEzLjc0LTEzLjc0Wm0tNzYuMDksMGM3LjU4LDAsMTMuNzQsNi4xNiwxMy43NCwxMy43NHMtNi4xNiwxMy43NC0xMy43NCwxMy43NC0xMy43NC02LjE3LTEzLjc0LTEzLjc0LDYuMTctMTMuNzQsMTMuNzQtMTMuNzRaIiBmaWxsPSIjMzMzIi8+PC9zdmc+");--header-icon-cart-hover:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMDAgMjAwIiB4bWxuczp2PSJodHRwczovL3ZlY3RhLmlvL25hbm8iPjxwYXRoIGQ9Im01OS45OCwxMjIuMDZoMTA0LjUyYzIuMTMsMCw0LjAyLTEuMzUsNC43Mi0zLjM2bDI4LjM3LTgxLjc0Yy41My0xLjUzLjI5LTMuMjItLjY1LTQuNTRzLTIuNDUtMi4xLTQuMDctMi4xSDM1LjMybC0zLjUtMTAuMDljLS43LTIuMDItMi42LTMuMzYtNC43My0zLjM2SDcuMTNjLTIuNzYsMC01LDIuMjMtNSw1czIuMjQsNSw1LDVoMTYuNDFsMy4wOCw4Ljg2di4wMmwyNi44Niw3Ny40cy0uMDkuMDMtLjE0LjA1Yy04LjEsMi44Mi0xMy45MywxMC41My0xMy45MywxOS41N3YuMTljMCw5LjQsNi4yOSwxNy4zNiwxNC44OSwxOS44OC0uNjEsMi4wOC0uOTMsNC4yOC0uOTMsNi41NSwwLDEzLjA5LDEwLjY1LDIzLjc0LDIzLjc0LDIzLjc0czIzLjc0LTEwLjY1LDIzLjc0LTIzLjc0YzAtMS45Ny0uMjQtMy44OC0uNy01LjcxaDMwLjAxYy0uNDYsMS44My0uNywzLjc0LS43LDUuNzEsMCwxMy4wOSwxMC42NSwyMy43NCwyMy43NCwyMy43NHMyMy43My0xMC42NSwyMy43My0yMy43NC0xMC42NC0yMy43NC0yMy43My0yMy43NGMtNy4wNywwLTEzLjQzLDMuMTEtMTcuNzgsOC4wM2gtNDAuNTNjLTQuMzUtNC45Mi0xMC43MS04LjAzLTE3Ljc4LTguMDNzLTEzLjQxLDMuMS0xNy43NSw4Yy01LjU1LS40LTkuOTUtNS4wNC05Ljk1LTEwLjY5di0uMTljMC01Ljg2LDQuNzMtMTAuNjMsMTAuNTctMTAuNzFabS0yMS4zNS04MS43NGgxNDcuMjFsLTI0LjksNzEuNzRINjMuNTNsLTI0LjktNzEuNzRabTExNC41NywxMDUuMzNjNy41NywwLDEzLjczLDYuMTYsMTMuNzMsMTMuNzRzLTYuMTYsMTMuNzQtMTMuNzMsMTMuNzQtMTMuNzQtNi4xNy0xMy43NC0xMy43NCw2LjE2LTEzLjc0LDEzLjc0LTEzLjc0Wm0tNzYuMDksMGM3LjU4LDAsMTMuNzQsNi4xNiwxMy43NCwxMy43NHMtNi4xNiwxMy43NC0xMy43NCwxMy43NC0xMy43NC02LjE3LTEzLjc0LTEzLjc0LDYuMTctMTMuNzQsMTMuNzQtMTMuNzRaIiBmaWxsPSIjRkY1MjAwIi8+PC9zdmc+");--header-icon-chevron-down:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OTguOTggMjg0LjQ5IiBmb2N1c2FibGU9ImZhbHNlIiBzaGFwZS1yZW5kZXJpbmc9Imdlb21ldHJpY1ByZWNpc2lvbiIgZmlsbD0iI2ZmZiI+CiAgPHBhdGggZD0iTTgwLjkzIDI3MS43NkEzNSAzNSAwIDAgMSAxNDAuNjggMjQ3bDE4OS43NCAxODkuNzVMNTIwLjE2IDI0N2EzNSAzNSAwIDEgMSA0OS41IDQ5LjVMMzU1LjE3IDUxMWEzNSAzNSAwIDAgMS00OS41IDBMOTEuMTggMjk2LjVhMzQuODkgMzQuODkgMCAwIDEtMTAuMjUtMjQuNzR6IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtODAuOTMgLTIzNi43NikiPjwvcGF0aD4KPC9zdmc+');--header-icon-logo:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iYSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNDUuOTUgMTkxLjg1Ij4KICA8ZGVmcz4KICAgIDxzdHlsZT4KICAgICAgLmIsIC5jIHsKICAgICAgICBmaWxsOiBub25lOwogICAgICB9CgogICAgICAuYyB7CiAgICAgICAgc3Ryb2tlOiAjZmZmOwogICAgICAgIHN0cm9rZS1saW5lY2FwOiByb3VuZDsKICAgICAgICBzdHJva2Utd2lkdGg6IDRweDsKICAgICAgfQoKICAgICAgLmQgewogICAgICAgIGZpbGw6ICNmZjUxMDA7CiAgICAgIH0KCiAgICAgIC5lIHsKICAgICAgICBmaWxsOiAjZmZmOwogICAgICB9CiAgICA8L3N0eWxlPgogIDwvZGVmcz4KICA8cmVjdCBjbGFzcz0iZCIgeD0iMiIgeT0iMiIgd2lkdGg9IjM0MS45NSIgaGVpZ2h0PSIxODcuODUiLz4KICA8cmVjdCBjbGFzcz0iYyIgeD0iMiIgeT0iMiIgd2lkdGg9IjM0MS45NSIgaGVpZ2h0PSIxODcuODUiLz4KICA8cGF0aCBjbGFzcz0iZSIgZD0iTTUzLjY1LDgzLjM0YzExLjkzLDAsMTEuOTMtMjguOTIsMC0yOC45MmgtNS42M2wuMDgsMjEuM2MwLDIuOSwwLDcuNjIsNS41NSw3LjYyTTUxLjU4LDUwLjI3YzguNywwLDguNy0xNi42NiwwLTE2LjY2LTMuMTUsMC0zLjIzLDIuMTUtMy4yMywzLjRsLS4zMywxMy4yNmgzLjU2Wk0yOS42MSwyOS40N2gyNC4wM2MyMy41MywwLDI3LjM1LDE3LjU3LDExLjQ0LDIzLjIxLDIwLjMsOC4yLDE4LjQsMzQuODEtMTEuNDQsMzQuODFoLTI0LjAzYzIuNjUtOS40NSwyLjI0LTUwLjA1LDAtNTguMDEiLz4KICA8cGF0aCBjbGFzcz0iZSIgZD0iTTIyMS4yOCw4Ny40OGMyLjI0LTguMjksMi42NS00OC4yMywwLTU4LjAxaDQxLjY4bC4wOCwxOS43MmMtNi44OC0xMC4xOS0xNC41OS0xMy44NC0yMi4yOS0xNS0uNTgsNS4wNS0uOTEsMTIuNDMtLjk5LDIwLjA1LDQuMTQtLjgzLDguNDUtMi44MiwxMS44NS03LjIxdjE4LjQ4Yy0yLjgyLTMuODktNy40Ni01Ljk3LTExLjkzLTcuMDQuMDgsOS4yOC40MiwxOC40OCwxLjA4LDI0LjI4LDcuNzEtMS4xNiwxNS40MS00LjgxLDIyLjI5LTE1bC0uMDgsMTkuNzJoLTQxLjY4WiIvPgogIDxwYXRoIGNsYXNzPSJlIiBkPSJNMTMxLjEzLDg3LjQ4YzIuMjQtOC4yOSwyLjY1LTQ4LjIzLDAtNTguMDFoMjAuM2MtMi4zMiw4LjU0LTIuMzIsMzkuNzgtLjgzLDUzLjI5LDcuNzEtMS4xNiwxNS40MS00LjgxLDIyLjI5LTE1bC0uMDgsMTkuNzJoLTQxLjY4WiIvPgogIDxwYXRoIGNsYXNzPSJlIiBkPSJNMTc1Ljk2LDg3LjQ4YzIuMjQtOC4yOSwyLjY1LTQ4LjIzLDAtNTguMDFoMjAuM2MtMi4zMiw4LjU0LTIuMzIsMzkuNzgtLjgzLDUzLjI5LDcuNzEtMS4xNiwxNS40MS00LjgxLDIyLjI5LTE1bC0uMDgsMTkuNzJoLTQxLjY4WiIvPgogIDxwYXRoIGNsYXNzPSJlIiBkPSJNMjY5LjgzLDE2MmMyLjUzLTkuMzgsMy01NC41OCwwLTY1LjY0aDQ3LjE3bC4wOSwyMi4zMmMtNy43OC0xMS41My0xNi41MS0xNS42Ni0yNS4yMy0xNi45Ny0uNjYsNS43Mi0xLjAzLDE0LjA3LTEuMTMsMjIuNjksNC42OS0uOTQsOS41Ny0zLjE5LDEzLjQxLTguMTZ2MjAuOTFjLTMuMTktNC40MS04LjQ0LTYuNzUtMTMuNTEtNy45Ny4wOSwxNC4wNy44NSwyNy45NCwyLjE2LDMyLjgyaC0yMi45OFoiLz4KICA8cGF0aCBjbGFzcz0iZSIgZD0iTTE3Mi45MSwxNTguMzZjMTUuNDUsMCwxNS40NS01OC4zOCwwLTU4LjM4cy0xNS41NCw1OC4zOCwwLDU4LjM4TTE3Mi45MSw5NC4wMWM0MC4yNSwwLDQwLjI1LDcwLjMzLDAsNzAuMzNzLTQwLjQzLTcwLjMzLDAtNzAuMzMiLz4KICA8cGF0aCBjbGFzcz0iZSIgZD0iTTIzNi43MSwxNTguMzZjMTUuNDUsMCwxNS40NS01OC4zOCwwLTU4LjM4cy0xNS41NCw1OC4zOCwwLDU4LjM4TTIzNi43MSw5NC4wMWM0MC4yNSwwLDQwLjI1LDcwLjMzLDAsNzAuMzNzLTQwLjQzLTcwLjMzLDAtNzAuMzMiLz4KICA8cGF0aCBjbGFzcz0iZSIgZD0iTTUwLjU0LDEzNi4yMWg0LjEzYzkuODUsMCw5Ljc1LTM1LjE3LDAtMzUuMTctMy41NiwwLTMuNzUsMi40NC0zLjc1LDMuODVsLS4zOCwzMS4zMlpNNTcuMDEsOTYuMzVjMjkuNjMsMCwzMy42Nyw0NC41NCwwLDQ0LjU0aC02LjQ3Yy0uMTksMTUuMjkuODQsMTUuODUsMi4yNSwyMS4xaC0yMi45OGMyLjUzLTkuMzgsMy01NC41OCwwLTY1LjY0aDI3LjJaIi8+CiAgPHBhdGggY2xhc3M9ImUiIGQ9Ik0xMTAuMjksMTAxLjA0Yy0zLjc2LDAtMy45NiwyLjQ0LTMuOTYsMy44NGwtLjQsMjguNTFjMCwxLjIyLDEuNzgsMi44MSw0LjM2LDIuODEsMTAuNCwwLDEwLjMtMzUuMTcsMC0zNS4xN004NC4wNCwxNjJjMi42Ny05LjM4LDMuMTctNTQuNTgsMC02NS42NGgyOC43MmMyNS4yNiwwLDMyLjg5LDI5LjA3LDE2LjE1LDQwLjIzLDMuMzcsMTIuOTQsNy40MywyMi40MSwxMS4zOSwyNS40MWgtMjYuOTRjMS4wOS0zLjc1LTIuMTgtMjEuMjktNS40NS0yMS4yOS00LjU2LDAtMS42OCwxOC4xLjQsMjEuMjloLTI0LjI3WiIvPgogIDxwYXRoIGNsYXNzPSJlIiBkPSJNMjY4LjM1LDI5LjQ3aDUwLjg4bC4wOCwxOS43MmMtMy44OS03LjA0LTEwLjExLTExLjY4LTE1LjY2LTE0LjI1LTEuNTcsMTQuNS0xLjA4LDQ1LjI1LjkxLDUyLjU0aC0yMC4zYzEuOTktNy4yOSwyLjQ5LTM4Ljc4LjgzLTUzLjEyLTUuOCwyLjU3LTEyLjYsNy4yOS0xNi44MiwxNC44M2wuMDgtMTkuNzJaIi8+CiAgPHJlY3QgY2xhc3M9ImIiIHdpZHRoPSIzNDUuOTUiIGhlaWdodD0iMTkxLjg1Ii8+CiAgPHBhdGggY2xhc3M9ImUiIGQ9Ik0zMjcuNjEsOTYuNDJsLS43NCwzLjUtLjc0LTMuNWgtMS4zOHY2LjE5aC43di01LjU0aC4xOGwuNzcsMy41NmguOTNsLjc3LTMuNTZoLjE4djUuNTRoLjd2LTYuMTloLTEuMzhaTTMxOC44OSw5Ny4wN2gxLjk0djUuNTRoLjY4di01LjU0aDEuOTV2LS42NGgtNC41N3YuNjRaIi8+CiAgPHBhdGggY2xhc3M9ImUiIGQ9Ik0xMjUuNCw2Mi40NWMwLDE5LjQ3LTExLjg1LDI3LjE4LTIyLjcxLDI3LjE4cy0yMS41NS04LjEyLTIxLjU1LTI1LjI4YzAtOS4yOC0uNTgtMzAuMDgtMS44Mi0zNC44MWgyMC4zYy0xLjI0LDQuNzMtMS45MSwyNS42MS0xLjkxLDM0Ljk3LDAsMTAuNTIsNS44OCwxNS4zMywxMS42LDE1LjMzLDYuMDUsMCwxMS45My01LjM5LDExLjkzLTE0LjE3LDAtNS43Mi00LjIzLTMwLjk5LTEzLjQyLTM2LjEzaDIwLjNjLTIuNCw5LjAzLTIuNzMsMzAuNS0yLjczLDMyLjkiLz4KICA8cmVjdCBjbGFzcz0iYiIgd2lkdGg9IjM0NS45NSIgaGVpZ2h0PSIxOTEuODUiLz4KPC9zdmc+");--header-icon-menu:url('data:image/svg+xml;base64, PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIxNSIgdmlld0JveD0iMCAwIDIwIDE1Ij4KICA8cmVjdCBmaWxsPSIjMDAwIiBpZD0iTGluZV8zIiBkYXRhLW5hbWU9IkxpbmUgMyIgd2lkdGg9IjIwIiBoZWlnaHQ9IjEiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMTQpIi8+CiAgPHJlY3QgZmlsbD0iIzAwMCIgaWQ9IkxpbmVfMiIgZGF0YS1uYW1lPSJMaW5lIDIiIHdpZHRoPSIyMCIgaGVpZ2h0PSIxIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwIDcpIi8+CiAgPHJlY3QgZmlsbD0iIzAwMCIgaWQ9IkxpbmVfMSIgZGF0YS1uYW1lPSJMaW5lIDEiIHdpZHRoPSIyMCIgaGVpZ2h0PSIxIi8+Cjwvc3ZnPgo=');--header-icon-search:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMDAgMjAwIiB4bWxuczp2PSJodHRwczovL3ZlY3RhLmlvL25hbm8iPjxwYXRoIGQ9Ik0xODIuMzEgMTc1Ljk3bC03NC40Mi03NC4zOGM4LjQyLTkuNzggMTIuNjMtMjEuOTYgMTIuNjMtMzQuMTEgMC0xMy4zMy01LjA2LTI2LjY1LTE1LjE5LTM2Ljc4LTIwLjMxLTIwLjMtNTMuNC0yMC4yNS03My43Ny4xM2E1MS45NCA1MS45NCAwIDAgMC0xNS4zNCAzNi45Yy0uMDIgMTMuOTMgNS4zOCAyNy4wMyAxNS4yMiAzNi44NyAxMC4xMyAxMC4xMyAyMy40NSAxNS4xOSAzNi43OCAxNS4xOSAxMS40OCAwIDIyLjk3LTMuNzYgMzIuNDUtMTEuMjhsNzQuNTggNzQuNTNhNC45NSA0Ljk1IDAgMCAwIDMuNTMgMS40NyA0Ljk5IDQuOTkgMCAwIDAgMy41NC0xLjQ3YzEuOTUtMS45NSAxLjk1LTUuMTItLjAxLTcuMDd6TTM4LjUxIDk3LjUyQzMwLjU3IDg5LjU4IDI2LjIgNzkgMjYuMjIgNjcuNzRzNC40My0yMS44NiAxMi40MS0yOS44NCAxOS4xLTEyLjM5IDI5LjkyLTEyLjM5IDIxLjUyIDQuMDggMjkuNzEgMTIuMjdjMTYuNCAxNi40IDE2LjM1IDQzLjE1LS4xMiA1OS42Mi0xNi40NyAxNi40OC00My4yMiAxNi41My01OS42My4xMnoiIGZpbGw9IiMzMzMiLz48L3N2Zz4=");--header-icon-search-hover:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMDAgMjAwIiB4bWxuczp2PSJodHRwczovL3ZlY3RhLmlvL25hbm8iPjxwYXRoIGQ9Ik0xODIuMzEgMTc1Ljk3bC03NC40Mi03NC4zOGM4LjQyLTkuNzggMTIuNjMtMjEuOTYgMTIuNjMtMzQuMTEgMC0xMy4zMy01LjA2LTI2LjY1LTE1LjE5LTM2Ljc4LTIwLjMxLTIwLjMtNTMuNC0yMC4yNS03My43Ny4xM2E1MS45NCA1MS45NCAwIDAgMC0xNS4zNCAzNi45Yy0uMDIgMTMuOTMgNS4zOCAyNy4wMyAxNS4yMiAzNi44NyAxMC4xMyAxMC4xMyAyMy40NSAxNS4xOSAzNi43OCAxNS4xOSAxMS40OCAwIDIyLjk3LTMuNzYgMzIuNDUtMTEuMjhsNzQuNTggNzQuNTNhNC45NSA0Ljk1IDAgMCAwIDMuNTMgMS40NyA0Ljk5IDQuOTkgMCAwIDAgMy41NC0xLjQ3YzEuOTUtMS45NSAxLjk1LTUuMTItLjAxLTcuMDd6TTM4LjUxIDk3LjUyQzMwLjU3IDg5LjU4IDI2LjIgNzkgMjYuMjIgNjcuNzRzNC40My0yMS44NiAxMi40MS0yOS44NCAxOS4xLTEyLjM5IDI5LjkyLTEyLjM5IDIxLjUyIDQuMDggMjkuNzEgMTIuMjdjMTYuNCAxNi40IDE2LjM1IDQzLjE1LS4xMiA1OS42Mi0xNi40NyAxNi40OC00My4yMiAxNi41My01OS42My4xMnoiIGZpbGw9IiNGRjUyMDAiLz48L3N2Zz4=");--header-icon-sync:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgNTEyIDUxMiI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTM3MC43MiAxMzMuMjhDMzM5LjQ1OCAxMDQuMDA4IDI5OC44ODggODcuOTYyIDI1NS44NDggODhjLTc3LjQ1OC4wNjgtMTQ0LjMyOCA1My4xNzgtMTYyLjc5MSAxMjYuODVjLTEuMzQ0IDUuMzYzLTYuMTIyIDkuMTUtMTEuNjUxIDkuMTVIMjQuMTAzYy03LjQ5OCAwLTEzLjE5NC02LjgwNy0xMS44MDctMTQuMTc2QzMzLjkzMyA5NC45MjQgMTM0LjgxMyA4IDI1NiA4YzY2LjQ0OCAwIDEyNi43OTEgMjYuMTM2IDE3MS4zMTUgNjguNjg1TDQ2My4wMyA0MC45N0M0NzguMTQ5IDI1Ljg1MSA1MDQgMzYuNTU5IDUwNCA1Ny45NDFWMTkyYzAgMTMuMjU1LTEwLjc0NSAyNC0yNCAyNEgzNDUuOTQxYy0yMS4zODIgMC0zMi4wOS0yNS44NTEtMTYuOTcxLTQwLjk3MXpNMzIgMjk2aDEzNC4wNTljMjEuMzgyIDAgMzIuMDkgMjUuODUxIDE2Ljk3MSA0MC45NzFsLTQxLjc1IDQxLjc1YzMxLjI2MiAyOS4yNzMgNzEuODM1IDQ1LjMxOSAxMTQuODc2IDQ1LjI4Yzc3LjQxOC0uMDcgMTQ0LjMxNS01My4xNDQgMTYyLjc4Ny0xMjYuODQ5YzEuMzQ0LTUuMzYzIDYuMTIyLTkuMTUgMTEuNjUxLTkuMTVoNTcuMzA0YzcuNDk4IDAgMTMuMTk0IDYuODA3IDExLjgwNyAxNC4xNzZDNDc4LjA2NyA0MTcuMDc2IDM3Ny4xODcgNTA0IDI1NiA1MDRjLTY2LjQ0OCAwLTEyNi43OTEtMjYuMTM2LTE3MS4zMTUtNjguNjg1TDQ4Ljk3IDQ3MS4wM0MzMy44NTEgNDg2LjE0OSA4IDQ3NS40NDEgOCA0NTQuMDU5VjMyMGMwLTEzLjI1NSAxMC43NDUtMjQgMjQtMjQiLz48L3N2Zz4=");--header-icon-store:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNTAgMTUwIiBmaWxsPSIjMzMzIiB4bWxuczp2PSJodHRwczovL3ZlY3RhLmlvL25hbm8iPjxwYXRoIGQ9Ik03NSAxNDYuMTg1YTIuNzUgMi43NSAwIDAgMS0yLjM4Mi0xLjM3NUwzMy4xMDggNzYuMzc1Yy04Ljc0NC0xNS4xNDUtOC43NDQtMzMuMjI4IDAtNDguMzczUzU3LjUxMiAzLjgxNSA3NSAzLjgxNXMzMy4xNDggOS4wNDIgNDEuODkzIDI0LjE4NiA4Ljc0NCAzMy4yMjkgMCA0OC4zNzNMNzcuMzgyIDE0NC44MUEyLjc1IDIuNzUgMCAwIDEgNzUgMTQ2LjE4NXpNNzUgOS4zMTVjLTE1LjUgMC0yOS4zOCA4LjAxNC0zNy4xMjkgMjEuNDM2cy03Ljc1IDI5LjQ1MSAwIDQyLjg3M0w3NSAxMzcuOTM1bDM3LjEyOS02NC4zMTFjNy43NS0xMy40MjMgNy43NS0yOS40NTEgMC00Mi44NzNTOTAuNSA5LjMxNSA3NSA5LjMxNXoiLz48cGF0aCBkPSJNNzUgNjguMDM0Yy0xMi42MTQgMC0yMi44NzYtMTAuMjYyLTIyLjg3Ni0yMi44NzZTNjIuMzg2IDIyLjI4MSA3NSAyMi4yODFzMjIuODc2IDEwLjI2MiAyMi44NzYgMjIuODc3Uzg3LjYxNCA2OC4wMzQgNzUgNjguMDM0em0wLTQwLjI1M2ExNy40IDE3LjQgMCAwIDAtMTcuMzc2IDE3LjM3N0ExNy40IDE3LjQgMCAwIDAgNzUgNjIuNTM1YTE3LjQgMTcuNCAwIDAgMCAxNy4zNzYtMTcuMzc2QTE3LjQgMTcuNCAwIDAgMCA3NSAyNy43ODJ6Ii8+PC9zdmc+');--header-icon-store-hover:url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNTAgMTUwIiBmaWxsPSIjZjA0YzAwIiB4bWxuczp2PSJodHRwczovL3ZlY3RhLmlvL25hbm8iPjxwYXRoIGQ9Ik03NSAxNDYuMTg1YTIuNzUgMi43NSAwIDAgMS0yLjM4Mi0xLjM3NUwzMy4xMDggNzYuMzc1Yy04Ljc0NC0xNS4xNDUtOC43NDQtMzMuMjI4IDAtNDguMzczUzU3LjUxMiAzLjgxNSA3NSAzLjgxNXMzMy4xNDggOS4wNDIgNDEuODkzIDI0LjE4NiA4Ljc0NCAzMy4yMjkgMCA0OC4zNzNMNzcuMzgyIDE0NC44MUEyLjc1IDIuNzUgMCAwIDEgNzUgMTQ2LjE4NXpNNzUgOS4zMTVjLTE1LjUgMC0yOS4zOCA4LjAxNC0zNy4xMjkgMjEuNDM2cy03Ljc1IDI5LjQ1MSAwIDQyLjg3M0w3NSAxMzcuOTM1bDM3LjEyOS02NC4zMTFjNy43NS0xMy40MjMgNy43NS0yOS40NTEgMC00Mi44NzNTOTAuNSA5LjMxNSA3NSA5LjMxNXoiLz48cGF0aCBkPSJNNzUgNjguMDM0Yy0xMi42MTQgMC0yMi44NzYtMTAuMjYyLTIyLjg3Ni0yMi44NzZTNjIuMzg2IDIyLjI4MSA3NSAyMi4yODFzMjIuODc2IDEwLjI2MiAyMi44NzYgMjIuODc3Uzg3LjYxNCA2OC4wMzQgNzUgNjguMDM0em0wLTQwLjI1M2ExNy40IDE3LjQgMCAwIDAtMTcuMzc2IDE3LjM3N0ExNy40IDE3LjQgMCAwIDAgNzUgNjIuNTM1YTE3LjQgMTcuNCAwIDAgMCAxNy4zNzYtMTcuMzc2QTE3LjQgMTcuNCAwIDAgMCA3NSAyNy43ODJ6Ii8+PC9zdmc+');--header-top-height:50px;--header-top-min-height:50px;}@media (min-width:1170px){:root{--header-height:110px;}}.header{--black:#333;min-height:var(--header-top-min-height); /* hold space for shrunk inner container on scroll to stop jank */position:sticky;top:0;z-index:10;}.header--scrolled-past-threshold{--header-box-shadow:0px 5px 7px 0px rgba(0, 0, 0, 0.1);--header-top-height:50px;}.header__button{align-self:flex-start;align-items:center;background:var(--background-image, none) no-repeat center;background-size:var(--background-size, auto);border:none;color:inherit;display:flex;height:var(--header-top-height);justify-content:center;position:relative;transition:300ms ease-in-out;width:50px;}.header__button-icon{display:block;height:auto;width:var(--header-button-icon-width, 20px);}.header__cart-count{align-items:center;background-color:var(--orange);border-radius:50%;color:var(--cart-loading-color, var(--pri-bg));display:flex;font-family:Fields, 'Open Sans', arial, sans-serif;font-size:1.1rem;font-weight:bold;height:20px;flex-direction:column;justify-content:center;left:var(--header-cart-count-left, 29px);line-height:1;opacity:var(--header-cart-count-opacity, 1);pointer-events:none;position:absolute;top:var(--header-cart-count-top, -1px);text-align:center;transition:opacity 250ms ease-in-out;width:20px;}[data-cart-count-amount="0"]{--header-cart-count-opacity:0;}[data-cart-count-amount]:after{-webkit-animation:l 1s infinite linear;animation:l 1s infinite linear;-webkit-animation-play-state:var(--cart-loading-play-state,paused);animation-play-state:var(--cart-loading-play-state,paused);background-image:var(--header-icon-sync);background-position:50%;background-repeat:no-repeat;background-size:cover;content:"";height:10px;left:5px;opacity:var(--cart-loading-opacity,0);position:absolute;top:0;top:5px;width:10px}[data-side-menu-toggle="cart-menu"].opened{--cart-count-opacity:1;--cart-loading-color:transparent;--cart-loading-opacity:1;--cart-loading-play-state:playing}@-webkit-keyframes l{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes l{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.header__container,.menu{scrollbar-width:0;}.header__container::-webkit-scrollbar,.menu::-webkit-scrollbar{display:none;}.header__container:focus{-webkit-box-shadow:var(--header-container-box-shadow, var(--menu-box-shadow)) !important;box-shadow:var(--header-container-box-shadow, var(--menu-box-shadow)) !important;outline:none !important;}.header__container:focus-visible{-webkit-box-shadow:var(--header-container-box-shadow, var(--menu-box-shadow)) !important;box-shadow:var(--header-container-box-shadow, var(--menu-box-shadow)) !important;outline:none !important;}.header__flex{display:flex;flex-direction:var(--header-flex-direction, column);flex-wrap:var(--header-flex-wrap, nowrap);}.header__inner{background-color:var(--pri-bg);color:var(--black);padding:var(--header-padding, 0);}.header__links{flex-basis:var(--header-links-flex-basis, auto);flex-shrink:0;order:var(--header-links-order, auto);}.header__link{align-items:var(--header-link-align-items, flex-start);display:flex;flex-direction:column;justify-content:center;height:44px;}.header__link-text{color:var(--header-link-color, inherit);font-size:var(--primary-font-size);font-weight:700;text-decoration:none;}.header__logo-wrap{background-color:var(--pri-bg);display:flex;justify-content:space-between;position:var(--header-logo-wrap-position, sticky);top:0;z-index:var(--header-logo-wrap-z-index, 2);}.header__logo{background:var(--header-icon-logo) no-repeat center;background-size:100% auto;}.header__tools-link{align-items:center;color:var(--header-tools-links-color, inherit);display:flex;font-size:var(--secondary-font-size);padding:0 var(--header-tools-link-padding-right, 0) 0 44px;position:relative;text-decoration:none;}.header__link-text:hover,.header__tools-link:hover{color:#f04c00;}.header__tools-link:before{background:var(--header-tools-link-icon, var(--icon, none)) no-repeat center center;background-size:var(--icon-width, 20px) auto;content:"";height:100%;left:calc(10px + ((30px - var(--icon-width)) / 2));position:absolute;top:0;width:var(--icon-width);}.header__tools-link-cta{color:var(--orange);margin-left:10px;text-decoration:underline;text-underline-offset:6px;}.menu{background-color:var(--submenu-background-color, var(--pri-bg));display:var(--submenu-display, none);height:var(--submenu-height, var(--submenu-height, calc(100% - var(--safe-area-inset-top, 0px) - 100px)));left:var(--submenu-left, 0);overflow-x:var(--submenu-overflow-x, hidden);overflow-y:var(--submenu-overflow-y, auto);padding:var(--submenu-padding, 0 10px);position:absolute;top:var(--submenu-top, calc(var(--safe-area-inset-top) + 100px));transform:var(--submenu-transform, none);width:100%;z-index:var(--submenu-z-index, 1);}.menu__cta{align-items:center;bottom:var(--menu-cta-bottom, 10px);display:flex;flex-shrink:0;height:50px;justify-content:center;left:var(--menu-cta-left, 0);position:var(--menu-cta-position, sticky);width:var(--menu-cta-width, 100%);}.menu__cta:focus,.menu__cta:hover{background-color:transparent;border-color:var(--orange);color:var(--black);outline:none;}.menu__feature{align-items:flex-start;color:inherit;display:flex;flex-direction:column;font-size:var(--secondary-font-size);text-decoration:none;}.menu__feature:focus,.menu__feature:hover{--menu-image-scale:var(--prefers-reduced-menu-image-scale, 1.05);--cta-arrow-x:var(--prefers-reduced-cta-arrow-x, 100%);--cta-color:var(--orange);--cta-image:var(--header-icon-arrow-right-hover);outline:none;}@media (prefers-reduced-motion){:root{--prefers-reduced-menu-image-scale:1;--prefers-reduced-cta-arrow-x:calc(100% - 5px);}}.menu__feature-cta{background:var(--cta-image, var(--header-icon-arrow-right)) var(--cta-arrow-x, calc(100% - 5px)) var(--cta-arrow-y, 3px) no-repeat;color:var(--cta-color, inherit);font-size:var(--secondary-font-size);font-weight:bold;margin-top:10px;padding-right:22px;transition:150ms ease-in-out;}.menu__feature-media{margin-bottom:10px;overflow:hidden;padding-top:calc(240/359 * 100%);position:relative;width:100%;}.menu__feature-media-item{height:100%;left:0;object-fit:cover;position:absolute;top:0;transform:scale(var(--menu-image-scale, 1));transform-origin:center;transition:300ms ease-in-out;width:100%;}.menu__group{margin:var(--menu-group-margin, 0);padding:var(--menu-group-padding, 18px 0);}div.menu__group:last-of-type:not(:nth-child(3)){flex-grow:1;padding-right:4%;}.menu__group:not(:first-child){border-color:var(--border-color);border-style:solid;border-width:var(--menu-group-border-width, 1px 0 0);margin:var(--menu-group-margin-not-first, 0);padding:var(--menu-group-padding-not-first, 18px 0);}.menu__group--feature{--menu-group-border-width:0;background-color:var(--pri-bg);}.menu__group-elevar-tracking{display:none;pointer-events:none;}.header__link.submenu--active .menu__group-elevar-tracking,html:not(.submenu--active--touch) .header__link--drop:hover .menu__group-elevar-tracking,html:not(.submenu--active--touch) .header__link:not(.header__link--drop) > a:hover .menu__group-elevar-tracking{display:block;}.menu__link{--badge-margin:0 0 0 5px;--badge-position:static;--badge-text-decoration:underline;--badge-text-decoration-color:var(--orange);--badge-z-index:auto;align-items:center;background-color:var(--pri-bg);break-inside:avoid;color:inherit;display:flex;font-size:var(--secondary-font-size);height:var(--menu-link-height, 40px);margin:var(--menu-link-margin, 10px 0);text-decoration:none;transition:150ms ease-in-out;}.menu__link:focus,.menu__link:hover{color:var(--orange);outline:none;text-decoration:underline !important;}.menu__link--bg{--menu-link-height:var(--menu-link-image-size, 60px);--menu-link-margin:0;padding-left:var(--menu-link-image-size, 60px);position:relative;}.menu__link--bg:before{background-image:var(--image);background-position:calc((var(--image-x) - 1) * (var(--menu-link-image-size, 60px) * -1)) 0;background-repeat:no-repeat;background-size:auto var(--menu-link-image-size, 60px);content:"";height:var(--menu-link-image-size, 60px);left:0;position:absolute;top:0;width:var(--menu-link-image-size, 60px)}.menu__title{column-span:all;display:block;font-size:var(--primary-font-size);margin-bottom:10px;}.menu__title-link{color:var(--black);transition:150ms ease-in-out;}.menu__title-link:hover{color:var(--orange);}.menu__toggle{align-items:center;background-color:var(--menu-toggle-background-color, #f1ece7);border-color:var(--border-color);border-style:solid;border-width:var(--menu-toggle-border-width, 1px 0);color:var(--menu-toggle-color, inherit);display:var(--menu-toggle-display, none);font-size:var(--primary-font-size);font-weight:bold;height:var(--menu-toggle-height, 50px);justify-content:var(--menu-toggle-justify-content, flex-start);left:0;margin-bottom:var(--menu-toggle-margin-bottom, 0);min-height:0;opacity:var(--menu-toggle-opacity, 1);pointer-events:var(--menu-toggle-pointer-events, auto);position:var(--menu-toggle-position, absolute);top:var(--menu-toggle-top, 50px);width:var(--menu-toggle-width, 100%);z-index:2;}@media (min-width:1170px){.header{--header-background-color:#f1ece7;--header-cart-count-left:30px;--header-cart-count-top:9px;--header-desktop-box-shadow:var(--header-box-shadow);--header-container-box-shadow:none;--header-container-position:relative;--header-container-transition:box-shadow 300ms ease-in-out;--header-flex-direction:row;--header-flex-wrap:wrap;--header-link-gap-sm:33px;--header-link-gap:40px;--header-link-gap-plus-1:41px;--header-links-flex-basis:100%;--header-links-separator-border-top:none;--header-links-order:3;--header-link-align-items:center;--header-logo-margin:5px 0;--header-logo-height:50px;--header-logo-width:90px;--header-top-height:60px;--header-top-min-height:110px;--menu-cta-background-color:#e2c8b6;--menu-cta-bottom:calc((min(1630px, calc((100vw - var(--scrollbar-width, 15px)) * 0.9)) / 100) * 2);--menu-cta-left:0;--menu-cta-margin:0;--menu-cta-padding:0;--menu-cta-position:absolute;--menu-cta-width:22%;--menu-group-border-width:0 0 0 1px;--menu-group-margin:2% 0 calc(20px + 50px + 2%);--menu-group-margin-not-first:2% 0 calc(20px + 50px + 2%) 2%;--menu-group-padding:0;--menu-group-padding-not-first:0 0 0 2%;--menu-toggle-background-color:var(--orange);--menu-toggle-border-width:0;--menu-toggle-color:#f1ece7;--menu-toggle-display:flex;--menu-toggle-height:13px;--menu-toggle-justify-content:center;--menu-toggle-margin-bottom:-13px;--menu-toggle-opacity:0;--menu-toggle-pointer-events:none;--menu-toggle-position:relative;--menu-toggle-top:3px;--menu-toggle-width:100%;--submenu-display:flex;--submenu-height:490px;--submenu-left:50%;--submenu-overflow-x:visible;--submenu-overflow-y:visible;--submenu-padding:0;--submenu-top:var(--header-top-min-height, 110px);--submenu-transform:translateX(-50%);}.header__desktop-right{margin-left:auto;}.header__link-text:focus,.menu__toggle:focus{outline:none;}.header__link.submenu--active,html:not(.submenu--active--touch) .header__link--drop:hover,html:not(.submenu--active--touch) .header__link:not(.header__link--drop) > a:hover{--header-link-color:var(--header-link-color-hover, var(--orange));--header-link-line-width:100%;}.header__link-text:focus-visible{--header-link-color:var(--header-link-color-hover, var(--orange));--header-link-line-width:100%;}.header__link:not(:last-child){margin-right:var(--header-link-gap-sm);}.header__links:after,.header__links:before{--position:absolute;--transform:translateX(-50%);border-top:1px solid var(--border-color);content:"";left:50%;pointer-events:none;position:var(--position);top:var(--header-top-height);transform:var(--transform);width:calc(100vw - var(--scrollbar-width, 15px));}.header__links:after{margin-top:50px;z-index:1;}.header__tools{flex-basis:calc(100% - var(--header-logo-width, 130px) - 10px);flex-wrap:nowrap;justify-content:flex-end;}.header__tools-link:not(:last-child){--header-tools-link-padding-right:15px;position:relative;}.header__tools-link--banner{padding-left:10px;}.header__link.header__desktop-right .header__link-text:before,.header__tools-link:not(:last-child):after{border-right:1px solid var(--border-color);content:"";height:20px;margin-top:-10px;position:absolute;right:0;top:50%;}.header__link.header__desktop-right .header__link-text{margin-left:var(--header-link-gap-plus-1);}.header__link.header__desktop-right .header__link-text:before{left:calc(-1 * 41px);left:calc(-1 * var(--header-link-gap-plus-1));pointer-events:none;right:auto;}.header__link.submenu--active .menu,html:not(.submenu--active--touch) .header__link:hover .menu{--menu-transition-delay:200ms;opacity:1;visibility:visible;}.header__link--drop:hover ~ .header__link{--header-link-no-drop-before-pointer-events:none;--header-link-no-drop-position:static;}.header__link--drop:hover .header__link-text,.header__link:not(.header__link--drop) .header__link-text{position:var(--header-link-no-drop-position, relative);}.header__link.submenu--active .header__link-text:after,html:not(.submenu--active--touch) .header__link:hover .header__link-text:after{border-bottom:5px solid var(--header-link-color, var(--black));box-sizing:border-box;content:"";height:49px;left:0;opacity:var(--header-link-underline-opacity, 1);pointer-events:var(--header-link-no-drop-before-pointer-events, auto);position:absolute;top:-16px;width:100%;}.header__tools-link:hover{text-decoration:underline;}.submenu--active--touch .header__link:hover(:not(.submenu--active)){--header-link-color-hover:var(--black);--header-link-underline-opacity:0;}.header__link.header__desktop-right .menu__toggle{margin-left:var(--header-link-gap-plus-1);width:calc(100% - var(--header-link-gap-plus-1));}.header__link-text{line-height:1;}.header__tools-link:focus,.header__tools-link:hover{--header-tools-links-color:var(--orange);--header-tools-link-icon:var(--icon-hover, var(--icon));}/* ----- Make header elements have their own stacking context to sit above menu pseudo ----- */.header__links:before,.header__link-text,.header__logo,.header__tools-link,.menu__toggle{position:var(--position, relative);transform:var(--transform, translateZ(0));z-index:2;}.menu{max-height:calc(100vh - var(--header-top-min-height));opacity:0;transition:0ms var(--menu-transition-delay, 200ms);visibility:hidden;}.menu:after{background-color:var(--pri-bg);content:"";height:calc(100vh - var(--header-top-min-height) - 16px);left:50%;margin-top:16px;opacity:0.9;pointer-events:none;position:absolute;top:0;transform:translateX(-50%);width:calc(100vw - var(--scrollbar-width, 15px));z-index:-2;}.menu:before{background-color:var(--pri-bg);box-shadow:0px 5px 7px 0px rgba(0, 0, 0, 0.1);content:"";height:calc(100% + var(--header-top-min-height, 110px)); /* ----- Menu before to sit behind header - increase hover area ----- */left:50%;min-height:calc(var(--submenu-height) + var(--header-top-min-height));position:absolute;top:calc(-1 * var(--header-top-min-height, 110px));transform:translateX(-50%);width:calc(100vw - var(--scrollbar-width, 15px));z-index:-1;}.menu__group{width:24%;}.menu__group:first-child{width:22%;}.menu__group--feature{position:relative;width:24%;}.menu__group--feature:after,.menu__group--feature:before{background-color:var(--pri-bg);bottom:calc(-1 * (20px + 50px + ((min(1630px, ((100vw - var(--scrollbar-width, 15px)) * 0.9)) / 100) * 2)));content:"";left:var(--menu-right-backdrop-left, 0);position:absolute;top:calc(-1 * ((min(1630px, calc((100vw - var(--scrollbar-width, 15px)) * 0.9)) / 100) * 2));width:var(--menu-right-backdrop-width, 100%);}.menu__group--feature:before{border-left:1px solid var(--border-color);}.menu__group--feature:after{--menu-right-backdrop-left:100%;--menu-right-backdrop-width:calc((100vw - var(--scrollbar-width, 15px) - min(1630px, (100vw - var(--scrollbar-width, 15px)) * 0.9)) / 2);}.menu__group--feature > *{position:relative;z-index:1;}.menu__group{--menu-group-margin-left:0px;}.menu__group:not(:first-child){--menu-group-margin-left:2%;}.menu__group--double{--menu-group-width:50%;columns:2;}.menu__toggle{background:var(--orange) var(--header-icon-chevron-down) no-repeat center center;background-size:10px auto;overflow:hidden;text-indent:-500vw;}.menu__toggle:focus-visible{--menu-toggle-opacity:1;--menu-toggle-pointer-events:auto;}}@media (min-width:1280px){.header__link:not(:last-child){margin-right:var(--header-link-gap);}}@media (max-width:1169px){.header{--container-width:100%;}.menu--active{--header-transform:translateZ(0);--menu-backdrop-opacity:1;--menu-backdrop-pointer-events:auto;--menu-backdrop-transition-delay:0ms;}.header__link.submenu--active{--menu-toggle-display:flex;--submenu-display:flex;}.submenu--active .header__container{overflow:hidden;}.header__button--menu:before{background-color:rgba(255, 255, 255, 0.9); /* mobile menu backdrop */content:"";height:100vh;left:0;opacity:var(--menu-backdrop-opacity, 0);pointer-events:var(--menu-backdrop-pointer-events, none);position:fixed;top:0;transition:opacity 250ms var(--menu-backdrop-transition-delay, 250ms) ease-in-out;width:100vw;z-index:1;}.header__container{--safe-area-inset-bottom:constant(safe-area-inset-bottom, 0px); /* iOs < 11.2 safe-area */--safe-area-inset-top:constant(safe-area-inset-top, 0px); /* iOs < 11.2 safe-area */bottom:var(--safe-area-inset-bottom);left:0;max-width:400px;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;top:var(--safe-area-inset-top);transform:var(--header-transform, translate3d(-100%, 0, 0));width:80vw;z-index:1;}.header__link{margin-bottom:5px;padding:0 10px;}.header__link--drop{background:url('data:image/svg+xml;base64, PHN2ZyB3aWR0aD0iNTEiIGhlaWdodD0iNTAiIHZpZXdCb3g9IjAgMCA1MSA1MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxwYXRoIGQ9Im0yNi4zMjUgMTguMzMzIDcuNSA2LjY2Ny03LjUgNi42NjdNMzMuODI1IDI1aC0xOCIgc3Ryb2tlPSIjMzMzIi8+Cjwvc3ZnPgo=') no-repeat right var(--header-link-bg-y, center);}.header__link.header__desktop-right{--header-link-bg-y:20px;}.header__link.header__desktop-right:not(.submenu--active){--menu-border-display:block;height:70px;margin-top:15px;padding-top:20px;position:relative;}.header__link.header__desktop-right:before{border-top:1px solid var(--border-color);content:"";display:var(--menu-border-display, none);left:10px;position:absolute;right:10px;top:0;}.header__link-text{align-items:center;display:flex;height:100%;width:100%;}.header__links{padding-bottom:10px;margin-top:60px; /* make room for positioned subscribe & save banner */}.header__tools{background-color:var(--pri-bg);padding:5px 0 10px;}.header__tools-link{align-items:center;background-color:var(--pri-bg);display:flex;height:40px;margin-top:5px;}.header__tools-link--banner{align-items:center;display:flex;height:50px;justify-content:space-between;left:0;padding:0 10px;position:absolute;top:45px;width:100%;border-color:var(--border-color);border-style:solid;border-width:var(--menu-toggle-border-width, 1px 0);}.header__tools.header__flex.header__desktop-right{border-color:var(--border-color);border-style:solid;border-width:var(--menu-toggle-border-width, 1px 0);}.header__tools-link--search{order:1;}.header__tools-link--locator{order:2;}.header__tools-link--account{order:3;}.header__tools-link--cart{order:4;}.menu{--container-width:100%;flex-direction:column;}.menu__cta:before{border:10px solid var(--menu-cta-background-color, var(--pri-bg));;bottom:-12px;content:"";left:-12px;position:absolute;padding:var(--menu-cta-padding, 10px);top:-10px;right:-12px;box-sizing:border-box;}.menu__cta:hover{background-color:var(--orange);border-color:transparent;color:var(--pri-bg);}.menu__group--feature{--menu-group-border-width:0;--menu-group-margin-not-first:0 -10px;--menu-group-padding-not-first:18px 10px;}.menu__toggle{background:var(--pri-bg) var(--header-icon-back) no-repeat left center;justify-content:center;padding:0 50px;}}@media (max-width:767px){.header__button--locator{display:none;}}@media (min-width:768px) and (max-width:1169px){.header__button--locator{margin-left:-50px;}}/* Small asset / copy styling */@media(max-width:499px),(min-width:1170px) and (max-width:1439px){.header{--badge-font-size:.8rem;--badge-padding:5px 4px 4px 5px;--btn-font-size:1.3rem;--btn-letter-spacing:0.04rem;--image-size:60px;--primary-font-size:1.6rem;--secondary-font-size:1.4rem;}}/* Small asset mobile only */@media (max-width:499px){.header{--menu-link-font-size:1.6rem;--menu-link-font-weight:bold;}}@media (min-width:1170px) and (max-width:1439px){.header{--submenu-height:430px;}}/* Large asset / copy styling */@media(min-width:1440px),(min-width:500px) and (max-width:1169px){.header{--badge-font-size:1rem;--badge-padding:5px 4px 5px 5px;--btn-font-size:1.4rem;--btn-letter-spacing:0.06rem;--cta-arrow-y:5px;--menu-link-image-size:80px;--primary-font-size:1.8rem;--secondary-font-size:1.6rem;}}/* Large asset mobile only */@media (min-width:500px) and (max-width:1169px){.header{--menu-link-font-size:1.8rem;--menu-link-font-weight:bold;}}@supports(padding:max(0px)){.header__container{--safe-area-inset-bottom:env(safe-area-inset-bottom, 0px); /* iOs 11.2+ safe-area */--safe-area-inset-top:env(safe-area-inset-top, 0px); /* iOs 11.2+ safe-area */}}</style><nav class="header header__flex"  style="--image-1: url(https://cdn.shopify.com/s/files/1/0004/3470/0319/files/product-render-sprite-july2026.jpg);--image-2: url(https://cdn.shopify.com/s/files/1/0004/3470/0319/files/main-nav-sprite2025-protein-iced-coffee.svg);background-color: var(--header-background-color, transparent);height: var(--header-top-min-height);"  data-header  id="MainNav"  role="navigation">  <div class="header__inner header__flex hide-on-extra-large-only"    style="border-bottom: 1px solid var(--border-color);flex-direction: row;height: var(--header-top-height);transition: 300ms ease-in-out;    "><button type="button" class="header__button header__button--menu"      aria-label="Show Navigation"      onclick="document.dispatchEvent(new CustomEvent('mobileMenuToggle'))"      style="--background-image: var(--header-icon-menu);--background-size: 20px auto;      ">    </button>    <a href="/search" class="header__button"      aria-label="Show Search"            data-side-menu-toggle="search-menu"            style="--background-image: var(--header-icon-search);--background-size: 20px auto;"    ></a><a href="https://www.bulletproof.com/" class="header__logo"      aria-label="View homepage"      style="align-items: center;display: flex;height: auto;justify-content: center; margin: 0 auto;position: relative;top: 50%;transform: translateY(-50%);transition: 300ms ease-in-out;width: var(--header-logo-width-mobile, 77px);"></a><a href="/pages/store-locator" class="header__button header__button--locator"      aria-label="Find our products in a store near you"      style="--background-image: var(--header-icon-store);--background-size: 20px auto"      ></a>    <a href="/account" class="header__button"      aria-label="View your account"      --data-side-menu-toggle="account-menu"      style="--background-image: var(--header-icon-account);--background-size: 20px auto;      "></a>    <a class="header__button"      href="/cart"      itemprop="url"      aria-label="View your cart"      aria-describedby="aria-minicart-description--mobile_header"      style="--background-image: var(--header-icon-cart);--background-size: 20px auto;--header-cart-count-top: 9px;--header-cart-count-left: 24px;"            data-side-menu-toggle="cart-menu"          >      <span class="header__cart-count header__cart-count--mobile-nav"        aria-hidden="true"        data-cart-count-amount="0">        0      </span>    </a></div>  <div class="header__container header__flex header__inner container"    style="--header-container-flex-basis: auto;box-shadow: var(--header-container-box-shadow, var(--menu-box-shadow));position: var(--header-container-position, fixed);transition: var(--header-container-transition, transform 300ms ease-in-out);z-index: 1;"    >    <div class="header__logo-wrap">      <a href="https://www.bulletproof.com/" class="header__logo"        aria-label="View homepage"        style="          height: var(--header-logo-height, auto);          margin: var(--header-logo-margin, 5px);          width: var(--header-logo-width, 69px);        "></a><button type="button" class="nav-menu__close side-menu__close active hide-on-extra-large-only"        onclick="document.dispatchEvent(new CustomEvent('mobileMenuToggle'))"        aria-label="Close Navigation"        style="margin: 0;padding: 0;position: static;"      ></button></div><div class="header__links header__flex"  style="    border-top: var(--header-links-border-top, none);  ">  <div class="header__link header__link--drop">    <a class="header__link-text"      href="/collections/all">Shop All</a><button class="menu__toggle" type="button" onclick="headerToggleMenu(event)"        aria-controls="menu-1"        aria-expanded="false"        aria-label="Toggle Shop All menu">Shop All</button><div class="menu container" id="menu-1"><div class="menu__group"><strong class="menu__title">Featured</strong><a class="menu__link menu__link--bg" href="/collections/new-arrivals" style="--image: var(--image-2);--image-x: 22;">New Arrivals</a><a class="menu__link menu__link--bg" href="/pages/subscribe-and-save" style="--image: var(--image-2);--image-x: 13;">Subscribe &amp; Save</a><a class="menu__link menu__link--bg" href="/pages/daily-deals-and-discounts" style="--image: var(--image-2);--image-x: 23;">Deals of the Week</a> <a class="menu__link menu__link--bg" href="/collections/build-your-own-bundle" style="--image: var(--image-2);--image-x: 12;">Build Your Own Bundle</a> </div><div class="menu__group menu__group--double"><strong class="menu__title">Shop by Category</strong><a class="menu__link menu__link--bg" href="/collections/coffee" style="--image: var(--image-1);--image-x: 1;">Coffee</a><a class="menu__link menu__link--bg" href="/collections/mix-ins" style="--image: var(--image-1);--image-x: 11;">Mix-Ins</a><a class="menu__link menu__link--bg" href="/collections/mct-oil" style="--image: var(--image-1);--image-x: 2;">MCT Oil</a><a class="menu__link menu__link--bg" href="/collections/supplements" style="--image: var(--image-1);--image-x: 3;">Supplements</a><a class="menu__link menu__link--bg" href="/collections/collagen" style="--image: var(--image-1);--image-x: 4;">Collagen</a><a class="menu__link menu__link--bg" href="/collections/on-the-go" style="--image: var(--image-1);--image-x: 49;">On-The-Go</a><a class="menu__link menu__link--bg" href="/collections/accessories-apparel" style="--image: var(--image-1);--image-x: 36;">Accessories &amp; Apparel</a> </div><figure class="menu__group menu__group--feature"><strong class="menu__title"><span style="background:#f04c00;color:#fff;padding: 3px 6px;font-family:Dosis;text-transform:uppercase;font-size:1.5rem;">NEW</span> Coffee + 5g Creatine </strong><a class="menu__feature" href="/products/creatine-coffee"><div class="menu__feature-media"><img class="menu__feature-media-item" srcset="https://cdn.shopify.com/s/files/1/0004/3470/0319/files/coffee-plus-creatine-centered-between-hot-and-iced-coffee_1_300x.jpg 359w,https://cdn.shopify.com/s/files/1/0004/3470/0319/files/coffee-plus-creatine-centered-between-hot-and-iced-coffee_1.jpg 718w" loading="lazy" height="240" width="359" alt="Coffee + creatine package"></div>Clean, toxin-tested coffee with 5g creatine to power your workout or workday—all in one scoop.<span class="menu__feature-cta"> Shop Now</span></a></figure><a class="menu__cta btn btn-primary" href="/collections/all">Shop All Products</a></div></div>  <div class="header__link header__link--drop">    <a class="header__link-text"      href="/collections/bulletproof-best-sellers">Best Sellers</a><button class="menu__toggle" type="button" onclick="headerToggleMenu(event)"        aria-controls="menu-2"        aria-expanded="false"        aria-label="Toggle Best Sellers menu">Best Sellers</button><div class="menu container" id="menu-2"><div class="menu__group"><strong class="menu__title">Coffee</strong><a class="menu__link menu__link--bg" href="/products/flavored-coffee-cinnamon-vanilla" style="--image: var(--image-1);--image-x: 8;">Cinnamon + Vanilla Ground Coffee</a><a class="menu__link menu__link--bg" href="/products/coffee-the-high-achiever-10oz" style="--image: var(--image-1);--image-x: 6;">The High Achiever™ Enhanced Coffee</a><a class="menu__link menu__link--bg" href="/products/coffee-the-original-pods-24ct" style="--image: var(--image-1);--image-x: 5;">The Original Coffee Pods</a><a class="menu__link menu__link--bg" href="/products/coffee-the-original-whole-bean-5lb" style="--image: var(--image-1);--image-x: 7;">The Original Whole Bean Coffee</a></div><div class="menu__group"><strong class="menu__title">Supplements</strong><a class="menu__link menu__link--bg" href="/products/innerfuel" style="--image: var(--image-1);--image-x: 34;">InnerFuel Prebiotic</a><a class="menu__link menu__link--bg" href="/products/vitamins-a-d-k-30-count" style="--image: var(--image-1);--image-x: 3;">Vitamins A-D-K</a><a class="menu__link menu__link--bg" href="/products/liposomal-glutathione" style="--image: var(--image-1);--image-x: 50;">Liposomal Glutathione</a></div><div class="menu__group"><strong class="menu__title">Mix-Ins</strong><a class="menu__link menu__link--bg" href="/products/brain-octane-oil-16-oz" style="--image: var(--image-1);--image-x: 2;">Brain Octane® C8 MCT Oil</a><a class="menu__link menu__link--bg" href="/products/enhanced-creamer-original-14-8-oz" style="--image: var(--image-1);--image-x: 11;">Enhanced Original Creamer</a><a class="menu__link menu__link--bg" href="/products/collagen-protein-17-6oz" style="--image: var(--image-1);--image-x: 4;">Unflavored Collagen Peptides</a><a class="menu__link menu__link--bg" href="/products/enhanced-creamer-mocha-14-8-oz" style="--image: var(--image-1);--image-x: 35;">Enhanced Mocha Creamer</a></div><figure class="menu__group menu__group--feature"><strong class="menu__title"> Lock In Your Best Price — Every Month.</strong><a class="menu__feature" href="/collections/build-your-own-bundle"><div class="menu__feature-media"><img class="menu__feature-media-item" srcset="https://cdn.shopify.com/s/files/1/0004/3470/0319/files/collagen-peptides-brain-octane-oil-with-coffee-mug-on-wooden-blocks_300x.jpg 359w,https://cdn.shopify.com/s/files/1/0004/3470/0319/files/collagen-peptides-brain-octane-oil-with-coffee-mug-on-wooden-blocks.jpg 718w" loading="lazy" height="240" width="359" alt="Bulletproof collagen and brain octane oil, lock in 30% off forever"></div>Two of our most subscribed products are even better together. Subscribe to both and save 15% on every shipment automatically. Add a third and unlock 20%.<span class="menu__feature-cta">Start Your Bundle</span></a></figure> <a class="menu__cta btn btn-primary" href="/collections/bulletproof-best-sellers">Shop All Best Sellers</a></div></div>  <div class="header__link header__link--drop">    <a class="header__link-text"      href="/collections/coffee">Coffee</a><button class="menu__toggle" type="button" onclick="headerToggleMenu(event)"        aria-controls="menu-3"        aria-expanded="false"        aria-label="Toggle Coffee menu">Coffee</button><div class="menu container" id="menu-3"><div class="menu__group"><strong class="menu__title">Shop by Form</strong><a class="menu__link menu__link--bg" href="/collections/ground-coffee" style="--image: var(--image-2);--image-x: 9;">Ground Coffee</a><a class="menu__link menu__link--bg" href="/collections/whole-bean" style="--image: var(--image-2);--image-x: 10;">Whole Bean Coffee</a><a class="menu__link menu__link--bg" href="/collections/coffee-pods" style="--image: var(--image-2);--image-x: 11;">Coffee Pods</a><a class="menu__link menu__link--bg" href="/collections/instant-coffee" style="--image: var(--image-2);--image-x: 24;">Instant Coffee</a></div><div class="menu__group"><strong class="menu__title">Shop by Roast</strong><a class="menu__link menu__link--bg" href="/collections/light-roast-coffee" style="--image: var(--image-1);--image-x: 14;">Light Roast Coffee</a><a class="menu__link menu__link--bg" href="/collections/medium-roast-coffee" style="--image: var(--image-1);--image-x: 1;">Medium Roast Coffee</a><a class="menu__link menu__link--bg" href="/collections/medium-dark-roast-coffee" style="--image: var(--image-1);--image-x: 15;">Medium-Dark Roast Coffee</a><a class="menu__link menu__link--bg" href="/collections/dark-roast-coffee" style="--image: var(--image-1);--image-x: 16;">Dark Roast Coffee</a></div><div class="menu__group"><strong class="menu__title"><a class="menu__title-link" href="/collections/functional-coffee">Functional Coffee</a></strong><a class="menu__link menu__link--bg" href="/products/coffee-the-high-achiever-10oz" style="--image: var(--image-1);--image-x: 6;">The High Achiever™</a><a class="menu__link menu__link--bg" href="/products/coffee-the-maximizer" style="--image: var(--image-1);--image-x: 28;"><span>The Maximizer™</span></a><style>.og-pods-text {max-width: 17ch;}</style><a class="menu__link menu__link--bg" href="/products/coffee-the-enlightener" style="--image: var(--image-1);--image-x: 46;"><span>The Enlightener<sup>™</sup></span></a><a class="menu__link menu__link--bg" href="/products/coffee-butter-pods-24-pk" style="--image: var(--image-1);--image-x: 17;"> Coffee + Butter Pods</a></div> <figure class="menu__group menu__group--feature"><strong class="menu__title"><span style="background:#f04c00;color:#fff;padding: 3px 6px;font-family:Dosis;text-transform:uppercase;font-size:1.5rem;">New</span> Lift Your Mood—Instantly </strong><a class="menu__feature" href="/products/mood-booster-instant-mushroom-latte-4-7-oz"><div class="menu__feature-media"><img class="menu__feature-media-item" srcset=" https://cdn.shopify.com/s/files/1/0004/3470/0319/files/hand-holding-latte-next-to-mushroom-latte-package-and-iced-mushroom-latte_200x.jpg 359w, https://cdn.shopify.com/s/files/1/0004/3470/0319/files/hand-holding-latte-next-to-mushroom-latte-package-and-iced-mushroom-latte_500x.jpg 718w" loading="lazy" height="240" width="359" alt="The mood booster latte being poured into glass mug"></div>A creamy instant latte with functional mushrooms and Ashwagandha to support a positive mood—without the earthy mushroom taste.<sup>†</sup> <span class="menu__feature-cta">Get Yours Now</span></a></figure><a class="menu__cta btn btn-primary" href="/collections/coffee">Shop All Coffee</a></div></div>  <div class="header__link header__link--drop">    <a class="header__link-text"      href="/collections/supplements">Supplements</a><button class="menu__toggle" type="button" onclick="headerToggleMenu(event)"        aria-controls="menu-4"        aria-expanded="false"        aria-label="Toggle Supplements menu">Supplements</button><div class="menu container" id="menu-4"><div class="menu__group"><strong class="menu__title">Shop by Form</strong><a class="menu__link menu__link--bg" href="/collections/capsules-and-softgels" style="--image: var(--image-2);--image-x: 19;">Capsules &amp; Softgels</a><a class="menu__link menu__link--bg" href="/collections/gummy-vitamins" style="--image: var(--image-2);--image-x: 20;">Gummy Vitamins</a></div><div class="menu__group menu__group--double"><strong class="menu__title">Shop by Benefit</strong><a class="menu__link menu__link--bg" href="/collections/daily-wellness" style="--image: var(--image-2);--image-x: 1;">Daily Wellness</a><a class="menu__link menu__link--bg" href="/collections/immune-support" style="--image: var(--image-2);--image-x: 2;">Immune Support</a><a class="menu__link menu__link--bg" href="/collections/stress-sleep" style="--image: var(--image-2);--image-x: 3;">Stress &amp; Sleep</a><a class="menu__link menu__link--bg" href="/collections/gut-digestive-health" style="--image: var(--image-2);--image-x: 4;">Gut &amp; Digestive Health</a><a class="menu__link menu__link--bg" href="/collections/energy" style="--image: var(--image-2);--image-x: 5;">Energy Support</a><a class="menu__link menu__link--bg" href="/collections/brain-health" style="--image: var(--image-2);--image-x: 6;">Brain Health</a><a class="menu__link menu__link--bg" href="/collections/bones-joints" style="--image: var(--image-2);--image-x: 7;">Bone &amp; Joint Support</a></div><figure class="menu__group menu__group--feature"><strong class="menu__title">Your Supplement Routine. Discounted. Delivered.</strong><a class="menu__feature" href="/collections/build-your-own-bundle"><div class="menu__feature-media"><img class="menu__feature-media-item" srcset="https://cdn.shopify.com/s/files/1/0004/3470/0319/files/liposomal-glutathione-vitamins-adk-innerfuel-prebiotic-sitting-next-to-glass-of-water_400x.jpg 359w,https://cdn.shopify.com/s/files/1/0004/3470/0319/files/liposomal-glutathione-vitamins-adk-innerfuel-prebiotic-sitting-next-to-glass-of-water.jpg 718w" loading="lazy" height="240" width="359" alt="Bulletproof supplement products with fresh strawberries"></div>Bundle 2 or more supplements into your subscription and unlock tiered savings up to 30% — applied automatically to every shipment, forever. The more you stack, the more you save.<span class="menu__feature-cta">Build Your Bundle &amp; Save </span></a></figure> <a class="menu__cta btn btn-primary" href="/collections/supplements">Shop All Supplements</a></div></div>  <div class="header__link header__link--drop">    <a class="header__link-text"      href="/collections/mct-oil">MCT Oil</a><button class="menu__toggle" type="button" onclick="headerToggleMenu(event)"        aria-controls="menu-5"        aria-expanded="false"        aria-label="Toggle MCT Oil menu">MCT Oil</button><div class="menu container" id="menu-5"><div class="menu__group"><strong class="menu__title"><a class="menu__title-link" href="/collections/mct-oil">MCTs</a></strong><a class="menu__link menu__link--bg" href="/products/brain-octane-oil-16-oz" style="--image: var(--image-1);--image-x: 2;">Brain Octane® C8 MCT Oil</a><a class="menu__link menu__link--bg" href="/products/mct-oil-16-oz" style="--image: var(--image-1);--image-x: 18;">MCT Oil</a><a class="menu__link menu__link--bg" href="/products/brain-octane-c8-mct-powder-8-8-oz" style="--image: var(--image-1);--image-x: 51;">Brain Octane® C8 MCT Powder</a></div><div class="menu__group menu__group--double"><strong class="menu__title">Products with MCT Oil</strong><a class="menu__link menu__link--bg" href="/products/brain-octane-softgels-60ct" style="--image: var(--image-1);--image-x: 20;">Brain Octane Softgels</a><a class="menu__link menu__link--bg" href="/products/coq10-energy-30-count" style="--image: var(--image-1);--image-x: 31;">CoQ10 Energy</a><a class="menu__link menu__link--bg" href="/products/energy-gummies-60-count" style="--image: var(--image-1);--image-x: 32;">Energy Gummies</a><a class="menu__link menu__link--bg" href="/products/enhanced-creamer-original-14-8-oz" style="--image: var(--image-1);--image-x: 11;">Coffee Creamer</a><a class="menu__link menu__link--bg" href="/products/coffee-butter-pods-24-pk" style="--image: var(--image-1);--image-x: 17;">Coffee + Butter Pods</a><a class="menu__link menu__link--bg" href="/products/starter-kit-brain-octane-oil-ground-coffee" style="--image: var(--image-1);--image-x: 33;">Bulletproof Starter Kit</a></div><figure class="menu__group menu__group--feature"><strong class="menu__title">What is MCT Oil?</strong><a class="menu__feature" href="/pages/mct-oil"><div class="menu__feature-media"><img class="menu__feature-media-item" srcset="https://cdn.shopify.com/s/files/1/0004/3470/0319/files/bulletproof-coffee-product-spotlight-mct-oil_350x.jpg 359w,https://cdn.shopify.com/s/files/1/0004/3470/0319/files/bulletproof-coffee-product-spotlight-mct-oil.jpg 718w" loading="lazy" height="240" width="359" alt="What are MCT Oils?"></div><span>Meet the quality fat that keeps your energy steady, supports metabolism and helps your brain perform at its best.<sup>†</sup></span><span class="menu__feature-cta">Learn More</span></a></figure><a class="menu__cta btn btn-primary" href="/collections/mct-oil">Shop All MCT Oil</a></div></div>  <div class="header__link header__link--drop">    <a class="header__link-text"      href="/collections/mix-ins">Mix-Ins</a><button class="menu__toggle" type="button" onclick="headerToggleMenu(event)"        aria-controls="menu-6"        aria-expanded="false"        aria-label="Toggle Mix-Ins menu">Mix-Ins</button><div class="menu container" id="menu-6"><div class="menu__group"><strong class="menu__title"><a class="menu__title-link" href="/collections/coffee-creamer">Coffee Creamer</a></strong><a class="menu__link menu__link--bg" href="/products/enhanced-creamer-original-14-8-oz" style="--image: var(--image-1);--image-x: 11;">Original</a><a class="menu__link menu__link--bg" href="/products/enhanced-creamer-french-vanilla-14-8-oz" style="--image: var(--image-1);--image-x: 12;">French Vanilla</a><a class="menu__link menu__link--bg" href="/products/enhanced-creamer-mocha-14-8-oz" style="--image: var(--image-1);--image-x: 35;">Mocha</a><a class="menu__link menu__link--bg" href="/products/enhanced-creamer-hazelnut-14-8-oz" style="--image: var(--image-1);--image-x: 13;">Hazelnut</a></div><div class="menu__group"> <strong class="menu__title"><a class="menu__title-link" href="/collections/quality-fats">Quality Fats</a></strong><a class="menu__link menu__link--bg" href="/products/brain-octane-oil-16-oz" style="--image: var(--image-1);--image-x: 2;">Brain Octane C8 MCT Oil</a><a class="menu__link menu__link--bg" href="/products/mct-oil-16-oz" style="--image: var(--image-1);--image-x: 18;">MCT Oil</a><a class="menu__link menu__link--bg" href="/products/grassfedghee" style="--image: var(--image-1);--image-x: 19;">Grass-Fed Ghee</a></div><div class="menu__group"> <strong class="menu__title"><a class="menu__title-link" href="/collections/powders">Powders</a></strong><a class="menu__link menu__link--bg" href="/products/collagen-protein-17-6oz" style="--image: var(--image-1);--image-x: 4;">Unflavored Collagen</a><a class="menu__link menu__link--bg" href="/products/innerfuel" style="--image: var(--image-1);--image-x: 34;">InnerFuel Prebiotic</a><a class="menu__link menu__link--bg" href="/products/brain-octane-c8-mct-powder-8-8-oz" style="--image: var(--image-1);--image-x: 51;">Brain Octane® C8 MCT Powder</a><a class="menu__link menu__link--bg" href="/products/energy-collagen-vanilla-protein-18-3-oz" style="--image: var(--image-1);--image-x: 41;">Vanilla Energy Collagen</a></div><figure class="menu__group menu__group--feature"><strong class="menu__title">The Bulletproof™ Coffee Recipe</strong><a class="menu__feature" href="/collections/mix-ins"><div class="menu__feature-media"><img class="menu__feature-media-item" srcset="https://cdn.shopify.com/s/files/1/0004/3470/0319/files/bulletproof-coffee-product-spotlight-learn-store-locator_200x.jpg 359w,https://cdn.shopify.com/s/files/1/0004/3470/0319/files/bulletproof-coffee-product-spotlight-learn-store-locator_500x.jpg 718w" loading="lazy" height="240" width="359" alt="Ingredients for Bulletproof coffee recipe"></div> The recipe that made us famous! Shop the signature ingredients for a cup of coffee that supports sustained energy and cognitive function.†<span class="menu__feature-cta">Shop Now</span></a></figure><a class="menu__cta btn btn-primary" href="/collections/mix-ins">Shop All Mix-Ins</a></div></div>  <div class="header__link header__link--drop">    <a class="header__link-text"      href="/collections/collagen">Collagen</a><button class="menu__toggle" type="button" onclick="headerToggleMenu(event)"        aria-controls="menu-7"        aria-expanded="false"        aria-label="Toggle Collagen menu">Collagen</button><div class="menu container" id="menu-7"><div class="menu__group"><strong class="menu__title"><a class="menu__title-link" href="/collections/collagen-peptides">Collagen Peptides</a></strong><a class="menu__link menu__link--bg" href="/products/collagen-protein-17-6oz" style="--image: var(--image-1);--image-x: 4;">Unflavored</a><a class="menu__link menu__link--bg" href="/products/chocolate-collagen-protein-net-wt-17-6-oz" style="--image: var(--image-1);--image-x: 21;">Chocolate</a><a class="menu__link menu__link--bg" href="/products/vanilla-collagen-protein-net-wt-17-6-oz" style="--image: var(--image-1);--image-x: 22;">Vanilla</a></div><div class="menu__group"><strong class="menu__title"><a class="menu__title-link" href="/collections/collagen-protein-plus-support">Collagen Plus Support</a></strong><a class="menu__link menu__link--bg" href="/products/gut-health-collagen-protein-14-oz" style="--image: var(--image-1);--image-x: 23;">Gut Health Collagen</a><a class="menu__link menu__link--bg" href="/products/energy-collagen-vanilla-protein-18-3-oz" style="--image: var(--image-1);--image-x: 41;">Vanilla Energy Collagen</a></div><div class="menu__group"><strong class="menu__title">Products with Collagen</strong><style>.og-pods-text {max-width: 17ch;}</style><a class="menu__link menu__link--bg" href="/products/the-original-collagen-coffee-pods-24ct" style="--image: var(--image-1);--image-x: 48;"><span class="og-pods-text">The Original + Collagen Coffee Pods</span></a> <a class="menu__link menu__link--bg" href="/products/collagelatin-net-wt-16-oz" style="--image: var(--image-1);--image-x: 30;">Collagelatin</a></div><figure class="menu__group menu__group--feature"><strong class="menu__title">What is Collagen?</strong><a class="menu__feature" href="/pages/collagen-peptides"> <div class="menu__feature-media"><img class="menu__feature-media-item" srcset="https://cdn.shopify.com/s/files/1/0004/3470/0319/files/bulletproof-coffee-product-spotlight-collagen_300x.jpg 359w,https://cdn.shopify.com/s/files/1/0004/3470/0319/files/bulletproof-coffee-product-spotlight-collagen.jpg 718w" loading="lazy" height="240" width="359" alt="Three containers of Bulletproof collagen peptides on a kitchen counter with coffee beans and a wooden spoon."></div><span>Learn more about this amino acid rich protein that helps support glowing skin, flexible joints and strongbones.<sup>†</sup></span><span class="menu__feature-cta">Learn More</span></a></figure><a class="menu__cta btn btn-primary" href="/collections/collagen">Shop All Collagen</a></div></div>  <div class="header__link">    <a class="header__link-text"      href="/collections/sale">Sale</a></div>  <div class="header__link header__link--drop header__desktop-right">    <a class="header__link-text"      href="https://www.bulletproof.com/blog">Learn</a><button class="menu__toggle" type="button" onclick="headerToggleMenu(event)"        aria-controls="menu-9"        aria-expanded="false"        aria-label="Toggle Learn menu">Learn</button><div class="menu container" id="menu-9"><div class="menu__group"><strong class="menu__title">Company</strong><a class="menu__link" href="https://www.bulletproof.com/about-us/">About Us</a><a class="menu__link" href="https://www.bulletproof.com/ingredients/">Ingredients</a><a class="menu__link" href="https://www.bulletproof.com/testing-standards/">Testing Standards</a><a class="menu__link" href="https://www.bulletproof.com/editorial-guidelines/">Editorial Guidelines</a><a class="menu__link" href="https://www.bulletproof.com/our-team">Our Team </a></div><div class="menu__group"><strong class="menu__title">Learn</strong><a class="menu__link" href="https://www.bulletproof.com/diet/bulletproof-diet/bulletproof-for-beginners/">Beginner’s Guide to the Bulletproof Diet</a><a class="menu__link" href="https://www.bulletproof.com/coffee-articles/enhanced-coffee-benefits/">What is Enhanced Coffee?</a><a class="menu__link" href="https://www.bulletproof.com/blog/">All Articles</a><strong class="menu__title" style="margin-top:30px;">Recipes</strong><a class="menu__link" href="https://www.bulletproof.com/recipes/bulletproof-diet-recipes/bulletproof-coffee-recipe/">The Official Bulletproof Coffee Recipe</a><a class="menu__link" href="https://www.bulletproof.com/recipes/low-carb/low-carb-meals">Low Carb Meal Ideas</a><a class="menu__link" href="https://www.bulletproof.com/recipes/">All Recipes</a></div><div class="menu__group"><strong class="menu__title">Online Exclusives</strong><a class="menu__link menu__link--bg" href="/pages/subscribe-and-save" style="--image: var(--image-2);--image-x: 13;">Subscribe &amp; Save Up to 30%</a><a class="menu__link menu__link--bg" href="/pages/rewards" style="--image: var(--image-2);--image-x: 14;">Earn Bulletproof Rewards</a></div><figure class="menu__group menu__group--feature"><strong class="menu__title">Find Bulletproof Near You™</strong><a class="menu__feature" href="/pages/store-locator/"><div class="menu__feature-media"><img class="menu__feature-media-item" srcset="https://cdn.shopify.com/s/files/1/0004/3470/0319/files/bulletproof-coffee-product-spotlight-supplements_359x.jpg 359w,https://cdn.shopify.com/s/files/1/0004/3470/0319/files/bulletproof-coffee-product-spotlight-supplements.jpg 718w" loading="lazy" height="240" width="359" alt="Bulletproof supplements on counter"></div> Your favorites are just around the corner. Check the store locator to see what’s on shelves today.<span class="menu__feature-cta">Find Your Store</span></a></figure><a class="menu__cta btn btn-primary" href="https://www.bulletproof.com/about-us/">Learn More</a></div></div>  <div class="header__link header__link--drop">    <a class="header__link-text"      href="/pages/daily-deals-and-discounts"      style="        color: var(--orange);      ">Deals</a><button class="menu__toggle" type="button" onclick="headerToggleMenu(event)"        aria-controls="menu-10"        aria-expanded="false"        aria-label="Toggle Deals menu">Deals</button><div class="menu container" id="menu-10"><div class="menu__group"><strong class="menu__title">Bundle &amp; Save</strong><a class="menu__link menu__link--bg" href="/collections/build-your-own-bundle" style="--image: var(--image-2);--image-x: 12;">Build a Bundle (Save Up To 30%)</a> <a class="menu__link menu__link--bg" href="/collections/starter-kits" style="--image: var(--image-1);--image-x: 33;">Starter Kits (Save 10%) </a><a class="menu__link menu__link--bg" href="/collections/save-with-bundles" style="--image: var(--image-1);--image-x: 47;">Save with Bundles</a></div><div class="menu__group menu__group--double"><strong class="menu__title">Ways to Save</strong><a class="menu__link menu__link--bg" href="/pages/subscribe-and-save" style="--image: var(--image-2);--image-x: 13;">Subscribe &amp; Save Up To 30%</a><a class="menu__link menu__link--bg" href="/pages/refer-a-friend" style="--image: var(--image-2);--image-x: 16;">Give $15, Get $15</a><a class="menu__link menu__link--bg" href="/pages/rewards" style="--image: var(--image-2);--image-x: 14;">Earn Bulletproof Rewards</a><a class="menu__link menu__link--bg" href="https://www.bulletproof.com/email-sign-up/" style="--image: var(--image-2);--image-x: 17;">Sign Up For Email &amp; SMS</a><a class="menu__link menu__link--bg" href="/pages/shipping-policy" style="--image: var(--image-2);--image-x: 18;">Free Shipping Orders $49+ &amp; Subscriptions* $25+</a></div><figure class="menu__group menu__group--feature"><strong class="menu__title">All Benefits. No Hassles. </strong><a class="menu__feature" href="/pages/subscribe-and-save"> <div class="menu__feature-media" style="background-color: #D8D8D8;">  <img class="menu__feature-media-item" srcset="https://cdn.shopify.com/s/files/1/0004/3470/0319/files/bulletproof-coffee-product-spotlight-deals_300x.jpg 359w,https://cdn.shopify.com/s/files/1/0004/3470/0319/files/bulletproof-coffee-product-spotlight-deals.jpg 718w" loading="lazy" height="240" width="359" alt="Bulletproof coffee and supplements on a table with a neutral background"></div>Subscribe to your favorite products and have one less thing to worry about. Get up to 30% off every order and change or cancel anytime—need we say more?<span class="menu__feature-cta">Subscribe &amp; Save </span></a></figure><a class="menu__cta btn btn-primary" href="/pages/daily-deals-and-discounts">Shop All Deals</a></div></div></div><div class="header__tools header__flex header__desktop-right">      <a class="header__tools-link header__tools-link--banner" href="/pages/subscribe-and-save">        Subscribe & Save Up To 30%        <span class="header__tools-link-cta hide-on-extra-large-only">Learn More</span>      </a>      <a class="header__tools-link header__tools-link--locator"        href="/pages/store-locator"        style="--icon: var(--header-icon-store);--icon-hover: var(--header-icon-store-hover);--icon-width: 20px;">        Find a Store<span class="visually-hidden"> with our products near you</span>      </a>      <a class="header__tools-link header__tools-link--search"        href="/search"                  data-side-menu-toggle="search-menu"                style="--icon: var(--header-icon-search);--icon-hover: var(--header-icon-search-hover);--icon-width: 20px;">        Search<span class="visually-hidden"> our site</span>      </a>      <a class="header__tools-link header__tools-link--account"        href="/account"                --data-side-menu-toggle="account-menu"        style="--icon: var(--header-icon-account);--icon-hover: var(--header-icon-account-hover);--icon-width: 20px;">        Account<span class="visually-hidden"> - view your account</span>      </a>      <a class="header__tools-link header__tools-link--cart"        href="/cart"        style="--icon: var(--header-icon-cart);--icon-hover: var(--header-icon-cart-hover);--icon-width: 20px;"        data-side-menu-toggle="cart-menu">        <span class="visually-hidden">View </span>        <span class="header__cart-count header__cart-count--tools"          data-cart-count-amount="0">          0        </span>        <span class="visually-hidden"> items in your </span>Cart      </a>    </div></div></nav><script id="header-js">window.header = { $header: document.querySelector('.header'), $menu: document.querySelector('.header__container'), $menuButton: document.querySelector('.header__button--menu'), $menuFirstEl: document.querySelector('.header__container .header__logo'), $menuLastEl: document.querySelector('.header__tools-link:last-child'), $scrollLock: null, $submenuActive: null, $submenuActiveFirstEl: null, $submenuActiveLastEl: null, desktopBp: window.matchMedia('(min-width: 1170px)'), menuActiveClass: 'menu--active', menuOpen: false, menuTransitionDuration: 250, pageY: window.scrollY, submenuActiveClass: 'submenu--active', submenuActiveClassTouch: 'submenu--active--touch', submenuOpen: false,};document.addEventListener('DOMContentLoaded',() => { document.documentElement.style.setProperty('--scrollbar-width',`${window.innerWidth - document.body.clientWidth}px`); const updateScrolledPastThreshold = () => {document.documentElement.classList[window.scrollY > 10 ? 'add' : 'remove']('header--scrolled-past-threshold'); }; updateScrolledPastThreshold(); window.addEventListener('scroll',updateScrolledPastThreshold,{ passive: true }); document.querySelectorAll('.header__link--drop > a').forEach(el => {['click','touchstart'].forEach(event => { el.addEventListener(event,e => {window[`headerLinkOn${event}`](e) });}); }); headerMenuKeyboardEvents();});document.addEventListener('mobileMenuToggle',() => { if(!header.menuOpen) {mobileMenuOpen(); } else {mobileMenuClose(); }});if(typeof window.MediaQueryListEvent === 'function') { header.desktopBp.addEventListener('change',e => {if(e.matches) mobileMenuClose(); });}/* Mobile submenus */window.headerLinkOnclick = e => { if(header.desktopBp.matches) return; e.preventDefault(); headerToggleMenu(e);};/* Desktop submenus on touchscreens */window.headerLinkOntouchstart = e => { if(!header.desktopBp.matches) return; e.preventDefault(); headerToggleMenu(e,true);};window.headerMenuKeyboardEvents = () => { document.addEventListener('keydown',e => {if(e.key === 'Escape') { if(header.menuOpen) {mobileMenuClose(); } else if(header.submenuOpen) {mobileSubmenuClose(); } return;}if(!(header.menuOpen || header.submenuOpen) || !(e.key === 'Tab' || e.keyCode === 9)) return;if(e.shiftKey) { /* shift + tab */ if(header.submenuOpen) {if(document.activeElement === header.$submenuActiveFirstEl) { mobileSubmenuClose();} } else if(document.activeElement === header.$menuFirstEl) {mobileMenuClose(); }} else { /* tab */ if(header.submenuOpen) {if(document.activeElement === header.$submenuActiveLastEl) { mobileSubmenuClose();} } else if(header.menuOpen && document.activeElement === header.$menuLastEl) {mobileMenuClose(); }} });};window.headerToggleMenu = (e,isTouchDesktop) => { const $container = e.target.closest('.header__link'); if(header.submenuOpen && isTouchDesktop) {const $submenuActive = header.$submenuActive;mobileSubmenuClose();if($container !== $submenuActive) mobileSubmenuOpen($container,isTouchDesktop);return; } if(!header.submenuOpen) {mobileSubmenuOpen($container,isTouchDesktop); } else {mobileSubmenuClose(); }};window.mobileMenuClose = () => { document.documentElement.classList.remove(header.menuActiveClass); document.documentElement.classList.remove(header.submenuActiveClass); document.documentElement.classList.remove(header.submenuActiveClassTouch); /* reset focus */ header.$menuButton.focus(); header.$menu.removeAttribute('tabindex'); document.body.style.position = null; document.body.style.left = null; document.body.style.top = null; document.body.style.width = null; window.scrollTo(0,header.pageY); setTimeout(() => {header.$menu.scrollTo(0,0);header.menuOpen = false;if(document.body.classList.contains('template-bundle')) { header.$header.style.zIndex = '';}if(header.submenuOpen) mobileSubmenuClose(); },header.menuTransitionDuration);};window.mobileMenuOpen = () => { header.menuOpen = true; header.pageY = window.scrollY; document.body.style.left = 0; document.body.style.top = `-${header.pageY}px`; document.body.style.position = 'fixed'; document.body.style.width = '100%'; document.documentElement.classList.add(header.menuActiveClass); header.$menu.scrollTo(0,0); if(document.body.classList.contains('template-bundle')) {header.$header.style.zIndex = 100001; } setTimeout(() => {header.$menu.setAttribute('tabindex','0');header.$menu.focus(); },header.menuTransitionDuration);};window.mobileSubmenuClose = () => { header.$submenuActive.querySelector('.menu__toggle').setAttribute('aria-expanded',false); header.$submenuActive.classList.remove(header.submenuActiveClass); document.documentElement.classList.remove(header.submenuActiveClass); document.documentElement.classList.remove(header.submenuActiveClassTouch); header.submenuOpen = false; header.$submenuActive = null; header.$submenuActiveFirstEl = null; header.$submenuActiveLastEl = null;};window.mobileSubmenuOpen = (el,isTouchDesktop) => { header.$menu.scrollTo(0,0); header.submenuOpen = true; header.$submenuActive = el; header.$submenuActive.querySelector('.menu__toggle').setAttribute('aria-expanded',true); header.$submenuActiveFirstEl = header.$submenuActive.querySelector(header.desktopBp.matches ? '.menu__group:first-child a:first-of-type' : '.menu__toggle'); header.$submenuActiveLastEl = header.$submenuActive.querySelector('.menu__cta'); header.$submenuActive.classList.add(header.submenuActiveClass); document.documentElement.classList.add(header.submenuActiveClass); if(isTouchDesktop) document.documentElement.classList.add(header.submenuActiveClassTouch); if(!header.$submenuActive) return; const $submenu = header.$submenuActive.querySelector('.menu'); if(!$submenu) return; $submenu.scrollTo(0,0);};//# sourceMappingURL=data:application/json;base64,/* base64'd inline sourcemap */</script>
</div><div id="shopify-section-sections--22082474934307__search-menu" class="shopify-section shopify-section-group-header-group-sticky"><div class="search-menu side-menu side-menu--left"
  data-side-menu="search-menu" data-focus-trap><div class="search-menu__title side-menu__title">
      <strong class="search-menu__title-text side-menu__title-text">
        Search
      </strong>

      <button type="button" class="search-menu__close side-menu__close" data-side-menu-toggle="search-menu" data-first-el="search-menu" data-side-menu-show-at-open="search-menu">
        <span class="visually-hidden">Close Menu</span>
      </button>
    </div><div class="container search-menu__container" data-side-menu-show-at-open="search-menu">
    <form action="/search" method="get" role="search" class="search__form">
      <input id="SearchInput" style="display: none">

      <input id="SearchMenuInput" name="q" class="search__input" placeholder="Search products, recipes & more" data-side-menu-focus="search-menu">

      <button type="submit" class="search__button" tabindex="-1">
        <svg viewBox="0 0 22 21" class="icon icon--search">
          <use xlink:href="#search"></use>
        </svg>
      </button>
    </form>

    <div class="search-menu__results" data-search-menu-results></div>
  </div>
  
  <script type="template/klevu" id="klevuQuickTemplateBase">
    <div class="klevu-fluid">
        <div id="klevuSearchingArea" class="klevuQuickSearchingArea">
            <%=helper.render('kuTemplatePopularSearches',scope) %>
            <%=helper.render('klevuTrendingProducts',scope) %>

            <%=helper.render('klevuQuickAutoSuggestions',scope) %>
            <%=helper.render('klevuQuickProducts',scope) %>
            <%=helper.render('klevuQuickPageSuggestions',scope) %>

            
            
        </div>
      </div>
</script>

  <!-- Popular searches template for Quick Search Results -->

<script type="template/klevu" id="kuTemplatePopularSearches">
    <% if(data.popularSearches && data.popularSearches.length) { %>
        <div class="kuPopularSearchesBlock">
            <div class="klevuSuggestionHeading kuPopularSearchHeading">
                <span class="klevuHeadingText">
                    <%=helper.translate("Popular Searches")%>
                </span>
            </div>
            <div class="klevuAutoSuggestionsWrap klevuAutosuggestions">
                <ul>
                    <% helper.each(data.popularSearches,function(key,term){ %>
                        <% if(term && term.length) { %>
                            <li data-value="<%= helper.stripHtml(term) %>">
                                <a href="/search?q=<%= helper.stripHtml(term) %>"><%= helper.stripHtml(term) %></a>
                            </li>
                        <% } %>
                    <% }); %>
                </ul>
            </div>
        </div>
    <% } %>
</script>

    <!-- Trending products template for Quick Search Results -->

<script type="template/klevu" id="klevuTrendingProducts">
    <% if(data.query.trendingProductList) { %>
        <% if(data.query.trendingProductList.result.length > 0 ) { %>
            <div class="klevuResultsBlock">
                <div class="klevuSuggestionHeading"><span class="klevuHeadingText"><%=helper.translate("Trending Products")%></span></div>
                <div class="klevuQuickSearchResults" data-section="trendingProductList" id="trendingProductList">
                    <ul>
                      <% helper.each(data.query.trendingProductList.result,function(key,product){ %>
                          <%=helper.render('klevuQuickProductBlock',scope,data,product) %>
                      <% }); %>
                    </ul></div>
            </div>
        <% } %>
    <% } %>
</script>
  <script type="template/klevu" id="klevuQuickAutoSuggestions">
    <% if(data.suggestions.autosuggestion) { %>
        <% if(data.suggestions.autosuggestion.length> 0 ) { %>
            <div class="klevuAutoSuggestionsWrap klevuAutosuggestions">
                <div class="klevuSuggestionHeading">
                    <span class="klevuHeadingText"> <%=helper.translate("Suggestions")%></span>
                </div>
                <ul>
                    <% helper.each(data.suggestions.autosuggestion,function(key,suggestion){ %>
                        <li><a target="_self" href="<%=helper.buildUrl(data.settings.landingUrl, 'q' , helper.stripHtml(suggestion.suggest))%>" data-content="<%=helper.stripHtml(suggestion.suggest) %>" class="klevu-track-click"> <%=suggestion.suggest %> </a></li>
                    <% }); %>
                </ul>
            </div>
        <% } %>
    <% } %>
</script>

  <script type="template/klevu" id="klevuQuickPageSuggestions">
    <% if(data.query.cmsCompressed) { %>
        <% if(data.query.cmsCompressed.result.length > 0 && !(data.popularSearches && data.popularSearches.length)){ %>
            <div class="klevuAutoSuggestionsWrap klevuCmsSuggestions" id="klevuCmsContentArea">
                <div class="klevuSuggestionHeading"><span class="klevuHeadingText"><%=helper.translate("Page Results")%></span></div>
                <ul>
                    <% helper.each(data.query.cmsCompressed.result,function(key,cms){ console.log(cms) %>
                        <li>
                            <a target="_self" href="<%=cms.url%>" class="klevu-track-click" data-url="<%=cms.url%>" data-name="<%=cms.name%>">
                                <figure class="klevu-cms__image">
                                    <% if(cms.imageUrl != undefined && cms.imageUrl !== "") { %>
                                        <img src="<%=cms.imageUrl%>" alt="<%=cms.name%> thumbnail image" aria-hidden="true">
                                    <% } else { %>
                                        <div class="default-cms-logo"></div>
                                    <% } %>
                                </figure>

                                <%=cms.name%>
                            </a>
                        </li>
                    <% }); %>
                </ul>
            </div>
        <% } %>
    <% } %>
</script>

  <script type="template/klevu" id="klevuQuickCategorySuggestions">
    <% if(data.query.categoryCompressed) { %>
        <% if(data.query.categoryCompressed.result.length > 0 ){ %>
            <div class="klevuAutoSuggestionsWrap klevuCategorySuggestions" id="klevuCategoryArea">
                <div class="klevuSuggestionHeading">
                    <span class="klevuHeadingText"><%=helper.translate("Category")%></span>
                </div>
                <ul>
                    <% helper.each(data.query.categoryCompressed.result,function(key,category){ %>
                        <li><a target="_self" href="<%=category.url%>" class="klevu-track-click" data-url="<%=category.url%>" data-name="<%=category.name%>" ><%=category.name%></a></li>
                    <% }); %>
                </ul>
            </div>
        <% } %>
    <% } %>
</script>

  <script type="template/klevu" id="klevuQuickProducts">
    <% if(data.query.productList) { %>
        <% if(data.query.productList.result.length > 0 && !(data.popularSearches && data.popularSearches.length)) { %>
            <div class="klevuResultsBlock">
                <div class="klevuSuggestionHeading"><span class="klevuHeadingText"><%=helper.translate("Product Results")%></span></div>
                <div class="klevuQuickSearchResults" data-section="productList" id="productsList">
                    <ul>
                      <% helper.each(data.query.productList.result,function(key,product){ %>
                          <%=helper.render('klevuQuickProductBlock',scope,data,product) %>
                      <% }); %>
                    </ul>
                    <div class="klevuProductsViewAll">
                        <a href="<%=helper.buildUrl(data.settings.landingUrl,'q',helper.stripHtml(data.settings.term))%>" target="_parent">
                            <%=helper.translate("View All")%>
                            <svg viewBox="0 0 15 12" class="icon icon--arrow-right side-menu__cta-icon" aria-hidden="true" style="width: 10px; position: relative; top: -2px; margin-left: 5px; fill: currentColor;">
                                <use xlink:href="#arrow-right"></use>
                            </svg>
                        </a>
                    </div>
                </div>
            </div>
        <% } else { %>
            <%=helper.render('klevuQuickNoResultFound',scope) %>
        <% } %>
    <% } else { %>
        <%=helper.render('klevuQuickNoResultFound',scope) %>
    <% } %>
</script>

  <script type="template/klevu" id="klevuQuickProductBlock">
    <li class="klevuProduct" data-id="<%=dataLocal.id%>">
        <a target="_self" href="<%=dataLocal.url%>" data-id="<%=dataLocal.id%>"  class="klevuQuickProductInnerBlock trackProductClick">
            <div class="klevuProductItemTop">
                <div class="klevuQuickImgWrap">
                    <div class="klevuQuickDiscountBadge"><strong><%=dataLocal.stickyLabelHead%></strong></div>
                    <img src="<%=dataLocal.image%>" alt="<%=dataLocal.name%>" />
                </div>
            </div>
            <div class="klevuProductItemBottom">
                <div class="klevuQuickProductDescBlock">
                    <div class="klevuQuickProductName"><%=dataLocal.name%></div>
                    <div class="klevuQuickProductDesc">
                        <div class="klevuSpectxt"><%=dataLocal.summaryAttribute%><span><%=dataLocal.stickyLabelText%></span></div>
                    </div>
                    
                </div>
            </div>
            <div class="klevuClearLeft"></div>
        </a>
    </li>
</script>

  <script type="template/klevu" id="klevuQuickNoResultFound">
<% if(!(data.popularSearches && data.popularSearches.length)) { %>
    <div class="klevuQuickNoResults">
        <div class="klevuQuickNoResultsInner">
            <div class="klevuQuickNoResultsMessage">We're Sorry, No result found for term '<span><%=helper.stripHtml(data.settings.termOriginal)%></span>'.</div>
        </div>
    </div>
<% } %>
</script>

  

<span data-last-el="search-menu" tabindex="0" data-side-menu-show-at-open="search-menu"></span>
  <span data-last-el-backwards="search-menu" tabindex="-1"></span>
</div>

<button type="button" class="search-menu__overlay side-menu__overlay" data-side-menu-toggle="search-menu" title="Close Search Menu" aria-hidden="true"></button>

<style>
  .search-menu--active .search-menu {
    transform: none;
  }

  

  .search-menu--active .search-menu__overlay {
    opacity: 1;
    pointer-events: auto;
    transition-delay: 0ms, 0ms;
    visibility: visible;
  }

  html:not(.search-menu--active) .search-menu [data-first-el],
  html:not(.search-menu--active) .search-menu [data-last-el] {
    display: none;
  }
</style>




</div>
<!-- END sections: header-group-sticky -->
    </div>

    <div class="page-container banner--active" id="PageContainer">
      <main class="main-content" id="MainContent" role="main">
        <section id="shopify-section-template--22053275959331__hero" class="shopify-section"><style data-shopify>.hp-banner.nosto-element .hero-txt-container {
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
        padding: 35px 20px
    }

    .hp-banner.nosto-element .hero-reviews {
        display: block;
        width: auto;
        max-width: min(340px, 100%);
        height: auto;
        margin: 0 0 14px
    }

    .hp-banner.nosto-element .hero-title {
        font-family: Fields, "Open Sans", arial, sans-serif;
        font-weight: 700;
        font-size: 4rem;
        line-height: 1.05;
        color: #333;
        margin: 0
    }

    .hp-banner.nosto-element .hero-sub {
        font-family: Fields, "Open Sans", arial, sans-serif;
        font-weight: 500;
        font-size: 1.6rem;
        line-height: 1.3;
        color: #333;
        margin: 1.2em auto 1.5em
    }

    .hp-banner.nosto-element .hero-btn {
        background-color: #f04c00;
        color: #fff;
        border: 2px solid #fff;
        padding: 15px 50px;
        font-size: 1.6rem;
        min-width: 210px
    }

    .hp-banner.nosto-element .hero-btn:hover {
        background: #fff;
        color: #333;
        border-color: #fff
    }

    .hp-banner.nosto-element .brow {
        font-family: Dosis;
        font-weight: 700;
        text-transform: uppercase;
        font-size: 1.6rem;
        padding-bottom: 10px;
    }

    .hp-banner.nosto-element #social-b {
        margin-bottom: 10px;
        max-width: 320px;
    }

    .hp-banner.nosto-element .hero-banner-inner {
        background-color: #f6ae5b;
    }

    @media only screen and (min-width:769px) {
        .hp-banner.nosto-element #social-b {
            margin-bottom: 20px;
            max-width: 360px;
        }

        .hp-banner.nosto-element .hero-banner-inner {
            left: 48%;
            background: none;
        }

        .hp-banner.nosto-element .hero-txt-container {
            position: absolute;
            top: 50%;
            left: -7%;
            width: 61%;
            max-width: none;
            margin: 0;
            padding: 0 4vw;
            transform: translateY(-50%);
            justify-content: center
        }

        .hp-banner.nosto-element .hero-title {
            font-size: clamp(4.2rem, 4.5vw, 4.5rem);
            max-width: 450px
        }

        .hp-banner.nosto-element .hero-sub {
            margin: 0.75em auto 1.5em;
            max-width: 400px
        }

        .hp-banner.nosto-element .hero-btn {
            padding: 1.5rem 3.5rem
        }
    }

    @media only screen and (min-width:1170px) {
        .hp-banner.nosto-element .hero-txt-container {
            padding: 0 5vw
        }

        .hp-banner.nosto-element .hero-title {
            font-size: clamp(4.5rem, 3.9vw, 6rem);
            max-width: 550px
        }

        .hp-banner.nosto-element .hero-sub {
            font-size: clamp(1.6rem, 1.5vw, 2rem);
            max-width: 89%;
            margin: 1vw auto 1.5vw
        }

        .hp-banner.nosto-element .brow {
            font-size: 1.8rem;
        }
    }

    @media screen and (min-width:1600px) {
        .hp-banner.nosto-element .hero-title {
            font-size: clamp(6rem, 3.5vw, 7rem);
            max-width: 650px
        }
    }</style><link href="//www.bulletproof.com/cdn/shop/t/617/assets/hero.css?v=97462799829896938221789540246" rel="stylesheet" type="text/css" media="all" />
  <div class="hp-banner nosto-element" data-promo-slot="wp-home-hero" data-promo-name="psc"><a class="hero-link" href="/products/enhanced-creamer-pumpkin-spice-14-8-oz"><picture class="hero-img"><source media="(min-width: 1170px)" sizes="100vw" srcset="https://cdn.shopify.com/s/files/1/0004/3470/0319/files/bulletproof-pumpkin-spice-creamer-next-to-latte-pourover-and-pumpkins-desktop.jpg"><source media="(min-width: 769px)" sizes="100vw" srcset="https://cdn.shopify.com/s/files/1/0004/3470/0319/files/bulletproof-pumpkin-spice-creamer-next-to-latte-pourover-and-pumpkins-tablet.jpg"><img src="https://cdn.shopify.com/s/files/1/0004/3470/0319/files/bulletproof-pumpkin-spice-creamer-next-to-latte-pourover-and-pumpkins-mobile.jpg" alt="Man in office setting in the clouds with Bulletproof Mushroom Latte" class="hp-hero-img" width="1536" height="960" loading="eager" fetchpriority="high"></picture><div class="hero-banner-inner"><div class="hero-txt-container">
<img id="social-b" src="https://cdn.shopify.com/s/files/1/0004/3470/0319/files/reviews-brow-black-duo-centered.svg">
<h2 class="h1 hero-title">Fall's Favorite Creamer is Back</h2> 
<span class="hero-sub">Grab Pumpkin Spice Creamer while you can! Sold out three years in a row (but who's counting!)</span>
                                <button id="hero-btn" class="btn ">Get Your Creamer</button>
              </div></div>

</a></div>


</section><section id="shopify-section-template--22053275959331__categories" class="shopify-section global-shop-by-slider container"><style id="global-url-slider-css">.global-shop-by-slider{padding-bottom:calc(73px - 25px);}@media (min-width:601px){.global-shop-by-slider{padding-bottom:calc(85px - 30px);}}@media (min-width:1170px){.global-shop-by-slider{padding-bottom:calc(127px - 40px);}}.shop-by-slider{margin:0 -15px;transition:opacity 0.5s;overflow:hidden;padding-bottom:25px;}@media (min-width:601px){.shop-by-slider{padding-bottom:30px;}}@media (min-width:1170px){.shop-by-slider{padding-bottom:40px;}}.shop-by-slider .swiper-wrapper{display:flex;}.global-shop-by-slider h2{font-family:Fields, 'Open Sans', arial, sans-serif;font-weight:700;}.global-shop-by-slider .swiper-slide{height:auto !important;}.global-shop-by-slider .swiper-slide > a{height:100% !important;}.global-shop-by-slider__tabs{display:flex;flex-wrap:wrap;justify-content:center;margin-top:8px;}.global-shop-by-slider__tabs a{text-transform:uppercase;color:var(--color-text);border-bottom:2px solid transparent;padding:0 10px 7px;line-height:1.4;font-size:1.4rem;letter-spacing:0.06rem;margin:10px 2.7% 1px;position:relative;font-family:Dosis, "Open Sans", arial, sans-serif !important;font-weight:700 !important;}@media screen and (min-width:769px){.global-shop-by-slider__tabs a{font-size:1.8rem !important;}}.global-shop-by-slider__tabs a::after{content:"";height:2px;width:0;position:absolute;left:0;right:0;margin:0 auto;bottom:0;background-color:#dedede;transition:0.35s ease-in-out;}.global-shop-by-slider__tabs a.activelink{color:var(--pri);font-weight:700;pointer-events:none;}.global-shop-by-slider__tabs a.activelink::after{width:100%;background-color:var(--pri);}.global-shop-by-slider__tabs a:hover:not(.activelink)::after{width:100%;}/* Keyboard focus:replace the global outline box with the intended orange text + animated underline. */.global-shop-by-slider__tabs a:focus{outline:none;}.global-shop-by-slider__tabs a:focus-visible{color:var(--pri);}.global-shop-by-slider__tabs a:focus-visible::after{width:100%;background-color:var(--pri);}.shop-by-slider-item{flex-shrink:0;padding:15px 15px 22px;width:100%;}@media (min-width:375px){.shop-by-slider-item{width:50%;}}@media (min-width:769px){.shop-by-slider-item{width:50%;}}@media (min-width:769px){.shop-by-slider-item{width:33.333%;}}@media (min-width:769px){.shop-by-slider-item{width:33.333%;}}@media (min-width:1170px){.shop-by-slider-item{width:25%;}}.shop-by-slider-item a{height:100%;}.shop-by-slider-item a.box-shadow{box-shadow:none;transition:border-color 0.15s ease-in-out, transform 0.3s ease-in-out;display:flex;flex-direction:column;}.shop-by-slider-item a.box-shadow:focus h6{outline:0;}.shop-by-slider-item .product-card-img{position:relative;overflow:hidden;padding-top:100%;overflow:hidden;}.shop-by-slider-item .product-card-img img{position:absolute;top:0;left:0;width:100%;height:100%;transition:0.3s;}.shop-by-slider-item__title{text-transform:uppercase;font-weight:700;font-size:1.6rem;line-height:1.1;font-family:Dosis, "Open Sans", arial, sans-serif !important;color:var(--pri);text-align:center;padding:14px 8px;letter-spacing:0.06em;display:flex;justify-content:center;min-height:50px;align-items:center;}.global-shop-by-slider .swiper-button-prev{left:15px;}.global-shop-by-slider .swiper-button-next{right:15px;}.global-shop-by-slider .swiper-button-prev,.global-shop-by-slider .swiper-button-next{opacity:0.75;}.global-shop-by-slider .swiper-button-prev:focus,.global-shop-by-slider .swiper-button-next:focus{outline:none;}.global-shop-by-slider .swiper-button-prev:focus,.global-shop-by-slider .swiper-button-next:focus,.global-shop-by-slider .swiper-button-prev:hover,.global-shop-by-slider .swiper-button-next:hover{color:#f04c00;opacity:1;}.shop-by-slider-item .zoom-trigger:hover .product-card-img img{transform:scale(1.05);}.shop-by-slider-item .zoom-trigger:hover .shop-by-slider-item__title:after{transform:translateX(4px);opacity:1;}.shop-by-slider .swiper-pagination{position:absolute;bottom:0;left:0;right:0;text-align:center;}.shop-by-slider .swiper-pagination-bullet{width:20px;height:3px;border-radius:0;background:#e2c8b6;opacity:1;margin:0 4px;}.shop-by-slider .swiper-pagination-bullet-active{background:#f04c00;}.shop-by-slider .swiper-pagination-bullet:focus,.shop-by-slider .swiper-pagination-bullet.focus-visible{outline:none;background:#333;}.shop-by-slider .swiper-button-next:focus,.shop-by-slider .swiper-button-prev:focus{outline:none;color:#f04c00;}.shop-by-slider .swiper-button-next,.shop-by-slider .swiper-button-prev{position:absolute;display:block;height:20px;width:20px;line-height:0;font-size:0;cursor:pointer;background:transparent;color:#333;padding:0;border:none;top:auto;bottom:0;transform:none;}.shop-by-slider .swiper-button-prev{left:10px;}.shop-by-slider .swiper-button-next{right:10px;}@media screen and (min-width:600px){.global-shop-by-slider__tabs{margin-top:23px;}.shop-by-slider-item h6{font-size:1.8rem;min-height:50px;}}@media only screen and (min-width:1170px){.shop-by-slider-item h6:after{content:"";background-image:url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' width='10.9' height='9.06' viewBox='0 0 10.9 9.06'%3E%3Cg id='Icon_feather-arrow-right' data-name='Icon feather-arrow-right' transform='translate(-4.5 -6.97)'%3E%3Cpath id='Path_12' data-name='Path 12' d='M7.5, 18h9.84' transform='translate(-3 -6.5)' fill='none' stroke='%23000' stroke-linejoin='round' stroke-width='1.5'/%3E%3Cpath id='Path_13' data-name='Path 13' d='M18, 7.5l4, 4-4, 4' transform='translate(-7.66 0)' fill='none' stroke='%23000' stroke-width='1.5'/%3E%3C/g%3E%3C/svg%3E%0A");width:11px;height:8px;display:inline-block;background-repeat:no-repeat;transform:translateX(-4px);opacity:0;transition:0.3s;padding-bottom:10px;}}@media only screen and (max-width:1169px){.global-shop-by-slider__tabs a{padding:0 6px 3px;}}@media only screen and (max-width:600px){.global-shop-by-slider__tabs{justify-content:space-evenly;}.global-shop-by-slider__tabs a{margin:8px 2px;}}@media only screen and (max-width:374px){.shop-by-slider .swiper-pagination-bullet{width:16px;margin:0 2px;}}[id="shopify-section-template--22053275959331__categories"]{padding-top:35px;}[id="shopify-section-template--22053275959331__categories"] .bulletproof_title{font-size:2.8rem;line-height:1.1;letter-spacing:0em;}@media (min-width:769px){[id="shopify-section-template--22053275959331__categories"] .bulletproof_title{font-size:3.2rem;}}@media (min-width:769px) and (max-width:1169px){[id="shopify-section-template--22053275959331__categories"]{padding-top:60px;}}@media (min-width:1170px){[id="shopify-section-template--22053275959331__categories"]{padding-top:76px;}[id="shopify-section-template--22053275959331__categories"] .bulletproof_title{font-size:4.0rem;}}</style><h2 class="text-center bulletproof_title" style="color: #333333;">Shop Functional Nutrition</h2>    <div class="global-shop-by-slider__tabs">      <a href="javascript:void();" class="activelink" data-tag="shop_by_tab_1">Shop By Category</a>      <a href="javascript:void();" data-tag="shop_by_tab_2">Shop By Benefit</a>    </div>    <div id="shop-by-slider-content"><div class="shop-by-slider swiper" id="shop_by_tab_1" data-shop-by-slider-tab="1" style="opacity: 1;" aria-label="Shop By Category">          <div class="swiper-wrapper">                          <div class="shop-by-slider-item swiper-slide">    <a href="/collections/coffee" class="zoom-trigger box-shadow">                  <picture class="product-card-img">        <img loading="lazy" width="600" height="600" src="https://cdn.shopify.com/s/files/1/0004/3470/0319/files/high-achiever-pods-orginal-coffee-render.jpg" alt="Coffee">      </picture>            <strong class="shop-by-slider-item__title">Coffee</strong>    </a></div>                          <div class="shop-by-slider-item swiper-slide">    <a href="/collections/supplements" class="zoom-trigger box-shadow">                  <picture class="product-card-img">        <img loading="lazy" width="600" height="600" src="https://cdn.shopify.com/s/files/1/0004/3470/0319/files/vitamins-adk-innerfuel-prebiotic-acv-gummies.jpg" alt="Supplements">      </picture>            <strong class="shop-by-slider-item__title">Supplements</strong>    </a></div>                          <div class="shop-by-slider-item swiper-slide">    <a href="/collections/mct-oil" class="zoom-trigger box-shadow">                  <picture class="product-card-img">        <img loading="lazy" width="600" height="600" src="https://cdn.shopify.com/s/files/1/0004/3470/0319/files/brain-octane-mct-oil.jpg" alt="MCT Oil">      </picture>            <strong class="shop-by-slider-item__title">MCT Oil</strong>    </a></div>                          <div class="shop-by-slider-item swiper-slide">    <a href="/collections/mix-ins" class="zoom-trigger box-shadow">                  <picture class="product-card-img">        <img loading="lazy" width="600" height="600" src="https://cdn.shopify.com/s/files/1/0004/3470/0319/files/original-creamer.jpg" alt="Mix-Ins">      </picture>            <strong class="shop-by-slider-item__title">Mix-Ins</strong>    </a></div>                          <div class="shop-by-slider-item swiper-slide">    <a href="/collections/collagen" class="zoom-trigger box-shadow">                  <picture class="product-card-img">        <img loading="lazy" width="600" height="600" src="https://cdn.shopify.com/s/files/1/0004/3470/0319/files/unflavored-collagen-peptides_1.jpg" alt="Collagen">      </picture>            <strong class="shop-by-slider-item__title">Collagen</strong>    </a></div>                          <div class="shop-by-slider-item swiper-slide">    <a href="/collections/bulletproof-best-sellers" class="zoom-trigger box-shadow">                  <picture class="product-card-img">        <img loading="lazy" width="600" height="600" src="https://cdn.shopify.com/s/files/1/0004/3470/0319/files/unflavored-collagen-peptides-brain-octane-oil-original-coffee.jpg" alt="Best Sellers">      </picture>            <strong class="shop-by-slider-item__title">Best Sellers</strong>    </a></div>                      </div>          <div class="swiper-pagination"></div>          <div class="swiper-button-prev"></div>          <div class="swiper-button-next"></div>        </div><div class="shop-by-slider swiper hide" id="shop_by_tab_2" data-shop-by-slider-tab="2" aria-label="Shop By Benefit">          <div class="swiper-wrapper">                          <div class="shop-by-slider-item swiper-slide">    <a href="/collections/daily-wellness" class="zoom-trigger box-shadow">                  <picture class="product-card-img">        <img loading="lazy" width="600" height="600" src="https://cdn.shopify.com/s/files/1/0004/3470/0319/files/greens-packets-tub-with-shaker-bottle-and-scoop.jpg" alt="Daily Wellness">      </picture>            <strong class="shop-by-slider-item__title">Daily Wellness</strong>    </a></div>                          <div class="shop-by-slider-item swiper-slide">    <a href="/collections/immune-support" class="zoom-trigger box-shadow">                  <picture class="product-card-img">        <img loading="lazy" width="600" height="600" src="https://cdn.shopify.com/s/files/1/0004/3470/0319/files/liposomal-glutathione-bottle-with-supplement-sitting-on-coaster-in-countertop-setting.jpg" alt="Immune Support Supplements">      </picture>            <strong class="shop-by-slider-item__title">Immune Support Supplements</strong>    </a></div>                          <div class="shop-by-slider-item swiper-slide">    <a href="/collections/stress-sleep" class="zoom-trigger box-shadow">            <picture class="product-card-img">        <source media="(min-width: 500px)"          srcset="            //www.bulletproof.com/cdn/shop/files/bulletproof-zen-mode-render-with-three-capsules.jpg?v=1781542470&width=300 300w,            //www.bulletproof.com/cdn/shop/files/bulletproof-zen-mode-render-with-three-capsules.jpg?v=1781542470&width=400 400w,            //www.bulletproof.com/cdn/shop/files/bulletproof-zen-mode-render-with-three-capsules.jpg?v=1781542470&width=500 500w,            //www.bulletproof.com/cdn/shop/files/bulletproof-zen-mode-render-with-three-capsules.jpg?v=1781542470&width=600 600w,            //www.bulletproof.com/cdn/shop/files/bulletproof-zen-mode-render-with-three-capsules.jpg?v=1781542470&width=700 700w,            //www.bulletproof.com/cdn/shop/files/bulletproof-zen-mode-render-with-three-capsules.jpg?v=1781542470&width=800 800w          "        >        <img loading="lazy"          height="1200"          width="1200"          sizes="auto"          src="//www.bulletproof.com/cdn/shop/files/bulletproof-zen-mode-render-with-three-capsules.jpg?crop=center&height=200&v=1781542470&width=200"          alt="Bulletproof Zen Mode supplement bottle next to 3 supplement capsules"          >      </picture>            <strong class="shop-by-slider-item__title">Stress & Sleep</strong>    </a></div>                          <div class="shop-by-slider-item swiper-slide">    <a href="/collections/gut-digestive-health" class="zoom-trigger box-shadow">                  <picture class="product-card-img">        <img loading="lazy" width="600" height="600" src="https://cdn.shopify.com/s/files/1/0004/3470/0319/files/hand-scooping-innerfuel-prebiotics-in-coffee.jpg" alt="Gut &amp; Digestive Health Supplements">      </picture>            <strong class="shop-by-slider-item__title">Gut & Digestive Health Supplements</strong>    </a></div>                          <div class="shop-by-slider-item swiper-slide">    <a href="/collections/energy" class="zoom-trigger box-shadow">                  <picture class="product-card-img">        <img loading="lazy" width="600" height="600" src="https://cdn.shopify.com/s/files/1/0004/3470/0319/files/energy-collagen-protein-sitting-next-to-pink-smoothie.jpg" alt="Energy Supplements">      </picture>            <strong class="shop-by-slider-item__title">Energy Supplements</strong>    </a></div>                          <div class="shop-by-slider-item swiper-slide">    <a href="/collections/brain-health" class="zoom-trigger box-shadow">                  <picture class="product-card-img">        <img loading="lazy" width="600" height="600" src="https://cdn.shopify.com/s/files/1/0004/3470/0319/files/hand-holding-coffee-with-brain-octane-mct-oil.jpg" alt="Brain Health">      </picture>            <strong class="shop-by-slider-item__title">Brain Health</strong>    </a></div>                          <div class="shop-by-slider-item swiper-slide">    <a href="/collections/bones-joints" class="zoom-trigger box-shadow">                  <picture class="product-card-img">        <img loading="lazy" width="600" height="600" src="https://cdn.shopify.com/s/files/1/0004/3470/0319/files/unflavored-collagen-peptides-with-coffee-kitchen-scene.jpg" alt="Bones and Joints">      </picture>            <strong class="shop-by-slider-item__title">Bones and Joints</strong>    </a></div>                      </div>          <div class="swiper-pagination"></div>          <div class="swiper-button-prev"></div>          <div class="swiper-button-next"></div>        </div></div>    <script>      document.addEventListener('DOMContentLoaded', function() {        const section = document.getElementById('shopify-section-template--22053275959331__categories');        const sliderEls = section.querySelectorAll('.shop-by-slider');        const swiperInstances = {};        function fixTabIndexLoopMode(el) {          el.querySelectorAll('.swiper-slide:not(.swiper-slide-visible)').forEach((slide) => {            slide.setAttribute('tabindex', '-1');            if (slide.querySelector('a')) {              slide.querySelector('a').setAttribute('tabindex', '-1');            }          });          el.querySelectorAll('.swiper-slide.swiper-slide-visible').forEach((slide) => {            slide.removeAttribute('tabindex');            if (slide.querySelector('a')) {              slide.querySelector('a').removeAttribute('tabindex');            }          });        };        const swiperConfig = {          rewind: true,          slidesPerView: 1,          slidesPerGroup: 1,          spaceBetween: 0,          watchSlidesProgress: true,          pagination: {            el: '.swiper-pagination',            clickable: true          },          navigation: {            nextEl: '.swiper-button-next',            prevEl: '.swiper-button-prev'          },          breakpoints: {            375: {              slidesPerView: 2,              slidesPerGroup: 2,            },            768: {              slidesPerView: 3,              slidesPerGroup: 3,            },            1170: {              slidesPerView: 4,              slidesPerGroup: 4,            }          }        };        sliderEls.forEach(function(sliderEl) {          const sliderId = sliderEl.id;          swiperInstances[sliderId] = new Swiper(sliderEl, {            ...swiperConfig,            pagination: {              el: sliderEl.querySelector('.swiper-pagination'),              clickable: true            },            navigation: {              nextEl: sliderEl.querySelector('.swiper-button-next'),              prevEl: sliderEl.querySelector('.swiper-button-prev')            },            on: {              init: function (s) {                requestAnimationFrame(() => {                  fixTabIndexLoopMode(s.el);                  const paginationButtons = s.el.querySelectorAll('.swiper-pagination button');                  paginationButtons.forEach(function(btn) {                    btn.removeAttribute('tabindex');                  });                });              },              slideChange: function (s) {                requestAnimationFrame(() => {                  fixTabIndexLoopMode(s.el);                });              }            }          });        });        section.querySelectorAll('[data-tag]').forEach(function(tabEl) {          tabEl.addEventListener('click', function() {            var clickedTab = this;            var tag = clickedTab.dataset.tag;            clickedTab.classList.add('activelink');            Array.from(clickedTab.parentElement.children).forEach(function(sibling) {              if (sibling !== clickedTab) sibling.classList.remove('activelink');            });            section.style.minHeight = section.offsetHeight + 'px';            sliderEls.forEach(function(slider) {              slider.style.opacity = '0';              if (slider.id === tag) {                slider.classList.remove('hide');              } else {                slider.classList.add('hide');              }            });            requestAnimationFrame(function() {              if (swiperInstances[tag]) {                swiperInstances[tag].update();              }              sliderEls.forEach(function(slider) {                slider.style.opacity = '1';              });              section.style.minHeight = 'auto';            });          });        });      });    </script> 
</section><div id="shopify-section-template--22053275959331__promo_1" class="shopify-section index-section"><style>
  .feature-columns-section{padding-bottom:35px}
  @media(min-width:769px){.feature-columns-section{padding-bottom:50px}}
  /* This theme defines .large--/.small-- grid classes but NOT .medium-up--*, which
     this section's markup uses — so the cards fell back to .grid__item{width:100%}
     (single column, full width). Define the 2-col/3-col widths (scoped to this
     section) and constrain the content to the site container. */
  .feature-columns-section .grid{display:flex;flex-wrap:wrap;margin-left:0;justify-content:center}
  .feature-columns-section .grid__item{float:none;padding-left:0;width:100%}
  @media only screen and (min-width:769px){
    .feature-columns-section .grid__item.medium-up--one-half{width:50%}
    .feature-columns-section .grid__item.medium-up--one-third{width:33.3333%}
  }
  /* Type + image parity with WP prod promo cards, responsive (matches live
     www.bulletproof.com computed styles: title 22/28/32px, subheading 16px).
     height:auto keeps the image at its natural aspect ratio at every width; the
     theme's own width:calc(100% - 2px)/margin:2px provides the small card gap. */
  /* Promo images are 1280x900 (1.42:1). Pin that aspect so object-fit:cover shows the FULL
     image (no crop of the composed art / partnership banners) and both cards in a row stay
     equal height. Applies to both the picker and the URL-override <img>. */
  .feature-columns-section .feature-columns__image img{height:auto;display:block;aspect-ratio:1280/900;object-fit:cover}
  .feature-columns-section .feature-columns__title{font-family:Fields,"Open Sans",arial,sans-serif;font-weight:700;font-size:2.2rem;line-height:1;margin:0}
  .feature-columns-section .feature-columns__subheading{font-size:1.6rem;line-height:1.4;max-width:500px;color:#333}
  @media only screen and (min-width:769px){
    .feature-columns-section .feature-columns__body{margin:30px 0}
    .feature-columns-section .feature-columns__title{font-size:2.8rem}
  }
  @media only screen and (min-width:1170px){
    .feature-columns-section .feature-columns__title{font-size:3.2rem}
  }
  /* Mobile: match prod's card rhythm (the WP homepage uses these same classes). Images run
     full-bleed; the side inset lives on the copy (32px) and title (22px), NOT the body, so the
     text column is prod-width; body margin 25px 0 gives the vertical rhythm (no per-item margin). */
  @media only screen and (max-width:768px){
    /* Drop the section's own bottom padding on mobile: with two 2-card sections stacking, that
       padding lands below the 2nd card only, giving it extra height. The 25px body rhythm below
       carries all spacing evenly across the four cards; the next section supplies its own top gap. */
    .feature-columns-section{padding-bottom:0}
    .feature-columns-section .container{width:100%;max-width:none;padding:0}
    .feature-columns-section .grid__item{margin-bottom:0}
    .feature-columns-section .feature-columns__body{margin:25px 0;padding:0}
    .feature-columns-section .feature-columns__title{padding:0 22px 4.4px}
    .feature-columns-section .feature-columns__subheading{max-width:none;padding:0 32px;margin:0 0 25px}
    .feature-columns-section .section-header{padding:0 22px}
  }
</style>
<div class="feature-columns-section">
  <div class="container">
  

  <div class="grid grid--no-gutters grid--uniform grid--flush-bottom">

    
      

      <div class="grid__item medium-up--one-half text-center" data-promo-slot="wp-hp-promo-card" data-promo-name="Fall’s Favorite Creamer is Back"  >
        
          
          <a href="/products/enhanced-creamer-pumpkin-spice-14-8-oz" class="feature-columns__image" itemscope>
          
            
<img class="feature-columns__img-url"
                src="https://cdn.shopify.com/s/files/1/0004/3470/0319/files/bulletproof-pumpkin-spice-creamer-next-to-latte-pourover-and-pumpkins-promo-card.jpg?width=950" srcset="https://cdn.shopify.com/s/files/1/0004/3470/0319/files/bulletproof-pumpkin-spice-creamer-next-to-latte-pourover-and-pumpkins-promo-card.jpg?width=450 450w, https://cdn.shopify.com/s/files/1/0004/3470/0319/files/bulletproof-pumpkin-spice-creamer-next-to-latte-pourover-and-pumpkins-promo-card.jpg?width=700 700w, https://cdn.shopify.com/s/files/1/0004/3470/0319/files/bulletproof-pumpkin-spice-creamer-next-to-latte-pourover-and-pumpkins-promo-card.jpg?width=950 950w, https://cdn.shopify.com/s/files/1/0004/3470/0319/files/bulletproof-pumpkin-spice-creamer-next-to-latte-pourover-and-pumpkins-promo-card.jpg?width=1280 1280w" sizes="(min-width:769px) 50vw, 100vw"
                alt="Bulletproof enhanced pumpkin spice creamer with cup of coffee and whip cream"
                width="1280" height="900" loading="lazy" decoding="async">
            
          
          </a>
          
        

        <div class="feature-columns__body">
          
            <h2 class="feature-columns__title">Fall’s Favorite Creamer is Back</h2>
          

          
            <div class="feature-columns__subheading"><p>Grab Pumpkin Spice Creamer while you can! Sold out three years in a row (but who's counting!)</p></div>
          

          
            <a href="/products/enhanced-creamer-pumpkin-spice-14-8-oz" class="feature-columns__btn btn btn--secondary"  aria-label="Don't Miss Out" >
              Don't Miss Out
            </a>
          
        </div>
      </div>
    
      

      <div class="grid__item medium-up--one-half text-center" data-promo-slot="wp-hp-promo-card" data-promo-name="Brain Power In Every Scoop"  >
        
          
          <a href="/products/brain-octane-c8-mct-powder-8-8-oz" class="feature-columns__image" itemscope>
          
            
<img class="feature-columns__img-url"
                src="https://cdn.shopify.com/s/files/1/0004/3470/0319/files/brain-octane-mct-powder-sitting-on-kitchen-counter-with-protein-balls-coffee-mug-smoothie-glass-and-blender.jpg?width=950" srcset="https://cdn.shopify.com/s/files/1/0004/3470/0319/files/brain-octane-mct-powder-sitting-on-kitchen-counter-with-protein-balls-coffee-mug-smoothie-glass-and-blender.jpg?width=450 450w, https://cdn.shopify.com/s/files/1/0004/3470/0319/files/brain-octane-mct-powder-sitting-on-kitchen-counter-with-protein-balls-coffee-mug-smoothie-glass-and-blender.jpg?width=700 700w, https://cdn.shopify.com/s/files/1/0004/3470/0319/files/brain-octane-mct-powder-sitting-on-kitchen-counter-with-protein-balls-coffee-mug-smoothie-glass-and-blender.jpg?width=950 950w, https://cdn.shopify.com/s/files/1/0004/3470/0319/files/brain-octane-mct-powder-sitting-on-kitchen-counter-with-protein-balls-coffee-mug-smoothie-glass-and-blender.jpg?width=1280 1280w" sizes="(min-width:769px) 50vw, 100vw"
                alt="Brain Power In Every Scoop"
                width="1280" height="900" loading="lazy" decoding="async">
            
          
          </a>
          
        

        <div class="feature-columns__body">
          
            <h2 class="feature-columns__title">Brain Power In Every Scoop</h2>
          

          
            <div class="feature-columns__subheading"><p>Support focus, lasting energy and feelings of fullness with creamy C8 MCT powder that mixes easily into your daily routine.†</p></div>
          

          
            <a href="/products/brain-octane-c8-mct-powder-8-8-oz" class="feature-columns__btn btn btn--secondary"  aria-label="TRY YOURS NOW" >
              TRY YOURS NOW
            </a>
          
        </div>
      </div>
    

    
  </div>
  </div>
</div>


</div><div id="shopify-section-template--22053275959331__promo_2" class="shopify-section index-section"><style>
  .feature-columns-section{padding-bottom:35px}
  @media(min-width:769px){.feature-columns-section{padding-bottom:50px}}
  /* This theme defines .large--/.small-- grid classes but NOT .medium-up--*, which
     this section's markup uses — so the cards fell back to .grid__item{width:100%}
     (single column, full width). Define the 2-col/3-col widths (scoped to this
     section) and constrain the content to the site container. */
  .feature-columns-section .grid{display:flex;flex-wrap:wrap;margin-left:0;justify-content:center}
  .feature-columns-section .grid__item{float:none;padding-left:0;width:100%}
  @media only screen and (min-width:769px){
    .feature-columns-section .grid__item.medium-up--one-half{width:50%}
    .feature-columns-section .grid__item.medium-up--one-third{width:33.3333%}
  }
  /* Type + image parity with WP prod promo cards, responsive (matches live
     www.bulletproof.com computed styles: title 22/28/32px, subheading 16px).
     height:auto keeps the image at its natural aspect ratio at every width; the
     theme's own width:calc(100% - 2px)/margin:2px provides the small card gap. */
  /* Promo images are 1280x900 (1.42:1). Pin that aspect so object-fit:cover shows the FULL
     image (no crop of the composed art / partnership banners) and both cards in a row stay
     equal height. Applies to both the picker and the URL-override <img>. */
  .feature-columns-section .feature-columns__image img{height:auto;display:block;aspect-ratio:1280/900;object-fit:cover}
  .feature-columns-section .feature-columns__title{font-family:Fields,"Open Sans",arial,sans-serif;font-weight:700;font-size:2.2rem;line-height:1;margin:0}
  .feature-columns-section .feature-columns__subheading{font-size:1.6rem;line-height:1.4;max-width:500px;color:#333}
  @media only screen and (min-width:769px){
    .feature-columns-section .feature-columns__body{margin:30px 0}
    .feature-columns-section .feature-columns__title{font-size:2.8rem}
  }
  @media only screen and (min-width:1170px){
    .feature-columns-section .feature-columns__title{font-size:3.2rem}
  }
  /* Mobile: match prod's card rhythm (the WP homepage uses these same classes). Images run
     full-bleed; the side inset lives on the copy (32px) and title (22px), NOT the body, so the
     text column is prod-width; body margin 25px 0 gives the vertical rhythm (no per-item margin). */
  @media only screen and (max-width:768px){
    /* Drop the section's own bottom padding on mobile: with two 2-card sections stacking, that
       padding lands below the 2nd card only, giving it extra height. The 25px body rhythm below
       carries all spacing evenly across the four cards; the next section supplies its own top gap. */
    .feature-columns-section{padding-bottom:0}
    .feature-columns-section .container{width:100%;max-width:none;padding:0}
    .feature-columns-section .grid__item{margin-bottom:0}
    .feature-columns-section .feature-columns__body{margin:25px 0;padding:0}
    .feature-columns-section .feature-columns__title{padding:0 22px 4.4px}
    .feature-columns-section .feature-columns__subheading{max-width:none;padding:0 32px;margin:0 0 25px}
    .feature-columns-section .section-header{padding:0 22px}
  }
</style>
<div class="feature-columns-section">
  <div class="container">
  

  <div class="grid grid--no-gutters grid--uniform grid--flush-bottom">

    
      

      <div class="grid__item medium-up--one-half text-center" data-promo-slot="wp-hp-promo-card" data-promo-name="Meet The Mood Booster"  >
        
          
          <a href="/products/mood-booster-mushroom-coffee" class="feature-columns__image" itemscope>
          
            
<img class="feature-columns__img-url"
                src="https://cdn.shopify.com/s/files/1/0004/3470/0319/files/mood-booster-surrounded-by-sky-and-clouds-with-mushrooms-and-french-press-sitting-adjacent.jpg?width=950" srcset="https://cdn.shopify.com/s/files/1/0004/3470/0319/files/mood-booster-surrounded-by-sky-and-clouds-with-mushrooms-and-french-press-sitting-adjacent.jpg?width=450 450w, https://cdn.shopify.com/s/files/1/0004/3470/0319/files/mood-booster-surrounded-by-sky-and-clouds-with-mushrooms-and-french-press-sitting-adjacent.jpg?width=700 700w, https://cdn.shopify.com/s/files/1/0004/3470/0319/files/mood-booster-surrounded-by-sky-and-clouds-with-mushrooms-and-french-press-sitting-adjacent.jpg?width=950 950w, https://cdn.shopify.com/s/files/1/0004/3470/0319/files/mood-booster-surrounded-by-sky-and-clouds-with-mushrooms-and-french-press-sitting-adjacent.jpg?width=1280 1280w" sizes="(min-width:769px) 50vw, 100vw"
                alt="Bulletproof The Mood Booster ground coffee next to functional mushrooms and cup of coffee"
                width="1280" height="900" loading="lazy" decoding="async">
            
          
          </a>
          
        

        <div class="feature-columns__body">
          
            <h2 class="feature-columns__title">Meet The Mood Booster</h2>
          

          
            <div class="feature-columns__subheading"><p>Clean coffee enhanced with lion’s mane, ashwagandha and reishi to help support mood and bring balance to busy days.†</p></div>
          

          
            <a href="/products/mood-booster-mushroom-coffee" class="feature-columns__btn btn btn--secondary"  aria-label="TRY IT NOW" >
              Get it Now
            </a>
          
        </div>
      </div>
    
      

      <div class="grid__item medium-up--one-half text-center" data-promo-slot="wp-hp-promo-card" data-promo-name="The Flavor Customers Can&#39;t Stop Raving About"  >
        
          
          <a href="/products/flavored-coffee-cinnamon-vanilla" class="feature-columns__image" itemscope>
          
            
<img class="feature-columns__img-url"
                src="https://cdn.shopify.com/s/files/1/0004/3470/0319/files/hand-stirring-coffee-mug-next-to-cinnamon-flavored-coffee-and-french-press-promo-card.jpg?width=950" srcset="https://cdn.shopify.com/s/files/1/0004/3470/0319/files/hand-stirring-coffee-mug-next-to-cinnamon-flavored-coffee-and-french-press-promo-card.jpg?width=450 450w, https://cdn.shopify.com/s/files/1/0004/3470/0319/files/hand-stirring-coffee-mug-next-to-cinnamon-flavored-coffee-and-french-press-promo-card.jpg?width=700 700w, https://cdn.shopify.com/s/files/1/0004/3470/0319/files/hand-stirring-coffee-mug-next-to-cinnamon-flavored-coffee-and-french-press-promo-card.jpg?width=950 950w, https://cdn.shopify.com/s/files/1/0004/3470/0319/files/hand-stirring-coffee-mug-next-to-cinnamon-flavored-coffee-and-french-press-promo-card.jpg?width=1280 1280w" sizes="(min-width:769px) 50vw, 100vw"
                alt="Bulletproof flavored coffee next to raw cinnamon and vanilla and mug of coffee"
                width="1280" height="900" loading="lazy" decoding="async">
            
          
          </a>
          
        

        <div class="feature-columns__body">
          
            <h2 class="feature-columns__title">The Flavor Customers Can't Stop Raving About</h2>
          

          
            <div class="feature-columns__subheading"><p>"Won't buy any other coffee! Perfectly balanced and flavorful.” - Gary L.</p></div>
          

          
            <a href="/products/flavored-coffee-cinnamon-vanilla" class="feature-columns__btn btn btn--secondary"  aria-label="SHOP ICED COFFEE" >
              Shop Flavored Coffee
            </a>
          
        </div>
      </div>
    

    
  </div>
  </div>
</div>


</div><section id="shopify-section-template--22053275959331__available_at" class="shopify-section avail-v2-section"><style data-shopify>#avail-template--22053275959331availableat{
    --avail-gap: 90px;
    --avail-speed: 60s;
    background-color: #e2c8b6;
    color: #333333;
    overflow:hidden; padding:36px 0;
  }
  @media only screen and (min-width:769px){ #avail-template--22053275959331availableat{ padding:60px 0 } }
  #avail-template--22053275959331availableat .avail-v2__heading{ text-align:center; margin:0 0 26px; font-family:Fields,"Open Sans",arial,sans-serif; font-weight:700; line-height:1; font-size:2.4rem; color:#333333 }
  @media only screen and (min-width:769px){ #avail-template--22053275959331availableat .avail-v2__heading{ font-size:3.2rem; margin-bottom:40px } }
  #avail-template--22053275959331availableat .avail-v2__viewport{ width:100%; overflow:hidden }
  #avail-template--22053275959331availableat .avail-v2__track{ display:flex; align-items:center; width:max-content; animation:avail-scroll var(--avail-speed) linear infinite; will-change:transform }#avail-template--22053275959331availableat .avail-v2__viewport:hover .avail-v2__track{ animation-play-state:paused }#avail-template--22053275959331availableat .avail-v2__logo{ flex:0 0 auto; margin-right:var(--avail-gap); display:flex; align-items:center }
  #avail-template--22053275959331availableat .avail-v2__logo svg{ height:auto; display:block }
  @keyframes avail-scroll{ from{ transform:translateX(0) } to{ transform:translateX(-50%) } }
  @media (prefers-reduced-motion: reduce){
    #avail-template--22053275959331availableat .avail-v2__track{ animation:none; flex-wrap:wrap; justify-content:center; width:100%; row-gap:28px }
    #avail-template--22053275959331availableat .avail-v2__track [aria-hidden="true"]{ display:none }
  }
  /* store locator */
  /* NO column-gap: spacing between the label and form is via margin. A password manager
     (LastPass) injects a 0-width element as a direct child of the locator; with flex `gap`
     that would add one more 18px gap → content +18px → the centered row re-centers −9px (CLS).
     Margin-based spacing means an injected sibling adds nothing. row-gap (for wrap) is safe. */
  #avail-template--22053275959331availableat .avail-v2__locator{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; row-gap:12px; column-gap:0; margin-top:36px; padding:0 20px; text-align:center }
  #avail-template--22053275959331availableat .avail-v2__locator-label{ font-family:Fields,"Open Sans",arial,sans-serif; font-size:1.6rem; color:#333333; margin-right:18px }
  #avail-template--22053275959331availableat .avail-v2__locator form{ display:flex; flex-wrap:wrap; align-items:center; justify-content:center; margin:0 }
  /* Zip field matches prod: borderless cream field, Fields 700, square corners. Desktop/tablet =
     200px, left-aligned, in-row (prod). Full-width + centered is the mobile treatment only (below). */
  #avail-template--22053275959331availableat .avail-v2__locator input[type=text]{ font-family:Fields,"Open Sans",arial,sans-serif; font-weight:700; font-size:1.3rem; padding:12px 20px; border:none; border-radius:0; background:#f1ece7; color:#333; width:200px; max-width:100%; margin-right:10px }
  #avail-template--22053275959331availableat .avail-v2__locator .btn{ font-family:Dosis,"Open Sans",arial,sans-serif; font-weight:700; text-transform:uppercase; letter-spacing:.06rem; font-size:1.4rem; padding:12px 22px; border:2px solid #f04c00; border-radius:1px; background:#f04c00; color:#fff; cursor:pointer; transition:all .15s ease }
  #avail-template--22053275959331availableat .avail-v2__locator .btn:hover{ background:#f1ece7; color:#f04c00 }
  /* Mobile: zip field + button stack full-width, centered text (matches prod). */
  @media only screen and (max-width:768px){
    #avail-template--22053275959331availableat .avail-v2__locator form{ flex-direction:column; align-items:stretch; width:100%; max-width:420px; margin:0 auto }
    #avail-template--22053275959331availableat .avail-v2__locator input[type=text]{ width:100%; margin-right:0; text-align:center }
    #avail-template--22053275959331availableat .avail-v2__locator .btn{ width:100% }
  }</style><section id="avail-template--22053275959331availableat" class="avail-v2" aria-label="Available At Select Stores"><h2 class="avail-v2__heading">Available At Select Stores</h2><div class="avail-v2__viewport">
      <div class="avail-v2__track"><div class="avail-v2__logo" ><svg class="avail-v2__logo-svg" viewBox="0 0 402.16 138.06" width="140" role="img" aria-label="Wegmans" focusable="false"><use href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#wgmns" xlink:href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#wgmns"></use></svg></div><div class="avail-v2__logo" ><svg class="avail-v2__logo-svg" viewBox="0 0 399 105.11" width="120" role="img" aria-label="Tops" focusable="false"><use href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#tops" xlink:href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#tops"></use></svg></div><div class="avail-v2__logo" ><svg class="avail-v2__logo-svg" viewBox="0 0 398 84.85" width="160" role="img" aria-label="Target" focusable="false"><use href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#tgt" xlink:href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#tgt"></use></svg></div><div class="avail-v2__logo" ><svg class="avail-v2__logo-svg" viewBox="0 0 398.6 103.33" width="120" role="img" aria-label="Sprouts" focusable="false"><use href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#spts" xlink:href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#spts"></use></svg></div><div class="avail-v2__logo" ><svg class="avail-v2__logo-svg" viewBox="0 0 399 99.69" width="120" role="img" aria-label="Harmons Neighborhood Grocer" focusable="false"><use href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#ng" xlink:href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#ng"></use></svg></div><div class="avail-v2__logo" ><svg class="avail-v2__logo-svg" viewBox="0 0 390.41 119.14" width="140" role="img" aria-label="Mother&#39;s California Market" focusable="false"><use href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#mcm" xlink:href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#mcm"></use></svg></div><div class="avail-v2__logo" ><svg class="avail-v2__logo-svg" viewBox="0 0 400 55.1" width="160" role="img" aria-label="Martin&#39;s" focusable="false"><use href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#mtns" xlink:href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#mtns"></use></svg></div><div class="avail-v2__logo" ><svg class="avail-v2__logo-svg" viewBox="0 0 331 203.52" width="100" role="img" aria-label="Lowe&#39;s" focusable="false"><use href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#lws" xlink:href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#lws"></use></svg></div><div class="avail-v2__logo" ><svg class="avail-v2__logo-svg" viewBox="0 0 369.58 119.75" width="120" role="img" aria-label="H-E-B" focusable="false"><use href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#heb" xlink:href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#heb"></use></svg></div><div class="avail-v2__logo" ><svg class="avail-v2__logo-svg" viewBox="0 0 396 113.82" width="100" role="img" aria-label="Fresh Thyme" focusable="false"><use href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#ftm" xlink:href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#ftm"></use></svg></div><div class="avail-v2__logo" ><svg class="avail-v2__logo-svg" viewBox="0 0 400 60" width="140" role="img" aria-label="Erewhon" focusable="false"><use href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#ewn" xlink:href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#ewn"></use></svg></div><div class="avail-v2__logo" ><svg class="avail-v2__logo-svg" viewBox="0 0 283.52 193.9" width="100" role="img" aria-label="Whole Foods" focusable="false"><use href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#wfm" xlink:href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#wfm"></use></svg></div><div class="avail-v2__logo" ><svg class="avail-v2__logo-svg" viewBox="0 0 496.49 69.08" width="160" role="img" aria-label="Bristol Farms" focusable="false"><use href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#bf" xlink:href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#bf"></use></svg></div><div class="avail-v2__logo" ><svg class="avail-v2__logo-svg" viewBox="0 0 171.73 84.59" width="110" role="img" aria-label="Save Mart" focusable="false"><use href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#svm" xlink:href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#svm"></use></svg></div><div class="avail-v2__logo" ><svg class="avail-v2__logo-svg" viewBox="0 0 249 84" width="120" role="img" aria-label="Hy-Vee" focusable="false"><use href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#hyv" xlink:href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#hyv"></use></svg></div><div class="avail-v2__logo" ><svg class="avail-v2__logo-svg" viewBox="0 0 175.27 97.53" width="120" role="img" aria-label="Kroger" focusable="false"><use href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#kg" xlink:href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#kg"></use></svg></div><div class="avail-v2__logo" aria-hidden="true"><svg class="avail-v2__logo-svg" viewBox="0 0 402.16 138.06" width="140" role="img" aria-label="Wegmans" focusable="false"><use href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#wgmns" xlink:href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#wgmns"></use></svg></div><div class="avail-v2__logo" aria-hidden="true"><svg class="avail-v2__logo-svg" viewBox="0 0 399 105.11" width="120" role="img" aria-label="Tops" focusable="false"><use href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#tops" xlink:href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#tops"></use></svg></div><div class="avail-v2__logo" aria-hidden="true"><svg class="avail-v2__logo-svg" viewBox="0 0 398 84.85" width="160" role="img" aria-label="Target" focusable="false"><use href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#tgt" xlink:href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#tgt"></use></svg></div><div class="avail-v2__logo" aria-hidden="true"><svg class="avail-v2__logo-svg" viewBox="0 0 398.6 103.33" width="120" role="img" aria-label="Sprouts" focusable="false"><use href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#spts" xlink:href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#spts"></use></svg></div><div class="avail-v2__logo" aria-hidden="true"><svg class="avail-v2__logo-svg" viewBox="0 0 399 99.69" width="120" role="img" aria-label="Harmons Neighborhood Grocer" focusable="false"><use href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#ng" xlink:href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#ng"></use></svg></div><div class="avail-v2__logo" aria-hidden="true"><svg class="avail-v2__logo-svg" viewBox="0 0 390.41 119.14" width="140" role="img" aria-label="Mother&#39;s California Market" focusable="false"><use href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#mcm" xlink:href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#mcm"></use></svg></div><div class="avail-v2__logo" aria-hidden="true"><svg class="avail-v2__logo-svg" viewBox="0 0 400 55.1" width="160" role="img" aria-label="Martin&#39;s" focusable="false"><use href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#mtns" xlink:href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#mtns"></use></svg></div><div class="avail-v2__logo" aria-hidden="true"><svg class="avail-v2__logo-svg" viewBox="0 0 331 203.52" width="100" role="img" aria-label="Lowe&#39;s" focusable="false"><use href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#lws" xlink:href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#lws"></use></svg></div><div class="avail-v2__logo" aria-hidden="true"><svg class="avail-v2__logo-svg" viewBox="0 0 369.58 119.75" width="120" role="img" aria-label="H-E-B" focusable="false"><use href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#heb" xlink:href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#heb"></use></svg></div><div class="avail-v2__logo" aria-hidden="true"><svg class="avail-v2__logo-svg" viewBox="0 0 396 113.82" width="100" role="img" aria-label="Fresh Thyme" focusable="false"><use href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#ftm" xlink:href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#ftm"></use></svg></div><div class="avail-v2__logo" aria-hidden="true"><svg class="avail-v2__logo-svg" viewBox="0 0 400 60" width="140" role="img" aria-label="Erewhon" focusable="false"><use href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#ewn" xlink:href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#ewn"></use></svg></div><div class="avail-v2__logo" aria-hidden="true"><svg class="avail-v2__logo-svg" viewBox="0 0 283.52 193.9" width="100" role="img" aria-label="Whole Foods" focusable="false"><use href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#wfm" xlink:href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#wfm"></use></svg></div><div class="avail-v2__logo" aria-hidden="true"><svg class="avail-v2__logo-svg" viewBox="0 0 496.49 69.08" width="160" role="img" aria-label="Bristol Farms" focusable="false"><use href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#bf" xlink:href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#bf"></use></svg></div><div class="avail-v2__logo" aria-hidden="true"><svg class="avail-v2__logo-svg" viewBox="0 0 171.73 84.59" width="110" role="img" aria-label="Save Mart" focusable="false"><use href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#svm" xlink:href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#svm"></use></svg></div><div class="avail-v2__logo" aria-hidden="true"><svg class="avail-v2__logo-svg" viewBox="0 0 249 84" width="120" role="img" aria-label="Hy-Vee" focusable="false"><use href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#hyv" xlink:href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#hyv"></use></svg></div><div class="avail-v2__logo" aria-hidden="true"><svg class="avail-v2__logo-svg" viewBox="0 0 175.27 97.53" width="120" role="img" aria-label="Kroger" focusable="false"><use href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#kg" xlink:href="//www.bulletproof.com/cdn/shop/t/617/assets/avail-at-sprite.svg?v=102561370451075173001789540244#kg"></use></svg></div></div>
    </div><div class="avail-v2__locator"><span class="avail-v2__locator-label">Find a retail location near you</span><form action="/pages/product-locator" method="get">
        <input type="hidden" name="MM" value="panel2"><input type="text" name="ZIP" placeholder="Enter your zip code" aria-label="ZIP code" autocomplete="postal-code" inputmode="numeric" data-lpignore="true" data-1p-ignore="true" data-form-type="other">
        <input type="submit" class="btn" value="FIND A NEARBY LOCATION">
      </form>
    </div></section>


</section><section id="shopify-section-template--22053275959331__ed_featured" class="shopify-section hp-ed-section"><link href="//www.bulletproof.com/cdn/shop/t/617/assets/editorial.css?v=183687548888285597891789540244" rel="stylesheet" type="text/css" media="all" />
<div class="hp-ed hp-ed-cards hp-ed-cards--cols-2"
     style="--hp-ed-card-h:280px;--hp-ed-card-h-mb:280px;--hp-ed-title:1.8rem;">
  <div class="hp-ed__inner"><div class="hp-ed-grid"><a class="hp-ed-card" href="/recipes/bulletproof-diet-recipes/bulletproof-coffee-recipe/" ><img class="hp-ed-card__img" src="https://www.bulletproof.com/wp-content/uploads/2025/09/bulletproof-og-coffee-and-boo-760x500.jpg" alt="Bulletproof™ Coffee Recipe" width="800" height="500" loading="lazy" decoding="async"><span class="hp-ed-card__overlay" aria-hidden="true"></span>
  <span class="hp-ed-card__con"><span class="hp-ed-card__cat">Bulletproof Diet Recipes</span><span class="hp-ed-card__title">Bulletproof™ Coffee Recipe</span></span>
</a>

<a class="hp-ed-card" href="/coffee-articles/mushroom-latte-ingredients" ><img class="hp-ed-card__img" src="https://www.bulletproof.com/wp-content/uploads/2026/08/mood-booster-mushroom-latte-next-to-ingredients-and-scoop-blog3-1-752x401.jpg" alt="The Ultimate Guide to Cold Brew" width="800" height="500" loading="lazy" decoding="async"><span class="hp-ed-card__overlay" aria-hidden="true"></span>
  <span class="hp-ed-card__con"><span class="hp-ed-card__cat">Functional Coffee</span><span class="hp-ed-card__title">What Is a Mushroom Latte? Ingredients and What Each One Does</span></span>
</a>

</div>
  </div>
</div>



</section><section id="shopify-section-template--22053275959331__ed_most_read" class="shopify-section hp-ed-section"><link href="//www.bulletproof.com/cdn/shop/t/617/assets/editorial.css?v=183687548888285597891789540244" rel="stylesheet" type="text/css" media="all" />
<div class="hp-ed hp-ed-cards hp-ed-cards--cols-3"
     style="--hp-ed-card-h:280px;--hp-ed-card-h-mb:280px;--hp-ed-title:1.8rem;">
  <div class="hp-ed__inner"><div class="hp-ed__header"><h3 class="hp-ed__heading">Most Read</h3></div><div class="hp-ed-grid"><a class="hp-ed-card" href="/diet-articles/bulletproof-diet/bulletproof-for-beginners/" ><img class="hp-ed-card__img" src="https://www.bulletproof.com/wp-content/uploads/2022/02/selection-of-healthy-fat-sources-picture-id599273210-752x401.jpg" alt="Bulletproof Diet for Beginners: Everything You Need to Know to Get Started" width="800" height="500" loading="lazy" decoding="async"><span class="hp-ed-card__overlay" aria-hidden="true"></span>
  <span class="hp-ed-card__con"><span class="hp-ed-card__cat">Bulletproof Diet</span><span class="hp-ed-card__title">Bulletproof Diet for Beginners: Everything You Need to Know to Get Started</span></span>
</a>

<a class="hp-ed-card" href="/supplement-articles/dietary-supplements/what-is-mct-oil/" ><img src="//www.bulletproof.com/cdn/shop/files/hand-pouring-bulletproof-mct-oil-in-smoothie-blender-mobile.jpg?v=1759787616&amp;width=1500" alt="Teaspoon of brain octane oil pouring into coffee mug" srcset="//www.bulletproof.com/cdn/shop/files/hand-pouring-bulletproof-mct-oil-in-smoothie-blender-mobile.jpg?v=1759787616&amp;width=400 400w, //www.bulletproof.com/cdn/shop/files/hand-pouring-bulletproof-mct-oil-in-smoothie-blender-mobile.jpg?v=1759787616&amp;width=600 600w, //www.bulletproof.com/cdn/shop/files/hand-pouring-bulletproof-mct-oil-in-smoothie-blender-mobile.jpg?v=1759787616&amp;width=752 752w, //www.bulletproof.com/cdn/shop/files/hand-pouring-bulletproof-mct-oil-in-smoothie-blender-mobile.jpg?v=1759787616&amp;width=900 900w, //www.bulletproof.com/cdn/shop/files/hand-pouring-bulletproof-mct-oil-in-smoothie-blender-mobile.jpg?v=1759787616&amp;width=1100 1100w, //www.bulletproof.com/cdn/shop/files/hand-pouring-bulletproof-mct-oil-in-smoothie-blender-mobile.jpg?v=1759787616&amp;width=1500 1500w" width="1500" height="898" loading="lazy" class="hp-ed-card__img" sizes="(min-width:769px) 33vw, 100vw">
<span class="hp-ed-card__overlay" aria-hidden="true"></span>
  <span class="hp-ed-card__con"><span class="hp-ed-card__cat">Dietary Supplements</span><span class="hp-ed-card__title">MCT Oil Benefits: What the Science Actually Shows</span></span>
</a>

<a class="hp-ed-card" href="/supplement-articles/dietary-supplements/best-bulletproof-coffee-hacks-supplements-to-add/" ><img src="//www.bulletproof.com/cdn/shop/files/bulletproof-original-coffee-brain-octane-oil-scoop-of-ghee-product-shot.jpg?v=1760051799&amp;width=1500" alt="Bulletproof coffee and mct oil on counter" srcset="//www.bulletproof.com/cdn/shop/files/bulletproof-original-coffee-brain-octane-oil-scoop-of-ghee-product-shot.jpg?v=1760051799&amp;width=400 400w, //www.bulletproof.com/cdn/shop/files/bulletproof-original-coffee-brain-octane-oil-scoop-of-ghee-product-shot.jpg?v=1760051799&amp;width=600 600w, //www.bulletproof.com/cdn/shop/files/bulletproof-original-coffee-brain-octane-oil-scoop-of-ghee-product-shot.jpg?v=1760051799&amp;width=752 752w, //www.bulletproof.com/cdn/shop/files/bulletproof-original-coffee-brain-octane-oil-scoop-of-ghee-product-shot.jpg?v=1760051799&amp;width=900 900w, //www.bulletproof.com/cdn/shop/files/bulletproof-original-coffee-brain-octane-oil-scoop-of-ghee-product-shot.jpg?v=1760051799&amp;width=1100 1100w, //www.bulletproof.com/cdn/shop/files/bulletproof-original-coffee-brain-octane-oil-scoop-of-ghee-product-shot.jpg?v=1760051799&amp;width=1500 1500w" width="1500" height="1500" loading="lazy" class="hp-ed-card__img" sizes="(min-width:769px) 33vw, 100vw">
<span class="hp-ed-card__overlay" aria-hidden="true"></span>
  <span class="hp-ed-card__con"><span class="hp-ed-card__cat">Coffee</span><span class="hp-ed-card__title">16 Ideas for Delicious Bulletproof Coffee Hacks</span></span>
</a>

</div>
  </div>
</div>



</section><section id="shopify-section-template--22053275959331__ed_latest" class="shopify-section hp-ed-section"><link href="//www.bulletproof.com/cdn/shop/t/617/assets/editorial.css?v=183687548888285597891789540244" rel="stylesheet" type="text/css" media="all" />
<div class="hp-ed hp-ed-cards hp-ed-cards--cols-3"
     style="--hp-ed-card-h:280px;--hp-ed-card-h-mb:280px;--hp-ed-title:1.8rem;">
  <div class="hp-ed__inner"><div class="hp-ed__header"><h3 class="hp-ed__heading">Latest Recipes</h3><a class="hp-ed__viewall" href="/recipes/">View all Recipes +</a></div><div class="hp-ed-grid"><a class="hp-ed-card" href="/coffee-articles/mushroom-latte-recipe/" ><img class="hp-ed-card__img" src="https://www.bulletproof.com/wp-content/uploads/2026/07/latte-next-to-mood-booster-mushroom-latte-and-ingredients-blog1-1-752x401.jpg" alt="How to Make a Mushroom Latte in 5 Minutes (Hot or Iced)" width="800" height="500" loading="lazy" decoding="async"><span class="hp-ed-card__overlay" aria-hidden="true"></span>
  <span class="hp-ed-card__con"><span class="hp-ed-card__cat">Coffee</span><span class="hp-ed-card__title">How to Make a Mushroom Latte in 5 Minutes (Hot or Iced)</span></span>
</a>

<a class="hp-ed-card" href="/coffee-articles/collagen-cold-foam-iced-coffee-fall-inspired-functional-recipes/" ><img class="hp-ed-card__img" src="https://www.bulletproof.com/wp-content/uploads/2025/08/CaramelAppleColdFoam-1-752x401.jpg" alt="Cardamom Citrus Latte" width="800" height="500" loading="lazy" decoding="async"><span class="hp-ed-card__overlay" aria-hidden="true"></span>
  <span class="hp-ed-card__con"><span class="hp-ed-card__cat">Recipes</span><span class="hp-ed-card__title">Collagen Cold Foam Iced Coffee: Fall-Inspired Functional Recipes</span></span>
</a>

<a class="hp-ed-card" href="/coffee-articles/iced-coffees-from-around-the-world/" ><img class="hp-ed-card__img" src="https://www.bulletproof.com/wp-content/uploads/2025/09/VietnameseIcedCoffee-2-752x401.jpg" alt="Iced Coffees From Around the World: 3 Cold Brew Recipes You’ll Love" width="800" height="500" loading="lazy" decoding="async"><span class="hp-ed-card__overlay" aria-hidden="true"></span>
  <span class="hp-ed-card__con"><span class="hp-ed-card__cat">Coffee</span><span class="hp-ed-card__title">Iced Coffees From Around the World: 3 Cold Brew Recipes You’ll Love</span></span>
</a>

</div>
  </div>
</div>



</section><section id="shopify-section-template--22053275959331__ed_mini" class="shopify-section hp-ed-section"><link href="//www.bulletproof.com/cdn/shop/t/617/assets/editorial.css?v=183687548888285597891789540244" rel="stylesheet" type="text/css" media="all" />
<div class="hp-ed hp-ed-links">
  <div class="hp-ed__inner"><div class="hp-ed-links__grid hp-ed-links__grid--cols-3"><div class="hp-ed-links__col" ><h3 class="hp-ed-links__topic">Coffee</h3><div class="hp-ed-links__list"><a class="hp-ed-links__item" href="/coffee-articles/best-mushroom-latte/"><img class="hp-ed-links__thumb" src="https://www.bulletproof.com/wp-content/uploads/2026/08/latte-next-to-mood-booster-mushroom-latte-and-ingredients-blog2-1-75x75.jpg" alt="Best Mushroom Latte Comparison and Review" width="68" height="68" loading="lazy" decoding="async"><span class="hp-ed-links__body"><span class="hp-ed-links__badge">Coffee</span><span class="hp-ed-links__item-title">Best Mushroom Latte Comparison and Review</span>
                  </span>
                </a><a class="hp-ed-links__item" href="/coffee-articles/mushroom-latte-ingredients/"><img class="hp-ed-links__thumb" src="https://www.bulletproof.com/wp-content/uploads/2026/08/mood-booster-mushroom-latte-next-to-ingredients-and-scoop-blog3-1-75x75.jpg" alt="What Is a Mushroom Latte? Ingredients and What Each One Does" width="68" height="68" loading="lazy" decoding="async"><span class="hp-ed-links__body"><span class="hp-ed-links__badge">Coffee</span><span class="hp-ed-links__item-title">What Is a Mushroom Latte? Ingredients and What Each One Does</span>
                  </span>
                </a><a class="hp-ed-links__item" href="/coffee-articles/dubai-chocolate-protein-iced-latte-with-pistachio-milk/"><img class="hp-ed-links__thumb" src="https://www.bulletproof.com/wp-content/uploads/2025/09/DubaiChocolateLatte-14-1-75x75.jpg" alt="Dubai Chocolate Protein Iced Latte with Pistachio Milk" width="68" height="68" loading="lazy" decoding="async"><span class="hp-ed-links__body"><span class="hp-ed-links__badge">Coffee</span><span class="hp-ed-links__item-title">Dubai Chocolate Protein Iced Latte with Pistachio Milk</span>
                  </span>
                </a></div>
        </div><div class="hp-ed-links__col" ><h3 class="hp-ed-links__topic">Diet</h3><div class="hp-ed-links__list"><a class="hp-ed-links__item" href="/diet-articles/insulin-resistance-diet/"><img class="hp-ed-links__thumb" src="https://www.bulletproof.com/wp-content/uploads/2026/07/Insulin-resistance-diet-e1783438518960-75x75.jpg" alt="Insulin Resistance Diet: A Practical Plate-Level Guide (Plus a Sample Day)" width="68" height="68" loading="lazy" decoding="async"><span class="hp-ed-links__body"><span class="hp-ed-links__badge">Diet</span><span class="hp-ed-links__item-title">Insulin Resistance Diet: A Practical Plate-Level Guide (Plus a Sample Day)</span>
                  </span>
                </a><a class="hp-ed-links__item" href="/diet-articles/intermittent-fasting/intermittent-fasting-guide/"><img class="hp-ed-links__thumb" src="https://www.bulletproof.com/wp-content/uploads/2022/03/bulletproof-blog-intermitten-fasting-guide-for-beginners-75x75.jpg" alt="Is Intermittent Fasting Healthy? The Complete Science-Backed Guide" width="68" height="68" loading="lazy" decoding="async"><span class="hp-ed-links__body"><span class="hp-ed-links__badge">Intermittent Fasting</span><span class="hp-ed-links__item-title">Is Intermittent Fasting Healthy? The Complete Science-Backed Guide</span>
                  </span>
                </a><a class="hp-ed-links__item" href="/diet-articles/healthy-eating/healthy-desserts-thatll-satisfy-your-sweet-tooth/"><img class="hp-ed-links__thumb" src="https://www.bulletproof.com/wp-content/uploads/2018/05/Cold-Brew-Texas-Sheet-Cake_up-close-bite-75x75.jpg" alt="Better-For-You Desserts That’ll Satisfy Your Sweet Tooth" width="68" height="68" loading="lazy" decoding="async"><span class="hp-ed-links__body"><span class="hp-ed-links__badge">Healthy Eating</span><span class="hp-ed-links__item-title">Better-For-You Desserts That’ll Satisfy Your Sweet Tooth</span>
                  </span>
                </a></div>
        </div><div class="hp-ed-links__col" ><h3 class="hp-ed-links__topic">Supplements</h3><div class="hp-ed-links__list"><a class="hp-ed-links__item" href="/supplement-articles/rhodiola-rosea-benefits/"><img class="hp-ed-links__thumb" src="https://www.bulletproof.com/wp-content/uploads/2026/07/Rhodiola-Rosea-75x75.jpg" alt="Rhodiola Rosea Benefits: The Practical Guide to Adaptogenic Energy and Stress Support" width="68" height="68" loading="lazy" decoding="async"><span class="hp-ed-links__body"><span class="hp-ed-links__badge">Supplements</span><span class="hp-ed-links__item-title">Rhodiola Rosea Benefits: The Practical Guide to Adaptogenic Energy and Stress Support</span>
                  </span>
                </a><a class="hp-ed-links__item" href="/supplement-articles/memory-supplements/"><img class="hp-ed-links__thumb" src="https://www.bulletproof.com/wp-content/uploads/2026/07/memorysupplements-75x75.jpeg" alt="Memory Supplements: What the Research Actually Supports (And What’s Marketing)" width="68" height="68" loading="lazy" decoding="async"><span class="hp-ed-links__body"><span class="hp-ed-links__badge">Supplements</span><span class="hp-ed-links__item-title">Memory Supplements: What the Research Actually Supports (And What’s Marketing)</span>
                  </span>
                </a><a class="hp-ed-links__item" href="/supplement-articles/dietary-supplements/what-is-mct-oil/"><img class="hp-ed-links__thumb" src="https://www.bulletproof.com/wp-content/uploads/2020/03/bulletproof-mct-oil-pour-75x75.jpg" alt="MCT Oil Benefits: What the Science Actually Shows" width="68" height="68" loading="lazy" decoding="async"><span class="hp-ed-links__body"><span class="hp-ed-links__badge">Dietary Supplements</span><span class="hp-ed-links__item-title">MCT Oil Benefits: What the Science Actually Shows</span>
                  </span>
                </a></div>
        </div></div>
  </div>
</div>



</section>
      </main>
    </div>

    <!-- BEGIN sections: footer-group -->
<footer id="shopify-section-sections--22053273436195__footer" class="shopify-section shopify-section-group-footer-group footer"><div class="footer__newsletter-wrapper" role="form">
      <div class="footer__newsletter ">
        <div class="h3">Stay Bulletproof: Subscribe Today</div>
        <form id="footer_email_signup" action="//manage.kmail-lists.com/subscriptions/subscribe" method="post" class="email-signup-form">
          <input type="hidden" name="g" value="VQLVkS">
          <input type="hidden" name="fields" value="signup_current_source">
          <label for="hidden-newsletter-input" class="visually-hidden">Enter your Email to Subscribe</label>
          <input type="email" id="hidden-newsletter-input" name="hide-e-mail" placeholder="Enter your email" value="" required>
          <div class="f_bt" aria-hidden="true">
            <label class="f_bt" for="name"></label>
            <input class="f_bt" type="text" id="name" name="name" placeholder="Your name here" autocomplete="off" tabindex="-1">
            <label class="f_bt" for="email"></label>
            <input class="form_email f_bt" type="email" id="email" name="email" placeholder="Enter your email address" autocomplete="off" tabindex="-1">
          </div>
          <input type="hidden" name="success_url" value="https://www.bulletproof.com/thank-you-for-subscribing/">
          <input type="hidden" name="signup_current_source" value="Shopify_Footer">
          <input type="hidden" name="contact[tags]" value="newsletter">
          <button class="btn email-signup-submit" type="submit" value="submit">I'm in</button>
        </form>
      </div>
    </div><div class="footer__links container"><div class="footer__col">
      <strong class="footer__col-title">Shop</strong>
      <ul id="menu-shop" class="footer-1-menu">
      
        <li class="menu-item footer__link">
          <a href="/collections/coffee" aria-label="Shop Coffee">Coffee</a>
        </li>
      
        <li class="menu-item footer__link">
          <a href="/collections/mix-ins" aria-label="Shop Mix-Ins">Mix-Ins</a>
        </li>
      
        <li class="menu-item footer__link">
          <a href="/collections/mct-oil" aria-label="Shop MCT Oil">MCT Oil</a>
        </li>
      
        <li class="menu-item footer__link">
          <a href="/collections/supplements" aria-label="Shop Supplements">Supplements</a>
        </li>
      
        <li class="menu-item footer__link">
          <a href="/collections/collagen" aria-label="Shop Collagen">Collagen</a>
        </li>
      
        <li class="menu-item footer__link">
          <a href="/collections/all" aria-label="Shop All Products">All Products</a>
        </li>
      
      </ul>
    </div><div class="footer__col">
      <strong class="footer__col-title">Learn</strong>
      <ul id="menu-learn" class="footer-2-menu">
      
        <li class="menu-item footer__link">
          <a class="footer__link" href="https://www.bulletproof.com/diet/bulletproof-diet/bulletproof-for-beginners/">Bulletproof for Beginners</a>
        </li>
      
        <li class="menu-item footer__link">
          <a class="footer__link" href="https://www.bulletproof.com/recipes/">Recipes</a>
        </li>
      
        <li class="menu-item footer__link">
          <a class="footer__link" href="https://www.bulletproof.com/guides/">Newsletters & Guides</a>
        </li>
      
        <li class="menu-item footer__link">
          <a class="footer__link" href="https://www.bulletproof.com/blog/">Bulletproof Blog</a>
        </li>
      
      </ul>
    </div><div class="footer__col">
      <strong class="footer__col-title">Customer Care</strong>
      <ul id="menu-customer care" class="footer-3-menu">
      
        <li class="menu-item footer__link">
          <a class="footer__link" href="/pages/customer-care">Contact Us</a>
        </li>
      
        <li class="menu-item footer__link">
          <a class="footer__link" href="/pages/faq">FAQs</a>
        </li>
      
        <li class="menu-item footer__link">
          <a class="footer__link" href="/pages/shipping-policy">Shipping Policy</a>
        </li>
      
        <li class="menu-item footer__link">
          <a class="footer__link" href="https://shop.bulletproof.com/pages/knowledge-base#returns">Return Policy</a>
        </li>
      
        <li class="menu-item footer__link">
          <a class="footer__link" href="/pages/bulletproof-accessibility-policy">Accessibility Policy</a>
        </li>
      
        <li class="menu-item footer__link">
          <a class="footer__link" href="/pages/privacy-policy">Privacy Policy</a>
        </li>
      
        <li class="menu-item footer__link">
          <a class="footer__link" href="/pages/terms-conditions">Terms of Service</a>
        </li>
      
      </ul>
    </div><div class="footer__col">
      <strong class="footer__col-title">Company</strong>
      <ul id="menu-company" class="footer-4-menu">
      
        <li class="menu-item footer__link">
          <a class="footer__link" href="https://www.bulletproof.com/about-us/">About Us</a>
        </li>
      
        <li class="menu-item footer__link">
          <a class="footer__link" href="https://www.bulletproof.com/press/">Press</a>
        </li>
      
        <li class="menu-item footer__link">
          <a class="footer__link" href="/pages/careers">Careers</a>
        </li>
      
        <li class="menu-item footer__link">
          <a class="footer__link" href="/pages/customer-reviews">Customer Reviews</a>
        </li>
      
        <li class="menu-item footer__link">
          <a class="footer__link" href="/pages/rewards">Rewards</a>
        </li>
      
        <li class="menu-item footer__link">
          <a class="footer__link" href="/pages/refer-a-friend">Give $15, Get $15</a>
        </li>
      
      </ul>
    </div><div class="footer__col">
      <strong class="footer__col-title">Partners</strong>
      <ul id="menu-partners" class="footer-5-menu">
      
        <li class="menu-item footer__link">
          <a class="footer__link" href="/pages/store-locator">Store Locator</a>
        </li>
      
        <li class="menu-item footer__link">
          <a class="footer__link" href="/pages/wholesale">Wholesale</a>
        </li>
      
        <li class="menu-item footer__link">
          <a class="footer__link" href="/pages/affiliate-program">Affiliate Program</a>
        </li>
      
        <li class="menu-item footer__link">
          <a class="footer__link" href="/pages/reseller-policy">Reseller Policy</a>
        </li>
      
      </ul>
    </div></div>

<div id="nre">
  <svg viewBox="0 0 110 61" class="icon icon--logo" focusable="false">
    <use xlink:href="#logo"></use>
  </svg>
  <div class="h2">Discover What Better Feels Like</div>
</div>

<div class="footer__social"><a class="footer__social-link" target="_blank" rel="noopener" href="https://www.instagram.com/bulletproof/" title="Bulletproof on Instagram">
      <svg class="icon icon-instagram" aria-hidden="true" width="25" height="25" fill="currentColor" viewBox="0 0 25 25"><g clip-path="url(#fscpa)"><path d="M12.5 2.68c3.2 0 3.57.01 4.84.07 1.17.05 1.8.25 2.22.41.56.22.96.48 1.38.89.42.41.68.82.89 1.38.16.42.36 1.06.41 2.22.06 1.26.07 1.64.07 4.84s-.01 3.57-.07 4.84c-.05 1.17-.25 1.8-.41 2.22-.22.56-.48.96-.89 1.38-.41.42-.82.68-1.38.89-.42.16-1.06.36-2.22.41-1.26.06-1.64.07-4.84.07s-3.57-.01-4.84-.07c-1.17-.05-1.8-.25-2.22-.41a3.86 3.86 0 0 1-1.38-.89c-.42-.41-.68-.82-.89-1.38-.16-.42-.36-1.06-.41-2.22-.06-1.26-.07-1.64-.07-4.84s.01-3.57.07-4.84c.05-1.17.25-1.8.41-2.22.22-.56.48-.96.89-1.38.41-.42.82-.68 1.38-.89.42-.16 1.06-.36 2.22-.41 1.26-.06 1.64-.07 4.84-.07Zm0-2.15C9.25.53 8.84.54 7.56.6c-1.27.06-2.14.26-2.9.56-.79.3-1.45.72-2.12 1.38-.67.66-1.07 1.34-1.38 2.12-.29.76-.5 1.63-.56 2.91C.54 8.84.53 9.25.53 12.5s.01 3.66.07 4.94c.06 1.27.26 2.14.56 2.91.3.79.72 1.45 1.38 2.12.66.67 1.34 1.07 2.12 1.38.76.29 1.63.5 2.91.56 1.28.06 1.68.07 4.94.07 3.26 0 3.66-.01 4.94-.07 1.27-.06 2.14-.26 2.91-.56.79-.3 1.45-.72 2.12-1.38.67-.66 1.07-1.34 1.38-2.12.29-.76.5-1.63.56-2.91.06-1.28.07-1.68.07-4.94 0-3.26-.01-3.66-.07-4.94-.06-1.27-.26-2.14-.56-2.91-.3-.79-.72-1.45-1.38-2.12-.66-.67-1.34-1.07-2.12-1.38-.76-.29-1.63-.5-2.91-.56-1.28-.05-1.69-.07-4.94-.07l-.01.01Zm0 23.97c-3.22 0-3.65-.01-4.94-.07-1.15-.05-2.05-.22-2.92-.56a5.96 5.96 0 0 1-2.13-1.39c-.64-.64-1.07-1.3-1.39-2.13-.33-.87-.51-1.77-.56-2.92-.06-1.3-.07-1.73-.07-4.94 0-3.21.01-3.64.07-4.93.05-1.15.22-2.05.56-2.92.33-.84.76-1.5 1.39-2.13.64-.64 1.3-1.07 2.13-1.39C5.5.79 6.4.61 7.55.56 8.85.5 9.28.49 12.49.49c3.21 0 3.68.02 4.94.07 1.15.05 2.05.22 2.92.56.84.33 1.5.76 2.13 1.39.64.64 1.07 1.3 1.39 2.13.33.87.51 1.77.56 2.92.06 1.3.07 1.73.07 4.94 0 3.21-.01 3.64-.07 4.94-.05 1.15-.22 2.05-.56 2.92-.33.84-.76 1.5-1.39 2.13-.63.63-1.3 1.07-2.13 1.39-.87.33-1.77.51-2.92.56-1.29.06-1.72.07-4.94.07l.01-.01Zm0-23.95c-3.21 0-3.64.01-4.94.07-1.15.05-2.04.22-2.9.55-.83.32-1.48.74-2.11 1.38-.62.62-1.05 1.27-1.38 2.11-.33.86-.5 1.75-.55 2.9C.56 8.85.55 9.28.55 12.49s.01 3.64.07 4.94c.05 1.14.22 2.04.55 2.9.32.83.74 1.48 1.38 2.11.62.62 1.27 1.05 2.11 1.38.86.33 1.75.5 2.9.56 1.29.06 1.72.07 4.94.07 3.22 0 3.65-.01 4.94-.07 1.14-.05 2.04-.22 2.9-.56.83-.32 1.48-.74 2.11-1.38.62-.62 1.05-1.27 1.38-2.11.33-.86.5-1.75.55-2.9.06-1.3.07-1.73.07-4.94 0-3.21-.01-3.64-.07-4.94-.05-1.14-.22-2.04-.55-2.9-.32-.83-.74-1.48-1.38-2.11a5.903 5.903 0 0 0-2.11-1.38c-.86-.33-1.75-.5-2.9-.55C16.18.56 15.8.54 12.5.54v.01Zm0 21.79c-3.24 0-3.61-.02-4.84-.07-1.18-.05-1.81-.25-2.23-.42-.57-.22-.97-.48-1.39-.9-.43-.43-.69-.83-.9-1.39-.18-.46-.36-1.09-.42-2.23-.06-1.3-.07-1.69-.07-4.84s.01-3.54.07-4.84c.05-1.18.25-1.81.42-2.23.22-.57.48-.97.9-1.39.43-.43.83-.69 1.39-.9.46-.18 1.09-.36 2.23-.42 1.27-.06 1.67-.07 4.84-.07s3.54.01 4.84.07c1.18.05 1.81.25 2.23.42.57.22.97.48 1.39.9.42.43.68.83.9 1.39.18.46.36 1.09.42 2.23.06 1.3.07 1.69.07 4.84s-.01 3.54-.07 4.84c-.05 1.18-.25 1.81-.42 2.23-.22.57-.48.97-.9 1.39-.43.43-.83.69-1.39.9-.43.17-1.08.36-2.23.42-1.23.06-1.6.07-4.84.07Zm0-19.63c-3.17 0-3.56 0-4.84.07-1.14.05-1.76.24-2.22.41-.55.21-.95.47-1.37.89-.41.41-.67.81-.89 1.37-.16.42-.36 1.05-.41 2.22-.06 1.3-.07 1.68-.07 4.84s.01 3.54.07 4.84c.05 1.14.24 1.76.41 2.22.21.55.47.95.89 1.37.41.41.81.67 1.37.89.42.16 1.04.36 2.22.41 1.23.05 1.6.07 4.84.07 3.24 0 3.61-.02 4.84-.07 1.15-.05 1.79-.25 2.22-.41.55-.21.95-.47 1.37-.89.41-.41.67-.81.89-1.37.16-.42.36-1.05.41-2.22.06-1.3.07-1.69.07-4.84s-.01-3.54-.07-4.84c-.05-1.14-.24-1.76-.41-2.22a3.65 3.65 0 0 0-.89-1.37c-.41-.41-.81-.67-1.37-.89-.42-.16-1.05-.36-2.22-.41-1.3-.06-1.68-.07-4.84-.07Z"/><path d="M12.5 6.35c-3.39 0-6.15 2.75-6.15 6.15 0 3.4 2.76 6.15 6.15 6.15 3.39 0 6.15-2.76 6.15-6.15 0-3.39-2.76-6.15-6.15-6.15Zm0 10.14c-2.21 0-3.99-1.79-3.99-3.99s1.79-3.99 3.99-3.99 3.99 1.79 3.99 3.99-1.79 3.99-3.99 3.99Z"/><path d="M12.5 18.67a6.18 6.18 0 0 1-6.17-6.17c0-3.4 2.77-6.17 6.17-6.17s6.17 2.77 6.17 6.17-2.77 6.17-6.17 6.17Zm0-12.3c-3.38 0-6.13 2.75-6.13 6.13s2.75 6.13 6.13 6.13 6.13-2.75 6.13-6.13-2.75-6.13-6.13-6.13Zm0 10.14c-2.21 0-4.02-1.8-4.02-4.02a4.02 4.02 0 1 1 4.02 4.02Zm0-7.98c-2.19 0-3.97 1.78-3.97 3.97 0 2.19 1.78 3.97 3.97 3.97 2.19 0 3.97-1.78 3.97-3.97 0-2.19-1.78-3.97-3.97-3.97Zm6.39-.98a1.44 1.44 0 1 0 0-2.88 1.44 1.44 0 0 0 0 2.88Z"/><path d="M18.89 7.56c-.8 0-1.46-.65-1.46-1.46 0-.81.65-1.46 1.46-1.46.81 0 1.46.65 1.46 1.46 0 .81-.65 1.46-1.46 1.46Zm0-2.87c-.78 0-1.41.63-1.41 1.41 0 .78.63 1.41 1.41 1.41.78 0 1.41-.63 1.41-1.41 0-.78-.63-1.41-1.41-1.41Z"/></g><defs><clipPath id="fscpa"><path d="M0 0h25v25H0z"/></clipPath></defs></svg>
      <span class="icon__fallback-text">Instagram</span>
    </a><a class="footer__social-link" target="_blank" rel="noopener" href="https://www.facebook.com/Bulletproof" title="Bulletproof on Facebook">
      <svg class="icon icon-facebook" aria-hidden="true" width="25" height="25" fill="currentColor" viewBox="0 0 25 25"><g clip-path="url(#fscpb)"><path d="M24.5 12.54c0 6.14-4.6 11.19-10.55 11.91V16.2h3.25l.67-3.67h-3.92v-1.3c0-1.21.3-1.96 1-2.35.28-.16.63-.25 1.05-.3.21-.02.44-.04.68-.04.61 0 1.1.01 1.39.04V5.26c-.13-.04-.32-.07-.53-.11-.11-.02-.22-.03-.33-.05-.58-.08-1.27-.14-1.75-.14-4.01 0-5.86 1.89-5.86 5.98v1.58H7.13v3.67H9.6v7.98c-5.23-1.28-9.1-6-9.1-11.63 0-6.62 5.37-12 12-12s12 5.37 12 12Z"/></g><defs><clipPath id="fscpb"><path d="M0 0h25v25H0z"/></clipPath></defs></svg>
      <span class="icon__fallback-text">Facebook</span>
    </a><a class="footer__social-link" target="_blank" rel="noopener" href="https://www.tiktok.com/@bulletprooftok" title="Bulletproof on TikTok">
      <svg class="icon icon-tiktok" aria-hidden="true" width="25" height="25" fill="currentColor" viewBox="0 0 25 25"><path d="M19.61 5.34A5.752 5.752 0 0 1 16.99.53h-4.13v16.54c-.08 1.85-1.6 3.34-3.47 3.34a3.48 3.48 0 0 1-3.47-3.47c0-1.91 1.56-3.47 3.47-3.47.36 0 .7.06 1.02.16V9.42c-.34-.05-.68-.07-1.02-.07-4.19 0-7.59 3.41-7.59 7.59 0 2.57 1.28 4.84 3.24 6.22 1.23.87 2.73 1.38 4.35 1.38 4.19 0 7.59-3.41 7.59-7.59V8.56a9.829 9.829 0 0 0 5.74 1.85V6.28a5.7 5.7 0 0 1-3.13-.93l.02-.01Z"/></svg>
      <span class="icon__fallback-text">TikTok</span>
    </a>
  
<a class="footer__social-link" target="_blank" rel="noopener" href="https://www.youtube.com/@Bulletproofexec" title="Bulletproof on YouTube">
      <svg class="icon icon--youtube" aria-hidden="true" width="33" height="27" fill="currentColor" viewBox="0 0 33 27"><path fill-rule="evenodd" d="M1.22 9.32C1.22 4.73 4.95 1 9.55 1h13.9c4.6 0 8.33 3.73 8.33 8.32v8.35c0 4.6-3.73 8.32-8.33 8.32H9.55c-4.6 0-8.33-3.73-8.33-8.32V9.32Zm22.07 4.49L13.1 8.32V19.3l10.19-5.49Z" clip-rule="evenodd"/></svg>
      <span class="icon__fallback-text">YouTube</span>
    </a></div>

<div class="footer__copyright" aria-label="Footer Disclaimer">
  <span class="w_msg">†</span>Statements made on this website have not been evaluated by the U.S. Food and Drug Administration. These products are not intended to diagnose, treat, cure, or prevent any disease. Information provided by this website or this company is not a substitute for individual medical advice. | <span class="copyright">©Bulletproof 360, Inc. 2013-2026</span>
  <p class="cr-disc">Some visuals on our website may have been created with AI assistance.</p>
</div>

<div class="footer__links-extra text-center container">
  <a class="footer__link--extra" href="https://dsrp-platform.pii.ai/a1b4e5d2-6076-44c0-8634-5cd87539becf/submit.html" target="_blank" rel="nofollow noreferrer">Data Subject Requests</a>|
  <button class="footer__link--extra" onClick="showPopup()">Do Not Sell or Share</button>| 
  <button class="footer__link--extra pieeye-cookie-setting">Cookie Settings</button>
</div>

</footer>
<!-- END sections: footer-group -->
<style>@font-face{ font-family: 'Dosis'; font-style: normal; font-weight: 200; src: local('Dosis-Bold'), url(//www.bulletproof.com/cdn/shop/t/617/assets/Dosis-Bold.woff2?v=102548650403799063391776326500) format('woff2'); font-display: swap}@font-face{ font-family: 'Dosis'; font-style: normal; font-weight: 300; src: local('Dosis-Bold'), url(//www.bulletproof.com/cdn/shop/t/617/assets/Dosis-Bold.woff2?v=102548650403799063391776326500) format('woff2'); font-display: swap}@font-face{ font-family: 'Dosis'; font-style: normal; font-weight: 400; src: local('Dosis-Bold'), url(//www.bulletproof.com/cdn/shop/t/617/assets/Dosis-Bold.woff2?v=102548650403799063391776326500) format('woff2'); font-display: swap}@font-face{ font-family: 'Dosis'; font-style: normal; font-weight: 500; src: local('Dosis-Bold'), url(//www.bulletproof.com/cdn/shop/t/617/assets/Dosis-Bold.woff2?v=102548650403799063391776326500) format('woff2'); font-display: swap}@font-face{ font-family: 'Dosis'; font-style: normal; font-weight: 600; src: local('Dosis-Bold'), url(//www.bulletproof.com/cdn/shop/t/617/assets/Dosis-Bold.woff2?v=102548650403799063391776326500) format('woff2'); font-display: swap}@font-face{ font-family: 'Dosis'; font-style: normal; font-weight: 700; src: local('Dosis-Bold'), url(//www.bulletproof.com/cdn/shop/t/617/assets/Dosis-Bold.woff2?v=102548650403799063391776326500) format('woff2'); font-display: swap}@font-face{ font-family: 'Dosis'; font-style: normal; font-weight: 800; src: local('Dosis-Bold'), url(//www.bulletproof.com/cdn/shop/t/617/assets/Dosis-Bold.woff2?v=102548650403799063391776326500) format('woff2'); font-display: swap}</style>
<div id="shopify-section-cart-drawer" class="shopify-section"><link href="//www.bulletproof.com/cdn/shop/t/617/assets/cart-drawer.css?v=145504773251456939941787677079" rel="stylesheet" type="text/css" media="all" />

<cart-drawer
  role="dialog"
  aria-modal="true"
  aria-labelledby="cart-drawer-title"
  aria-hidden="true"
  style="display: none;"
  class="cart-drawer"
>
  <button
    type="button"
    class="cart-drawer__overlay"
    aria-label="Close cart"
    tabindex="-1"
  ></button>

  <div class="cart-drawer__inner" role="document"><div class="cart-drawer__header">
      <h2 id="cart-drawer-title" class="cart-drawer__title">Your Cart</h2>
      <button
        type="button"
        class="cart-drawer__close"
        aria-label="Close cart"
      >
        <span class="visually-hidden">Close</span>
      </button>
    </div>

    <div class="cart-drawer__body"><div class="cart-drawer__blocks"><style>
  .tiered-progress {
    background-color: #e2c8b6;
    padding: 12px;
  }

  /* ---- Prompt (message + subcopy) ---- */

  .tiered-progress__message {
    color: #333;
    font-family: var(--font-family-regular, "Fields", "Open Sans", arial, sans-serif);
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1.3;
    margin: 0;
    text-align: center;
  }

  .tiered-progress__subcopy {
    color: #333;
    font-family: var(--font-family-regular, "Fields", "Open Sans", arial, sans-serif);
    font-size: 1.2rem;
    font-weight: 400;
    line-height: 1.3;
    margin: 2px 0 0;
    text-align: center;
  }

  /* ---- Track (wraps bar + icons) ---- */

  .tiered-progress__track {
    height: 30px;
    margin-top: 10px;
    position: relative;
  }

  /* ---- Progress bar ---- */

  .tiered-progress__bar {
    background-color: #fff;
    border-radius: 10px;
    height: 8px;
    left: 7px;
    overflow: hidden;
    position: absolute;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
  }

  .tiered-progress__bar-fill {
    background-color: #ff5100;
    border-radius: 10px;
    height: 100%;
    transition: width 0.4s ease;
  }

  /* ---- Icons (positioned over the bar) ---- */

  .tiered-progress__icons {
    align-items: center;
    display: flex;
    inset: 0;
    justify-content: space-between;
    pointer-events: none;
    position: absolute;
    z-index: 1;
  }

  /* ---- Start knob ---- */

  .tiered-progress__start-knob {
    background-color: #fff;
    border-radius: 50%;
    display: block;
    flex-shrink: 0;
    height: 14px;
    transition: background-color 0.25s ease;
    width: 14px;
  }

  .tiered-progress__start-knob--active {
    background-color: #ff5100;
  }

  /* ---- Tier icon (free shipping) ---- */

  .tiered-progress__tier {
    align-items: center;
    background-color: #fff;
    border: 2px solid #e2c8b6;
    border-radius: 50%;
    display: flex;
    flex-shrink: 0;
    height: 30px;
    justify-content: center;
    transition: background-color 0.25s ease, border-color 0.25s ease;
    width: 30px;
  }

  .tiered-progress__tier--complete {
    background-color: #ff5100;
    border-color: #ff5100;
  }

  .tiered-progress__tier-icon {
    color: #ff5100;
    display: block;
    height: 16px;
    transition: color 0.25s ease;
    width: 16px;
  }

  .tiered-progress__tier--complete .tiered-progress__tier-icon {
    color: #fff;
  }

  /* ---- Desktop ---- */

  @media (min-width: 769px) {
    .tiered-progress__message {
      font-size: 1.6rem;
    }

    .tiered-progress__subcopy {
      font-size: 1.3rem;
    }
  }
</style>

<div
  class="tiered-progress"
  role="region"
  aria-label="Free shipping progress"
  data-tiered-progress
  data-threshold="4900"
  data-below-message="Spend [amount] more to unlock FREE shipping"
  data-below-subcopy="or subscribe for free shipping on orders $25+"
  data-above-message="You&#39;ve unlocked FREE shipping"
  data-above-subcopy=""
  
  
>
  <p class="tiered-progress__message">Spend $49 more to unlock FREE shipping</p>
  <p class="tiered-progress__subcopy">or subscribe for free shipping on orders $25+</p>

  <div class="tiered-progress__track">
    <div
      class="tiered-progress__bar"
      role="progressbar"
      aria-valuenow="0"
      aria-valuemin="0"
      aria-valuemax="100"
      aria-label="Free shipping progress"
    >
      <div class="tiered-progress__bar-fill" style="width: 0%;"></div>
    </div>

    <div class="tiered-progress__icons" aria-hidden="true">
      <span class="tiered-progress__start-knob"></span>
      <span class="tiered-progress__tier">
        <svg class="tiered-progress__tier-icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">
          <rect x="1" y="3" width="15" height="13"></rect>
          <polygon points="16 8 20 8 23 11 23 16 16 16 16 8"></polygon>
          <circle cx="5.5" cy="18.5" r="2.5"></circle>
          <circle cx="18.5" cy="18.5" r="2.5"></circle>
        </svg>
      </span>
    </div>
  </div>
</div>
<style>
  .sub-progress {
    background-color: #e2c8b6;
    padding: 12px;
  }

  .sub-progress__heading {
    color: #333;
    font-family: var(--font-family-regular, "Fields", "Open Sans", arial, sans-serif);
    font-size: 1.3rem;
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1.3;
    margin: 0 0 10px;
  }

  /* ---- Tier track ---- */

  .sub-progress__tiers {
    display: flex;
    justify-content: space-between;
  }

  /* ---- Single tier ---- */

  .sub-progress__tier {
    align-items: center;
    aspect-ratio: 1;
    background-color: #fff;
    border: 1px solid #e2c8b6;
    border-radius: 2px;
    display: flex;
    flex: 0 0 66px;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    overflow: hidden;
    position: relative;
  }

  .sub-progress__tier--active {
    border-color: #333;
  }

  /* ---- Tier image (visible when active) ---- */

  .sub-progress__tier-image {
    display: none;
    height: 100%;
    left: 0;
    object-fit: cover;
    position: absolute;
    top: 0;
    width: 100%;
  }

  .sub-progress__tier--active .sub-progress__tier-image {
    display: block;
  }

  /* ---- Checkmark badge (visible when active) ---- */

  .sub-progress__tier-check {
    align-items: center;
    background-color: #ff5100;
    border-radius: 50%;
    bottom: 6px;
    color: #fff;
    display: none;
    height: 22px;
    justify-content: center;
    position: absolute;
    right: 6px;
    width: 22px;
    z-index: 1;
  }

  .sub-progress__tier--active .sub-progress__tier-check {
    display: flex;
  }

  .sub-progress__tier-check svg {
    display: block;
    height: 12px;
    width: 12px;
  }

  /* ---- Placeholder number + discount (visible when inactive) ---- */

  .sub-progress__tier-number {
    color: #333;
    font-family: var(--font-family-alt, "Dosis", sans-serif);
    font-size: 2.4rem;
    font-weight: 700;
    line-height: 1;
  }

  .sub-progress__tier--active .sub-progress__tier-number {
    display: none;
  }

  .sub-progress__tier-discount {
    color: #333;
    font-family: var(--font-family-regular, "Fields", "Open Sans", arial, sans-serif);
    font-size: 1.2rem;
    line-height: 1;
    margin-top: 8px;
  }

  .sub-progress__tier--active .sub-progress__tier-discount {
    display: none;
  }

  /* ---- Progress bar ---- */

  .sub-progress__bar {
    background-color: #fff;
    border-radius: 3px;
    height: 6px;
    margin-top: 12px;
    overflow: hidden;
    width: 100%;
  }

  .sub-progress__bar-fill {
    background-color: #ff5100;
    border-radius: 3px;
    height: 100%;
    transition: width 0.4s ease;
  }

  /* ---- Message ---- */

  .sub-progress__message {
    color: #333;
    font-family: var(--font-family-regular, "Fields", "Open Sans", arial, sans-serif);
    font-size: 1.2rem;
    line-height: 1.4;
    margin: 8px 0 0;
  }

  /* ---- Desktop ---- */

  @media (min-width: 769px) {
    .sub-progress__heading {
      font-size: 1.4rem;
    }

    .sub-progress__tier {
      flex: 0 0 77px;
    }

    .sub-progress__tier-discount {
      font-size: 1.3rem;
    }

    .sub-progress__message {
      font-size: 1.3rem;
    }
  }
</style>

<div
  class="sub-progress"
  role="region"
  aria-label="Subscription savings progress"
  data-sub-progress
  data-tiers='[10,15,20,25,30]'
  data-progress-message="Your subscription is [OFF_PERCENT]% off. Add 1 more to get [NEXT_OFF_PERCENT]% off all products."
  data-success-message="You&#39;ve unlocked 30% off all products!"
  style="display: none;"
  
>
  <h3 class="sub-progress__heading">Get up to 30% Off!</h3>

  <div class="sub-progress__tiers"><div
        class="sub-progress__tier"
        data-tier="1"
        data-discount="10"
      >
        <img
          class="sub-progress__tier-image"
          src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="
            alt=""
          width="64"
          height="64"
          loading="lazy"
        />
        <span class="sub-progress__tier-check" aria-hidden="true">
          <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6L9 17L4 12"/></svg>
        </span>
        <span class="sub-progress__tier-number" aria-hidden="true">1</span>
        <span class="sub-progress__tier-discount">10% off</span>
      </div><div
        class="sub-progress__tier"
        data-tier="2"
        data-discount="15"
      >
        <img
          class="sub-progress__tier-image"
          src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="
            alt=""
          width="64"
          height="64"
          loading="lazy"
        />
        <span class="sub-progress__tier-check" aria-hidden="true">
          <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6L9 17L4 12"/></svg>
        </span>
        <span class="sub-progress__tier-number" aria-hidden="true">2</span>
        <span class="sub-progress__tier-discount">15% off</span>
      </div><div
        class="sub-progress__tier"
        data-tier="3"
        data-discount="20"
      >
        <img
          class="sub-progress__tier-image"
          src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="
            alt=""
          width="64"
          height="64"
          loading="lazy"
        />
        <span class="sub-progress__tier-check" aria-hidden="true">
          <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6L9 17L4 12"/></svg>
        </span>
        <span class="sub-progress__tier-number" aria-hidden="true">3</span>
        <span class="sub-progress__tier-discount">20% off</span>
      </div><div
        class="sub-progress__tier"
        data-tier="4"
        data-discount="25"
      >
        <img
          class="sub-progress__tier-image"
          src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="
            alt=""
          width="64"
          height="64"
          loading="lazy"
        />
        <span class="sub-progress__tier-check" aria-hidden="true">
          <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6L9 17L4 12"/></svg>
        </span>
        <span class="sub-progress__tier-number" aria-hidden="true">4</span>
        <span class="sub-progress__tier-discount">25% off</span>
      </div><div
        class="sub-progress__tier"
        data-tier="5"
        data-discount="30"
      >
        <img
          class="sub-progress__tier-image"
          src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="
            alt=""
          width="64"
          height="64"
          loading="lazy"
        />
        <span class="sub-progress__tier-check" aria-hidden="true">
          <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6L9 17L4 12"/></svg>
        </span>
        <span class="sub-progress__tier-number" aria-hidden="true">5</span>
        <span class="sub-progress__tier-discount">30% off</span>
      </div></div>

  <div
    class="sub-progress__bar"
    role="progressbar"
    aria-valuenow="0"
    aria-valuemin="0"
    aria-valuemax="100"
    aria-label="Subscription tier progress"
  >
    <div class="sub-progress__bar-fill" style="width: 0%;"></div>
  </div>

  <p class="sub-progress__message" style="display: none;"></p>
</div>

</div><div class="cart-drawer__items" style="display: none;"><ul class="cart-items"></ul>
</div>
      <div class="cart-drawer__empty">
        <h3 class="cart-drawer__empty-title">Your Cart is Empty</h3>
        <p class="cart-drawer__empty-subtext">Shop all your feel-good favorites!</p><nav class="cart-drawer__empty-links" aria-label="Shop categories"><a href="/collections/mix-ins" class="cart-drawer__empty-link">Shop Mix-Ins</a><a href="/collections/mct-oil" class="cart-drawer__empty-link">Shop MCT Oil</a><a href="/collections/supplements" class="cart-drawer__empty-link">Shop Supplements</a><a href="/collections/protein-bars" class="cart-drawer__empty-link">Shop Protein Bars</a></nav></div><div class="nosto_element" id="cart-drawer-recommendations"></div></div><div class="cart-drawer__footer"><div class="cart-drawer__summary"><button
    type="button"
    class="cart-drawer__total-toggle"
    aria-expanded="false"
    aria-controls="cart-drawer-summary-details"
  >
    <span class="cart-drawer__total-toggle-label">
      <span class="cart-drawer__total-toggle-text">Total:</span>
      <span class="cart-drawer__total-toggle-action">
        <span class="cart-drawer__total-toggle-action-text" data-see="see details" data-hide="hide details">see details</span>
        <svg class="cart-drawer__total-toggle-icon" width="13" height="8" viewBox="0 0 13 8" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
          <path fill-rule="evenodd" clip-rule="evenodd" d="M6.38 6.51 11.675.333a.5.5 0 0 1 .76.65L7.138 7.162a1 1 0 0 1-1.519 0L.325.984a.5.5 0 1 1 .76-.65L6.38 6.509z" fill="#ff5200"/>
        </svg>
      </span>
    </span>
    <span class="cart-drawer__total-toggle-prices"><span class="cart-drawer__total-final-price">$0.00</span>
    </span>
  </button><div
    id="cart-drawer-summary-details"
    class="cart-drawer__summary-details"
    aria-hidden="true"
  >
    <div class="cart-drawer__summary-row">
      <span class="cart-drawer__summary-label">Subtotal (0 items)</span>
      <span class="cart-drawer__summary-value">$0.00</span>
    </div>

    <div class="cart-drawer__summary-row">
      <span class="cart-drawer__summary-label">Tax</span>
      <span class="cart-drawer__summary-value cart-drawer__summary-value--light">calculated at checkout</span>
    </div>

    <div class="cart-drawer__summary-row">
      <span class="cart-drawer__summary-label">Shipping</span>
      <span class="cart-drawer__summary-value cart-drawer__summary-value--light">calculated at checkout</span>
    </div></div>
</div>
<div class="cart-drawer__actions">
        <a
          href="/checkout"
          class="cart-drawer__checkout-btn" aria-disabled="true" tabindex="-1"
        >
          Secure Checkout
        </a></div>

    </div>
  </div>
</cart-drawer>

<script type="text/javascript" src="//www.bulletproof.com/cdn/shop/t/617/assets/cart-ui.js?v=25231261739108296431785332218" defer></script>
<script type="text/javascript" src="//www.bulletproof.com/cdn/shop/t/617/assets/cart-drawer.js?v=10787512057896222501784019120" defer></script>

</div><div id="shopify-section-cart-reminder-popup" class="shopify-section"><cart-reminder-popup
    class="cart-reminder"
    role="region"
    aria-label="Welcome Back, We Saved Your Cart!"
    data-dismiss-seconds="10"
    data-continue-url="/collections/bulletproof-best-sellers"
  >
    <div class="cart-reminder__panel">
      <div class="cart-reminder__header">
        <p class="cart-reminder__heading">Welcome Back, We Saved Your Cart!</p>
        <button
          type="button"
          class="cart-reminder__close js-cart-reminder-close"
          aria-label="Close"
        >
          <svg viewBox="0 0 14 14" width="14" height="14" aria-hidden="true" focusable="false">
            <path d="M1 1l12 12M13 1L1 13" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path>
          </svg>
        </button>
      </div><ul class="cart-reminder__items js-cart-reminder-items"></ul>

      <div class="cart-reminder__footer">
        <div class="cart-reminder__subtotal">
          <span class="cart-reminder__subtotal-label">Subtotal</span>
          <span class="cart-reminder__subtotal-amount js-cart-reminder-subtotal"></span>
        </div>
        <div class="cart-reminder__actions">
          <a href="/checkout" class="cart-reminder__button cart-reminder__button--primary">Continue to checkout</a>
          <a
            href="/collections/bulletproof-best-sellers"
            class="cart-reminder__button cart-reminder__button--secondary js-cart-reminder-continue"
          >Continue shopping</a>
        </div>
      </div>
    </div>
  </cart-reminder-popup>
</div><script type="text/javascript" src="//www.bulletproof.com/cdn/shop/t/617/assets/cart.js?v=166250228575877280681785332219" defer></script><!-- Scripts --><script id="vendor-body-js">/*! lazysizes - v5.3.2 */!(function(t21,e){var i;t21&&(i=function(){e(t21.lazySizes),t21.removeEventListener("lazyunveilread",i,true)},e=e.bind(null,t21,t21.document),"object"==typeof module&&module.exports?e(require("lazysizes")):"function"==typeof define&&define.amd?define(["lazysizes"],e):t21.lazySizes?i():t21.addEventListener("lazyunveilread",i,true))})("undefined"!=typeof window?window:0,function(u,t21,i){"use strict";var l,s,d,f,g,o;u.addEventListener&&(l=/\s+(\d+)(w|h)\s+(\d+)(w|h)/,s=/parent-fit["']*\s*:\s*["']*(contain|cover|width)/,d=/parent-container["']*\s*:\s*["']*(.+?)(?=(\s|$|,|'|"|;))/,f=/^picture$/i,g=i.cfg,o={getParent:function(t22,e){var i2=t22,a=t22.parentNode;return e&&"prev"!=e||!a||!f.test(a.nodeName||"")||(a=a.parentNode),"self"!=e&&(i2="prev"==e?t22.previousElementSibling:e&&(a.closest||u.jQuery)&&(a.closest?a.closest(e):jQuery(a).closest(e)[0])||a),i2},getFit:function(t22){var e,i2,a=getComputedStyle(t22,null)||{},n=a.content||a.fontFamily,r={fit:t22._lazysizesParentFit||t22.getAttribute("data-parent-fit")};return!r.fit&&n&&(e=n.match(s))&&(r.fit=e[1]),r.fit?(!(i2=t22._lazysizesParentContainer||t22.getAttribute("data-parent-container"))&&n&&(e=n.match(d))&&(i2=e[1]),r.parent=o.getParent(t22,i2)):r.fit=a.objectFit,r},getImageRatio:function(t22){for(var e,i2,a,n,r,s2,d2=t22.parentNode,o2=d2&&f.test(d2.nodeName||"")?d2.querySelectorAll("source, img"):[t22],c=0;c<o2.length;c++)if(e=(t22=o2[c]).getAttribute(g.srcsetAttr)||t22.getAttribute("srcset")||t22.getAttribute("data-pfsrcset")||t22.getAttribute("data-risrcset")||"",i2=t22._lsMedia||t22.getAttribute("media"),i2=g.customMedia[t22.getAttribute("data-media")||i2]||i2,e&&(!i2||(u.matchMedia&&matchMedia(i2)||{}).matches)){(a=parseFloat(t22.getAttribute("data-aspectratio")))||(s2=(n=e.match(l))?"w"==n[2]?(r=n[1],n[3]):(r=n[3],n[1]):(r=t22.getAttribute("width"),t22.getAttribute("height")),a=r/s2);break}return a},calculateSize:function(t22,e){var i2,a,n,r=this.getFit(t22),s2=r.fit,d2=r.parent;return"width"==s2||("contain"==s2||"cover"==s2)&&(a=this.getImageRatio(t22))?(d2?e=d2.clientWidth:d2=t22,n=e,"width"==s2?n=e:(i2=e/d2.clientHeight)&&("cover"==s2&&i2<a||"contain"==s2&&a<i2)&&(n=e*(a/i2)),n):e}},i.parentFit=o,t21.addEventListener("lazybeforesizes",function(t22){var e;t22.defaultPrevented||t22.detail.instance!=i||(e=t22.target,t22.detail.width=o.calculateSize(e,t22.detail.width))}))});/*! lazysizes - v5.3.2 */!(function(e,t21){var r;e&&(r=function(){t21(e.lazySizes),e.removeEventListener("lazyunveilread",r,true)},t21=t21.bind(null,e,e.document),"object"==typeof module&&module.exports?t21(require("lazysizes")):"function"==typeof define&&define.amd?define(["lazysizes"],t21):e.lazySizes?r():e.addEventListener("lazyunveilread",r,true))})("undefined"!=typeof window?window:0,function(d,n,p){"use strict";var i,a,s,l,t21,r,f,o,c,m,u,y=p.cfg,e=n.createElement("img"),g="sizes"in e&&"srcset"in e,h=/\s+\d+h/g,z=(a=/\s+(\d+)(w|h)\s+(\d+)(w|h)/,s=Array.prototype.forEach,function(){function r2(e3){var t23,r3,i3=e3.getAttribute(y.srcsetAttr);i3&&(r3=i3.match(a))&&((t23="w"==r3[2]?r3[1]/r3[3]:r3[3]/r3[1])&&e3.setAttribute("data-aspectratio",t23),e3.setAttribute(y.srcsetAttr,i3.replace(h,"")))}function e2(e3){var t23;e3.detail.instance==p&&((t23=e3.target.parentNode)&&"PICTURE"==t23.nodeName&&s.call(t23.getElementsByTagName("source"),r2),r2(e3.target))}function t22(){i2.currentSrc&&n.removeEventListener("lazybeforeunveil",e2)}var i2=n.createElement("img");n.addEventListener("lazybeforeunveil",e2),i2.onload=t22,i2.onerror=t22,i2.srcset="data:,a 1w 1h",i2.complete&&t22()});function v(e2,t22){return e2.w-t22.w}function w(e2,t22,r2,i2){l.push({c:t22,u:r2,w:+i2})}function b(e2,t22){var r2,i2=e2.getAttribute("srcset")||e2.getAttribute(y.srcsetAttr);!i2&&t22&&(i2=e2._lazypolyfill?e2._lazypolyfill._set:e2.getAttribute(y.srcAttr)||e2.getAttribute("src")),e2._lazypolyfill&&e2._lazypolyfill._set==i2||(r2=o(i2||""),t22&&e2.parentNode&&(r2.isPicture="PICTURE"==e2.parentNode.nodeName.toUpperCase(),r2.isPicture&&d.matchMedia&&(p.aC(e2,"lazymatchmedia"),c())),r2._set=i2,Object.defineProperty(e2,"_lazypolyfill",{value:r2,writable:true}))}function A(e2){var t22,r2,i2,n2,a2,s2,l2,o2,c2,u2=e2;if(b(u2,true),(n2=u2._lazypolyfill).isPicture){for(r2=0,i2=(t22=e2.parentNode.getElementsByTagName("source")).length;r2<i2;r2++)if(y.supportsType(t22[r2].getAttribute("type"),e2)&&m(t22[r2].getAttribute("media"))){u2=t22[r2],b(u2),n2=u2._lazypolyfill;break}}return 1<n2.length?(s2=u2.getAttribute("sizes")||"",s2=f.test(s2)&&parseInt(s2,10)||p.gW(e2,e2.parentNode),n2.d=(l2=e2,o2=d.devicePixelRatio||1,c2=p.getX&&p.getX(l2),Math.min(c2||o2,2.5,o2)),!n2.src||!n2.w||n2.w<s2?(n2.w=s2,a2=(function(e3){for(var t23,r3,i3=e3.length,n3=e3[i3-1],a3=0;a3<i3;a3++)if((n3=e3[a3]).d=n3.w/e3.w,n3.d>=e3.d){!n3.cached&&(t23=e3[a3-1])&&t23.d>e3.d-.13*Math.pow(e3.d,2.2)&&(r3=Math.pow(t23.d-.6,1.6),t23.cached&&(t23.d+=.15*r3),t23.d+(n3.d-e3.d)*r3>e3.d&&(n3=t23));break}return n3})(n2.sort(v)),n2.src=a2):a2=n2.src):a2=n2[0],a2}function E(e2){var t22;g&&e2.parentNode&&"PICTURE"!=e2.parentNode.nodeName.toUpperCase()||(t22=A(e2))&&t22.u&&e2._lazypolyfill.cur!=t22.u&&(e2._lazypolyfill.cur=t22.u,t22.cached=true,e2.setAttribute(y.srcAttr,t22.u),e2.setAttribute("src",t22.u))}y.supportsType||(y.supportsType=function(e2){return!e2}),d.HTMLPictureElement&&g?!p.hasHDescriptorFix&&n.msElementsFromPoint&&(p.hasHDescriptorFix=true,z()):d.picturefill||y.pf||(y.pf=function(e2){var t22,r2;if(!d.picturefill)for(t22=0,r2=e2.elements.length;t22<r2;t22++)i(e2.elements[t22])},f=/^\s*\d+\.*\d*px\s*$/,t21=/(([^,\s].[^\s]+)\s+(\d+)w)/g,r=/\s/,c=function(){var e2,r2;function t22(){for(var e3=0,t23=r2.length;e3<t23;e3++)i(r2[e3])}c.init||(c.init=true,addEventListener("resize",(r2=n.getElementsByClassName("lazymatchmedia"),function(){clearTimeout(e2),e2=setTimeout(t22,66)})))},m=function(e2){return d.matchMedia?(m=function(e3){return!e3||(matchMedia(e3)||{}).matches})(e2):!e2},E.parse=o=function(e2){return l=[],(e2=e2.trim()).replace(h,"").replace(t21,w),l.length||!e2||r.test(e2)||l.push({c:e2,u:e2,w:99}),l},i=E,y.loadedClass&&y.loadingClass&&(u=[],['img[sizes$="px"][srcset].',"picture > img:not([srcset])."].forEach(function(e2){u.push(e2+y.loadedClass),u.push(e2+y.loadingClass)}),y.pf({elements:n.querySelectorAll(u.join(", "))})))});/*! lazysizes - v5.3.2 */!(function(e,t21){var a=function(){t21(e.lazySizes),e.removeEventListener("lazyunveilread",a,true)};t21=t21.bind(null,e,e.document),"object"==typeof module&&module.exports?t21(require("lazysizes")):"function"==typeof define&&define.amd?define(["lazysizes"],t21):e.lazySizes?a():e.addEventListener("lazyunveilread",a,true)})(window,function(e,i,o){"use strict";var l,d,u={};function s(e2,t21,a){var n,r;u[e2]||(n=i.createElement(t21?"link":"script"),r=i.getElementsByTagName("script")[0],t21?(n.rel="stylesheet",n.href=e2):(n.onload=function(){n.onerror=null,n.onload=null,a()},n.onerror=n.onload,n.src=e2),u[e2]=true,u[n.src||n.href]=true,r.parentNode.insertBefore(n,r))}i.addEventListener&&(l=function(e2,t21){var a=i.createElement("img");a.onload=function(){a.onload=null,a.onerror=null,a=null,t21()},a.onerror=a.onload,a.src=e2,a&&a.complete&&a.onload&&a.onload()},addEventListener("lazybeforeunveil",function(e2){var t21,a,n;if(e2.detail.instance==o&&!e2.defaultPrevented){var r=e2.target;if("none"==r.preload&&(r.preload=r.getAttribute("data-preload")||"auto"),null!=r.getAttribute("data-autoplay"))if(r.getAttribute("data-expand")&&!r.autoplay)try{r.play()}catch(e3){}else requestAnimationFrame(function(){r.setAttribute("data-expand","-10"),o.aC(r,o.cfg.lazyClass)});(t21=r.getAttribute("data-link"))&&s(t21,true),(t21=r.getAttribute("data-script"))&&(e2.detail.firesLoad=true,s(t21,null,function(){e2.detail.firesLoad=false,o.fire(r,"_lazyloaded",{},true,true)})),(t21=r.getAttribute("data-require"))&&(o.cfg.requireJs?o.cfg.requireJs([t21]):s(t21)),(a=r.getAttribute("data-bg"))&&(e2.detail.firesLoad=true,l(a,function(){r.style.backgroundImage="url("+(d.test(a)?JSON.stringify(a):a)+")",e2.detail.firesLoad=false,o.fire(r,"_lazyloaded",{},true,true)})),(n=r.getAttribute("data-poster"))&&(e2.detail.firesLoad=true,l(n,function(){r.poster=n,e2.detail.firesLoad=false,o.fire(r,"_lazyloaded",{},true,true)}))}},!(d=/\(|\)|\s|'/)))});/*! lazysizes - v4.0.0-rc3 */!(function(a,b){var c=function(){b(a.lazySizes),a.removeEventListener("lazyunveilread",c,true)};b=b.bind(null,a,a.document),"object"==typeof module&&module.exports?b(require("lazysizes")):a.lazySizes?c():a.addEventListener("lazyunveilread",c,true)})(window,function(a,b,c){"use strict";if(a.addEventListener){var d=/\s+/g,e=/\s*\|\s+|\s+\|\s*/g,f=/^(.+?)(?:\s+\[\s*(.+?)\s*\])?$/,g=/\(|\)|'/,h={contain:1,cover:1},i=function(a2){var b2=c.gW(a2,a2.parentNode);return(!a2._lazysizesWidth||b2>a2._lazysizesWidth)&&(a2._lazysizesWidth=b2),a2._lazysizesWidth},j=function(a2){var b2;return b2=(getComputedStyle(a2)||{getPropertyValue:function(){}}).getPropertyValue("background-size"),!h[b2]&&h[a2.style.backgroundSize]&&(b2=a2.style.backgroundSize),b2},k=function(a2,c2,g2){var h2=b.createElement("picture"),i2=c2.getAttribute(lazySizesConfig.sizesAttr),j2=c2.getAttribute("data-ratio"),k2=c2.getAttribute("data-optimumx");c2._lazybgset&&c2._lazybgset.parentNode==c2&&c2.removeChild(c2._lazybgset),Object.defineProperty(g2,"_lazybgset",{value:c2,writable:true}),Object.defineProperty(c2,"_lazybgset",{value:h2,writable:true}),a2=a2.replace(d," ").split(e),h2.style.display="none",g2.className=lazySizesConfig.lazyClass,1!=a2.length||i2||(i2="auto"),a2.forEach(function(a3){var c3=b.createElement("source");i2&&"auto"!=i2&&c3.setAttribute("sizes",i2),a3.match(f)&&(c3.setAttribute(lazySizesConfig.srcsetAttr,RegExp.$1),RegExp.$2&&c3.setAttribute("media",lazySizesConfig.customMedia[RegExp.$2]||RegExp.$2)),h2.appendChild(c3)}),i2&&(g2.setAttribute(lazySizesConfig.sizesAttr,i2),c2.removeAttribute(lazySizesConfig.sizesAttr),c2.removeAttribute("sizes")),k2&&g2.setAttribute("data-optimumx",k2),j2&&g2.setAttribute("data-ratio",j2),h2.appendChild(g2),c2.appendChild(h2)},l=function(a2){if(a2.target._lazybgset){var b2=a2.target,d2=b2._lazybgset,e2=b2.currentSrc||b2.src;e2&&(d2.style.backgroundImage="url("+(g.test(e2)?JSON.stringify(e2):e2)+")"),b2._lazybgsetLoading&&(c.fire(d2,"_lazyloaded",{},false,true),delete b2._lazybgsetLoading)}};addEventListener("lazybeforeunveil",function(a2){var d2,e2,f2;!a2.defaultPrevented&&(d2=a2.target.getAttribute("data-bgset"))&&(f2=a2.target,e2=b.createElement("img"),e2.alt="",e2._lazybgsetLoading=true,a2.detail.firesLoad=true,k(d2,f2,e2),setTimeout(function(){c.loader.unveil(e2),c.rAF(function(){c.fire(e2,"_lazyloaded",{},true,true),e2.complete&&l({target:e2})})}))}),b.addEventListener("load",l,true),a.addEventListener("lazybeforesizes",function(a2){if(a2.detail.instance==c&&a2.target._lazybgset&&a2.detail.dataAttr){var b2=a2.target._lazybgset,d2=j(b2);h[d2]&&(a2.target._lazysizesParentFit=d2,c.rAF(function(){a2.target.setAttribute("data-parent-fit",d2),a2.target._lazysizesParentFit&&delete a2.target._lazysizesParentFit}))}},true),b.documentElement.addEventListener("lazybeforesizes",function(a2){!a2.defaultPrevented&&a2.target._lazybgset&&a2.detail.instance==c&&(a2.detail.width=i(a2.target._lazybgset))})}});/*! lazysizes - v5.3.2 */!(function(e){var t21=(function(u,D,f){"use strict";var k,H;if((function(){var e3;var t23={lazyClass:"lazyload",loadedClass:"lazyloaded",loadingClass:"lazyloading",preloadClass:"lazypreload",errorClass:"lazyerror",autosizesClass:"lazyautosizes",fastLoadedClass:"ls-is-cached",iframeLoadMode:0,srcAttr:"data-src",srcsetAttr:"data-srcset",sizesAttr:"data-sizes",minSize:40,customMedia:{},init:true,expFactor:1.5,hFac:.8,loadMode:2,loadHidden:true,ricTimeout:0,throttleDelay:125};H=u.lazySizesConfig||u.lazysizesConfig||{};for(e3 in t23){if(!(e3 in H)){H[e3]=t23[e3]}}})(),!D||!D.getElementsByClassName){return{init:function(){},cfg:H,noSupport:true}}var O=D.documentElement,i=u.HTMLPictureElement,P="addEventListener",$="getAttribute",q=u[P].bind(u),I=u.setTimeout,U=u.requestAnimationFrame||I,o=u.requestIdleCallback,j=/^picture$/i,r=["load","error","lazyincluded","_lazyloaded"],a={},G=Array.prototype.forEach,J=function(e3,t23){if(!a[t23]){a[t23]=new RegExp("(\\s|^)"+t23+"(\\s|$)")}return a[t23].test(e3[$]("class")||"")&&a[t23]},K=function(e3,t23){if(!J(e3,t23)){e3.setAttribute("class",(e3[$]("class")||"").trim()+" "+t23)}},Q=function(e3,t23){var a2;if(a2=J(e3,t23)){e3.setAttribute("class",(e3[$]("class")||"").replace(a2," "))}},V=function(t23,a2,e3){var i2=e3?P:"removeEventListener";if(e3){V(t23,a2)}r.forEach(function(e4){t23[i2](e4,a2)})},X=function(e3,t23,a2,i2,r2){var n=D.createEvent("Event");if(!a2){a2={}}a2.instance=k;n.initEvent(t23,!i2,!r2);n.detail=a2;e3.dispatchEvent(n);return n},Y=function(e3,t23){var a2;if(!i&&(a2=u.picturefill||H.pf)){if(t23&&t23.src&&!e3[$]("srcset")){e3.setAttribute("srcset",t23.src)}a2({reevaluate:true,elements:[e3]})}else if(t23&&t23.src){e3.src=t23.src}},Z=function(e3,t23){return(getComputedStyle(e3,null)||{})[t23]},s=function(e3,t23,a2){a2=a2||e3.offsetWidth;while(a2<H.minSize&&t23&&!e3._lazysizesWidth){a2=t23.offsetWidth;t23=t23.parentNode}return a2},ee=(function(){var a2,i2;var t23=[];var r2=[];var n=t23;var s2=function(){var e4=n;n=t23.length?r2:t23;a2=true;i2=false;while(e4.length){e4.shift()()}a2=false};var e3=function(e4,t24){if(a2&&!t24){e4.apply(this,arguments)}else{n.push(e4);if(!i2){i2=true;(D.hidden?I:U)(s2)}}};e3._lsFlush=s2;return e3})(),te=function(a2,e3){return e3?function(){ee(a2)}:function(){var e4=this;var t23=arguments;ee(function(){a2.apply(e4,t23)})}},ae=function(e3){var a2;var i2=0;var r2=H.throttleDelay;var n=H.ricTimeout;var t23=function(){a2=false;i2=f.now();e3()};var s2=o&&n>49?function(){o(t23,{timeout:n});if(n!==H.ricTimeout){n=H.ricTimeout}}:te(function(){I(t23)},true);return function(e4){var t24;if(e4=e4===true){n=33}if(a2){return}a2=true;t24=r2-(f.now()-i2);if(t24<0){t24=0}if(e4||t24<9){s2()}else{I(s2,t24)}}},ie=function(e3){var t23,a2;var i2=99;var r2=function(){t23=null;e3()};var n=function(){var e4=f.now()-a2;if(e4<i2){I(n,i2-e4)}else{(o||r2)(r2)}};return function(){a2=f.now();if(!t23){t23=I(n,i2)}}},e2=(function(){var v,m,c,h,e3;var y,z,g,p,C,b,A;var n=/^img$/i;var d=/^iframe$/i;var E="onscroll"in u&&!/(gle|ing)bot/.test(navigator.userAgent);var _=0;var w=0;var M=0;var N=-1;var L=function(e4){M--;if(!e4||M<0||!e4.target){M=0}};var x=function(e4){if(A==null){A=Z(D.body,"visibility")=="hidden"}return A||!(Z(e4.parentNode,"visibility")=="hidden"&&Z(e4,"visibility")=="hidden")};var W=function(e4,t24){var a3;var i3=e4;var r3=x(e4);g-=t24;b+=t24;p-=t24;C+=t24;while(r3&&(i3=i3.offsetParent)&&i3!=D.body&&i3!=O){r3=(Z(i3,"opacity")||1)>0;if(r3&&Z(i3,"overflow")!="visible"){a3=i3.getBoundingClientRect();r3=C>a3.left&&p<a3.right&&b>a3.top-1&&g<a3.bottom+1}}return r3};var t23=function(){var e4,t24,a3,i3,r3,n2,s3,o3,l2,u2,f2,c2;var d2=k.elements;if((h=H.loadMode)&&M<8&&(e4=d2.length)){t24=0;N++;for(;t24<e4;t24++){if(!d2[t24]||d2[t24]._lazyRace){continue}if(!E||k.prematureUnveil&&k.prematureUnveil(d2[t24])){R(d2[t24]);continue}if(!(o3=d2[t24][$]("data-expand"))||!(n2=o3*1)){n2=w}if(!u2){u2=!H.expand||H.expand<1?O.clientHeight>500&&O.clientWidth>500?500:370:H.expand;k._defEx=u2;f2=u2*H.expFactor;c2=H.hFac;A=null;if(w<f2&&M<1&&N>2&&h>2&&!D.hidden){w=f2;N=0}else if(h>1&&N>1&&M<6){w=u2}else{w=_}}if(l2!==n2){y=innerWidth+n2*c2;z=innerHeight+n2;s3=n2*-1;l2=n2}a3=d2[t24].getBoundingClientRect();if((b=a3.bottom)>=s3&&(g=a3.top)<=z&&(C=a3.right)>=s3*c2&&(p=a3.left)<=y&&(b||C||p||g)&&(H.loadHidden||x(d2[t24]))&&(m&&M<3&&!o3&&(h<3||N<4)||W(d2[t24],n2))){R(d2[t24]);r3=true;if(M>9){break}}else if(!r3&&m&&!i3&&M<4&&N<4&&h>2&&(v[0]||H.preloadAfterLoad)&&(v[0]||!o3&&(b||C||p||g||d2[t24][$](H.sizesAttr)!="auto"))){i3=v[0]||d2[t24]}}if(i3&&!r3){R(i3)}}};var a2=ae(t23);var S=function(e4){var t24=e4.target;if(t24._lazyCache){delete t24._lazyCache;return}L(e4);K(t24,H.loadedClass);Q(t24,H.loadingClass);V(t24,B);X(t24,"lazyloaded")};var i2=te(S);var B=function(e4){i2({target:e4.target})};var T=function(e4,t24){var a3=e4.getAttribute("data-load-mode")||H.iframeLoadMode;if(a3==0){e4.contentWindow.location.replace(t24)}else if(a3==1){e4.src=t24}};var F=function(e4){var t24;var a3=e4[$](H.srcsetAttr);if(t24=H.customMedia[e4[$]("data-media")||e4[$]("media")]){e4.setAttribute("media",t24)}if(a3){e4.setAttribute("srcset",a3)}};var s2=te(function(t24,e4,a3,i3,r3){var n2,s3,o3,l2,u2,f2;if(!(u2=X(t24,"lazybeforeunveil",e4)).defaultPrevented){if(i3){if(a3){K(t24,H.autosizesClass)}else{t24.setAttribute("sizes",i3)}}s3=t24[$](H.srcsetAttr);n2=t24[$](H.srcAttr);if(r3){o3=t24.parentNode;l2=o3&&j.test(o3.nodeName||"")}f2=e4.firesLoad||"src"in t24&&(s3||n2||l2);u2={target:t24};K(t24,H.loadingClass);if(f2){clearTimeout(c);c=I(L,2500);V(t24,B,true)}if(l2){G.call(o3.getElementsByTagName("source"),F)}if(s3){t24.setAttribute("srcset",s3)}else if(n2&&!l2){if(d.test(t24.nodeName)){T(t24,n2)}else{t24.src=n2}}if(r3&&(s3||l2)){Y(t24,{src:n2})}}if(t24._lazyRace){delete t24._lazyRace}Q(t24,H.lazyClass);ee(function(){var e5=t24.complete&&t24.naturalWidth>1;if(!f2||e5){if(e5){K(t24,H.fastLoadedClass)}S(u2);t24._lazyCache=true;I(function(){if("_lazyCache"in t24){delete t24._lazyCache}},9)}if(t24.loading=="lazy"){M--}},true)});var R=function(e4){if(e4._lazyRace){return}var t24;var a3=n.test(e4.nodeName);var i3=a3&&(e4[$](H.sizesAttr)||e4[$]("sizes"));var r3=i3=="auto";if((r3||!m)&&a3&&(e4[$]("src")||e4.srcset)&&!e4.complete&&!J(e4,H.errorClass)&&J(e4,H.lazyClass)){return}t24=X(e4,"lazyunveilread").detail;if(r3){re.updateElem(e4,true,e4.offsetWidth)}e4._lazyRace=true;M++;s2(e4,t24,r3,i3,a3)};var r2=ie(function(){H.loadMode=3;a2()});var o2=function(){if(H.loadMode==3){H.loadMode=2}r2()};var l=function(){if(m){return}if(f.now()-e3<999){I(l,999);return}m=true;H.loadMode=3;a2();q("scroll",o2,true)};return{_:function(){e3=f.now();k.elements=D.getElementsByClassName(H.lazyClass);v=D.getElementsByClassName(H.lazyClass+" "+H.preloadClass);q("scroll",a2,true);q("resize",a2,true);q("pageshow",function(e4){if(e4.persisted){var t24=D.querySelectorAll("."+H.loadingClass);if(t24.length&&t24.forEach){U(function(){t24.forEach(function(e5){if(e5.complete){R(e5)}})})}}});if(u.MutationObserver){new MutationObserver(a2).observe(O,{childList:true,subtree:true,attributes:true})}else{O[P]("DOMNodeInserted",a2,true);O[P]("DOMAttrModified",a2,true);setInterval(a2,999)}q("hashchange",a2,true);["focus","mouseover","click","load","transitionend","animationend"].forEach(function(e4){D[P](e4,a2,true)});if(/d$|^c/.test(D.readyState)){l()}else{q("load",l);D[P]("DOMContentLoaded",a2);I(l,2e4)}if(k.elements.length){t23();ee._lsFlush()}else{a2()}},checkElems:a2,unveil:R,_aLSL:o2}})(),re=(function(){var a2;var n=te(function(e4,t24,a3,i3){var r2,n2,s2;e4._lazysizesWidth=i3;i3+="px";e4.setAttribute("sizes",i3);if(j.test(t24.nodeName||"")){r2=t24.getElementsByTagName("source");for(n2=0,s2=r2.length;n2<s2;n2++){r2[n2].setAttribute("sizes",i3)}}if(!a3.detail.dataAttr){Y(e4,a3.detail)}});var i2=function(e4,t24,a3){var i3;var r2=e4.parentNode;if(r2){a3=s(e4,r2,a3);i3=X(e4,"lazybeforesizes",{width:a3,dataAttr:!!t24});if(!i3.defaultPrevented){a3=i3.detail.width;if(a3&&a3!==e4._lazysizesWidth){n(e4,r2,i3,a3)}}}};var e3=function(){var e4;var t24=a2.length;if(t24){e4=0;for(;e4<t24;e4++){i2(a2[e4])}}};var t23=ie(e3);return{_:function(){a2=D.getElementsByClassName(H.autosizesClass);q("resize",t23)},checkElems:t23,updateElem:i2}})(),t22=function(){if(!t22.i&&D.getElementsByClassName){t22.i=true;re._();e2._()}};return I(function(){H.init&&t22()}),k={cfg:H,autoSizer:re,loader:e2,init:t22,uP:Y,aC:K,rC:Q,hC:J,fire:X,gW:s,rAF:ee}})(e,e.document,Date);e.lazySizes=t21,"object"==typeof module&&module.exports&&(module.exports=t21)})("undefined"!=typeof window?window:{});/*!
 * enquire.js v2.1.6 - Awesome Media Queries in JavaScript
 * Copyright (c) 2017 Nick Williams - http://wicky.nillia.ms/enquire.js
 * License: MIT */!(function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var b;b="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,b.enquire=a()}})(function(){return(function a(b,c,d){function e(g2,h){if(!c[g2]){if(!b[g2]){var i="function"==typeof require&&require;if(!h&&i)return i(g2,true);if(f)return f(g2,true);var j=new Error("Cannot find module '"+g2+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g2]={exports:{}};b[g2][0].call(k.exports,function(a2){var c2=b[g2][1][a2];return e(c2?c2:a2)},k,k.exports,a,b,c,d)}return c[g2].exports}for(var f="function"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e})({1:[function(a,b,c){function d(a2,b2){this.query=a2,this.isUnconditional=b2,this.handlers=[],this.mql=window.matchMedia(a2);var c2=this;this.listener=function(a3){c2.mql=a3.currentTarget||a3,c2.assess()},this.mql.addListener(this.listener)}var e=a(3),f=a(4).each;d.prototype={constuctor:d,addHandler:function(a2){var b2=new e(a2);this.handlers.push(b2),this.matches()&&b2.on()},removeHandler:function(a2){var b2=this.handlers;f(b2,function(c2,d2){if(c2.equals(a2))return c2.destroy(),!b2.splice(d2,1)})},matches:function(){return this.mql.matches||this.isUnconditional},clear:function(){f(this.handlers,function(a2){a2.destroy()}),this.mql.removeListener(this.listener),this.handlers.length=0},assess:function(){var a2=this.matches()?"on":"off";f(this.handlers,function(b2){b2[a2]()})}},b.exports=d},{3:3,4:4}],2:[function(a,b,c){function d(){if(!window.matchMedia)throw new Error("matchMedia not present, legacy browsers require a polyfill");this.queries={},this.browserIsIncapable=!window.matchMedia("only all").matches}var e=a(1),f=a(4),g=f.each,h=f.isFunction,i=f.isArray;d.prototype={constructor:d,register:function(a2,b2,c2){var d2=this.queries,f2=c2&&this.browserIsIncapable;return d2[a2]||(d2[a2]=new e(a2,f2)),h(b2)&&(b2={match:b2}),i(b2)||(b2=[b2]),g(b2,function(b3){h(b3)&&(b3={match:b3}),d2[a2].addHandler(b3)}),this},unregister:function(a2,b2){var c2=this.queries[a2];return c2&&(b2?c2.removeHandler(b2):(c2.clear(),delete this.queries[a2])),this}},b.exports=d},{1:1,4:4}],3:[function(a,b,c){function d(a2){this.options=a2,!a2.deferSetup&&this.setup()}d.prototype={constructor:d,setup:function(){this.options.setup&&this.options.setup(),this.initialised=true},on:function(){!this.initialised&&this.setup(),this.options.match&&this.options.match()},off:function(){this.options.unmatch&&this.options.unmatch()},destroy:function(){this.options.destroy?this.options.destroy():this.off()},equals:function(a2){return this.options===a2||this.options.match===a2}},b.exports=d},{}],4:[function(a,b,c){function d(a2,b2){var c2=0,d2=a2.length;for(c2;c2<d2&&b2(a2[c2],c2)!==false;c2++);}function e(a2){return"[object Array]"===Object.prototype.toString.apply(a2)}function f(a2){return"function"==typeof a2}b.exports={isFunction:f,isArray:e,each:d}},{}],5:[function(a,b,c){var d=a(2);b.exports=new d},{2:2}]},{},[5])(5)});/**
 * @license
 * Lodash (Custom Build) lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE
 * Build: `lodash core -o ./dist/lodash.core.js`
 */;(function(){function n(n2){return H(n2)&&pn.call(n2,"callee")&&!yn.call(n2,"callee")}function t21(n2,t22){return n2.push.apply(n2,t22),n2}function r(n2){return function(t22){return null==t22?Z:t22[n2]}}function e(n2,t22,r2,e2,u2){return u2(n2,function(n3,u3,o2){r2=e2?(e2=false,n3):t22(r2,n3,u3,o2)}),r2}function u(n2,t22){return j(t22,function(t23){return n2[t23]})}function o(n2){return n2 instanceof i?n2:new i(n2)}function i(n2,t22){this.__wrapped__=n2,this.__actions__=[],this.__chain__=!!t22}function c(n2,t22,r2){if(typeof n2!="function")throw new TypeError("Expected a function");return setTimeout(function(){n2.apply(Z,r2)},t22)}function f(n2,t22){var r2=true;return mn(n2,function(n3,e2,u2){return r2=!!t22(n3,e2,u2)}),r2}function a(n2,t22,r2){for(var e2=-1,u2=n2.length;++e2<u2;){var o2=n2[e2],i2=t22(o2);if(null!=i2&&(c2===Z?i2===i2:r2(i2,c2)))var c2=i2,f2=o2}return f2}function l(n2,t22){var r2=[];return mn(n2,function(n3,e2,u2){t22(n3,e2,u2)&&r2.push(n3)}),r2}function p(n2,r2,e2,u2,o2){var i2=-1,c2=n2.length;for(e2||(e2=R),o2||(o2=[]);++i2<c2;){var f2=n2[i2];0<r2&&e2(f2)?1<r2?p(f2,r2-1,e2,u2,o2):t21(o2,f2):u2||(o2[o2.length]=f2)}return o2}function s(n2,t22){return n2&&On(n2,t22,Dn)}function h(n2,t22){return l(t22,function(t23){return U(n2[t23])})}function v(n2,t22){return n2>t22}function b(n2,t22,r2,e2,u2){return n2===t22||(null==n2||null==t22||!H(n2)&&!H(t22)?n2!==n2&&t22!==t22:y(n2,t22,r2,e2,b,u2))}function y(n2,t22,r2,e2,u2,o2){var i2=Nn(n2),c2=Nn(t22),f2=i2?"[object Array]":hn.call(n2),a2=c2?"[object Array]":hn.call(t22),f2="[object Arguments]"==f2?"[object Object]":f2,a2="[object Arguments]"==a2?"[object Object]":a2,l2="[object Object]"==f2,c2="[object Object]"==a2,a2=f2==a2;o2||(o2=[]);var p2=An(o2,function(t23){return t23[0]==n2}),s2=An(o2,function(n3){return n3[0]==t22});if(p2&&s2)return p2[1]==t22;if(o2.push([n2,t22]),o2.push([t22,n2]),a2&&!l2){if(i2)r2=T(n2,t22,r2,e2,u2,o2);else n:{switch(f2){case"[object Boolean]":case"[object Date]":case"[object Number]":r2=J(+n2,+t22);break n;case"[object Error]":r2=n2.name==t22.name&&n2.message==t22.message;break n;case"[object RegExp]":case"[object String]":r2=n2==t22+"";break n}r2=false}return o2.pop(),r2}return 1&r2||(i2=l2&&pn.call(n2,"__wrapped__"),f2=c2&&pn.call(t22,"__wrapped__"),!i2&&!f2)?!!a2&&(r2=B(n2,t22,r2,e2,u2,o2),o2.pop(),r2):(i2=i2?n2.value():n2,f2=f2?t22.value():t22,r2=u2(i2,f2,r2,e2,o2),o2.pop(),r2)}function g(n2){return typeof n2=="function"?n2:null==n2?X:(typeof n2=="object"?d:r)(n2)}function _(n2,t22){return n2<t22}function j(n2,t22){var r2=-1,e2=M(n2)?Array(n2.length):[];return mn(n2,function(n3,u2,o2){e2[++r2]=t22(n3,u2,o2)}),e2}function d(n2){var t22=_n(n2);return function(r2){var e2=t22.length;if(null==r2)return!e2;for(r2=Object(r2);e2--;){var u2=t22[e2];if(!(u2 in r2&&b(n2[u2],r2[u2],3)))return false}return true}}function m(n2,t22){return n2=Object(n2),C(t22,function(t23,r2){return r2 in n2&&(t23[r2]=n2[r2]),t23},{})}function O(n2){return xn(I(n2,void 0,X),n2+"")}function x(n2,t22,r2){var e2=-1,u2=n2.length;for(0>t22&&(t22=-t22>u2?0:u2+t22),r2=r2>u2?u2:r2,0>r2&&(r2+=u2),u2=t22>r2?0:r2-t22>>>0,t22>>>=0,r2=Array(u2);++e2<u2;)r2[e2]=n2[e2+t22];return r2}function A(n2){return x(n2,0,n2.length)}function E(n2,t22){var r2;return mn(n2,function(n3,e2,u2){return r2=t22(n3,e2,u2),!r2}),!!r2}function w(n2,r2){return C(r2,function(n3,r3){return r3.func.apply(r3.thisArg,t21([n3],r3.args))},n2)}function k(n2,t22,r2){var e2=!r2;r2||(r2={});for(var u2=-1,o2=t22.length;++u2<o2;){var i2=t22[u2],c2=Z;if(c2===Z&&(c2=n2[i2]),e2)r2[i2]=c2;else{var f2=r2,a2=f2[i2];pn.call(f2,i2)&&J(a2,c2)&&(c2!==Z||i2 in f2)||(f2[i2]=c2)}}return r2}function N(n2){return O(function(t22,r2){var e2=-1,u2=r2.length,o2=1<u2?r2[u2-1]:Z,o2=3<n2.length&&typeof o2=="function"?(u2--,o2):Z;for(t22=Object(t22);++e2<u2;){var i2=r2[e2];i2&&n2(t22,i2,e2,o2)}return t22})}function F(n2){return function(){var t22=arguments,r2=dn(n2.prototype),t22=n2.apply(r2,t22);return V(t22)?t22:r2}}function S(n2,t22,r2){function e2(){for(var o2=-1,i2=arguments.length,c2=-1,f2=r2.length,a2=Array(f2+i2),l2=this&&this!==on&&this instanceof e2?u2:n2;++c2<f2;)a2[c2]=r2[c2];for(;i2--;)a2[c2++]=arguments[++o2];return l2.apply(t22,a2)}if(typeof n2!="function")throw new TypeError("Expected a function");var u2=F(n2);return e2}function T(n2,t22,r2,e2,u2,o2){var i2=n2.length,c2=t22.length;if(i2!=c2&&!(1&r2&&c2>i2))return false;var c2=o2.get(n2),f2=o2.get(t22);if(c2&&f2)return c2==t22&&f2==n2;for(var c2=-1,f2=true,a2=2&r2?[]:Z;++c2<i2;){var l2=n2[c2],p2=t22[c2];if(void 0!==Z){f2=false;break}if(a2){if(!E(t22,function(n3,t23){if(!P(a2,t23)&&(l2===n3||u2(l2,n3,r2,e2,o2)))return a2.push(t23)})){f2=false;break}}else if(l2!==p2&&!u2(l2,p2,r2,e2,o2)){f2=false;break}}return f2}function B(n2,t22,r2,e2,u2,o2){var i2=1&r2,c2=Dn(n2),f2=c2.length,a2=Dn(t22).length;if(f2!=a2&&!i2)return false;for(a2=f2;a2--;){var l2=c2[a2];if(!(i2?l2 in t22:pn.call(t22,l2)))return false}var p2=o2.get(n2),l2=o2.get(t22);if(p2&&l2)return p2==t22&&l2==n2;for(p2=true;++a2<f2;){var l2=c2[a2],s2=n2[l2],h2=t22[l2];if(void 0!==Z||s2!==h2&&!u2(s2,h2,r2,e2,o2)){p2=false;break}i2||(i2="constructor"==l2)}return p2&&!i2&&(r2=n2.constructor,e2=t22.constructor,r2!=e2&&"constructor"in n2&&"constructor"in t22&&!(typeof r2=="function"&&r2 instanceof r2&&typeof e2=="function"&&e2 instanceof e2)&&(p2=false)),p2}function R(t22){return Nn(t22)||n(t22)}function D(n2){var t22=[];if(null!=n2)for(var r2 in Object(n2))t22.push(r2);return t22}function I(n2,t22,r2){return t22=jn(t22===Z?n2.length-1:t22,0),function(){for(var e2=arguments,u2=-1,o2=jn(e2.length-t22,0),i2=Array(o2);++u2<o2;)i2[u2]=e2[t22+u2];for(u2=-1,o2=Array(t22+1);++u2<t22;)o2[u2]=e2[u2];return o2[t22]=r2(i2),n2.apply(this,o2)}}function $(n2){return(null==n2?0:n2.length)?p(n2,1):[]}function q(n2){return n2&&n2.length?n2[0]:Z}function P(n2,t22,r2){var e2=null==n2?0:n2.length;r2=typeof r2=="number"?0>r2?jn(e2+r2,0):r2:0,r2=(r2||0)-1;for(var u2=t22===t22;++r2<e2;){var o2=n2[r2];if(u2?o2===t22:o2!==o2)return r2}return-1}function z(n2,t22){return mn(n2,g(t22))}function C(n2,t22,r2){return e(n2,g(t22),r2,3>arguments.length,mn)}function G(n2,t22){var r2;if(typeof t22!="function")throw new TypeError("Expected a function");return n2=Fn(n2),function(){return 0<--n2&&(r2=t22.apply(this,arguments)),1>=n2&&(t22=Z),r2}}function J(n2,t22){return n2===t22||n2!==n2&&t22!==t22}function M(n2){var t22;return(t22=null!=n2)&&(t22=n2.length,t22=typeof t22=="number"&&-1<t22&&0==t22%1&&9007199254740991>=t22),t22&&!U(n2)}function U(n2){return!!V(n2)&&(n2=hn.call(n2),"[object Function]"==n2||"[object GeneratorFunction]"==n2||"[object AsyncFunction]"==n2||"[object Proxy]"==n2)}function V(n2){var t22=typeof n2;return null!=n2&&("object"==t22||"function"==t22)}function H(n2){return null!=n2&&typeof n2=="object"}function K(n2){return typeof n2=="number"||H(n2)&&"[object Number]"==hn.call(n2)}function L(n2){return typeof n2=="string"||!Nn(n2)&&H(n2)&&"[object String]"==hn.call(n2)}function Q(n2){return typeof n2=="string"?n2:null==n2?"":n2+""}function W(n2){return null==n2?[]:u(n2,Dn(n2))}function X(n2){return n2}function Y(n2,r2,e2){var u2=Dn(r2),o2=h(r2,u2);null!=e2||V(r2)&&(o2.length||!u2.length)||(e2=r2,r2=n2,n2=this,o2=h(r2,Dn(r2)));var i2=!(V(e2)&&"chain"in e2&&!e2.chain),c2=U(n2);return mn(o2,function(e3){var u3=r2[e3];n2[e3]=u3,c2&&(n2.prototype[e3]=function(){var r3=this.__chain__;if(i2||r3){var e4=n2(this.__wrapped__);return(e4.__actions__=A(this.__actions__)).push({func:u3,args:arguments,thisArg:n2}),e4.__chain__=r3,e4}return u3.apply(n2,t21([this.value()],arguments))})}),n2}var Z,nn=1/0,tn=/[&<>"']/g,rn=RegExp(tn.source),en=/^(?:0|[1-9]\d*)$/,un=typeof self=="object"&&self&&self.Object===Object&&self,on=typeof global=="object"&&global&&global.Object===Object&&global||un||Function("return this")(),cn=(un=typeof exports=="object"&&exports&&!exports.nodeType&&exports)&&typeof module=="object"&&module&&!module.nodeType&&module,fn=(function(n2){return function(t22){return null==n2?Z:n2[t22]}})({"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"}),an=Array.prototype,ln=Object.prototype,pn=ln.hasOwnProperty,sn=0,hn=ln.toString,vn=on._,bn=Object.create,yn=ln.propertyIsEnumerable,gn=on.isFinite,_n=(function(n2,t22){return function(r2){return n2(t22(r2))}})(Object.keys,Object),jn=Math.max,dn=(function(){function n2(){}return function(t22){return V(t22)?bn?bn(t22):(n2.prototype=t22,t22=new n2,n2.prototype=Z,t22):{}}})();i.prototype=dn(o.prototype),i.prototype.constructor=i;var mn=(function(n2,t22){return function(r2,e2){if(null==r2)return r2;if(!M(r2))return n2(r2,e2);for(var u2=r2.length,o2=t22?u2:-1,i2=Object(r2);(t22?o2--:++o2<u2)&&false!==e2(i2[o2],o2,i2););return r2}})(s),On=(function(n2){return function(t22,r2,e2){var u2=-1,o2=Object(t22);e2=e2(t22);for(var i2=e2.length;i2--;){var c2=e2[n2?i2:++u2];if(false===r2(o2[c2],c2,o2))break}return t22}})(),xn=X,An=(function(n2){return function(t22,r2,e2){var u2=Object(t22);if(!M(t22)){var o2=g(r2);t22=Dn(t22),r2=function(n3){return o2(u2[n3],n3,u2)}}return r2=n2(t22,r2,e2),-1<r2?u2[o2?t22[r2]:r2]:Z}})(function(n2,t22,r2){var e2=null==n2?0:n2.length;if(!e2)return-1;r2=null==r2?0:Fn(r2),0>r2&&(r2=jn(e2+r2,0));n:{for(t22=g(t22),e2=n2.length,r2+=-1;++r2<e2;)if(t22(n2[r2],r2,n2)){n2=r2;break n}n2=-1}return n2}),En=O(function(n2,t22,r2){return S(n2,t22,r2)}),wn=O(function(n2,t22){return c(n2,1,t22)}),kn=O(function(n2,t22,r2){return c(n2,Sn(t22)||0,r2)}),Nn=Array.isArray,Fn=Number,Sn=Number,Tn=N(function(n2,t22){k(t22,_n(t22),n2)}),Bn=N(function(n2,t22){k(t22,D(t22),n2)}),Rn=O(function(n2,t22){n2=Object(n2);var r2,e2=-1,u2=t22.length,o2=2<u2?t22[2]:Z;if(r2=o2){r2=t22[0];var i2=t22[1];if(V(o2)){var c2=typeof i2;if("number"==c2){if(c2=M(o2))var c2=o2.length,f2=typeof i2,c2=null==c2?9007199254740991:c2,c2=!!c2&&("number"==f2||"symbol"!=f2&&en.test(i2))&&-1<i2&&0==i2%1&&i2<c2}else c2="string"==c2&&i2 in o2;r2=!!c2&&J(o2[i2],r2)}else r2=false}for(r2&&(u2=1);++e2<u2;)for(o2=t22[e2],r2=In(o2),i2=-1,c2=r2.length;++i2<c2;){var f2=r2[i2],a2=n2[f2];(a2===Z||J(a2,ln[f2])&&!pn.call(n2,f2))&&(n2[f2]=o2[f2])}return n2}),Dn=_n,In=D,$n=(function(n2){return xn(I(n2,Z,$),n2+"")})(function(n2,t22){return null==n2?{}:m(n2,t22)});o.assignIn=Bn,o.before=G,o.bind=En,o.chain=function(n2){return n2=o(n2),n2.__chain__=true,n2},o.compact=function(n2){return l(n2,Boolean)},o.concat=function(){var n2=arguments.length;if(!n2)return[];for(var r2=Array(n2-1),e2=arguments[0];n2--;)r2[n2-1]=arguments[n2];return t21(Nn(e2)?A(e2):[e2],p(r2,1))},o.create=function(n2,t22){var r2=dn(n2);return null==t22?r2:Tn(r2,t22)},o.defaults=Rn,o.defer=wn,o.delay=kn,o.filter=function(n2,t22){return l(n2,g(t22))},o.flatten=$,o.flattenDeep=function(n2){return(null==n2?0:n2.length)?p(n2,nn):[]},o.iteratee=g,o.keys=Dn,o.map=function(n2,t22){return j(n2,g(t22))},o.matches=function(n2){return d(Tn({},n2))},o.mixin=Y,o.negate=function(n2){if(typeof n2!="function")throw new TypeError("Expected a function");return function(){return!n2.apply(this,arguments)}},o.once=function(n2){return G(2,n2)},o.pick=$n,o.slice=function(n2,t22,r2){var e2=null==n2?0:n2.length;return r2=r2===Z?e2:+r2,e2?x(n2,null==t22?0:+t22,r2):[]},o.sortBy=function(n2,t22){var e2=0;return t22=g(t22),j(j(n2,function(n3,r2,u2){return{value:n3,index:e2++,criteria:t22(n3,r2,u2)}}).sort(function(n3,t23){var r2;n:{r2=n3.criteria;var e3=t23.criteria;if(r2!==e3){var u2=r2!==Z,o2=null===r2,i2=r2===r2,c2=e3!==Z,f2=null===e3,a2=e3===e3;if(!f2&&r2>e3||o2&&c2&&a2||!u2&&a2||!i2){r2=1;break n}if(!o2&&r2<e3||f2&&u2&&i2||!c2&&i2||!a2){r2=-1;break n}}r2=0}return r2||n3.index-t23.index}),r("value"))},o.tap=function(n2,t22){return t22(n2),n2},o.thru=function(n2,t22){return t22(n2)},o.toArray=function(n2){return M(n2)?n2.length?A(n2):[]:W(n2)},o.values=W,o.extend=Bn,Y(o,o),o.clone=function(n2){return V(n2)?Nn(n2)?A(n2):k(n2,_n(n2)):n2},o.escape=function(n2){return(n2=Q(n2))&&rn.test(n2)?n2.replace(tn,fn):n2},o.every=function(n2,t22,r2){return t22=r2?Z:t22,f(n2,g(t22))},o.find=An,o.forEach=z,o.has=function(n2,t22){return null!=n2&&pn.call(n2,t22)},o.head=q,o.identity=X,o.indexOf=P,o.isArguments=n,o.isArray=Nn,o.isBoolean=function(n2){return true===n2||false===n2||H(n2)&&"[object Boolean]"==hn.call(n2)},o.isDate=function(n2){return H(n2)&&"[object Date]"==hn.call(n2)},o.isEmpty=function(t22){return M(t22)&&(Nn(t22)||L(t22)||U(t22.splice)||n(t22))?!t22.length:!_n(t22).length},o.isEqual=function(n2,t22){return b(n2,t22)},o.isFinite=function(n2){return typeof n2=="number"&&gn(n2)},o.isFunction=U,o.isNaN=function(n2){return K(n2)&&n2!=+n2},o.isNull=function(n2){return null===n2},o.isNumber=K,o.isObject=V,o.isRegExp=function(n2){return H(n2)&&"[object RegExp]"==hn.call(n2)},o.isString=L,o.isUndefined=function(n2){return n2===Z},o.last=function(n2){var t22=null==n2?0:n2.length;return t22?n2[t22-1]:Z},o.max=function(n2){return n2&&n2.length?a(n2,X,v):Z},o.min=function(n2){return n2&&n2.length?a(n2,X,_):Z},o.noConflict=function(){return on._===this&&(on._=vn),this},o.noop=function(){},o.reduce=C,o.result=function(n2,t22,r2){return t22=null==n2?Z:n2[t22],t22===Z&&(t22=r2),U(t22)?t22.call(n2):t22},o.size=function(n2){return null==n2?0:(n2=M(n2)?n2:_n(n2),n2.length)},o.some=function(n2,t22,r2){return t22=r2?Z:t22,E(n2,g(t22))},o.uniqueId=function(n2){var t22=++sn;return Q(n2)+t22},o.each=z,o.first=q,Y(o,(function(){var n2={};return s(o,function(t22,r2){pn.call(o.prototype,r2)||(n2[r2]=t22)}),n2})(),{chain:false}),o.VERSION="4.17.23",mn("pop join replace reverse split push shift sort splice unshift".split(" "),function(n2){var t22=(/^(?:replace|split)$/.test(n2)?String.prototype:an)[n2],r2=/^(?:push|sort|unshift)$/.test(n2)?"tap":"thru",e2=/^(?:pop|join|replace|shift)$/.test(n2);o.prototype[n2]=function(){var n3=arguments;if(e2&&!this.__chain__){var u2=this.value();return t22.apply(Nn(u2)?u2:[],n3)}return this[r2](function(r3){return t22.apply(Nn(r3)?r3:[],n3)})}}),o.prototype.toJSON=o.prototype.valueOf=o.prototype.value=function(){return w(this.__wrapped__,this.__actions__)},typeof define=="function"&&typeof define.amd=="object"&&define.amd?(on._=o,define(function(){return o})):cn?((cn.exports=o)._=o,un._=o):on._=o}).call(this);(function(){window.mobileCheck=function(){var e=false;return(function(t21){(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t21)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t21.substr(0,4)))&&(e=true)})(navigator.userAgent||navigator.vendor||window.opera),e}})();(function(root,factory){if(typeof define==="function"&&define.amd){define(factory)}else if(typeof exports==="object"){module.exports=factory(require,exports,module)}else{root.ouibounce=factory()}})(this,function(require2,exports2,module2){return function ouibounce(el,custom_config){"use strict";var config=custom_config||{},aggressive=config.aggressive||false,sensitivity=setDefault(config.sensitivity,20),timer=setDefault(config.timer,1e3),delay=setDefault(config.delay,0),callback=config.callback||function(){},cookieExpire=setDefaultCookieExpire(config.cookieExpire)||"",cookieDomain=config.cookieDomain?";domain="+config.cookieDomain:"",cookieName=config.cookieName?config.cookieName:"viewedOuibounceModal",sitewide=config.sitewide===true?";path=/":"",_delayTimer=null,_html=document.documentElement;function setDefault(_property,_default){return typeof _property==="undefined"?_default:_property}function setDefaultCookieExpire(days){var ms=days*24*60*60*1e3;var date=new Date;date.setTime(date.getTime()+ms);return"; expires="+date.toUTCString()}setTimeout(attachOuiBounce,timer);function attachOuiBounce(){if(isDisabled()){return}_html.addEventListener("mouseleave",handleMouseleave);_html.addEventListener("mouseenter",handleMouseenter);_html.addEventListener("keydown",handleKeydown)}function handleMouseleave(e){if(e.clientY>sensitivity){return}_delayTimer=setTimeout(fire,delay)}function handleMouseenter(){if(_delayTimer){clearTimeout(_delayTimer);_delayTimer=null}}var disableKeydown=false;function handleKeydown(e){if(disableKeydown){return}else if(!e.metaKey||e.keyCode!==76){return}disableKeydown=true;_delayTimer=setTimeout(fire,delay)}function checkCookieValue(cookieName2,value){return parseCookies()[cookieName2]===value}function parseCookies(){var cookies=document.cookie.split("; ");var ret={};for(var i=cookies.length-1;i>=0;i--){var el2=cookies[i].split("=");ret[el2[0]]=el2[1]}return ret}function isDisabled(){return checkCookieValue(cookieName,"true")&&!aggressive}function fire(){if(isDisabled()){return}if(el){el.style.display="block"}callback();disable()}function disable(custom_options){var options=custom_options||{};if(typeof options.cookieExpire!=="undefined"){cookieExpire=setDefaultCookieExpire(options.cookieExpire)}if(options.sitewide===true){sitewide=";path=/"}if(typeof options.cookieDomain!=="undefined"){cookieDomain=";domain="+options.cookieDomain}if(typeof options.cookieName!=="undefined"){cookieName=options.cookieName}document.cookie=cookieName+"=true"+cookieExpire+cookieDomain+sitewide;_html.removeEventListener("mouseleave",handleMouseleave);_html.removeEventListener("mouseenter",handleMouseenter);_html.removeEventListener("keydown",handleKeydown)}return{fire,disable,isDisabled}}});/*! * jQuery throttle / debounce - v1.1 - 3/7/2010 * http://benalman.com/projects/jquery-throttle-debounce-plugin/ * * Copyright (c) 2010 "Cowboy" Ben Alman * Dual licensed under the MIT and GPL licenses. * http://benalman.com/about/license/ */!(function(n,o){var u,t21=n.jQuery||n.Cowboy||(n.Cowboy={});t21.throttle=u=function(n2,u2,i,e){var r,c=0;function f(){var t22=this,f2=+new Date-c,d=arguments;function a(){c=+new Date,i.apply(t22,d)}e&&!r&&a(),r&&clearTimeout(r),e===o&&f2>n2?a():true!==u2&&(r=setTimeout(e?function n3(){r=o}:a,e===o?n2-f2:n2))}return"boolean"!=typeof u2&&(e=i,i=u2,u2=o),t21.guid&&(f.guid=i.guid=i.guid||t21.guid++),f},t21.debounce=function(n2,t22,i){return i===o?u(n2,t22,false):u(n2,i,false!==t22)}})(this);(function($){$.fn.prepareTransition=function(){return this.each(function(){var el=$(this);el.one("TransitionEnd webkitTransitionEnd transitionend oTransitionEnd",function(){el.removeClass("is-transitioning")});var cl=["transition-duration","-moz-transition-duration","-webkit-transition-duration","-o-transition-duration"];var duration=0;$.each(cl,function(idx,itm){duration||(duration=parseFloat(el.css(itm)))});if(duration!=0){el.addClass("is-transitioning");el[0].offsetWidth};})}})(jQuery);function applyFocusVisiblePolyfill(t21){var i=true,n=false,o=null,d={text:true,search:true,url:true,tel:true,email:true,password:true,number:true,date:true,month:true,week:true,time:true,datetime:true,"datetime-local":true};function s(e2){return!!(e2&&e2!==document&&"HTML"!==e2.nodeName&&"BODY"!==e2.nodeName&&"classList"in e2&&"contains"in e2.classList)}function u(e2){e2.classList.contains("focus-visible")||(e2.classList.add("focus-visible"),e2.setAttribute("data-focus-visible-added",""))}function e(e2){i=false}function a(){document.addEventListener("mousemove",c),document.addEventListener("mousedown",c),document.addEventListener("mouseup",c),document.addEventListener("pointermove",c),document.addEventListener("pointerdown",c),document.addEventListener("pointerup",c),document.addEventListener("touchmove",c),document.addEventListener("touchstart",c),document.addEventListener("touchend",c)}function c(e2){e2.target.nodeName&&"html"===e2.target.nodeName.toLowerCase()||(i=false,document.removeEventListener("mousemove",c),document.removeEventListener("mousedown",c),document.removeEventListener("mouseup",c),document.removeEventListener("pointermove",c),document.removeEventListener("pointerdown",c),document.removeEventListener("pointerup",c),document.removeEventListener("touchmove",c),document.removeEventListener("touchstart",c),document.removeEventListener("touchend",c))}document.addEventListener("keydown",function(e2){e2.metaKey||e2.altKey||e2.ctrlKey||(s(t21.activeElement)&&u(t21.activeElement),i=true)},true),document.addEventListener("mousedown",e,true),document.addEventListener("pointerdown",e,true),document.addEventListener("touchstart",e,true),document.addEventListener("visibilitychange",function(e2){"hidden"===document.visibilityState&&(n&&(i=true),a())},true),a(),t21.addEventListener("focus",function(e2){var t22,n2,o2;s(e2.target)&&(i||(t22=e2.target,n2=t22.type,"INPUT"===(o2=t22.tagName)&&d[n2]&&!t22.readOnly||"TEXTAREA"===o2&&!t22.readOnly||t22.isContentEditable))&&u(e2.target)},true),t21.addEventListener("blur",function(e2){var t22;s(e2.target)&&(e2.target.classList.contains("focus-visible")||e2.target.hasAttribute("data-focus-visible-added"))&&(n=true,window.clearTimeout(o),o=window.setTimeout(function(){n=false},100),(t22=e2.target).hasAttribute("data-focus-visible-added")&&(t22.classList.remove("focus-visible"),t22.removeAttribute("data-focus-visible-added")))},true),t21.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&t21.host?t21.host.setAttribute("data-js-focus-visible",""):t21.nodeType===Node.DOCUMENT_NODE&&(document.documentElement.classList.add("js-focus-visible"),document.documentElement.setAttribute("data-js-focus-visible",""))}if("undefined"!=typeof window&&"undefined"!=typeof document){var event;window.applyFocusVisiblePolyfill=applyFocusVisiblePolyfill;try{event=new CustomEvent("focus-visible-polyfill-ready")}catch(e){(event=document.createEvent("CustomEvent")).initCustomEvent("focus-visible-polyfill-ready",false,false,{})}window.dispatchEvent(event)}"undefined"!=typeof document&&applyFocusVisiblePolyfill(document);!(function(e,o){if("function"==typeof define&&define.amd)define(["exports"],o);else if("undefined"!=typeof exports)o(exports);else{var t21={};o(t21),e.bodyScrollLock=t21}})(this,function(exports2){"use strict";Object.defineProperty(exports2,"__esModule",{value:true});var t21=false;if("undefined"!=typeof window){var e={get passive(){t21=true}};window.addEventListener("testPassive",null,e),window.removeEventListener("testPassive",null,e)}function d(o){return s.some(function(e2){return!(!e2.options.allowTouchMove||!e2.options.allowTouchMove(o))})}function l(e2){var o=e2||window.event;return!!d(o.target)||(1<o.touches.length||(o.preventDefault&&o.preventDefault(),false))}function n(){void 0!==m&&(document.body.style.paddingRight=m,m=void 0),void 0!==v&&(document.body.style.overflow=v,v=void 0)}function i(){if(void 0!==f){var e2=-parseInt(document.body.style.top,10),o=-parseInt(document.body.style.left,10);document.body.style.position=f.position,document.body.style.top=f.top,document.body.style.left=f.left,window.scrollTo(o,e2),f=void 0}}var c="undefined"!=typeof window&&window.navigator&&window.navigator.platform&&(/iP(ad|hone|od)/.test(window.navigator.platform)||"MacIntel"===window.navigator.platform&&1<window.navigator.maxTouchPoints),s=[],u=false,a=-1,v=void 0,f=void 0,m=void 0;exports2.disableBodyScroll=function(r,e2){if(r){if(!s.some(function(e3){return e3.targetElement===r})){var o={targetElement:r,options:e2||{}};s=[].concat((function(e3){if(Array.isArray(e3)){for(var o2=0,t22=Array(e3.length);o2<e3.length;o2++)t22[o2]=e3[o2];return t22}return Array.from(e3)})(s),[o]),c?window.requestAnimationFrame(function(){if(void 0===f){f={position:document.body.style.position,top:document.body.style.top,left:document.body.style.left};var e3=window,o2=e3.scrollY,t22=e3.scrollX,n2=e3.innerHeight;document.body.style.position="fixed",document.body.style.top=-o2,document.body.style.left=-t22,setTimeout(function(){return window.requestAnimationFrame(function(){var e4=n2-window.innerHeight;e4&&n2<=o2&&(document.body.style.top=-(o2+e4))})},300)}}):(function(e3){if(void 0===m){var o2=!!e3&&true===e3.reserveScrollBarGap,t22=window.innerWidth-document.documentElement.clientWidth;if(o2&&0<t22){var n2=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right"),10);m=document.body.style.paddingRight,document.body.style.paddingRight=n2+t22+"px"}}void 0===v&&(v=document.body.style.overflow,document.body.style.overflow="hidden")})(e2),c&&(r.ontouchstart=function(e3){1===e3.targetTouches.length&&(a=e3.targetTouches[0].clientY)},r.ontouchmove=function(e3){var o2,t22,n2,i2;1===e3.targetTouches.length&&(t22=r,i2=(o2=e3).targetTouches[0].clientY-a,d(o2.target)||(t22&&0===t22.scrollTop&&0<i2||(n2=t22)&&n2.scrollHeight-n2.scrollTop<=n2.clientHeight&&i2<0?l(o2):o2.stopPropagation()))},u||(document.addEventListener("touchmove",l,t21?{passive:false}:void 0),u=true))}}else console.error("disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.")},exports2.clearAllBodyScrollLocks=function(){c&&(s.forEach(function(e2){e2.targetElement.ontouchstart=null,e2.targetElement.ontouchmove=null}),u&&(document.removeEventListener("touchmove",l,t21?{passive:false}:void 0),u=false),a=-1),(c?i:n)(),s=[]},exports2.enableBodyScroll=function(o){o?(s=s.filter(function(e2){return e2.targetElement!==o}),c&&(o.ontouchstart=null,o.ontouchmove=null,u&&0===s.length&&(document.removeEventListener("touchmove",l,t21?{passive:false}:void 0),u=false)),(c?i:n)()):console.error("enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.")}});/*!
 * Flickity PACKAGED v2.3.0
 * Touch, responsive, flickable carousels
 *
 * Licensed GPLv3 for open source use
 * or Flickity Commercial License for commercial use
 *
 * https://flickity.metafizzy.co
 * Copyright 2015-2021 Metafizzy
 */(function(e,i){if(typeof define=="function"&&define.amd){define("jquery-bridget/jquery-bridget",["jquery"],function(t21){return i(e,t21)})}else if(typeof module=="object"&&module.exports){module.exports=i(e,require("jquery"))}else{e.jQueryBridget=i(e,e.jQuery)}})(window,function t(e,r){"use strict";var o=Array.prototype.slice;var i=e.console;var u=typeof i=="undefined"?function(){}:function(t21){i.error(t21)};function n(h,s,c){c=c||r||e.jQuery;if(!c){return}if(!s.prototype.option){s.prototype.option=function(t21){if(!c.isPlainObject(t21)){return}this.options=c.extend(true,this.options,t21)}}c.fn[h]=function(t21){if(typeof t21=="string"){var e2=o.call(arguments,1);return i2(this,t21,e2)}n2(this,t21);return this};function i2(t21,r2,o2){var a2;var l="$()."+h+'("'+r2+'")';t21.each(function(t22,e2){var i3=c.data(e2,h);if(!i3){u(h+" not initialized. Cannot call methods, i.e. "+l);return}var n3=i3[r2];if(!n3||r2.charAt(0)=="_"){u(l+" is not a valid method");return}var s2=n3.apply(i3,o2);a2=a2===void 0?s2:a2});return a2!==void 0?a2:t21}function n2(t21,n3){t21.each(function(t22,e2){var i3=c.data(e2,h);if(i3){i3.option(n3);i3._init()}else{i3=new s(e2,n3);c.data(e2,h,i3)}})}a(c)}function a(t21){if(!t21||t21&&t21.bridget){return}t21.bridget=n}a(r||e.jQuery);return n});(function(t21,e){if(typeof define=="function"&&define.amd){define("ev-emitter/ev-emitter",e)}else if(typeof module=="object"&&module.exports){module.exports=e()}else{t21.EvEmitter=e()}})(typeof window!="undefined"?window:this,function(){function t21(){}var e=t21.prototype;e.on=function(t22,e2){if(!t22||!e2){return}var i=this._events=this._events||{};var n=i[t22]=i[t22]||[];if(n.indexOf(e2)==-1){n.push(e2)}return this};e.once=function(t22,e2){if(!t22||!e2){return}this.on(t22,e2);var i=this._onceEvents=this._onceEvents||{};var n=i[t22]=i[t22]||{};n[e2]=true;return this};e.off=function(t22,e2){var i=this._events&&this._events[t22];if(!i||!i.length){return}var n=i.indexOf(e2);if(n!=-1){i.splice(n,1)}return this};e.emitEvent=function(t22,e2){var i=this._events&&this._events[t22];if(!i||!i.length){return}i=i.slice(0);e2=e2||[];var n=this._onceEvents&&this._onceEvents[t22];for(var s=0;s<i.length;s++){var r=i[s];var o=n&&n[r];if(o){this.off(t22,r);delete n[r]}r.apply(this,e2)}return this};e.allOff=function(){delete this._events;delete this._onceEvents};return t21});/*!
 * getSize v2.0.3
 * measure size of elements
 * MIT license
 */(function(t21,e){if(typeof define=="function"&&define.amd){define("get-size/get-size",e)}else if(typeof module=="object"&&module.exports){module.exports=e()}else{t21.getSize=e()}})(window,function t2(){"use strict";function m(t21){var e2=parseFloat(t21);var i2=t21.indexOf("%")==-1&&!isNaN(e2);return i2&&e2}function e(){}var i=typeof console=="undefined"?e:function(t21){console.error(t21)};var y=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"];var b=y.length;function E(){var t21={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0};for(var e2=0;e2<b;e2++){var i2=y[e2];t21[i2]=0}return t21}function S(t21){var e2=getComputedStyle(t21);if(!e2){i("Style returned "+e2+". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1")}return e2}var n=false;var C;function x(){if(n){return}n=true;var t21=document.createElement("div");t21.style.width="200px";t21.style.padding="1px 2px 3px 4px";t21.style.borderStyle="solid";t21.style.borderWidth="1px 2px 3px 4px";t21.style.boxSizing="border-box";var e2=document.body||document.documentElement;e2.appendChild(t21);var i2=S(t21);C=Math.round(m(i2.width))==200;s.isBoxSizeOuter=C;e2.removeChild(t21)}function s(t21){x();if(typeof t21=="string"){t21=document.querySelector(t21)}if(!t21||typeof t21!="object"||!t21.nodeType){return}var e2=S(t21);if(e2.display=="none"){return E()}var i2={};i2.width=t21.offsetWidth;i2.height=t21.offsetHeight;var n2=i2.isBorderBox=e2.boxSizing=="border-box";for(var s2=0;s2<b;s2++){var r=y[s2];var o=e2[r];var a=parseFloat(o);i2[r]=!isNaN(a)?a:0}var l=i2.paddingLeft+i2.paddingRight;var h=i2.paddingTop+i2.paddingBottom;var c=i2.marginLeft+i2.marginRight;var u=i2.marginTop+i2.marginBottom;var d=i2.borderLeftWidth+i2.borderRightWidth;var f=i2.borderTopWidth+i2.borderBottomWidth;var p=n2&&C;var v=m(e2.width);if(v!==false){i2.width=v+(p?0:l+d)}var g=m(e2.height);if(g!==false){i2.height=g+(p?0:h+f)}i2.innerWidth=i2.width-(l+d);i2.innerHeight=i2.height-(h+f);i2.outerWidth=i2.width+c;i2.outerHeight=i2.height+u;return i2}return s});(function(t21,e){"use strict";if(typeof define=="function"&&define.amd){define("desandro-matches-selector/matches-selector",e)}else if(typeof module=="object"&&module.exports){module.exports=e()}else{t21.matchesSelector=e()}})(window,function t3(){"use strict";var n=(function(){var t21=window.Element.prototype;if(t21.matches){return"matches"}if(t21.matchesSelector){return"matchesSelector"}var e=["webkit","moz","ms","o"];for(var i=0;i<e.length;i++){var n2=e[i];var s=n2+"MatchesSelector";if(t21[s]){return s}}})();return function t21(e,i){return e[n](i)}});(function(e,i){if(typeof define=="function"&&define.amd){define("fizzy-ui-utils/utils",["desandro-matches-selector/matches-selector"],function(t21){return i(e,t21)})}else if(typeof module=="object"&&module.exports){module.exports=i(e,require("desandro-matches-selector"))}else{e.fizzyUIUtils=i(e,e.matchesSelector)}})(window,function t4(h,r){var c={};c.extend=function(t21,e){for(var i2 in e){t21[i2]=e[i2]}return t21};c.modulo=function(t21,e){return(t21%e+e)%e};var i=Array.prototype.slice;c.makeArray=function(t21){if(Array.isArray(t21)){return t21}if(t21===null||t21===void 0){return[]}var e=typeof t21=="object"&&typeof t21.length=="number";if(e){return i.call(t21)}return[t21]};c.removeFrom=function(t21,e){var i2=t21.indexOf(e);if(i2!=-1){t21.splice(i2,1)}};c.getParent=function(t21,e){while(t21.parentNode&&t21!=document.body){t21=t21.parentNode;if(r(t21,e)){return t21}}};c.getQueryElement=function(t21){if(typeof t21=="string"){return document.querySelector(t21)}return t21};c.handleEvent=function(t21){var e="on"+t21.type;if(this[e]){this[e](t21)}};c.filterFindElements=function(t21,n){t21=c.makeArray(t21);var s=[];t21.forEach(function(t22){if(!(t22 instanceof HTMLElement)){return}if(!n){s.push(t22);return}if(r(t22,n)){s.push(t22)}var e=t22.querySelectorAll(n);for(var i2=0;i2<e.length;i2++){s.push(e[i2])}});return s};c.debounceMethod=function(t21,e,n){n=n||100;var s=t21.prototype[e];var r2=e+"Timeout";t21.prototype[e]=function(){var t22=this[r2];clearTimeout(t22);var e2=arguments;var i2=this;this[r2]=setTimeout(function(){s.apply(i2,e2);delete i2[r2]},n)}};c.docReady=function(t21){var e=document.readyState;if(e=="complete"||e=="interactive"){setTimeout(t21)}else{document.addEventListener("DOMContentLoaded",t21)}};c.toDashed=function(t21){return t21.replace(/(.)([A-Z])/g,function(t22,e,i2){return e+"-"+i2}).toLowerCase()};var u=h.console;c.htmlInit=function(a,l){c.docReady(function(){var t21=c.toDashed(l);var s="data-"+t21;var e=document.querySelectorAll("["+s+"]");var i2=document.querySelectorAll(".js-"+t21);var n=c.makeArray(e).concat(c.makeArray(i2));var r2=s+"-options";var o=h.jQuery;n.forEach(function(e2){var t22=e2.getAttribute(s)||e2.getAttribute(r2);var i3;try{i3=t22&&JSON.parse(t22)}catch(t23){if(u){u.error("Error parsing "+s+" on "+e2.className+": "+t23)}return}var n2=new a(e2,i3);if(o){o.data(e2,l,n2)}})})};return c});(function(e,i){if(typeof define=="function"&&define.amd){define("flickity/js/cell",["get-size/get-size"],function(t21){return i(e,t21)})}else if(typeof module=="object"&&module.exports){module.exports=i(e,require("get-size"))}else{e.Flickity=e.Flickity||{};e.Flickity.Cell=i(e,e.getSize)}})(window,function t5(e,i){function n(t21,e2){this.element=t21;this.parent=e2;this.create()}var s=n.prototype;s.create=function(){this.element.style.position="absolute";this.element.setAttribute("aria-hidden","true");this.x=0;this.shift=0;this.element.style[this.parent.originSide]=0};s.destroy=function(){this.unselect();this.element.style.position="";var t21=this.parent.originSide;this.element.style[t21]="";this.element.style.transform="";this.element.removeAttribute("aria-hidden")};s.getSize=function(){this.size=i(this.element)};s.setPosition=function(t21){this.x=t21;this.updateTarget();this.renderPosition(t21)};s.updateTarget=s.setDefaultTarget=function(){var t21=this.parent.originSide=="left"?"marginLeft":"marginRight";this.target=this.x+this.size[t21]+this.size.width*this.parent.cellAlign};s.renderPosition=function(t21){var e2=this.parent.originSide==="left"?1:-1;var i2=this.parent.options.percentPosition?t21*e2*(this.parent.size.innerWidth/this.size.width):t21*e2;this.element.style.transform="translateX("+this.parent.getPositionValue(i2)+")"};s.select=function(){this.element.classList.add("is-selected");this.element.removeAttribute("aria-hidden")};s.unselect=function(){this.element.classList.remove("is-selected");this.element.setAttribute("aria-hidden","true")};s.wrapShift=function(t21){this.shift=t21;this.renderPosition(this.x+this.parent.slideableWidth*t21)};s.remove=function(){this.element.parentNode.removeChild(this.element)};return n});(function(t21,e){if(typeof define=="function"&&define.amd){define("flickity/js/slide",e)}else if(typeof module=="object"&&module.exports){module.exports=e()}else{t21.Flickity=t21.Flickity||{};t21.Flickity.Slide=e()}})(window,function t6(){"use strict";function e(t21){this.parent=t21;this.isOriginLeft=t21.originSide=="left";this.cells=[];this.outerWidth=0;this.height=0}var i=e.prototype;i.addCell=function(t21){this.cells.push(t21);this.outerWidth+=t21.size.outerWidth;this.height=Math.max(t21.size.outerHeight,this.height);if(this.cells.length==1){this.x=t21.x;var e2=this.isOriginLeft?"marginLeft":"marginRight";this.firstMargin=t21.size[e2]}};i.updateTarget=function(){var t21=this.isOriginLeft?"marginRight":"marginLeft";var e2=this.getLastCell();var i2=e2?e2.size[t21]:0;var n=this.outerWidth-(this.firstMargin+i2);this.target=this.x+this.firstMargin+n*this.parent.cellAlign};i.getLastCell=function(){return this.cells[this.cells.length-1]};i.select=function(){this.cells.forEach(function(t21){t21.select()})};i.unselect=function(){this.cells.forEach(function(t21){t21.unselect()})};i.getCellElements=function(){return this.cells.map(function(t21){return t21.element})};return e});(function(e,i){if(typeof define=="function"&&define.amd){define("flickity/js/animate",["fizzy-ui-utils/utils"],function(t21){return i(e,t21)})}else if(typeof module=="object"&&module.exports){module.exports=i(e,require("fizzy-ui-utils"))}else{e.Flickity=e.Flickity||{};e.Flickity.animatePrototype=i(e,e.fizzyUIUtils)}})(window,function t7(e,i){var n={};n.startAnimation=function(){if(this.isAnimating){return}this.isAnimating=true;this.restingFrames=0;this.animate()};n.animate=function(){this.applyDragForce();this.applySelectedAttraction();var t21=this.x;this.integratePhysics();this.positionSlider();this.settle(t21);if(this.isAnimating){var e2=this;requestAnimationFrame(function t22(){e2.animate()})}};n.positionSlider=function(){var t21=this.x;if(this.options.wrapAround&&this.cells.length>1){t21=i.modulo(t21,this.slideableWidth);t21-=this.slideableWidth;this.shiftWrapCells(t21)}this.setTranslateX(t21,this.isAnimating);this.dispatchScrollEvent()};n.setTranslateX=function(t21,e2){t21+=this.cursorPosition;t21=this.options.rightToLeft?-t21:t21;var i2=this.getPositionValue(t21);this.slider.style.transform=e2?"translate3d("+i2+",0,0)":"translateX("+i2+")"};n.dispatchScrollEvent=function(){var t21=this.slides[0];if(!t21){return}var e2=-this.x-t21.target;var i2=e2/this.slidesWidth;this.dispatchEvent("scroll",null,[i2,e2])};n.positionSliderAtSelected=function(){if(!this.cells.length){return}this.x=-this.selectedSlide.target;this.velocity=0;this.positionSlider()};n.getPositionValue=function(t21){if(this.options.percentPosition){return Math.round(t21/this.size.innerWidth*1e4)*.01+"%"}else{return Math.round(t21)+"px"}};n.settle=function(t21){var e2=!this.isPointerDown&&Math.round(this.x*100)==Math.round(t21*100);if(e2){this.restingFrames++}if(this.restingFrames>2){this.isAnimating=false;delete this.isFreeScrolling;this.positionSlider();this.dispatchEvent("settle",null,[this.selectedIndex])}};n.shiftWrapCells=function(t21){var e2=this.cursorPosition+t21;this._shiftCells(this.beforeShiftCells,e2,-1);var i2=this.size.innerWidth-(t21+this.slideableWidth+this.cursorPosition);this._shiftCells(this.afterShiftCells,i2,1)};n._shiftCells=function(t21,e2,i2){for(var n2=0;n2<t21.length;n2++){var s=t21[n2];var r=e2>0?i2:0;s.wrapShift(r);e2-=s.size.outerWidth}};n._unshiftCells=function(t21){if(!t21||!t21.length){return}for(var e2=0;e2<t21.length;e2++){t21[e2].wrapShift(0)}};n.integratePhysics=function(){this.x+=this.velocity;this.velocity*=this.getFrictionFactor()};n.applyForce=function(t21){this.velocity+=t21};n.getFrictionFactor=function(){return 1-this.options[this.isFreeScrolling?"freeScrollFriction":"friction"]};n.getRestingPosition=function(){return this.x+this.velocity/(1-this.getFrictionFactor())};n.applyDragForce=function(){if(!this.isDraggable||!this.isPointerDown){return}var t21=this.dragX-this.x;var e2=t21-this.velocity;this.applyForce(e2)};n.applySelectedAttraction=function(){var t21=this.isDraggable&&this.isPointerDown;if(t21||this.isFreeScrolling||!this.slides.length){return}var e2=this.selectedSlide.target*-1-this.x;var i2=e2*this.options.selectedAttraction;this.applyForce(i2)};return n});(function(o,a){if(typeof define=="function"&&define.amd){define("flickity/js/flickity",["ev-emitter/ev-emitter","get-size/get-size","fizzy-ui-utils/utils","./cell","./slide","./animate"],function(t22,e,i,n,s,r){return a(o,t22,e,i,n,s,r)})}else if(typeof module=="object"&&module.exports){module.exports=a(o,require("ev-emitter"),require("get-size"),require("fizzy-ui-utils"),require("./cell"),require("./slide"),require("./animate"))}else{var t21=o.Flickity;o.Flickity=a(o,o.EvEmitter,o.getSize,o.fizzyUIUtils,t21.Cell,t21.Slide,t21.animatePrototype)}})(window,function t8(n,e,i,a,s,o,r){var l=n.jQuery;var h=n.getComputedStyle;var c=n.console;function u(t21,e2){t21=a.makeArray(t21);while(t21.length){e2.appendChild(t21.shift())}}var d=0;var f={};function p(t21,e2){var i2=a.getQueryElement(t21);if(!i2){if(c){c.error("Bad element for Flickity: "+(i2||t21))}return}this.element=i2;if(this.element.flickityGUID){var n2=f[this.element.flickityGUID];if(n2)n2.option(e2);return n2}if(l){this.$element=l(this.element)}this.options=a.extend({},this.constructor.defaults);this.option(e2);this._create()}p.defaults={accessibility:true,cellAlign:"center",freeScrollFriction:.075,friction:.28,namespaceJQueryEvents:true,percentPosition:true,resize:true,selectedAttraction:.025,setGallerySize:true};p.createMethods=[];var v=p.prototype;a.extend(v,e.prototype);v._create=function(){var t21=this.guid=++d;this.element.flickityGUID=t21;f[t21]=this;this.selectedIndex=0;this.restingFrames=0;this.x=0;this.velocity=0;this.originSide=this.options.rightToLeft?"right":"left";this.viewport=document.createElement("div");this.viewport.className="flickity-viewport";this._createSlider();if(this.options.resize||this.options.watchCSS){n.addEventListener("resize",this)}for(var e2 in this.options.on){var i2=this.options.on[e2];this.on(e2,i2)}p.createMethods.forEach(function(t22){this[t22]()},this);if(this.options.watchCSS){this.watchCSS()}else{this.activate()}};v.option=function(t21){a.extend(this.options,t21)};v.activate=function(){if(this.isActive){return}this.isActive=true;this.element.classList.add("flickity-enabled");if(this.options.rightToLeft){this.element.classList.add("flickity-rtl")}this.getSize();var t21=this._filterFindCellElements(this.element.children);u(t21,this.slider);this.viewport.appendChild(this.slider);this.element.appendChild(this.viewport);this.reloadCells();if(this.options.accessibility){this.element.tabIndex=0;this.element.addEventListener("keydown",this)}this.emitEvent("activate");this.selectInitialIndex();this.isInitActivated=true;this.dispatchEvent("ready")};v._createSlider=function(){var t21=document.createElement("div");t21.className="flickity-slider";t21.style[this.originSide]=0;this.slider=t21};v._filterFindCellElements=function(t21){return a.filterFindElements(t21,this.options.cellSelector)};v.reloadCells=function(){this.cells=this._makeCells(this.slider.children);this.positionCells();this._getWrapShiftCells();this.setGallerySize()};v._makeCells=function(t21){var e2=this._filterFindCellElements(t21);var i2=e2.map(function(t22){return new s(t22,this)},this);return i2};v.getLastCell=function(){return this.cells[this.cells.length-1]};v.getLastSlide=function(){return this.slides[this.slides.length-1]};v.positionCells=function(){this._sizeCells(this.cells);this._positionCells(0)};v._positionCells=function(t21){t21=t21||0;this.maxCellHeight=t21?this.maxCellHeight||0:0;var e2=0;if(t21>0){var i2=this.cells[t21-1];e2=i2.x+i2.size.outerWidth}var n2=this.cells.length;for(var s2=t21;s2<n2;s2++){var r2=this.cells[s2];r2.setPosition(e2);e2+=r2.size.outerWidth;this.maxCellHeight=Math.max(r2.size.outerHeight,this.maxCellHeight)}this.slideableWidth=e2;this.updateSlides();this._containSlides();this.slidesWidth=n2?this.getLastSlide().target-this.slides[0].target:0};v._sizeCells=function(t21){t21.forEach(function(t22){t22.getSize()})};v.updateSlides=function(){this.slides=[];if(!this.cells.length){return}var n2=new o(this);this.slides.push(n2);var t21=this.originSide=="left";var s2=t21?"marginRight":"marginLeft";var r2=this._getCanCellFit();this.cells.forEach(function(t22,e2){if(!n2.cells.length){n2.addCell(t22);return}var i2=n2.outerWidth-n2.firstMargin+(t22.size.outerWidth-t22.size[s2]);if(r2.call(this,e2,i2)){n2.addCell(t22)}else{n2.updateTarget();n2=new o(this);this.slides.push(n2);n2.addCell(t22)}},this);n2.updateTarget();this.updateSelectedSlide()};v._getCanCellFit=function(){var t21=this.options.groupCells;if(!t21){return function(){return false}}else if(typeof t21=="number"){var e2=parseInt(t21,10);return function(t22){return t22%e2!==0}}var i2=typeof t21=="string"&&t21.match(/^(\d+)%$/);var n2=i2?parseInt(i2[1],10)/100:1;return function(t22,e3){return e3<=(this.size.innerWidth+1)*n2}};v._init=v.reposition=function(){this.positionCells();this.positionSliderAtSelected()};v.getSize=function(){this.size=i(this.element);this.setCellAlign();this.cursorPosition=this.size.innerWidth*this.cellAlign};var g={center:{left:.5,right:.5},left:{left:0,right:1},right:{right:0,left:1}};v.setCellAlign=function(){var t21=g[this.options.cellAlign];this.cellAlign=t21?t21[this.originSide]:this.options.cellAlign};v.setGallerySize=function(){if(this.options.setGallerySize){var t21=this.options.adaptiveHeight&&this.selectedSlide?this.selectedSlide.height:this.maxCellHeight;this.viewport.style.height=t21+"px"}};v._getWrapShiftCells=function(){if(!this.options.wrapAround){return}this._unshiftCells(this.beforeShiftCells);this._unshiftCells(this.afterShiftCells);var t21=this.cursorPosition;var e2=this.cells.length-1;this.beforeShiftCells=this._getGapCells(t21,e2,-1);t21=this.size.innerWidth-this.cursorPosition;this.afterShiftCells=this._getGapCells(t21,0,1)};v._getGapCells=function(t21,e2,i2){var n2=[];while(t21>0){var s2=this.cells[e2];if(!s2){break}n2.push(s2);e2+=i2;t21-=s2.size.outerWidth}return n2};v._containSlides=function(){if(!this.options.contain||this.options.wrapAround||!this.cells.length){return}var t21=this.options.rightToLeft;var e2=t21?"marginRight":"marginLeft";var i2=t21?"marginLeft":"marginRight";var n2=this.slideableWidth-this.getLastCell().size[i2];var s2=n2<this.size.innerWidth;var r2=this.cursorPosition+this.cells[0].size[e2];var o2=n2-this.size.innerWidth*(1-this.cellAlign);this.slides.forEach(function(t22){if(s2){t22.target=n2*this.cellAlign}else{t22.target=Math.max(t22.target,r2);t22.target=Math.min(t22.target,o2)}},this)};v.dispatchEvent=function(t21,e2,i2){var n2=e2?[e2].concat(i2):i2;this.emitEvent(t21,n2);if(l&&this.$element){t21+=this.options.namespaceJQueryEvents?".flickity":"";var s2=t21;if(e2){var r2=new l.Event(e2);r2.type=t21;s2=r2}this.$element.trigger(s2,i2)}};v.select=function(t21,e2,i2){if(!this.isActive){return}t21=parseInt(t21,10);this._wrapSelect(t21);if(this.options.wrapAround||e2){t21=a.modulo(t21,this.slides.length)}if(!this.slides[t21]){return}var n2=this.selectedIndex;this.selectedIndex=t21;this.updateSelectedSlide();if(i2){this.positionSliderAtSelected()}else{this.startAnimation()}if(this.options.adaptiveHeight){this.setGallerySize()}this.dispatchEvent("select",null,[t21]);if(t21!=n2){this.dispatchEvent("change",null,[t21])}this.dispatchEvent("cellSelect")};v._wrapSelect=function(t21){var e2=this.slides.length;var i2=this.options.wrapAround&&e2>1;if(!i2){return t21}var n2=a.modulo(t21,e2);var s2=Math.abs(n2-this.selectedIndex);var r2=Math.abs(n2+e2-this.selectedIndex);var o2=Math.abs(n2-e2-this.selectedIndex);if(!this.isDragSelect&&r2<s2){t21+=e2}else if(!this.isDragSelect&&o2<s2){t21-=e2}if(t21<0){this.x-=this.slideableWidth}else if(t21>=e2){this.x+=this.slideableWidth}};v.previous=function(t21,e2){this.select(this.selectedIndex-1,t21,e2)};v.next=function(t21,e2){this.select(this.selectedIndex+1,t21,e2)};v.updateSelectedSlide=function(){var t21=this.slides[this.selectedIndex];if(!t21){return}this.unselectSelectedSlide();this.selectedSlide=t21;t21.select();this.selectedCells=t21.cells;this.selectedElements=t21.getCellElements();this.selectedCell=t21.cells[0];this.selectedElement=this.selectedElements[0]};v.unselectSelectedSlide=function(){if(this.selectedSlide){this.selectedSlide.unselect()}};v.selectInitialIndex=function(){var t21=this.options.initialIndex;if(this.isInitActivated){this.select(this.selectedIndex,false,true);return}if(t21&&typeof t21=="string"){var e2=this.queryCell(t21);if(e2){this.selectCell(t21,false,true);return}}var i2=0;if(t21&&this.slides[t21]){i2=t21}this.select(i2,false,true)};v.selectCell=function(t21,e2,i2){var n2=this.queryCell(t21);if(!n2){return}var s2=this.getCellSlideIndex(n2);this.select(s2,e2,i2)};v.getCellSlideIndex=function(t21){for(var e2=0;e2<this.slides.length;e2++){var i2=this.slides[e2];var n2=i2.cells.indexOf(t21);if(n2!=-1){return e2}}};v.getCell=function(t21){for(var e2=0;e2<this.cells.length;e2++){var i2=this.cells[e2];if(i2.element==t21){return i2}}};v.getCells=function(t21){t21=a.makeArray(t21);var i2=[];t21.forEach(function(t22){var e2=this.getCell(t22);if(e2){i2.push(e2)}},this);return i2};v.getCellElements=function(){return this.cells.map(function(t21){return t21.element})};v.getParentCell=function(t21){var e2=this.getCell(t21);if(e2){return e2}t21=a.getParent(t21,".flickity-slider > *");return this.getCell(t21)};v.getAdjacentCellElements=function(t21,e2){if(!t21){return this.selectedSlide.getCellElements()}e2=e2===void 0?this.selectedIndex:e2;var i2=this.slides.length;if(1+t21*2>=i2){return this.getCellElements()}var n2=[];for(var s2=e2-t21;s2<=e2+t21;s2++){var r2=this.options.wrapAround?a.modulo(s2,i2):s2;var o2=this.slides[r2];if(o2){n2=n2.concat(o2.getCellElements())}}return n2};v.queryCell=function(t21){if(typeof t21=="number"){return this.cells[t21]}if(typeof t21=="string"){if(t21.match(/^[#.]?[\d/]/)){return}t21=this.element.querySelector(t21)}return this.getCell(t21)};v.uiChange=function(){this.emitEvent("uiChange")};v.childUIPointerDown=function(t21){if(t21.type!="touchstart"){t21.preventDefault()}this.focus()};v.onresize=function(){this.watchCSS();this.resize()};a.debounceMethod(p,"onresize",150);v.resize=function(){if(!this.isActive||this.isAnimating||this.isDragging){return}this.getSize();if(this.options.wrapAround){this.x=a.modulo(this.x,this.slideableWidth)}this.positionCells();this._getWrapShiftCells();this.setGallerySize();this.emitEvent("resize");var t21=this.selectedElements&&this.selectedElements[0];this.selectCell(t21,false,true)};v.watchCSS=function(){var t21=this.options.watchCSS;if(!t21){return}var e2=h(this.element,":after").content;if(e2.indexOf("flickity")!=-1){this.activate()}else{this.deactivate()}};v.onkeydown=function(t21){var e2=document.activeElement&&document.activeElement!=this.element;if(!this.options.accessibility||e2){return}var i2=p.keyboardHandlers[t21.keyCode];if(i2){i2.call(this)}};p.keyboardHandlers={37:function(){var t21=this.options.rightToLeft?"next":"previous";this.uiChange();this[t21]()},39:function(){var t21=this.options.rightToLeft?"previous":"next";this.uiChange();this[t21]()}};v.focus=function(){var t21=n.pageYOffset;this.element.focus({preventScroll:true});if(n.pageYOffset!=t21){n.scrollTo(n.pageXOffset,t21)}};v.deactivate=function(){if(!this.isActive){return}this.element.classList.remove("flickity-enabled");this.element.classList.remove("flickity-rtl");this.unselectSelectedSlide();this.cells.forEach(function(t21){t21.destroy()});this.element.removeChild(this.viewport);u(this.slider.children,this.element);if(this.options.accessibility){this.element.removeAttribute("tabIndex");this.element.removeEventListener("keydown",this)}this.isActive=false;this.emitEvent("deactivate")};v.destroy=function(){this.deactivate();n.removeEventListener("resize",this);this.allOff();this.emitEvent("destroy");if(l&&this.$element){l.removeData(this.element,"flickity")}delete this.element.flickityGUID;delete f[this.guid]};a.extend(v,r);p.data=function(t21){t21=a.getQueryElement(t21);var e2=t21&&t21.flickityGUID;return e2&&f[e2]};a.htmlInit(p,"flickity");if(l&&l.bridget){l.bridget("flickity",p)}p.setJQuery=function(t21){l=t21};p.Cell=s;p.Slide=o;return p});/*!
 * Unipointer v2.4.0
 * base class for doing one thing with pointer event
 * MIT license
 */(function(e,i){if(typeof define=="function"&&define.amd){define("unipointer/unipointer",["ev-emitter/ev-emitter"],function(t21){return i(e,t21)})}else if(typeof module=="object"&&module.exports){module.exports=i(e,require("ev-emitter"))}else{e.Unipointer=i(e,e.EvEmitter)}})(window,function t9(s,e){function i(){}function n(){}var r=n.prototype=Object.create(e.prototype);r.bindStartEvent=function(t21){this._bindStartEvent(t21,true)};r.unbindStartEvent=function(t21){this._bindStartEvent(t21,false)};r._bindStartEvent=function(t21,e2){e2=e2===void 0?true:e2;var i2=e2?"addEventListener":"removeEventListener";var n2="mousedown";if("ontouchstart"in s){n2="touchstart"}else if(s.PointerEvent){n2="pointerdown"}t21[i2](n2,this)};r.handleEvent=function(t21){var e2="on"+t21.type;if(this[e2]){this[e2](t21)}};r.getTouch=function(t21){for(var e2=0;e2<t21.length;e2++){var i2=t21[e2];if(i2.identifier==this.pointerIdentifier){return i2}}};r.onmousedown=function(t21){var e2=t21.button;if(e2&&(e2!==0&&e2!==1)){return}this._pointerDown(t21,t21)};r.ontouchstart=function(t21){this._pointerDown(t21,t21.changedTouches[0])};r.onpointerdown=function(t21){this._pointerDown(t21,t21)};r._pointerDown=function(t21,e2){if(t21.button||this.isPointerDown){return}this.isPointerDown=true;this.pointerIdentifier=e2.pointerId!==void 0?e2.pointerId:e2.identifier;this.pointerDown(t21,e2)};r.pointerDown=function(t21,e2){this._bindPostStartEvents(t21);this.emitEvent("pointerDown",[t21,e2])};var o={mousedown:["mousemove","mouseup"],touchstart:["touchmove","touchend","touchcancel"],pointerdown:["pointermove","pointerup","pointercancel"]};r._bindPostStartEvents=function(t21){if(!t21){return}var e2=o[t21.type];e2.forEach(function(t22){s.addEventListener(t22,this)},this);this._boundPointerEvents=e2};r._unbindPostStartEvents=function(){if(!this._boundPointerEvents){return}this._boundPointerEvents.forEach(function(t21){s.removeEventListener(t21,this)},this);delete this._boundPointerEvents};r.onmousemove=function(t21){this._pointerMove(t21,t21)};r.onpointermove=function(t21){if(t21.pointerId==this.pointerIdentifier){this._pointerMove(t21,t21)}};r.ontouchmove=function(t21){var e2=this.getTouch(t21.changedTouches);if(e2){this._pointerMove(t21,e2)}};r._pointerMove=function(t21,e2){this.pointerMove(t21,e2)};r.pointerMove=function(t21,e2){this.emitEvent("pointerMove",[t21,e2])};r.onmouseup=function(t21){this._pointerUp(t21,t21)};r.onpointerup=function(t21){if(t21.pointerId==this.pointerIdentifier){this._pointerUp(t21,t21)}};r.ontouchend=function(t21){var e2=this.getTouch(t21.changedTouches);if(e2){this._pointerUp(t21,e2)}};r._pointerUp=function(t21,e2){this._pointerDone();this.pointerUp(t21,e2)};r.pointerUp=function(t21,e2){this.emitEvent("pointerUp",[t21,e2])};r._pointerDone=function(){this._pointerReset();this._unbindPostStartEvents();this.pointerDone()};r._pointerReset=function(){this.isPointerDown=false;delete this.pointerIdentifier};r.pointerDone=i;r.onpointercancel=function(t21){if(t21.pointerId==this.pointerIdentifier){this._pointerCancel(t21,t21)}};r.ontouchcancel=function(t21){var e2=this.getTouch(t21.changedTouches);if(e2){this._pointerCancel(t21,e2)}};r._pointerCancel=function(t21,e2){this._pointerDone();this.pointerCancel(t21,e2)};r.pointerCancel=function(t21,e2){this.emitEvent("pointerCancel",[t21,e2])};n.getPointerPoint=function(t21){return{x:t21.pageX,y:t21.pageY}};return n});/*!
 * Unidragger v2.4.0
 * Draggable base class
 * MIT license
 */(function(e,i){if(typeof define=="function"&&define.amd){define("unidragger/unidragger",["unipointer/unipointer"],function(t21){return i(e,t21)})}else if(typeof module=="object"&&module.exports){module.exports=i(e,require("unipointer"))}else{e.Unidragger=i(e,e.Unipointer)}})(window,function t10(r,e){function i(){}var n=i.prototype=Object.create(e.prototype);n.bindHandles=function(){this._bindHandles(true)};n.unbindHandles=function(){this._bindHandles(false)};n._bindHandles=function(t21){t21=t21===void 0?true:t21;var e2=t21?"addEventListener":"removeEventListener";var i2=t21?this._touchActionValue:"";for(var n2=0;n2<this.handles.length;n2++){var s2=this.handles[n2];this._bindStartEvent(s2,t21);s2[e2]("click",this);if(r.PointerEvent){s2.style.touchAction=i2}}};n._touchActionValue="none";n.pointerDown=function(t21,e2){var i2=this.okayPointerDown(t21);if(!i2){return}this.pointerDownPointer={pageX:e2.pageX,pageY:e2.pageY};t21.preventDefault();this.pointerDownBlur();this._bindPostStartEvents(t21);this.emitEvent("pointerDown",[t21,e2])};var s={TEXTAREA:true,INPUT:true,SELECT:true,OPTION:true};var o={radio:true,checkbox:true,button:true,submit:true,image:true,file:true};n.okayPointerDown=function(t21){var e2=s[t21.target.nodeName];var i2=o[t21.target.type];var n2=!e2||i2;if(!n2){this._pointerReset()}return n2};n.pointerDownBlur=function(){var t21=document.activeElement;var e2=t21&&t21.blur&&t21!=document.body;if(e2){t21.blur()}};n.pointerMove=function(t21,e2){var i2=this._dragPointerMove(t21,e2);this.emitEvent("pointerMove",[t21,e2,i2]);this._dragMove(t21,e2,i2)};n._dragPointerMove=function(t21,e2){var i2={x:e2.pageX-this.pointerDownPointer.pageX,y:e2.pageY-this.pointerDownPointer.pageY};if(!this.isDragging&&this.hasDragStarted(i2)){this._dragStart(t21,e2)}return i2};n.hasDragStarted=function(t21){return Math.abs(t21.x)>3||Math.abs(t21.y)>3};n.pointerUp=function(t21,e2){this.emitEvent("pointerUp",[t21,e2]);this._dragPointerUp(t21,e2)};n._dragPointerUp=function(t21,e2){if(this.isDragging){this._dragEnd(t21,e2)}else{this._staticClick(t21,e2)}};n._dragStart=function(t21,e2){this.isDragging=true;this.isPreventingClicks=true;this.dragStart(t21,e2)};n.dragStart=function(t21,e2){this.emitEvent("dragStart",[t21,e2])};n._dragMove=function(t21,e2,i2){if(!this.isDragging){return}this.dragMove(t21,e2,i2)};n.dragMove=function(t21,e2,i2){t21.preventDefault();this.emitEvent("dragMove",[t21,e2,i2])};n._dragEnd=function(t21,e2){this.isDragging=false;setTimeout(function(){delete this.isPreventingClicks}.bind(this));this.dragEnd(t21,e2)};n.dragEnd=function(t21,e2){this.emitEvent("dragEnd",[t21,e2])};n.onclick=function(t21){if(this.isPreventingClicks){t21.preventDefault()}};n._staticClick=function(t21,e2){if(this.isIgnoringMouseUp&&t21.type=="mouseup"){return}this.staticClick(t21,e2);if(t21.type!="mouseup"){this.isIgnoringMouseUp=true;setTimeout(function(){delete this.isIgnoringMouseUp}.bind(this),400)}};n.staticClick=function(t21,e2){this.emitEvent("staticClick",[t21,e2])};i.getPointerPoint=e.getPointerPoint;return i});(function(n,s){if(typeof define=="function"&&define.amd){define("flickity/js/drag",["./flickity","unidragger/unidragger","fizzy-ui-utils/utils"],function(t21,e,i){return s(n,t21,e,i)})}else if(typeof module=="object"&&module.exports){module.exports=s(n,require("./flickity"),require("unidragger"),require("fizzy-ui-utils"))}else{n.Flickity=s(n,n.Flickity,n.Unidragger,n.fizzyUIUtils)}})(window,function t11(n,e,i,a){a.extend(e.defaults,{draggable:">1",dragThreshold:3});e.createMethods.push("_createDrag");var s=e.prototype;a.extend(s,i.prototype);s._touchActionValue="pan-y";s._createDrag=function(){this.on("activate",this.onActivateDrag);this.on("uiChange",this._uiChangeDrag);this.on("deactivate",this.onDeactivateDrag);this.on("cellChange",this.updateDraggable)};s.onActivateDrag=function(){this.handles=[this.viewport];this.bindHandles();this.updateDraggable()};s.onDeactivateDrag=function(){this.unbindHandles();this.element.classList.remove("is-draggable")};s.updateDraggable=function(){if(this.options.draggable==">1"){this.isDraggable=this.slides.length>1}else{this.isDraggable=this.options.draggable}if(this.isDraggable){this.element.classList.add("is-draggable")}else{this.element.classList.remove("is-draggable")}};s.bindDrag=function(){this.options.draggable=true;this.updateDraggable()};s.unbindDrag=function(){this.options.draggable=false;this.updateDraggable()};s._uiChangeDrag=function(){delete this.isFreeScrolling};s.pointerDown=function(t21,e2){if(!this.isDraggable){this._pointerDownDefault(t21,e2);return}var i2=this.okayPointerDown(t21);if(!i2){return}this._pointerDownPreventDefault(t21);this.pointerDownFocus(t21);if(document.activeElement!=this.element){this.pointerDownBlur()}this.dragX=this.x;this.viewport.classList.add("is-pointer-down");this.pointerDownScroll=o();n.addEventListener("scroll",this);this._pointerDownDefault(t21,e2)};s._pointerDownDefault=function(t21,e2){this.pointerDownPointer={pageX:e2.pageX,pageY:e2.pageY};this._bindPostStartEvents(t21);this.dispatchEvent("pointerDown",t21,[e2])};var r={INPUT:true,TEXTAREA:true,SELECT:true};s.pointerDownFocus=function(t21){var e2=r[t21.target.nodeName];if(!e2){this.focus()}};s._pointerDownPreventDefault=function(t21){var e2=t21.type=="touchstart";var i2=t21.pointerType=="touch";var n2=r[t21.target.nodeName];if(!e2&&!i2&&!n2){t21.preventDefault()}};s.hasDragStarted=function(t21){return Math.abs(t21.x)>this.options.dragThreshold};s.pointerUp=function(t21,e2){delete this.isTouchScrolling;this.viewport.classList.remove("is-pointer-down");this.dispatchEvent("pointerUp",t21,[e2]);this._dragPointerUp(t21,e2)};s.pointerDone=function(){n.removeEventListener("scroll",this);delete this.pointerDownScroll};s.dragStart=function(t21,e2){if(!this.isDraggable){return}this.dragStartPosition=this.x;this.startAnimation();n.removeEventListener("scroll",this);this.dispatchEvent("dragStart",t21,[e2])};s.pointerMove=function(t21,e2){var i2=this._dragPointerMove(t21,e2);this.dispatchEvent("pointerMove",t21,[e2,i2]);this._dragMove(t21,e2,i2)};s.dragMove=function(t21,e2,i2){if(!this.isDraggable){return}t21.preventDefault();this.previousDragX=this.dragX;var n2=this.options.rightToLeft?-1:1;if(this.options.wrapAround){i2.x%=this.slideableWidth}var s2=this.dragStartPosition+i2.x*n2;if(!this.options.wrapAround&&this.slides.length){var r2=Math.max(-this.slides[0].target,this.dragStartPosition);s2=s2>r2?(s2+r2)*.5:s2;var o2=Math.min(-this.getLastSlide().target,this.dragStartPosition);s2=s2<o2?(s2+o2)*.5:s2}this.dragX=s2;this.dragMoveTime=new Date;this.dispatchEvent("dragMove",t21,[e2,i2])};s.dragEnd=function(t21,e2){if(!this.isDraggable){return}if(this.options.freeScroll){this.isFreeScrolling=true}var i2=this.dragEndRestingSelect();if(this.options.freeScroll&&!this.options.wrapAround){var n2=this.getRestingPosition();this.isFreeScrolling=-n2>this.slides[0].target&&-n2<this.getLastSlide().target}else if(!this.options.freeScroll&&i2==this.selectedIndex){i2+=this.dragEndBoostSelect()}delete this.previousDragX;this.isDragSelect=this.options.wrapAround;this.select(i2);delete this.isDragSelect;this.dispatchEvent("dragEnd",t21,[e2])};s.dragEndRestingSelect=function(){var t21=this.getRestingPosition();var e2=Math.abs(this.getSlideDistance(-t21,this.selectedIndex));var i2=this._getClosestResting(t21,e2,1);var n2=this._getClosestResting(t21,e2,-1);var s2=i2.distance<n2.distance?i2.index:n2.index;return s2};s._getClosestResting=function(t21,e2,i2){var n2=this.selectedIndex;var s2=Infinity;var r2=this.options.contain&&!this.options.wrapAround?function(t22,e3){return t22<=e3}:function(t22,e3){return t22<e3};while(r2(e2,s2)){n2+=i2;s2=e2;e2=this.getSlideDistance(-t21,n2);if(e2===null){break}e2=Math.abs(e2)}return{distance:s2,index:n2-i2}};s.getSlideDistance=function(t21,e2){var i2=this.slides.length;var n2=this.options.wrapAround&&i2>1;var s2=n2?a.modulo(e2,i2):e2;var r2=this.slides[s2];if(!r2){return null}var o2=n2?this.slideableWidth*Math.floor(e2/i2):0;return t21-(r2.target+o2)};s.dragEndBoostSelect=function(){if(this.previousDragX===void 0||!this.dragMoveTime||new Date-this.dragMoveTime>100){return 0}var t21=this.getSlideDistance(-this.dragX,this.selectedIndex);var e2=this.previousDragX-this.dragX;if(t21>0&&e2>0){return 1}else if(t21<0&&e2<0){return-1}return 0};s.staticClick=function(t21,e2){var i2=this.getParentCell(t21.target);var n2=i2&&i2.element;var s2=i2&&this.cells.indexOf(i2);this.dispatchEvent("staticClick",t21,[e2,n2,s2])};s.onscroll=function(){var t21=o();var e2=this.pointerDownScroll.x-t21.x;var i2=this.pointerDownScroll.y-t21.y;if(Math.abs(e2)>3||Math.abs(i2)>3){this._pointerDone()}};function o(){return{x:n.pageXOffset,y:n.pageYOffset}}return e});(function(n,s){if(typeof define=="function"&&define.amd){define("flickity/js/prev-next-button",["./flickity","unipointer/unipointer","fizzy-ui-utils/utils"],function(t21,e,i){return s(n,t21,e,i)})}else if(typeof module=="object"&&module.exports){module.exports=s(n,require("./flickity"),require("unipointer"),require("fizzy-ui-utils"))}else{s(n,n.Flickity,n.Unipointer,n.fizzyUIUtils)}})(window,function t12(e,i,n,s){"use strict";var r="http://www.w3.org/2000/svg";function o(t21,e2){this.direction=t21;this.parent=e2;this._create()}o.prototype=Object.create(n.prototype);o.prototype._create=function(){this.isEnabled=true;this.isPrevious=this.direction==-1;var t21=this.parent.options.rightToLeft?1:-1;this.isLeft=this.direction==t21;var e2=this.element=document.createElement("button");e2.className="flickity-button flickity-prev-next-button";e2.className+=this.isPrevious?" previous":" next";e2.setAttribute("type","button");this.disable();e2.setAttribute("aria-label",this.isPrevious?"Previous":"Next");var i2=this.createSVG();e2.appendChild(i2);this.parent.on("select",this.update.bind(this));this.on("pointerDown",this.parent.childUIPointerDown.bind(this.parent))};o.prototype.activate=function(){this.bindStartEvent(this.element);this.element.addEventListener("click",this);this.parent.element.appendChild(this.element)};o.prototype.deactivate=function(){this.parent.element.removeChild(this.element);this.unbindStartEvent(this.element);this.element.removeEventListener("click",this)};o.prototype.createSVG=function(){var t21=document.createElementNS(r,"svg");t21.setAttribute("class","flickity-button-icon");t21.setAttribute("viewBox","0 0 100 100");var e2=document.createElementNS(r,"path");var i2=a(this.parent.options.arrowShape);e2.setAttribute("d",i2);e2.setAttribute("class","arrow");if(!this.isLeft){e2.setAttribute("transform","translate(100, 100) rotate(180) ")}t21.appendChild(e2);return t21};function a(t21){if(typeof t21=="string"){return t21}return"M "+t21.x0+",50 L "+t21.x1+","+(t21.y1+50)+" L "+t21.x2+","+(t21.y2+50)+" L "+t21.x3+",50  L "+t21.x2+","+(50-t21.y2)+" L "+t21.x1+","+(50-t21.y1)+" Z"}o.prototype.handleEvent=s.handleEvent;o.prototype.onclick=function(){if(!this.isEnabled){return}this.parent.uiChange();var t21=this.isPrevious?"previous":"next";this.parent[t21]()};o.prototype.enable=function(){if(this.isEnabled){return}this.element.disabled=false;this.isEnabled=true};o.prototype.disable=function(){if(!this.isEnabled){return}this.element.disabled=true;this.isEnabled=false};o.prototype.update=function(){var t21=this.parent.slides;if(this.parent.options.wrapAround&&t21.length>1){this.enable();return}var e2=t21.length?t21.length-1:0;var i2=this.isPrevious?0:e2;var n2=this.parent.selectedIndex==i2?"disable":"enable";this[n2]()};o.prototype.destroy=function(){this.deactivate();this.allOff()};s.extend(i.defaults,{prevNextButtons:true,arrowShape:{x0:10,x1:60,y1:50,x2:70,y2:40,x3:30}});i.createMethods.push("_createPrevNextButtons");var l=i.prototype;l._createPrevNextButtons=function(){if(!this.options.prevNextButtons){return}this.prevButton=new o(-1,this);this.nextButton=new o(1,this);this.on("activate",this.activatePrevNextButtons)};l.activatePrevNextButtons=function(){this.prevButton.activate();this.nextButton.activate();this.on("deactivate",this.deactivatePrevNextButtons)};l.deactivatePrevNextButtons=function(){this.prevButton.deactivate();this.nextButton.deactivate();this.off("deactivate",this.deactivatePrevNextButtons)};i.PrevNextButton=o;return i});(function(n,s){if(typeof define=="function"&&define.amd){define("flickity/js/page-dots",["./flickity","unipointer/unipointer","fizzy-ui-utils/utils"],function(t21,e,i){return s(n,t21,e,i)})}else if(typeof module=="object"&&module.exports){module.exports=s(n,require("./flickity"),require("unipointer"),require("fizzy-ui-utils"))}else{s(n,n.Flickity,n.Unipointer,n.fizzyUIUtils)}})(window,function t13(e,i,n,s){function r(t21){this.parent=t21;this._create()}r.prototype=Object.create(n.prototype);r.prototype._create=function(){this.holder=document.createElement("ol");this.holder.className="flickity-page-dots";this.dots=[];this.handleClick=this.onClick.bind(this);this.on("pointerDown",this.parent.childUIPointerDown.bind(this.parent))};r.prototype.activate=function(){this.setDots();this.holder.addEventListener("click",this.handleClick);this.bindStartEvent(this.holder);this.parent.element.appendChild(this.holder)};r.prototype.deactivate=function(){this.holder.removeEventListener("click",this.handleClick);this.unbindStartEvent(this.holder);this.parent.element.removeChild(this.holder)};r.prototype.setDots=function(){var t21=this.parent.slides.length-this.dots.length;if(t21>0){this.addDots(t21)}else if(t21<0){this.removeDots(-t21)}};r.prototype.addDots=function(t21){var e2=document.createDocumentFragment();var i2=[];var n2=this.dots.length;var s2=n2+t21;for(var r2=n2;r2<s2;r2++){var o2=document.createElement("li");o2.className="dot";o2.setAttribute("aria-label","Page dot "+(r2+1));e2.appendChild(o2);i2.push(o2)}this.holder.appendChild(e2);this.dots=this.dots.concat(i2)};r.prototype.removeDots=function(t21){var e2=this.dots.splice(this.dots.length-t21,t21);e2.forEach(function(t22){this.holder.removeChild(t22)},this)};r.prototype.updateSelected=function(){if(this.selectedDot){this.selectedDot.className="dot";this.selectedDot.removeAttribute("aria-current")}if(!this.dots.length){return}this.selectedDot=this.dots[this.parent.selectedIndex];this.selectedDot.className="dot is-selected";this.selectedDot.setAttribute("aria-current","step")};r.prototype.onTap=r.prototype.onClick=function(t21){var e2=t21.target;if(e2.nodeName!="LI"){return}this.parent.uiChange();var i2=this.dots.indexOf(e2);this.parent.select(i2)};r.prototype.destroy=function(){this.deactivate();this.allOff()};i.PageDots=r;s.extend(i.defaults,{pageDots:true});i.createMethods.push("_createPageDots");var o=i.prototype;o._createPageDots=function(){if(!this.options.pageDots){return}this.pageDots=new r(this);this.on("activate",this.activatePageDots);this.on("select",this.updateSelectedPageDots);this.on("cellChange",this.updatePageDots);this.on("resize",this.updatePageDots);this.on("deactivate",this.deactivatePageDots)};o.activatePageDots=function(){this.pageDots.activate()};o.updateSelectedPageDots=function(){this.pageDots.updateSelected()};o.updatePageDots=function(){this.pageDots.setDots()};o.deactivatePageDots=function(){this.pageDots.deactivate()};i.PageDots=r;return i});(function(t21,n){if(typeof define=="function"&&define.amd){define("flickity/js/player",["ev-emitter/ev-emitter","fizzy-ui-utils/utils","./flickity"],function(t22,e,i){return n(t22,e,i)})}else if(typeof module=="object"&&module.exports){module.exports=n(require("ev-emitter"),require("fizzy-ui-utils"),require("./flickity"))}else{n(t21.EvEmitter,t21.fizzyUIUtils,t21.Flickity)}})(window,function t14(e,i,n){function s(t21){this.parent=t21;this.state="stopped";this.onVisibilityChange=this.visibilityChange.bind(this);this.onVisibilityPlay=this.visibilityPlay.bind(this)}s.prototype=Object.create(e.prototype);s.prototype.play=function(){if(this.state=="playing"){return}var t21=document.hidden;if(t21){document.addEventListener("visibilitychange",this.onVisibilityPlay);return}this.state="playing";document.addEventListener("visibilitychange",this.onVisibilityChange);this.tick()};s.prototype.tick=function(){if(this.state!="playing"){return}var t21=this.parent.options.autoPlay;t21=typeof t21=="number"?t21:3e3;var e2=this;this.clear();this.timeout=setTimeout(function(){e2.parent.next(true);e2.tick()},t21)};s.prototype.stop=function(){this.state="stopped";this.clear();document.removeEventListener("visibilitychange",this.onVisibilityChange)};s.prototype.clear=function(){clearTimeout(this.timeout)};s.prototype.pause=function(){if(this.state=="playing"){this.state="paused";this.clear()}};s.prototype.unpause=function(){if(this.state=="paused"){this.play()}};s.prototype.visibilityChange=function(){var t21=document.hidden;this[t21?"pause":"unpause"]()};s.prototype.visibilityPlay=function(){this.play();document.removeEventListener("visibilitychange",this.onVisibilityPlay)};i.extend(n.defaults,{pauseAutoPlayOnHover:true});n.createMethods.push("_createPlayer");var r=n.prototype;r._createPlayer=function(){this.player=new s(this);this.on("activate",this.activatePlayer);this.on("uiChange",this.stopPlayer);this.on("pointerDown",this.stopPlayer);this.on("deactivate",this.deactivatePlayer)};r.activatePlayer=function(){if(!this.options.autoPlay){return}this.player.play();this.element.addEventListener("mouseenter",this)};r.playPlayer=function(){this.player.play()};r.stopPlayer=function(){this.player.stop()};r.pausePlayer=function(){this.player.pause()};r.unpausePlayer=function(){this.player.unpause()};r.deactivatePlayer=function(){this.player.stop();this.element.removeEventListener("mouseenter",this)};r.onmouseenter=function(){if(!this.options.pauseAutoPlayOnHover){return}this.player.pause();this.element.addEventListener("mouseleave",this)};r.onmouseleave=function(){this.player.unpause();this.element.removeEventListener("mouseleave",this)};n.Player=s;return n});(function(i,n){if(typeof define=="function"&&define.amd){define("flickity/js/add-remove-cell",["./flickity","fizzy-ui-utils/utils"],function(t21,e){return n(i,t21,e)})}else if(typeof module=="object"&&module.exports){module.exports=n(i,require("./flickity"),require("fizzy-ui-utils"))}else{n(i,i.Flickity,i.fizzyUIUtils)}})(window,function t15(e,i,n){function l(t21){var e2=document.createDocumentFragment();t21.forEach(function(t22){e2.appendChild(t22.element)});return e2}var s=i.prototype;s.insert=function(t21,e2){var i2=this._makeCells(t21);if(!i2||!i2.length){return}var n2=this.cells.length;e2=e2===void 0?n2:e2;var s2=l(i2);var r=e2==n2;if(r){this.slider.appendChild(s2)}else{var o=this.cells[e2].element;this.slider.insertBefore(s2,o)}if(e2===0){this.cells=i2.concat(this.cells)}else if(r){this.cells=this.cells.concat(i2)}else{var a=this.cells.splice(e2,n2-e2);this.cells=this.cells.concat(i2).concat(a)}this._sizeCells(i2);this.cellChange(e2,true)};s.append=function(t21){this.insert(t21,this.cells.length)};s.prepend=function(t21){this.insert(t21,0)};s.remove=function(t21){var e2=this.getCells(t21);if(!e2||!e2.length){return}var i2=this.cells.length-1;e2.forEach(function(t22){t22.remove();var e3=this.cells.indexOf(t22);i2=Math.min(e3,i2);n.removeFrom(this.cells,t22)},this);this.cellChange(i2,true)};s.cellSizeChange=function(t21){var e2=this.getCell(t21);if(!e2){return}e2.getSize();var i2=this.cells.indexOf(e2);this.cellChange(i2)};s.cellChange=function(t21,e2){var i2=this.selectedElement;this._positionCells(t21);this._getWrapShiftCells();this.setGallerySize();var n2=this.getCell(i2);if(n2){this.selectedIndex=this.getCellSlideIndex(n2)}this.selectedIndex=Math.min(this.slides.length-1,this.selectedIndex);this.emitEvent("cellChange",[t21]);this.select(this.selectedIndex);if(e2){this.positionSliderAtSelected()}};return i});(function(i,n){if(typeof define=="function"&&define.amd){define("flickity/js/lazyload",["./flickity","fizzy-ui-utils/utils"],function(t21,e){return n(i,t21,e)})}else if(typeof module=="object"&&module.exports){module.exports=n(i,require("./flickity"),require("fizzy-ui-utils"))}else{n(i,i.Flickity,i.fizzyUIUtils)}})(window,function t16(e,i,o){"use strict";i.createMethods.push("_createLazyload");var n=i.prototype;n._createLazyload=function(){this.on("select",this.lazyLoad)};n.lazyLoad=function(){var t21=this.options.lazyLoad;if(!t21){return}var e2=typeof t21=="number"?t21:0;var i2=this.getAdjacentCellElements(e2);var n2=[];i2.forEach(function(t22){var e3=s(t22);n2=n2.concat(e3)});n2.forEach(function(t22){new r(t22,this)},this)};function s(t21){if(t21.nodeName=="IMG"){var e2=t21.getAttribute("data-flickity-lazyload");var i2=t21.getAttribute("data-flickity-lazyload-src");var n2=t21.getAttribute("data-flickity-lazyload-srcset");if(e2||i2||n2){return[t21]}}var s2="img[data-flickity-lazyload], img[data-flickity-lazyload-src], img[data-flickity-lazyload-srcset]";var r2=t21.querySelectorAll(s2);return o.makeArray(r2)}function r(t21,e2){this.img=t21;this.flickity=e2;this.load()}r.prototype.handleEvent=o.handleEvent;r.prototype.load=function(){this.img.addEventListener("load",this);this.img.addEventListener("error",this);var t21=this.img.getAttribute("data-flickity-lazyload")||this.img.getAttribute("data-flickity-lazyload-src");var e2=this.img.getAttribute("data-flickity-lazyload-srcset");this.img.src=t21;if(e2){this.img.setAttribute("srcset",e2)}this.img.removeAttribute("data-flickity-lazyload");this.img.removeAttribute("data-flickity-lazyload-src");this.img.removeAttribute("data-flickity-lazyload-srcset")};r.prototype.onload=function(t21){this.complete(t21,"flickity-lazyloaded")};r.prototype.onerror=function(t21){this.complete(t21,"flickity-lazyerror")};r.prototype.complete=function(t21,e2){this.img.removeEventListener("load",this);this.img.removeEventListener("error",this);var i2=this.flickity.getParentCell(this.img);var n2=i2&&i2.element;this.flickity.cellSizeChange(n2);this.img.classList.add(e2);this.flickity.dispatchEvent("lazyLoad",t21,n2)};i.LazyLoader=r;return i});/*!
 * Flickity v2.3.0
 * Touch, responsive, flickable carousels
 *
 * Licensed GPLv3 for open source use
 * or Flickity Commercial License for commercial use
 *
 * https://flickity.metafizzy.co
 * Copyright 2015-2021 Metafizzy
 */(function(t21,e){if(typeof define=="function"&&define.amd){define("flickity/js/index",["./flickity","./drag","./prev-next-button","./page-dots","./player","./add-remove-cell","./lazyload"],e)}else if(typeof module=="object"&&module.exports){module.exports=e(require("./flickity"),require("./drag"),require("./prev-next-button"),require("./page-dots"),require("./player"),require("./add-remove-cell"),require("./lazyload"))}})(window,function t17(e){return e});/*!
 * Flickity asNavFor v2.0.2
 * enable asNavFor for Flickity
 */(function(t21,e){if(typeof define=="function"&&define.amd){define("flickity-as-nav-for/as-nav-for",["flickity/js/index","fizzy-ui-utils/utils"],e)}else if(typeof module=="object"&&module.exports){module.exports=e(require("flickity"),require("fizzy-ui-utils"))}else{t21.Flickity=e(t21.Flickity,t21.fizzyUIUtils)}})(window,function t18(n,s){n.createMethods.push("_createAsNavFor");var e=n.prototype;e._createAsNavFor=function(){this.on("activate",this.activateAsNavFor);this.on("deactivate",this.deactivateAsNavFor);this.on("destroy",this.destroyAsNavFor);var e2=this.options.asNavFor;if(!e2){return}var i=this;setTimeout(function t21(){i.setNavCompanion(e2)})};e.setNavCompanion=function(t21){t21=s.getQueryElement(t21);var e2=n.data(t21);if(!e2||e2==this){return}this.navCompanion=e2;var i=this;this.onNavCompanionSelect=function(){i.navCompanionSelect()};e2.on("select",this.onNavCompanionSelect);this.on("staticClick",this.onNavStaticClick);this.navCompanionSelect(true)};e.navCompanionSelect=function(t21){var e2=this.navCompanion&&this.navCompanion.selectedCells;if(!e2){return}var i=e2[0];var n2=this.navCompanion.cells.indexOf(i);var s2=n2+e2.length-1;var r=Math.floor(a(n2,s2,this.navCompanion.cellAlign));this.selectCell(r,false,t21);this.removeNavSelectedElements();if(r>=this.cells.length){return}var o=this.cells.slice(n2,s2+1);this.navSelectedElements=o.map(function(t22){return t22.element});this.changeNavSelectedClass("add")};function a(t21,e2,i){return(e2-t21)*i+t21}e.changeNavSelectedClass=function(e2){this.navSelectedElements.forEach(function(t21){t21.classList[e2]("is-nav-selected")})};e.activateAsNavFor=function(){this.navCompanionSelect(true)};e.removeNavSelectedElements=function(){if(!this.navSelectedElements){return}this.changeNavSelectedClass("remove");delete this.navSelectedElements};e.onNavStaticClick=function(t21,e2,i,n2){if(typeof n2=="number"){this.navCompanion.selectCell(n2)}};e.deactivateAsNavFor=function(){this.removeNavSelectedElements()};e.destroyAsNavFor=function(){if(!this.navCompanion){return}this.navCompanion.off("select",this.onNavCompanionSelect);this.off("staticClick",this.onNavStaticClick);delete this.navCompanion};return n});/*!
 * imagesLoaded v4.1.4
 * JavaScript is all like "You images are done yet or what?"
 * MIT License
 */(function(e,i){"use strict";if(typeof define=="function"&&define.amd){define("imagesloaded/imagesloaded",["ev-emitter/ev-emitter"],function(t21){return i(e,t21)})}else if(typeof module=="object"&&module.exports){module.exports=i(e,require("ev-emitter"))}else{e.imagesLoaded=i(e,e.EvEmitter)}})(typeof window!=="undefined"?window:this,function t19(e,i){var s=e.jQuery;var r=e.console;function o(t21,e2){for(var i2 in e2){t21[i2]=e2[i2]}return t21}var n=Array.prototype.slice;function a(t21){if(Array.isArray(t21)){return t21}var e2=typeof t21=="object"&&typeof t21.length=="number";if(e2){return n.call(t21)}return[t21]}function l(t21,e2,i2){if(!(this instanceof l)){return new l(t21,e2,i2)}var n2=t21;if(typeof t21=="string"){n2=document.querySelectorAll(t21)}if(!n2){r.error("Bad element for imagesLoaded "+(n2||t21));return}this.elements=a(n2);this.options=o({},this.options);if(typeof e2=="function"){i2=e2}else{o(this.options,e2)}if(i2){this.on("always",i2)}this.getImages();if(s){this.jqDeferred=new s.Deferred}setTimeout(this.check.bind(this))}l.prototype=Object.create(i.prototype);l.prototype.options={};l.prototype.getImages=function(){this.images=[];this.elements.forEach(this.addElementImages,this)};l.prototype.addElementImages=function(t21){if(t21.nodeName=="IMG"){this.addImage(t21)}if(this.options.background===true){this.addElementBackgroundImages(t21)}var e2=t21.nodeType;if(!e2||!h[e2]){return}var i2=t21.querySelectorAll("img");for(var n2=0;n2<i2.length;n2++){var s2=i2[n2];this.addImage(s2)}if(typeof this.options.background=="string"){var r2=t21.querySelectorAll(this.options.background);for(n2=0;n2<r2.length;n2++){var o2=r2[n2];this.addElementBackgroundImages(o2)}}};var h={1:true,9:true,11:true};l.prototype.addElementBackgroundImages=function(t21){var e2=getComputedStyle(t21);if(!e2){return}var i2=/url\((['"])?(.*?)\1\)/gi;var n2=i2.exec(e2.backgroundImage);while(n2!==null){var s2=n2&&n2[2];if(s2){this.addBackground(s2,t21)}n2=i2.exec(e2.backgroundImage)}};l.prototype.addImage=function(t21){var e2=new c(t21);this.images.push(e2)};l.prototype.addBackground=function(t21,e2){var i2=new u(t21,e2);this.images.push(i2)};l.prototype.check=function(){var n2=this;this.progressedCount=0;this.hasAnyBroken=false;if(!this.images.length){this.complete();return}function e2(t21,e3,i2){setTimeout(function(){n2.progress(t21,e3,i2)})}this.images.forEach(function(t21){t21.once("progress",e2);t21.check()})};l.prototype.progress=function(t21,e2,i2){this.progressedCount++;this.hasAnyBroken=this.hasAnyBroken||!t21.isLoaded;this.emitEvent("progress",[this,t21,e2]);if(this.jqDeferred&&this.jqDeferred.notify){this.jqDeferred.notify(this,t21)}if(this.progressedCount==this.images.length){this.complete()}if(this.options.debug&&r){r.log("progress: "+i2,t21,e2)}};l.prototype.complete=function(){var t21=this.hasAnyBroken?"fail":"done";this.isComplete=true;this.emitEvent(t21,[this]);this.emitEvent("always",[this]);if(this.jqDeferred){var e2=this.hasAnyBroken?"reject":"resolve";this.jqDeferred[e2](this)}};function c(t21){this.img=t21}c.prototype=Object.create(i.prototype);c.prototype.check=function(){var t21=this.getIsImageComplete();if(t21){this.confirm(this.img.naturalWidth!==0,"naturalWidth");return}this.proxyImage=new Image;this.proxyImage.addEventListener("load",this);this.proxyImage.addEventListener("error",this);this.img.addEventListener("load",this);this.img.addEventListener("error",this);this.proxyImage.src=this.img.src};c.prototype.getIsImageComplete=function(){return this.img.complete&&this.img.naturalWidth};c.prototype.confirm=function(t21,e2){this.isLoaded=t21;this.emitEvent("progress",[this,this.img,e2])};c.prototype.handleEvent=function(t21){var e2="on"+t21.type;if(this[e2]){this[e2](t21)}};c.prototype.onload=function(){this.confirm(true,"onload");this.unbindEvents()};c.prototype.onerror=function(){this.confirm(false,"onerror");this.unbindEvents()};c.prototype.unbindEvents=function(){this.proxyImage.removeEventListener("load",this);this.proxyImage.removeEventListener("error",this);this.img.removeEventListener("load",this);this.img.removeEventListener("error",this)};function u(t21,e2){this.url=t21;this.element=e2;this.img=new Image}u.prototype=Object.create(c.prototype);u.prototype.check=function(){this.img.addEventListener("load",this);this.img.addEventListener("error",this);this.img.src=this.url;var t21=this.getIsImageComplete();if(t21){this.confirm(this.img.naturalWidth!==0,"naturalWidth");this.unbindEvents()}};u.prototype.unbindEvents=function(){this.img.removeEventListener("load",this);this.img.removeEventListener("error",this)};u.prototype.confirm=function(t21,e2){this.isLoaded=t21;this.emitEvent("progress",[this,this.element,e2])};l.makeJQueryPlugin=function(t21){t21=t21||e.jQuery;if(!t21){return}s=t21;s.fn.imagesLoaded=function(t22,e2){var i2=new l(this,t22,e2);return i2.jqDeferred.promise(s(this))}};l.makeJQueryPlugin();return l});/*!
 * Flickity imagesLoaded v2.0.0
 * enables imagesLoaded option for Flickity
 */(function(i,n){if(typeof define=="function"&&define.amd){define(["flickity/js/index","imagesloaded/imagesloaded"],function(t21,e){return n(i,t21,e)})}else if(typeof module=="object"&&module.exports){module.exports=n(i,require("flickity"),require("imagesloaded"))}else{i.Flickity=n(i,i.Flickity,i.imagesLoaded)}})(window,function t20(e,i,s){"use strict";i.createMethods.push("_createImagesLoaded");var n=i.prototype;n._createImagesLoaded=function(){this.on("activate",this.imagesLoaded)};n.imagesLoaded=function(){if(!this.options.imagesLoaded){return}var n2=this;function t21(t22,e2){var i2=n2.getParentCell(e2.img);n2.cellSizeChange(i2&&i2.element);if(!n2.options.freeScroll){n2.positionSliderAtSelected()}}s(this.slider).on("progress",t21)};return i});
var __defProp=Object.defineProperty;var __defNormalProp=(obj,key,value)=>key in obj?__defProp(obj,key,{enumerable:true,configurable:true,writable:true,value}):obj[key]=value;var __publicField=(obj,key,value)=>__defNormalProp(obj,typeof key!=="symbol"?key+"":key,value);let isFunction=function(obj){return typeof obj=="function"||false};class EventEmitter{constructor(){this.listeners=new Map;this.on=this.addListener;this.off=this.removeListener;this.trigger=this.emit}addListener(label,callback){this.listeners.has(label)||this.listeners.set(label,[]);this.listeners.get(label).push(callback)}removeListener(label,callback){let listeners=this.listeners.get(label),index;if(listeners&&listeners.length){index=listeners.reduce((i,listener,index2)=>{return isFunction(listener)&&listener===callback?i=index2:i},-1);if(index>-1){listeners.splice(index,1);this.listeners.set(label,listeners);return true}}return false}emit(label,...args){let listeners=this.listeners.get(label);if(listeners&&listeners.length){listeners.forEach(listener=>{listener(...args)});return true}return false}}class Observer{constructor(id,subject){this.id=id;this.subject=subject;this.subject.addListener("change",data=>this.onChange(data))}onChange(data){console.log(`(${this.id}) notified of change:`,data)}}const EventBus=new EventEmitter;window.theme=window.theme||{};theme.Sections=function Sections(){this.constructors={};this.instances=[];$(document).on("shopify:section:load",this._onSectionLoad.bind(this)).on("shopify:section:unload",this._onSectionUnload.bind(this)).on("shopify:section:select",this._onSelect.bind(this)).on("shopify:section:deselect",this._onDeselect.bind(this)).on("shopify:block:select",this._onBlockSelect.bind(this)).on("shopify:block:deselect",this._onBlockDeselect.bind(this))};theme.Sections.prototype=_.assignIn({},theme.Sections.prototype,{_createInstance:function(container,constructor){var $container=$(container);var id=$container.attr("data-section-id");var type=$container.attr("data-section-type");constructor=constructor||this.constructors[type];if(_.isUndefined(constructor)){return}var instance=_.assignIn(new constructor(container),{id,type,container});this.instances.push(instance)},_onSectionLoad:function(evt){var container=$("[data-section-id]",evt.target)[0];if(container){this._createInstance(container)}},_onSectionUnload:function(evt){this.instances=_.filter(this.instances,function(instance){var isEventInstance=instance.id===evt.detail.sectionId;if(isEventInstance){if(_.isFunction(instance.onUnload)){instance.onUnload(evt)}}return!isEventInstance})},_onSelect:function(evt){var instance=_.find(this.instances,function(instance2){return instance2.id===evt.detail.sectionId});if(!_.isUndefined(instance)&&_.isFunction(instance.onSelect)){instance.onSelect(evt)}},_onDeselect:function(evt){var instance=_.find(this.instances,function(instance2){return instance2.id===evt.detail.sectionId});if(!_.isUndefined(instance)&&_.isFunction(instance.onDeselect)){instance.onDeselect(evt)}},_onBlockSelect:function(evt){var instance=_.find(this.instances,function(instance2){return instance2.id===evt.detail.sectionId});if(!_.isUndefined(instance)&&_.isFunction(instance.onBlockSelect)){instance.onBlockSelect(evt)}},_onBlockDeselect:function(evt){var instance=_.find(this.instances,function(instance2){return instance2.id===evt.detail.sectionId});if(!_.isUndefined(instance)&&_.isFunction(instance.onBlockDeselect)){instance.onBlockDeselect(evt)}},register:function(type,constructor){this.constructors[type]=constructor;$("[data-section-type="+type+"]").each(function(index,container){this._createInstance(container,constructor)}.bind(this))}});window.slate=window.slate||{};class QuantitySelector{constructor(config){this.container=$(config.container);this.decrease=$(config.container).find('[data-js-quantity-selector="decrement"]');this.increase=$(config.container).find('[data-js-quantity-selector="increment"]');this.input=$(config.container).find('[data-js-quantity-selector="input"]');this.min=$(config.container).find("input").attr("min");this.reload=config.reload;this.timer={};this.callback=config.callback;this.init()}init(){this.setTriggerEvents();this.setInitState()}setInitState(){this.verifyValue(this.input.val())}setTriggerEvents(){let self=this;this.decrease.on("click",function(e){e.preventDefault();self.updateValue(self.decrementValue(self.input))});this.increase.on("click",function(e){e.preventDefault();self.updateValue(self.incrementValue(self.input))})}setInputEvents(){var self=this;this.container.on("blur",function(){self.updateValue($(this).val())})}decrementValue(elem){return parseInt($(elem).val())-1}incrementValue(elem){return parseInt($(elem).val())+1}verifyValue(value){let result=parseInt(value,10);if(result===this.getMaximumQuantity()){EventBus.emit("item.maxQuantityHit");this.increase.addClass("is-disabled")}else{if(this.increase.hasClass("is-disabled")){this.increase.removeClass("is-disabled")}}return result<=this.getMaximumQuantity()&&result>0?result:false}getMaximumQuantity(){return parseInt(this.container.attr("data-max"))}updateValue(value){if(value<=this.min){this.input.val(this.min);this.input.attr("value",this.min);this.input.closest("[data-qty]").attr("data-qty",this.min)}if(this.verifyValue(value)){this.input.val(value);this.input.attr("value",value);this.input.closest("[data-qty]").attr("data-qty",value)}this.executeCallback(this.callback)}destroy(){this.decrease.off("click");this.increase.off("click");this.input.closest("[data-qty]").attr("data-qty",this.min);this.input.attr("value",this.min);this.input.val(this.min)}reinit(){this.destroy();this.init()}executeCallback(callback){if(callback){callback()}}}window.theme=window.theme||{};theme.ajaxCart=(function(){var selectors={container:'[data-js-ajax-cart="container"]',containerMenu:'[data-side-menu="cart-menu"]',siteHeader:"[data-header]",cartPanel:".cart-ajax",activeClass:"is-active",body:"body"};var cache={$cartContainer:$(selectors.container).length>0?$(selectors.container):$(selectors.containerMenu),isCartPage:$("body").hasClass("template-cart"),products:{},bundleGroups:[],bundleCollections:{}};var addedTextDelay=1100;function init(){console.log("ajaxCart.init()");if(!$(selectors.siteHeader).length){return}_addToCart();loadProductUpsells();window.addEventListener("cart-ajax:update",function(){if(cache.isCartPage){window.location="/cart"}else{_updateCartModal("updateItems")}});window.addEventListener("cart-ajax:update-and-open",function(){_updateCartModal("updateItems",true)});window.updateCartSlider=function(){window.openCartSlider=true;_updateCartModal("updateItems")};_updateCartModal("updateItems");$(document).on("AjaxCartRequest AjaxCartModify",_updateCartModal.bind(this));EventBus.addListener("AjaxCart.removeItem",_removeItem.bind(this));EventBus.addListener("AjaxCart.updateItem",_updateItem.bind(this));$(document).on("cart-ajax:gwp-optin",function(){checkSubscriptionPromotions().then(()=>{$(document).on("AjaxAddToCart",function(){window.location.reload(true)});setTimeout(function(){window.location.reload(true)},500)})})}function _addToCart(){window.addEventListener("side-menu:closed",()=>{const $justAdded=document.querySelector(".product-form--submitted");if(!$justAdded)return;setTimeout(()=>{$justAdded.classList.remove("product-form--submitted")},addedTextDelay)});$(document).on("click","[data-nosto-atc], [data-atc]",function(e){console.log("[data-nosto-atc], [data-atc] click()");const $el=$(this).get(0);e.preventDefault();$el.classList.add("product-form--submitted");const $form=$(this).closest("form");const formData=$form.serialize();const quantityAdded=$form.find('[name="quantity"]')?$form.find('[name="quantity"]').val():1;$.ajax({type:"POST",url:"/cart/add.js",data:formData,dataType:"json",success:function(cartData){$form.trigger({type:"AjaxAddToCart",response:cartData,quantityAdded}).trigger({type:"AjaxCartRequest",response:cartData});if(!$el.hasAttribute("data-nosto-atc"))return;nostojs(function(api){const productId=$el.dataset.variantId;const nostoId=$el.closest(".nosto_element").id;api.recommendedProductAddedToCart(productId,nostoId)})},error:function(request,status){$form.trigger({type:"AjaxAddToCart",response:request})}})})}function _openCartPanel(){window.menuOpen("cart-menu")}function _openCart(){_openCartPanel()}function _updateCartModal(evt,open=false){const evtType=evt==="updateItems"?"AjaxCartRequest":evt.type;const updateOnly=evt==="updateItems"?true:false;const selectors2={cartCount:"[data-cart-count]",cartList:'[data-js-ajax-cart="body"]',cartRow:'[data-js-ajax-cart="row"]',cartTotalPrice:'[data-js-ajax-cart="total"]',footer:'[data-js-ajax-cart="footer"]'};if(evtType=="AjaxCartModify"){let updatedVariant=evt.variantIDUpdated;let updatedQuantity=evt.variantQuantityUpdated;let updatedTotalPrice=evt.response.total_price;let updatedTotal=evt.response.item_count;if(updatedQuantity==0){let rowToDelete=`${selectors2.cartRow}[data-variant="${updatedVariant}"]`;$(rowToDelete).addClass("cart-ajax__row--deleted");setTimeout(function(){$(rowToDelete).remove()},150)}let cartTotal=updatedTotal;cartTotal>0?$(selectors2.cartCount).addClass("site-header__cart-count--show"):$(selectors2.cartCount).removeClass("site-header__cart-count--show");$(selectors2.cartCount).find("[data-cart-count-amount]").html(cartTotal);if(cartTotal<=0){$(selectors2.cartList).html(_getEmptyCartTemplate());$(selectors2.footer).addClass("hide")}else{$(selectors2.cartList).html("");$(selectors2.footer).removeClass("hide")}$(selectors2.cartTotalPrice).html(`<span class=money>${theme.Currency.formatMoney(updatedTotalPrice,currencyFormat.shopifyMoneyFormat)}</span>`);$(document).trigger({type:"AjaxCartlUpdated"})}else if(evtType=="AjaxCartRequest"){$.getJSON("/cart.js",function(data){let visibleCartItems=getCartItems(data);var cartTotal=getCartTotal(visibleCartItems);cartTotal>0?$(selectors2.cartCount).addClass("site-header__cart-count--show"):$(selectors2.cartCount).removeClass("site-header__cart-count--show");$(selectors2.cartCount).find("[data-cart-count-amount]").html(cartTotal);if(cartTotal<=0){$(selectors2.cartList).html(_getEmptyCartTemplate());$(selectors2.footer).addClass("hide")}else{$(selectors2.cartList).html("");$(selectors2.footer).removeClass("hide")}var callbacks=[];data.items.forEach(function(item,index){if("_bundle_code"in item.properties){if(cache.bundleGroups.includes(item.properties._bundle_code)){return}cache.bundleGroups.push(item.properties._bundle_code);var cb=_getBundleGroupTemplate(item,index,data).done(function(template){$(selectors2.cartList).append(template)});callbacks.push(cb);return}var cb=_getLineItemTemplate(item,index).done(function(template){$(selectors2.cartList).append(template)});callbacks.push(cb)});if(window.SubscriptionPromotions&&window.SubscriptionPromotions.length>0){callbacks.push(checkSubscriptionPromotions())}$(selectors2.cartTotalPrice).html(`<span class="money">${theme.Currency.formatMoney(data.total_price,currencyFormat.shopifyMoneyFormat)}</span>`);removeProductUpsells(data);$.when.apply(callbacks).then(function(){setShippingProgress(data)});if("Nosto"in window&&typeof window.Nosto==="object"&&"reloadCart"in window.Nosto){window.Nosto.reloadCart()}}).done(function(){$(document).trigger("updateCurrencies");setEventListeners();if(!updateOnly||open){if(window.isIE11){window.location="/cart"}else{_openCart()}}if(window.openCartSlider){_openCart();window.openCartSlider=false}})}let ajaxCartListResize=debounce(function(){toggleScrollableList($(selectors2.cartList))},250);window.addEventListener("resize",ajaxCartListResize);window.triggerAjax=false}function getExtendedCartData(){return $.ajax("/cart?view=json")}function checkSubscriptionPromotions(){return getExtendedCartData().done(function(response){let data=JSON.parse(response);window.SubscriptionPromotions.forEach(promotion=>{if(!promotion.enabled){return}let freeItem=data.items.find(item=>promotion.free_items.map(variantId=>parseInt(variantId)).includes(parseInt(item.item.variant_id)));if(freeItem){return true}let cartElligible=data.items.find(item=>{if(!item.product.tags.includes(promotion.tag)){return false}if(!promotion.subscription_required){return true}if(promotion.subscription_required&&item.item&&item.item.selling_plan_allocation&&item.item.selling_plan_allocation.selling_plan&&item.item.selling_plan_allocation.selling_plan.id){return true}return false});if(Cookies.get(`bp_gwp_${promotion.tag}`)){if(cartElligible){window.BPGWP=window.BPGWP||[];window.BPGWP.push(`bp_gwp_${promotion.tag}`);$(document).trigger("gwp:optin")}return true}if(!freeItem&&cartElligible){$.ajax({type:"POST",url:"/cart/add.js",data:{items:[{id:promotion.free_items[0],quantity:1,properties:{_gwp:promotion.tag}}]},dataType:"json",success:function(cartData){$(document).trigger({type:"AjaxAddToCart",response:cartData,quantityAdded:1}).trigger({type:"AjaxCartRequest",response:cartData})},error:function(request,status){$(document).trigger({type:"AjaxAddToCart",response:request})}})}})})}function debounce(func,wait,immediate){var timeout;return function(){var context=this,args=arguments;var later=function(){timeout=null;if(!immediate)func.apply(context,args)};var callNow=immediate&&!timeout;clearTimeout(timeout);timeout=setTimeout(later,wait);if(callNow)func.apply(context,args)}}function setEventListeners(){setRemoveEvents();setBundleEvents()}function setRemoveEvents(){cache.$cartContainer.off("click.remove");cache.$cartContainer.on("click.remove",'[data-js-ajax-cart="removeItem"]',function(e){e.preventDefault();EventBus.emit("AjaxCart.removeItem",getRemovedVariantData(this))})}function setBundleEvents(){cache.$cartContainer.off("click.removeBundle");cache.$cartContainer.on("click.removeBundle","[data-bundle-remove]",function(e){e.preventDefault();var $this=$(this);if(cache.isCartPage){var bundleItems=cache.$cartContainer.find(`[data-bundle="${$this.data("bundle-remove")}"]`)}else{var bundleItems=cache.$cartContainer.find(`[data-bundle="${$this.data("bundle-remove")}"] [data-key]`)}var ids=bundleItems.map((i,el)=>[[$(el).data("key"),0]]).get();setLoadingState();$.post("/cart/update.js",{updates:Object.fromEntries(ids)},null,"json").done(response=>{refreshCartState()})});cache.$cartContainer.off("click.toggleBundle");cache.$cartContainer.on("click.toggleBundle","[data-bundle-toggle]",function(e){e.preventDefault();var $this=$(this);var parent=$this.closest("[data-bundle-parent]");var bundle=cache.$cartContainer.find(`[data-bundle="${$this.data("bundle-toggle")}"]`).toggle();var visible=bundle.is(":visible");$this.text(`${visible?"Hide":"See"} ${$this.data("bundle-count")} items`);$this.removeClass("bundle-visible bundle-hidden").addClass(visible?"bundle-visible":"bundle-hidden");parent.removeClass("bundle-children-visible bundle-children-hidden").addClass(visible?"bundle-children-visible":"bundle-children-hidden")})}function setShippingProgress(cartData){let progressWrapper=$("[data-shipping-progress]");if(progressWrapper.length<1){return}let hasSubscription=cartData.items.some(item=>isSubscriptionItem(item));if(hasSubscription){progressWrapper.attr("data-shipping-progress","subscription").data("shipping-progress","subscription");return}let progressPercent=progressWrapper.find('[data-shipping-progress-value="percent"]');let progressValue=progressWrapper.find('[data-shipping-progress-value="difference"]');let threshold=progressWrapper.data("shipping-progress-threshold");let cartTotal=cartData.total_price;let percent=Math.min(cartTotal/threshold,1);let difference=0;if(percent<1){difference=Math.max(threshold-cartTotal,0)}progressPercent.css("width",percent*100+"%");progressValue.html(theme.Currency.formatMoney(difference,currencyFormat.shopifyMoneyFormat));progressWrapper.attr("data-shipping-progress",percent<1?"under":"over").data("shipping-progress",percent<1?"under":"over")}function getRemovedVariantData(el){let properties={};const $el=$(el);try{properties=JSON.parse(decodeURIComponent($el.closest("[data-line-properties]").data("line-properties")))}catch(err){console.warn("Unable to parse line properties")}const data={id:$el.closest("[data-variant]").data("variant"),line:$el.closest("[data-line-id]").data("line-id"),key:$el.closest("[data-key]").data("key"),quantity:0,properties};return data}function isSubscriptionItem(item){if(item.selling_plan_allocation&&item.selling_plan_allocation.selling_plan){return item.selling_plan_allocation.selling_plan.recurring_deliveries}return false}function getCartItems(data){return _.filter(data.items,item=>{return item})}function getCartTotal(items){return _.reduce(items,(sum,item)=>sum+item.quantity,0)}function _removeItem(data){setLoadingState();removeItemByKey(data)}function _updateItem(data){setLoadingState();updateItemByKey(data,data.quantity)}function updateItemByKey(item,quantity=1){$.post("/cart/change.js",{id:item.key,quantity},null,"json").fail(jqXHR=>{console.log("fail",jqXHR);try{const response=JSON.parse(jqXHR.responseText);alert(response.message)}catch(e){alert("An error occurred while updating the cart. Please try again.")}refreshCartState()}).done(()=>{refreshCartState()})}function updateItemsByKey(items,quantity=1,counter=0){if(items[counter]){$.post("/cart/change.js",{id:items[counter].key,quantity},null,"json").done(()=>{updateItemsByKey(items,quantity,counter+1)})}else{refreshCartState()}}function removeAllItems(items,counter=0){if(items.length>counter){$.post("/cart/change.js",{id:items[counter].key,quantity:0},null,"json").done(()=>{removeAllItems(items,counter+1)})}else{refreshCartState()}}function refreshCartState(){$(document).trigger("AjaxCartRequest");removeLoadingState();if($("body").hasClass("template-cart")){window.location.reload()}}function removeItemByKey(item){$.post("/cart/change.js",{id:item.key,quantity:0},null,"json").fail(jqXHR=>{console.log("fail",jqXHR);try{const response=JSON.parse(jqXHR.responseText);alert(response.message)}catch(e){alert("An error occurred while updating the cart. Please try again.")}refreshCartState()}).done(()=>{refreshCartState()})}function toggleScrollableList(el){if(el.children().length>2||isLaptop(el)||isTablet(el)||isMobile(el)){el.addClass("is-scrollable")}else{el.removeClass("is-scrollable")}}function loadProductUpsells(){const slider=$("[data-cart-upsell-products]");slider.flickity({wrapAround:true});setTimeout(function(){if(slider.data("flickity")){slider.flickity("resize")}},500)}function removeProductUpsells(cartData){setTimeout(()=>{var slider=$("[data-cart-upsell-products]");var slides=[];var itemIds=[];cartData.items.forEach(function(item){if(!itemIds.includes(item.product_id)){itemIds.push(item.product_id);var slide=$(`[data-product-card-upsell-id="${item.product_id}"]`);if(slide.length>0){slides.push(slide.get(0))}}});if(slider.data("flickity")){slider.flickity("remove",slides);slider.flickity("resize");var flickity=slider.data("flickity");if(flickity.cells.length>6){slider.flickity("remove",flickity.cells.slice(6).map(cell=>cell.element))}if(flickity.cells.length===0){$("[data-cart-upsell]").hide()}}},addedTextDelay)}function _getEmptyCartTemplate(){return`
        <div class="cart-ajax__empty">
          <p class="cart-ajax__empty-copy">${theme.strings.cartEmpty}</p>
          <button type="button" class="cart-ajax__btn btn btn--secondary btn--large btn--full" data-side-menu-toggle="cart-menu">
            ${theme.settings.continueShoppingLabel}
          </button>
        </div>
      `}function _getBundleGroupTemplate(item,index,cartData){var deferred=$.Deferred();getBundleCollectionData(item.properties._bundle_handle).done(data=>{var collectionData=JSON.parse(data),bundleCode=item.properties._bundle_code,bundleItems=cartData.items.filter(bundleItem=>bundleItem.properties._bundle_code===bundleCode),bundleFinalPrice=0,bundleOriginalPrice=0,bundleItemCount=bundleItems.length;bundleItems.forEach(bundleItem=>{bundleFinalPrice+=bundleItem.final_line_price});var bundleItemCallbacks=[],bundleItemResults=[];bundleItems.forEach(function(bundleItem,index2){var cb=_getLineItemTemplate(bundleItem,index2).done(function(template){bundleItemResults.push({sortKey:bundleItem.properties._unique_id,template,item:bundleItem})});bundleItemCallbacks.push(cb)});$.when.apply($,bundleItemCallbacks).then(function(){var childTemplates="";bundleItemResults.sort((a,b)=>{if(a.sortKey<b.sortKey){return-1}if(a.sortKey>b.sortKey){return 1}return 0}).forEach(result=>{childTemplates+=result.template;if("__msrp_price"in result.item.properties){bundleOriginalPrice+=parseFloat(result.item.properties.__msrp_price)*100}else{bundleOriginalPrice+=result.item.original_line_price}});bundleFinalPrice=theme.Currency.formatMoney(bundleFinalPrice,currencyFormat.shopifyMoneyFormat);bundleOriginalPrice=theme.Currency.formatMoney(bundleOriginalPrice,currencyFormat.shopifyMoneyFormat);var bundleTemplate=`<div class="cart-ajax__row cart-ajax__row--bundle-parent bundle-children-hidden" data-bundle-parent>
          <a href="${collectionData.url}" tabindex="-1" class="cart-ajax__image-link">
            <img data-src="${collectionData.bundle_cart_image}" class="lazyload cart-ajax__image" alt="${collectionData.bundle_cart_alt}">
                </a>

          <div class="cart-ajax__info">
            <a href="${collectionData.url}" class="cart-ajax__title" title="View ${collectionData.bundle_cart_label}">
              ${collectionData.bundle_cart_label}
            </a>

            <button type="button" data-bundle-remove="${bundleCode}" aria-label="Remove ${collectionData.bundle_cart_label}" class="cart-ajax__remove side-menu__close" title="Remove">
              <span class="visually-hidden">Remove</span>
            </button>

            <span class="cart-ajax__details">
              <a href="#" class="cart-ajax__toggle-bundle bundle-hidden" data-bundle-toggle="${bundleCode}" data-bundle-count="${bundleItemCount}">
                See ${bundleItemCount} items
              </a>

              <div class="cart-ajax__price-sale-container">
                <div class="special cart-ajax__price-sale">${bundleFinalPrice}</div>
                <s>${bundleOriginalPrice}</s><br>
              </div>
            </span>
          </div>
        </div>
        <div class="cart-ajax__row--bundle-child" data-bundle="${bundleCode}" style="display: none;">${childTemplates}</div>`;cache.bundleGroups=[];deferred.resolve(bundleTemplate)})});return deferred}function _getLineItemTemplate(item,index){var deferred=$.Deferred();getProductData(item).done(function(product){if(isSubscriptionItem(item)){if(item.properties["__subscription_compare_at_price"]){var compareAt=item.properties["__subscription_compare_at_price"]*100*item.quantity}else{var compareAt=item.selling_plan_allocation.compare_at_price*item.quantity}var savings=compareAt-item.final_line_price;compareAt=theme.Currency.formatMoney(compareAt,currencyFormat.shopifyMoneyFormat);savings=savings>0?theme.Currency.formatMoney(savings,currencyFormat.shopifyMoneyFormat):null}else{var compareAt=getItemCompareAtPrice(item,product);var savings=getItemSavings(item,product)}var priceHtml=getItemPrice(item);if(savings){priceHtml=`
            <div class="cart-ajax__price-sale-container">
            <div class="special cart-ajax__price-sale">${priceHtml}</div>
            <s>${compareAt}</s><br>
            </div>
          `}var subscriptionHtml="";if(isSubscriptionItem(item)){subscriptionHtml=`<p class="subscription-frequency">${getSubscriptionName(item)}</p>`}var isGWP="_gwp"in item.properties;deferred.resolve(`
          <div class="cart-ajax__row ${isGWP?"cart-ajax__row--gwp":""}" data-js-ajax-cart="row" data-variant="${item.variant_id}" data-line-id="${index+1}" ${getProductProperties(item)} data-key="${item.key}" ${getSubscriptionProperties(item)} ${getTagProp(item)}>
            <a href="${getItemUrl(item)}" tabindex="-1" class="cart-ajax__image-link">
              <img data-src="${imgURL(item.image,"200x")}" class="lazyload cart-ajax__image" alt="${item.title} product image">
                  </a>

            <div class="cart-ajax__info">
              <a href="${getItemUrl(item)}" class="cart-ajax__title" title="View ${item.title}">
                ${item.title} <span class="cart-ajax__variant">${getProductVariantTitle(item)}</span>
                ${subscriptionHtml}
              </a>

              <button type="button" data-js-ajax-cart="removeItem" aria-label="Remove ${item.title}" class="cart-ajax__remove side-menu__close" title="Remove">
                <span class="visually-hidden">Remove</span>
              </button>

              <span class="cart-ajax__details">
                <span class="cart-ajax__qty">
                  Quantity: ${item.quantity}
                </span>

                ${priceHtml}
              </span>
            </div>
          </div>
        `)});return deferred}function getSubscriptionProperties(item){return`data-subscription="${isSubscriptionItem(item)?"true":"false"}"`}function getSubscription(item){if(isSubscriptionItem(item)){return item.selling_plan_allocation.selling_plan}}function getSubscriptionName(item){if(isSubscriptionItem(item)){return"Delivered every "+item.selling_plan_allocation.selling_plan.name.replace(/WEEK\(s\)/i,"weeks").replace("(recommended)","")}return""}function getTagProp(item){if(item.properties!==null&&typeof item.properties._tag_prop!=="undefined"){return`data-prop="${item.properties._tag_prop}"`}}function getBundleCollectionData(collectionHandle){if(cache.bundleCollections[collectionHandle]){return $.Deferred().resolve(cache.bundleCollections[collectionHandle])}return $.ajax(`/collections/${collectionHandle}?view=bundle-json`).done(function(collection){cache.bundleCollections[collectionHandle]=collection})}function getProductData(item){if(cache.products[item.handle]){return $.Deferred().resolve(cache.products[item.handle])}return $.getJSON(`/products/${item.handle}.js`).done(function(product){cache.products[item.handle]=product})}function getItemCompareAt(item,product){var variant=product.variants.find(v=>v.id===item.variant_id);if(!variant||!variant.compare_at_price){return item.original_line_price>item.line_price?item.original_line_price:null}var compareAt=variant.compare_at_price*item.quantity;if(compareAt<=item.line_price){return null}return compareAt}function getItemCompareAtPrice(item,product){return theme.Currency.formatMoney(getItemCompareAt(item,product),currencyFormat.shopifyMoneyFormat)}function getItemSavings(item,product){const compareAt=getItemCompareAt(item,product);if(compareAt){return theme.Currency.formatMoney(compareAt-item.line_price,currencyFormat.shopifyMoneyFormat)}return null}function getItemPrice(item){return theme.Currency.formatMoney(item.line_price,currencyFormat.shopifyMoneyFormat)}function getItemUrl(item){let customUrl=item.url;if(item.properties!==null&&typeof item.properties._origin_url!=="undefined"){return item.properties._origin_url}return customUrl.includes("-1?")?customUrl=customUrl.substring(0,customUrl.indexOf("-1")):customUrl.includes("?")?customUrl=customUrl.substring(0,customUrl.indexOf("?")):customUrl=item.url}function getProductVariantTitle(item){return item.variant_title!==null?`<p class="cart-ajax__variant">${item.variant_title}</p>`:""}function getProductProperties(item){return'data-line-properties="'+encodeURIComponent(JSON.stringify(item.properties))+'"'}function setLoadingState(){let template=getLoaderTemplate();cache.$cartContainer.append(template);cache.$cartContainer.addClass("is-disabled")}function removeLoadingState(){cache.$cartContainer.removeClass("is-disabled");$(".loader").remove()}function getLoaderTemplate(){return theme.assets.loader}function isLaptop(el){return el.children().length>1&&window.matchMedia("(max-height: 820px)").matches}function isTablet(el){return el.children().length>1&&window.matchMedia("(max-width: 768px) and (max-height: 1024px)").matches}function isMobile(el){return el.children().length>1&&window.matchMedia("(max-width: 576px) and (max-height: 768px)").matches}return{init,setRemoveEvents}})();const CART_REMINDER_KNOWN_KEY="bp_cart_reminder_known";const CART_REMINDER_SESSION_KEY="bp_cart_reminder_state";class CartReminderPopup extends HTMLElement{constructor(){super();this.itemsEl=null;this.subtotalEl=null;this.closeButton=null;this.continueLink=null;this.dismissTimer=null;this.hideTimer=null;this.openRafId=null;this.offsetRafId=null;this.snapshotItems=[];this.onCartFetched=this.onCartFetched.bind(this);this.onDrawerOpen=this.onDrawerOpen.bind(this);this.onViewportChange=this.onViewportChange.bind(this);this.onCloseClick=this.onCloseClick.bind(this);this.onContinueClick=this.onContinueClick.bind(this);this.onKeydown=this.onKeydown.bind(this);this.pauseDismiss=this.pauseDismiss.bind(this);this.resumeDismiss=this.resumeDismiss.bind(this);this.onFocusOut=this.onFocusOut.bind(this)}connectedCallback(){this.itemsEl=this.querySelector(".js-cart-reminder-items");this.subtotalEl=this.querySelector(".js-cart-reminder-subtotal");this.closeButton=this.querySelector(".js-cart-reminder-close");this.continueLink=this.querySelector(".js-cart-reminder-continue");if(!this.itemsEl||!this.subtotalEl)return;try{const state=window.sessionStorage.getItem(CART_REMINDER_SESSION_KEY);if(state==="shown"||state==="done")return;if(state!=="pending"){const wasKnown=window.localStorage.getItem(CART_REMINDER_KNOWN_KEY);window.localStorage.setItem(CART_REMINDER_KNOWN_KEY,"1");if(!wasKnown){window.sessionStorage.setItem(CART_REMINDER_SESSION_KEY,"done");return}window.sessionStorage.setItem(CART_REMINDER_SESSION_KEY,"pending")}}catch(error){return}if(this.closeButton)this.closeButton.addEventListener("click",this.onCloseClick);if(this.continueLink)this.continueLink.addEventListener("click",this.onContinueClick);if(window.Cart&&window.Cart.state){this.evaluate(window.Cart.state)}else{window.addEventListener("cart:fetched",this.onCartFetched,{once:true})}}disconnectedCallback(){clearTimeout(this.dismissTimer);clearTimeout(this.hideTimer);if(this.openRafId)cancelAnimationFrame(this.openRafId);window.removeEventListener("cart:fetched",this.onCartFetched);this.removeViewportListeners();document.removeEventListener("cart-drawer:open",this.onDrawerOpen);document.removeEventListener("keydown",this.onKeydown);if(this.closeButton)this.closeButton.removeEventListener("click",this.onCloseClick);if(this.continueLink)this.continueLink.removeEventListener("click",this.onContinueClick)}onCartFetched(event){this.evaluate(event.detail)}evaluate(cart){try{if(!cart||!Array.isArray(cart.items)||cart.items.length===0){this.setSessionState("done");return}this.snapshotItems=cart.items.slice();this.renderItems();this.renderSnapshotSubtotal();this.show();this.setSessionState("shown")}catch(error){}}show(){this.updateTopOffset();window.addEventListener("scroll",this.onViewportChange,{passive:true});window.addEventListener("resize",this.onViewportChange);document.addEventListener("cart-drawer:open",this.onDrawerOpen);this.classList.add("is-visible");this.openRafId=requestAnimationFrame(()=>{this.openRafId=requestAnimationFrame(()=>{this.openRafId=null;this.classList.add("is-open")})});this.addEventListener("mouseenter",this.pauseDismiss);this.addEventListener("mouseleave",this.resumeDismiss);this.addEventListener("focusin",this.pauseDismiss);this.addEventListener("focusout",this.onFocusOut);document.addEventListener("keydown",this.onKeydown);this.startDismissTimer()}startDismissTimer(){clearTimeout(this.dismissTimer);if(!this.dataset.dismissSeconds)return;const seconds=parseInt(this.dataset.dismissSeconds,10)||10;this.dismissTimer=setTimeout(()=>this.dismiss(),seconds*1e3)}pauseDismiss(){clearTimeout(this.dismissTimer);this.dismissTimer=null}resumeDismiss(){if(!this.classList.contains("is-visible"))return;this.startDismissTimer()}onFocusOut(event){if(this.contains(event.relatedTarget))return;this.resumeDismiss()}onKeydown(event){if(event.key==="Escape")this.dismiss()}dismiss(){clearTimeout(this.dismissTimer);this.removeViewportListeners();document.removeEventListener("cart-drawer:open",this.onDrawerOpen);this.removeEventListener("mouseenter",this.pauseDismiss);this.removeEventListener("mouseleave",this.resumeDismiss);this.removeEventListener("focusin",this.pauseDismiss);this.removeEventListener("focusout",this.onFocusOut);document.removeEventListener("keydown",this.onKeydown);if(this.openRafId){cancelAnimationFrame(this.openRafId);this.openRafId=null}this.classList.remove("is-open");clearTimeout(this.hideTimer);this.hideTimer=setTimeout(()=>this.classList.remove("is-visible"),300);this.setSessionState("done")}onCloseClick(){this.dismiss()}onContinueClick(){this.dismiss()}onDrawerOpen(){this.dismiss()}updateTopOffset(){const header=document.querySelector(".header-group-sticky");if(!header)return;const bottom=Math.max(header.getBoundingClientRect().bottom,0);this.style.setProperty("--cart-reminder-top",`${Math.round(bottom)}px`)}onViewportChange(){if(this.offsetRafId)return;this.offsetRafId=requestAnimationFrame(()=>{this.offsetRafId=null;this.updateTopOffset()})}removeViewportListeners(){window.removeEventListener("scroll",this.onViewportChange);window.removeEventListener("resize",this.onViewportChange);if(this.offsetRafId){cancelAnimationFrame(this.offsetRafId);this.offsetRafId=null}}renderItems(){this.itemsEl.textContent="";this.snapshotItems.forEach(item=>{this.itemsEl.appendChild(this.buildRow(item))})}buildRow(item){const row=document.createElement("li");row.className="cart-reminder__item";row.appendChild(this.buildImage(item));const details=document.createElement("div");details.className="cart-reminder__item-details";const titleRow=document.createElement("div");titleRow.className="cart-reminder__item-title-row";const titleBlock=document.createElement("div");titleBlock.className="cart-reminder__item-title-block";const title=document.createElement("a");title.className="cart-reminder__item-title";title.href=item.url||"#";title.textContent=item.product_title||item.title||"";titleBlock.appendChild(title);const label=this.getSecondaryLabel(item);if(label){const labelEl=document.createElement("p");labelEl.className="cart-reminder__item-label";labelEl.textContent=label;titleBlock.appendChild(labelEl)}titleRow.appendChild(titleBlock);titleRow.appendChild(this.buildRemoveButton(item));details.appendChild(titleRow);const meta=document.createElement("div");meta.className="cart-reminder__item-meta";const quantity=document.createElement("span");quantity.className="cart-reminder__item-quantity";quantity.textContent=`Quantity: ${item.quantity}`;meta.appendChild(quantity);meta.appendChild(this.buildPrice(item));details.appendChild(meta);row.appendChild(details);return row}buildImage(item){if(!item.image){const placeholder=document.createElement("div");placeholder.className="cart-reminder__item-image cart-reminder__item-image--placeholder";return placeholder}const image=document.createElement("img");image.className="cart-reminder__item-image";image.src=this.sizedImageUrl(item.image);image.alt=item.product_title||item.title||"";image.width=160;image.height=160;image.loading="lazy";return image}sizedImageUrl(url){const match=String(url).match(/^(.+)(\.[a-z]{2,4})(\?.*)?$/i);if(!match)return url;return`${match[1]}_160x160${match[2]}${match[3]||""}`}getGwpTag(item){return item.properties&&item.properties._gwp||""}getSecondaryLabel(item){const allocations=item.line_level_discount_allocations;if(!Array.isArray(allocations)||allocations.length===0)return"";if(allocations.length===1){const application=allocations[0].discount_application;const title=application&&application.title||"";return`${title} (-${this.formatMoney(allocations[0].amount)})`}return`${allocations.length} Discounts Applied (-${this.formatMoney(item.line_level_total_discount)})`}buildPrice(item){const price=document.createElement("span");price.className="cart-reminder__item-price";if(item.final_line_price<item.original_line_price){price.classList.add("cart-reminder__item-price--sale");const compare=document.createElement("s");compare.className="cart-reminder__item-price-compare";compare.textContent=this.formatMoney(item.original_line_price);price.appendChild(compare);price.appendChild(document.createTextNode(` ${this.formatMoney(item.final_line_price)}`))}else{price.textContent=this.formatMoney(item.final_line_price)}return price}buildRemoveButton(item){const button=document.createElement("button");button.type="button";button.className="cart-reminder__item-remove";button.setAttribute("aria-label",`Remove ${item.product_title||item.title||"item"}`);const svg=document.createElementNS("http://www.w3.org/2000/svg","svg");svg.setAttribute("viewBox","0 0 14 14");svg.setAttribute("width","12");svg.setAttribute("height","12");svg.setAttribute("aria-hidden","true");svg.setAttribute("focusable","false");const path=document.createElementNS("http://www.w3.org/2000/svg","path");path.setAttribute("d","M1 1l12 12M13 1L1 13");svg.appendChild(path);button.appendChild(svg);button.addEventListener("click",()=>this.removeItem(item));return button}removeItem(item){if(!window.Cart||typeof window.Cart.removeItem!=="function")return;const gwpTag=this.getGwpTag(item);if(gwpTag&&typeof window.Cookies!=="undefined"){window.Cookies.set(`bp_gwp_${gwpTag}`,"true")}const options=window.CartUI?{sections:window.CartUI.ALL_SECTIONS}:{};window.Cart.removeItem(item.key,options).then(cart=>{if(window.CartUI)window.CartUI.applyResponse(cart);this.snapshotItems=cart&&Array.isArray(cart.items)?cart.items.slice():[];if(this.snapshotItems.length===0){this.dismiss();return}const hadFocus=this.contains(document.activeElement);this.renderItems();this.renderSnapshotSubtotal();if(hadFocus){const target=this.querySelector(".cart-reminder__item-remove")||this.closeButton;if(target)target.focus()}}).catch(()=>{})}renderSnapshotSubtotal(){let finalCents=0;let originalCents=0;this.snapshotItems.forEach(entry=>{finalCents+=entry.final_line_price||0;originalCents+=entry.original_line_price||0});this.renderSubtotal(finalCents,originalCents)}renderSubtotal(finalCents,originalCents){this.subtotalEl.textContent="";if(originalCents>finalCents){const compare=document.createElement("s");compare.className="cart-reminder__subtotal-compare";compare.textContent=this.formatMoney(originalCents);this.subtotalEl.appendChild(compare);this.subtotalEl.appendChild(document.createTextNode(` ${this.formatMoney(finalCents)}`))}else{this.subtotalEl.textContent=this.formatMoney(finalCents)}}formatMoney(cents){if(window.Cart&&typeof window.Cart.formatMoney==="function"){return String(window.Cart.formatMoney(cents)).replace(/<[^>]*>/g,"").trim()}return`$${(cents/100).toFixed(2)}`}setSessionState(value){try{window.sessionStorage.setItem(CART_REMINDER_SESSION_KEY,value)}catch(error){}}}customElements.define("cart-reminder-popup",CartReminderPopup);window.theme=window.theme||{};theme.accountDropdown=(function(){var selectors={accDropdownTrig:'[data-js-header="accountDropdown"]',accDropdownContainer:'[data-js-header="accountDropdownContainer"]',accDropdownClose:'[data-js-header="accountDropdownClose"]'},classes={accDropdownOpen:"account-container__open"},cache={};function cacheSelectors(){cache={$body:$("body"),$accDropdownTrig:$(selectors.accDropdownTrig),$accDropdownContainer:$(selectors.accDropdownContainer),$accDropdownClose:$(selectors.accDropdownClose),$registerSubmit:$(".account-register__submit"),$emailInput:$(".account-dropdown__register #Email"),$passInput:$("#CreatePassword"),$confirmPassInput:$("#ConfirmPassword"),$combiPass:$("#CreatePassword, #ConfirmPassword"),$combiInputs:$("#CreatePassword, #ConfirmPassword, .account-dropdown__register #Email"),$createAccTrig:$("[data-account-dropdown-create]"),$loginContainer:$(".account-dropdown__login"),$registerContainer:$(".account-dropdown__register"),$signInTrigg:$("[data-account-dropdown-sign-in]")}}function init(){cacheSelectors();accDropToggles();confirmPass();createAccSwitch();loginAccSwitch()}function accDropOpen(){cache.$body.addClass("class-fixed");cache.$accDropdownContainer.addClass(classes.accDropdownOpen)}function accDropClose(){cache.$body.removeClass("class-fixed");cache.$accDropdownContainer.removeClass(classes.accDropdownOpen)}function dropdownReset(){cache.$registerContainer.hide();cache.$loginContainer.show()}function accDropToggles(){window.addEventListener("side-menu:closed",function(e){if(e.detail.name!=="account-menu")return;dropdownReset();accDropClose()});window.addEventListener("side-menu:open",function(e){if(e.detail.name!=="account-menu")return;dropdownReset();accDropOpen()})}function confirmPass(){cache.$registerSubmit.prop("disabled",true);cache.$combiInputs.on("keyup",function(){var passValue=cache.$passInput.val();var confPassValue=cache.$confirmPassInput.val();var emailValue=cache.$emailInput.val();if(passValue==confPassValue&&emailValue!=""&&passValue!=""){cache.$registerSubmit.prop("disabled",false)}else{cache.$registerSubmit.prop("disabled",true)}})}function createAccSwitch(){cache.$createAccTrig.on("click",function(e){e.preventDefault();cache.$loginContainer.toggle();cache.$registerContainer.toggle();$('[data-first-el="account-menu"]').trigger("focus")})}function loginAccSwitch(){cache.$signInTrigg.on("click",function(e){e.preventDefault();cache.$registerContainer.toggle();cache.$loginContainer.toggle();$('[data-first-el="account-menu"]').trigger("focus")})}return{init}})(jQuery);window.theme=window.theme||{};theme.CustomerFavorites=(function(){if(typeof $.fn.slick!=="undefined"&&document.querySelector(".customer-favorites__product-cards .row")){$(".customer-favorites__product-cards .row").slick({slidesToShow:1,slidesToScroll:1,dots:true,arrows:true,mobileFirst:true,prevArrow:'<button type="button" class="slick-prev">'+theme.assets.prevArrow+" <span>Previous</span></button>",nextArrow:'<button type="button" class="slick-next">'+theme.assets.nextArrow+" <span>Next</span></button>",responsive:[{breakpoint:600,settings:{slidesToShow:2,slidesToScroll:2,dots:true,arrows:true,prevArrow:'<button type="button" class="slick-prev">'+theme.assets.prevArrow+" <span>Previous</span></button>",nextArrow:'<button type="button" class="slick-next">'+theme.assets.nextArrow+" <span>Next</span></button>"}},{breakpoint:767,settings:"unslick"}]})}})();theme.Drawers=(function(){function Drawer(id,position,options){var defaults={close:".js-drawer-close",open:".js-drawer-open-"+position,openClass:"js-drawer-open",dirOpenClass:"js-drawer-open-"+position};this.nodes={$parent:$("html").add("body"),$page:$("#PageContainer")};this.config=$.extend(defaults,options);this.position=position;this.$drawer=$("#"+id);if(!this.$drawer.length){return false}this.drawerIsOpen=false;this.init()}Drawer.prototype.init=function(){$(this.config.open).on("click",$.proxy(this.open,this));this.$drawer.on("click",this.config.close,$.proxy(this.close,this))};Drawer.prototype.open=function(evt){var externalCall=false;if(evt){evt.preventDefault()}else{externalCall=true}if(evt&&evt.stopPropagation){evt.stopPropagation();this.$activeSource=$(evt.currentTarget)}if(this.drawerIsOpen&&!externalCall){return this.close()}this.nodes.$parent.addClass(this.config.openClass+" "+this.config.dirOpenClass);this.drawerIsOpen=true;slate.a11y.trapFocus({$container:this.$drawer,namespace:"drawer_focus"});if(this.config.onDrawerOpen&&typeof this.config.onDrawerOpen==="function"){if(!externalCall){this.config.onDrawerOpen()}}if(this.$activeSource&&this.$activeSource.attr("aria-expanded")){this.$activeSource.attr("aria-expanded","true")}this.bindEvents();return this};Drawer.prototype.close=function(){if(!this.drawerIsOpen){return}$(document.activeElement).trigger("blur");this.$drawer.prepareTransition();this.nodes.$parent.removeClass(this.config.dirOpenClass+" "+this.config.openClass);this.drawerIsOpen=false;slate.a11y.removeTrapFocus({$container:this.$drawer,namespace:"drawer_focus"});this.unbindEvents()};Drawer.prototype.bindEvents=function(){this.nodes.$parent.on("keyup.drawer",$.proxy(function(evt){if(evt.keyCode===27){this.close();return false}else{return true}},this));this.nodes.$page.on("touchmove.drawer",function(){return false});this.nodes.$page.on("click.drawer",$.proxy(function(){this.close();return false},this))};Drawer.prototype.unbindEvents=function(){this.nodes.$page.off(".drawer");this.nodes.$parent.off(".drawer")};return Drawer})();window.theme=window.theme||{};window.modaalExitIntentIsReady=()=>{return typeof jQuery!=="undefined"&&typeof jQuery().modaal==="function"};window.modaalExitIntent=()=>{$("#exitintent").modaal({background:theme.settings.modaalBg})};window.loadAsset({"src":theme.assets.modaal,"isReady":"modaalExitIntentIsReady","callback":"modaalExitIntent"});theme.ExitIntent=(function(){if(Cookies.get("exitintent")==void 0||Cookies.get("newsletter")!="signedup"){var _ouibounce=ouibounce(false,{delay:100,sitewide:true,timer:0,cookieName:"exitIntent",callback:function(){$("#exitintent").modaal("open")}})}})();window.theme=window.theme||{};theme.Faqs=(function(){function init(){Toggles()}function Toggles(){let checkedInput=null;document.querySelectorAll("[data-faqs-toggle]").forEach(function(element){element.querySelectorAll('input[type="checkbox"]').forEach(function(input){input.addEventListener("change",function(){if(input.checked){if(checkedInput!==null)checkedInput.checked=false;checkedInput=input}else{checkedInput=null}})})})}return{init}})();document.addEventListener("DOMContentLoaded",function(){theme.Faqs.init()});window.theme=window.theme||{};theme.FeaturedCollections=(function(){var init=function(){$(".featured-collection-slider").slick({slidesToShow:5,slidesToScroll:5,dots:false,arrows:false,responsive:[{breakpoint:1300,settings:{slidesToShow:4,slidesToScroll:4,dots:true,arrows:true,prevArrow:'<button type="button" class="slick-prev">'+theme.assets.prevArrow+" <span>Previous</span></button>",nextArrow:'<button type="button" class="slick-next">'+theme.assets.nextArrow+" <span>Next</span></button>"}},{breakpoint:899,settings:{slidesToShow:3,slidesToScroll:3,dots:true,arrows:true,prevArrow:'<button type="button" class="slick-prev">'+theme.assets.prevArrow+" <span>Previous</span></button>",nextArrow:'<button type="button" class="slick-next">'+theme.assets.nextArrow+" <span>Next</span></button>"}},{breakpoint:767,settings:{slidesToShow:2,slidesToScroll:2,dots:true,arrows:true,prevArrow:'<button type="button" class="slick-prev">'+theme.assets.prevArrow+" <span>Previous</span></button>",nextArrow:'<button type="button" class="slick-next">'+theme.assets.nextArrow+" <span>Next</span></button>"}},{breakpoint:480,settings:{slidesToShow:1,slidesToScroll:1,dots:true,arrows:true,prevArrow:'<button type="button" class="slick-prev">'+theme.assets.prevArrow+" <span>Previous</span></button>",nextArrow:'<button type="button" class="slick-next">'+theme.assets.nextArrow+" <span>Next</span></button>"}}]})};if(typeof $.fn.slick!=="undefined"&&document.querySelector(".featured-collection-slider")){init()}$(document).on("shopify:section:load",function(){if(typeof $.fn.slick!=="undefined"&&document.querySelector(".featured-collection-slider")){init()}})})();window.theme=window.theme||{};theme.Filters=(function(){var constants={SORT_BY:"sort_by"};var selectors={filterSelection:".filters-toolbar__input--filter",sortSelection:".filters-toolbar__input--sort",defaultSort:".collection-header__default-sort"};function Filters(container){var $container=this.$container=$(container);this.$filterSelect=$(selectors.filterSelection,$container);this.$sortSelect=$(selectors.sortSelection,$container);this.$selects=$(selectors.filterSelection,$container).add($(selectors.sortSelection,$container));this.defaultSort=this._getDefaultSortValue();this.$selects.removeClass("hidden");this.$filterSelect.on("change",this._onFilterChange.bind(this));this.$sortSelect.on("change",this._onSortChange.bind(this))}Filters.prototype=_.assignIn({},Filters.prototype,{_onSortChange:function(evt){var sort=this._sortValue();if(sort.length){window.location.search=sort}else{window.location.href=window.location.href.replace(window.location.search,"")}},_onFilterChange:function(evt){window.location.href=this.$filterSelect.val()+window.location.search},_getSortValue:function(){return this.$sortSelect.val()||this.defaultSort},_getDefaultSortValue:function(){return $(selectors.defaultSort,this.$container).val()},_sortValue:function(){var sort=this._getSortValue();var query="";if(sort!==this.defaultSort){query=constants.SORT_BY+"="+sort}return query},onUnload:function(){this.$filterSelect.off("change",this._onFilterChange);this.$sortSelect.off("change",this._onSortChange)}});return Filters})();window.theme=window.theme||{};theme.Form=(function(){var cache={};function init(){Selectors();if(cache.$labels.length>0)FloatedLabels();if(cache.$passwords.length>0)PasswordToggle()}function Selectors(){cache.$containers=[];cache.$inputs=[];cache.$labels=document.querySelectorAll(".form__label");cache.$passwords=document.querySelectorAll(".form__password");cache.$passwordToggles=[]}function FloatedLabels(){Array.from(cache.$labels).forEach((el,index)=>{cache.$containers[index]=el.closest(".form__group");cache.$inputs[index]=cache.$containers[index].querySelector("input")||cache.$containers[index].querySelector("textarea")});Array.from(cache.$inputs).forEach((el,index)=>{const $container=cache.$containers[index];$container.classList[el.value!==""?"add":"remove"]("active");setTimeout(()=>{if(el===document.activeElement){cache.$containers[index].classList.add("active")}},150);el.addEventListener("focus",e=>{cache.$containers[index].classList.add("active")});const events=["blur","change","input"];events.forEach(event=>{el.addEventListener(event,function(){$container.classList[el.value!==""?"add":"remove"]("active")})})})}function PasswordToggle(){Array.from(cache.$passwords).forEach((el,index)=>{const $toggle=el.closest(".form__group").querySelector(".form__password-toggle");if(!$toggle)return;cache.$passwordToggles[index]=$toggle;el.addEventListener("focus",()=>{if(el.value.length<1)return;setTimeout(()=>{el.setSelectionRange(el.value.length,el.value.length)},0)});const events=["blur","change","focus","input"];events.forEach(event=>{el.addEventListener(event,()=>{const hasValue=el.value!=="";const $pwToggle=cache.$passwordToggles[index];if(hasValue){$pwToggle.classList.add("active");$pwToggle.removeAttribute("tabIndex")}else{$pwToggle.classList.remove("active");$pwToggle.setAttribute("tabIndex","-1")}})})});Array.from(cache.$passwordToggles).forEach((el,index)=>{el.addEventListener("click",()=>{const $pw=cache.$passwords[index];$pw.focus();if($pw.value===""){return}cache.$passwords[index].type=cache.$passwords[index].type==="password"?"text":"password"})})}return{init}})();document.addEventListener("DOMContentLoaded",function(){theme.Form.init()});window.theme=window.theme||{};slate.rte={wrapTable:function(){$(".rte table").wrap('<div class="rte__table-wrapper"></div>')},iframeReset:function(){var $iframeVideo=$('.rte iframe[src*="youtube.com/embed"], .rte iframe[src*="player.vimeo"]');var $iframeReset=$iframeVideo.add(".rte iframe#admin_bar_iframe");$iframeVideo.each(function(){$(this).wrap('<div class="video-wrapper"></div>')});$iframeReset.each(function(){this.src=this.src})}};window.slate=window.slate||{};slate.a11y={pageLinkFocus:function($element){var focusClass="js-focus-hidden";$element.first().attr("tabIndex","-1").focus().addClass(focusClass).one("blur",callback);function callback(){$element.first().removeClass(focusClass).removeAttr("tabindex")}},focusHash:function(){var hash=window.location.hash;if(hash&&document.getElementById(hash.slice(1))){this.pageLinkFocus($(hash))}},bindInPageLinks:function(){$("a[href*=#]").on("click",function(evt){this.pageLinkFocus($(evt.currentTarget.hash))}.bind(this))},trapFocus:function(options){var eventName=options.namespace?"focusin."+options.namespace:"focusin";if(!options.$elementToFocus){options.$elementToFocus=options.$container}options.$container.attr("tabindex","-1");options.$elementToFocus.focus();$(document).off("focusin");$(document).on(eventName,function(evt){if(options.$container[0]!==evt.target&&!options.$container.has(evt.target).length){options.$container.focus()}})},removeTrapFocus:function(options){var eventName=options.namespace?"focusin."+options.namespace:"focusin";if(options.$container&&options.$container.length){options.$container.removeAttr("tabindex")}$(document).off(eventName)}};theme.Images=(function(){function preload(images,size){if(typeof images==="string"){images=[images]}for(var i=0;i<images.length;i++){var image=images[i];this.loadImage(this.getSizedImageUrl(image,size))}}function loadImage(path){new Image().src=path}function switchImage(image,element,callback){}function getSizedImageUrl(src,size){if(size==null){return src}if(size==="master"){return this.removeProtocol(src)}var match=src.match(/\.(jpg|jpeg|gif|png|bmp|bitmap|tiff|tif)(\?v=\d+)?$/i);if(match!=null){var prefix=src.split(match[0]);var suffix=match[0];return this.removeProtocol(prefix[0]+"_"+size+suffix)}return null}function removeProtocol(path){return path.replace(/http(s)?:/,"")}return{preload,loadImage,switchImage,getSizedImageUrl,removeProtocol}})();theme.Images=(function(){function preload(images,size){if(typeof images==="string"){images=[images]}for(var i=0;i<images.length;i++){var image=images[i];this.loadImage(this.getSizedImageUrl(image,size))}}function loadImage(path){new Image().src=path}function switchImage(image,element,callback){var size=this.imageSize(element.src);var imageUrl=this.getSizedImageUrl(image.src,size);if(callback){callback(imageUrl,image,element)}else{element.src=imageUrl}}function imageSize(src){var match=src.match(/.+_((?:pico|icon|thumb|small|compact|medium|large|grande)|\d{1,4}x\d{0,4}|x\d{1,4})[_\\.@]/);if(match!==null){if(match[2]!==void 0){return match[1]+match[2]}else{return match[1]}}else{return null}}function getSizedImageUrl(src,size){if(size===null){return src}if(size==="master"){return this.removeProtocol(src)}var match=src.match(/\.(jpg|jpeg|gif|png|bmp|bitmap|tiff|tif)(\?v=\d+)?$/i);if(match!==null){var prefix=src.split(match[0]);var suffix=match[0];return this.removeProtocol(prefix[0]+"_"+size+suffix)}return null}function removeProtocol(path){return path.replace(/http(s)?:/,"")}return{preload,loadImage,switchImage,imageSize,getSizedImageUrl,removeProtocol}})();theme.Currency=(function(){var moneyFormat=currencyFormat.shopifyMoneyFormat;function formatMoney(cents,format){if(typeof cents==="string"){cents=cents.replace(".","")}var value="";var placeholderRegex=/\{\{\s*(\w+)\s*\}\}/;var formatString=format||moneyFormat;function formatWithDelimiters(number,precision,thousands,decimal){precision=precision||2;thousands=thousands||",";decimal=decimal||".";if(isNaN(number)||number==null){return 0}number=(number/100).toFixed(precision);var parts=number.split(".");var dollarsAmount=parts[0].replace(/(\d)(?=(\d\d\d)+(?!\d))/g,"$1"+thousands);var centsAmount=parts[1]?decimal+parts[1]:"";return dollarsAmount+centsAmount}switch(formatString.match(placeholderRegex)[1]){case"amount":value=formatWithDelimiters(cents,2);break;case"amount_no_decimals":value=formatWithDelimiters(cents,0);break;case"amount_with_comma_separator":value=formatWithDelimiters(cents,2,".",",");break;case"amount_no_decimals_with_comma_separator":value=formatWithDelimiters(cents,0,".",",");break;case"amount_no_decimals_with_space_separator":value=formatWithDelimiters(cents,0," ");break}return formatString.replace(placeholderRegex,value)}return{formatMoney}})();function passiveSupportFeatureDetect(){var passiveSupport=false;try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:function(){passiveSupport={passive:true}}}))}catch(error){console.error({error:error.name,msg:"passive is not supported"})};return passiveSupport};class MarqueeV2 extends HTMLElement{constructor(){super(...arguments);__publicField(this,"_onSectionLoad",e=>{if(e.target.contains(this))this._init()});__publicField(this,"_onBlockSelect",e=>{if(e.target.closest("marquee-v2")===this)this._init()})}connectedCallback(){this._init();document.addEventListener("shopify:section:load",this._onSectionLoad);document.addEventListener("shopify:block:select",this._onBlockSelect)}disconnectedCallback(){document.removeEventListener("shopify:section:load",this._onSectionLoad);document.removeEventListener("shopify:block:select",this._onBlockSelect)}_init(){const track=this.querySelector(".marquee-v2__track");const firstList=track==null?void 0:track.querySelector(".marquee-v2__list");if(!track||!firstList)return;track.querySelectorAll(".marquee-v2__list:not(:first-child)").forEach(el=>el.remove());const minWidth=this.offsetWidth*2;while(track.scrollWidth<minWidth){track.appendChild(firstList.cloneNode(true))}if(track.querySelectorAll(".marquee-v2__list").length%2!==0){track.appendChild(firstList.cloneNode(true))}}}customElements.define("marquee-v2",MarqueeV2);window.theme=window.theme||{};theme.NewLogins=(function(){window.modaalResetPassModalIsReady=()=>{return typeof jQuery!=="undefined"&&typeof jQuery().modaal==="function"};window.modaalResetPassModal=()=>{cache.$resetPassModalLink.modaal({overlay_opacity:"0.9",background:"#fff",animation:"fade",custom_class:"reset-pass__modal-container"})};var cache={};function cacheSelectors(){cache={$errorsDiv:$(".errors"),$loginMessageNewStore:$(".login__message-new-store"),$resetPassModalLink:$(".reset-pass__modal"),$resetPassModalDiv:$("#reset-pass__modal"),$recoverPasswordForm:$(".recover-password--form"),$resetPassModalContainer:$(".reset-pass__modal-container"),$modalContentContainer:$(".modaal-content-container")}}function init(){cacheSelectors();displayNewLoginText();window.loadAsset({"src":theme.assets.modaal,"isReady":"modaalResetPassModalOsReady","callback":"modaalResetPassModal"})}function displayNewLoginText(){if(cache.$errorsDiv.length){cache.$loginMessageNewStore.removeClass("hide")}}return{init}})(jQuery);$('[data-notification-bar="close"]').on("click",function(){sessionStorage.setItem("notification-bar-hidden",true);$('[data-notification-bar="container"]').slideUp(350)});const FOCUSABLE_SELECTOR=["a[href]","area[href]","button:not([disabled])","input:not([disabled]):not([type='hidden'])","select:not([disabled])","textarea:not([disabled])","iframe","object","embed","[tabindex]:not([tabindex='-1'])","[contenteditable=true]"].join(",");class ProductCardATC extends HTMLElement{constructor(){super();this.button=null;this.popupContainer=null;this.popup=null;this.closeButton=null;this.contentEl=null;this.statusEl=null;this.contentLoading=null;this.previousActiveElement=null;this.cardReleaseTimer=null;this.onButtonClick=this.onButtonClick.bind(this);this.onCloseClick=this.onCloseClick.bind(this);this.onDocumentClick=this.onDocumentClick.bind(this);this.onCartAdded=this.onCartAdded.bind(this);this.onKeydown=this.onKeydown.bind(this)}connectedCallback(){this.button=this.querySelector(".js-product-card-atc-button");this.popupContainer=this.querySelector(".js-product-card-atc-popup-container");this.popup=this.querySelector(".js-product-card-atc-popup");this.closeButton=this.querySelector(".js-product-card-atc-close");this.contentEl=this.querySelector(".js-product-card-atc-popup-content");this.statusEl=this.querySelector(".js-product-card-atc-status");if(!this.button||!this.popupContainer)return;this.button.addEventListener("click",this.onButtonClick);if(this.closeButton){this.closeButton.addEventListener("click",this.onCloseClick)}this.addEventListener("product-card-atc:added",this.onCartAdded)}disconnectedCallback(){clearTimeout(this.cardReleaseTimer);document.removeEventListener("click",this.onDocumentClick);document.removeEventListener("keydown",this.onKeydown);this.removeEventListener("product-card-atc:added",this.onCartAdded)}onButtonClick(event){event.preventDefault();event.stopPropagation();this.loadAndOpen()}onCloseClick(event){event.preventDefault();event.stopPropagation();this.close()}onDocumentClick(event){if(event.target.closest(".js-product-card-atc-button"))return;if(this.popup&&this.popup.contains(event.target))return;this.close()}onCartAdded(){this.close()}loadAndOpen(){if(this.contentLoading){this.open();return}const hasContent=this.contentEl.dataset.state==="ready";if(!hasContent){this.contentEl.dataset.state="loading";this.contentEl.setAttribute("aria-busy","true");if(this.statusEl)this.statusEl.textContent="Loading"}this.open();this.contentLoading=this.fetchContent().then(html=>{this.contentEl.innerHTML=html;this.contentEl.dataset.state="ready";this.contentEl.setAttribute("aria-busy","false");if(this.statusEl)this.statusEl.textContent="";if(!hasContent)this.focusFirstElement()}).catch(err=>{console.error("[product-card-atc] fetch failed",err);if(!hasContent){this.contentEl.dataset.state="error";this.contentEl.setAttribute("aria-busy","false");this.contentEl.innerHTML='<p class="product-card__atc-popup__error" role="alert">Unable to load. Please try again.</p>'}if(this.statusEl)this.statusEl.textContent=""}).finally(()=>{this.contentLoading=null})}fetchContent(){const productHandle=this.dataset.productHandle;const collectionHandle=this.dataset.collectionHandle;const base=collectionHandle?`/collections/${collectionHandle}/products/${productHandle}`:this.dataset.productUrl||`/products/${productHandle}`;const url=`${base}?section_id=product-card-atc-content`;return fetch(url,{headers:{Accept:"text/html"}}).then(response=>{if(!response.ok)throw new Error(`HTTP ${response.status}`);return response.text()})}open(){var _a;if(this.classList.contains("is-open"))return;document.querySelectorAll("product-card-atc.is-open").forEach(el=>{if(el!==this&&typeof el.close==="function"){el.close({restoreFocus:false})}});this.previousActiveElement=document.activeElement&&document.activeElement!==document.body?document.activeElement:this.button;clearTimeout(this.cardReleaseTimer);(_a=this.closest(".product-card"))==null?void 0:_a.classList.add("product-card--atc-open");this.classList.add("is-open");if(this.button)this.button.setAttribute("aria-expanded","true");this.focusFirstElement();setTimeout(()=>{document.addEventListener("click",this.onDocumentClick)},0);document.addEventListener("keydown",this.onKeydown)}close({restoreFocus=true}={}){const wasOpen=this.classList.contains("is-open");this.classList.remove("is-open");const card=this.closest(".product-card");if(card){if(wasOpen){clearTimeout(this.cardReleaseTimer);this.cardReleaseTimer=setTimeout(()=>{if(!this.classList.contains("is-open")){card.classList.remove("product-card--atc-open")}},350)}else{card.classList.remove("product-card--atc-open")}}if(this.button)this.button.setAttribute("aria-expanded","false");document.removeEventListener("click",this.onDocumentClick);document.removeEventListener("keydown",this.onKeydown);if(wasOpen&&restoreFocus){const target=this.previousActiveElement||this.button;if(target&&typeof target.focus==="function"){target.focus()}}this.previousActiveElement=null}closeAndAdvance(){const next=this.getNextFocusableAfterTrigger();this.close({restoreFocus:false});const target=next||this.button;if(target&&typeof target.focus==="function"){target.focus()}}getNextFocusableAfterTrigger(){if(!this.button)return null;const candidates=Array.from(document.querySelectorAll(FOCUSABLE_SELECTOR)).filter(el=>!el.hasAttribute("disabled")&&el.getAttribute("aria-hidden")!=="true"&&!this.contains(el)&&(el.offsetWidth>0||el.offsetHeight>0||el.getClientRects().length>0));return candidates.find(el=>this.button.compareDocumentPosition(el)&Node.DOCUMENT_POSITION_FOLLOWING)||null}onKeydown(event){if(!this.classList.contains("is-open"))return;if(event.key==="Escape"||event.key==="Esc"){event.preventDefault();this.close();return}if(event.key==="Tab"){this.trapFocus(event)}}getFocusable(){if(!this.popup)return[];return Array.from(this.popup.querySelectorAll(FOCUSABLE_SELECTOR)).filter(el=>!el.hasAttribute("disabled")&&el.getAttribute("aria-hidden")!=="true"&&(el.offsetWidth>0||el.offsetHeight>0||el===document.activeElement))}trapFocus(event){const focusable=this.getFocusable();if(focusable.length===0){event.preventDefault();if(this.popup)this.popup.focus();return}const first=focusable[0];const last=focusable[focusable.length-1];const active=document.activeElement;if(event.shiftKey&&(active===first||!this.popup.contains(active))){event.preventDefault();last.focus()}else if(!event.shiftKey&&active===last){event.preventDefault();this.closeAndAdvance()}else if(!event.shiftKey&&!this.popup.contains(active)){event.preventDefault();first.focus()}}focusFirstElement(){if(!this.popup)return;if(typeof this.popup.focus==="function"){this.popup.focus({preventScroll:false})}}}class ProductCardATCContent extends HTMLElement{constructor(){super();this.form=null;this.planInput=null;this.priceEl=null;this.comparePriceEl=null;this.errorEl=null;this.submitBtn=null;this.onRadioChange=this.onRadioChange.bind(this);this.onFrequencyChange=this.onFrequencyChange.bind(this);this.onFrequencyOpen=this.onFrequencyOpen.bind(this);this.onSubmit=this.onSubmit.bind(this)}connectedCallback(){this.form=this.querySelector("form");this.planInput=this.querySelector("[data-plan-picker-input]");this.priceEl=this.querySelector("[data-submit-price]");this.comparePriceEl=this.querySelector("[data-submit-compare-price]");this.errorEl=this.querySelector(".js-product-card-atc-error");this.submitBtn=this.querySelector("[data-add-to-cart]");this.submitLabel=this.querySelector(".product-form__cart-submit-text");this.submitLabelDefault=this.submitLabel?this.submitLabel.textContent:"";this.querySelectorAll(".skio-group-input").forEach(radio=>{radio.addEventListener("change",this.onRadioChange)});this.querySelectorAll("[data-plan-frequency]").forEach(select=>{select.addEventListener("change",this.onFrequencyChange);select.addEventListener("mousedown",this.onFrequencyOpen)});if(this.form){this.form.addEventListener("submit",this.onSubmit)}const checked=this.querySelector(".skio-group-input:checked");if(checked)this.applySelection(checked)}applySelection(radio){const planId=radio.dataset.planId||"";if(this.planInput)this.planInput.value=planId;if(this.submitLabel){this.submitLabel.textContent=planId?"Subscribe":this.submitLabelDefault}this.querySelectorAll(".skio-group-container").forEach(c=>c.classList.remove("skio-group-container--selected"));const container=radio.closest(".skio-group-container");if(container)container.classList.add("skio-group-container--selected");if(this.priceEl&&radio.dataset.displayPrice){this.priceEl.textContent=radio.dataset.displayPrice}if(this.comparePriceEl){const compare=radio.dataset.displayComparePrice||"";this.comparePriceEl.textContent=compare;this.comparePriceEl.classList.toggle("is-hidden",!compare)}const cartPriceInput=this.querySelector("[data-cart-price-input]");const saleMsgInput=this.querySelector("[data-cart-sale-message-input]");const subscriptionInput=this.querySelector("[data-cart-subscription-input]");if(cartPriceInput&&radio.dataset.cartPrice!==void 0){cartPriceInput.value=radio.dataset.cartPrice}if(saleMsgInput&&radio.dataset.cartSaleMessage!==void 0){saleMsgInput.value=radio.dataset.cartSaleMessage}if(subscriptionInput){if(radio.dataset.cartSubscription){subscriptionInput.disabled=false;subscriptionInput.value=radio.dataset.cartSubscription}else{subscriptionInput.disabled=true}}}onRadioChange(event){this.applySelection(event.target)}onFrequencyChange(event){const select=event.target;const groupId=select.dataset.planGroupTarget;const planId=select.value;const radio=this.querySelector(`.skio-group-input[data-plan-group="${groupId}"]`);if(!radio)return;radio.dataset.planId=planId;if(radio.checked&&this.planInput)this.planInput.value=planId}onFrequencyOpen(event){const groupId=event.target.dataset.planGroupTarget;const radio=this.querySelector(`.skio-group-input[data-plan-group="${groupId}"]`);if(!radio||radio.checked)return;radio.checked=true;this.applySelection(radio)}onSubmit(event){event.preventDefault();if(this.errorEl)this.errorEl.textContent="";if(this.submitBtn){this.submitBtn.classList.add("product-form--waiting");this.submitBtn.blur()}const formData=new FormData(this.form);fetch("/cart/add.js",{method:"POST",body:formData,headers:{Accept:"application/json"}}).then(response=>response.json().then(data=>{if(!response.ok)throw data;return data})).then(cartData=>{var _a,_b;const statusEl=(_a=this.closest("product-card-atc"))==null?void 0:_a.querySelector(".js-product-card-atc-status");if(statusEl){statusEl.textContent="";requestAnimationFrame(()=>{statusEl.textContent="Added to cart"})}window.dispatchEvent(new CustomEvent("cart:items-added",{detail:{items:[cartData]}}));if(window.jQuery){const quantityAdded=((_b=this.form.querySelector('[name="quantity"]'))==null?void 0:_b.value)||1;const $form=window.jQuery(this.form);$form.trigger({type:"AjaxAddToCart",response:cartData,quantityAdded});$form.trigger({type:"AjaxCartRequest",response:cartData})}if(window.BulletproofB2B){window.location.href="/cart";return}this.dispatchEvent(new CustomEvent("product-card-atc:added",{bubbles:true}))}).catch(err=>{if(this.errorEl){this.errorEl.textContent=err&&err.description||"Unable to add to cart."}}).finally(()=>{if(this.submitBtn)this.submitBtn.classList.remove("product-form--waiting")})}}customElements.define("product-card-atc",ProductCardATC);customElements.define("product-card-atc-content",ProductCardATCContent);class ProductCardCarousel extends HTMLElement{constructor(){super();this.swiper=null;this.gallery=null;this.dots=[];this.observer=null;this.onDotClick=this.onDotClick.bind(this)}connectedCallback(){if(this.swiper||this.observer)return;this.gallery=this.querySelector("[data-plp-gallery]");this.dots=Array.prototype.slice.call(this.querySelectorAll(".js-plp-dot"));if(!this.gallery)return;this.dots.forEach(dot=>{dot.addEventListener("click",this.onDotClick)});if("IntersectionObserver"in window){this.observer=new IntersectionObserver(entries=>{if(entries.some(e=>e.isIntersecting))this.upgrade()},{rootMargin:"200px 0px"});this.observer.observe(this)}else{this.upgrade()}}disconnectedCallback(){if(this.observer){this.observer.disconnect();this.observer=null}if(this.swiper){this.swiper.destroy(true,true);this.swiper=null}}hydrateLazyImages(){const lazy=this.querySelectorAll(".js-plp-lazy");lazy.forEach(img=>{if(img.dataset.srcset)img.setAttribute("srcset",img.dataset.srcset);if(img.dataset.sizes)img.setAttribute("sizes",img.dataset.sizes);if(img.dataset.src)img.setAttribute("src",img.dataset.src);img.classList.remove("js-plp-lazy")})}upgrade(){if(this.swiper)return;if(typeof Swiper==="undefined"){if(!this._waitingForSwiper){this._waitingForSwiper=true;window.addEventListener("load",()=>this.upgrade(),{once:true})}return}if(this.observer){this.observer.disconnect();this.observer=null}this.hydrateLazyImages();this.swiper=new Swiper(this.gallery,{slidesPerView:1,effect:"fade",fadeEffect:{crossFade:true},loop:false,grabCursor:true,nested:true,preventClicks:true,preventClicksPropagation:true,threshold:5,watchSlidesProgress:true,mousewheel:{forceToAxis:true,thresholdDelta:6},a11y:{enabled:true,prevSlideMessage:"Previous product image",nextSlideMessage:"Next product image",containerRoleDescriptionMessage:"Product image carousel",itemRoleDescriptionMessage:"product image",slideRole:"group"},on:{slideChange:()=>this.syncDots(this.swiper.activeIndex)}});this.syncDots(this.swiper.activeIndex)}onDotClick(event){event.preventDefault();event.stopPropagation();const index=parseInt(event.currentTarget.getAttribute("data-index"),10)||0;this.upgrade();if(this.swiper)this.swiper.slideTo(index);this.syncDots(index)}syncDots(activeIndex){this.dots.forEach((dot,i)=>{dot.classList.toggle("is-active",i===activeIndex)})}}if(!customElements.get("product-card-carousel")){customElements.define("product-card-carousel",ProductCardCarousel)}window.theme=window.theme||{};theme.ProductVarLoad=(function(){let cache={};cache={$slectricOptionDropdown:$("[data-js-dropdown-sku]"),$singleOptionSelector:document.querySelector("#SingleOptionSelector-0")};function ProductVarLoad(){const url=window.location.href;const varParam=url.includes("?variant=")?url.split("?variant=")[1]:null;if(varParam!=null){initiateVarLoad(varParam)}}function initiateVarLoad(varParam){_.each(cache.$slectricOptionDropdown.find("option"),option=>{let dataVarId=$(option).data("id");if(varParam==dataVarId){var event=new Event("change",{bubbles:true});option.selected=true;cache.$singleOptionSelector.dispatchEvent(event)}})}return ProductVarLoad})();window.theme=window.theme||{};theme.Reviews=(function(){var cache={};function cacheSelectors(){cache={$newPosition:$(".write-review-button")}}function init(){$(window).on("load",function(){cacheSelectors();yotpoLoadTimer()})}function yotpoLoadTimer(){var checkExist=setInterval(function(){if($(".yotpo:not(:empty)").length){setDatePosition();paginationEvent();mobileMove();clearInterval(checkExist)}},300)}function setDatePosition(){var reviewBox=$(".yotpo-regular-box");$.each(reviewBox,function(){let userNameEl=$(this).find(".yotpo-user-name");let iconEl=$(this).find(".yotpo-icon-profile");let dateHeaderActions=$(this).find(".yotpo-header-actions");if(userNameEl.length){let userNameElWidth=userNameEl.width();dateHeaderActions.css({left:`${userNameElWidth}px`,opacity:1})}})}function paginationEvent(){$(document).on("click",".goTo, .yotpo_next, .yotpo_previous",function(){if(!$(this).hasClass("yotpo-disabled")){setTimeout(function(){setDatePosition()},400)}})}function debounce(func,wait,immediate){var timeout;return function(){var context=this,args=arguments;var later=function(){timeout=null;if(!immediate)func.apply(context,args)};var callNow=immediate&&!timeout;clearTimeout(timeout);timeout=setTimeout(later,wait);if(callNow)func.apply(context,args)}};var mobileMove=debounce(function(){var is_mobile=false;var windowsize=$(window).width();if(windowsize<571){is_mobile=true}if(is_mobile==true){mobileChangeHeaderElementsPositions();window.removeEventListener("resize",mobileMove)}},250);window.addEventListener("resize",mobileMove);function mobileChangeHeaderElementsPositions(){var yotpoReviews=$(".yotpo-reviews .yotpo-review");$.each(yotpoReviews,function(){var starDistribution=$(this).find(".yotpo-bottomline-box-2");starDistribution.insertAfter($(".write-review-button"))})}return{init}})(jQuery);(function($2){$2(".ss").on("click",function(event){if(this.hash!==""){event.preventDefault();var hash=this.hash;$2("html, body").animate({scrollTop:$2(hash).offset().top-80},800)}})})(jQuery);window.theme=window.theme||{};theme.Cart=(function(){var updateTimer=0;var selectors={edit:".js-edit-toggle",login:"[data-login-prompt]"};var config={showClass:"cart__update--show",showEditClass:"cart__edit--active",quantityInput:".input-quantity",quantityInputWrapper:".input-quantity--wrapper",removeButton:'[data-js-ajax-cart="removeItem"]',optoutButton:'[data-js-ajax-cart="gwpOptout"]'};if($("body").hasClass("template-cart")){theme.ajaxCart.init();theme.ajaxCart.setRemoveEvents();if(!Array.from){Array.from=function(object){"use strict";return[].slice.call(object)}}Array.from($('[data-js-quantity-selector="container"]')).forEach((selector,index)=>{selectors[index]=new QuantitySelector({container:selector,callback:function(){clearTimeout(updateTimer);updateTimer=setTimeout(()=>{EventBus.emit("AjaxCart.updateItem",getUpdatedVariantData(selectors[index].container,parseInt(selectors[index].input.val())))},500)}})});window.addEventListener("keyup:escape",function(){document.body.classList.remove("cart-login-prompt--visible")});$(document).on("click",config.optoutButton,function(e){var $this=$(this);var key=$this.data("item-key");var promotion=$this.data("gwp-promotion");if(confirm("Are you sure you want to remove this free gift from your cart?")){Cookies.set(`bp_gwp_${promotion}`,true);$.post("/cart/update.js",{updates:{[key]:0}}).then(data=>{window.location.reload(true)})}return false});$(document).on("gwp:optin",function(e){if(typeof window.BPGWP!=="undefined"&&Array.isArray(window.BPGWP)){if($("#gwp-optin-wrapper").length>0){return}const cartWrapper=$('[data-js-ajax-cart="container"]');const discounts=$('<div class="gwp__wrapper" id="gwp-optin-wrapper"></div>');window.BPGWP.forEach(discount=>{discounts.append(`<div class="gwp__optin">Your order qualifies for a FREE gift! <a href="#" data-gwp-optin="${discount}">Add Gift to Cart</a></div>`)});cartWrapper.before(discounts);$("body").on("click","[data-gwp-optin]",function(e2){Cookies.remove($(this).data("gwp-optin"));$(document).trigger("cart-ajax:gwp-optin")});setTimeout(()=>discounts.addClass("active"),150)}})}function getUpdatedVariantData(el,quantity){return{id:$(el).parents(".cart-table__row").data("variant"),line:$(el).parents(".cart-table__row").data("line-id"),key:$(el).parents(".cart-table__row").data("key"),quantity,properties:{}}}function Cart(container){this.$container=$(container);this.$edit=$(selectors.edit,this.$container);this.$subscriptionLogin=$(selectors.login,this.$container);this.$edit.on("click",this._onEditClick.bind(this));this.$subscriptionLogin.on("click",this._onSubscriptionLoginClick.bind(this))}function renderWindowOverlay(){$("body").append(`
      <div class="window-overlay">
        <div class="loader">
          <div class="line-spin-fade-loader">
            <div></div>
            <div></div>
            <div></div>
            <div></div>
            <div></div>
            <div></div>
            <div></div>
            <div></div>
          </div>
        </div>
      </div>
    `)}function removeWindowOverlay(){if($(".window-overlay")){$(".window-overlay").remove()}}Cart.prototype=_.assignIn({},Cart.prototype,{onUnload:function(){this.$edit.off("click",this._onEditClick);this.$subscriptionLogin.off("click",this._onSubscriptionLoginClick)},_onEditClick:function(evt){var $evtTarget=$(evt.target);var $updateLine=$("."+$evtTarget.data("target"));$evtTarget.toggleClass(config.showEditClass);$updateLine.toggleClass(config.showClass)},_onSubscriptionLoginClick:function(evt){evt.preventDefault();document.body.classList.add("cart-login-prompt--visible")}});return Cart})();window.theme=theme||{};theme.customerTemplates=(function(){function initEventListeners(){$(document).on("click",".RecoverPassword",function(e){e.preventDefault();toggleRecoverPasswordForm()});$(document).on("click",".HideRecoverPasswordLink",function(e){e.preventDefault();toggleRecoverPasswordForm()})}function toggleRecoverPasswordForm(){$(".recover-password--form").toggleClass("hide");$(".customer-login--form").toggleClass("hide")}function resetPasswordSuccess(){var $formState=$(".reset-password-success");if(!$formState.length){return}if($(".form-success").attr("id")=="ResetSuccess"){$(".form-success").removeClass("hide")}}function customerAddressForm(){var $newAddressForm=$("#AddressNewForm");if(!$newAddressForm.length){return}if(Shopify){new Shopify.CountryProvinceSelector("AddressCountryNew","AddressProvinceNew",{hideElement:"AddressProvinceContainerNew"})}$(".address-country-option").each(function(){var formId=$(this).data("form-id");var countrySelector="AddressCountry_"+formId;var provinceSelector="AddressProvince_"+formId;var containerSelector="AddressProvinceContainer_"+formId;new Shopify.CountryProvinceSelector(countrySelector,provinceSelector,{hideElement:containerSelector})});function toggleMyAddr(){var addressEl=$(".address");addressEl.slideToggle();$("#myAddresses").slideToggle()}$(".address-new-toggle").on("click",function(){toggleMyAddr();$newAddressForm.slideToggle();$("#new-address-trigger").toggleClass("hide")});$(".address-edit-toggle").on("click",function(){var formId=$(this).data("form-id");toggleMyAddr();$("#EditAddress_"+formId).slideToggle()});$(".address-delete").on("click",function(){var $el=$(this);var formId=$el.data("form-id");var confirmMessage=$el.data("confirm-message");if(confirm(confirmMessage||"Are you sure you wish to delete this address?")){Shopify.postLink("/account/addresses/"+formId,{parameters:{_method:"delete"}})}})}function checkUrlHash(){var hash=window.location.hash;if(hash==="#recover"){toggleRecoverPasswordForm()}}function redirectURLonRecaptcha(){let invalidURLs=[document.referrer.indexOf("/cart")<0,document.referrer.indexOf("/account")<0,document.referrer.indexOf("/challenge")<0,document.referrer.indexOf("/checkout")<0];if(invalidURLs.every(item=>item)&&localStorage.getItem("subscription-registration-recaptcha")){console.log("Redirect looks good, going to checkout");localStorage.removeItem("subscription-registration-recaptcha");window.location.href="/checkout"}else if(document.referrer.indexOf("/cart")>=0&&$("#g-recaptcha").length>0){console.log("Redirect stored from recaptcha page");localStorage.setItem("subscription-registration-recaptcha",1)}else{console.log("Redirect is invalid, removing");localStorage.removeItem("subscription-registration-recaptcha")}}function checkForValidCharacters(e){var $this=$(e.target);var $field=$this.parent();var $form=$this.closest("form");var $submit=$form.find('button[type="submit"],input[type="submit"]');if(/[^ -~]/.test($this.val())){var $error=$field.find(".error-message");if($error.length<1){$error=$('<p class="error-message">English characters only</p>');$field.append($error)}$field.addClass("error")}else{$field.removeClass("error")}if($form.find(".error").length>0){$submit.attr("aria-busy","true").attr("disabled","true")}else{$submit.attr("aria-busy","false").removeAttr("disabled")}}function enforceAddressCharacterRestrictions(){var addressForms=$('[id^="address_form_"]');var addressFields=addressForms.find('input[type="text"],input[type="phone"],input[type="tel"],input[type="email"],textarea');addressFields.on("input",function(e){checkForValidCharacters(e)});$(document).on("input",'.og-address-form input[type="text"]',function(e){checkForValidCharacters(e)})}return{init:function(){checkUrlHash();initEventListeners();resetPasswordSuccess();customerAddressForm();redirectURLonRecaptcha();enforceAddressCharacterRestrictions()}}})();window.theme=theme||{};theme.ordersTemplate=(function(){var cache={};function cacheSelectors(){cache={$ordersNavLink:$('.site-nav__link[href="/account?view=orders"]'),$accDashboardGridItem:$("#accountDashboard .grid__item"),$reorderBtn:$(".customer__reorder")}}function init(){cacheSelectors();checkOrderPage()}function checkOrderPage(){cache.$reorderBtn.on("click",function(e){e.preventDefault();var lineItemObj=$(this).parent().next().find(".line-item");let paramArray=_.map(lineItemObj,function(item){return{id:$(item).data("variant"),quantity:$(item).data("qty")}});var counter=0;var addToCart=function(){if(counter<paramArray.length){$.ajax({type:"POST",dataType:"json",url:"/cart/add.js",data:{id:paramArray[counter].id,quantity:paramArray[counter].quantity},success:function(){counter=counter+1;addToCart(counter)}})}else{document.location.href="/cart"}};addToCart()})}return{init}})(jQuery);theme.Collections=(function(){var selectors={container:".grid-view-item--quickadd",html:"html",productForm:".template-collection .product-form",comboSelect:".grid-view-item__link, .product-form",sideMenuItemToggle:"[data-collection-menu-item-toggle]",html:"html",tagLabel:".template-collection .product-tag__label",descriptionToggle:"[data-collection-description-toggle]",description:"[data-collection-description]",menuFirstEl:'[data-first-el="collection-menu"]',menuItemToggle:"[data-collection-menu-item-toggle]",sortActive:"[data-sort-active]",sortItem:"[data-sort-value]",sortSelect:"[data-sort-select]"};var cache={};function cacheSelectors(){cache={$container:$(selectors.container),$html:$(selectors.html),$sideMenuItemToggle:$(selectors.sideMenuItemToggle),$productForm:$(selectors.productForm),$tagLabel:$(selectors.tagLabel),$comboSelect:$(selectors.comboSelect),$description:$(selectors.description),$descriptionToggle:$(selectors.descriptionToggle),$menuFirstEl:$(selectors.menuFirstEl),$menuItemToggle:$(selectors.menuItemToggle),$sortActive:$(selectors.sortActive),$sortItem:$(selectors.sortItem),$sortSelect:$(selectors.sortSelect)}}function init(){cacheSelectors();closeOnEscape();productHover();productHoverLeave();descriptionToggle();menuItemToggle();sort();sortActiveClass()}function closeOnEscape(){window.addEventListener("keyup:escape",function(){const activeMenu=cache.$html.data("side-menu-active");if(activeMenu&&activeMenu!==""&&typeof menuClose==="function")menuClose(activeMenu)})}function productHover(){cache.$container.mouseenter(handlerInOut)}function productHoverLeave(){cache.$container.mouseleave(handlerInOut)}function handlerInOut(){$(this).find(cache.$productForm).toggleClass("active");$(this).parent().find(cache.$tagLabel).toggleClass("active")}function descriptionToggle(){cache.$descriptionToggle.on("click",function(){cache.$description.toggleClass("collection-description--active")})}function getUrlSortByValue(){if(window.location.href.indexOf("?")!==-1){var params=window.location.search;if(params.indexOf("sort_by")!==-1){const sort2=params.slice(params.indexOf("sort_by")+1).split("=");if(typeof Storage!=="undefined"){sessionStorage.setItem("sort_by",sort2[1])}return sort2[1]}}else{if(typeof Storage!=="undefined"&&typeof sessionStorage.sort_by!=="undefined"){sessionStorage.removeItem("sort_by")}return cache.$sortItem.first().data("sort-value")}}function menuItemToggle(){const activeClass="collection-menu__group--active";cache.$menuItemToggle.click(function(e){e.preventDefault();const el=$(this);const container=$('[data-collection-menu-group="'+el.data("collection-menu-item-toggle")+'"]');const subMenu=container.find("[data-collection-menu-list]");const oldActive=$("."+activeClass+":not([data-collection-menu-group='"+name+"'])");container.toggleClass(activeClass);const isExpanded=container.hasClass(activeClass);if(oldActive.length>0&&el.data("collection-menu-item-toggle-siblings")===true){oldActive.removeClass(activeClass);oldActive.find("[aria-hidden]").attr("aria-hidden",true);oldActive.find("[aria-expanded]").attr("aria-expanded",false)}el.attr("aria-expanded",isExpanded);subMenu.attr("aria-hidden",!isExpanded);subMenu.attr("aria-expanded",isExpanded)})}function sortActiveClass(){cache.$sortItem.each(function(){const el=$(this);if(el.data("sort-value")==getUrlSortByValue()){el.addClass("collection-sort__item--active");cache.$sortActive.text(el.text());el.attr("selected","selected");return false}})}function sort(){cache.$sortSelect.change(function(){window.location.search=this.value})}return{init}})();theme.Collections.init();window.theme=window.theme||{};theme.Product=(function(){function Product(container){var $container=this.$container=$(container);var sectionId=$container.attr("data-section-id");this.section_id=sectionId;window.preventAddToCart=false;this.settings={mediaQueryMediumUp:"screen and (min-width: 750px)",mediaQuerySmall:"screen and (max-width: 749px)",bpSmall:false,enableHistoryState:$container.data("enable-history-state")||false,imageZoomSize:null,namespace:".slideshow-"+sectionId,sectionId,sliderActive:false,zoomEnabled:false};this.selectors={addToCart:".AddToCart-"+sectionId,addToCartText:".AddToCartText-"+sectionId,addToCartBanner:".product-added__to--cart-label",attr:".product-detail__attr",comparePrice:".ComparePrice-"+sectionId,originalPrice:".ProductPrice-"+sectionId,SKU:".variant-sku",originalPriceWrapper:".product-price__price-"+sectionId,originalSelectorId:".ProductSelect-"+sectionId,productFeaturedImage:".FeaturedImage-"+sectionId,productPrices:".product-single__price-"+sectionId,saleClasses:"product-price__sale product-price__sale--single",saleLabel:".product-price__sale-label-"+sectionId,mobileSaleLabel:".product-price__sale-label.small--show",singleOptionSelector:".single-option-selector-"+sectionId,productForm:".product-form-"+sectionId,cartBody:".cart-ajax",cartRow:".cart-ajax__row",autoDeliver:'[value="autodeliver"]',orderFreq:"[data-order-freq]",title:".product-single__title",imgGallery:".product-images__slide-container",imgSlide:".image-slide",inventoryStock:".inventory-indicator span",productFormItemDiv:".product-form__bundle--submit",bundleHiddenIdInput:"#bundle_hidden_id_input",quantityInput:".item-quantity__input,.item-quantity__select",quantityIncrement:".item-quantity__increment",BIS_trigger:".BIS_trigger",subscriptionPrice:"[data-subscription-price]"};this._addYotpoDisclaimer();if(!$(".ProductJson-"+sectionId).html()){return}this.productSingleObject=JSON.parse(document.querySelector(".ProductJson-"+sectionId).innerHTML);this.productMetafieldsObject=document.getElementById("ProductMetafieldsJson-"+sectionId)!=null?JSON.parse(document.getElementById("ProductMetafieldsJson-"+sectionId).innerHTML):null;this.variantSingleObject=document.getElementById("VariantJson-"+sectionId)!=null?JSON.parse(document.getElementById("VariantJson-"+sectionId).innerHTML):null;this.bundleChildObject=document.getElementById("VariantBundleChildJson-"+sectionId)!=null?JSON.parse(document.getElementById("VariantBundleChildJson-"+sectionId).innerHTML):null;this._stringOverrides();this._initVariants();this._reviewsReady()}Product.prototype=_.assignIn({},Product.prototype,{_stringOverrides:function(){theme.productStrings=theme.productStrings||{};$.extend(theme.strings,theme.productStrings)},_initVariants:function(){var options={$container:this.$container,enableHistoryState:this.$container.data("enable-history-state")||false,singleOptionSelector:this.selectors.singleOptionSelector,productForm:this.selectors.productForm,cartBody:this.selectors.cartBody,originalSelectorId:this.selectors.originalSelectorId,product:this.productSingleObject};this.variants=new slate.Variants(options);$(document).on("quantityChanged"+this.settings.namespace,this._updateAddToCart.bind(this));this.$container.on("variantChange AjaxAddToCart quantityChanged"+this.settings.namespace,this._updateAddToCart.bind(this));this.$container.on("variantSwatchUpdate"+this.settings.namespace,this._updateSwatches.bind(this));this.$container.on("variantImageChange"+this.settings.namespace,this._updateImages.bind(this));this.$container.on("variantImageGalleryChange"+this.settings.namespace,this._updateImageGallery.bind(this));this.$container.on("variantSKUChange"+this.settings.namespace,this._updateSKU.bind(this));this.$container.on("variantBundleHiddenInputChange"+this.settings.namespace,this._updateBundleHiddenInputId.bind(this));this.$container.on("variantAttrChange"+this.settings.namespace,this._updateAttr.bind(this));this.$container.on("variantTitleChange"+this.settings.namespace,this._updateTitle.bind(this));this.$container.on("variantOriginUrlUpdate"+this.settings.namespace,this._updateOriginUrl.bind(this));this._updateAddToCart({type:"load"})},_updateAttr:function(evt){if(!this.productMetafieldsObject)return;const variant_id=evt.variant.id;const metafield_attr=this.productMetafieldsObject.variants_metafields[variant_id].attr;$(this.selectors.attr).html(metafield_attr)},_updateSwatches:function(evt){var variant=evt.variant},_addYotpoDisclaimer:function(){$("body").on("click",".yotpo .write-review-button",function(){if($("#review_submit_disclaimer").length>0)return;$(".write-review .submit-button").after('<div id="review_submit_disclaimer"><p>'+window.theme.strings.yotpoDisclaimer+"</p></div>")})},_reviewsReady:function(el){var interval=setInterval(()=>{var $reviewCount=$("#reviews .reviews-qa-label");if($reviewCount.length>0){this._updateReviewCount($reviewCount);clearInterval(interval)}},250)},_updateReviewCount:function(el){el.text($(".product-single__card--wrapper .product-reviews a").text())},_updateAddToCart:function(evt){var variant=evt.variant;var $addToCartBtnText=$(this.selectors.addToCartText),$addToCartBanner=$(this.selectors.addToCartBanner),$mobileSaleLabel=$(this.selectors.mobileSaleLabel),$addToCartBtn=$(this.selectors.addToCart);if(evt.type=="AjaxAddToCart"){$(this.selectors.productPrices).removeClass("visibility-hidden").attr("aria-hidden","true");let response=evt.response.responseJSON==void 0?evt.response:evt.response.responseJSON;if(response.status==404){if(response.description=="Cannot find variant"){$addToCartBtn.prop("disabled",true);$addToCartBtnText.text(theme.strings.unavailable);$(this.selectors.inventoryStock).text(theme.strings.soldOut)}}else if(response.status==422){$addToCartBtn.prop("disabled",true);$addToCartBtnText.text(theme.strings.addToCartFull)}else{$addToCartBtn.prop("disabled",false).addClass("product-form--submitted");$addToCartBanner.addClass("product--added");$mobileSaleLabel.addClass("hide");if(window.innerWidth<1170){$addToCartBanner.text(theme.strings.addToCartSuccessMobile)}else{$addToCartBanner.text(theme.strings.addToCartSuccess)}setTimeout(function(){$addToCartBanner.text("");$addToCartBtn.prop("disabled",false).removeClass("product-form--submitted");$mobileSaleLabel.removeClass("hide");$addToCartBanner.removeClass("product--added")},1100)}}else if(evt.type=="quantityChanged"){if($addToCartBtnText.text()!=theme.strings.unavailable&&$addToCartBtnText.text()!=theme.strings.addToCartLoading){$(this.selectors.productPrices).removeClass("visibility-hidden").attr("aria-hidden","true");$addToCartBtn.prop("disabled",false)}let qtyInputVal=$(this.selectors.quantityInput).val();window.dataLayer.push({productQuantity:qtyInputVal})}else{if(variant){$(this.selectors.productPrices).removeClass("visibility-hidden").attr("aria-hidden","true");if(variant.available){$(this.selectors.addToCart).prop("disabled",false);$(this.selectors.addToCartText).html(theme.strings.addToCart);$(this.selectors.inventoryStock).text(theme.strings.available);$(this.selectors.quantityIncrement).removeClass("disabled");$(this.selectors.BIS_trigger).hide();document.dispatchEvent(new Event("variantInStock"))}else{$(this.selectors.addToCart).prop("disabled",true);$(this.selectors.addToCartText).html(theme.strings.soldOut);$(this.selectors.inventoryStock).removeClass("instock");$(this.selectors.inventoryStock).addClass("outofstock");$(this.selectors.quantityIncrement).addClass("disabled");$(this.selectors.inventoryStock).text(theme.strings.soldOut);$(this.selectors.BIS_trigger).show();document.dispatchEvent(new Event("variantOutOfStock"))}}else{$(this.selectors.addToCart).prop("disabled",true);$(this.selectors.addToCartText).text(theme.strings.unavailable);$(this.selectors.productPrices).addClass("visibility-hidden").attr("aria-hidden","false")}}window.atcText=$addToCartBtn.eq(0).text()},_updateImages:function(evt){if(!evt.newVariantImage)return;var newImage=evt.newVariantImage.src||evt.newVariantImage;var newImageSet=`${newImage} 300w, ${newImage} 600w, ${newImage} 900w`;var $image=$(this.selectors.productFeaturedImage);$image.prop("src",newImage);$image.prop("srcset",newImageSet);$image.attr("data-zoom",newImage)},_updateImageGallery:function(evt){var variant=evt.variant;var variant_sku=variant.sku;var variant_data_obj=this.variantSingleObject;if(!variant_data_obj)return;var variant_image_obj=variant_data_obj.image_data;var img_gallery_slide=$(this.selectors.imgSlide);var responseAltArr=(()=>{let mappedArrayAlt;mappedArrayAlt=$.map(variant_image_obj,function(value,index){return value.img_alt.includes(variant_sku)?value.img_alt:null});return mappedArrayAlt})();var responseSrcArr=(()=>{let mappedArraySrc;mappedArraySrc=$.map(variant_image_obj,function(value,index){return value.img_alt.includes(variant_sku)?value.img_src:null});return mappedArraySrc})();function appendVariantSlides(){img_gallery_slide.remove();for(let i=0;i<responseAltArr.length;i++){let appendage=`<div data-slide-num=${i+1} class="image-slide"><img src=${responseSrcArr[i]} alt=${responseAltArr[i]} /></div>`;$(".product-images__slide-container").append(appendage)}};$.when(appendVariantSlides()).then(()=>{$(".product-images__slide-container").flickity("resize")})},_updateBundleProps:function(evt){var variant_id=evt.variant.id;var bundle_data=this.bundleChildObject;let index_counter=0;let input_arr=[];let hiddenProps=$(".hidden_props_inputs");hiddenProps.html("");_.each(bundle_data,function(bundle_child){let bundle_child_id=bundle_child.bundle_object_id;if(bundle_child_id==variant_id){index_counter=index_counter+1;let input_html=`<input type="hidden" name="properties[product_bundle_${index_counter}]" value="${bundle_child.bundle_child_handle} | QTY: ${bundle_child.bundle_child_qty}" />
          <input type="hidden" name="properties[bundle_data_title_${index_counter}]" value="${bundle_child.bundle_child_title}" />`;input_arr.push(input_html)}});input_arr.forEach(function(input){hiddenProps.append(input)});$(this.selectors.bundleHiddenIdInput).val(variant_id)},_updatePrice:function(evt){var variant=evt.variant;window.dataLayer.push({productPrice:theme.Currency.formatMoney(variant.price,"{{amount}}")});$(this.selectors.originalPrice).html(theme.Currency.formatMoney(variant.price,currencyFormat.shopifyMoneyFormat));if(variant.compare_at_price>variant.price){$(this.selectors.comparePrice).html(theme.Currency.formatMoney(variant.compare_at_price,currencyFormat.shopifyMoneyFormat)).removeClass("hide");$(this.selectors.originalPriceWrapper).addClass(this.selectors.saleClasses);$(this.selectors.saleLabel).removeClass("hide")}else{$(this.selectors.comparePrice).addClass("hide");$(this.selectors.saleLabel).addClass("hide");$(this.selectors.originalPriceWrapper).removeClass(this.selectors.saleClasses)}},_getSubscriptionPrice(variant){return parseFloat(this.$container.find(this.selectors.subscriptionPrice).data("subscription-price"))},_updateSKU:function(evt){var variant=evt.variant;window.dataLayer.push({productSKU:variant.sku});$(this.selectors.SKU).html(variant.sku)},_updateBundleHiddenInputId:function(evt){var variant=evt.variant;var variantId=variant.id;$(this.selectors.bundleHiddenIdInput).val(variantId)},_updateTitle:function(evt){var variant=evt.variant;var variant_id=variant.id;if(!this.variantSingleObject)return;var variant_data=this.variantSingleObject.variant_data;var variant_meta_title;_.each(variant_data,function(i,val){if(i.id==variant_id){variant_meta_title=i.variant_metafield_title}});$(this.selectors.title).html(variant_meta_title)},_updateOriginUrl:function(evt){var variant_id=evt.variant.id;let origin_url_input=$("input#originUrl");origin_url_input.val(window.location.pathname+"?variant="+variant_id)},_convertToCurrency:function(itemPrice,reg){return theme.Currency.formatMoney(itemPrice,currencyFormat.shopifyMoneyFormat).replace(reg,"")},getCurrentProductOptions(data){return{id:_.filter(data,item=>item.name.includes("id"))[0].value,quantity:Number(_.filter(data,item=>item.name.includes("quantity"))[0].value)||1}},getTagProp(data){let itemsData=_.filter(data,item=>item.name.includes("_tag_prop"))[0];return itemsData==void 0?"":itemsData.value},getSanitizedVariantData(data){return _.chain(data).map(item=>null).filter(Boolean).value()},setAddingState(container){container.closest(".product-card").addClass("is-active");container.find('[type="submit"]').text("Adding to cart");this.renderWindowOverlay()},removeAddingState(container){container.closest(".product-card").removeClass("is-active");container.find('[type="submit"]').text(theme.strings.addToCartSuccess);this.removeWindowOverlay();setTimeout(()=>{container.find('[type="submit"]').text(theme.strings.addToCart)},1500)},renderWindowOverlay(){$("body").append(`
        <div class="window-overlay">
          <div class="loader">
            <div class="line-spin-fade-loader">
              <div></div>
              <div></div>
              <div></div>
              <div></div>
              <div></div>
              <div></div>
              <div></div>
              <div></div>
            </div>
          </div>
        </div>
      `)},removeWindowOverlay(){if($(".window-overlay")){$(".window-overlay").remove()}},onUnload:function(){this.$container.off(this.settings.namespace)}});return Product})();slate.Variants=(function(){function Variants(options){this.$container=options.$container;this.product=options.product;this.productForm=options.productForm;this.singleOptionSelector=options.singleOptionSelector;this.originalSelectorId=options.originalSelectorId;this.enableHistoryState=options.enableHistoryState;this.currentVariant=this._getVariantFromOptions();this.updateSelectors=".cart-ajax__quantity-increment";this.quantitySelector=".product-form__quantity-increment, .cart-ajax__quantity-increment";$(this.singleOptionSelector).on("change",this._onSelectChange.bind(this));$(this.productForm).ready(this._onSwatchLoad.bind(this));$(this.productForm).on("submit",this._onFormSubmit.bind(this))}Variants.prototype=_.assignIn({},Variants.prototype,{_getCurrentOptions:function(){var currentOptions=_.map($(this.singleOptionSelector,this.$container),function(element){var $element=$(element);var type=$element.attr("type");var currentOption={};if(type==="radio"||type==="checkbox"){if($element[0].checked){currentOption.value=$element.val();currentOption.index=$element.data("index");currentOption.title=$element.find("option:selected").attr("data-title");return currentOption}else{return false}}else{currentOption.value=$element.val();currentOption.index=$element.data("index");currentOption.title=$element.find("option:selected").attr("data-title");return currentOption}});currentOptions=_.compact(currentOptions);return currentOptions},_getVariantFromOptions:function(){var selectedValues=this._getCurrentOptions();var variants=this.product.variants;var found=_.filter(variants,function(variant){return selectedValues.every(function(values){return variant[values.index]==values.value&&variant.name.includes(values.title)})});var foundVariant=found[0];return foundVariant},_onFormSubmit:function(evt){evt.preventDefault();this.$container.trigger({type:"formSubmit",target:evt.currentTarget})},_onSwatchLoad:function(evt){},_onSelectChange:function(){var variant=this._getVariantFromOptions();let bundle_img_data=$(".bundle-variant__img_data")||{};this.$container.trigger({type:"variantChange",variant});if(!variant){return}this._updateAttr(variant);this._updateBTF(variant);this._updateMasterSelect(variant);this._updateImages(variant,bundle_img_data);this._updateImageGallery(variant);this._updateBundleProps(variant);this._updatePrice(variant);this._updateSKU(variant);this._updateBundleHiddenInputId(variant);this._updateSwatches(variant);this._updateTitle(variant);this._updateOriginUrl(variant);this.currentVariant=variant;if(this.enableHistoryState){this._updateHistoryState(variant)}},_updateAttr:function(variant){this.$container.trigger({type:"variantAttrChange",variant})},_updateBTF:function(variant){this.$container.trigger({type:"variantBTFChange",variant})},_updateImages:function(variant,bundle_img_data){let variantImage;var currentVariantImage=this.currentVariant.featured_image||{};if(!variant.featured_image){_.each(bundle_img_data,function(bundle_img_item){let bundle_img_data_var_id=$(bundle_img_item).data("var-id");if(bundle_img_data_var_id==variant.id){let bundle_img_data_fimg=$(bundle_img_item).data("prod-fimg");variantImage=bundle_img_data_fimg}})}else if(variant.featured_image.src===currentVariantImage.src){return}else{variantImage=variant.featured_image||{}}this.$container.trigger({type:"variantImageChange",currentVariantImage,newVariantImage:variantImage})},_updateImageGallery:function(variant){this.$container.trigger({type:"variantImageGalleryChange",variant})},_updateBundleProps:function(variant){this.$container.trigger({type:"variantBundlePropsChange",variant})},_updatePrice:function(variant){if(variant.price===this.currentVariant.price&&variant.compare_at_price===this.currentVariant.compare_at_price){return}this.$container.trigger({type:"variantPriceChange",variant})},_updateSKU:function(variant){if(variant.sku===this.currentVariant.sku){return}this.$container.trigger({type:"variantSKUChange",variant})},_updateBundleHiddenInputId:function(variant){this.$container.trigger({type:"variantBundleHiddenInputChange",variant})},_updateSwatches:function(variant){this.$container.trigger({type:"variantSwatchUpdate",variant})},_updateTitle:function(variant){if(variant.title===this.currentVariant.title&&variant.id===this.currentVariant.id){return}this.$container.trigger({type:"variantTitleChange",variant})},_updateSwatches:function(variant){this.$container.trigger({type:"variantSwatchUpdate",variant})},_updateOriginUrl:function(variant){this.$container.trigger({type:"variantOriginUrlUpdate",variant})},_updateHistoryState:function(variant){if(!history.replaceState||!variant){return}var newurl=window.location.protocol+"//"+window.location.host+window.location.pathname+"?variant="+variant.id;window.history.replaceState({path:newurl},"",newurl)},_updateMasterSelect:function(variant){$(this.originalSelectorId,this.$container).val(variant.id)}});return Variants})();window.theme=window.theme||{};theme.HeaderSection=(function(){theme.accountDropdown.init();theme.Reviews.init();theme.NewLogins.init()})();window.sideMenuActiveToggleEl="";document.addEventListener("DOMContentLoaded",function(){var sections=new theme.Sections;sections.register("header-section",theme.HeaderSection);sections.register("product",theme.Product);sections.register("product",theme.ProductVarLoad);sections.register("collection-template",theme.Filters);sections.register("product-template",theme.Product);sections.register("cart-template",theme.Cart);sections.register("modal",theme.ExitIntent)});theme.init=function(){window.isIE11=!!window.MSInputMethodContext&&!!document.documentMode;theme.customerTemplates.init();slate.rte.wrapTable();slate.rte.iframeReset();slate.a11y.pageLinkFocus($(window.location.hash));$(".in-page-link").on("click",function(evt){slate.a11y.pageLinkFocus($(evt.currentTarget.hash))});$('a[href="#"]').on("click",function(evt){evt.preventDefault()});$(document).on("click",".read-more",function(e){const $btn=$(this);e.preventDefault();$(".more-questions").slideToggle("3000",function(){$btn.text($(this).is(":visible")?"Show Less":"Read More")})});$("[data-last-el]").each(function(){const $lastEl=$(this);const name2=$lastEl.data("last-el");const $firstEl=$('[data-first-el="'+name2+'"]');const $lastElBackwards=$('[data-last-el-backwards="'+name2+'"]');if($firstEl.length>0){$lastEl.on("focus",function(e){e.preventDefault();$firstEl.trigger("focus")});$firstEl.on("blur",function(e){e.preventDefault();if(e.shiftKey&&e.keyCode===9){$lastElBackwards.trigger("focus")}});if($lastElBackwards.length>0){$lastElBackwards.on("focus",function(e){e.preventDefault();const $focusEls=$lastElBackwards[0].closest("[data-focus-trap]").querySelectorAll("a, button");if($focusEls.length<1)return;const $lastContentEl=$focusEls[$focusEls.length];if($lastContentEl&&$lastContentEl.length<1)return;$lastContentEl.focus()})}}});window.addEventListener("keydown:shift+tab",function(){if(!document.activeElement.hasAttribute("data-first-el"))return;const name2=document.activeElement.dataset.firstEl;const $lastEl=$('[data-last-el-backwards="'+name2+'"]');if($lastEl.length===0)return;$lastEl.trigger("focus")});window.addEventListener("keyup",function(event){if(event.which===27)window.dispatchEvent(new Event("keyup:escape"));if(event.shiftKey)window.dispatchEvent(new Event("keyup:shift"));if(event.keyCode===9)window.dispatchEvent(new Event("keyup:tab"));if(event.shiftKey&&event.keyCode===9)window.dispatchEvent(new Event("keyup:shift+tab"))});window.addEventListener("keydown",function(event){if(event.which===27)window.dispatchEvent(new Event("keydown:escape"));if(event.shiftKey)window.dispatchEvent(new Event("keydown:shift"));if(event.keyCode===9)window.dispatchEvent(new Event("keydown:tab"));if(event.shiftKey&&event.keyCode===9)window.dispatchEvent(new Event("keydown:shift+tab"))});onResize();menuToggle();const $html=$("html");function menuClose2(name2,$el,activeClass){activeClass=typeof activeClass!=="undefined"?activeClass:name2+"--active";$el=typeof $el!=="undefined"?$el:$('[data-side-menu-toggle="'+name2+'"]');$html.removeClass(activeClass);$html.data("side-menu-active","");window.dispatchEvent(new CustomEvent("side-menu:close",{"detail":{"name":name2}}));setTimeout(function(){const $menu=document.querySelector(`[data-side-menu="${name2}"]`);if($menu)bodyScrollLock.enableBodyScroll($menu);$html.removeClass("slideout-menu--active");$el.removeClass("active");$('[data-side-menu-show-at-open="'+name2+'"]').hide();if(window.sideMenuActiveToggleEl)window.sideMenuActiveToggleEl.focus();document.body.style.setProperty("top","");window.sideMenuActiveToggleEl="";window.dispatchEvent(new CustomEvent("side-menu:closed",{"detail":{"name":name2}}));const $toggleDisplay=document.querySelector('[data-menu-display-toggle="'+name2+'"]');if($toggleDisplay){requestAnimationFrame(function(){$toggleDisplay.style.display="none"})}},300)}window.menuClose=menuClose2;function closeOnEscape(){window.addEventListener("keyup:escape",function(){const activeMenu=$("html").data("side-menu-active");if(activeMenu&&activeMenu!==""&&typeof menuClose2==="function")menuClose2(activeMenu)})}closeOnEscape();function menuOpen(name2,$el,activeClass){let y=window.scrollY;if($("body").is(".template-cart")){location.reload()}activeClass=typeof activeClass!=="undefined"?activeClass:name2+"--active";$el=typeof $el!=="undefined"?$el:$('[data-side-menu-toggle="'+name2+'"]');$el.addClass("active");const open=function(){window.dispatchEvent(new CustomEvent("side-menu:before-open",{"detail":{"name":name2}}));$('[data-side-menu-show-at-open="'+name2+'"] ').show();setTimeout(function(){$html.addClass(activeClass).addClass("slideout-menu--active");$el.each(function(){const el=$(this);if(window.sideMenuActiveToggleEl===""&&el.is(":visible")){window.sideMenuActiveToggleEl=el}});$html.data("side-menu-active",name2);const $focusOverride=$(`[data-side-menu-focus="${name2}"]`);const $focusEl=$focusOverride.length>0?$focusOverride:$(`[data-first-el="${name2}"]`);if($focusEl)$focusEl.trigger("focus");const $menu=document.querySelector(`[data-side-menu="${name2}"]`);if($menu)bodyScrollLock.disableBodyScroll($menu);document.body.style.setProperty("top",`${y*-1}px`);window.dispatchEvent(new CustomEvent("side-menu:open",{"detail":{"name":name2}}));setTimeout(function(){window.dispatchEvent(new CustomEvent("side-menu:opened",{"detail":{"name":name2}}))},300)},100)};const $toggleDisplay=document.querySelector('[data-menu-display-toggle="'+name2+'"]');if($toggleDisplay){$toggleDisplay.style.display="block";requestAnimationFrame(function(){open()})}else{open()}}window.menuOpen=menuOpen;function menuToggle(){$("body").on("click","[data-side-menu-toggle]",function(e){const name2=$(this).data("side-menu-toggle");if($(".nav-menu--active").length&&name2!=="nav-menu")return;e.preventDefault();if($html.hasClass(name2+"--active")){menuClose2(name2)}else{menuOpen(name2)}})}function onResize(){var resizeTimer;$(window).on("resize",function(){clearTimeout(resizeTimer);document.documentElement.classList.add("resizing");resizeTimer=setTimeout(function(){resizeEnd()},250)})}function resizeEnd(){document.documentElement.classList.remove("resizing")}};$(theme.init);
</script>

  

  

  <div role="region" aria-label="Nosto Tagging Container">
    
      <div class="nosto_page_type" style="display:none">front</div>
    

    

    

    

    

    
      <div class="nosto_external_visit_ref" style="display:none"></div>
      <script type="text/javascript">
        var ctoken = (document.cookie.match('(^|; )cart=([^;]*)')||0)[2];
        if (ctoken) {document.getElementsByClassName('nosto_external_visit_ref')[0].textContent = ctoken;}
      </script>
      <div class="nosto_cart" style="display:none">
        
        
        
      </div>
    

    

    
  </div>
  <script>
  // add missing title attributes to iframe and remove height and width attributes and set inline
  window.addEventListener('load', function() {
    var setIframeTitles = function() {
      var iframes = document.querySelectorAll( 'iframe' );

      if (!iframes) return;

      iframes.forEach(function(iframe) {
        if (iframe.hasAttribute('title') && iframe.getAttribute('title') !== '') return;

        const namespace = iframe.hasAttribute('src') && iframe.getAttribute('src').indexOf('pay.google') > -1 ? 'Google Pay' : (iframe.classList.contains('visually-hidden') ? 'Hidden' : iframe.getAttribute('id'));
        iframe.setAttribute( 'title', (namespace || 'Unknown') + ' Iframe' );
        iframe.setAttribute( 'style', 'height: 0; width: 0;' + (iframe.getAttribute('style') || '') );
        iframe.removeAttribute( 'height' );
        iframe.removeAttribute( 'width' );
      });
    }
    setIframeTitles();

    setTimeout(function() {
      setIframeTitles();
    }, 500);
  });

  // close userway api and trigger open with keyboard tab skipLink
  

  // toggle userway a11y widget
  const $a11yWidgetToggle = document.querySelectorAll('[data-toggle-accessibility-widget-header], [data-toggle-accessibility-widget], a[href="#accessibility-menu"]');
  const adaMenuNotReadyAlertEl = document.querySelector('[data-ada-menu-not-ready-alert]');
  $a11yWidgetToggle.forEach(function(el) {
    el.addEventListener('click', function(e) {
      e.preventDefault();
      if (typeof UserWay !== 'undefined') {
        /* open UserWay widget */
        UserWay.widgetToggle();
      } else {
        /* UserWays not loaded yet, alert the user */
        adaMenuNotReadyAlertEl?.classList.remove('hide');
        setTimeout(() => {
          adaMenuNotReadyAlertEl?.classList.add('hide');
        }, 5000);
        document.addEventListener('userway:init_completed', function(event) {
          /* UserWays loaded, open widget */
          UserWay.widgetToggle();
        });
      }
    });
  });
</script><script>(function(d){var s = d.createElement("script");s.setAttribute("data-account", "fKfRpf9iQr");s.setAttribute("src", "https://accessibilityserver.org/widget.js");(d.body || d.head).appendChild(s);})(document)</script><noscript>Please ensure Javascript is enabled for purposes of <a href="https://accessibilityserver.org">website accessibility</a>
</noscript>



  
    


<script>
  var kCloudUrl ='//eucs7v2.ksearchnet.com/cs/v2/search';
  var kApi = 'klevu-15283637748508051';
</script>

<script type="yo/sequence/defer/1" data-yo-src="//js.klevu.com/klevu-js-v2/2.3.2/klevu.js" defer="defer"></script>
<script type="yo/sequence/defer/1" data-yo-src="//www.bulletproof.com/cdn/shop/t/617/assets/klevu-merge.min.js?v=86955975556619365391784049788" defer="defer"></script>
    
<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>

<script>
 if ('') {
    klaviyo.identify({
      email: ''
    });
  }
  function trackKlaviyoProduct(event, product, quantityAdded = 1) {
    const item = {
      ProductName: product.title,
      ProductID: product.id,
      SKU: product.variants[0].sku,
      VariantID: product.variants[0].id,
      ImageURL: `https:${product.featured_image}`,
      URL: `${location.origin}/products/${product.handle}`,
      Price: theme.Currency.formatMoney(product.price, '${{amount}}'),
      CompareAtPrice: product.compare_at_price ? theme.Currency.formatMoney(product.compare_at_price, '${{amount}}') : null,
      Brand: product.vendor,
      QTY: parseInt(quantityAdded)
    }
    klaviyo.track(event, item)

    if(event === 'Added to Cart') {
      if(typeof(geq) !== 'undefined') {
        if (typeof(OnetrustActiveGroups) !== 'undefined' && OnetrustActiveGroups.includes('C0004')) {
          item.event_consent = true
        } else {
          item.event_consent = false
        }

        geq.event('Added to Cart Reclaim', item);
      }
    }

    if(event === 'Viewed Product') {
      const viewedItem = {
        Title: item.ProductName,
        ItemId: item.ProductID,
        ImageUrl: item.ImageURL,
        Url: item.URL,
        Metadata: {
          Brand: item.Brand,
          Price: item.Price,
          CompareAtPrice: item.CompareAtPrice
        }
      }
      klaviyo.trackViewedItem(viewedItem)

      if(typeof(geq) !== 'undefined') {
        if (typeof(OnetrustActiveGroups) !== 'undefined' && OnetrustActiveGroups.includes('C0004')) {
          item.event_consent = true
        } else {
          item.event_consent = false
        }

        geq.event('Viewed Product Reclaim', item);
      }
    }
  }
  function trackKlaviyoCollection(event, collection) {
    const item = {
      CategoryName: collection.title,
      CategoryURL: `${location.origin}/collections/${collection.handle}`
    }
    klaviyo.track(event, item)
  }
  function trackKlaviyoSearch(event, item) {
    klaviyo.track(event, item)
  }

  

  
</script>
<script type="text/javascript" defer>
document.addEventListener('DOMContentLoaded', function() {
  jQuery(function ($) {
    function validate(form) {
      return /^[^@]+@[^@]+\.[^@]+$/.test(form.find('[name="hide-e-mail"]').val());
    }
    function showError(form) {
      form.after(
        '\
            <p id="k-val" data-error>\
                There was a problem signing you up. Please check your email and try again.\
            </p>\
        '
      );
      return false
    }
    $(document).on('submit', '.email-signup-form', function(e) {
      e.preventDefault();
      e.stopPropagation();
      var $form = $(this);
      var $nostoform = false;
      if ($form.is('[data-nosto-signup]')) {
        $nostoform = true;
      }
      $form.parent().find("[data-error]").remove();
      if (!validate($form)) {
        return showError($form);
      }

      var email = $form.find('[name="hide-e-mail"]').val();
      var su_src = $form.find('[name="signup_current_source"]').val();
      var success_url = $form.find('[name="success_url"]').val();
      var fields = $form.find('[name="fields"]').val();
      var hp_nm = $form.find('[name="name"]').val();
      var hp_em = $form.find('[name="email"]').val();
      var settings = {
        "async": true,
        "crossDomain": true,
        "url": "https://manage.kmail-lists.com/ajax/subscriptions/subscribe",
        "type": "POST",
        "headers": {
        "content-type": "application/x-www-form-urlencoded",
        "cache-control": "no-cache"
        },
        data: {
        "g": "VQLVkS",
        "$fields": fields+",signup_current_date,refurl,sourceurl,hp_nm,hp_em,$source",
        "email": email,
        "signup_current_source": su_src,
        "signup_current_date": "2026-09-22 15:29",
        "refurl": document.referrer,
        "sourceurl": document.URL,
        "hp_nm": hp_nm,
        "hp_em": hp_em,
        "$source": "Front End Form"
        }
      }
      $submit = $.ajax(settings);

      if ($nostoform == true) {
        $submit.done(function (response) {
          if (!'') {
            klaviyo.identify({
              email: email
            })
          }
          $( "[data-nosto-success-modal]" ).fadeIn();
        }).fail(function (response) {
          return showError();
        });
        return false;
      } else {
        $submit.done(function (response) {
          if (!'') {
            klaviyo.identify({
              email: email
            })
          }
          window.location.assign(success_url);
        }).fail(function (response) {
          return showError();
        });
        return false;
      }
    });
  });

  // Watch for add to cart events to send to Klaviyo
  $(document).on('AjaxAddToCart', function(e) {
    // Grab the data of the product that was just added
    if('response' in e && 'handle' in e.response) {
      let quantityAdded = 1;
      if('quantityAdded' in e.response) {
        quantityAdded = e.response.quantityAdded;
      }

      $.ajax(`/products/${e.response.handle}?view=json`).then(resp => {
        const product = JSON.parse(resp)
        trackKlaviyoProduct('Added to Cart', product, quantityAdded)
      })
    }
  })

  let searchDebounce = null,
      searchValue = null;
  $(document).on('change keyup input', '#SearchMenuInput', function(e) {
    clearTimeout(searchDebounce)
    searchDebounce = setTimeout(() => {
      const value = $('#SearchMenuInput').val()
      if(value && value !== searchValue) {
        trackKlaviyoSearch('Searched Site', {SearchTerm: value})
        searchValue = value
      }
    }, 750)
  })
});
</script>

  

  

  



  <script>
    for(const [key, value] of Object.entries(window.localStorage)) {
      if(key.includes('CognitoIdentityServiceProvider')) {
        if(key.includes('LastAuthUser')) {
          window.localStorage.removeItem(key);
        }
      }

      window.localStorage.removeItem('storefrontUserId');
    }
  </script>

<div id="global-subscription-modal"><script>
const SkioUpsellPlanPicker = {
  template: '#skio-upsell-plan-picker',
  name: 'SkioUpsellPlanPicker',
  delimiters: ['${', '}'],

  props: {
    product: { type: Object, default: null },
    selectedVariant: { type: Object, default: null },
    hideSubscription: { type: Boolean, default: false },
    discontinued: { type: Boolean, default: false },
    startOnetime: { type: Boolean, default: true },
    discountFormat: { type: String, default: 'percent' },
    keyName: { type: String, default: null },
    oneTimeDiscount: { type: Number, default: null },
    skioRulesTiers: { type: Array, default: () => [] },
    hideOnetime: { type: Boolean, default: true }
  },

  data() {
    return {
      key: null,
      skio_selling_plan_groups: null,
      selected_selling_plan_group: null,
      subscriptionItemsInCart: 0,
      cartUpdatedHandler: null,
      cartAjaxUpdatedHandler: null,
      moneyFormatter: new Intl.NumberFormat('en-US', {
        style: 'currency',
        currency: 'USD'
      }),
    }
  },

  computed: {
    availableSellingPlanGroups() {
      if (!this.selectedVariant || !this.selectedVariant.selling_plan_allocations) return []
      return this.skio_selling_plan_groups.filter(selling_plan_group =>
        selling_plan_group.selling_plans.some(selling_plan =>
          this.selectedVariant.selling_plan_allocations.some(
            selling_plan_allocation => selling_plan_allocation.selling_plan_id === selling_plan.id
          )
        )
      )
    },

    getSellingPlans() {
      const selling_plans = []

      if (!this.product || !this.product.selling_plan_groups) return selling_plans

      this.product.selling_plan_groups.forEach(group => {
        if (group.app_id !== 'SKIO') return

        group.selling_plans.forEach(selling_plan => {
          selling_plans.push({
            group_id: group.id,
            selling_plan_id: selling_plan.id
          })
        })
      })

      return selling_plans
    },
    normalizedSkioTiers() {
      if (!Array.isArray(this.skioRulesTiers)) return []

      return this.skioRulesTiers
        .map(tier => ({
          productCount: Number(tier && tier.productCount),
          discount: Number(tier && tier.discount),
        }))
        .filter(tier => Number.isFinite(tier.productCount) && tier.productCount > 0 && Number.isFinite(tier.discount))
        .sort((a, b) => a.productCount - b.productCount)
    },
    effectiveSubscriptionItemCount() {
      return this.subscriptionItemsInCart + 1
    },
    activeTier() {
      if (!this.normalizedSkioTiers.length) return null

      const fallbackTier = this.normalizedSkioTiers[0]
      return this.normalizedSkioTiers
        .filter(tier => tier.productCount <= this.effectiveSubscriptionItemCount)
        .reduce((maxTier, tier) => (tier.productCount > maxTier.productCount ? tier : maxTier), fallbackTier)
    },
    activeTierDiscountPercent() {
      return this.activeTier ? this.activeTier.discount : 0
    }
  },

  methods: {
    selectSellingPlanGroup(group) {
      this.selected_selling_plan_group = group
    },

    money(price) {
      return this.moneyFormatter.format(price / 100.0)
    },

    baseComparePriceCents() {
      return this.selectedVariant.compare_at_price > this.selectedVariant.price ? this.selectedVariant.compare_at_price : this.selectedVariant.price
    },

    subscriptionItemCountFromCart(cart) {
      if (!cart || !Array.isArray(cart.items)) return 0
      return cart.items.reduce((count, item) => {
        const isSubscription = Boolean(item && (item.selling_plan_allocation || item.selling_plan))
        if (!isSubscription) return count
        return count + Number(item.quantity || 0)
      }, 0)
    },

    setSubscriptionCountFromCart(cart) {
      this.subscriptionItemsInCart = this.subscriptionItemCountFromCart(cart)
    },

    refreshSubscriptionCount() {
      // Reuse the shared Cart module so every plan picker + the drawer share a
      // single /cart.js request instead of each fetching its own on load.
      if (window.Cart && window.Cart.state && Array.isArray(window.Cart.state.items)) {
        this.setSubscriptionCountFromCart(window.Cart.state)
        return
      }

      if (window.Cart && typeof window.Cart.fetch === 'function') {
        window.Cart.fetch()
          .then(cart => this.setSubscriptionCountFromCart(cart))
          .catch(() => {})
        return
      }

      fetch('/cart.js', {
        credentials: 'same-origin',
        headers: { 'Accept': 'application/json' },
      })
        .then(response => response.json())
        .then(cart => this.setSubscriptionCountFromCart(cart))
        .catch(() => {})
    },

    discount(selling_plan_group) {
      if (!selling_plan_group || selling_plan_group.name !== 'Subscription')
        return { percent: '0%', amount: 0 }
      const discount = { percent: '0%', amount: 0 }
      const comparePrice = this.baseComparePriceCents()
      const discountPercent = this.activeTierDiscountPercent
      discount.percent = `${discountPercent}%`
      discount.amount = Math.floor((comparePrice * discountPercent) / 100.0)
      return discount
    },

    price(selling_plan_group, formatted = true) {
      const compareAt = this.baseComparePriceCents()
      const price = compareAt - this.discount(selling_plan_group).amount

      return formatted
        ? this.money(price)
        : price
    },

    emitSubscriptionUpdate() {
      if (!this.selected_selling_plan_group) {
        this.$emit('subscription-update', false);
        return;
      }
      this.$emit('subPriceUpdate', this.price(this.selected_selling_plan_group, false))
      this.$emit('subscription-update', {
        selling_plan: this.selected_selling_plan_group.selected_selling_plan,
        price: this.price(this.selected_selling_plan_group)
      });
    },

    log() {
      var args = Array.prototype.slice.call(arguments);
      args.unshift('%c[skio]', 'color: #8770f2;');
      console.log.apply(console, args);
    },

    error() {
      var args = Array.prototype.slice.call(arguments);
      args.unshift('%c [skio]', 'color: #ff0000');
      console.log.apply(console, args);
    }
  },

  watch: {
    selected_selling_plan_group() {
      this.emitSubscriptionUpdate();
    },

    'selected_selling_plan_group.selected_selling_plan'() {
      if(!this.selected_selling_plan_group) return;
      this.log(this.selected_selling_plan_group.selected_selling_plan)
      this.emitSubscriptionUpdate();
    },

    activeTierDiscountPercent() {
      if (!this.selected_selling_plan_group) return;
      this.emitSubscriptionUpdate();
    },

    product() {
      this.log(this.product.title);

      // Skio selling plan groups
      this.skio_selling_plan_groups = this.product.selling_plan_groups.filter(
        selling_plan_group => selling_plan_group.app_id === 'SKIO'
      )

      this.log('Selling Plan Groups', this.skio_selling_plan_groups);

      if(this.selected_selling_plan_group) {
        this.selectSellingPlanGroup(this.skio_selling_plan_groups[0]);
      } else {
        this.selected_selling_plan_group = null;
      }

      // Added property to track selected selling plan in each groups
      this.skio_selling_plan_groups.forEach(group => {
        this.$set(group, 'selected_selling_plan', group.selling_plans.find(selling_plan => selling_plan.name.includes('recommended')))
      });
    }
  },

  async created() {
    this.log('Created');
    this.log('Product', this.product);
    this.log('Selected Variant', this.selectedVariant);

    this.key = this.keyName;

    // Skio selling plan groups
    this.skio_selling_plan_groups = this.product.selling_plan_groups.filter(
      selling_plan_group => selling_plan_group.app_id === 'SKIO'
    )

    this.log('Selling Plan Groups', this.skio_selling_plan_groups);

    // Added property to track selected selling plan in each groups
    this.skio_selling_plan_groups.forEach(group => {
      this.$set(group, 'selected_selling_plan', group.selling_plans.find(selling_plan => selling_plan.name.includes('recommended')))
    });

    if(!this.startOnetime || this.hideOnetime) {
      this.selectSellingPlanGroup(this.skio_selling_plan_groups[0]);
      this.emitSubscriptionUpdate();
    }

    this.refreshSubscriptionCount()
    this.cartUpdatedHandler = e => this.setSubscriptionCountFromCart(e.detail && e.detail.cart ? e.detail.cart : e.detail)
    this.cartAjaxUpdatedHandler = () => this.refreshSubscriptionCount()
    window.addEventListener('cart:updated', this.cartUpdatedHandler)
    window.addEventListener('cart:fetched', this.cartUpdatedHandler)
    window.addEventListener('cart-ajax:update', this.cartAjaxUpdatedHandler)
    window.addEventListener('cart-ajax:update-and-open', this.cartAjaxUpdatedHandler)
  },

  beforeDestroy() {
    if (this.cartUpdatedHandler) {
      window.removeEventListener('cart:updated', this.cartUpdatedHandler)
      window.removeEventListener('cart:fetched', this.cartUpdatedHandler)
    }
    if (this.cartAjaxUpdatedHandler) {
      window.removeEventListener('cart-ajax:update', this.cartAjaxUpdatedHandler)
      window.removeEventListener('cart-ajax:update-and-open', this.cartAjaxUpdatedHandler)
    }
  }
}
</script>

<template id="skio-upsell-plan-picker">
  <fieldset v-if="product && !hideSubscription && !discontinued && product.available" class="skio-plan-picker">
    <input v-if="selected_selling_plan_group" type="hidden" name="selling_plan" v-model="selected_selling_plan_group.selected_selling_plan.id" />

    <!-- ONETIME -->
    <div
      v-if="!product.requires_selling_plan && !hideOnetime"
      class="skio-group-container skio-group-container--available"
      :class="{
        'skio-group-container--selected': selected_selling_plan_group == null,
        'skio-group-container--first': startOnetime
      }"
    >

      <input
        :id="`skio-one-time-${key}`"
        class="skio-group-input"
        :name="`skio-group-${key}`"
        type="radio"
        :value="null"
        v-model="selected_selling_plan_group"
      />

      <label class="skio-group-label" :for="`skio-one-time-${key}`">
        <div class="skio-group-topline">
          <div class="skio-radio__container">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
              <circle cx="12" cy="12" r="10" stroke="currentColor" stroke-width="1"></circle>
              <circle class="skio-radio" cx="12" cy="12" r="6" fill="currentColor"></circle>
            </svg>
          </div>

          <div class="skio-group-title">
            Get One-Time
          </div>

          <div class="skio-save" v-if="oneTimeDiscount">Save ${ oneTimeDiscount }%</div>

          <div class="skio-price-wrapper">
            <div class="skio-compare-at-price" v-if="oneTimeDiscount">${ money(selectedVariant.price) }</div>
            <div class="skio-compare-at-price" v-else-if="selectedVariant.compare_at_price">${ money(selectedVariant.compare_at_price) }</div>

            <div v-if="oneTimeDiscount" class="skio-price skio-price-discounted">
              ${ money(selectedVariant.price * (1 - (oneTimeDiscount / 100))) }
            </div>

            <div v-else class="skio-price"
                :class="{ 'skio-price-discounted': selectedVariant.compare_at_price > selectedVariant.price || oneTimeDiscount }">
              ${ money(selectedVariant.price) }
            </div>
          </div>
        </div>
      </label>
    </div>

    <!-- SUBSCRIPTIONS -->
    <div
      v-for="(group, index) in availableSellingPlanGroups"
      :key="group.id"
      class="skio-group-container skio-group-container--available"
      :class="{
        'skio-group-container--selected':
        selected_selling_plan_group && selected_selling_plan_group.id === group.id,
        'skio-group-container--first': !startOnetime
      }"
    >
      <input
        :id="`skio-selling-plan-group-${index}-${key}`"
        class="skio-group-input"
        :name="`skio-group-${key}`"
        type="radio"
        :value="group"
        v-model="selected_selling_plan_group"
      />

      <label class="skio-group-label" :for="`skio-selling-plan-group-${index}-${key}`">
        <div class="skio-group-topline">
          <div class="skio-radio__container">
            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
              <circle cx="12" cy="12" r="10" stroke="currentColor" stroke-width="1"></circle>
              <circle class="skio-radio" cx="12" cy="12" r="6" fill="currentColor"></circle>
            </svg>
          </div>

          <div class="skio-group-title">
            <div style="display: flex; align-items: center; gap: 6px;">
              Subscribe
            </div>
          </div>

          <div class="skio-save">Save ${discount(group).percent}</div>

          <div class="skio-price-wrapper">
            <div class="skio-compare-at-price">${ selectedVariant.compare_at_price > selectedVariant.price ? money(selectedVariant.compare_at_price) : money(selectedVariant.price) }</div>
            <div class="skio-price"
              :class="{ 'skio-price-discounted': selectedVariant.compare_at_price ? selectedVariant.compare_at_price > price(group, false) : selectedVariant.price > price(group, false) }">
              ${ price(group) }
            </div>
          </div>
        </div>

        <div class="skio-group-content">
          Skip, modify or cancel at any time
        </div>
      </label>
    </div>

    <div class="skio-additional-info">
      <p v-if="selected_selling_plan_group">By selecting <strong>Subscribe</strong> and clicking <strong>ADD TO ORDER</strong> below, you consent to add this item to your upcoming subscription order and that your subscription will automatically renew and your credit card will be automatically charged the subcsription price at the interval selected on each eligible line item until you cancel your subscription. Your credit card will be charged the day of the renewal. You can cancel your subscription at any time by clicking <a href="/a/account/subscriptions">here</a>, and can also find cancellation instructions by clicking the Subscribe & Save link in the main navigation. You accept and agree to the automatic terms and renewal terms of the service <a href="/a/account/subscriptions">here</a>, and can also find the terms by clicking the Subscribe & Save link in the main navigation.</p>
      <p v-else>By selecting <strong>Get One-Time</strong> and clicking <strong>ADD TO ORDER</strong> below, you consent to add this item to your upcoming subscription shipment and that your credit card will be charged the day of the renewal. You can manage or cancel your subscription at any time <a href="/a/account/subscriptions">here</a>.</p>
    </div>
  </fieldset>
</template>



<style>
  .skio-success-message {
    border: 1px solid #46af5c;
    padding: 1em;
    background: #e8f6ec;
    color: #383838;
    margin-top: 15px;
    margin-bottom: 10px;
  }
  .skio-success-message h6 {
    text-transform: uppercase;
    font-family: "Dosis", "Open Sans", arial, sans-serif;
    font-weight: 700;
  }
  .skio-success-message a {
    font-weight: 700;
    color: #f04c00;
  }
  .skio-success-message p {
    line-height: 1.4;
    margin: 0;
    margin-bottom: 4px;
  }
  .skio-backdrop {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background: rgba(0, 0, 0, 0.4);
    z-index: 1020;
  }
  .skio-modal-content {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: white;
    z-index: 1021;
    width: 100%;
    padding: 30px;
    max-width: 500px;
    max-height: 100vh;
    border-radius: 4px;
    text-align: left;
  }
  .skio-modal-content h3 {
    font-size: 1.6rem;
    margin-bottom: 20px;
  }
  .skio-modal-content p {
    line-height: 1.3;
  }
  .skio-modal-content p a {
    color: #f04c00;
    text-decoration: underline;
  }
  .skio-modal-content .skio-price-discounted {
    font-size: 1.6rem;
  }
  .skio-modal-content .btn--small {
    font-size:1.4rem;
    letter-spacing:0.06rem;
  }
  .skio-modal-header {
    display: flex;
    justify-content: flex-end;
    width: 100%;
  }
  .skio-date {
    border: 2px solid #f04c00;
    padding: 2px 10px;
    margin-left: 6px;
  }
  .skio-separator {
    position: relative;
    font-family: "Dosis", "Open Sans", arial, sans-serif;
    font-weight: 700;
    width: 100%;
    height: 1px;
    background: #f1edeb;
    margin: 2em 0;
  }
  .skio-separator:after {
    content: "OR";
    background: white;
    padding: 1em;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
  }

  .skio-upsell-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 2em 0 10px;
  }

  .skio-upsell-header a {
    font-size: 1.4rem;
    color: var(--orange);
    text-decoration: underline;
    font-size: 1.4rem;
    font-weight: 500;
  }

  .skio-upsell-header__title {
    --font-size: 1.2rem;
    --font-size-l: 1.4rem;
    --font-size-m: 1.4rem;
    color: #333;
    font-family: Dosis,'Open Sans',arial,sans-serif;
    font-weight: 700;
    letter-spacing: var(--letter-spacing,0.06rem);
    line-height: var(--line-height,20px);
    text-transform: uppercase;
  }

  .skio-upsell-box {
    display: flex;
    flex-direction: column;
    background-color: #e2c8b6;
    padding: 14px;
    margin-bottom: 10px;
  }

  .skio-upsell-box__header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 14px;
  }

  .skio-upsell-box__title {
    font-family: Fields, 'Open Sans', arial, sans-serif;
    font-size: 1.6rem;
    line-height:1.3;
    font-weight: 700;
  }

  .skio-upsell-box__subtitle {
    margin: 0;
  }

  .skio-upsell-box__badge {
    background-color: #f04c00;
    color: #fff;
    font-size: 1rem;
    padding: 3px 7px;
    font-family: Dosis, 'Open Sans', arial, sans-serif;
    font-weight: 700;
    text-transform:uppercase;
  }
  @media only screen and (min-width:769px) {
    .skio-modal-content h3 {
      font-size: 2rem;
      margin-bottom: 30px;
    }
    .skio-modal-content p {
      font-size:1.5rem;
    }
  }
  @media only screen and (max-width: 379px) {
    .skio-upsell-box__badge {
      display: none;
    }
  }

  @media only screen and (min-width: 375px) {
    .skio-upsell-box .btn-text--xs {
      display: none;
    }
  }

  @media only screen and (max-width: 374px) {
    .skio-upsell-box .btn-text--regular {
      display: none;
    }
  }

  @media only screen and (max-width: 389px) {
    .skio-modal-content {
      padding: 30px 20px;
    }

    .skio-modal-content .skio-radio__container {
      margin-right: 6px;
    }

    .skio-modal-content .skio-group-title {
      font-size: 15px;
      margin-right: 4px;
    }

    .skio-modal-content .skio-save {
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 1.4rem;
      padding: 5px 6px 4px;
      line-height: 1;
      margin-left: 4px;
    }

    .skio-modal-content .skio-compare-at-price,
    .skio-modal-content .skio-group-content,
    .skio-additional-info p{
      font-size: 1.3rem;
    }
  }
</style>

<template id="skio-upsell">
  <div class="skio-upsell" v-if="upcomingSubscription && eligible">
    <div v-show="!upsellAdded" class="skio-upsell-header">
      <div class="skio-upsell-header__title font-size">
        Purchase Options:
      </div>
      <a href="#learn-more-modal" data-learn-more-toggle="" v-if="learnMore == 'popup'">
        <span>Learn More</span>
      </a>
      <a :href="'/products/' + product.handle" target="_blank" v-else>
        <span>View Full Details</span>
      </a>
    </div>

    <div v-show="!upsellAdded" class="skio-upsell-box">
      <div class="skio-upsell-box__header">
        <div class="skio-upsell-box__content">
          <h3 class="skio-upsell-box__title">Add to Upcoming Subscription</h3>
          <p class="skio-upsell-box__subtitle">Next order on: <strong>${ formatDate(upcomingSubscription.nextBillingDate) }</strong></p>
        </div>
        <div class="skio-upsell-box__badge">
          Best Option
        </div>
      </div>
      <button @click="displayModal = true" class="btn btn--secondary" style="width: 100%;" type="button">
        <span class="btn-text--regular">Add to Next Order and Save</span>
        <span class="btn-text--xs">Add to Next Order</span>
      </button>
    </div>

    <div v-show="upsellAdded" class="skio-success-message">
      <h6>Added to your next order</h6>
      <p>This item will be included in your next subscription order shipment on <strong>${ formatDate(upcomingSubscription.nextBillingDate) }</strong></p>
      <a href="/a/account/subscriptions">View and manage my subscriptions -></a>
    </div>

    <div class="skio-modal" v-if="displayModal">
      <div class="skio-backdrop" @click="displayModal = false"></div>
      <div class="skio-modal-content">
        <div class="skio-modal-header">
          <button type="button" @click="displayModal = false">
            <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="bi bi-x" viewBox="0 0 16 16">
              <path d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z"/>
            </svg>
          </button>
        </div>

        <h3>Add to Upcoming Order <span class="skio-date">${ formatDate(upcomingSubscription.nextBillingDate) }</span></h3>

        <skio-upsell-plan-picker
          :key-name="'upsell'"
          :product="product"
          :selected-variant="product.variants[0]"
          :hide-subscription="hideSubscription"
          :hide-onetime="hideOnetime"
          :discontinued="discontinued"
          :start-onetime="true"
          :one-time-discount="10"
          :skio-rules-tiers='[{"productCount":1,"discount":10,"discountType":"PERCENTAGE"},{"productCount":2,"discount":15,"discountType":"PERCENTAGE"},{"productCount":3,"discount":20,"discountType":"PERCENTAGE"},{"productCount":4,"discount":25,"discountType":"PERCENTAGE"},{"productCount":5,"discount":30,"discountType":"PERCENTAGE"}]'
          @subscription-update="subscriptionUpdate">
        </skio-upsell-plan-picker>

        <button @click="addToOrder" type="button" class="btn btn--secondary btn--small" :disabled="addingItem">
          <template v-if="addingItem">Adding to order...</template>
          <template v-else>Add to Order</template>
        </button>

        <button type="button" @click="displayModal = false">Cancel</button>
      </div>
    </div>
  </div>
</template>

<script>
  var skio = {
    customer: false,
    clientId: null,
    storefrontUser: {
      id: null,
      idToken: {},
      refreshToken: {},
      accessToken: {}
    }
  };

  for(const [key, value] of Object.entries(window.localStorage)) {
    if(key.includes('CognitoIdentityServiceProvider')) {
      if(key.includes('idToken')) {
        skio.storefrontUser.idToken.key = key;
        skio.storefrontUser.idToken.value = value;
      }

      if(key.includes('accessToken')) {
        skio.storefrontUser.accessToken.key = key;
        skio.storefrontUser.accessToken.value = value;
      }

      if(key.includes('refreshToken')) {
        skio.storefrontUser.refreshToken.key = key;
        skio.storefrontUser.refreshToken.value = value;
      }

      skio.clientId = key.split('.')[1];
    }

    if(key === 'storefrontUserId') {
      skio.storefrontUser.id = value;
    }
  }

  const getCachedSubscription = () => {
    try {
      const cached = sessionStorage.getItem('skio_upcoming_subscription');
      return cached ? JSON.parse(cached) : null;
    } catch (error) {
      return null;
    }
  }

  // Track retry attempts to prevent infinite loops
  let tokenRefreshAttempts = 0;
  const MAX_TOKEN_REFRESH_ATTEMPTS = 3;

  const skioRequest = (data, token) => {
    return new Promise((resolve, reject) => {
      fetch(`https://graphql.skio.com/v1/graphql`, {
        method: 'POST',
        headers: {
          'Content-Type': 'application/json',
          'Authorization': 'Bearer ' + token,
          'userpoolid': 'us-west-2_ky2hNEMAZ',
          'region': 'us-west-2',
        },
        body: JSON.stringify(data)
      })
      .then((response) => response.json())
      .then(async (response) => {
        if(response.errors) {
          const isAuthError = response.errors[0].message == 'Invalid response from authorization hook' ||
                             response.errors[0].message == "Authentication hook unauthorized this request";

          if(isAuthError && tokenRefreshAttempts < MAX_TOKEN_REFRESH_ATTEMPTS) {
            tokenRefreshAttempts++;

            // Validate that we have the necessary data for token refresh
            if (!skio.clientId || !skio.storefrontUser.refreshToken.value) {
              reject(new Error('Cannot refresh tokens - missing clientId or refreshToken'));
              return;
            }

            try {
              const refreshResult = await getNewTokens(skio.clientId, skio.storefrontUser.refreshToken.value);
              if (refreshResult === true) {
                resolve(await skioRequest(data, skio.storefrontUser.idToken.value));
              } else {
                reject(new Error('Token refresh failed'));
              }
            } catch (error) {
              reject(error);
            }
          } else {
            if (tokenRefreshAttempts >= MAX_TOKEN_REFRESH_ATTEMPTS) {
              reject(new Error('Maximum token refresh attempts exceeded'));
            } else {
              reject(response.errors);
            }
          }
        } else {
          // Reset retry counter on successful request
          tokenRefreshAttempts = 0;
          resolve(response);
        }
      })
      .catch((error) => {
        reject(error);
      });
    });
  };

  const getNewTokens = async(client_id, refresh_token) => {
    let data = {
      AuthFlow: 'REFRESH_TOKEN_AUTH',
      AuthParameters: {
        REFRESH_TOKEN: refresh_token
      },
      ClientId: client_id
    };

    return fetch('https://cognito-idp.us-west-2.amazonaws.com/', {
      method: 'POST',
      headers: {
        'content-type': 'application/x-amz-json-1.1',
        'x-amz-target': 'AWSCognitoIdentityProviderService.InitiateAuth'
      },
      body: JSON.stringify(data),
    })
    .then((response) => response.json())
    .then((response) => {
      let accessToken = response.AuthenticationResult.AccessToken;
      let idToken = response.AuthenticationResult.IdToken;

      skio.storefrontUser.accessToken.value = accessToken;
      skio.storefrontUser.idToken.value = idToken;

      window.localStorage.setItem(skio.storefrontUser.accessToken.key, accessToken);
      window.localStorage.setItem(skio.storefrontUser.idToken.key, idToken);

      return true;
    })
    .catch((error) => {
      return error;
    })
  };

  const SkioUpsell = {
    template: '#skio-upsell',
    components: { SkioUpsellPlanPicker },
    delimiters: ['${', '}'],
    props: {
      product: { type: Object, default: null },
      selectedVariant: { type: Object, default: null },
      hideSubscription: { type: Boolean, default: false },
      discontinued: { type: Boolean, default: false },
      startOnetime: { type: Boolean, default: true },
      discountFormat: { type: String, default: 'percent' },
      skioRulesTiers: { type: Array, default: () => [] },
      learnMore: { type: String, default: 'popup' }
    },

    data() {
      return {
        displayModal: false,
        upcomingSubscription: null,
        eligible: false,
        selectedSellingPlan: null,
        upsellAdded: false,
        addingItem: false,
        hideOnetime: true
      }
    },

    methods: {
      log() {
        var args = Array.prototype.slice.call(arguments);
        args.unshift('%c[skio upsell]', 'color: #8770f2;');
        console.log.apply(console, args);
      },

      error() {
        var args = Array.prototype.slice.call(arguments);
        args.unshift('%c [skio upsell]', 'color: #ff0000');
        console.log.apply(console, args);
      },

      async getSubscriptions() {
        let data = {
          query: `query storefrontGetUpcomingSubscription($id: uuid!) {
            Subscriptions(where: {
              status: {
                _eq: "ACTIVE"
              }
              StorefrontUser: {
                id: {
                  _eq: $id
                }
              }
            }, order_by: {
              nextBillingDate: asc
            }, limit: 1) {
              id
              status
              nextBillingDate
              DeliveryPolicy {
                interval
                intervalCount
              }
            }
          }`,
          variables: {
            id: JSON.parse(skio.storefrontUser.id)
          }
        };

        return await skioRequest(data, skio.storefrontUser.idToken.value)
        .then((response) => {
          return response;
        })
        .catch((error) => {
          return error;
        });
      },

      async checkUpsellEligibility() {
        let skioSellingPlans = this.product.selling_plan_groups.filter(x => x.app_id == 'SKIO');
        if(skioSellingPlans.length) {
          this.eligible = true;
        }

        let data = {
          query: `query Products(
            $where: Product_bool_exp
          ) {
            Products(
              where: $where
            ) {
              canUpsell
            }
          }`,
          variables: {
            where: {
              "platformId": {
                "_eq": `gid://shopify/Product/${this.product.id}`
              }
            }
          }
        };

        return await skioRequest(data, skio.storefrontUser.idToken.value)
        .then((response) => {
          if(response?.data?.Products[0].canUpsell) {
            this.eligible = true;
            this.hideOnetime = false;
          } else {
            this.hideOnetime = true;
          }
        })
        .catch((error) => {
          this.log(error)
        });
      },

      async addToSubscription(subscriptionId, productVariantPlatformId, sellingPlanPlatformId, isOneTimeUpsell) {
        this.log(subscriptionId, productVariantPlatformId, sellingPlanPlatformId, isOneTimeUpsell)
        return new Promise(async (resolve, reject) => {
          let data = {
            query: `
            mutation storefrontEditSubscriptionLines(
              $input: EditSubscriptionLinesInput!
            ) {
              editSubscriptionLines(input: $input) {
                subscriptionId
              }
            }`,

            variables: {
              input: {
                subscriptionId,
                subscriptionLinesToCreate: [
                  {
                    productVariantPlatformId: `gid://shopify/ProductVariant/${ productVariantPlatformId }`,
                    quantity: 1,
                    sellingPlanPlatformId: `gid://shopify/SellingPlan/${ sellingPlanPlatformId }`,
                    isOneTimeUpsell,
                  }
                ]
              }
            }
          };

          return await skioRequest(data, skio.storefrontUser.idToken.value)
          .then((response) => {
            resolve(response);
          })
          .catch((error) => {
            reject(error);
          });
        });
      },

      async addToOrder() {
        this.addingItem = true;

        let isOneTimeUpsell = this.selectedSellingPlan == null ? true : false;

        await this.addToSubscription(this.upcomingSubscription.id, this.selectedVariant.id, this.selectedSellingPlan?.id, isOneTimeUpsell)
        .then((response) => {
          this.addingItem = false;
          this.displayModal = false;
          this.upsellAdded = true;

          let previouslyAddedProducts = window.sessionStorage.getItem('skio_upsell_added_products') || '';
          window.sessionStorage.setItem('skio_upsell_added_products', `${ previouslyAddedProducts }, ${ this.selectedVariant.id }`);
        })
        .catch((error) => {
          this.error(error);
        });
      },

      subscriptionUpdate(params) {
        if(params) {
          this.selectedSellingPlan = params.selling_plan;
        } else {
          this.selectedSellingPlan = null;
        }
      },

      formatDate(timestamp) {
        let date = new Date(timestamp);
        return `${ date.toLocaleString('en-US', { month: 'short' }) } ${ date.getDate() }, ${ date.getFullYear() }`
      }
    },

    watch: {
      product() {
        this.checkUpsellEligibility();
      },

      selectedVariant() {
        let previouslyAddedProducts = window.sessionStorage.getItem('skio_upsell_added_products') || '';
        if(previouslyAddedProducts.includes(this.selectedVariant.id)) {
          this.upsellAdded = true;
        } else {
          this.upsellAdded = false;
        }
      }
    },

    async created() {
      if(skio.customer && skio.storefrontUser.idToken.value && skio.storefrontUser.id) {
        this.upcomingSubscription = getCachedSubscription();
        this.checkUpsellEligibility();

        try {
          let upcomingSubscription = await this.getSubscriptions();
          this.upcomingSubscription = upcomingSubscription.data.Subscriptions[0];

          let previouslyAddedProducts = window.sessionStorage.getItem('skio_upsell_added_products') || '';
          if(previouslyAddedProducts.includes(this.selectedVariant.id)) {
            this.upsellAdded = true;
          }

          this.checkUpsellEligibility();
        } catch (error) {
          this.error('Failed to initialize Skio upsell component:', error);
          // Gracefully disable the component when authentication fails
          this.eligible = false;
        }

        document.addEventListener('keyup', (e) => {
          if (e.key === "Escape") {
            this.displayModal = false;
          }
        });
      } else {
        // Log why the component is not initializing
        if (!skio.customer) {
          this.log('Component not initialized - no customer session');
        } else {
          this.log('Component not initialized - missing authentication tokens');
        }
      }
    }
  }
</script>


<script>
const SkioPlanPicker = {
  template: '#skio-plan-picker',
  name: 'SkioPlanPicker',
  components: { SkioUpsell },
  delimiters: ['${', '}'],

  props: {
    product: { type: Object, default: null },
    selectedVariant: { type: Object, default: null },

    hideSubscription: { type: Boolean, default: false },
    discontinued: { type: Boolean, default: false },

    startOnetime: { type: Boolean, default: true },
    keyName: { type: String, default: null },
    skioRulesTiers: { type: Array, default: () => [] },

    onetimeDiscount: { type: Number, default: null },

    showInstantUpsell: { type: Boolean, default: true },
    showHeader: { type: Boolean, default: true },

    learnMore: { type: String, default: 'popup' },
  },

  data() {
    return {
      key: null,
      skio_selling_plan_groups: [],
      selected_selling_plan_group: null,
      subscriptionItemsInCart: 0,
      cartUpdatedHandler: null,
      cartAjaxUpdatedHandler: null,
      moneyFormatter: new Intl.NumberFormat('en-US', {
        style: 'currency',
        currency: 'USD'
      })
    }
  },

  computed: {
    promoAllowed() {
      const collectionDiscountAllowed = this.product?.collection_discount_allowed === 'true' ? true : false; // allow collection discount to override promo allowed
      return !this.product.tags.includes('exclude-promo') || collectionDiscountAllowed;
    },

    availableSellingPlanGroups() {
      if (!this.selectedVariant || !this.selectedVariant.selling_plan_allocations) return []
      return this.skio_selling_plan_groups.filter(selling_plan_group =>
        selling_plan_group.selling_plans.some(selling_plan =>
          this.selectedVariant.selling_plan_allocations.some(
            selling_plan_allocation => selling_plan_allocation.selling_plan_id === selling_plan.id
          )
        )
      )
    },

    getSellingPlans() {
      const selling_plans = []

      if (!this.product || !this.product.selling_plan_groups) return selling_plans

      this.product.selling_plan_groups.forEach(group => {
        if (group.app_id !== 'SKIO') return

        group.selling_plans.forEach(selling_plan => {
          selling_plans.push({
            group_id: group.id,
            selling_plan_id: selling_plan.id
          })
        })
      })

      return selling_plans
    },

    subscriptionCompareAtPrice() {
      return this.selectedVariant.compare_at_price > this.selectedVariant.price ? (this.selectedVariant.compare_at_price / 100).toFixed(2) : (this.selectedVariant.price / 100).toFixed(2);
    },

    subscriptionDiscount() {
      let discount = (this.subscriptionCompareAtPrice * 100) - this.price(this.selected_selling_plan_group, false);
      return (discount / 100).toFixed(2);
    },

    upsellBoxShowing() {
      return this.showInstantUpsell && this.$refs.SkioUpsell && this.$refs.SkioUpsell.upcomingSubscription && this.$refs.SkioUpsell.eligible
    },
    groupOrder() {
      // Drives DOM order, not just CSS `order` — Tab follows the DOM, so the two
      // options have to be emitted in the sequence they are painted in.
      return this.startOnetime ? ['onetime', 'subscription'] : ['subscription', 'onetime']
    },
    normalizedSkioTiers() {
      if (!Array.isArray(this.skioRulesTiers)) return []

      return this.skioRulesTiers
        .map(tier => ({
          productCount: Number(tier && tier.productCount),
          discount: Number(tier && tier.discount),
        }))
        .filter(tier => Number.isFinite(tier.productCount) && tier.productCount > 0 && Number.isFinite(tier.discount))
        .sort((a, b) => a.productCount - b.productCount)
    },
    effectiveSubscriptionItemCount() {
      // PDP display always reflects cart subscription count plus the pending PDP subscription item.
      return this.subscriptionItemsInCart + 1
    },
    activeTier() {
      if (!this.normalizedSkioTiers.length) return null

      const fallbackTier = this.normalizedSkioTiers[0]
      const matchingTier = this.normalizedSkioTiers
        .filter(tier => tier.productCount <= this.effectiveSubscriptionItemCount)
        .reduce((maxTier, tier) => (tier.productCount > maxTier.productCount ? tier : maxTier), fallbackTier)

      return matchingTier
    },
    activeTierDiscountPercent() {
      return this.activeTier ? this.activeTier.discount : 0
    },
    promoPercent() {
      // Server-resolved promo percent for this product, from the variant's
      // custom.sale_discount metafield (see promo-effective-percent.liquid).
      // 0 covers every non-promo case: no sale_discount, B2B, customer group.
      const pct = Number(this.product && this.product.promo_percent)
      return pct > 0 ? pct : 0
    },
    customSaleDiscountPrice() {
      const discount = parseFloat(this.product && this.product.custom_sale_discount)
      if (!discount || discount <= 0) return null
      const price = this.selectedVariant.price
      const discountedPrice = Math.ceil(price - (price * discount / 100))
      return discountedPrice < price ? discountedPrice : null
    }
  },

  methods: {
    selectSellingPlanGroup(group) {
      this.selected_selling_plan_group = group
    },

    money(price) {
      return this.moneyFormatter.format(price / 100.0)
    },

    baseComparePriceCents() {
      return this.selectedVariant.compare_at_price > this.selectedVariant.price ? this.selectedVariant.compare_at_price : this.selectedVariant.price
    },

    subscriptionItemCountFromCart(cart) {
      if (!cart || !Array.isArray(cart.items)) return 0
      return cart.items.reduce((count, item) => {
        const isSubscription = Boolean(item && (item.selling_plan_allocation || item.selling_plan))
        if (!isSubscription) return count
        return count + Number(item.quantity || 0)
      }, 0)
    },

    setSubscriptionCountFromCart(cart) {
      this.subscriptionItemsInCart = this.subscriptionItemCountFromCart(cart)
    },

    refreshSubscriptionCount() {
      // Reuse the shared Cart module so every plan picker + the drawer share a
      // single /cart.js request instead of each fetching its own on load.
      if (window.Cart && window.Cart.state && Array.isArray(window.Cart.state.items)) {
        this.setSubscriptionCountFromCart(window.Cart.state)
        return
      }

      if (window.Cart && typeof window.Cart.fetch === 'function') {
        window.Cart.fetch()
          .then(cart => this.setSubscriptionCountFromCart(cart))
          .catch(() => {})
        return
      }

      fetch('/cart.js', {
        credentials: 'same-origin',
        headers: { 'Accept': 'application/json' },
      })
        .then(response => response.json())
        .then(cart => this.setSubscriptionCountFromCart(cart))
        .catch(() => {})
    },

    discount(selling_plan_group) {
      const discount = { percent: '0%', amount: 0, price: this.selectedVariant.price }
      const comparePrice = this.baseComparePriceCents()

      if (!selling_plan_group || selling_plan_group.name !== 'Subscription') {
        return discount
      }

      const discountPercent = this.activeTierDiscountPercent
      discount.percent = `${discountPercent}%`
      discount.amount = Math.floor((comparePrice * discountPercent) / 100.0)
      discount.price = comparePrice - discount.amount
      discount.original = {...discount}

      return discount
    },

    discountMessage(group) {
      return `${ this.discount(group).percent } off subscription items`
    },

    savingsLineState(group) {
      // Picks the savings-line variant rendered by
      // snippets/subscription-savings-line.liquid. Promo lower than the
      // recurring tier falls back to the base copy — never imply today's
      // savings are worse than recurring orders.
      if (!group || group.name !== 'Subscription') return 'none'
      const recurring = this.activeTierDiscountPercent
      const promo = this.promoPercent
      if (!promo || !recurring || promo < recurring) return 'none'
      return promo > recurring ? 'promo_gt' : 'promo_eq'
    },

    price(selling_plan_group, formatted = true) {
      const compareAt = this.baseComparePriceCents()
      let price = this.discount(selling_plan_group).price

      return formatted
        ? this.money(price)
        : price
    },

    emitSubscriptionUpdate() {
      if (!this.selected_selling_plan_group) {
        this.$emit('subscription-update', false);
        return;
      }
      this.$emit('subscription-update', {
        selling_plan: this.selected_selling_plan_group.selected_selling_plan,
        price: this.price(this.selected_selling_plan_group, false).toFixed(0)
      });
    },

    log() {
      var args = Array.prototype.slice.call(arguments);
      args.unshift('%c[skio]', 'color: #8770f2;');
      console.log.apply(console, args);
    },

    error() {
      var args = Array.prototype.slice.call(arguments);
      args.unshift('%c [skio]', 'color: #ff0000');
      console.log.apply(console, args);
    }
  },

  watch: {
    selected_selling_plan_group() {
      this.emitSubscriptionUpdate();
    },

    'selected_selling_plan_group.selected_selling_plan'() {
      if(!this.selected_selling_plan_group) return;
      this.emitSubscriptionUpdate();
    },

    activeTierDiscountPercent() {
      if (!this.selected_selling_plan_group) return;
      this.emitSubscriptionUpdate();
    },

    product() {
      this.log(this.product.title);

      // Skio selling plan groups
      this.skio_selling_plan_groups = this.product.selling_plan_groups.filter(
        selling_plan_group => selling_plan_group.app_id === 'SKIO'
      )

      this.log('Selling Plan Groups', this.skio_selling_plan_groups);

      // Added property to track selected selling plan in each groups
      this.skio_selling_plan_groups.forEach(group => {
        this.$set(group, 'selected_selling_plan', group.selling_plans.find(selling_plan => selling_plan.name.includes('recommended')))
      });

      if(this.selected_selling_plan_group) {
        this.selectSellingPlanGroup(this.skio_selling_plan_groups[0]);
      } else {
        this.selected_selling_plan_group = null;
      }
    }
  },

  mounted() {
    this.log('Mounted');
    this.log('Product', this.product);
    this.log('Selected Variant', this.selectedVariant);

    this.key = this.keyName;

    // Skio selling plan groups
    this.skio_selling_plan_groups = this.product.selling_plan_groups.filter(
      selling_plan_group => selling_plan_group.app_id === 'SKIO'
    )

    this.log('Selling Plan Groups', this.skio_selling_plan_groups);

    // Added property to track selected selling plan in each groups
    this.skio_selling_plan_groups.forEach(group => {
      this.$set(group, 'selected_selling_plan', group.selling_plans.find(selling_plan => selling_plan.name.includes('recommended')))
    });

    if(!this.startOnetime) {
      this.selectSellingPlanGroup(this.skio_selling_plan_groups[0]);
    }

    this.refreshSubscriptionCount()
    this.cartUpdatedHandler = e => this.setSubscriptionCountFromCart(e.detail && e.detail.cart ? e.detail.cart : e.detail)
    this.cartAjaxUpdatedHandler = () => this.refreshSubscriptionCount()
    window.addEventListener('cart:updated', this.cartUpdatedHandler)
    window.addEventListener('cart:fetched', this.cartUpdatedHandler)
    window.addEventListener('cart-ajax:update', this.cartAjaxUpdatedHandler)
    window.addEventListener('cart-ajax:update-and-open', this.cartAjaxUpdatedHandler)
  },

  beforeDestroy() {
    if (this.cartUpdatedHandler) {
      window.removeEventListener('cart:updated', this.cartUpdatedHandler)
      window.removeEventListener('cart:fetched', this.cartUpdatedHandler)
    }
    if (this.cartAjaxUpdatedHandler) {
      window.removeEventListener('cart-ajax:update', this.cartAjaxUpdatedHandler)
      window.removeEventListener('cart-ajax:update-and-open', this.cartAjaxUpdatedHandler)
    }
  }
}
</script>


<template id="skio-plan-picker">
  <div class="skio-plan-picker">
    <input v-if="selected_selling_plan_group" type="hidden" name="selling_plan" v-model="selected_selling_plan_group.selected_selling_plan.id" />

    <skio-upsell
      v-if="showInstantUpsell && !discontinued && product.available"
      ref="SkioUpsell"
      :product="product"
      :selected-variant="selectedVariant"
      :hide-subscription="hideSubscription"
      :discontinued="discontinued"
      :skio-rules-tiers="skioRulesTiers"
      :learnMore="learnMore">
    </skio-upsell>

    <template v-if="product && skio_selling_plan_groups.length > 0 && !hideSubscription && !discontinued && product.available">
      <div v-if="showHeader && !upsellBoxShowing" class="skio-plan-picker__header select-freq" style="display: flex; align-items: center; justify-content: space-between; width: 100%;">
        <div class="font-size"
          style="
            --font-size: 1.4rem;
            --font-size-l: 1.6rem;
            --font-size-m: 1.6rem;
            color: #333;
            font-family: Dosis,'Open Sans',arial,sans-serif;
            font-weight: 700;
            letter-spacing: var(--letter-spacing,0.02em);
            line-height: var(--line-height,20px);
            text-transform: uppercase;
          ">
          Select Frequency:
        </div>

        <a href="#learn-more-modal" data-learn-more-toggle="" v-if="learnMore == 'popup'"
          style="
            color: var(--orange);
            text-decoration: underline;
          ">
          <span>Learn More</span>
        </a>
        <a :href="'/products/' + product.handle" target="_blank" v-else
          style="
            color: var(--orange);
            text-decoration: underline;
          ">
          <span>View Full Details</span>
        </a>
      </div>

      <template v-for="blockType in groupOrder">
      <!-- ONETIME -->
      <div
        v-if="blockType === 'onetime' && !product.requires_selling_plan"
        key="onetime"
        class="skio-group-container skio-group-container--available skio-group-container--onetime"
        :class="{
          'skio-group-container--selected': selected_selling_plan_group == null,
          'skio-group-container--first': startOnetime
        }"
      >

        
        <input
          :id="`skio-one-time-${key}`"
          class="skio-group-input"
          :name="`skio-group-onetime-${key}`"
          type="radio"
          :value="null"
          v-model="selected_selling_plan_group"
        />

        <label class="skio-group-label" :for="`skio-one-time-${key}`">
          <div class="skio-group-topline">
            <div class="skio-radio__container">
              <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                <circle cx="12" cy="12" r="10" stroke="currentColor" stroke-width="1"></circle>
                <circle class="skio-radio" cx="12" cy="12" r="6" fill="currentColor"></circle>
              </svg>
            </div>
            <div class="skio-group-title">
              One-Time Purchase
            </div>

            <div class="skio-price-wrapper">
              <div class="skio-compare-at-price" v-if="customSaleDiscountPrice || (selectedVariant.compare_at_price && selectedVariant.compare_at_price > selectedVariant.price)">
                ${ customSaleDiscountPrice ? money(selectedVariant.price) : money(selectedVariant.compare_at_price) }
              </div>

              <div class="skio-price"
                  :class="{ 'skio-price-discounted': customSaleDiscountPrice || selectedVariant.compare_at_price > selectedVariant.price }">
                ${ customSaleDiscountPrice ? money(customSaleDiscountPrice) : money(selectedVariant.price) }
              </div>
            </div>
          </div>
        </label>
      </div>

      <template v-else-if="blockType === 'subscription'">
      <!-- SUBSCRIPTIONS -->
      <div
        v-for="(group, index) in availableSellingPlanGroups"
        :key="group.id"
        class="skio-group-container skio-group-container--available skio-group-container--subscription"
        :class="{
          'skio-group-container--selected':
            selected_selling_plan_group && selected_selling_plan_group.id === group.id,
          'skio-group-container--first': !startOnetime
        }"
      >
        <input
          :id="`skio-selling-plan-group-${index}-${key}`"
          class="skio-group-input"
          :name="`skio-group-subscription-${index}-${key}`"
          type="radio"
          :value="group"
          v-model="selected_selling_plan_group"
        />

        <label class="skio-group-label" :for="`skio-selling-plan-group-${index}-${key}`">
          <div class="skio-group-topline">
            <div class="skio-radio__container" style="align-self: flex-start">
              <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                <circle cx="12" cy="12" r="10" stroke="currentColor" stroke-width="1"></circle>
                <circle class="skio-radio" cx="12" cy="12" r="6" fill="currentColor"></circle>
              </svg>
            </div>

            <div class="skio-group-title">
              <div style="display: flex; align-items: center; gap: 6px;">
                Subscribe & Save
                <svg width="18" height="18" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M15.395 3.228c8.864-1.563 15.916 3.88 17.327 11.88 1.146 6.503-1.378 12.359-6.469 15.145M20.605 32.772c-8.864 1.563-15.916-3.88-17.327-11.88C2.132 14.386 4.656 8.532 9.747 5.746" stroke="#19A340" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/><path d="m26.688 24.084-.435 6.169 6.17.435M9.312 11.916l.435-6.169-6.17-.435" stroke="#19A340" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/><path d="M20.353 22.454c.421-.556.647-1.256.647-2.084 0-.572-.12-1.066-.331-1.48a2.937 2.937 0 0 0-.828-1.001c-.331-.255-.753-.494-1.235-.748-.511-.239-.888-.43-1.159-.589a2.424 2.424 0 0 1-.677-.556 1.179 1.179 0 0 1-.271-.764c0-.287.105-.525.316-.716.21-.191.452-.302.753-.302.662 0 1.129.397 1.4 1.177l1.58-1.066c-.391-.954-1.023-1.59-1.911-1.877V11H16.8v1.4c-.662.16-1.19.51-1.58 1.034-.392.525-.588 1.146-.588 1.862 0 .763.18 1.384.542 1.86.362.478.843.876 1.445 1.194l.437.223c.467.254.828.445 1.084.604.256.16.466.35.647.557.166.223.256.461.256.732 0 .445-.136.78-.376 1.002-.256.223-.587.318-.994.318-.542 0-.993-.207-1.34-.62-.346-.414-.602-.955-.752-1.639L14 20.577c.15.748.467 1.4.963 1.957A3.373 3.373 0 0 0 16.8 23.6V25h1.837v-1.432c.722-.19 1.294-.557 1.716-1.114Z" fill="#19A340"/></svg>
              </div>

              <div class="skio-group-subtitle">
                <template v-if="savingsLineState(group) === 'promo_gt'">Save <span skio-discount>${ promoPercent }%</span> today, then save <span skio-discount>${ discount(group).percent }</span> on recurring orders</template>
  <template v-else-if="savingsLineState(group) === 'promo_eq'">Save <span skio-discount>${ discount(group).percent }</span> today and on every order</template>
  <template v-else>Save <span skio-discount>${ discount(group).percent } off</span> on every order and never run out</template>
              </div>
            </div>

            <div class="skio-price-wrapper">
              <div class="skio-compare-at-price">${ customSaleDiscountPrice ? money(selectedVariant.price) : selectedVariant.compare_at_price > selectedVariant.price ? money(selectedVariant.compare_at_price) : money(selectedVariant.price) }</div>
              <div class="skio-price"
                :class="{ 'skio-price-discounted': customSaleDiscountPrice || (selectedVariant.compare_at_price ? selectedVariant.compare_at_price > price(group, false) : selectedVariant.price > price(group, false)) }">
                ${ customSaleDiscountPrice ? money(customSaleDiscountPrice) : price(group) }
              </div>
            </div>
          </div>

          <div class="skio-group-content">
            <div class="skio-frequency-wrapper">
              <div class="skio-frequency-group">
                <label :for="`skio-select-${ key }`">Deliver every</label>
                <div class="skio-frequency-container">
                  <select :id="`skio-select-${ key }`" v-model="group.selected_selling_plan" class="skio-frequency">
                    <option v-for="plan in group.selling_plans" :value="plan" :key="plan.id">
                      ${ plan.name }
                    </option>
                  </select>
                  
                  <i aria-hidden="true" class="select__arrow"></i>
                </div>
              </div>
            </div>

            
            <span>Skip, modify or cancel at any time</span>
            
          </div>
        </label>
      </div>
      </template>
      </template>
    </template>
  </div>
</template>
<style type="text/css">
    [data-subscription-modal][v-cloak] {
      display: none;
    }

    .subscription-modal {
      --skio-select-background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 9'%3E%3Cpath d='M0 1.133C0 .687.24.286.606.115a.906.906 0 0 1 1.07.239L7 6.324l5.323-5.97a.911.911 0 0 1 .949-.285c.339.101.603.398.694.778s-.006.786-.254 1.064l-6.018 6.75c-.184.207-.434.323-.694.323s-.51-.116-.695-.323L.288 1.911A1.17 1.17 0 0 1 0 1.133z'/%3E%3C/svg%3E");
      position: fixed;
      left: 0;
      bottom: 0;
      top: 0;
      right: 0;
      width: 100%;
      height: 100%;
      display: flex;
      align-items: center;
      justify-content: center;
      z-index: 998;
      opacity: 1;
    }

    .subscription-modal-tint {
      position: fixed;
      left: 0;
      bottom: 0;
      top: 0;
      right: 0;
      width: 100%;
      height: 100%;
      background: rgba(255,255,255,0.9);
      z-index: 1;
    }

    .subscription-modal-container {
      position: relative;
      z-index: 2;
      width: 100%;
      max-width: 480px;
      padding: 20px 15px;
      margin: 10px;
      background: #f1ece7;
      box-shadow: var(--menu-box-shadow);
      outline: none !important;
    }

    @media (min-width: 480px) {
      .subscription-modal-container {
        padding: 20px;
      }
    }

    .subscription-modal-header__attr {
      font-size: 1.2rem;
      text-transform:uppercase;
    }

    .subscription-modal-header__title {
      font-size: 2.2rem;
      margin-bottom: 10px;
    }

    .subscription-modal__close {
      top: 21px;
      transform: none;
      width: 18px;
      height: 18px;
      z-index: 1;
    }

    .subscription-modal__close:before,
    .subscription-modal__close:after {
      width: 24px;
    }

    .subscription-modal .select-freq {
      margin-top: 0;
    }

    .subscription-modal .select-freq a span {
      font-size: 1.4rem;
      color: #f04c00;
      font-weight:500;
    }

    .subscription-modal .skio-upsell {
      margin-bottom: 10px;
    }

    .subscription-modal .skio-upsell > div > p:first-child {
      margin-top: 0;
    }

    .subscription-modal .product-price__sale--single {
      padding-left: 0;
    }

    .subscription-modal .strike {
      color: inherit;
    }

    .fade-enter-active,
    .fade-leave-active {
      transition: all 0.3s ease-in-out;
    }

    .fade-enter,
    .fade-leave-to {
      opacity: 0;
    }

    @media (min-width: 1170px) {
      .subscription-modal {
        --skio-qty-margin-right: 20px;
      }
    }
  </style>

  <div data-subscription-modal v-cloak>
    <transition name="fade">
      <div class="subscription-modal"
        v-if="isOpen">
        <div class="subscription-modal-tint" @click.prevent="isOpen = false"></div>

        <div class="subscription-modal-container" aria-hidden="false" aria-label="Dialog Window - Close (Press escape to close)" role="dialog" tabindex="0" ref="container">

          <div class="subscription-modal-header">
            <div class="subscription-modal-header__info">
              <h6 class="subscription-modal-header__attr" v-if="metafields.prod.attr"
                style="
                  --min-height: 17px;
                  font-family: Dosis,Open Sans,arial,sans-serif;
                  font-size: 1.2rem;
                  font-weight: 700;
                  grid-area: a;
                  letter-spacing: 1.2px;
                  min-height: var(--min-height);
                "
                v-text="metafields.prod.attr">
              </h6>
              <h3 class="subscription-modal-header__title">
                <span v-if="metafields.prod.title" v-text="metafields.prod.title"></span>
                <span v-else v-text="product.title"></span>
              </h3>
            </div>

            <button type="button" class="subscription-modal__close small-modal__close" @click.prevent="isOpen = false" aria-label="Close (Press escape to close)">
              <span class="visually-hidden">Close</span>
            </button>
          </div>

          <form
            action="/cart/add"
            method="post"
            enctype="multipart/form-data"
            :data-id="product.variants[0].id"
            data-quantity="1"
            class=""
            :data-section-id="product.variants[0].id"
            data-section-type="product"
            data-og-check="true"
          >
            <input type="hidden" name="id" :value="product.variants[0].id" />
            <input type="hidden" name="properties[__subscription_price_chk]" :value="metafields.accentuate.subscription_price_chk" v-if="metafields.accentuate.subscription_price_enabled === 'true'" />

            <skio-plan-picker
              :key-name="'modal'"
              :product="product"
              :selected-variant="product.variants[0]"
              :hide-subscription="false"
              :discontinued="false"
              :start-onetime="false"
              :skio-rules-tiers='[{"productCount":1,"discount":10,"discountType":"PERCENTAGE"},{"productCount":2,"discount":15,"discountType":"PERCENTAGE"},{"productCount":3,"discount":20,"discountType":"PERCENTAGE"},{"productCount":4,"discount":25,"discountType":"PERCENTAGE"},{"productCount":5,"discount":30,"discountType":"PERCENTAGE"}]'
              @subscription-update="subscriptionUpdate"
              :onetime-discount="null"
              learn-more="product-link"
              >
            </skio-plan-picker>

            
            <input type="hidden" name="properties[__msrp_price]" :value="product.compare_at_price && product.compare_at_price > product.price ? floatPrice(product.compare_at_price) : floatPrice(product.price)">

            <template v-if="subscriptionSelected">
              <template v-if="subscriptionPrice">
                <input type="hidden" name="properties[__price]" :value="floatPrice(subscriptionPrice)">
                <input type="hidden" name="properties[__sale_message]" value="Subscription Price" />
              </template>
              <template v-else-if="subscriptionPrice">
                <input type="hidden" name="properties[__price]" :value="floatPrice(product.price)">
                <input type="hidden" name="properties[__sale_message]" :value="metafields.accentuate.sale_message" />
              </template>
            </template>

            <template v-else>
              <input type="hidden" name="properties[__price]" :value="floatPrice(product.price)">
              <input type="hidden" name="properties[__sale_message]" :value="metafields.accentuate.sale_message" />
              <input type="hidden" name="properties[__subscription]" value="false" />
            </template>

            <div style="
                align-items: flex-end;
                display: flex;
                margin-top: 40px;
                position: relative;
                width: 100%;
              ">
              <div class="product_form__quantity item-quantity" data-product-detail-qty
                style="
                  flex-shrink: 0;
                  margin-right: var(--skio-qty-margin-right, 10px);
                  margin-top: 0;
                  width: 86px;
                ">
                <label for="Quantity-Modal">Quantity</label>
                <select type="number" id="Quantity-Modal" name="quantity" v-model="quantity" class="select item-quantity__select" :data-varid="product.variants[0].id" aria-label="Select Quantity"
                  style="
                    -moz-appearance: none;
                    background-color: #fff;
                    background-image: var(--skio-select-background-image);
                    background-size: 12px auto;
                    border: 1px solid #838383;
                    font-family: Dosis,Open Sans,arial,sans-serif;
                    font-weight: 700;
                    height: 50px;
                    margin-top: 0;
                    padding: 16px 0 16px 10px;
                    width: 100%;
                  ">
                  <template v-for="index in 10">
                    <option :value="index" v-if="index === 0" selected v-text="index"></option>
                    <option :value="index" v-else v-text="index"></option>
                  </template>
                </select>
              </div><button type="submit" class="btn btn--secondary product-form__cart-submit" @click.prevent="addToCart($event)" data-add-to-cart="form" v-if="product.available">

                  <span class="product-form__cart-submit-text" v-if="subscriptionSelected">
                    Subscribe&nbsp;&nbsp;
                  </span>

                  <span class="product-form__cart-submit-text" v-else>
                    Add to cart&nbsp;&nbsp;
                  </span>

                  <span class="product-form__cart-waiting-text" aria-hidden="true">Adding</span>
                  <span class="product-form__cart-submitting-text" aria-hidden="true">Added</span>

                  <span class="product-form__submit-price">
                    <template v-if="subscriptionSelected">
                      <s class="product-form__submit-strike strike" v-html="product.compare_at_price && product.compare_at_price > product.price ? price(product.compare_at_price) : price(product.price)"></s>

                      <span class="product-price__price product-price__sale product-price__sale--single"
                        style="
                          margin: 0;
                        ">
                        <span class="product-price" v-if="subscriptionPrice" v-html="price(subscriptionPrice)"></span>
                        <span class="product-price" v-else v-html="price(product.price)"></span>
                      </span>
                    </template>

                    <template v-else>
                      <span class="visually-hidden">
                        Regular price
                      </span>

                      <span class="product-form__submit-strike strike"
                        :class="!product.compare_at_price || product.compare_at_price <= product.price ? 'hide' : ''"
                        v-html="price(product.compare_at_price)">
                      </span>

                      <span class="product-price__price">
                        <span class="product-price" v-html="price(product.price)"></span>
                      </span>
                    </template>
                  </span>
                </button>

                <template v-else>
                  <span v-if="!discontinued" class="font-alt product-form__oos-label">
                    Out Of Stock
                  </span><a href="#notify-me"
  class="product-detail__oos-btn btn btn--secondary"
  
    data-notify-me-sticky
  
  v-if="!discontinued">
  Notify Me
</a>
<button type="button" disabled class="btn btn--secondary product-form__cart-submit" v-else>
                    Sold out
                  </button>
                </template>
            </div>

          </form>
        </div>
      </div>
    </transition>
  </div>

  <script>
    window.SubscriptionModal = {
      vueInstance: null,
      productHandle: null,
      nostoElementId: '',
      isProductPage: false,

      loadScript: function(url) {
        return new Promise(resolve => {
          const script = document.createElement('script')
          script.type = 'text/javascript'
          script.src = url
          document.head.appendChild(script)
          script.addEventListener('load', resolve)
        })
      },

      loadStylesheet: function(url) {
        return new Promise(resolve => {
          const link = document.createElement('link')
          link.rel = 'stylesheet'
          link.type = 'text/css'
          link.href = url
          document.head.appendChild(link)
          link.addEventListener('load', resolve)
        })
      },

      open: function(productHandle, nostoElementId) {
        if (window.SubscriptionModal.vueInstance !== null) {
          window.SubscriptionModal.productHandle = productHandle
          window.SubscriptionModal.nostoElementId = nostoElementId
          window.SubscriptionModal.vueInstance.open()
        } else {
          window.SubscriptionModal.productHandle = productHandle
          window.SubscriptionModal.nostoElementId = nostoElementId

          if (window.SubscriptionModal.isProductPage) {
            window.SubscriptionModal.initVue()
          } else {
            Promise.all([
              window.SubscriptionModal.loadScript("\/\/www.bulletproof.com\/cdn\/shop\/t\/617\/assets\/vue.min.js?v=177818931985653737381776326501"),
              window.SubscriptionModal.loadStylesheet("\/\/www.bulletproof.com\/cdn\/shop\/t\/617\/assets\/skio-plan-picker-min.css?v=115580180831748286191787677081")
            ]).then(() => {
              window.SubscriptionModal.initVue()
            })
          }
        }
      },

      initVue: function() {
        window.SubscriptionModal.vueInstance = new Vue({
          delimiters: ["${","}"],
          el: '[data-subscription-modal]',
          name: 'subscription-modal',
          components: { SkioPlanPicker },
          data: {
            assetsLoaded: false,
            discontinued: false,
            isOpen: false,
            product: window.SubscriptionModal.productHandle,
            metafields: {},
            quantity: 1,
            subscriptionSelected: false,
            subscriptionPrice: null
          },

          mounted() {
            this.$nextTick(() => {
              this.open()
            })

            document.addEventListener('keyup', (e) => {
              if (e.keyCode == 27 && this.isOpen) {
                this.isOpen = false
              }
            })
          },

          methods: {
            addToCart (event) {
              const $form = jQuery(event.currentTarget).closest('form')
              const $btn = $form.find('[data-add-to-cart]')
              const formData = $form.serialize()
              const quantityAdded = $form.find('[name="quantity"]') ? $form.find('[name="quantity"]').val() : 1;
              $btn.addClass('product-form--waiting')
              if (typeof window.cartIconLoadingState === 'function') {
                window.cartIconLoadingState()
              }

              jQuery.ajax({
                type: 'POST',
                url: '/cart/add.js',
                data: formData,
                dataType: 'json',
                success: cartData => {
                  window.dispatchEvent(new CustomEvent('cart:items-added', { detail: { items: [cartData] } }))
                  $form.trigger( {
                    type: 'AjaxAddToCart',
                    response: cartData,
                    quantityAdded: quantityAdded,
                  })
                  .trigger( {
                    type: 'AjaxCartRequest',
                    response: cartData
                  })

                  this.isOpen = false

                  if (typeof nostojs !== 'undefined') {
                    nostojs(function(api) {
                      api.recommendedProductAddedToCart(`${cartData.variant_id}`, window.SubscriptionModal.nostoElementId);
                    });
                  }
                },
                error: (request, status) => {
                  console.error('Subscription modal add-to-cart failed:', request, status)
                  $btn.removeClass('product-form--waiting')

                  $form.trigger({
                    type: 'AjaxAddToCart',
                    response: request
                  })
                },
              })
            },

            floatPrice: function(p) {
              return (p / 100).toFixed(2)
            },

            loadScript(url) {
              const script = document.createElement('script')
              script.type = 'text/javascript'
              script.src = url
              document.body.appendChild(link)
            },

            loadStylesheet(url) {
              const link = document.createElement('link')
              link.rel = 'stylesheet'
              link.type = 'text/css'
              link.href = url
              document.body.appendChild(link)
            },

            open() {
              const endpoint = `${window.Shopify.routes.root}products/${window.SubscriptionModal.productHandle}?view=json--metafields`

              fetch(endpoint).then((response) => response.json()).then((data) => {
                this.product = data.product
                this.product.promo_percent = data.promo_percent
                this.metafields = data.metafields

                this.$nextTick(() => {
                  this.isOpen = true

                  this.$nextTick(() => {
                    this.$refs['container'].focus()

                    if (typeof nostojs !== 'undefined') {
                      nostojs(api => {
                        api.createRecommendationRequest()
                          .setProducts([{product_id: `${this.product.variants[0].id}`}])
                          .load();
                      });
                    }

                    window.dispatchEvent(new CustomEvent('global-subscription-modal:open'));
                  })
                })
              })
            },

            price: function(p, discount_rate = 1, quantity = 1) {
              return '$' + ((p / 100 * discount_rate) * quantity).toFixed(2)
            },

            metafieldPrice(key) {
              const price = this.metafields?.accentuate?.[key]
              if(price) {
                return Math.round(parseFloat(price) * 100.0)
              }
            },

            subscriptionUpdate(params) {
              if(params) {
                this.subscriptionSelected = true;
                this.subscriptionPrice = params.price;
              } else {
                this.subscriptionSelected = false;
                this.subscriptionPrice = null;
              }
            },
          }
        })
      }
    }

    document.addEventListener('click', (e) => {
      const nostoSubscribeButton = e.target.closest('[data-nosto-subscribe]')
      if (nostoSubscribeButton) {
        e.preventDefault()
        const nostoElement = nostoSubscribeButton.closest('.nosto_element')
        window.SubscriptionModal.open(nostoSubscribeButton.dataset.productHandle, nostoElement.id)
      }
    })
  </script>

</div>
<script>
  (function() {
    const params = new URLSearchParams(window.location.search)
    if (params.has('b2b_login_error')) {
      window.modaalLearnMoreIsReady = () => {
        return typeof jQuery !== 'undefined' && typeof jQuery().modaal === 'function'
      }

      window.modaalLearnMore = () => {
        $('[data-b2b-login-error]').modaal({
          background: '#fff',
          content_source: '#b2b-login-error-modal',
          custom_class: 'small-modal__container',
          overlay_opacity: '0.9',
          width: 374,
        })

        $('[data-b2b-login-error]').modaal('open')
      }

      document.addEventListener('DOMContentLoaded', function() {
        window.loadAsset({
          'src': theme.assets.modaal,
          'isReady':  'modaalLearnMoreIsReady',
          'callback': 'modaalLearnMore',
        })
      })
    }
  })();
</script>

<style>
  .b2b-login-error {
    text-align: center;
    padding: 40px 20px;
  }

  .b2b-login-error__message {
    font-size: 1.6rem;
    margin: 0 0 20px;
  }

  .b2b-login-error__button {
    border-color: #f04c00;
  }
</style>
<button type="button" data-b2b-login-error class="hide visually-hidden">Open B2B Login Error</button>
<div id="b2b-login-error-modal" class="hide">
  <div class="b2b-login-error">
    <p class="b2b-login-error__message text-center">Wholesale customers must sign in use the wholesale sign in form</p>
    <a href="https://account.bulletproof.com" class="b2b-login-error__button btn btn-primary" rel="nofollow">Wholesale Log In</a>
  </div>
</div>
<div id="shopify-block-AbHdwMnZWWDI2eGg1d__12331707899451543273" class="shopify-block shopify-app-block"><div style="display: none;" hidden>
    Powerx - Function creator (Fixed)
</div>

<script>
// Global state management to prevent race conditions
let isUpdating = false;
let updateQueue = [];

// Debounced update function to prevent multiple simultaneous requests
async function safeUpdateCartAttributes() {
    if (isUpdating) {
        // If already updating, queue this request
        return new Promise((resolve) => {
            updateQueue.push(resolve);
        });
    }
    
    isUpdating = true;
    
    try {
        await updateAllCartAttributes();
        
        // Resolve any queued promises
        const queuedPromises = [...updateQueue];
        updateQueue = [];
        queuedPromises.forEach(resolve => resolve());
        
    } catch (error) {
        console.error('Error in safeUpdateCartAttributes:', error);
    } finally {
        isUpdating = false;
    }
}

// Check if cart is ready and accessible
async function isCartReady() {
    try {
        const response = await fetch('/cart.js');
        return response.ok;
    } catch (error) {
        console.error('Cart not ready:', error);
        return false;
    }
}

// Combined function to update all cart attributes in a single request
async function updateAllCartAttributes() {
    try {
        // Wait for cart to be ready
        if (!(await isCartReady())) {
            console.warn('Cart not ready, skipping update');
            return;
        }

        // Fetch the latest cart data
        const cartResponse = await fetch('/cart.js');
        if (!cartResponse.ok) {
            console.error('Failed to fetch cart data:', cartResponse.status);
            return;
        }
        const cart = await cartResponse.json();

        // Prepare all attributes in one object
        const allAttributes = {};
        const existingAttributes = cart.attributes || {};

        // 1. Update discount tracking
        let newPowerxDiscount = '';
        if (cart.total_discount > 0) {
            const discountTitles = new Set();
            // Collect cart-level discount titles
            if (cart.cart_level_discount_applications) {
                cart.cart_level_discount_applications.forEach(app => {
                    if (app.title) discountTitles.add(app.title);
                });
            }
            // Collect line-level discount titles
            if (cart.items) {
                cart.items.forEach(item => {
                    if (item.line_level_discount_allocations) {
                        item.line_level_discount_allocations.forEach(alloc => {
                            if (alloc.discount_application && alloc.discount_application.title) {
                                discountTitles.add(alloc.discount_application.title);
                            }
                        });
                    }
                });
            }
            newPowerxDiscount = Array.from(discountTitles).map(t => t.toLowerCase()).join(',');
        }

        const currentPowerxDiscount = (cart.attributes && cart.attributes._powerx_discount) || '';
        if (currentPowerxDiscount !== newPowerxDiscount) {
            allAttributes._powerx_discount = newPowerxDiscount;
        }

        // 2. Handle URL parameters and removals
        await addUrlParameterAttributes(allAttributes, existingAttributes);

        // 3. Handle expired attributes
        await addExpiredAttributeRemovals(allAttributes, existingAttributes);

        // Nothing changed: never POST. A no-op cart update makes themes that
        // listen for /cart/update re-render or reload on every page view.
        if (Object.keys(allAttributes).length === 0) {
            return true;
        }

        // 4. Add timestamp alongside the real changes
        allAttributes._powerx_datetime = Math.floor(Date.now() / 1000);

        // Single update request for all attributes
        const response = await fetch('/cart/update.js', {
            method: 'POST',
            headers: { 'Content-Type': 'application/json' },
            body: JSON.stringify({ attributes: allAttributes })
        });

        if (!response.ok) {
            console.error('Failed to update cart attributes:', response.status);
            return false;
        }

        // Update localStorage only after successful cart update
        await updateLocalStorage(allAttributes);
        return true;
    } catch (error) {
        console.error('Error updating cart attributes:', error);
        return false;
    }
}

// Handle URL parameter attributes
async function addUrlParameterAttributes(allAttributes, existingAttributes = {}) {
    try {
        // Get settings from schema
        const trackedParametersRaw = "powerx_attr";
        const trackedParameters = trackedParametersRaw 
            ? trackedParametersRaw.split(',').map(param => param.trim()).filter(param => param) 
            : ['powerx_attr'];
        const removeParameterRaw = "powerx_rm_attr";
        const removeParameter = removeParameterRaw ? removeParameterRaw.trim() : 'powerx_rm_attr';

        // Parse URL parameters
        const urlParams = new URLSearchParams(window.location.search);

        // Collect attributes to set from URL
        for (const [key, value] of urlParams) {
            if (trackedParameters.includes(key) && existingAttributes[key] !== value) {
                allAttributes[key] = value;
            }
        }

        // Collect attributes to remove manually via remove_parameter
        if (removeParameter) {
            const removeValues = urlParams.getAll(removeParameter);
            for (const value of removeValues) {
                const attrs = value.split(',').map(attr => attr.trim()).filter(attr => attr);
                for (const attr of attrs) {
                    // Only remove what is actually set, otherwise every page load
                    // would send an identical no-op cart update
                    if (existingAttributes[attr]) {
                        allAttributes[attr] = ''; // Empty string removes the attribute
                    }
                }
            }
        }
    } catch (error) {
        console.error('Error processing URL parameters:', error);
    }
}

// Handle expired attributes
async function addExpiredAttributeRemovals(allAttributes, existingAttributes = {}) {
    try {
        const expireAfterHoursRaw = 5;
        const expireAfterHours = expireAfterHoursRaw ? parseInt(expireAfterHoursRaw, 10) : 0;

        if (expireAfterHours > 0) {
            const now = Date.now();
            const attributesToRemoveExpired = [];
            
            for (let i = 0; i < localStorage.length; i++) {
                const key = localStorage.key(i);
                if (key && key.startsWith('powerx_attr_')) {
                    try {
                        const data = JSON.parse(localStorage.getItem(key));
                        const attrName = key.replace('powerx_attr_', '');
                        const expirationTime = data.timestamp + (expireAfterHours * 60 * 60 * 1000);
                        if (now > expirationTime) {
                            attributesToRemoveExpired.push(attrName);
                        }
                    } catch (parseError) {
                        console.warn('Invalid localStorage data for key:', key);
                        // Remove invalid localStorage entry
                        localStorage.removeItem(key);
                    }
                }
            }

            // Add expired attributes to removal list
            for (const attr of attributesToRemoveExpired) {
                if (existingAttributes[attr]) {
                    allAttributes[attr] = ''; // Empty string removes the attribute
                } else {
                    // Already gone from the cart, just drop the stale local record
                    localStorage.removeItem(`powerx_attr_${attr}`);
                }
            }
        }
    } catch (error) {
        console.error('Error processing expired attributes:', error);
    }
}

// Update localStorage after successful cart update
async function updateLocalStorage(updatedAttributes) {
    try {
        const trackedParametersRaw = "powerx_attr";
        const trackedParameters = trackedParametersRaw 
            ? trackedParametersRaw.split(',').map(param => param.trim()).filter(param => param) 
            : ['powerx_attr'];

        const now = Date.now();
        
        for (const [key, value] of Object.entries(updatedAttributes)) {
            if (trackedParameters.includes(key) && value && value !== '') {
                // Store tracked parameters with timestamp
                localStorage.setItem(`powerx_attr_${key}`, JSON.stringify({
                    value,
                    timestamp: now
                }));
            } else if (value === '') {
                // Remove attributes that were set to empty string
                localStorage.removeItem(`powerx_attr_${key}`);
            }
        }
    } catch (error) {
        console.error('Error updating localStorage:', error);
    }
}

// Initialize with proper timing and error handling
async function initializePowerxEmbed() {
    try {
        // Wait longer for cart operations to complete
        await new Promise(resolve => setTimeout(resolve, 2000));
        
        // Check if we have any work to do
        const trackedParametersRaw = "powerx_attr";
        const trackedParameters = trackedParametersRaw 
            ? trackedParametersRaw.split(',').map(param => param.trim()).filter(param => param) 
            : ['powerx_attr'];
        const removeParameterRaw = "powerx_rm_attr";
        const removeParameter = removeParameterRaw ? removeParameterRaw.trim() : 'powerx_rm_attr';

        // Exit if no parameters to track and no removal parameter
        if (trackedParameters.length === 0 && !removeParameter) {
            return;
        }

        // Perform the update
        await safeUpdateCartAttributes();
        
    } catch (error) {
        console.error('Error initializing PowerX embed:', error);
    }
}

// Event listeners with debouncing
let cartUpdateTimeout;
function handleCartUpdate() {
    // Clear existing timeout to debounce rapid cart updates
    if (cartUpdateTimeout) {
        clearTimeout(cartUpdateTimeout);
    }
    
    // Set a new timeout to handle the update after a brief delay
    cartUpdateTimeout = setTimeout(() => {
        safeUpdateCartAttributes();
    }, 500); // 500ms delay to allow cart operations to settle
}

// // Listen for cart updates with proper debouncing
// document.addEventListener('cart:updated', handleCartUpdate);

// // Also listen for other common cart events
// document.addEventListener('cart:added', handleCartUpdate);
// document.addEventListener('cart:changed', handleCartUpdate);

// Initialize the embed
initializePowerxEmbed();

</script>

</div><script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
</body></html>
