{
  "version": 3,
  "sources": ["/cdn/shop/t/14/assets/theme.dev.js?t=1652298839"],
  "sourcesContent": ["!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).basicLightbox=e()}}((function(){return function e(n,t,o){function r(c,u){if(!t[c]){if(!n[c]){var s=\"function\"==typeof require&&require;if(!u&&s)return s(c,!0);if(i)return i(c,!0);var a=new Error(\"Cannot find module '\"+c+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var l=t[c]={exports:{}};n[c][0].call(l.exports,(function(e){return r(n[c][1][e]||e)}),l,l.exports,e,n,t,o)}return t[c].exports}for(var i=\"function\"==typeof require&&require,c=0;c<o.length;c++)r(o[c]);return r}({1:[function(e,n,t){\"use strict\";Object.defineProperty(t,\"__esModule\",{value:!0}),t.create=t.visible=void 0;var o=function(e){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],t=document.createElement(\"div\");return t.innerHTML=e.trim(),!0===n?t.children:t.firstChild},r=function(e,n){var t=e.children;return 1===t.length&&t[0].tagName===n},i=function(e){return null!=(e=e||document.querySelector(\".basicLightbox\"))&&!0===e.ownerDocument.body.contains(e)};t.visible=i;t.create=function(e,n){var t=function(e,n){var t=o('\\n\\t\\t<div class=\"basicLightbox '.concat(n.className,'\">\\n\\t\\t\\t<div class=\"basicLightbox__placeholder\" role=\"dialog\"></div>\\n\\t\\t</div>\\n\\t')),i=t.querySelector(\".basicLightbox__placeholder\");e.forEach((function(e){return i.appendChild(e)}));var c=r(i,\"IMG\"),u=r(i,\"VIDEO\"),s=r(i,\"IFRAME\");return!0===c&&t.classList.add(\"basicLightbox--img\"),!0===u&&t.classList.add(\"basicLightbox--video\"),!0===s&&t.classList.add(\"basicLightbox--iframe\"),t}(e=function(e){var n=\"string\"==typeof e,t=e instanceof HTMLElement==1;if(!1===n&&!1===t)throw new Error(\"Content must be a DOM element/node or string\");return!0===n?Array.from(o(e,!0)):\"TEMPLATE\"===e.tagName?[e.content.cloneNode(!0)]:Array.from(e.children)}(e),n=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(null==(e=Object.assign({},e)).closable&&(e.closable=!0),null==e.className&&(e.className=\"\"),null==e.onShow&&(e.onShow=function(){}),null==e.onClose&&(e.onClose=function(){}),\"boolean\"!=typeof e.closable)throw new Error(\"Property `closable` must be a boolean\");if(\"string\"!=typeof e.className)throw new Error(\"Property `className` must be a string\");if(\"function\"!=typeof e.onShow)throw new Error(\"Property `onShow` must be a function\");if(\"function\"!=typeof e.onClose)throw new Error(\"Property `onClose` must be a function\");return e}(n)),c=function(e){return!1!==n.onClose(u)&&function(e,n){return e.classList.remove(\"basicLightbox--visible\"),setTimeout((function(){return!1===i(e)||e.parentElement.removeChild(e),n()}),410),!0}(t,(function(){if(\"function\"==typeof e)return e(u)}))};!0===n.closable&&t.addEventListener(\"click\",(function(e){e.target===t&&c()}));var u={element:function(){return t},visible:function(){return i(t)},show:function(e){return!1!==n.onShow(u)&&function(e,n){return document.body.appendChild(e),setTimeout((function(){requestAnimationFrame((function(){return e.classList.add(\"basicLightbox--visible\"),n()}))}),10),!0}(t,(function(){if(\"function\"==typeof e)return e(u)}))},close:c};return u}},{}]},{},[1])(1)}));\n/* MIT https://github.com/fabiospampinato/cash */\n(function(){\n'use strict';var e={\"class\":\"className\",contenteditable:\"contentEditable\",\"for\":\"htmlFor\",readonly:\"readOnly\",maxlength:\"maxLength\",tabindex:\"tabIndex\",colspan:\"colSpan\",rowspan:\"rowSpan\",usemap:\"useMap\"};function aa(a,b){try{return a(b)}catch(c){return b}}\nvar k=document,m=window,ba=k.documentElement,n=k.createElement.bind(k),ca=n(\"div\"),p=n(\"table\"),da=n(\"tbody\"),ea=n(\"tr\"),q=Array.isArray,r=Array.prototype,fa=r.concat,t=r.filter,ha=r.indexOf,ia=r.map,ja=r.push,ka=r.slice,u=r.some,la=r.splice,ma=/^#(?:[\\w-]|\\\\.|[^\\x00-\\xa0])*$/,na=/^\\.(?:[\\w-]|\\\\.|[^\\x00-\\xa0])*$/,oa=/<.+>/,pa=/^\\w+$/;function v(a,b){return a&&(w(b)||x(b))?na.test(a)?b.getElementsByClassName(a.slice(1)):pa.test(a)?b.getElementsByTagName(a):b.querySelectorAll(a):[]}\nvar B=function(){function a(a,c){if(a){if(a instanceof B)return a;var b=a;if(C(a)){if(b=(c instanceof B?c[0]:c)||k,b=ma.test(a)?b.getElementById(a.slice(1)):oa.test(a)?qa(a):v(a,b),!b)return}else if(D(a))return this.ready(a);if(b.nodeType||b===m)b=[b];this.length=b.length;a=0;for(c=this.length;a<c;a++)this[a]=b[a]}}a.prototype.init=function(b,c){return new a(b,c)};return a}(),E=B.prototype,F=E.init;F.fn=F.prototype=E;E.length=0;E.splice=la;\"function\"===typeof Symbol&&(E[Symbol.iterator]=r[Symbol.iterator]);\nE.map=function(a){return F(fa.apply([],ia.call(this,function(b,c){return a.call(b,c,b)})))};E.slice=function(a,b){return F(ka.call(this,a,b))};var ra=/-([a-z])/g;function G(a){return a.replace(ra,function(a,c){return c.toUpperCase()})}F.guid=1;function sa(a,b){var c=a&&(a.matches||a.webkitMatchesSelector||a.msMatchesSelector);return!!c&&!!b&&c.call(a,b)}function H(a){return!!a&&a===a.window}function w(a){return!!a&&9===a.nodeType}function x(a){return!!a&&1===a.nodeType}\nfunction D(a){return\"function\"===typeof a}function C(a){return\"string\"===typeof a}function ta(a){return!isNaN(parseFloat(a))&&isFinite(a)}function I(a){if(\"object\"!==typeof a||null===a)return!1;a=Object.getPrototypeOf(a);return null===a||a===Object.prototype}F.isWindow=H;F.isFunction=D;F.isArray=q;F.isNumeric=ta;F.isPlainObject=I;E.get=function(a){if(void 0===a)return ka.call(this);a=Number(a);return this[0>a?a+this.length:a]};E.eq=function(a){return F(this.get(a))};E.first=function(){return this.eq(0)};\nE.last=function(){return this.eq(-1)};function J(a,b,c){if(c)for(c=a.length;c--&&!1!==b.call(a[c],c,a[c]););else if(I(a)){var d=Object.keys(a);c=0;for(var h=d.length;c<h;c++){var f=d[c];if(!1===b.call(a[f],f,a[f]))break}}else for(c=0,h=a.length;c<h&&!1!==b.call(a[c],c,a[c]);c++);return a}F.each=J;E.each=function(a){return J(this,a)};E.prop=function(a,b){if(a){if(C(a))return a=e[a]||a,2>arguments.length?this[0]&&this[0][a]:this.each(function(c,h){h[a]=b});for(var c in a)this.prop(c,a[c]);return this}};\nE.removeProp=function(a){return this.each(function(b,c){delete c[e[a]||a]})};function K(){for(var a=[],b=0;b<arguments.length;b++)a[b]=arguments[b];b=\"boolean\"===typeof a[0]?a.shift():!1;var c=a.shift(),d=a.length;if(!c)return{};if(!d)return K(b,F,c);for(var h=0;h<d;h++){var f=a[h],g;for(g in f)b&&(q(f[g])||I(f[g]))?(c[g]&&c[g].constructor===f[g].constructor||(c[g]=new f[g].constructor),K(b,c[g],f[g])):c[g]=f[g]}return c}F.extend=K;E.extend=function(a){return K(E,a)};\nfunction L(a){return C(a)?function(b,c){return sa(c,a)}:D(a)?a:a instanceof B?function(b,c){return a.is(c)}:a?function(b,c){return c===a}:function(){return!1}}E.filter=function(a){var b=L(a);return F(t.call(this,function(a,d){return b.call(a,d,a)}))};function M(a,b){return b?a.filter(b):a}var ua=/\\S+/g;function N(a){return C(a)?a.match(ua)||[]:[]}E.hasClass=function(a){return!!a&&u.call(this,function(b){return x(b)&&b.classList.contains(a)})};\nE.removeAttr=function(a){var b=N(a);return this.each(function(a,d){x(d)&&J(b,function(a,b){d.removeAttribute(b)})})};E.attr=function(a,b){if(a){if(C(a)){if(2>arguments.length){if(!this[0]||!x(this[0]))return;var c=this[0].getAttribute(a);return null===c?void 0:c}return void 0===b?this:null===b?this.removeAttr(a):this.each(function(c,h){x(h)&&h.setAttribute(a,b)})}for(c in a)this.attr(c,a[c]);return this}};\nE.toggleClass=function(a,b){var c=N(a),d=void 0!==b;return this.each(function(a,f){x(f)&&J(c,function(a,c){d?b?f.classList.add(c):f.classList.remove(c):f.classList.toggle(c)})})};E.addClass=function(a){return this.toggleClass(a,!0)};E.removeClass=function(a){return arguments.length?this.toggleClass(a,!1):this.attr(\"class\",\"\")};\nfunction O(a,b,c,d){for(var h=[],f=D(b),g=d&&L(d),y=0,z=a.length;y<z;y++)if(f){var l=b(a[y]);l.length&&ja.apply(h,l)}else for(l=a[y][b];!(null==l||d&&g(-1,l));)h.push(l),l=c?l[b]:null;return h}function P(a){return 1<a.length?t.call(a,function(a,c,d){return ha.call(d,a)===c}):a}F.unique=P;E.add=function(a,b){return F(P(this.get().concat(F(a,b).get())))};function Q(a,b,c){if(x(a)){var d=m.getComputedStyle(a,null);return c?d.getPropertyValue(b)||void 0:d[b]||a.style[b]}}\nfunction R(a,b){return parseInt(Q(a,b),10)||0}var S=/^--/,T={},va=ca.style,wa=[\"webkit\",\"moz\",\"ms\"];function xa(a,b){void 0===b&&(b=S.test(a));if(b)return a;if(!T[a]){b=G(a);var c=\"\"+b[0].toUpperCase()+b.slice(1);b=(b+\" \"+wa.join(c+\" \")+c).split(\" \");J(b,function(b,c){if(c in va)return T[a]=c,!1})}return T[a]}\nvar ya={animationIterationCount:!0,columnCount:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0};function za(a,b,c){void 0===c&&(c=S.test(a));return c||ya[a]||!ta(b)?b:b+\"px\"}\nE.css=function(a,b){if(C(a)){var c=S.test(a);a=xa(a,c);if(2>arguments.length)return this[0]&&Q(this[0],a,c);if(!a)return this;b=za(a,b,c);return this.each(function(d,f){x(f)&&(c?f.style.setProperty(a,b):f.style[a]=b)})}for(var d in a)this.css(d,a[d]);return this};var Aa=/^\\s+|\\s+$/;function Ba(a,b){a=a.dataset[b]||a.dataset[G(b)];return Aa.test(a)?a:aa(JSON.parse,a)}\nE.data=function(a,b){if(!a){if(!this[0])return;var c={},d;for(d in this[0].dataset)c[d]=Ba(this[0],d);return c}if(C(a))return 2>arguments.length?this[0]&&Ba(this[0],a):void 0===b?this:this.each(function(c,d){c=b;c=aa(JSON.stringify,c);d.dataset[G(a)]=c});for(d in a)this.data(d,a[d]);return this};function Ca(a,b){var c=a.documentElement;return Math.max(a.body[\"scroll\"+b],c[\"scroll\"+b],a.body[\"offset\"+b],c[\"offset\"+b],c[\"client\"+b])}\nfunction Da(a,b){return R(a,\"border\"+(b?\"Left\":\"Top\")+\"Width\")+R(a,\"padding\"+(b?\"Left\":\"Top\"))+R(a,\"padding\"+(b?\"Right\":\"Bottom\"))+R(a,\"border\"+(b?\"Right\":\"Bottom\")+\"Width\")}\nJ([!0,!1],function(a,b){J([\"Width\",\"Height\"],function(a,d){E[(b?\"outer\":\"inner\")+d]=function(c){if(this[0])return H(this[0])?b?this[0][\"inner\"+d]:this[0].document.documentElement[\"client\"+d]:w(this[0])?Ca(this[0],d):this[0][(b?\"offset\":\"client\")+d]+(c&&b?R(this[0],\"margin\"+(a?\"Top\":\"Left\"))+R(this[0],\"margin\"+(a?\"Bottom\":\"Right\")):0)}})});\nJ([\"Width\",\"Height\"],function(a,b){var c=b.toLowerCase();E[c]=function(d){if(!this[0])return void 0===d?void 0:this;if(!arguments.length)return H(this[0])?this[0].document.documentElement[\"client\"+b]:w(this[0])?Ca(this[0],b):this[0].getBoundingClientRect()[c]-Da(this[0],!a);var h=parseInt(d,10);return this.each(function(b,d){x(d)&&(b=Q(d,\"boxSizing\"),d.style[c]=za(c,h+(\"border-box\"===b?Da(d,!a):0)))})}});var U={};\nE.toggle=function(a){return this.each(function(b,c){if(x(c))if(void 0===a?\"none\"===Q(c,\"display\"):a){if(c.style.display=c.___cd||\"\",\"none\"===Q(c,\"display\")){b=c.style;c=c.tagName;if(U[c])c=U[c];else{var d=n(c);k.body.insertBefore(d,null);var h=Q(d,\"display\");k.body.removeChild(d);c=U[c]=\"none\"!==h?h:\"block\"}b.display=c}}else c.___cd=Q(c,\"display\"),c.style.display=\"none\"})};E.hide=function(){return this.toggle(!1)};E.show=function(){return this.toggle(!0)};\nfunction Ea(a,b){return!b||!u.call(b,function(b){return 0>a.indexOf(b)})}var V={focus:\"focusin\",blur:\"focusout\"},W={mouseenter:\"mouseover\",mouseleave:\"mouseout\"},Fa=/^(mouse|pointer|contextmenu|drag|drop|click|dblclick)/i;function Ga(a,b,c,d,h){var f=a.___ce=a.___ce||{};f[b]=f[b]||[];f[b].push([c,d,h]);a.addEventListener(b,h)}function X(a){a=a.split(\".\");return[a[0],a.slice(1).sort()]}\nfunction Y(a,b,c,d,h){var f=a.___ce=a.___ce||{};if(b)f[b]&&(f[b]=f[b].filter(function(f){var g=f[0],z=f[1];f=f[2];if(h&&f.guid!==h.guid||!Ea(g,c)||d&&d!==z)return!0;a.removeEventListener(b,f)}));else for(b in f)Y(a,b,c,d,h)}\nE.off=function(a,b,c){var d=this;if(void 0===a)this.each(function(a,b){(x(b)||w(b)||H(b))&&Y(b)});else if(C(a))D(b)&&(c=b,b=\"\"),J(N(a),function(a,h){a=X(h);h=a[0];var f=a[1],g=W[h]||V[h]||h;d.each(function(a,d){(x(d)||w(d)||H(d))&&Y(d,g,f,b,c)})});else for(var h in a)this.off(h,a[h]);return this};\nE.on=function(a,b,c,d,h){var f=this;if(!C(a)){for(var g in a)this.on(g,b,c,a[g],h);return this}C(b)||(void 0!==b&&null!==b&&(void 0!==c&&(d=c),c=b),b=\"\");D(d)||(d=c,c=void 0);if(!d)return this;J(N(a),function(a,g){a=X(g);g=a[0];var l=a[1],z=W[g]||V[g]||g,y=g in W,Ka=g in V;z&&f.each(function(a,f){if(x(f)||w(f)||H(f))a=function La(a){if(a.target[\"___i\"+a.type])return a.stopImmediatePropagation();if(!a.namespace||Ea(l,a.namespace.split(\".\")))if(b||!(Ka&&(a.target!==f||a.___ot===z)||y&&a.relatedTarget&&\nf.contains(a.relatedTarget))){var g=f;if(b){for(var A=a.target;!sa(A,b);){if(A===f)return;A=A.parentNode;if(!A)return}g=A;a.___cd=!0}a.___cd&&Object.defineProperty(a,\"currentTarget\",{configurable:!0,get:function(){return g}});Object.defineProperty(a,\"data\",{configurable:!0,get:function(){return c}});A=d.call(g,a,a.___td);h&&Y(f,z,l,b,La);!1===A&&(a.preventDefault(),a.stopPropagation())}},a.guid=d.guid=d.guid||F.guid++,Ga(f,z,l,b,a)})});return this};E.one=function(a,b,c,d){return this.on(a,b,c,d,!0)};\nE.ready=function(a){function b(){return setTimeout(a,0,F)}\"loading\"!==k.readyState?b():k.addEventListener(\"DOMContentLoaded\",b);return this};E.trigger=function(a,b){if(C(a)){var c=X(a),d=c[0];c=c[1];var h=W[d]||V[d]||d;if(!h)return this;var f=Fa.test(h)?\"MouseEvents\":\"HTMLEvents\";a=k.createEvent(f);a.initEvent(h,!0,!0);a.namespace=c.join(\".\");a.___ot=d}a.___td=b;var g=a.___ot in V;return this.each(function(b,c){g&&D(c[a.___ot])&&(c[\"___i\"+a.type]=!0,c[a.___ot](),c[\"___i\"+a.type]=!1);c.dispatchEvent(a)})};\nfunction Ha(a){return a.multiple&&a.options?O(t.call(a.options,function(a){return a.selected&&!a.disabled&&!a.parentNode.disabled}),\"value\"):a.value||\"\"}var Ia=/%20/g,Ja=/\\r?\\n/g,Ma=/file|reset|submit|button|image/i,Na=/radio|checkbox/i;\nE.serialize=function(){var a=\"\";this.each(function(b,c){J(c.elements||[c],function(b,c){c.disabled||!c.name||\"FIELDSET\"===c.tagName||Ma.test(c.type)||Na.test(c.type)&&!c.checked||(b=Ha(c),void 0!==b&&(b=q(b)?b:[b],J(b,function(b,d){b=a;d=\"&\"+encodeURIComponent(c.name)+\"=\"+encodeURIComponent(d.replace(Ja,\"\\r\\n\")).replace(Ia,\"+\");a=b+d})))})});return a.slice(1)};\nE.val=function(a){return arguments.length?this.each(function(b,c){if((b=c.multiple&&c.options)||Na.test(c.type)){var d=q(a)?ia.call(a,String):null===a?[]:[String(a)];b?J(c.options,function(a,b){b.selected=0<=d.indexOf(b.value)},!0):c.checked=0<=d.indexOf(c.value)}else c.value=void 0===a||null===a?\"\":a}):this[0]&&Ha(this[0])};E.clone=function(){return this.map(function(a,b){return b.cloneNode(!0)})};E.detach=function(a){M(this,a).each(function(a,c){c.parentNode&&c.parentNode.removeChild(c)});return this};\nvar Oa=/^\\s*<(\\w+)[^>]*>/,Pa=/^<(\\w+)\\s*\\/?>(?:<\\/\\1>)?$/,Qa={\"*\":ca,tr:da,td:ea,th:ea,thead:p,tbody:p,tfoot:p};function qa(a){if(!C(a))return[];if(Pa.test(a))return[n(RegExp.$1)];var b=Oa.test(a)&&RegExp.$1;b=Qa[b]||Qa[\"*\"];b.innerHTML=a;return F(b.childNodes).detach().get()}F.parseHTML=qa;E.empty=function(){return this.each(function(a,b){for(;b.firstChild;)b.removeChild(b.firstChild)})};\nE.html=function(a){return arguments.length?void 0===a?this:this.each(function(b,c){x(c)&&(c.innerHTML=a)}):this[0]&&this[0].innerHTML};E.remove=function(a){M(this,a).detach().off();return this};E.text=function(a){return void 0===a?this[0]?this[0].textContent:\"\":this.each(function(b,c){x(c)&&(c.textContent=a)})};E.unwrap=function(){this.parent().each(function(a,b){\"BODY\"!==b.tagName&&(a=F(b),a.replaceWith(a.children()))});return this};\nE.offset=function(){var a=this[0];if(a)return a=a.getBoundingClientRect(),{top:a.top+m.pageYOffset,left:a.left+m.pageXOffset}};E.offsetParent=function(){return this.map(function(a,b){for(a=b.offsetParent;a&&\"static\"===Q(a,\"position\");)a=a.offsetParent;return a||ba})};\nE.position=function(){var a=this[0];if(a){var b=\"fixed\"===Q(a,\"position\"),c=b?a.getBoundingClientRect():this.offset();if(!b){var d=a.ownerDocument;for(b=a.offsetParent||d.documentElement;(b===d.body||b===d.documentElement)&&\"static\"===Q(b,\"position\");)b=b.parentNode;b!==a&&x(b)&&(d=F(b).offset(),c.top-=d.top+R(b,\"borderTopWidth\"),c.left-=d.left+R(b,\"borderLeftWidth\"))}return{top:c.top-R(a,\"marginTop\"),left:c.left-R(a,\"marginLeft\")}}};\nE.children=function(a){return M(F(P(O(this,function(a){return a.children}))),a)};E.contents=function(){return F(P(O(this,function(a){return\"IFRAME\"===a.tagName?[a.contentDocument]:\"TEMPLATE\"===a.tagName?a.content.childNodes:a.childNodes})))};E.find=function(a){return F(P(O(this,function(b){return v(a,b)})))};var Ra=/^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g,Sa=/^$|^module$|\\/(java|ecma)script/i,Ta=[\"type\",\"src\",\"nonce\",\"noModule\"];\nfunction Ua(a,b){a=F(a);a.filter(\"script\").add(a.find(\"script\")).each(function(a,d){if(Sa.test(d.type)&&ba.contains(d)){var c=n(\"script\");c.text=d.textContent.replace(Ra,\"\");J(Ta,function(a,b){d[b]&&(c[b]=d[b])});b.head.insertBefore(c,null);b.head.removeChild(c)}})}\nfunction Z(a,b,c,d,h,f,g,y){J(a,function(a,f){J(F(f),function(a,f){J(F(b),function(b,g){var l=c?g:f;b=c?a:b;g=c?f:g;l=b?l.cloneNode(!0):l;b=!b;h?g.insertBefore(l,d?g.firstChild:null):g.parentNode.insertBefore(l,d?g:g.nextSibling);b&&Ua(l,g.ownerDocument)},y)},g)},f);return b}E.after=function(){return Z(arguments,this,!1,!1,!1,!0,!0)};E.append=function(){return Z(arguments,this,!1,!1,!0)};E.appendTo=function(a){return Z(arguments,this,!0,!1,!0)};E.before=function(){return Z(arguments,this,!1,!0)};\nE.insertAfter=function(a){return Z(arguments,this,!0,!1,!1,!1,!1,!0)};E.insertBefore=function(a){return Z(arguments,this,!0,!0)};E.prepend=function(){return Z(arguments,this,!1,!0,!0,!0,!0)};E.prependTo=function(a){return Z(arguments,this,!0,!0,!0,!1,!1,!0)};E.replaceWith=function(a){return this.before(a).remove()};E.replaceAll=function(a){F(a).replaceWith(this);return this};E.wrapAll=function(a){a=F(a);for(var b=a[0];b.children.length;)b=b.firstElementChild;this.first().before(a);return this.appendTo(b)};\nE.wrap=function(a){return this.each(function(b,c){var d=F(a)[0];F(c).wrapAll(b?d.cloneNode(!0):d)})};E.wrapInner=function(a){return this.each(function(b,c){b=F(c);c=b.contents();c.length?c.wrapAll(a):b.append(a)})};E.has=function(a){var b=C(a)?function(b,d){return v(a,d).length}:function(b,d){return d.contains(a)};return this.filter(b)};E.is=function(a){var b=L(a);return u.call(this,function(a,d){return b.call(a,d,a)})};E.next=function(a,b,c){return M(F(P(O(this,\"nextElementSibling\",b,c))),a)};\nE.nextAll=function(a){return this.next(a,!0)};E.nextUntil=function(a,b){return this.next(b,!0,a)};E.not=function(a){var b=L(a);return this.filter(function(c,d){return(!C(a)||x(d))&&!b.call(d,c,d)})};E.parent=function(a){return M(F(P(O(this,\"parentNode\"))),a)};E.index=function(a){var b=a?F(a)[0]:this[0];a=a?this:F(b).parent().children();return ha.call(a,b)};E.closest=function(a){var b=this.filter(a);if(b.length)return b;var c=this.parent();return c.length?c.closest(a):b};\nE.parents=function(a,b){return M(F(P(O(this,\"parentElement\",!0,b))),a)};E.parentsUntil=function(a,b){return this.parents(b,a)};E.prev=function(a,b,c){return M(F(P(O(this,\"previousElementSibling\",b,c))),a)};E.prevAll=function(a){return this.prev(a,!0)};E.prevUntil=function(a,b){return this.prev(b,!0,a)};E.siblings=function(a){return M(F(P(O(this,function(a){return F(a).parent().children().not(a)}))),a)};\"undefined\"!==typeof exports?module.exports=F:m.cash=m.$=F;\n})();\n/*!\n * Flickity PACKAGED v2.2.2\n * Touch, responsive, flickable carousels\n *\n * Licensed GPLv3 for open source use\n * or Flickity Commercial License for commercial use\n *\n * https://flickity.metafizzy.co\n * Copyright 2015-2021 Metafizzy\n */\n\n/**\n * Bridget makes jQuery widgets\n * v2.0.1\n * MIT license\n */\n\n/* jshint browser: true, strict: true, undef: true, unused: true */\n\n( function( window, factory ) {\n  // universal module definition\n  /*jshint strict: false */ /* globals define, module, require */\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( 'jquery-bridget/jquery-bridget',[ 'jquery' ], function( jQuery ) {\n      return factory( window, jQuery );\n    });\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory(\n      window,\n      require('jquery')\n    );\n  } else {\n    // browser global\n    window.jQueryBridget = factory(\n      window,\n      window.jQuery\n    );\n  }\n\n}( window, function factory( window, jQuery ) {\n'use strict';\n\n// ----- utils ----- //\n\nvar arraySlice = Array.prototype.slice;\n\n// helper function for logging errors\n// $.error breaks jQuery chaining\nvar console = window.console;\nvar logError = typeof console == 'undefined' ? function() {} :\n  function( message ) {\n    console.error( message );\n  };\n\n// ----- jQueryBridget ----- //\n\nfunction jQueryBridget( namespace, PluginClass, $ ) {\n  $ = $ || jQuery || window.jQuery;\n  if ( !$ ) {\n    return;\n  }\n\n  // add option method -> $().plugin('option', {...})\n  if ( !PluginClass.prototype.option ) {\n    // option setter\n    PluginClass.prototype.option = function( opts ) {\n      // bail out if not an object\n      if ( !$.isPlainObject( opts ) ){\n        return;\n      }\n      this.options = $.extend( true, this.options, opts );\n    };\n  }\n\n  // make jQuery plugin\n  $.fn[ namespace ] = function( arg0 /*, arg1 */ ) {\n    if ( typeof arg0 == 'string' ) {\n      // method call $().plugin( 'methodName', { options } )\n      // shift arguments by 1\n      var args = arraySlice.call( arguments, 1 );\n      return methodCall( this, arg0, args );\n    }\n    // just $().plugin({ options })\n    plainCall( this, arg0 );\n    return this;\n  };\n\n  // $().plugin('methodName')\n  function methodCall( $elems, methodName, args ) {\n    var returnValue;\n    var pluginMethodStr = '$().' + namespace + '(\"' + methodName + '\")';\n\n    $elems.each( function( i, elem ) {\n      // get instance\n      var instance = $.data( elem, namespace );\n      if ( !instance ) {\n        logError( namespace + ' not initialized. Cannot call methods, i.e. ' +\n          pluginMethodStr );\n        return;\n      }\n\n      var method = instance[ methodName ];\n      if ( !method || methodName.charAt(0) == '_' ) {\n        logError( pluginMethodStr + ' is not a valid method' );\n        return;\n      }\n\n      // apply method, get return value\n      var value = method.apply( instance, args );\n      // set return value if value is returned, use only first value\n      returnValue = returnValue === undefined ? value : returnValue;\n    });\n\n    return returnValue !== undefined ? returnValue : $elems;\n  }\n\n  function plainCall( $elems, options ) {\n    $elems.each( function( i, elem ) {\n      var instance = $.data( elem, namespace );\n      if ( instance ) {\n        // set options & init\n        instance.option( options );\n        instance._init();\n      } else {\n        // initialize new instance\n        instance = new PluginClass( elem, options );\n        $.data( elem, namespace, instance );\n      }\n    });\n  }\n\n  updateJQuery( $ );\n\n}\n\n// ----- updateJQuery ----- //\n\n// set $.bridget for v1 backwards compatibility\nfunction updateJQuery( $ ) {\n  if ( !$ || ( $ && $.bridget ) ) {\n    return;\n  }\n  $.bridget = jQueryBridget;\n}\n\nupdateJQuery( jQuery || window.jQuery );\n\n// -----  ----- //\n\nreturn jQueryBridget;\n\n}));\n\n/**\n * EvEmitter v1.1.0\n * Lil' event emitter\n * MIT License\n */\n\n/* jshint unused: true, undef: true, strict: true */\n\n( function( global, factory ) {\n  // universal module definition\n  /* jshint strict: false */ /* globals define, module, window */\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD - RequireJS\n    define( 'ev-emitter/ev-emitter',factory );\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS - Browserify, Webpack\n    module.exports = factory();\n  } else {\n    // Browser globals\n    global.EvEmitter = factory();\n  }\n\n}( typeof window != 'undefined' ? window : this, function() {\n\n\n\nfunction EvEmitter() {}\n\nvar proto = EvEmitter.prototype;\n\nproto.on = function( eventName, listener ) {\n  if ( !eventName || !listener ) {\n    return;\n  }\n  // set events hash\n  var events = this._events = this._events || {};\n  // set listeners array\n  var listeners = events[ eventName ] = events[ eventName ] || [];\n  // only add once\n  if ( listeners.indexOf( listener ) == -1 ) {\n    listeners.push( listener );\n  }\n\n  return this;\n};\n\nproto.once = function( eventName, listener ) {\n  if ( !eventName || !listener ) {\n    return;\n  }\n  // add event\n  this.on( eventName, listener );\n  // set once flag\n  // set onceEvents hash\n  var onceEvents = this._onceEvents = this._onceEvents || {};\n  // set onceListeners object\n  var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};\n  // set flag\n  onceListeners[ listener ] = true;\n\n  return this;\n};\n\nproto.off = function( eventName, listener ) {\n  var listeners = this._events && this._events[ eventName ];\n  if ( !listeners || !listeners.length ) {\n    return;\n  }\n  var index = listeners.indexOf( listener );\n  if ( index != -1 ) {\n    listeners.splice( index, 1 );\n  }\n\n  return this;\n};\n\nproto.emitEvent = function( eventName, args ) {\n  var listeners = this._events && this._events[ eventName ];\n  if ( !listeners || !listeners.length ) {\n    return;\n  }\n  // copy over to avoid interference if .off() in listener\n  listeners = listeners.slice(0);\n  args = args || [];\n  // once stuff\n  var onceListeners = this._onceEvents && this._onceEvents[ eventName ];\n\n  for ( var i=0; i < listeners.length; i++ ) {\n    var listener = listeners[i]\n    var isOnce = onceListeners && onceListeners[ listener ];\n    if ( isOnce ) {\n      // remove listener\n      // remove before trigger to prevent recursion\n      this.off( eventName, listener );\n      // unset once flag\n      delete onceListeners[ listener ];\n    }\n    // trigger listener\n    listener.apply( this, args );\n  }\n\n  return this;\n};\n\nproto.allOff = function() {\n  delete this._events;\n  delete this._onceEvents;\n};\n\nreturn EvEmitter;\n\n}));\n\n/*!\n * getSize v2.0.3\n * measure size of elements\n * MIT license\n */\n\n/* jshint browser: true, strict: true, undef: true, unused: true */\n/* globals console: false */\n\n( function( window, factory ) {\n  /* jshint strict: false */ /* globals define, module */\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( 'get-size/get-size',factory );\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory();\n  } else {\n    // browser global\n    window.getSize = factory();\n  }\n\n})( window, function factory() {\n'use strict';\n\n// -------------------------- helpers -------------------------- //\n\n// get a number from a string, not a percentage\nfunction getStyleSize( value ) {\n  var num = parseFloat( value );\n  // not a percent like '100%', and a number\n  var isValid = value.indexOf('%') == -1 && !isNaN( num );\n  return isValid && num;\n}\n\nfunction noop() {}\n\nvar logError = typeof console == 'undefined' ? noop :\n  function( message ) {\n    console.error( message );\n  };\n\n// -------------------------- measurements -------------------------- //\n\nvar measurements = [\n  'paddingLeft',\n  'paddingRight',\n  'paddingTop',\n  'paddingBottom',\n  'marginLeft',\n  'marginRight',\n  'marginTop',\n  'marginBottom',\n  'borderLeftWidth',\n  'borderRightWidth',\n  'borderTopWidth',\n  'borderBottomWidth'\n];\n\nvar measurementsLength = measurements.length;\n\nfunction getZeroSize() {\n  var size = {\n    width: 0,\n    height: 0,\n    innerWidth: 0,\n    innerHeight: 0,\n    outerWidth: 0,\n    outerHeight: 0\n  };\n  for ( var i=0; i < measurementsLength; i++ ) {\n    var measurement = measurements[i];\n    size[ measurement ] = 0;\n  }\n  return size;\n}\n\n// -------------------------- getStyle -------------------------- //\n\n/**\n * getStyle, get style of element, check for Firefox bug\n * https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n */\nfunction getStyle( elem ) {\n  var style = getComputedStyle( elem );\n  if ( !style ) {\n    logError( 'Style returned ' + style +\n      '. Are you running this code in a hidden iframe on Firefox? ' +\n      'See https://bit.ly/getsizebug1' );\n  }\n  return style;\n}\n\n// -------------------------- setup -------------------------- //\n\nvar isSetup = false;\n\nvar isBoxSizeOuter;\n\n/**\n * setup\n * check isBoxSizerOuter\n * do on first getSize() rather than on page load for Firefox bug\n */\nfunction setup() {\n  // setup once\n  if ( isSetup ) {\n    return;\n  }\n  isSetup = true;\n\n  // -------------------------- box sizing -------------------------- //\n\n  /**\n   * Chrome & Safari measure the outer-width on style.width on border-box elems\n   * IE11 & Firefox<29 measures the inner-width\n   */\n  var div = document.createElement('div');\n  div.style.width = '200px';\n  div.style.padding = '1px 2px 3px 4px';\n  div.style.borderStyle = 'solid';\n  div.style.borderWidth = '1px 2px 3px 4px';\n  div.style.boxSizing = 'border-box';\n\n  var body = document.body || document.documentElement;\n  body.appendChild( div );\n  var style = getStyle( div );\n  // round value for browser zoom. desandro/masonry#928\n  isBoxSizeOuter = Math.round( getStyleSize( style.width ) ) == 200;\n  getSize.isBoxSizeOuter = isBoxSizeOuter;\n\n  body.removeChild( div );\n}\n\n// -------------------------- getSize -------------------------- //\n\nfunction getSize( elem ) {\n  setup();\n\n  // use querySeletor if elem is string\n  if ( typeof elem == 'string' ) {\n    elem = document.querySelector( elem );\n  }\n\n  // do not proceed on non-objects\n  if ( !elem || typeof elem != 'object' || !elem.nodeType ) {\n    return;\n  }\n\n  var style = getStyle( elem );\n\n  // if hidden, everything is 0\n  if ( style.display == 'none' ) {\n    return getZeroSize();\n  }\n\n  var size = {};\n  size.width = elem.offsetWidth;\n  size.height = elem.offsetHeight;\n\n  var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box';\n\n  // get all measurements\n  for ( var i=0; i < measurementsLength; i++ ) {\n    var measurement = measurements[i];\n    var value = style[ measurement ];\n    var num = parseFloat( value );\n    // any 'auto', 'medium' value will be 0\n    size[ measurement ] = !isNaN( num ) ? num : 0;\n  }\n\n  var paddingWidth = size.paddingLeft + size.paddingRight;\n  var paddingHeight = size.paddingTop + size.paddingBottom;\n  var marginWidth = size.marginLeft + size.marginRight;\n  var marginHeight = size.marginTop + size.marginBottom;\n  var borderWidth = size.borderLeftWidth + size.borderRightWidth;\n  var borderHeight = size.borderTopWidth + size.borderBottomWidth;\n\n  var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;\n\n  // overwrite width and height if we can get it from style\n  var styleWidth = getStyleSize( style.width );\n  if ( styleWidth !== false ) {\n    size.width = styleWidth +\n      // add padding and border unless it's already including it\n      ( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth );\n  }\n\n  var styleHeight = getStyleSize( style.height );\n  if ( styleHeight !== false ) {\n    size.height = styleHeight +\n      // add padding and border unless it's already including it\n      ( isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight );\n  }\n\n  size.innerWidth = size.width - ( paddingWidth + borderWidth );\n  size.innerHeight = size.height - ( paddingHeight + borderHeight );\n\n  size.outerWidth = size.width + marginWidth;\n  size.outerHeight = size.height + marginHeight;\n\n  return size;\n}\n\nreturn getSize;\n\n});\n\n/**\n * matchesSelector v2.0.2\n * matchesSelector( element, '.selector' )\n * MIT license\n */\n\n/*jshint browser: true, strict: true, undef: true, unused: true */\n\n( function( window, factory ) {\n  /*global define: false, module: false */\n  'use strict';\n  // universal module definition\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( 'desandro-matches-selector/matches-selector',factory );\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory();\n  } else {\n    // browser global\n    window.matchesSelector = factory();\n  }\n\n}( window, function factory() {\n  'use strict';\n\n  var matchesMethod = ( function() {\n    var ElemProto = window.Element.prototype;\n    // check for the standard method name first\n    if ( ElemProto.matches ) {\n      return 'matches';\n    }\n    // check un-prefixed\n    if ( ElemProto.matchesSelector ) {\n      return 'matchesSelector';\n    }\n    // check vendor prefixes\n    var prefixes = [ 'webkit', 'moz', 'ms', 'o' ];\n\n    for ( var i=0; i < prefixes.length; i++ ) {\n      var prefix = prefixes[i];\n      var method = prefix + 'MatchesSelector';\n      if ( ElemProto[ method ] ) {\n        return method;\n      }\n    }\n  })();\n\n  return function matchesSelector( elem, selector ) {\n    return elem[ matchesMethod ]( selector );\n  };\n\n}));\n\n/**\n * Fizzy UI utils v2.0.7\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n\n( function( window, factory ) {\n  // universal module definition\n  /*jshint strict: false */ /*globals define, module, require */\n\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( 'fizzy-ui-utils/utils',[\n      'desandro-matches-selector/matches-selector'\n    ], function( matchesSelector ) {\n      return factory( window, matchesSelector );\n    });\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory(\n      window,\n      require('desandro-matches-selector')\n    );\n  } else {\n    // browser global\n    window.fizzyUIUtils = factory(\n      window,\n      window.matchesSelector\n    );\n  }\n\n}( window, function factory( window, matchesSelector ) {\n\n\n\nvar utils = {};\n\n// ----- extend ----- //\n\n// extends objects\nutils.extend = function( a, b ) {\n  for ( var prop in b ) {\n    a[ prop ] = b[ prop ];\n  }\n  return a;\n};\n\n// ----- modulo ----- //\n\nutils.modulo = function( num, div ) {\n  return ( ( num % div ) + div ) % div;\n};\n\n// ----- makeArray ----- //\n\nvar arraySlice = Array.prototype.slice;\n\n// turn element or nodeList into an array\nutils.makeArray = function( obj ) {\n  if ( Array.isArray( obj ) ) {\n    // use object if already an array\n    return obj;\n  }\n  // return empty array if undefined or null. #6\n  if ( obj === null || obj === undefined ) {\n    return [];\n  }\n\n  var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n  if ( isArrayLike ) {\n    // convert nodeList to array\n    return arraySlice.call( obj );\n  }\n\n  // array of single index\n  return [ obj ];\n};\n\n// ----- removeFrom ----- //\n\nutils.removeFrom = function( ary, obj ) {\n  var index = ary.indexOf( obj );\n  if ( index != -1 ) {\n    ary.splice( index, 1 );\n  }\n};\n\n// ----- getParent ----- //\n\nutils.getParent = function( elem, selector ) {\n  while ( elem.parentNode && elem != document.body ) {\n    elem = elem.parentNode;\n    if ( matchesSelector( elem, selector ) ) {\n      return elem;\n    }\n  }\n};\n\n// ----- getQueryElement ----- //\n\n// use element as selector string\nutils.getQueryElement = function( elem ) {\n  if ( typeof elem == 'string' ) {\n    return document.querySelector( elem );\n  }\n  return elem;\n};\n\n// ----- handleEvent ----- //\n\n// enable .ontype to trigger from .addEventListener( elem, 'type' )\nutils.handleEvent = function( event ) {\n  var method = 'on' + event.type;\n  if ( this[ method ] ) {\n    this[ method ]( event );\n  }\n};\n\n// ----- filterFindElements ----- //\n\nutils.filterFindElements = function( elems, selector ) {\n  // make array of elems\n  elems = utils.makeArray( elems );\n  var ffElems = [];\n\n  elems.forEach( function( elem ) {\n    // check that elem is an actual element\n    if ( !( elem instanceof HTMLElement ) ) {\n      return;\n    }\n    // add elem if no selector\n    if ( !selector ) {\n      ffElems.push( elem );\n      return;\n    }\n    // filter & find items if we have a selector\n    // filter\n    if ( matchesSelector( elem, selector ) ) {\n      ffElems.push( elem );\n    }\n    // find children\n    var childElems = elem.querySelectorAll( selector );\n    // concat childElems to filterFound array\n    for ( var i=0; i < childElems.length; i++ ) {\n      ffElems.push( childElems[i] );\n    }\n  });\n\n  return ffElems;\n};\n\n// ----- debounceMethod ----- //\n\nutils.debounceMethod = function( _class, methodName, threshold ) {\n  threshold = threshold || 100;\n  // original method\n  var method = _class.prototype[ methodName ];\n  var timeoutName = methodName + 'Timeout';\n\n  _class.prototype[ methodName ] = function() {\n    var timeout = this[ timeoutName ];\n    clearTimeout( timeout );\n\n    var args = arguments;\n    var _this = this;\n    this[ timeoutName ] = setTimeout( function() {\n      method.apply( _this, args );\n      delete _this[ timeoutName ];\n    }, threshold );\n  };\n};\n\n// ----- docReady ----- //\n\nutils.docReady = function( callback ) {\n  var readyState = document.readyState;\n  if ( readyState == 'complete' || readyState == 'interactive' ) {\n    // do async to allow for other scripts to run. metafizzy/flickity#441\n    setTimeout( callback );\n  } else {\n    document.addEventListener( 'DOMContentLoaded', callback );\n  }\n};\n\n// ----- htmlInit ----- //\n\n// http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/\nutils.toDashed = function( str ) {\n  return str.replace( /(.)([A-Z])/g, function( match, $1, $2 ) {\n    return $1 + '-' + $2;\n  }).toLowerCase();\n};\n\nvar console = window.console;\n/**\n * allow user to initialize classes via [data-namespace] or .js-namespace class\n * htmlInit( Widget, 'widgetName' )\n * options are parsed from data-namespace-options\n */\nutils.htmlInit = function( WidgetClass, namespace ) {\n  utils.docReady( function() {\n    var dashedNamespace = utils.toDashed( namespace );\n    var dataAttr = 'data-' + dashedNamespace;\n    var dataAttrElems = document.querySelectorAll( '[' + dataAttr + ']' );\n    var jsDashElems = document.querySelectorAll( '.js-' + dashedNamespace );\n    var elems = utils.makeArray( dataAttrElems )\n      .concat( utils.makeArray( jsDashElems ) );\n    var dataOptionsAttr = dataAttr + '-options';\n    var jQuery = window.jQuery;\n\n    elems.forEach( function( elem ) {\n      var attr = elem.getAttribute( dataAttr ) ||\n        elem.getAttribute( dataOptionsAttr );\n      var options;\n      try {\n        options = attr && JSON.parse( attr );\n      } catch ( error ) {\n        // log error, do not initialize\n        if ( console ) {\n          console.error( 'Error parsing ' + dataAttr + ' on ' + elem.className +\n          ': ' + error );\n        }\n        return;\n      }\n      // initialize\n      var instance = new WidgetClass( elem, options );\n      // make available via $().data('namespace')\n      if ( jQuery ) {\n        jQuery.data( elem, namespace, instance );\n      }\n    });\n\n  });\n};\n\n// -----  ----- //\n\nreturn utils;\n\n}));\n\n// Flickity.Cell\n( function( window, factory ) {\n  // universal module definition\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( 'flickity/js/cell',[\n      'get-size/get-size',\n    ], function( getSize ) {\n      return factory( window, getSize );\n    } );\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory(\n        window,\n        require('get-size')\n    );\n  } else {\n    // browser global\n    window.Flickity = window.Flickity || {};\n    window.Flickity.Cell = factory(\n        window,\n        window.getSize\n    );\n  }\n\n}( window, function factory( window, getSize ) {\n\n\n\nfunction Cell( elem, parent ) {\n  this.element = elem;\n  this.parent = parent;\n\n  this.create();\n}\n\nvar proto = Cell.prototype;\n\nproto.create = function() {\n  this.element.style.position = 'absolute';\n  this.element.setAttribute( 'aria-hidden', 'true' );\n  this.x = 0;\n  this.shift = 0;\n};\n\nproto.destroy = function() {\n  // reset style\n  this.unselect();\n  this.element.style.position = '';\n  var side = this.parent.originSide;\n  this.element.style[ side ] = '';\n  this.element.removeAttribute('aria-hidden');\n};\n\nproto.getSize = function() {\n  this.size = getSize( this.element );\n};\n\nproto.setPosition = function( x ) {\n  this.x = x;\n  this.updateTarget();\n  this.renderPosition( x );\n};\n\n// setDefaultTarget v1 method, backwards compatibility, remove in v3\nproto.updateTarget = proto.setDefaultTarget = function() {\n  var marginProperty = this.parent.originSide == 'left' ? 'marginLeft' : 'marginRight';\n  this.target = this.x + this.size[ marginProperty ] +\n    this.size.width * this.parent.cellAlign;\n};\n\nproto.renderPosition = function( x ) {\n  // render position of cell with in slider\n  var side = this.parent.originSide;\n  this.element.style[ side ] = this.parent.getPositionValue( x );\n};\n\nproto.select = function() {\n  this.element.classList.add('is-selected');\n  this.element.removeAttribute('aria-hidden');\n};\n\nproto.unselect = function() {\n  this.element.classList.remove('is-selected');\n  this.element.setAttribute( 'aria-hidden', 'true' );\n};\n\n/**\n * @param {Integer} shift - 0, 1, or -1\n */\nproto.wrapShift = function( shift ) {\n  this.shift = shift;\n  this.renderPosition( this.x + this.parent.slideableWidth * shift );\n};\n\nproto.remove = function() {\n  this.element.parentNode.removeChild( this.element );\n};\n\nreturn Cell;\n\n} ) );\n\n// slide\n( function( window, factory ) {\n  // universal module definition\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( 'flickity/js/slide',factory );\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory();\n  } else {\n    // browser global\n    window.Flickity = window.Flickity || {};\n    window.Flickity.Slide = factory();\n  }\n\n}( window, function factory() {\n'use strict';\n\nfunction Slide( parent ) {\n  this.parent = parent;\n  this.isOriginLeft = parent.originSide == 'left';\n  this.cells = [];\n  this.outerWidth = 0;\n  this.height = 0;\n}\n\nvar proto = Slide.prototype;\n\nproto.addCell = function( cell ) {\n  this.cells.push( cell );\n  this.outerWidth += cell.size.outerWidth;\n  this.height = Math.max( cell.size.outerHeight, this.height );\n  // first cell stuff\n  if ( this.cells.length == 1 ) {\n    this.x = cell.x; // x comes from first cell\n    var beginMargin = this.isOriginLeft ? 'marginLeft' : 'marginRight';\n    this.firstMargin = cell.size[ beginMargin ];\n  }\n};\n\nproto.updateTarget = function() {\n  var endMargin = this.isOriginLeft ? 'marginRight' : 'marginLeft';\n  var lastCell = this.getLastCell();\n  var lastMargin = lastCell ? lastCell.size[ endMargin ] : 0;\n  var slideWidth = this.outerWidth - ( this.firstMargin + lastMargin );\n  this.target = this.x + this.firstMargin + slideWidth * this.parent.cellAlign;\n};\n\nproto.getLastCell = function() {\n  return this.cells[ this.cells.length - 1 ];\n};\n\nproto.select = function() {\n  this.cells.forEach( function( cell ) {\n    cell.select();\n  } );\n};\n\nproto.unselect = function() {\n  this.cells.forEach( function( cell ) {\n    cell.unselect();\n  } );\n};\n\nproto.getCellElements = function() {\n  return this.cells.map( function( cell ) {\n    return cell.element;\n  } );\n};\n\nreturn Slide;\n\n} ) );\n\n// animate\n( function( window, factory ) {\n  // universal module definition\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( 'flickity/js/animate',[\n      'fizzy-ui-utils/utils',\n    ], function( utils ) {\n      return factory( window, utils );\n    } );\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory(\n        window,\n        require('fizzy-ui-utils')\n    );\n  } else {\n    // browser global\n    window.Flickity = window.Flickity || {};\n    window.Flickity.animatePrototype = factory(\n        window,\n        window.fizzyUIUtils\n    );\n  }\n\n}( window, function factory( window, utils ) {\n\n\n\n// -------------------------- animate -------------------------- //\n\nvar proto = {};\n\nproto.startAnimation = function() {\n  if ( this.isAnimating ) {\n    return;\n  }\n\n  this.isAnimating = true;\n  this.restingFrames = 0;\n  this.animate();\n};\n\nproto.animate = function() {\n  this.applyDragForce();\n  this.applySelectedAttraction();\n\n  var previousX = this.x;\n\n  this.integratePhysics();\n  this.positionSlider();\n  this.settle( previousX );\n  // animate next frame\n  if ( this.isAnimating ) {\n    var _this = this;\n    requestAnimationFrame( function animateFrame() {\n      _this.animate();\n    } );\n  }\n};\n\nproto.positionSlider = function() {\n  var x = this.x;\n  // wrap position around\n  if ( this.options.wrapAround && this.cells.length > 1 ) {\n    x = utils.modulo( x, this.slideableWidth );\n    x -= this.slideableWidth;\n    this.shiftWrapCells( x );\n  }\n\n  this.setTranslateX( x, this.isAnimating );\n  this.dispatchScrollEvent();\n};\n\nproto.setTranslateX = function( x, is3d ) {\n  x += this.cursorPosition;\n  // reverse if right-to-left and using transform\n  x = this.options.rightToLeft ? -x : x;\n  var translateX = this.getPositionValue( x );\n  // use 3D transforms for hardware acceleration on iOS\n  // but use 2D when settled, for better font-rendering\n  this.slider.style.transform = is3d ?\n    'translate3d(' + translateX + ',0,0)' : 'translateX(' + translateX + ')';\n};\n\nproto.dispatchScrollEvent = function() {\n  var firstSlide = this.slides[0];\n  if ( !firstSlide ) {\n    return;\n  }\n  var positionX = -this.x - firstSlide.target;\n  var progress = positionX / this.slidesWidth;\n  this.dispatchEvent( 'scroll', null, [ progress, positionX ] );\n};\n\nproto.positionSliderAtSelected = function() {\n  if ( !this.cells.length ) {\n    return;\n  }\n  this.x = -this.selectedSlide.target;\n  this.velocity = 0; // stop wobble\n  this.positionSlider();\n};\n\nproto.getPositionValue = function( position ) {\n  if ( this.options.percentPosition ) {\n    // percent position, round to 2 digits, like 12.34%\n    return ( Math.round( ( position / this.size.innerWidth ) * 10000 ) * 0.01 ) + '%';\n  } else {\n    // pixel positioning\n    return Math.round( position ) + 'px';\n  }\n};\n\nproto.settle = function( previousX ) {\n  // keep track of frames where x hasn't moved\n  var isResting = !this.isPointerDown &&\n      Math.round( this.x * 100 ) == Math.round( previousX * 100 );\n  if ( isResting ) {\n    this.restingFrames++;\n  }\n  // stop animating if resting for 3 or more frames\n  if ( this.restingFrames > 2 ) {\n    this.isAnimating = false;\n    delete this.isFreeScrolling;\n    // render position with translateX when settled\n    this.positionSlider();\n    this.dispatchEvent( 'settle', null, [ this.selectedIndex ] );\n  }\n};\n\nproto.shiftWrapCells = function( x ) {\n  // shift before cells\n  var beforeGap = this.cursorPosition + x;\n  this._shiftCells( this.beforeShiftCells, beforeGap, -1 );\n  // shift after cells\n  var afterGap = this.size.innerWidth - ( x + this.slideableWidth + this.cursorPosition );\n  this._shiftCells( this.afterShiftCells, afterGap, 1 );\n};\n\nproto._shiftCells = function( cells, gap, shift ) {\n  for ( var i = 0; i < cells.length; i++ ) {\n    var cell = cells[i];\n    var cellShift = gap > 0 ? shift : 0;\n    cell.wrapShift( cellShift );\n    gap -= cell.size.outerWidth;\n  }\n};\n\nproto._unshiftCells = function( cells ) {\n  if ( !cells || !cells.length ) {\n    return;\n  }\n  for ( var i = 0; i < cells.length; i++ ) {\n    cells[i].wrapShift( 0 );\n  }\n};\n\n// -------------------------- physics -------------------------- //\n\nproto.integratePhysics = function() {\n  this.x += this.velocity;\n  this.velocity *= this.getFrictionFactor();\n};\n\nproto.applyForce = function( force ) {\n  this.velocity += force;\n};\n\nproto.getFrictionFactor = function() {\n  return 1 - this.options[ this.isFreeScrolling ? 'freeScrollFriction' : 'friction' ];\n};\n\nproto.getRestingPosition = function() {\n  // my thanks to Steven Wittens, who simplified this math greatly\n  return this.x + this.velocity / ( 1 - this.getFrictionFactor() );\n};\n\nproto.applyDragForce = function() {\n  if ( !this.isDraggable || !this.isPointerDown ) {\n    return;\n  }\n  // change the position to drag position by applying force\n  var dragVelocity = this.dragX - this.x;\n  var dragForce = dragVelocity - this.velocity;\n  this.applyForce( dragForce );\n};\n\nproto.applySelectedAttraction = function() {\n  // do not attract if pointer down or no slides\n  var dragDown = this.isDraggable && this.isPointerDown;\n  if ( dragDown || this.isFreeScrolling || !this.slides.length ) {\n    return;\n  }\n  var distance = this.selectedSlide.target * -1 - this.x;\n  var force = distance * this.options.selectedAttraction;\n  this.applyForce( force );\n};\n\nreturn proto;\n\n} ) );\n\n// Flickity main\n/* eslint-disable max-params */\n( function( window, factory ) {\n  // universal module definition\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( 'flickity/js/flickity',[\n      'ev-emitter/ev-emitter',\n      'get-size/get-size',\n      'fizzy-ui-utils/utils',\n      './cell',\n      './slide',\n      './animate',\n    ], function( EvEmitter, getSize, utils, Cell, Slide, animatePrototype ) {\n      return factory( window, EvEmitter, getSize, utils, Cell, Slide, animatePrototype );\n    } );\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory(\n        window,\n        require('ev-emitter'),\n        require('get-size'),\n        require('fizzy-ui-utils'),\n        require('./cell'),\n        require('./slide'),\n        require('./animate')\n    );\n  } else {\n    // browser global\n    var _Flickity = window.Flickity;\n\n    window.Flickity = factory(\n        window,\n        window.EvEmitter,\n        window.getSize,\n        window.fizzyUIUtils,\n        _Flickity.Cell,\n        _Flickity.Slide,\n        _Flickity.animatePrototype\n    );\n  }\n\n}( window, function factory( window, EvEmitter, getSize,\n    utils, Cell, Slide, animatePrototype ) {\n\n/* eslint-enable max-params */\n\n\n// vars\nvar jQuery = window.jQuery;\nvar getComputedStyle = window.getComputedStyle;\nvar console = window.console;\n\nfunction moveElements( elems, toElem ) {\n  elems = utils.makeArray( elems );\n  while ( elems.length ) {\n    toElem.appendChild( elems.shift() );\n  }\n}\n\n// -------------------------- Flickity -------------------------- //\n\n// globally unique identifiers\nvar GUID = 0;\n// internal store of all Flickity intances\nvar instances = {};\n\nfunction Flickity( element, options ) {\n  var queryElement = utils.getQueryElement( element );\n  if ( !queryElement ) {\n    if ( console ) {\n      console.error( 'Bad element for Flickity: ' + ( queryElement || element ) );\n    }\n    return;\n  }\n  this.element = queryElement;\n  // do not initialize twice on same element\n  if ( this.element.flickityGUID ) {\n    var instance = instances[ this.element.flickityGUID ];\n    if ( instance ) instance.option( options );\n    return instance;\n  }\n\n  // add jQuery\n  if ( jQuery ) {\n    this.$element = jQuery( this.element );\n  }\n  // options\n  this.options = utils.extend( {}, this.constructor.defaults );\n  this.option( options );\n\n  // kick things off\n  this._create();\n}\n\nFlickity.defaults = {\n  accessibility: true,\n  // adaptiveHeight: false,\n  cellAlign: 'center',\n  // cellSelector: undefined,\n  // contain: false,\n  freeScrollFriction: 0.075, // friction when free-scrolling\n  friction: 0.28, // friction when selecting\n  namespaceJQueryEvents: true,\n  // initialIndex: 0,\n  percentPosition: true,\n  resize: true,\n  selectedAttraction: 0.025,\n  setGallerySize: true,\n  // watchCSS: false,\n  // wrapAround: false\n};\n\n// hash of methods triggered on _create()\nFlickity.createMethods = [];\n\nvar proto = Flickity.prototype;\n// inherit EventEmitter\nutils.extend( proto, EvEmitter.prototype );\n\nproto._create = function() {\n  // add id for Flickity.data\n  var id = this.guid = ++GUID;\n  this.element.flickityGUID = id; // expando\n  instances[ id ] = this; // associate via id\n  // initial properties\n  this.selectedIndex = 0;\n  // how many frames slider has been in same position\n  this.restingFrames = 0;\n  // initial physics properties\n  this.x = 0;\n  this.velocity = 0;\n  this.originSide = this.options.rightToLeft ? 'right' : 'left';\n  // create viewport & slider\n  this.viewport = document.createElement('div');\n  this.viewport.className = 'flickity-viewport';\n  this._createSlider();\n\n  if ( this.options.resize || this.options.watchCSS ) {\n    window.addEventListener( 'resize', this );\n  }\n\n  // add listeners from on option\n  for ( var eventName in this.options.on ) {\n    var listener = this.options.on[ eventName ];\n    this.on( eventName, listener );\n  }\n\n  Flickity.createMethods.forEach( function( method ) {\n    this[ method ]();\n  }, this );\n\n  if ( this.options.watchCSS ) {\n    this.watchCSS();\n  } else {\n    this.activate();\n  }\n\n};\n\n/**\n * set options\n * @param {Object} opts - options to extend\n */\nproto.option = function( opts ) {\n  utils.extend( this.options, opts );\n};\n\nproto.activate = function() {\n  if ( this.isActive ) {\n    return;\n  }\n  this.isActive = true;\n  this.element.classList.add('flickity-enabled');\n  if ( this.options.rightToLeft ) {\n    this.element.classList.add('flickity-rtl');\n  }\n\n  this.getSize();\n  // move initial cell elements so they can be loaded as cells\n  var cellElems = this._filterFindCellElements( this.element.children );\n  moveElements( cellElems, this.slider );\n  this.viewport.appendChild( this.slider );\n  this.element.appendChild( this.viewport );\n  // get cells from children\n  this.reloadCells();\n\n  if ( this.options.accessibility ) {\n    // allow element to focusable\n    this.element.tabIndex = 0;\n    // listen for key presses\n    this.element.addEventListener( 'keydown', this );\n  }\n\n  this.emitEvent('activate');\n  this.selectInitialIndex();\n  // flag for initial activation, for using initialIndex\n  this.isInitActivated = true;\n  // ready event. #493\n  this.dispatchEvent('ready');\n};\n\n// slider positions the cells\nproto._createSlider = function() {\n  // slider element does all the positioning\n  var slider = document.createElement('div');\n  slider.className = 'flickity-slider';\n  slider.style[ this.originSide ] = 0;\n  this.slider = slider;\n};\n\nproto._filterFindCellElements = function( elems ) {\n  return utils.filterFindElements( elems, this.options.cellSelector );\n};\n\n// goes through all children\nproto.reloadCells = function() {\n  // collection of item elements\n  this.cells = this._makeCells( this.slider.children );\n  this.positionCells();\n  this._getWrapShiftCells();\n  this.setGallerySize();\n};\n\n/**\n * turn elements into Flickity.Cells\n * @param {[Array, NodeList, HTMLElement]} elems - elements to make into cells\n * @returns {Array} items - collection of new Flickity Cells\n */\nproto._makeCells = function( elems ) {\n  var cellElems = this._filterFindCellElements( elems );\n\n  // create new Flickity for collection\n  var cells = cellElems.map( function( cellElem ) {\n    return new Cell( cellElem, this );\n  }, this );\n\n  return cells;\n};\n\nproto.getLastCell = function() {\n  return this.cells[ this.cells.length - 1 ];\n};\n\nproto.getLastSlide = function() {\n  return this.slides[ this.slides.length - 1 ];\n};\n\n// positions all cells\nproto.positionCells = function() {\n  // size all cells\n  this._sizeCells( this.cells );\n  // position all cells\n  this._positionCells( 0 );\n};\n\n/**\n * position certain cells\n * @param {Integer} index - which cell to start with\n */\nproto._positionCells = function( index ) {\n  index = index || 0;\n  // also measure maxCellHeight\n  // start 0 if positioning all cells\n  this.maxCellHeight = index ? this.maxCellHeight || 0 : 0;\n  var cellX = 0;\n  // get cellX\n  if ( index > 0 ) {\n    var startCell = this.cells[ index - 1 ];\n    cellX = startCell.x + startCell.size.outerWidth;\n  }\n  var len = this.cells.length;\n  for ( var i = index; i < len; i++ ) {\n    var cell = this.cells[i];\n    cell.setPosition( cellX );\n    cellX += cell.size.outerWidth;\n    this.maxCellHeight = Math.max( cell.size.outerHeight, this.maxCellHeight );\n  }\n  // keep track of cellX for wrap-around\n  this.slideableWidth = cellX;\n  // slides\n  this.updateSlides();\n  // contain slides target\n  this._containSlides();\n  // update slidesWidth\n  this.slidesWidth = len ? this.getLastSlide().target - this.slides[0].target : 0;\n};\n\n/**\n * cell.getSize() on multiple cells\n * @param {Array} cells - cells to size\n */\nproto._sizeCells = function( cells ) {\n  cells.forEach( function( cell ) {\n    cell.getSize();\n  } );\n};\n\n// --------------------------  -------------------------- //\n\nproto.updateSlides = function() {\n  this.slides = [];\n  if ( !this.cells.length ) {\n    return;\n  }\n\n  var slide = new Slide( this );\n  this.slides.push( slide );\n  var isOriginLeft = this.originSide == 'left';\n  var nextMargin = isOriginLeft ? 'marginRight' : 'marginLeft';\n\n  var canCellFit = this._getCanCellFit();\n\n  this.cells.forEach( function( cell, i ) {\n    // just add cell if first cell in slide\n    if ( !slide.cells.length ) {\n      slide.addCell( cell );\n      return;\n    }\n\n    var slideWidth = ( slide.outerWidth - slide.firstMargin ) +\n      ( cell.size.outerWidth - cell.size[ nextMargin ] );\n\n    if ( canCellFit.call( this, i, slideWidth ) ) {\n      slide.addCell( cell );\n    } else {\n      // doesn't fit, new slide\n      slide.updateTarget();\n\n      slide = new Slide( this );\n      this.slides.push( slide );\n      slide.addCell( cell );\n    }\n  }, this );\n  // last slide\n  slide.updateTarget();\n  // update .selectedSlide\n  this.updateSelectedSlide();\n};\n\nproto._getCanCellFit = function() {\n  var groupCells = this.options.groupCells;\n  if ( !groupCells ) {\n    return function() {\n      return false;\n    };\n  } else if ( typeof groupCells == 'number' ) {\n    // group by number. 3 -> [0,1,2], [3,4,5], ...\n    var number = parseInt( groupCells, 10 );\n    return function( i ) {\n      return ( i % number ) !== 0;\n    };\n  }\n  // default, group by width of slide\n  // parse '75%\n  var percentMatch = typeof groupCells == 'string' &&\n    groupCells.match( /^(\\d+)%$/ );\n  var percent = percentMatch ? parseInt( percentMatch[1], 10 ) / 100 : 1;\n  return function( i, slideWidth ) {\n    /* eslint-disable-next-line no-invalid-this */\n    return slideWidth <= ( this.size.innerWidth + 1 ) * percent;\n  };\n};\n\n// alias _init for jQuery plugin .flickity()\nproto._init =\nproto.reposition = function() {\n  this.positionCells();\n  this.positionSliderAtSelected();\n};\n\nproto.getSize = function() {\n  this.size = getSize( this.element );\n  this.setCellAlign();\n  this.cursorPosition = this.size.innerWidth * this.cellAlign;\n};\n\nvar cellAlignShorthands = {\n  // cell align, then based on origin side\n  center: {\n    left: 0.5,\n    right: 0.5,\n  },\n  left: {\n    left: 0,\n    right: 1,\n  },\n  right: {\n    right: 0,\n    left: 1,\n  },\n};\n\nproto.setCellAlign = function() {\n  var shorthand = cellAlignShorthands[ this.options.cellAlign ];\n  this.cellAlign = shorthand ? shorthand[ this.originSide ] : this.options.cellAlign;\n};\n\nproto.setGallerySize = function() {\n  if ( this.options.setGallerySize ) {\n    var height = this.options.adaptiveHeight && this.selectedSlide ?\n      this.selectedSlide.height : this.maxCellHeight;\n    this.viewport.style.height = height + 'px';\n  }\n};\n\nproto._getWrapShiftCells = function() {\n  // only for wrap-around\n  if ( !this.options.wrapAround ) {\n    return;\n  }\n  // unshift previous cells\n  this._unshiftCells( this.beforeShiftCells );\n  this._unshiftCells( this.afterShiftCells );\n  // get before cells\n  // initial gap\n  var gapX = this.cursorPosition;\n  var cellIndex = this.cells.length - 1;\n  this.beforeShiftCells = this._getGapCells( gapX, cellIndex, -1 );\n  // get after cells\n  // ending gap between last cell and end of gallery viewport\n  gapX = this.size.innerWidth - this.cursorPosition;\n  // start cloning at first cell, working forwards\n  this.afterShiftCells = this._getGapCells( gapX, 0, 1 );\n};\n\nproto._getGapCells = function( gapX, cellIndex, increment ) {\n  // keep adding cells until the cover the initial gap\n  var cells = [];\n  while ( gapX > 0 ) {\n    var cell = this.cells[ cellIndex ];\n    if ( !cell ) {\n      break;\n    }\n    cells.push( cell );\n    cellIndex += increment;\n    gapX -= cell.size.outerWidth;\n  }\n  return cells;\n};\n\n// ----- contain ----- //\n\n// contain cell targets so no excess sliding\nproto._containSlides = function() {\n  if ( !this.options.contain || this.options.wrapAround || !this.cells.length ) {\n    return;\n  }\n  var isRightToLeft = this.options.rightToLeft;\n  var beginMargin = isRightToLeft ? 'marginRight' : 'marginLeft';\n  var endMargin = isRightToLeft ? 'marginLeft' : 'marginRight';\n  var contentWidth = this.slideableWidth - this.getLastCell().size[ endMargin ];\n  // content is less than gallery size\n  var isContentSmaller = contentWidth < this.size.innerWidth;\n  // bounds\n  var beginBound = this.cursorPosition + this.cells[0].size[ beginMargin ];\n  var endBound = contentWidth - this.size.innerWidth * ( 1 - this.cellAlign );\n  // contain each cell target\n  this.slides.forEach( function( slide ) {\n    if ( isContentSmaller ) {\n      // all cells fit inside gallery\n      slide.target = contentWidth * this.cellAlign;\n    } else {\n      // contain to bounds\n      slide.target = Math.max( slide.target, beginBound );\n      slide.target = Math.min( slide.target, endBound );\n    }\n  }, this );\n};\n\n// -----  ----- //\n\n/**\n * emits events via eventEmitter and jQuery events\n * @param {String} type - name of event\n * @param {Event} event - original event\n * @param {Array} args - extra arguments\n */\nproto.dispatchEvent = function( type, event, args ) {\n  var emitArgs = event ? [ event ].concat( args ) : args;\n  this.emitEvent( type, emitArgs );\n\n  if ( jQuery && this.$element ) {\n    // default trigger with type if no event\n    type += this.options.namespaceJQueryEvents ? '.flickity' : '';\n    var $event = type;\n    if ( event ) {\n      // create jQuery event\n      var jQEvent = new jQuery.Event( event );\n      jQEvent.type = type;\n      $event = jQEvent;\n    }\n    this.$element.trigger( $event, args );\n  }\n};\n\n// -------------------------- select -------------------------- //\n\n/**\n * @param {Integer} index - index of the slide\n * @param {Boolean} isWrap - will wrap-around to last/first if at the end\n * @param {Boolean} isInstant - will immediately set position at selected cell\n */\nproto.select = function( index, isWrap, isInstant ) {\n  if ( !this.isActive ) {\n    return;\n  }\n  index = parseInt( index, 10 );\n  this._wrapSelect( index );\n\n  if ( this.options.wrapAround || isWrap ) {\n    index = utils.modulo( index, this.slides.length );\n  }\n  // bail if invalid index\n  if ( !this.slides[ index ] ) {\n    return;\n  }\n  var prevIndex = this.selectedIndex;\n  this.selectedIndex = index;\n  this.updateSelectedSlide();\n  if ( isInstant ) {\n    this.positionSliderAtSelected();\n  } else {\n    this.startAnimation();\n  }\n  if ( this.options.adaptiveHeight ) {\n    this.setGallerySize();\n  }\n  // events\n  this.dispatchEvent( 'select', null, [ index ] );\n  // change event if new index\n  if ( index != prevIndex ) {\n    this.dispatchEvent( 'change', null, [ index ] );\n  }\n  // old v1 event name, remove in v3\n  this.dispatchEvent('cellSelect');\n};\n\n// wraps position for wrapAround, to move to closest slide. #113\nproto._wrapSelect = function( index ) {\n  var len = this.slides.length;\n  var isWrapping = this.options.wrapAround && len > 1;\n  if ( !isWrapping ) {\n    return index;\n  }\n  var wrapIndex = utils.modulo( index, len );\n  // go to shortest\n  var delta = Math.abs( wrapIndex - this.selectedIndex );\n  var backWrapDelta = Math.abs( ( wrapIndex + len ) - this.selectedIndex );\n  var forewardWrapDelta = Math.abs( ( wrapIndex - len ) - this.selectedIndex );\n  if ( !this.isDragSelect && backWrapDelta < delta ) {\n    index += len;\n  } else if ( !this.isDragSelect && forewardWrapDelta < delta ) {\n    index -= len;\n  }\n  // wrap position so slider is within normal area\n  if ( index < 0 ) {\n    this.x -= this.slideableWidth;\n  } else if ( index >= len ) {\n    this.x += this.slideableWidth;\n  }\n};\n\nproto.previous = function( isWrap, isInstant ) {\n  this.select( this.selectedIndex - 1, isWrap, isInstant );\n};\n\nproto.next = function( isWrap, isInstant ) {\n  this.select( this.selectedIndex + 1, isWrap, isInstant );\n};\n\nproto.updateSelectedSlide = function() {\n  var slide = this.slides[ this.selectedIndex ];\n  // selectedIndex could be outside of slides, if triggered before resize()\n  if ( !slide ) {\n    return;\n  }\n  // unselect previous selected slide\n  this.unselectSelectedSlide();\n  // update new selected slide\n  this.selectedSlide = slide;\n  slide.select();\n  this.selectedCells = slide.cells;\n  this.selectedElements = slide.getCellElements();\n  // HACK: selectedCell & selectedElement is first cell in slide, backwards compatibility\n  // Remove in v3?\n  this.selectedCell = slide.cells[0];\n  this.selectedElement = this.selectedElements[0];\n};\n\nproto.unselectSelectedSlide = function() {\n  if ( this.selectedSlide ) {\n    this.selectedSlide.unselect();\n  }\n};\n\nproto.selectInitialIndex = function() {\n  var initialIndex = this.options.initialIndex;\n  // already activated, select previous selectedIndex\n  if ( this.isInitActivated ) {\n    this.select( this.selectedIndex, false, true );\n    return;\n  }\n  // select with selector string\n  if ( initialIndex && typeof initialIndex == 'string' ) {\n    var cell = this.queryCell( initialIndex );\n    if ( cell ) {\n      this.selectCell( initialIndex, false, true );\n      return;\n    }\n  }\n\n  var index = 0;\n  // select with number\n  if ( initialIndex && this.slides[ initialIndex ] ) {\n    index = initialIndex;\n  }\n  // select instantly\n  this.select( index, false, true );\n};\n\n/**\n * select slide from number or cell element\n * @param {[Element, Number]} value - zero-based index or element to select\n * @param {Boolean} isWrap - enables wrapping around for extra index\n * @param {Boolean} isInstant - disables slide animation\n */\nproto.selectCell = function( value, isWrap, isInstant ) {\n  // get cell\n  var cell = this.queryCell( value );\n  if ( !cell ) {\n    return;\n  }\n\n  var index = this.getCellSlideIndex( cell );\n  this.select( index, isWrap, isInstant );\n};\n\nproto.getCellSlideIndex = function( cell ) {\n  // get index of slides that has cell\n  for ( var i = 0; i < this.slides.length; i++ ) {\n    var slide = this.slides[i];\n    var index = slide.cells.indexOf( cell );\n    if ( index != -1 ) {\n      return i;\n    }\n  }\n};\n\n// -------------------------- get cells -------------------------- //\n\n/**\n * get Flickity.Cell, given an Element\n * @param {Element} elem - matching cell element\n * @returns {Flickity.Cell} cell - matching cell\n */\nproto.getCell = function( elem ) {\n  // loop through cells to get the one that matches\n  for ( var i = 0; i < this.cells.length; i++ ) {\n    var cell = this.cells[i];\n    if ( cell.element == elem ) {\n      return cell;\n    }\n  }\n};\n\n/**\n * get collection of Flickity.Cells, given Elements\n * @param {[Element, Array, NodeList]} elems - multiple elements\n * @returns {Array} cells - Flickity.Cells\n */\nproto.getCells = function( elems ) {\n  elems = utils.makeArray( elems );\n  var cells = [];\n  elems.forEach( function( elem ) {\n    var cell = this.getCell( elem );\n    if ( cell ) {\n      cells.push( cell );\n    }\n  }, this );\n  return cells;\n};\n\n/**\n * get cell elements\n * @returns {Array} cellElems\n */\nproto.getCellElements = function() {\n  return this.cells.map( function( cell ) {\n    return cell.element;\n  } );\n};\n\n/**\n * get parent cell from an element\n * @param {Element} elem - child element\n * @returns {Flickit.Cell} cell - parent cell\n */\nproto.getParentCell = function( elem ) {\n  // first check if elem is cell\n  var cell = this.getCell( elem );\n  if ( cell ) {\n    return cell;\n  }\n  // try to get parent cell elem\n  elem = utils.getParent( elem, '.flickity-slider > *' );\n  return this.getCell( elem );\n};\n\n/**\n * get cells adjacent to a slide\n * @param {Integer} adjCount - number of adjacent slides\n * @param {Integer} index - index of slide to start\n * @returns {Array} cells - array of Flickity.Cells\n */\nproto.getAdjacentCellElements = function( adjCount, index ) {\n  if ( !adjCount ) {\n    return this.selectedSlide.getCellElements();\n  }\n  index = index === undefined ? this.selectedIndex : index;\n\n  var len = this.slides.length;\n  if ( 1 + ( adjCount * 2 ) >= len ) {\n    return this.getCellElements();\n  }\n\n  var cellElems = [];\n  for ( var i = index - adjCount; i <= index + adjCount; i++ ) {\n    var slideIndex = this.options.wrapAround ? utils.modulo( i, len ) : i;\n    var slide = this.slides[ slideIndex ];\n    if ( slide ) {\n      cellElems = cellElems.concat( slide.getCellElements() );\n    }\n  }\n  return cellElems;\n};\n\n/**\n * select slide from number or cell element\n * @param {[Element, String, Number]} selector - element, selector string, or index\n * @returns {Flickity.Cell} - matching cell\n */\nproto.queryCell = function( selector ) {\n  if ( typeof selector == 'number' ) {\n    // use number as index\n    return this.cells[ selector ];\n  }\n  if ( typeof selector == 'string' ) {\n    // do not select invalid selectors from hash: #123, #/. #791\n    if ( selector.match( /^[#.]?[\\d/]/ ) ) {\n      return;\n    }\n    // use string as selector, get element\n    selector = this.element.querySelector( selector );\n  }\n  // get cell from element\n  return this.getCell( selector );\n};\n\n// -------------------------- events -------------------------- //\n\nproto.uiChange = function() {\n  this.emitEvent('uiChange');\n};\n\n// keep focus on element when child UI elements are clicked\nproto.childUIPointerDown = function( event ) {\n  // HACK iOS does not allow touch events to bubble up?!\n  if ( event.type != 'touchstart' ) {\n    event.preventDefault();\n  }\n  this.focus();\n};\n\n// ----- resize ----- //\n\nproto.onresize = function() {\n  this.watchCSS();\n  this.resize();\n};\n\nutils.debounceMethod( Flickity, 'onresize', 150 );\n\nproto.resize = function() {\n  if ( !this.isActive ) {\n    return;\n  }\n  this.getSize();\n  // wrap values\n  if ( this.options.wrapAround ) {\n    this.x = utils.modulo( this.x, this.slideableWidth );\n  }\n  this.positionCells();\n  this._getWrapShiftCells();\n  this.setGallerySize();\n  this.emitEvent('resize');\n  // update selected index for group slides, instant\n  // TODO: position can be lost between groups of various numbers\n  var selectedElement = this.selectedElements && this.selectedElements[0];\n  this.selectCell( selectedElement, false, true );\n};\n\n// watches the :after property, activates/deactivates\nproto.watchCSS = function() {\n  var watchOption = this.options.watchCSS;\n  if ( !watchOption ) {\n    return;\n  }\n\n  var afterContent = getComputedStyle( this.element, ':after' ).content;\n  // activate if :after { content: 'flickity' }\n  if ( afterContent.indexOf('flickity') != -1 ) {\n    this.activate();\n  } else {\n    this.deactivate();\n  }\n};\n\n// ----- keydown ----- //\n\n// go previous/next if left/right keys pressed\nproto.onkeydown = function( event ) {\n  // only work if element is in focus\n  var isNotFocused = document.activeElement && document.activeElement != this.element;\n  if ( !this.options.accessibility || isNotFocused ) {\n    return;\n  }\n\n  var handler = Flickity.keyboardHandlers[ event.keyCode ];\n  if ( handler ) {\n    handler.call( this );\n  }\n};\n\nFlickity.keyboardHandlers = {\n  // left arrow\n  37: function() {\n    var leftMethod = this.options.rightToLeft ? 'next' : 'previous';\n    this.uiChange();\n    this[ leftMethod ]();\n  },\n  // right arrow\n  39: function() {\n    var rightMethod = this.options.rightToLeft ? 'previous' : 'next';\n    this.uiChange();\n    this[ rightMethod ]();\n  },\n};\n\n// ----- focus ----- //\n\nproto.focus = function() {\n  // TODO remove scrollTo once focus options gets more support\n  // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus ...\n  //    #Browser_compatibility\n  var prevScrollY = window.pageYOffset;\n  this.element.focus({ preventScroll: true });\n  // hack to fix scroll jump after focus, #76\n  if ( window.pageYOffset != prevScrollY ) {\n    window.scrollTo( window.pageXOffset, prevScrollY );\n  }\n};\n\n// -------------------------- destroy -------------------------- //\n\n// deactivate all Flickity functionality, but keep stuff available\nproto.deactivate = function() {\n  if ( !this.isActive ) {\n    return;\n  }\n  this.element.classList.remove('flickity-enabled');\n  this.element.classList.remove('flickity-rtl');\n  this.unselectSelectedSlide();\n  // destroy cells\n  this.cells.forEach( function( cell ) {\n    cell.destroy();\n  } );\n  this.element.removeChild( this.viewport );\n  // move child elements back into element\n  moveElements( this.slider.children, this.element );\n  if ( this.options.accessibility ) {\n    this.element.removeAttribute('tabIndex');\n    this.element.removeEventListener( 'keydown', this );\n  }\n  // set flags\n  this.isActive = false;\n  this.emitEvent('deactivate');\n};\n\nproto.destroy = function() {\n  this.deactivate();\n  window.removeEventListener( 'resize', this );\n  this.allOff();\n  this.emitEvent('destroy');\n  if ( jQuery && this.$element ) {\n    jQuery.removeData( this.element, 'flickity' );\n  }\n  delete this.element.flickityGUID;\n  delete instances[ this.guid ];\n};\n\n// -------------------------- prototype -------------------------- //\n\nutils.extend( proto, animatePrototype );\n\n// -------------------------- extras -------------------------- //\n\n/**\n * get Flickity instance from element\n * @param {[Element, String]} elem - element or selector string\n * @returns {Flickity} - Flickity instance\n */\nFlickity.data = function( elem ) {\n  elem = utils.getQueryElement( elem );\n  var id = elem && elem.flickityGUID;\n  return id && instances[ id ];\n};\n\nutils.htmlInit( Flickity, 'flickity' );\n\nif ( jQuery && jQuery.bridget ) {\n  jQuery.bridget( 'flickity', Flickity );\n}\n\n// set internal jQuery, for Webpack + jQuery v3, #478\nFlickity.setJQuery = function( jq ) {\n  jQuery = jq;\n};\n\nFlickity.Cell = Cell;\nFlickity.Slide = Slide;\n\nreturn Flickity;\n\n} ) );\n\n/*!\n * Unipointer v2.3.0\n * base class for doing one thing with pointer event\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n\n( function( window, factory ) {\n  // universal module definition\n  /* jshint strict: false */ /*global define, module, require */\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( 'unipointer/unipointer',[\n      'ev-emitter/ev-emitter'\n    ], function( EvEmitter ) {\n      return factory( window, EvEmitter );\n    });\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory(\n      window,\n      require('ev-emitter')\n    );\n  } else {\n    // browser global\n    window.Unipointer = factory(\n      window,\n      window.EvEmitter\n    );\n  }\n\n}( window, function factory( window, EvEmitter ) {\n\n\n\nfunction noop() {}\n\nfunction Unipointer() {}\n\n// inherit EvEmitter\nvar proto = Unipointer.prototype = Object.create( EvEmitter.prototype );\n\nproto.bindStartEvent = function( elem ) {\n  this._bindStartEvent( elem, true );\n};\n\nproto.unbindStartEvent = function( elem ) {\n  this._bindStartEvent( elem, false );\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd - remove if falsey\n */\nproto._bindStartEvent = function( elem, isAdd ) {\n  // munge isAdd, default to true\n  isAdd = isAdd === undefined ? true : isAdd;\n  var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n\n  // default to mouse events\n  var startEvent = 'mousedown';\n  if ( window.PointerEvent ) {\n    // Pointer Events\n    startEvent = 'pointerdown';\n  } else if ( 'ontouchstart' in window ) {\n    // Touch Events. iOS Safari\n    startEvent = 'touchstart';\n  }\n  elem[ bindMethod ]( startEvent, this );\n};\n\n// trigger handler methods for events\nproto.handleEvent = function( event ) {\n  var method = 'on' + event.type;\n  if ( this[ method ] ) {\n    this[ method ]( event );\n  }\n};\n\n// returns the touch that we're keeping track of\nproto.getTouch = function( touches ) {\n  for ( var i=0; i < touches.length; i++ ) {\n    var touch = touches[i];\n    if ( touch.identifier == this.pointerIdentifier ) {\n      return touch;\n    }\n  }\n};\n\n// ----- start event ----- //\n\nproto.onmousedown = function( event ) {\n  // dismiss clicks from right or middle buttons\n  var button = event.button;\n  if ( button && ( button !== 0 && button !== 1 ) ) {\n    return;\n  }\n  this._pointerDown( event, event );\n};\n\nproto.ontouchstart = function( event ) {\n  this._pointerDown( event, event.changedTouches[0] );\n};\n\nproto.onpointerdown = function( event ) {\n  this._pointerDown( event, event );\n};\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto._pointerDown = function( event, pointer ) {\n  // dismiss right click and other pointers\n  // button = 0 is okay, 1-4 not\n  if ( event.button || this.isPointerDown ) {\n    return;\n  }\n\n  this.isPointerDown = true;\n  // save pointer identifier to match up touch events\n  this.pointerIdentifier = pointer.pointerId !== undefined ?\n    // pointerId for pointer events, touch.indentifier for touch events\n    pointer.pointerId : pointer.identifier;\n\n  this.pointerDown( event, pointer );\n};\n\nproto.pointerDown = function( event, pointer ) {\n  this._bindPostStartEvents( event );\n  this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// hash of events to be bound after start event\nvar postStartEvents = {\n  mousedown: [ 'mousemove', 'mouseup' ],\n  touchstart: [ 'touchmove', 'touchend', 'touchcancel' ],\n  pointerdown: [ 'pointermove', 'pointerup', 'pointercancel' ],\n};\n\nproto._bindPostStartEvents = function( event ) {\n  if ( !event ) {\n    return;\n  }\n  // get proper events to match start event\n  var events = postStartEvents[ event.type ];\n  // bind events to node\n  events.forEach( function( eventName ) {\n    window.addEventListener( eventName, this );\n  }, this );\n  // save these arguments\n  this._boundPointerEvents = events;\n};\n\nproto._unbindPostStartEvents = function() {\n  // check for _boundEvents, in case dragEnd triggered twice (old IE8 bug)\n  if ( !this._boundPointerEvents ) {\n    return;\n  }\n  this._boundPointerEvents.forEach( function( eventName ) {\n    window.removeEventListener( eventName, this );\n  }, this );\n\n  delete this._boundPointerEvents;\n};\n\n// ----- move event ----- //\n\nproto.onmousemove = function( event ) {\n  this._pointerMove( event, event );\n};\n\nproto.onpointermove = function( event ) {\n  if ( event.pointerId == this.pointerIdentifier ) {\n    this._pointerMove( event, event );\n  }\n};\n\nproto.ontouchmove = function( event ) {\n  var touch = this.getTouch( event.changedTouches );\n  if ( touch ) {\n    this._pointerMove( event, touch );\n  }\n};\n\n/**\n * pointer move\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerMove = function( event, pointer ) {\n  this.pointerMove( event, pointer );\n};\n\n// public\nproto.pointerMove = function( event, pointer ) {\n  this.emitEvent( 'pointerMove', [ event, pointer ] );\n};\n\n// ----- end event ----- //\n\n\nproto.onmouseup = function( event ) {\n  this._pointerUp( event, event );\n};\n\nproto.onpointerup = function( event ) {\n  if ( event.pointerId == this.pointerIdentifier ) {\n    this._pointerUp( event, event );\n  }\n};\n\nproto.ontouchend = function( event ) {\n  var touch = this.getTouch( event.changedTouches );\n  if ( touch ) {\n    this._pointerUp( event, touch );\n  }\n};\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerUp = function( event, pointer ) {\n  this._pointerDone();\n  this.pointerUp( event, pointer );\n};\n\n// public\nproto.pointerUp = function( event, pointer ) {\n  this.emitEvent( 'pointerUp', [ event, pointer ] );\n};\n\n// ----- pointer done ----- //\n\n// triggered on pointer up & pointer cancel\nproto._pointerDone = function() {\n  this._pointerReset();\n  this._unbindPostStartEvents();\n  this.pointerDone();\n};\n\nproto._pointerReset = function() {\n  // reset properties\n  this.isPointerDown = false;\n  delete this.pointerIdentifier;\n};\n\nproto.pointerDone = noop;\n\n// ----- pointer cancel ----- //\n\nproto.onpointercancel = function( event ) {\n  if ( event.pointerId == this.pointerIdentifier ) {\n    this._pointerCancel( event, event );\n  }\n};\n\nproto.ontouchcancel = function( event ) {\n  var touch = this.getTouch( event.changedTouches );\n  if ( touch ) {\n    this._pointerCancel( event, touch );\n  }\n};\n\n/**\n * pointer cancel\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerCancel = function( event, pointer ) {\n  this._pointerDone();\n  this.pointerCancel( event, pointer );\n};\n\n// public\nproto.pointerCancel = function( event, pointer ) {\n  this.emitEvent( 'pointerCancel', [ event, pointer ] );\n};\n\n// -----  ----- //\n\n// utility function for getting x/y coords from event\nUnipointer.getPointerPoint = function( pointer ) {\n  return {\n    x: pointer.pageX,\n    y: pointer.pageY\n  };\n};\n\n// -----  ----- //\n\nreturn Unipointer;\n\n}));\n\n/*!\n * Unidragger v2.3.1\n * Draggable base class\n * MIT license\n */\n\n/*jshint browser: true, unused: true, undef: true, strict: true */\n\n( function( window, factory ) {\n  // universal module definition\n  /*jshint strict: false */ /*globals define, module, require */\n\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( 'unidragger/unidragger',[\n      'unipointer/unipointer'\n    ], function( Unipointer ) {\n      return factory( window, Unipointer );\n    });\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory(\n      window,\n      require('unipointer')\n    );\n  } else {\n    // browser global\n    window.Unidragger = factory(\n      window,\n      window.Unipointer\n    );\n  }\n\n}( window, function factory( window, Unipointer ) {\n\n\n\n// -------------------------- Unidragger -------------------------- //\n\nfunction Unidragger() {}\n\n// inherit Unipointer & EvEmitter\nvar proto = Unidragger.prototype = Object.create( Unipointer.prototype );\n\n// ----- bind start ----- //\n\nproto.bindHandles = function() {\n  this._bindHandles( true );\n};\n\nproto.unbindHandles = function() {\n  this._bindHandles( false );\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd\n */\nproto._bindHandles = function( isAdd ) {\n  // munge isAdd, default to true\n  isAdd = isAdd === undefined ? true : isAdd;\n  // bind each handle\n  var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n  var touchAction = isAdd ? this._touchActionValue : '';\n  for ( var i=0; i < this.handles.length; i++ ) {\n    var handle = this.handles[i];\n    this._bindStartEvent( handle, isAdd );\n    handle[ bindMethod ]( 'click', this );\n    // touch-action: none to override browser touch gestures. metafizzy/flickity#540\n    if ( window.PointerEvent ) {\n      handle.style.touchAction = touchAction;\n    }\n  }\n};\n\n// prototype so it can be overwriteable by Flickity\nproto._touchActionValue = 'none';\n\n// ----- start event ----- //\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerDown = function( event, pointer ) {\n  var isOkay = this.okayPointerDown( event );\n  if ( !isOkay ) {\n    return;\n  }\n  // track start event position\n  // Safari 9 overrides pageX and pageY. These values needs to be copied. flickity#842\n  this.pointerDownPointer = {\n    pageX: pointer.pageX,\n    pageY: pointer.pageY,\n  };\n\n  event.preventDefault();\n  this.pointerDownBlur();\n  // bind move and end events\n  this._bindPostStartEvents( event );\n  this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// nodes that have text fields\nvar cursorNodes = {\n  TEXTAREA: true,\n  INPUT: true,\n  SELECT: true,\n  OPTION: true,\n};\n\n// input types that do not have text fields\nvar clickTypes = {\n  radio: true,\n  checkbox: true,\n  button: true,\n  submit: true,\n  image: true,\n  file: true,\n};\n\n// dismiss inputs with text fields. flickity#403, flickity#404\nproto.okayPointerDown = function( event ) {\n  var isCursorNode = cursorNodes[ event.target.nodeName ];\n  var isClickType = clickTypes[ event.target.type ];\n  var isOkay = !isCursorNode || isClickType;\n  if ( !isOkay ) {\n    this._pointerReset();\n  }\n  return isOkay;\n};\n\n// kludge to blur previously focused input\nproto.pointerDownBlur = function() {\n  var focused = document.activeElement;\n  // do not blur body for IE10, metafizzy/flickity#117\n  var canBlur = focused && focused.blur && focused != document.body;\n  if ( canBlur ) {\n    focused.blur();\n  }\n};\n\n// ----- move event ----- //\n\n/**\n * drag move\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerMove = function( event, pointer ) {\n  var moveVector = this._dragPointerMove( event, pointer );\n  this.emitEvent( 'pointerMove', [ event, pointer, moveVector ] );\n  this._dragMove( event, pointer, moveVector );\n};\n\n// base pointer move logic\nproto._dragPointerMove = function( event, pointer ) {\n  var moveVector = {\n    x: pointer.pageX - this.pointerDownPointer.pageX,\n    y: pointer.pageY - this.pointerDownPointer.pageY\n  };\n  // start drag if pointer has moved far enough to start drag\n  if ( !this.isDragging && this.hasDragStarted( moveVector ) ) {\n    this._dragStart( event, pointer );\n  }\n  return moveVector;\n};\n\n// condition if pointer has moved far enough to start drag\nproto.hasDragStarted = function( moveVector ) {\n  return Math.abs( moveVector.x ) > 3 || Math.abs( moveVector.y ) > 3;\n};\n\n// ----- end event ----- //\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerUp = function( event, pointer ) {\n  this.emitEvent( 'pointerUp', [ event, pointer ] );\n  this._dragPointerUp( event, pointer );\n};\n\nproto._dragPointerUp = function( event, pointer ) {\n  if ( this.isDragging ) {\n    this._dragEnd( event, pointer );\n  } else {\n    // pointer didn't move enough for drag to start\n    this._staticClick( event, pointer );\n  }\n};\n\n// -------------------------- drag -------------------------- //\n\n// dragStart\nproto._dragStart = function( event, pointer ) {\n  this.isDragging = true;\n  // prevent clicks\n  this.isPreventingClicks = true;\n  this.dragStart( event, pointer );\n};\n\nproto.dragStart = function( event, pointer ) {\n  this.emitEvent( 'dragStart', [ event, pointer ] );\n};\n\n// dragMove\nproto._dragMove = function( event, pointer, moveVector ) {\n  // do not drag if not dragging yet\n  if ( !this.isDragging ) {\n    return;\n  }\n\n  this.dragMove( event, pointer, moveVector );\n};\n\nproto.dragMove = function( event, pointer, moveVector ) {\n  event.preventDefault();\n  this.emitEvent( 'dragMove', [ event, pointer, moveVector ] );\n};\n\n// dragEnd\nproto._dragEnd = function( event, pointer ) {\n  // set flags\n  this.isDragging = false;\n  // re-enable clicking async\n  setTimeout( function() {\n    delete this.isPreventingClicks;\n  }.bind( this ) );\n\n  this.dragEnd( event, pointer );\n};\n\nproto.dragEnd = function( event, pointer ) {\n  this.emitEvent( 'dragEnd', [ event, pointer ] );\n};\n\n// ----- onclick ----- //\n\n// handle all clicks and prevent clicks when dragging\nproto.onclick = function( event ) {\n  if ( this.isPreventingClicks ) {\n    event.preventDefault();\n  }\n};\n\n// ----- staticClick ----- //\n\n// triggered after pointer down & up with no/tiny movement\nproto._staticClick = function( event, pointer ) {\n  // ignore emulated mouse up clicks\n  if ( this.isIgnoringMouseUp && event.type == 'mouseup' ) {\n    return;\n  }\n\n  this.staticClick( event, pointer );\n\n  // set flag for emulated clicks 300ms after touchend\n  if ( event.type != 'mouseup' ) {\n    this.isIgnoringMouseUp = true;\n    // reset flag after 300ms\n    setTimeout( function() {\n      delete this.isIgnoringMouseUp;\n    }.bind( this ), 400 );\n  }\n};\n\nproto.staticClick = function( event, pointer ) {\n  this.emitEvent( 'staticClick', [ event, pointer ] );\n};\n\n// ----- utils ----- //\n\nUnidragger.getPointerPoint = Unipointer.getPointerPoint;\n\n// -----  ----- //\n\nreturn Unidragger;\n\n}));\n\n// drag\n( function( window, factory ) {\n  // universal module definition\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( 'flickity/js/drag',[\n      './flickity',\n      'unidragger/unidragger',\n      'fizzy-ui-utils/utils',\n    ], function( Flickity, Unidragger, utils ) {\n      return factory( window, Flickity, Unidragger, utils );\n    } );\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory(\n        window,\n        require('./flickity'),\n        require('unidragger'),\n        require('fizzy-ui-utils')\n    );\n  } else {\n    // browser global\n    window.Flickity = factory(\n        window,\n        window.Flickity,\n        window.Unidragger,\n        window.fizzyUIUtils\n    );\n  }\n\n}( window, function factory( window, Flickity, Unidragger, utils ) {\n\n\n\n// ----- defaults ----- //\n\nutils.extend( Flickity.defaults, {\n  draggable: '>1',\n  dragThreshold: 3,\n} );\n\n// ----- create ----- //\n\nFlickity.createMethods.push('_createDrag');\n\n// -------------------------- drag prototype -------------------------- //\n\nvar proto = Flickity.prototype;\nutils.extend( proto, Unidragger.prototype );\nproto._touchActionValue = 'pan-y';\n\n// --------------------------  -------------------------- //\n\nvar isTouch = 'createTouch' in document;\nvar isTouchmoveScrollCanceled = false;\n\nproto._createDrag = function() {\n  this.on( 'activate', this.onActivateDrag );\n  this.on( 'uiChange', this._uiChangeDrag );\n  this.on( 'deactivate', this.onDeactivateDrag );\n  this.on( 'cellChange', this.updateDraggable );\n  // TODO updateDraggable on resize? if groupCells & slides change\n  // HACK - add seemingly innocuous handler to fix iOS 10 scroll behavior\n  // #457, RubaXa/Sortable#973\n  if ( isTouch && !isTouchmoveScrollCanceled ) {\n    window.addEventListener( 'touchmove', function() {} );\n    isTouchmoveScrollCanceled = true;\n  }\n};\n\nproto.onActivateDrag = function() {\n  this.handles = [ this.viewport ];\n  this.bindHandles();\n  this.updateDraggable();\n};\n\nproto.onDeactivateDrag = function() {\n  this.unbindHandles();\n  this.element.classList.remove('is-draggable');\n};\n\nproto.updateDraggable = function() {\n  // disable dragging if less than 2 slides. #278\n  if ( this.options.draggable == '>1' ) {\n    this.isDraggable = this.slides.length > 1;\n  } else {\n    this.isDraggable = this.options.draggable;\n  }\n  if ( this.isDraggable ) {\n    this.element.classList.add('is-draggable');\n  } else {\n    this.element.classList.remove('is-draggable');\n  }\n};\n\n// backwards compatibility\nproto.bindDrag = function() {\n  this.options.draggable = true;\n  this.updateDraggable();\n};\n\nproto.unbindDrag = function() {\n  this.options.draggable = false;\n  this.updateDraggable();\n};\n\nproto._uiChangeDrag = function() {\n  delete this.isFreeScrolling;\n};\n\n// -------------------------- pointer events -------------------------- //\n\nproto.pointerDown = function( event, pointer ) {\n  if ( !this.isDraggable ) {\n    this._pointerDownDefault( event, pointer );\n    return;\n  }\n  var isOkay = this.okayPointerDown( event );\n  if ( !isOkay ) {\n    return;\n  }\n\n  this._pointerDownPreventDefault( event );\n  this.pointerDownFocus( event );\n  // blur\n  if ( document.activeElement != this.element ) {\n    // do not blur if already focused\n    this.pointerDownBlur();\n  }\n\n  // stop if it was moving\n  this.dragX = this.x;\n  this.viewport.classList.add('is-pointer-down');\n  // track scrolling\n  this.pointerDownScroll = getScrollPosition();\n  window.addEventListener( 'scroll', this );\n\n  this._pointerDownDefault( event, pointer );\n};\n\n// default pointerDown logic, used for staticClick\nproto._pointerDownDefault = function( event, pointer ) {\n  // track start event position\n  // Safari 9 overrides pageX and pageY. These values needs to be copied. #779\n  this.pointerDownPointer = {\n    pageX: pointer.pageX,\n    pageY: pointer.pageY,\n  };\n  // bind move and end events\n  this._bindPostStartEvents( event );\n  this.dispatchEvent( 'pointerDown', event, [ pointer ] );\n};\n\nvar focusNodes = {\n  INPUT: true,\n  TEXTAREA: true,\n  SELECT: true,\n};\n\nproto.pointerDownFocus = function( event ) {\n  var isFocusNode = focusNodes[ event.target.nodeName ];\n  if ( !isFocusNode ) {\n    this.focus();\n  }\n};\n\nproto._pointerDownPreventDefault = function( event ) {\n  var isTouchStart = event.type == 'touchstart';\n  var isTouchPointer = event.pointerType == 'touch';\n  var isFocusNode = focusNodes[ event.target.nodeName ];\n  if ( !isTouchStart && !isTouchPointer && !isFocusNode ) {\n    event.preventDefault();\n  }\n};\n\n// ----- move ----- //\n\nproto.hasDragStarted = function( moveVector ) {\n  return Math.abs( moveVector.x ) > this.options.dragThreshold;\n};\n\n// ----- up ----- //\n\nproto.pointerUp = function( event, pointer ) {\n  delete this.isTouchScrolling;\n  this.viewport.classList.remove('is-pointer-down');\n  this.dispatchEvent( 'pointerUp', event, [ pointer ] );\n  this._dragPointerUp( event, pointer );\n};\n\nproto.pointerDone = function() {\n  window.removeEventListener( 'scroll', this );\n  delete this.pointerDownScroll;\n};\n\n// -------------------------- dragging -------------------------- //\n\nproto.dragStart = function( event, pointer ) {\n  if ( !this.isDraggable ) {\n    return;\n  }\n  this.dragStartPosition = this.x;\n  this.startAnimation();\n  window.removeEventListener( 'scroll', this );\n  this.dispatchEvent( 'dragStart', event, [ pointer ] );\n};\n\nproto.pointerMove = function( event, pointer ) {\n  var moveVector = this._dragPointerMove( event, pointer );\n  this.dispatchEvent( 'pointerMove', event, [ pointer, moveVector ] );\n  this._dragMove( event, pointer, moveVector );\n};\n\nproto.dragMove = function( event, pointer, moveVector ) {\n  if ( !this.isDraggable ) {\n    return;\n  }\n  event.preventDefault();\n\n  this.previousDragX = this.dragX;\n  // reverse if right-to-left\n  var direction = this.options.rightToLeft ? -1 : 1;\n  if ( this.options.wrapAround ) {\n    // wrap around move. #589\n    moveVector.x %= this.slideableWidth;\n  }\n  var dragX = this.dragStartPosition + moveVector.x * direction;\n\n  if ( !this.options.wrapAround && this.slides.length ) {\n    // slow drag\n    var originBound = Math.max( -this.slides[0].target, this.dragStartPosition );\n    dragX = dragX > originBound ? ( dragX + originBound ) * 0.5 : dragX;\n    var endBound = Math.min( -this.getLastSlide().target, this.dragStartPosition );\n    dragX = dragX < endBound ? ( dragX + endBound ) * 0.5 : dragX;\n  }\n\n  this.dragX = dragX;\n\n  this.dragMoveTime = new Date();\n  this.dispatchEvent( 'dragMove', event, [ pointer, moveVector ] );\n};\n\nproto.dragEnd = function( event, pointer ) {\n  if ( !this.isDraggable ) {\n    return;\n  }\n  if ( this.options.freeScroll ) {\n    this.isFreeScrolling = true;\n  }\n  // set selectedIndex based on where flick will end up\n  var index = this.dragEndRestingSelect();\n\n  if ( this.options.freeScroll && !this.options.wrapAround ) {\n    // if free-scroll & not wrap around\n    // do not free-scroll if going outside of bounding slides\n    // so bounding slides can attract slider, and keep it in bounds\n    var restingX = this.getRestingPosition();\n    this.isFreeScrolling = -restingX > this.slides[0].target &&\n      -restingX < this.getLastSlide().target;\n  } else if ( !this.options.freeScroll && index == this.selectedIndex ) {\n    // boost selection if selected index has not changed\n    index += this.dragEndBoostSelect();\n  }\n  delete this.previousDragX;\n  // apply selection\n  // TODO refactor this, selecting here feels weird\n  // HACK, set flag so dragging stays in correct direction\n  this.isDragSelect = this.options.wrapAround;\n  this.select( index );\n  delete this.isDragSelect;\n  this.dispatchEvent( 'dragEnd', event, [ pointer ] );\n};\n\nproto.dragEndRestingSelect = function() {\n  var restingX = this.getRestingPosition();\n  // how far away from selected slide\n  var distance = Math.abs( this.getSlideDistance( -restingX, this.selectedIndex ) );\n  // get closet resting going up and going down\n  var positiveResting = this._getClosestResting( restingX, distance, 1 );\n  var negativeResting = this._getClosestResting( restingX, distance, -1 );\n  // use closer resting for wrap-around\n  var index = positiveResting.distance < negativeResting.distance ?\n    positiveResting.index : negativeResting.index;\n  return index;\n};\n\n/**\n * given resting X and distance to selected cell\n * get the distance and index of the closest cell\n * @param {Number} restingX - estimated post-flick resting position\n * @param {Number} distance - distance to selected cell\n * @param {Integer} increment - +1 or -1, going up or down\n * @returns {Object} - { distance: {Number}, index: {Integer} }\n */\nproto._getClosestResting = function( restingX, distance, increment ) {\n  var index = this.selectedIndex;\n  var minDistance = Infinity;\n  var condition = this.options.contain && !this.options.wrapAround ?\n    // if contain, keep going if distance is equal to minDistance\n    function( dist, minDist ) {\n      return dist <= minDist;\n    } : function( dist, minDist ) {\n      return dist < minDist;\n    };\n  while ( condition( distance, minDistance ) ) {\n    // measure distance to next cell\n    index += increment;\n    minDistance = distance;\n    distance = this.getSlideDistance( -restingX, index );\n    if ( distance === null ) {\n      break;\n    }\n    distance = Math.abs( distance );\n  }\n  return {\n    distance: minDistance,\n    // selected was previous index\n    index: index - increment,\n  };\n};\n\n/**\n * measure distance between x and a slide target\n * @param {Number} x - horizontal position\n * @param {Integer} index - slide index\n * @returns {Number} - slide distance\n */\nproto.getSlideDistance = function( x, index ) {\n  var len = this.slides.length;\n  // wrap around if at least 2 slides\n  var isWrapAround = this.options.wrapAround && len > 1;\n  var slideIndex = isWrapAround ? utils.modulo( index, len ) : index;\n  var slide = this.slides[ slideIndex ];\n  if ( !slide ) {\n    return null;\n  }\n  // add distance for wrap-around slides\n  var wrap = isWrapAround ? this.slideableWidth * Math.floor( index/len ) : 0;\n  return x - ( slide.target + wrap );\n};\n\nproto.dragEndBoostSelect = function() {\n  // do not boost if no previousDragX or dragMoveTime\n  if ( this.previousDragX === undefined || !this.dragMoveTime ||\n    // or if drag was held for 100 ms\n    new Date() - this.dragMoveTime > 100 ) {\n    return 0;\n  }\n\n  var distance = this.getSlideDistance( -this.dragX, this.selectedIndex );\n  var delta = this.previousDragX - this.dragX;\n  if ( distance > 0 && delta > 0 ) {\n    // boost to next if moving towards the right, and positive velocity\n    return 1;\n  } else if ( distance < 0 && delta < 0 ) {\n    // boost to previous if moving towards the left, and negative velocity\n    return -1;\n  }\n  return 0;\n};\n\n// ----- staticClick ----- //\n\nproto.staticClick = function( event, pointer ) {\n  // get clickedCell, if cell was clicked\n  var clickedCell = this.getParentCell( event.target );\n  var cellElem = clickedCell && clickedCell.element;\n  var cellIndex = clickedCell && this.cells.indexOf( clickedCell );\n  this.dispatchEvent( 'staticClick', event, [ pointer, cellElem, cellIndex ] );\n};\n\n// ----- scroll ----- //\n\nproto.onscroll = function() {\n  var scroll = getScrollPosition();\n  var scrollMoveX = this.pointerDownScroll.x - scroll.x;\n  var scrollMoveY = this.pointerDownScroll.y - scroll.y;\n  // cancel click/tap if scroll is too much\n  if ( Math.abs( scrollMoveX ) > 3 || Math.abs( scrollMoveY ) > 3 ) {\n    this._pointerDone();\n  }\n};\n\n// ----- utils ----- //\n\nfunction getScrollPosition() {\n  return {\n    x: window.pageXOffset,\n    y: window.pageYOffset,\n  };\n}\n\n// -----  ----- //\n\nreturn Flickity;\n\n} ) );\n\n// prev/next buttons\n( function( window, factory ) {\n  // universal module definition\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( 'flickity/js/prev-next-button',[\n      './flickity',\n      'unipointer/unipointer',\n      'fizzy-ui-utils/utils',\n    ], function( Flickity, Unipointer, utils ) {\n      return factory( window, Flickity, Unipointer, utils );\n    } );\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory(\n        window,\n        require('./flickity'),\n        require('unipointer'),\n        require('fizzy-ui-utils')\n    );\n  } else {\n    // browser global\n    factory(\n        window,\n        window.Flickity,\n        window.Unipointer,\n        window.fizzyUIUtils\n    );\n  }\n\n}( window, function factory( window, Flickity, Unipointer, utils ) {\n'use strict';\n\nvar svgURI = 'http://www.w3.org/2000/svg';\n\n// -------------------------- PrevNextButton -------------------------- //\n\nfunction PrevNextButton( direction, parent ) {\n  this.direction = direction;\n  this.parent = parent;\n  this._create();\n}\n\nPrevNextButton.prototype = Object.create( Unipointer.prototype );\n\nPrevNextButton.prototype._create = function() {\n  // properties\n  this.isEnabled = true;\n  this.isPrevious = this.direction == -1;\n  var leftDirection = this.parent.options.rightToLeft ? 1 : -1;\n  this.isLeft = this.direction == leftDirection;\n\n  var element = this.element = document.createElement('button');\n  element.className = 'flickity-button flickity-prev-next-button';\n  element.className += this.isPrevious ? ' previous' : ' next';\n  // prevent button from submitting form http://stackoverflow.com/a/10836076/182183\n  element.setAttribute( 'type', 'button' );\n  // init as disabled\n  this.disable();\n\n  element.setAttribute( 'aria-label', this.isPrevious ? 'Previous' : 'Next' );\n\n  // create arrow\n  var svg = this.createSVG();\n  element.appendChild( svg );\n  // events\n  this.parent.on( 'select', this.update.bind( this ) );\n  this.on( 'pointerDown', this.parent.childUIPointerDown.bind( this.parent ) );\n};\n\nPrevNextButton.prototype.activate = function() {\n  this.bindStartEvent( this.element );\n  this.element.addEventListener( 'click', this );\n  // add to DOM\n  this.parent.element.appendChild( this.element );\n};\n\nPrevNextButton.prototype.deactivate = function() {\n  // remove from DOM\n  this.parent.element.removeChild( this.element );\n  // click events\n  this.unbindStartEvent( this.element );\n  this.element.removeEventListener( 'click', this );\n};\n\nPrevNextButton.prototype.createSVG = function() {\n  var svg = document.createElementNS( svgURI, 'svg' );\n  svg.setAttribute( 'class', 'flickity-button-icon' );\n  svg.setAttribute( 'viewBox', '0 0 100 100' );\n  var path = document.createElementNS( svgURI, 'path' );\n  var pathMovements = getArrowMovements( this.parent.options.arrowShape );\n  path.setAttribute( 'd', pathMovements );\n  path.setAttribute( 'class', 'arrow' );\n  // rotate arrow\n  if ( !this.isLeft ) {\n    path.setAttribute( 'transform', 'translate(100, 100) rotate(180) ' );\n  }\n  svg.appendChild( path );\n  return svg;\n};\n\n// get SVG path movmement\nfunction getArrowMovements( shape ) {\n  // use shape as movement if string\n  if ( typeof shape == 'string' ) {\n    return shape;\n  }\n  // create movement string\n  return 'M ' + shape.x0 + ',50' +\n    ' L ' + shape.x1 + ',' + ( shape.y1 + 50 ) +\n    ' L ' + shape.x2 + ',' + ( shape.y2 + 50 ) +\n    ' L ' + shape.x3 + ',50 ' +\n    ' L ' + shape.x2 + ',' + ( 50 - shape.y2 ) +\n    ' L ' + shape.x1 + ',' + ( 50 - shape.y1 ) +\n    ' Z';\n}\n\nPrevNextButton.prototype.handleEvent = utils.handleEvent;\n\nPrevNextButton.prototype.onclick = function() {\n  if ( !this.isEnabled ) {\n    return;\n  }\n  this.parent.uiChange();\n  var method = this.isPrevious ? 'previous' : 'next';\n  this.parent[ method ]();\n};\n\n// -----  ----- //\n\nPrevNextButton.prototype.enable = function() {\n  if ( this.isEnabled ) {\n    return;\n  }\n  this.element.disabled = false;\n  this.isEnabled = true;\n};\n\nPrevNextButton.prototype.disable = function() {\n  if ( !this.isEnabled ) {\n    return;\n  }\n  this.element.disabled = true;\n  this.isEnabled = false;\n};\n\nPrevNextButton.prototype.update = function() {\n  // index of first or last slide, if previous or next\n  var slides = this.parent.slides;\n  // enable is wrapAround and at least 2 slides\n  if ( this.parent.options.wrapAround && slides.length > 1 ) {\n    this.enable();\n    return;\n  }\n  var lastIndex = slides.length ? slides.length - 1 : 0;\n  var boundIndex = this.isPrevious ? 0 : lastIndex;\n  var method = this.parent.selectedIndex == boundIndex ? 'disable' : 'enable';\n  this[ method ]();\n};\n\nPrevNextButton.prototype.destroy = function() {\n  this.deactivate();\n  this.allOff();\n};\n\n// -------------------------- Flickity prototype -------------------------- //\n\nutils.extend( Flickity.defaults, {\n  prevNextButtons: true,\n  arrowShape: {\n    x0: 10,\n    x1: 60, y1: 50,\n    x2: 70, y2: 40,\n    x3: 30,\n  },\n} );\n\nFlickity.createMethods.push('_createPrevNextButtons');\nvar proto = Flickity.prototype;\n\nproto._createPrevNextButtons = function() {\n  if ( !this.options.prevNextButtons ) {\n    return;\n  }\n\n  this.prevButton = new PrevNextButton( -1, this );\n  this.nextButton = new PrevNextButton( 1, this );\n\n  this.on( 'activate', this.activatePrevNextButtons );\n};\n\nproto.activatePrevNextButtons = function() {\n  this.prevButton.activate();\n  this.nextButton.activate();\n  this.on( 'deactivate', this.deactivatePrevNextButtons );\n};\n\nproto.deactivatePrevNextButtons = function() {\n  this.prevButton.deactivate();\n  this.nextButton.deactivate();\n  this.off( 'deactivate', this.deactivatePrevNextButtons );\n};\n\n// --------------------------  -------------------------- //\n\nFlickity.PrevNextButton = PrevNextButton;\n\nreturn Flickity;\n\n} ) );\n\n// page dots\n( function( window, factory ) {\n  // universal module definition\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( 'flickity/js/page-dots',[\n      './flickity',\n      'unipointer/unipointer',\n      'fizzy-ui-utils/utils',\n    ], function( Flickity, Unipointer, utils ) {\n      return factory( window, Flickity, Unipointer, utils );\n    } );\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory(\n        window,\n        require('./flickity'),\n        require('unipointer'),\n        require('fizzy-ui-utils')\n    );\n  } else {\n    // browser global\n    factory(\n        window,\n        window.Flickity,\n        window.Unipointer,\n        window.fizzyUIUtils\n    );\n  }\n\n}( window, function factory( window, Flickity, Unipointer, utils ) {\n\n// -------------------------- PageDots -------------------------- //\n\n\n\nfunction PageDots( parent ) {\n  this.parent = parent;\n  this._create();\n}\n\nPageDots.prototype = Object.create( Unipointer.prototype );\n\nPageDots.prototype._create = function() {\n  // create holder element\n  this.holder = document.createElement('ol');\n  this.holder.className = 'flickity-page-dots';\n  // create dots, array of elements\n  this.dots = [];\n  // events\n  this.handleClick = this.onClick.bind( this );\n  this.on( 'pointerDown', this.parent.childUIPointerDown.bind( this.parent ) );\n};\n\nPageDots.prototype.activate = function() {\n  this.setDots();\n  this.holder.addEventListener( 'click', this.handleClick );\n  this.bindStartEvent( this.holder );\n  // add to DOM\n  this.parent.element.appendChild( this.holder );\n};\n\nPageDots.prototype.deactivate = function() {\n  this.holder.removeEventListener( 'click', this.handleClick );\n  this.unbindStartEvent( this.holder );\n  // remove from DOM\n  this.parent.element.removeChild( this.holder );\n};\n\nPageDots.prototype.setDots = function() {\n  // get difference between number of slides and number of dots\n  var delta = this.parent.slides.length - this.dots.length;\n  if ( delta > 0 ) {\n    this.addDots( delta );\n  } else if ( delta < 0 ) {\n    this.removeDots( -delta );\n  }\n};\n\nPageDots.prototype.addDots = function( count ) {\n  var fragment = document.createDocumentFragment();\n  var newDots = [];\n  var length = this.dots.length;\n  var max = length + count;\n\n  for ( var i = length; i < max; i++ ) {\n    var dot = document.createElement('li');\n    dot.className = 'dot';\n    dot.setAttribute( 'aria-label', 'Page dot ' + ( i + 1 ) );\n    fragment.appendChild( dot );\n    newDots.push( dot );\n  }\n\n  this.holder.appendChild( fragment );\n  this.dots = this.dots.concat( newDots );\n};\n\nPageDots.prototype.removeDots = function( count ) {\n  // remove from this.dots collection\n  var removeDots = this.dots.splice( this.dots.length - count, count );\n  // remove from DOM\n  removeDots.forEach( function( dot ) {\n    this.holder.removeChild( dot );\n  }, this );\n};\n\nPageDots.prototype.updateSelected = function() {\n  // remove selected class on previous\n  if ( this.selectedDot ) {\n    this.selectedDot.className = 'dot';\n    this.selectedDot.removeAttribute('aria-current');\n  }\n  // don't proceed if no dots\n  if ( !this.dots.length ) {\n    return;\n  }\n  this.selectedDot = this.dots[ this.parent.selectedIndex ];\n  this.selectedDot.className = 'dot is-selected';\n  this.selectedDot.setAttribute( 'aria-current', 'step' );\n};\n\nPageDots.prototype.onTap = // old method name, backwards-compatible\nPageDots.prototype.onClick = function( event ) {\n  var target = event.target;\n  // only care about dot clicks\n  if ( target.nodeName != 'LI' ) {\n    return;\n  }\n\n  this.parent.uiChange();\n  var index = this.dots.indexOf( target );\n  this.parent.select( index );\n};\n\nPageDots.prototype.destroy = function() {\n  this.deactivate();\n  this.allOff();\n};\n\nFlickity.PageDots = PageDots;\n\n// -------------------------- Flickity -------------------------- //\n\nutils.extend( Flickity.defaults, {\n  pageDots: true,\n} );\n\nFlickity.createMethods.push('_createPageDots');\n\nvar proto = Flickity.prototype;\n\nproto._createPageDots = function() {\n  if ( !this.options.pageDots ) {\n    return;\n  }\n  this.pageDots = new PageDots( this );\n  // events\n  this.on( 'activate', this.activatePageDots );\n  this.on( 'select', this.updateSelectedPageDots );\n  this.on( 'cellChange', this.updatePageDots );\n  this.on( 'resize', this.updatePageDots );\n  this.on( 'deactivate', this.deactivatePageDots );\n};\n\nproto.activatePageDots = function() {\n  this.pageDots.activate();\n};\n\nproto.updateSelectedPageDots = function() {\n  this.pageDots.updateSelected();\n};\n\nproto.updatePageDots = function() {\n  this.pageDots.setDots();\n};\n\nproto.deactivatePageDots = function() {\n  this.pageDots.deactivate();\n};\n\n// -----  ----- //\n\nFlickity.PageDots = PageDots;\n\nreturn Flickity;\n\n} ) );\n\n// player & autoPlay\n( function( window, factory ) {\n  // universal module definition\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( 'flickity/js/player',[\n      'ev-emitter/ev-emitter',\n      'fizzy-ui-utils/utils',\n      './flickity',\n    ], function( EvEmitter, utils, Flickity ) {\n      return factory( EvEmitter, utils, Flickity );\n    } );\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory(\n        require('ev-emitter'),\n        require('fizzy-ui-utils'),\n        require('./flickity')\n    );\n  } else {\n    // browser global\n    factory(\n        window.EvEmitter,\n        window.fizzyUIUtils,\n        window.Flickity\n    );\n  }\n\n}( window, function factory( EvEmitter, utils, Flickity ) {\n\n\n\n// -------------------------- Player -------------------------- //\n\nfunction Player( parent ) {\n  this.parent = parent;\n  this.state = 'stopped';\n  // visibility change event handler\n  this.onVisibilityChange = this.visibilityChange.bind( this );\n  this.onVisibilityPlay = this.visibilityPlay.bind( this );\n}\n\nPlayer.prototype = Object.create( EvEmitter.prototype );\n\n// start play\nPlayer.prototype.play = function() {\n  if ( this.state == 'playing' ) {\n    return;\n  }\n  // do not play if page is hidden, start playing when page is visible\n  var isPageHidden = document.hidden;\n  if ( isPageHidden ) {\n    document.addEventListener( 'visibilitychange', this.onVisibilityPlay );\n    return;\n  }\n\n  this.state = 'playing';\n  // listen to visibility change\n  document.addEventListener( 'visibilitychange', this.onVisibilityChange );\n  // start ticking\n  this.tick();\n};\n\nPlayer.prototype.tick = function() {\n  // do not tick if not playing\n  if ( this.state != 'playing' ) {\n    return;\n  }\n\n  var time = this.parent.options.autoPlay;\n  // default to 3 seconds\n  time = typeof time == 'number' ? time : 3000;\n  var _this = this;\n  // HACK: reset ticks if stopped and started within interval\n  this.clear();\n  this.timeout = setTimeout( function() {\n    _this.parent.next( true );\n    _this.tick();\n  }, time );\n};\n\nPlayer.prototype.stop = function() {\n  this.state = 'stopped';\n  this.clear();\n  // remove visibility change event\n  document.removeEventListener( 'visibilitychange', this.onVisibilityChange );\n};\n\nPlayer.prototype.clear = function() {\n  clearTimeout( this.timeout );\n};\n\nPlayer.prototype.pause = function() {\n  if ( this.state == 'playing' ) {\n    this.state = 'paused';\n    this.clear();\n  }\n};\n\nPlayer.prototype.unpause = function() {\n  // re-start play if paused\n  if ( this.state == 'paused' ) {\n    this.play();\n  }\n};\n\n// pause if page visibility is hidden, unpause if visible\nPlayer.prototype.visibilityChange = function() {\n  var isPageHidden = document.hidden;\n  this[ isPageHidden ? 'pause' : 'unpause' ]();\n};\n\nPlayer.prototype.visibilityPlay = function() {\n  this.play();\n  document.removeEventListener( 'visibilitychange', this.onVisibilityPlay );\n};\n\n// -------------------------- Flickity -------------------------- //\n\nutils.extend( Flickity.defaults, {\n  pauseAutoPlayOnHover: true,\n} );\n\nFlickity.createMethods.push('_createPlayer');\nvar proto = Flickity.prototype;\n\nproto._createPlayer = function() {\n  this.player = new Player( this );\n\n  this.on( 'activate', this.activatePlayer );\n  this.on( 'uiChange', this.stopPlayer );\n  this.on( 'pointerDown', this.stopPlayer );\n  this.on( 'deactivate', this.deactivatePlayer );\n};\n\nproto.activatePlayer = function() {\n  if ( !this.options.autoPlay ) {\n    return;\n  }\n  this.player.play();\n  this.element.addEventListener( 'mouseenter', this );\n};\n\n// Player API, don't hate the ... thanks I know where the door is\n\nproto.playPlayer = function() {\n  this.player.play();\n};\n\nproto.stopPlayer = function() {\n  this.player.stop();\n};\n\nproto.pausePlayer = function() {\n  this.player.pause();\n};\n\nproto.unpausePlayer = function() {\n  this.player.unpause();\n};\n\nproto.deactivatePlayer = function() {\n  this.player.stop();\n  this.element.removeEventListener( 'mouseenter', this );\n};\n\n// ----- mouseenter/leave ----- //\n\n// pause auto-play on hover\nproto.onmouseenter = function() {\n  if ( !this.options.pauseAutoPlayOnHover ) {\n    return;\n  }\n  this.player.pause();\n  this.element.addEventListener( 'mouseleave', this );\n};\n\n// resume auto-play on hover off\nproto.onmouseleave = function() {\n  this.player.unpause();\n  this.element.removeEventListener( 'mouseleave', this );\n};\n\n// -----  ----- //\n\nFlickity.Player = Player;\n\nreturn Flickity;\n\n} ) );\n\n// add, remove cell\n( function( window, factory ) {\n  // universal module definition\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( 'flickity/js/add-remove-cell',[\n      './flickity',\n      'fizzy-ui-utils/utils',\n    ], function( Flickity, utils ) {\n      return factory( window, Flickity, utils );\n    } );\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory(\n        window,\n        require('./flickity'),\n        require('fizzy-ui-utils')\n    );\n  } else {\n    // browser global\n    factory(\n        window,\n        window.Flickity,\n        window.fizzyUIUtils\n    );\n  }\n\n}( window, function factory( window, Flickity, utils ) {\n\n\n\n// append cells to a document fragment\nfunction getCellsFragment( cells ) {\n  var fragment = document.createDocumentFragment();\n  cells.forEach( function( cell ) {\n    fragment.appendChild( cell.element );\n  } );\n  return fragment;\n}\n\n// -------------------------- add/remove cell prototype -------------------------- //\n\nvar proto = Flickity.prototype;\n\n/**\n * Insert, prepend, or append cells\n * @param {[Element, Array, NodeList]} elems - Elements to insert\n * @param {Integer} index - Zero-based number to insert\n */\nproto.insert = function( elems, index ) {\n  var cells = this._makeCells( elems );\n  if ( !cells || !cells.length ) {\n    return;\n  }\n  var len = this.cells.length;\n  // default to append\n  index = index === undefined ? len : index;\n  // add cells with document fragment\n  var fragment = getCellsFragment( cells );\n  // append to slider\n  var isAppend = index == len;\n  if ( isAppend ) {\n    this.slider.appendChild( fragment );\n  } else {\n    var insertCellElement = this.cells[ index ].element;\n    this.slider.insertBefore( fragment, insertCellElement );\n  }\n  // add to this.cells\n  if ( index === 0 ) {\n    // prepend, add to start\n    this.cells = cells.concat( this.cells );\n  } else if ( isAppend ) {\n    // append, add to end\n    this.cells = this.cells.concat( cells );\n  } else {\n    // insert in this.cells\n    var endCells = this.cells.splice( index, len - index );\n    this.cells = this.cells.concat( cells ).concat( endCells );\n  }\n\n  this._sizeCells( cells );\n  this.cellChange( index, true );\n};\n\nproto.append = function( elems ) {\n  this.insert( elems, this.cells.length );\n};\n\nproto.prepend = function( elems ) {\n  this.insert( elems, 0 );\n};\n\n/**\n * Remove cells\n * @param {[Element, Array, NodeList]} elems - ELements to remove\n */\nproto.remove = function( elems ) {\n  var cells = this.getCells( elems );\n  if ( !cells || !cells.length ) {\n    return;\n  }\n\n  var minCellIndex = this.cells.length - 1;\n  // remove cells from collection & DOM\n  cells.forEach( function( cell ) {\n    cell.remove();\n    var index = this.cells.indexOf( cell );\n    minCellIndex = Math.min( index, minCellIndex );\n    utils.removeFrom( this.cells, cell );\n  }, this );\n\n  this.cellChange( minCellIndex, true );\n};\n\n/**\n * logic to be run after a cell's size changes\n * @param {Element} elem - cell's element\n */\nproto.cellSizeChange = function( elem ) {\n  var cell = this.getCell( elem );\n  if ( !cell ) {\n    return;\n  }\n  cell.getSize();\n\n  var index = this.cells.indexOf( cell );\n  this.cellChange( index );\n};\n\n/**\n * logic any time a cell is changed: added, removed, or size changed\n * @param {Integer} changedCellIndex - index of the changed cell, optional\n * @param {Boolean} isPositioningSlider - Positions slider after selection\n */\nproto.cellChange = function( changedCellIndex, isPositioningSlider ) {\n  var prevSelectedElem = this.selectedElement;\n  this._positionCells( changedCellIndex );\n  this._getWrapShiftCells();\n  this.setGallerySize();\n  // update selectedIndex\n  // try to maintain position & select previous selected element\n  var cell = this.getCell( prevSelectedElem );\n  if ( cell ) {\n    this.selectedIndex = this.getCellSlideIndex( cell );\n  }\n  this.selectedIndex = Math.min( this.slides.length - 1, this.selectedIndex );\n\n  this.emitEvent( 'cellChange', [ changedCellIndex ] );\n  // position slider\n  this.select( this.selectedIndex );\n  // do not position slider after lazy load\n  if ( isPositioningSlider ) {\n    this.positionSliderAtSelected();\n  }\n};\n\n// -----  ----- //\n\nreturn Flickity;\n\n} ) );\n\n// lazyload\n( function( window, factory ) {\n  // universal module definition\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( 'flickity/js/lazyload',[\n      './flickity',\n      'fizzy-ui-utils/utils',\n    ], function( Flickity, utils ) {\n      return factory( window, Flickity, utils );\n    } );\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory(\n        window,\n        require('./flickity'),\n        require('fizzy-ui-utils')\n    );\n  } else {\n    // browser global\n    factory(\n        window,\n        window.Flickity,\n        window.fizzyUIUtils\n    );\n  }\n\n}( window, function factory( window, Flickity, utils ) {\n'use strict';\n\nFlickity.createMethods.push('_createLazyload');\nvar proto = Flickity.prototype;\n\nproto._createLazyload = function() {\n  this.on( 'select', this.lazyLoad );\n};\n\nproto.lazyLoad = function() {\n  var lazyLoad = this.options.lazyLoad;\n  if ( !lazyLoad ) {\n    return;\n  }\n  // get adjacent cells, use lazyLoad option for adjacent count\n  var adjCount = typeof lazyLoad == 'number' ? lazyLoad : 0;\n  var cellElems = this.getAdjacentCellElements( adjCount );\n  // get lazy images in those cells\n  var lazyImages = [];\n  cellElems.forEach( function( cellElem ) {\n    var lazyCellImages = getCellLazyImages( cellElem );\n    lazyImages = lazyImages.concat( lazyCellImages );\n  } );\n  // load lazy images\n  lazyImages.forEach( function( img ) {\n    new LazyLoader( img, this );\n  }, this );\n};\n\nfunction getCellLazyImages( cellElem ) {\n  // check if cell element is lazy image\n  if ( cellElem.nodeName == 'IMG' ) {\n    var lazyloadAttr = cellElem.getAttribute('data-flickity-lazyload');\n    var srcAttr = cellElem.getAttribute('data-flickity-lazyload-src');\n    var srcsetAttr = cellElem.getAttribute('data-flickity-lazyload-srcset');\n    if ( lazyloadAttr || srcAttr || srcsetAttr ) {\n      return [ cellElem ];\n    }\n  }\n  // select lazy images in cell\n  var lazySelector = 'img[data-flickity-lazyload], ' +\n    'img[data-flickity-lazyload-src], img[data-flickity-lazyload-srcset]';\n  var imgs = cellElem.querySelectorAll( lazySelector );\n  return utils.makeArray( imgs );\n}\n\n// -------------------------- LazyLoader -------------------------- //\n\n/**\n * class to handle loading images\n * @param {Image} img - Image element\n * @param {Flickity} flickity - Flickity instance\n */\nfunction LazyLoader( img, flickity ) {\n  this.img = img;\n  this.flickity = flickity;\n  this.load();\n}\n\nLazyLoader.prototype.handleEvent = utils.handleEvent;\n\nLazyLoader.prototype.load = function() {\n  this.img.addEventListener( 'load', this );\n  this.img.addEventListener( 'error', this );\n  // get src & srcset\n  var src = this.img.getAttribute('data-flickity-lazyload') ||\n    this.img.getAttribute('data-flickity-lazyload-src');\n  var srcset = this.img.getAttribute('data-flickity-lazyload-srcset');\n  // set src & serset\n  this.img.src = src;\n  if ( srcset ) {\n    this.img.setAttribute( 'srcset', srcset );\n  }\n  // remove attr\n  this.img.removeAttribute('data-flickity-lazyload');\n  this.img.removeAttribute('data-flickity-lazyload-src');\n  this.img.removeAttribute('data-flickity-lazyload-srcset');\n};\n\nLazyLoader.prototype.onload = function( event ) {\n  this.complete( event, 'flickity-lazyloaded' );\n};\n\nLazyLoader.prototype.onerror = function( event ) {\n  this.complete( event, 'flickity-lazyerror' );\n};\n\nLazyLoader.prototype.complete = function( event, className ) {\n  // unbind events\n  this.img.removeEventListener( 'load', this );\n  this.img.removeEventListener( 'error', this );\n\n  var cell = this.flickity.getParentCell( this.img );\n  var cellElem = cell && cell.element;\n  this.flickity.cellSizeChange( cellElem );\n\n  this.img.classList.add( className );\n  this.flickity.dispatchEvent( 'lazyLoad', event, cellElem );\n};\n\n// -----  ----- //\n\nFlickity.LazyLoader = LazyLoader;\n\nreturn Flickity;\n\n} ) );\n\n/*!\n * Flickity v2.2.2\n * Touch, responsive, flickable carousels\n *\n * Licensed GPLv3 for open source use\n * or Flickity Commercial License for commercial use\n *\n * https://flickity.metafizzy.co\n * Copyright 2015-2021 Metafizzy\n */\n\n( function( window, factory ) {\n  // universal module definition\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( 'flickity/js/index',[\n      './flickity',\n      './drag',\n      './prev-next-button',\n      './page-dots',\n      './player',\n      './add-remove-cell',\n      './lazyload',\n    ], factory );\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory(\n        require('./flickity'),\n        require('./drag'),\n        require('./prev-next-button'),\n        require('./page-dots'),\n        require('./player'),\n        require('./add-remove-cell'),\n        require('./lazyload')\n    );\n  }\n\n} )( window, function factory( Flickity ) {\n  return Flickity;\n} );\n\n/*!\n * Flickity asNavFor v2.0.2\n * enable asNavFor for Flickity\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true*/\n\n( function( window, factory ) {\n  // universal module definition\n  /*jshint strict: false */ /*globals define, module, require */\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( 'flickity-as-nav-for/as-nav-for',[\n      'flickity/js/index',\n      'fizzy-ui-utils/utils'\n    ], factory );\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory(\n      require('flickity'),\n      require('fizzy-ui-utils')\n    );\n  } else {\n    // browser global\n    window.Flickity = factory(\n      window.Flickity,\n      window.fizzyUIUtils\n    );\n  }\n\n}( window, function factory( Flickity, utils ) {\n\n\n\n// -------------------------- asNavFor prototype -------------------------- //\n\n// Flickity.defaults.asNavFor = null;\n\nFlickity.createMethods.push('_createAsNavFor');\n\nvar proto = Flickity.prototype;\n\nproto._createAsNavFor = function() {\n  this.on( 'activate', this.activateAsNavFor );\n  this.on( 'deactivate', this.deactivateAsNavFor );\n  this.on( 'destroy', this.destroyAsNavFor );\n\n  var asNavForOption = this.options.asNavFor;\n  if ( !asNavForOption ) {\n    return;\n  }\n  // HACK do async, give time for other flickity to be initalized\n  var _this = this;\n  setTimeout( function initNavCompanion() {\n    _this.setNavCompanion( asNavForOption );\n  });\n};\n\nproto.setNavCompanion = function( elem ) {\n  elem = utils.getQueryElement( elem );\n  var companion = Flickity.data( elem );\n  // stop if no companion or companion is self\n  if ( !companion || companion == this ) {\n    return;\n  }\n\n  this.navCompanion = companion;\n  // companion select\n  var _this = this;\n  this.onNavCompanionSelect = function() {\n    _this.navCompanionSelect();\n  };\n  companion.on( 'select', this.onNavCompanionSelect );\n  // click\n  this.on( 'staticClick', this.onNavStaticClick );\n\n  this.navCompanionSelect( true );\n};\n\nproto.navCompanionSelect = function( isInstant ) {\n  // wait for companion & selectedCells first. #8\n  var companionCells = this.navCompanion && this.navCompanion.selectedCells;\n  if ( !companionCells ) {\n    return;\n  }\n  // select slide that matches first cell of slide\n  var selectedCell = companionCells[0];\n  var firstIndex = this.navCompanion.cells.indexOf( selectedCell );\n  var lastIndex = firstIndex + companionCells.length - 1;\n  var selectIndex = Math.floor( lerp( firstIndex, lastIndex,\n    this.navCompanion.cellAlign ) );\n  this.selectCell( selectIndex, false, isInstant );\n  // set nav selected class\n  this.removeNavSelectedElements();\n  // stop if companion has more cells than this one\n  if ( selectIndex >= this.cells.length ) {\n    return;\n  }\n\n  var selectedCells = this.cells.slice( firstIndex, lastIndex + 1 );\n  this.navSelectedElements = selectedCells.map( function( cell ) {\n    return cell.element;\n  });\n  this.changeNavSelectedClass('add');\n};\n\nfunction lerp( a, b, t ) {\n  return ( b - a ) * t + a;\n}\n\nproto.changeNavSelectedClass = function( method ) {\n  this.navSelectedElements.forEach( function( navElem ) {\n    navElem.classList[ method ]('is-nav-selected');\n  });\n};\n\nproto.activateAsNavFor = function() {\n  this.navCompanionSelect( true );\n};\n\nproto.removeNavSelectedElements = function() {\n  if ( !this.navSelectedElements ) {\n    return;\n  }\n  this.changeNavSelectedClass('remove');\n  delete this.navSelectedElements;\n};\n\nproto.onNavStaticClick = function( event, pointer, cellElement, cellIndex ) {\n  if ( typeof cellIndex == 'number' ) {\n    this.navCompanion.selectCell( cellIndex );\n  }\n};\n\nproto.deactivateAsNavFor = function() {\n  this.removeNavSelectedElements();\n};\n\nproto.destroyAsNavFor = function() {\n  if ( !this.navCompanion ) {\n    return;\n  }\n  this.navCompanion.off( 'select', this.onNavCompanionSelect );\n  this.off( 'staticClick', this.onNavStaticClick );\n  delete this.navCompanion;\n};\n\n// -----  ----- //\n\nreturn Flickity;\n\n}));\n\n/*!\n * imagesLoaded v4.1.4\n * JavaScript is all like \"You images are done yet or what?\"\n * MIT License\n */\n\n( function( window, factory ) { 'use strict';\n  // universal module definition\n\n  /*global define: false, module: false, require: false */\n\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( 'imagesloaded/imagesloaded',[\n      'ev-emitter/ev-emitter'\n    ], function( EvEmitter ) {\n      return factory( window, EvEmitter );\n    });\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory(\n      window,\n      require('ev-emitter')\n    );\n  } else {\n    // browser global\n    window.imagesLoaded = factory(\n      window,\n      window.EvEmitter\n    );\n  }\n\n})( typeof window !== 'undefined' ? window : this,\n\n// --------------------------  factory -------------------------- //\n\nfunction factory( window, EvEmitter ) {\n\n\n\nvar $ = window.jQuery;\nvar console = window.console;\n\n// -------------------------- helpers -------------------------- //\n\n// extend objects\nfunction extend( a, b ) {\n  for ( var prop in b ) {\n    a[ prop ] = b[ prop ];\n  }\n  return a;\n}\n\nvar arraySlice = Array.prototype.slice;\n\n// turn element or nodeList into an array\nfunction makeArray( obj ) {\n  if ( Array.isArray( obj ) ) {\n    // use object if already an array\n    return obj;\n  }\n\n  var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n  if ( isArrayLike ) {\n    // convert nodeList to array\n    return arraySlice.call( obj );\n  }\n\n  // array of single index\n  return [ obj ];\n}\n\n// -------------------------- imagesLoaded -------------------------- //\n\n/**\n * @param {Array, Element, NodeList, String} elem\n * @param {Object or Function} options - if function, use as callback\n * @param {Function} onAlways - callback function\n */\nfunction ImagesLoaded( elem, options, onAlways ) {\n  // coerce ImagesLoaded() without new, to be new ImagesLoaded()\n  if ( !( this instanceof ImagesLoaded ) ) {\n    return new ImagesLoaded( elem, options, onAlways );\n  }\n  // use elem as selector string\n  var queryElem = elem;\n  if ( typeof elem == 'string' ) {\n    queryElem = document.querySelectorAll( elem );\n  }\n  // bail if bad element\n  if ( !queryElem ) {\n    console.error( 'Bad element for imagesLoaded ' + ( queryElem || elem ) );\n    return;\n  }\n\n  this.elements = makeArray( queryElem );\n  this.options = extend( {}, this.options );\n  // shift arguments if no options set\n  if ( typeof options == 'function' ) {\n    onAlways = options;\n  } else {\n    extend( this.options, options );\n  }\n\n  if ( onAlways ) {\n    this.on( 'always', onAlways );\n  }\n\n  this.getImages();\n\n  if ( $ ) {\n    // add jQuery Deferred object\n    this.jqDeferred = new $.Deferred();\n  }\n\n  // HACK check async to allow time to bind listeners\n  setTimeout( this.check.bind( this ) );\n}\n\nImagesLoaded.prototype = Object.create( EvEmitter.prototype );\n\nImagesLoaded.prototype.options = {};\n\nImagesLoaded.prototype.getImages = function() {\n  this.images = [];\n\n  // filter & find items if we have an item selector\n  this.elements.forEach( this.addElementImages, this );\n};\n\n/**\n * @param {Node} element\n */\nImagesLoaded.prototype.addElementImages = function( elem ) {\n  // filter siblings\n  if ( elem.nodeName == 'IMG' ) {\n    this.addImage( elem );\n  }\n  // get background image on element\n  if ( this.options.background === true ) {\n    this.addElementBackgroundImages( elem );\n  }\n\n  // find children\n  // no non-element nodes, #143\n  var nodeType = elem.nodeType;\n  if ( !nodeType || !elementNodeTypes[ nodeType ] ) {\n    return;\n  }\n  var childImgs = elem.querySelectorAll('img');\n  // concat childElems to filterFound array\n  for ( var i=0; i < childImgs.length; i++ ) {\n    var img = childImgs[i];\n    this.addImage( img );\n  }\n\n  // get child background images\n  if ( typeof this.options.background == 'string' ) {\n    var children = elem.querySelectorAll( this.options.background );\n    for ( i=0; i < children.length; i++ ) {\n      var child = children[i];\n      this.addElementBackgroundImages( child );\n    }\n  }\n};\n\nvar elementNodeTypes = {\n  1: true,\n  9: true,\n  11: true\n};\n\nImagesLoaded.prototype.addElementBackgroundImages = function( elem ) {\n  var style = getComputedStyle( elem );\n  if ( !style ) {\n    // Firefox returns null if in a hidden iframe https://bugzil.la/548397\n    return;\n  }\n  // get url inside url(\"...\")\n  var reURL = /url\\((['\"])?(.*?)\\1\\)/gi;\n  var matches = reURL.exec( style.backgroundImage );\n  while ( matches !== null ) {\n    var url = matches && matches[2];\n    if ( url ) {\n      this.addBackground( url, elem );\n    }\n    matches = reURL.exec( style.backgroundImage );\n  }\n};\n\n/**\n * @param {Image} img\n */\nImagesLoaded.prototype.addImage = function( img ) {\n  var loadingImage = new LoadingImage( img );\n  this.images.push( loadingImage );\n};\n\nImagesLoaded.prototype.addBackground = function( url, elem ) {\n  var background = new Background( url, elem );\n  this.images.push( background );\n};\n\nImagesLoaded.prototype.check = function() {\n  var _this = this;\n  this.progressedCount = 0;\n  this.hasAnyBroken = false;\n  // complete if no images\n  if ( !this.images.length ) {\n    this.complete();\n    return;\n  }\n\n  function onProgress( image, elem, message ) {\n    // HACK - Chrome triggers event before object properties have changed. #83\n    setTimeout( function() {\n      _this.progress( image, elem, message );\n    });\n  }\n\n  this.images.forEach( function( loadingImage ) {\n    loadingImage.once( 'progress', onProgress );\n    loadingImage.check();\n  });\n};\n\nImagesLoaded.prototype.progress = function( image, elem, message ) {\n  this.progressedCount++;\n  this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded;\n  // progress event\n  this.emitEvent( 'progress', [ this, image, elem ] );\n  if ( this.jqDeferred && this.jqDeferred.notify ) {\n    this.jqDeferred.notify( this, image );\n  }\n  // check if completed\n  if ( this.progressedCount == this.images.length ) {\n    this.complete();\n  }\n\n  if ( this.options.debug && console ) {\n    console.log( 'progress: ' + message, image, elem );\n  }\n};\n\nImagesLoaded.prototype.complete = function() {\n  var eventName = this.hasAnyBroken ? 'fail' : 'done';\n  this.isComplete = true;\n  this.emitEvent( eventName, [ this ] );\n  this.emitEvent( 'always', [ this ] );\n  if ( this.jqDeferred ) {\n    var jqMethod = this.hasAnyBroken ? 'reject' : 'resolve';\n    this.jqDeferred[ jqMethod ]( this );\n  }\n};\n\n// --------------------------  -------------------------- //\n\nfunction LoadingImage( img ) {\n  this.img = img;\n}\n\nLoadingImage.prototype = Object.create( EvEmitter.prototype );\n\nLoadingImage.prototype.check = function() {\n  // If complete is true and browser supports natural sizes,\n  // try to check for image status manually.\n  var isComplete = this.getIsImageComplete();\n  if ( isComplete ) {\n    // report based on naturalWidth\n    this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );\n    return;\n  }\n\n  // If none of the checks above matched, simulate loading on detached element.\n  this.proxyImage = new Image();\n  this.proxyImage.addEventListener( 'load', this );\n  this.proxyImage.addEventListener( 'error', this );\n  // bind to image as well for Firefox. #191\n  this.img.addEventListener( 'load', this );\n  this.img.addEventListener( 'error', this );\n  this.proxyImage.src = this.img.src;\n};\n\nLoadingImage.prototype.getIsImageComplete = function() {\n  // check for non-zero, non-undefined naturalWidth\n  // fixes Safari+InfiniteScroll+Masonry bug infinite-scroll#671\n  return this.img.complete && this.img.naturalWidth;\n};\n\nLoadingImage.prototype.confirm = function( isLoaded, message ) {\n  this.isLoaded = isLoaded;\n  this.emitEvent( 'progress', [ this, this.img, message ] );\n};\n\n// ----- events ----- //\n\n// trigger specified handler for event type\nLoadingImage.prototype.handleEvent = function( event ) {\n  var method = 'on' + event.type;\n  if ( this[ method ] ) {\n    this[ method ]( event );\n  }\n};\n\nLoadingImage.prototype.onload = function() {\n  this.confirm( true, 'onload' );\n  this.unbindEvents();\n};\n\nLoadingImage.prototype.onerror = function() {\n  this.confirm( false, 'onerror' );\n  this.unbindEvents();\n};\n\nLoadingImage.prototype.unbindEvents = function() {\n  this.proxyImage.removeEventListener( 'load', this );\n  this.proxyImage.removeEventListener( 'error', this );\n  this.img.removeEventListener( 'load', this );\n  this.img.removeEventListener( 'error', this );\n};\n\n// -------------------------- Background -------------------------- //\n\nfunction Background( url, element ) {\n  this.url = url;\n  this.element = element;\n  this.img = new Image();\n}\n\n// inherit LoadingImage prototype\nBackground.prototype = Object.create( LoadingImage.prototype );\n\nBackground.prototype.check = function() {\n  this.img.addEventListener( 'load', this );\n  this.img.addEventListener( 'error', this );\n  this.img.src = this.url;\n  // check if image is already complete\n  var isComplete = this.getIsImageComplete();\n  if ( isComplete ) {\n    this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );\n    this.unbindEvents();\n  }\n};\n\nBackground.prototype.unbindEvents = function() {\n  this.img.removeEventListener( 'load', this );\n  this.img.removeEventListener( 'error', this );\n};\n\nBackground.prototype.confirm = function( isLoaded, message ) {\n  this.isLoaded = isLoaded;\n  this.emitEvent( 'progress', [ this, this.element, message ] );\n};\n\n// -------------------------- jQuery -------------------------- //\n\nImagesLoaded.makeJQueryPlugin = function( jQuery ) {\n  jQuery = jQuery || window.jQuery;\n  if ( !jQuery ) {\n    return;\n  }\n  // set local variable\n  $ = jQuery;\n  // $().imagesLoaded()\n  $.fn.imagesLoaded = function( options, callback ) {\n    var instance = new ImagesLoaded( this, options, callback );\n    return instance.jqDeferred.promise( $(this) );\n  };\n};\n// try making plugin\nImagesLoaded.makeJQueryPlugin();\n\n// --------------------------  -------------------------- //\n\nreturn ImagesLoaded;\n\n});\n\n/*!\n * Flickity imagesLoaded v2.0.0\n * enables imagesLoaded option for Flickity\n */\n\n/*jshint browser: true, strict: true, undef: true, unused: true */\n\n( function( window, factory ) {\n  // universal module definition\n  /*jshint strict: false */ /*globals define, module, require */\n  if ( typeof define == 'function' && define.amd ) {\n    // AMD\n    define( [\n      'flickity/js/index',\n      'imagesloaded/imagesloaded'\n    ], function( Flickity, imagesLoaded ) {\n      return factory( window, Flickity, imagesLoaded );\n    });\n  } else if ( typeof module == 'object' && module.exports ) {\n    // CommonJS\n    module.exports = factory(\n      window,\n      require('flickity'),\n      require('imagesloaded')\n    );\n  } else {\n    // browser global\n    window.Flickity = factory(\n      window,\n      window.Flickity,\n      window.imagesLoaded\n    );\n  }\n\n}( window, function factory( window, Flickity, imagesLoaded ) {\n'use strict';\n\nFlickity.createMethods.push('_createImagesLoaded');\n\nvar proto = Flickity.prototype;\n\nproto._createImagesLoaded = function() {\n  this.on( 'activate', this.imagesLoaded );\n};\n\nproto.imagesLoaded = function() {\n  if ( !this.options.imagesLoaded ) {\n    return;\n  }\n  var _this = this;\n  function onImagesLoadedProgress( instance, image ) {\n    var cell = _this.getParentCell( image.img );\n    _this.cellSizeChange( cell && cell.element );\n    if ( !_this.options.freeScroll ) {\n      _this.positionSliderAtSelected();\n    }\n  }\n  imagesLoaded( this.slider ).on( 'progress', onImagesLoadedProgress );\n};\n\nreturn Flickity;\n\n}));\n\n\n// ios13 fix \n\n(function() {\n  let touchingCarousel = false,\n    touchStartCoords;\n\n  document.body.addEventListener('touchstart', function(e) {\n    if (e.target.closest('.flickity-slider')) {\n      touchingCarousel = true;\n    } else {\n      touchingCarousel = false;\n      return;\n    }\n\n    touchStartCoords = {\n      x: e.touches[0].pageX,\n      y: e.touches[0].pageY\n    }\n  });\n\n  document.body.addEventListener('touchmove', function(e) {\n    if (!(touchingCarousel && e.cancelable)) {\n      return;\n    }\n\n    let moveVector = {\n      x: e.touches[0].pageX - touchStartCoords.x,\n      y: e.touches[0].pageY - touchStartCoords.y\n    };\n\n    if (Math.abs(moveVector.x) > Flickity.defaults.dragThreshold)\n      e.preventDefault()\n\n  }, {passive: false});\n})();\n(function() {\n  var JSONP, computedUrl, createElement, encode, noop, objectToURI, random, randomString;\n\n  createElement = function(tag) {\n    return window.document.createElement(tag);\n  };\n\n  encode = window.encodeURIComponent;\n\n  random = Math.random;\n\n  JSONP = function(options) {\n    var callback, callbackFunc, callbackName, done, head, params, script;\n    if (options == null) {\n      options = {};\n    }\n    params = {\n      data: options.data || {},\n      error: options.error || noop,\n      success: options.success || noop,\n      beforeSend: options.beforeSend || noop,\n      complete: options.complete || noop,\n      url: options.url || ''\n    };\n    params.computedUrl = computedUrl(params);\n    if (params.url.length === 0) {\n      throw new Error('MissingUrl');\n    }\n    done = false;\n    if (params.beforeSend({}, params) !== false) {\n      callbackName = options.callbackName || 'callback';\n      callbackFunc = options.callbackFunc || 'jsonp_' + randomString(15);\n      callback = params.data[callbackName] = callbackFunc;\n      window[callback] = function(data) {\n        window[callback] = null;\n        params.success(data, params);\n        return params.complete(data, params);\n      };\n      script = createElement('script');\n      script.src = computedUrl(params);\n      script.async = true;\n      script.onerror = function(evt) {\n        params.error({\n          url: script.src,\n          event: evt\n        });\n        return params.complete({\n          url: script.src,\n          event: evt\n        }, params);\n      };\n      script.onload = script.onreadystatechange = function() {\n        var ref, ref1;\n        if (done || ((ref = this.readyState) !== 'loaded' && ref !== 'complete')) {\n          return;\n        }\n        done = true;\n        if (script) {\n          script.onload = script.onreadystatechange = null;\n          if ((ref1 = script.parentNode) != null) {\n            ref1.removeChild(script);\n          }\n          return script = null;\n        }\n      };\n      head = window.document.getElementsByTagName('head')[0] || window.document.documentElement;\n      head.insertBefore(script, head.firstChild);\n    }\n    return {\n      abort: function() {\n        window[callback] = function() {\n          return window[callback] = null;\n        };\n        done = true;\n        if (script != null ? script.parentNode : void 0) {\n          script.onload = script.onreadystatechange = null;\n          script.parentNode.removeChild(script);\n          return script = null;\n        }\n      }\n    };\n  };\n\n  noop = function() {\n    return void 0;\n  };\n\n  computedUrl = function(params) {\n    var url;\n    url = params.url;\n    url += params.url.indexOf('?') < 0 ? '?' : '&';\n    url += objectToURI(params.data);\n    return url;\n  };\n\n  randomString = function(length) {\n    var str;\n    str = '';\n    while (str.length < length) {\n      str += random().toString(36).slice(2, 3);\n    }\n    return str;\n  };\n\n  objectToURI = function(obj) {\n    var data, key, value;\n    data = (function() {\n      var results;\n      results = [];\n      for (key in obj) {\n        value = obj[key];\n        results.push(encode(key) + '=' + encode(value));\n      }\n      return results;\n    })();\n    return data.join('&');\n  };\n\n  if (typeof define !== \"undefined\" && define !== null ? define.amd : void 0) {\n    define(function() {\n      return JSONP;\n    });\n  } else if (typeof module !== \"undefined\" && module !== null ? module.exports : void 0) {\n    module.exports = JSONP;\n  } else {\n    this.JSONP = JSONP;\n  }\n\n}).call(this);\n/*! https://raw.githubusercontent.com/aFarkas/lazysizes/gh-pages/plugins/respimg/ls.respimg.min.js */\n/*! lazysizes - v5.3.0 */\n!function(e,t){var r;e&&(r=function(){t(e.lazySizes),e.removeEventListener(\"lazyunveilread\",r,!0)},t=t.bind(null,e,e.document),\"object\"==typeof module&&module.exports?t(require(\"lazysizes\")):\"function\"==typeof define&&define.amd?define([\"lazysizes\"],t):e.lazySizes?r():e.addEventListener(\"lazyunveilread\",r,!0))}(\"undefined\"!=typeof window?window:0,function(d,n,p){\"use strict\";var i,a,s,l,t,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 r(e){var t,r,i=e.getAttribute(y.srcsetAttr);i&&(r=i.match(a))&&((t=\"w\"==r[2]?r[1]/r[3]:r[3]/r[1])&&e.setAttribute(\"data-aspectratio\",t),e.setAttribute(y.srcsetAttr,i.replace(h,\"\")))}function e(e){var t;e.detail.instance==p&&((t=e.target.parentNode)&&\"PICTURE\"==t.nodeName&&s.call(t.getElementsByTagName(\"source\"),r),r(e.target))}function t(){i.currentSrc&&n.removeEventListener(\"lazybeforeunveil\",e)}var i=n.createElement(\"img\");n.addEventListener(\"lazybeforeunveil\",e),i.onload=t,i.onerror=t,i.srcset=\"data:,a 1w 1h\",i.complete&&t()});function v(e,t){return e.w-t.w}function w(e,t,r,i){l.push({c:t,u:r,w:+i})}function b(e,t){var r,i=e.getAttribute(\"srcset\")||e.getAttribute(y.srcsetAttr);!i&&t&&(i=e._lazypolyfill?e._lazypolyfill._set:e.getAttribute(y.srcAttr)||e.getAttribute(\"src\")),e._lazypolyfill&&e._lazypolyfill._set==i||(r=o(i||\"\"),t&&e.parentNode&&(r.isPicture=\"PICTURE\"==e.parentNode.nodeName.toUpperCase(),r.isPicture&&d.matchMedia&&(p.aC(e,\"lazymatchmedia\"),c())),r._set=i,Object.defineProperty(e,\"_lazypolyfill\",{value:r,writable:!0}))}function A(e){var t,r,i,n,a,s,l,o,c,u=e;if(b(u,!0),(n=u._lazypolyfill).isPicture)for(r=0,i=(t=e.parentNode.getElementsByTagName(\"source\")).length;r<i;r++)if(y.supportsType(t[r].getAttribute(\"type\"),e)&&m(t[r].getAttribute(\"media\"))){u=t[r],b(u),n=u._lazypolyfill;break}return 1<n.length?(s=u.getAttribute(\"sizes\")||\"\",s=f.test(s)&&parseInt(s,10)||p.gW(e,e.parentNode),n.d=(l=e,o=d.devicePixelRatio||1,c=p.getX&&p.getX(l),Math.min(c||o,2.5,o)),!n.src||!n.w||n.w<s?(n.w=s,a=function(e){for(var t,r,i=e.length,n=e[i-1],a=0;a<i;a++)if((n=e[a]).d=n.w/e.w,n.d>=e.d){!n.cached&&(t=e[a-1])&&t.d>e.d-.13*Math.pow(e.d,2.2)&&(r=Math.pow(t.d-.6,1.6),t.cached&&(t.d+=.15*r),t.d+(n.d-e.d)*r>e.d&&(n=t));break}return n}(n.sort(v)),n.src=a):a=n.src):a=n[0],a}function E(e){var t;g&&e.parentNode&&\"PICTURE\"!=e.parentNode.nodeName.toUpperCase()||(t=A(e))&&t.u&&e._lazypolyfill.cur!=t.u&&(e._lazypolyfill.cur=t.u,t.cached=!0,e.setAttribute(y.srcAttr,t.u),e.setAttribute(\"src\",t.u))}y.supportsType||(y.supportsType=function(e){return!e}),d.HTMLPictureElement&&g?!p.hasHDescriptorFix&&n.msElementsFromPoint&&(p.hasHDescriptorFix=!0,z()):d.picturefill||y.pf||(y.pf=function(e){var t,r;if(!d.picturefill)for(t=0,r=e.elements.length;t<r;t++)i(e.elements[t])},f=/^\\s*\\d+\\.*\\d*px\\s*$/,t=/(([^,\\s].[^\\s]+)\\s+(\\d+)w)/g,r=/\\s/,c=function(){var e,r;function t(){for(var e=0,t=r.length;e<t;e++)i(r[e])}c.init||(c.init=!0,addEventListener(\"resize\",(r=n.getElementsByClassName(\"lazymatchmedia\"),function(){clearTimeout(e),e=setTimeout(t,66)})))},m=function(e){return d.matchMedia?(m=function(e){return!e||(matchMedia(e)||{}).matches})(e):!e},E.parse=o=function(e){return l=[],(e=e.trim()).replace(h,\"\").replace(t,w),l.length||!e||r.test(e)||l.push({c:e,u:e,w:99}),l},i=E,y.loadedClass&&y.loadingClass&&(u=[],['img[sizes$=\"px\"][srcset].',\"picture > img:not([srcset]).\"].forEach(function(e){u.push(e+y.loadedClass),u.push(e+y.loadingClass)}),y.pf({elements:n.querySelectorAll(u.join(\", \"))})))});\n\n/* https://raw.githubusercontent.com/aFarkas/lazysizes/gh-pages/plugins/parent-fit/ls.parent-fit.min.js */\n/*! lazysizes - v5.3.0 */\n!function(t,e){var i;t&&(i=function(){e(t.lazySizes),t.removeEventListener(\"lazyunveilread\",i,!0)},e=e.bind(null,t,t.document),\"object\"==typeof module&&module.exports?e(require(\"lazysizes\")):\"function\"==typeof define&&define.amd?define([\"lazysizes\"],e):t.lazySizes?i():t.addEventListener(\"lazyunveilread\",i,!0))}(\"undefined\"!=typeof window?window:0,function(u,t,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(t,e){var i=t,a=t.parentNode;return e&&\"prev\"!=e||!a||!f.test(a.nodeName||\"\")||(a=a.parentNode),\"self\"!=e&&(i=\"prev\"==e?t.previousElementSibling:e&&(a.closest||u.jQuery)&&(a.closest?a.closest(e):jQuery(a).closest(e)[0])||a),i},getFit:function(t){var e,i,a=getComputedStyle(t,null)||{},n=a.content||a.fontFamily,r={fit:t._lazysizesParentFit||t.getAttribute(\"data-parent-fit\")};return!r.fit&&n&&(e=n.match(s))&&(r.fit=e[1]),r.fit?(!(i=t._lazysizesParentContainer||t.getAttribute(\"data-parent-container\"))&&n&&(e=n.match(d))&&(i=e[1]),r.parent=o.getParent(t,i)):r.fit=a.objectFit,r},getImageRatio:function(t){for(var e,i,a,n,r,s,d=t.parentNode,o=d&&f.test(d.nodeName||\"\")?d.querySelectorAll(\"source, img\"):[t],c=0;c<o.length;c++)if(e=(t=o[c]).getAttribute(g.srcsetAttr)||t.getAttribute(\"srcset\")||t.getAttribute(\"data-pfsrcset\")||t.getAttribute(\"data-risrcset\")||\"\",i=t._lsMedia||t.getAttribute(\"media\"),i=g.customMedia[t.getAttribute(\"data-media\")||i]||i,e&&(!i||(u.matchMedia&&matchMedia(i)||{}).matches)){(a=parseFloat(t.getAttribute(\"data-aspectratio\")))||(s=(n=e.match(l))?\"w\"==n[2]?(r=n[1],n[3]):(r=n[3],n[1]):(r=t.getAttribute(\"width\"),t.getAttribute(\"height\")),a=r/s);break}return a},calculateSize:function(t,e){var i,a,n,r=this.getFit(t),s=r.fit,d=r.parent;return\"width\"==s||(\"contain\"==s||\"cover\"==s)&&(a=this.getImageRatio(t))?(d?e=d.clientWidth:d=t,n=e,\"width\"==s?n=e:(i=e/d.clientHeight)&&(\"cover\"==s&&i<a||\"contain\"==s&&a<i)&&(n=e*(a/i)),n):e}},i.parentFit=o,t.addEventListener(\"lazybeforesizes\",function(t){var e;t.defaultPrevented||t.detail.instance!=i||(e=t.target,t.detail.width=o.calculateSize(e,t.detail.width))}))});\n\n/*! https://raw.githubusercontent.com/aFarkas/lazysizes/gh-pages/lazysizes.min.js */\n/*! lazysizes - v5.3.0 */\n!function(e){var t=function(u,D,f){\"use strict\";var k,H;if(function(){var e;var t={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(e in t){if(!(e in H)){H[e]=t[e]}}}(),!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(e,t){if(!a[t]){a[t]=new RegExp(\"(\\\\s|^)\"+t+\"(\\\\s|$)\")}return a[t].test(e[$](\"class\")||\"\")&&a[t]},K=function(e,t){if(!J(e,t)){e.setAttribute(\"class\",(e[$](\"class\")||\"\").trim()+\" \"+t)}},Q=function(e,t){var a;if(a=J(e,t)){e.setAttribute(\"class\",(e[$](\"class\")||\"\").replace(a,\" \"))}},V=function(t,a,e){var i=e?P:\"removeEventListener\";if(e){V(t,a)}r.forEach(function(e){t[i](e,a)})},X=function(e,t,a,i,r){var n=D.createEvent(\"Event\");if(!a){a={}}a.instance=k;n.initEvent(t,!i,!r);n.detail=a;e.dispatchEvent(n);return n},Y=function(e,t){var a;if(!i&&(a=u.picturefill||H.pf)){if(t&&t.src&&!e[$](\"srcset\")){e.setAttribute(\"srcset\",t.src)}a({reevaluate:true,elements:[e]})}else if(t&&t.src){e.src=t.src}},Z=function(e,t){return(getComputedStyle(e,null)||{})[t]},s=function(e,t,a){a=a||e.offsetWidth;while(a<H.minSize&&t&&!e._lazysizesWidth){a=t.offsetWidth;t=t.parentNode}return a},ee=function(){var a,i;var t=[];var r=[];var n=t;var s=function(){var e=n;n=t.length?r:t;a=true;i=false;while(e.length){e.shift()()}a=false};var e=function(e,t){if(a&&!t){e.apply(this,arguments)}else{n.push(e);if(!i){i=true;(D.hidden?I:U)(s)}}};e._lsFlush=s;return e}(),te=function(a,e){return e?function(){ee(a)}:function(){var e=this;var t=arguments;ee(function(){a.apply(e,t)})}},ae=function(e){var a;var i=0;var r=H.throttleDelay;var n=H.ricTimeout;var t=function(){a=false;i=f.now();e()};var s=o&&n>49?function(){o(t,{timeout:n});if(n!==H.ricTimeout){n=H.ricTimeout}}:te(function(){I(t)},true);return function(e){var t;if(e=e===true){n=33}if(a){return}a=true;t=r-(f.now()-i);if(t<0){t=0}if(e||t<9){s()}else{I(s,t)}}},ie=function(e){var t,a;var i=99;var r=function(){t=null;e()};var n=function(){var e=f.now()-a;if(e<i){I(n,i-e)}else{(o||r)(r)}};return function(){a=f.now();if(!t){t=I(n,i)}}},e=function(){var v,m,c,h,e;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(e){M--;if(!e||M<0||!e.target){M=0}};var x=function(e){if(A==null){A=Z(D.body,\"visibility\")==\"hidden\"}return A||!(Z(e.parentNode,\"visibility\")==\"hidden\"&&Z(e,\"visibility\")==\"hidden\")};var W=function(e,t){var a;var i=e;var r=x(e);g-=t;b+=t;p-=t;C+=t;while(r&&(i=i.offsetParent)&&i!=D.body&&i!=O){r=(Z(i,\"opacity\")||1)>0;if(r&&Z(i,\"overflow\")!=\"visible\"){a=i.getBoundingClientRect();r=C>a.left&&p<a.right&&b>a.top-1&&g<a.bottom+1}}return r};var t=function(){var e,t,a,i,r,n,s,o,l,u,f,c;var d=k.elements;if((h=H.loadMode)&&M<8&&(e=d.length)){t=0;N++;for(;t<e;t++){if(!d[t]||d[t]._lazyRace){continue}if(!E||k.prematureUnveil&&k.prematureUnveil(d[t])){R(d[t]);continue}if(!(o=d[t][$](\"data-expand\"))||!(n=o*1)){n=w}if(!u){u=!H.expand||H.expand<1?O.clientHeight>500&&O.clientWidth>500?500:370:H.expand;k._defEx=u;f=u*H.expFactor;c=H.hFac;A=null;if(w<f&&M<1&&N>2&&h>2&&!D.hidden){w=f;N=0}else if(h>1&&N>1&&M<6){w=u}else{w=_}}if(l!==n){y=innerWidth+n*c;z=innerHeight+n;s=n*-1;l=n}a=d[t].getBoundingClientRect();if((b=a.bottom)>=s&&(g=a.top)<=z&&(C=a.right)>=s*c&&(p=a.left)<=y&&(b||C||p||g)&&(H.loadHidden||x(d[t]))&&(m&&M<3&&!o&&(h<3||N<4)||W(d[t],n))){R(d[t]);r=true;if(M>9){break}}else if(!r&&m&&!i&&M<4&&N<4&&h>2&&(v[0]||H.preloadAfterLoad)&&(v[0]||!o&&(b||C||p||g||d[t][$](H.sizesAttr)!=\"auto\"))){i=v[0]||d[t]}}if(i&&!r){R(i)}}};var a=ae(t);var S=function(e){var t=e.target;if(t._lazyCache){delete t._lazyCache;return}L(e);K(t,H.loadedClass);Q(t,H.loadingClass);V(t,B);X(t,\"lazyloaded\")};var i=te(S);var B=function(e){i({target:e.target})};var T=function(e,t){var a=e.getAttribute(\"data-load-mode\")||H.iframeLoadMode;if(a==0){e.contentWindow.location.replace(t)}else if(a==1){e.src=t}};var F=function(e){var t;var a=e[$](H.srcsetAttr);if(t=H.customMedia[e[$](\"data-media\")||e[$](\"media\")]){e.setAttribute(\"media\",t)}if(a){e.setAttribute(\"srcset\",a)}};var s=te(function(t,e,a,i,r){var n,s,o,l,u,f;if(!(u=X(t,\"lazybeforeunveil\",e)).defaultPrevented){if(i){if(a){K(t,H.autosizesClass)}else{t.setAttribute(\"sizes\",i)}}s=t[$](H.srcsetAttr);n=t[$](H.srcAttr);if(r){o=t.parentNode;l=o&&j.test(o.nodeName||\"\")}f=e.firesLoad||\"src\"in t&&(s||n||l);u={target:t};K(t,H.loadingClass);if(f){clearTimeout(c);c=I(L,2500);V(t,B,true)}if(l){G.call(o.getElementsByTagName(\"source\"),F)}if(s){t.setAttribute(\"srcset\",s)}else if(n&&!l){if(d.test(t.nodeName)){T(t,n)}else{t.src=n}}if(r&&(s||l)){Y(t,{src:n})}}if(t._lazyRace){delete t._lazyRace}Q(t,H.lazyClass);ee(function(){var e=t.complete&&t.naturalWidth>1;if(!f||e){if(e){K(t,H.fastLoadedClass)}S(u);t._lazyCache=true;I(function(){if(\"_lazyCache\"in t){delete t._lazyCache}},9)}if(t.loading==\"lazy\"){M--}},true)});var R=function(e){if(e._lazyRace){return}var t;var a=n.test(e.nodeName);var i=a&&(e[$](H.sizesAttr)||e[$](\"sizes\"));var r=i==\"auto\";if((r||!m)&&a&&(e[$](\"src\")||e.srcset)&&!e.complete&&!J(e,H.errorClass)&&J(e,H.lazyClass)){return}t=X(e,\"lazyunveilread\").detail;if(r){re.updateElem(e,true,e.offsetWidth)}e._lazyRace=true;M++;s(e,t,r,i,a)};var r=ie(function(){H.loadMode=3;a()});var o=function(){if(H.loadMode==3){H.loadMode=2}r()};var l=function(){if(m){return}if(f.now()-e<999){I(l,999);return}m=true;H.loadMode=3;a();q(\"scroll\",o,true)};return{_:function(){e=f.now();k.elements=D.getElementsByClassName(H.lazyClass);v=D.getElementsByClassName(H.lazyClass+\" \"+H.preloadClass);q(\"scroll\",a,true);q(\"resize\",a,true);q(\"pageshow\",function(e){if(e.persisted){var t=D.querySelectorAll(\".\"+H.loadingClass);if(t.length&&t.forEach){U(function(){t.forEach(function(e){if(e.complete){R(e)}})})}}});if(u.MutationObserver){new MutationObserver(a).observe(O,{childList:true,subtree:true,attributes:true})}else{O[P](\"DOMNodeInserted\",a,true);O[P](\"DOMAttrModified\",a,true);setInterval(a,999)}q(\"hashchange\",a,true);[\"focus\",\"mouseover\",\"click\",\"load\",\"transitionend\",\"animationend\"].forEach(function(e){D[P](e,a,true)});if(/d$|^c/.test(D.readyState)){l()}else{q(\"load\",l);D[P](\"DOMContentLoaded\",a);I(l,2e4)}if(k.elements.length){t();ee._lsFlush()}else{a()}},checkElems:a,unveil:R,_aLSL:o}}(),re=function(){var a;var n=te(function(e,t,a,i){var r,n,s;e._lazysizesWidth=i;i+=\"px\";e.setAttribute(\"sizes\",i);if(j.test(t.nodeName||\"\")){r=t.getElementsByTagName(\"source\");for(n=0,s=r.length;n<s;n++){r[n].setAttribute(\"sizes\",i)}}if(!a.detail.dataAttr){Y(e,a.detail)}});var i=function(e,t,a){var i;var r=e.parentNode;if(r){a=s(e,r,a);i=X(e,\"lazybeforesizes\",{width:a,dataAttr:!!t});if(!i.defaultPrevented){a=i.detail.width;if(a&&a!==e._lazysizesWidth){n(e,r,i,a)}}}};var e=function(){var e;var t=a.length;if(t){e=0;for(;e<t;e++){i(a[e])}}};var t=ie(e);return{_:function(){a=D.getElementsByClassName(H.autosizesClass);q(\"resize\",t)},checkElems:t,updateElem:i}}(),t=function(){if(!t.i&&D.getElementsByClassName){t.i=true;re._();e._()}};return I(function(){H.init&&t()}),k={cfg:H,autoSizer:re,loader:e,init:t,uP:Y,aC:K,rC:Q,hC:J,fire:X,gW:s,rAF:ee}}(e,e.document,Date);e.lazySizes=t,\"object\"==typeof module&&module.exports&&(module.exports=t)}(\"undefined\"!=typeof window?window:{});\n/* https://github.com/Spope/MiniMasonry.js/*/\nwindow.MiniMasonry=function(){\"use strict\";function t(t){return this._sizes=[],this._columns=[],this._container=null,this._count=null,this._width=0,this._resizeTimeout=null,this.conf={baseWidth:255,gutterX:null,gutterY:null,gutter:10,container:null,minify:!0,ultimateGutter:5,surroundingGutter:!0},this.init(t),this}return t.prototype.init=function(t){for(var i in this.conf)null!=t[i]&&(this.conf[i]=t[i]);if(null!=this.conf.gutterX&&null!=this.conf.gutterY||(this.conf.gutterX=this.conf.gutterY=this.conf.gutter),this._container=document.querySelector(this.conf.container),!this._container)throw new Error(\"Container not found or missing\");window.addEventListener(\"resize\",this.resizeThrottler.bind(this)),this.layout()},t.prototype.reset=function(){this._sizes=[],this._columns=[],this._count=null,this._width=this._container.clientWidth;var t=this.conf.baseWidth;this._width<t&&(this._width=t,this._container.style.minWidth=t+\"px\"),1==this.getCount()&&(this.conf.gutterX=this.conf.ultimateGutter,this._count=1),this._width<this.conf.baseWidth+2*this.conf.gutterX&&(this.conf.gutterX=0)},t.prototype.getCount=function(){return this.conf.surroundingGutter?Math.floor((this._width-this.conf.gutterX)/(this.conf.baseWidth+this.conf.gutterX)):Math.floor((this._width+this.conf.gutterX)/(this.conf.baseWidth+this.conf.gutterX))},t.prototype.computeWidth=function(){var t=this.conf.surroundingGutter?(this._width-this.conf.gutterX)/this._count-this.conf.gutterX:(this._width+this.conf.gutterX)/this._count-this.conf.gutterX;return t=Number.parseFloat(t.toFixed(2))},t.prototype.layout=function(){if(this._container){this.reset(),null==this._count&&(this._count=this.getCount());for(var t=this.computeWidth(),i=0;i<this._count;i++)this._columns[i]=0;for(var n=this._container.querySelectorAll(this.conf.container+\" > *\"),s=0;s<n.length;s++)n[s].style.width=t+\"px\",this._sizes[s]=n[s].clientHeight;var o,e=this.conf.surroundingGutter?this.conf.gutterX:0;this._count>this._sizes.length&&(o=this._sizes.length*(t+this.conf.gutterX)-this.conf.gutterX,e=(this._width-o)/2);for(var h=0;h<n.length;h++){var r=this.conf.minify?this.getShortest():this.getNextColumn(h),u=0;!this.conf.surroundingGutter&&r==this._columns.length||(u=this.conf.gutterX);var c=e+(t+u)*r,l=this._columns[r];n[h].style.transform=\"translate3d(\"+Math.round(c)+\"px,\"+Math.round(l)+\"px,0)\",this._columns[r]+=this._sizes[h]+(1<this._count?this.conf.gutterY:this.conf.ultimateGutter)}this._container.style.height=this._columns[this.getLongest()]-this.conf.gutterY+\"px\"}else console.error(\"Container not found\")},t.prototype.getNextColumn=function(t){return t%this._columns.length},t.prototype.getShortest=function(){for(var t=0,i=0;i<this._count;i++)this._columns[i]<this._columns[t]&&(t=i);return t},t.prototype.getLongest=function(){for(var t=0,i=0;i<this._count;i++)this._columns[i]>this._columns[t]&&(t=i);return t},t.prototype.resizeThrottler=function(){this._resizeTimeout||(this._resizeTimeout=setTimeout(function(){this._resizeTimeout=null,this._container.clientWidth!=this._width&&this.layout()}.bind(this),33))},t}();\n!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).reframe=t()}(this,function(){\"use strict\";function t(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;for(var i=Array(e),o=0,t=0;t<n;t++)for(var r=arguments[t],f=0,d=r.length;f<d;f++,o++)i[o]=r[f];return i}return function(e,s){return void 0===s&&(s=\"js-reframe\"),(\"string\"==typeof e?t(document.querySelectorAll(e)):\"length\"in e?t(e):[e]).forEach(function(e){var t,n,i,o,r,f,d,l;-1!==e.className.split(\" \").indexOf(s)||-1<e.style.width.indexOf(\"%\")||(i=e.getAttribute(\"height\")||e.offsetHeight,o=e.getAttribute(\"width\")||e.offsetWidth,r=(\"string\"==typeof i?parseInt(i):i)/(\"string\"==typeof o?parseInt(o):o)*100,(f=document.createElement(\"div\")).className=s,(d=f.style).position=\"relative\",d.width=\"100%\",d.paddingTop=r+\"%\",(l=e.style).position=\"absolute\",l.width=\"100%\",l.height=\"100%\",l.left=\"0\",l.top=\"0\",null!==(t=e.parentNode)&&void 0!==t&&t.insertBefore(f,e),null!==(n=e.parentNode)&&void 0!==n&&n.removeChild(e),f.appendChild(e))})}});\nKING = {\n\tversion: '5.3.3'\n};\n\n/*\n * vanilla javascript styled effect inspired by\n * http://wellstyled.com/en/javascript-styleselect-jquery-plugin/\n */\n\n$.fn.styledSelect = function(options) {\n\n\tvar prefs = {\n\t\tcoverClass : 'select-replace-cover',\n\t\tinnerClass : 'select-replace',\n\t\tadjustPosition : { top:0, left:0 },\n\t\tselectOpacity : 0\n\t}\n\n\tif (options) $.extend(prefs,options);\n\t\n\treturn this.each(function(){\n\t\n\t\tvar $selElm = $(this);\n\n\t\t$selElm.wrap('<span><'+'/span>');\n\t\t$selElm.after('<span><'+'/span>');\n\n\t\tvar $selReplace = $selElm.next(),\n\t\t\t$selCover = $selElm.parent();\n\n\t\t$selElm.css({\n\t\t\t'opacity': prefs.selectOpacity,\n\t\t\t'visibility': 'visible',\n\t\t\t'position': 'absolute',\n\t\t\t'top' :0,\n\t\t\t'left': 0,\n\t\t\t'display': 'inline',\n\t\t\t'z-index': 1\n\t\t}).attr('tabindex', '-1');\n\n\t\t$selCover.addClass(prefs.coverClass).css({\n\t\t\t'display': 'inline-block',\n\t\t\t'position': 'relative',\n\t\t\t'top' :prefs.adjustPosition.top,\n\t\t\t'left' :prefs.adjustPosition.left,\n\t\t\t'z-index': 0,\n\t\t\t'vertical-align': 'middle',\n\t\t\t'text-align': 'left'\n\t\t}).attr('tabindex', '0');\n\n\t\t$selReplace.addClass(prefs.innerClass).css({\n\t\t\t'display': 'block',\n\t\t\t'white-space': 'nowrap'\n\t\t});\n\n\t\t$selElm.on('change',function() {\n\t\t\tif ( this.selectedIndex >= 0 ) {\n\t\t\t\t$(this).next().html(this.options[this.selectedIndex].text);\n\t\t\t}\n\t\t});\n\t\t$selReplace.text($selElm[0].options[$selElm[0].selectedIndex].text);\n\t\t$selCover.width($selElm.width()+'px');\n\n\t});\n\n}\n\nwindow.styledSelectUpgraded = function($select, maxHeightCap) {\n\n\tif ( ! $select.hasClass('styled') ) {\n\n\t\t$select.styledSelect({\n\t\t  coverClass: 'regular-select-cover',\n\t\t  innerClass: 'regular-select-inner'\n\t\t}).addClass('styled');\n\n\t\tvar $selectContainer = $select.parent();\n\n\t\tvar listDOM = '<span class=\"regular-select-content\">';\n\t\t$select.find('option').each(function(){\n\t\t\tlistDOM += '<span class=\"regular-select-item' + ( $(this).prop('selected') ? ' selected ' : '' ) + '\" data-value=\"' + encodeURIComponent($(this).val()) + '\">' + $(this).text() + '</span>';\n\t\t});\n\t\tlistDOM += '</span>';\n\t\t$selectContainer.append(listDOM);\n\n\t\t$selectContainer.find('.regular-select-item').on('click', function(){\n\t\t\t$selectContainer.find('.selected').removeClass('selected');\n\t\t\t$(this).addClass('selected');\n\t\t\t$select.val(decodeURIComponent($(this).data('value')));\n\t\t\t$select.trigger('change');\n\t\t}).on('keypress', function(e){\n\t\t\tif ( e.which == 13 ) {\n\t\t\t\t$(this).trigger('click');\n\t\t\t\tvar $cover = $(this).parent().parent().parent();\n\t\t\t\t$cover.find('.regular-select-item').attr('tabindex', '-1');\n\t\t\t\t$cover.removeClass('content-opened');\n\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t$cover.find('.opened-with-tab').removeClass('opened-with-tab');\n\t\t\t\t}, 90);\n\t\t\t}\n\t\t});\n\n\t\t$selectContainer.parent().css('position', 'relative');\n\n\t\t$selectContainer.on('click', function(e){\n\n\t\t\te.stopPropagation();\n\t\t\tvar _this = $(this)[0];\n\n\t\t\t$('.regular-select-cover.content-opened').each(function(){\n\t\t\t\tif ( $(this)[0] != _this ) {\n\t\t\t\t\t$(this).removeClass('content-opened');\n\t\t\t\t\t$(this).parent().css('zIndex', 9);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif ( ! $(this).hasClass('content-opened') ) {\n\n\t\t\t\t$(this).addClass('content-opened');\n\t\t\t\t$(this).parent().css('zIndex', 1000); \n\t\t\t\tvar $selectHandle = $(this);\n\n\t\t\t\tvar $selectContent = $(this).find('.regular-select-content');\n\t\t\t\t$selectContent.css('maxHeight', 'none');\n\t\t\t\tif ( maxHeightCap && $selectContent.outerHeight() > $(window).height() - $selectContent.offset().top - 20 ) {\n\t\t\t\t\t$selectContent.css('maxHeight', $(window).height() - $selectContent.offset().top - 20 );\n\t\t\t\t}\n\n\t\t\t\t$(window).on('click.select-helper', function(){\n\t\t\t\t\tif ( $selectHandle.hasClass('content-opened') ) {\n\t\t\t\t\t\t$selectHandle.removeClass('content-opened');\n\t\t\t\t\t\t$selectHandle.parent().css('zIndex', 9);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t} else {\n\t\t\t\t$(this).parent().css('zIndex', 9);\n\t\t\t\t$(this).removeClass('content-opened');\n\t\t\t\t$(window).off('click.select-helper');\n\t\t\t}\n\n\t\t}).on('keypress', function(e){\n\t\t\tif ( e.which == 13 ) {\n\t\t\t\tif ( ! $(this).hasClass('opened-with-tab') ) {\n\t\t\t\t\t$(this).addClass('opened-with-tab');\n\t\t\t\t\t$(this).trigger('click');\n\t\t\t\t\t$(this).find('.regular-select-item').attr('tabindex', '0');\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t$selectContainer.find('.regular-select-inner').attr('data-title', $selectContainer.parent().find('label').text());\n\n\t \t$selectContainer.append('<svg class=\"svg symbol symbol--arrow\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"none\"><path fill-rule=\"evenodd\" d=\"M13.828 14.414l4-4L16.414 9l-4 4-4-4L7 10.414l5.414 5.414 1.414-1.414z\" fill=\"#000\"/></svg>');\n\n\t}\n\n};\n\n// debouncing\n\nwindow.debounce = function(func, wait, immediate) {\n\tvar timeout;\n\treturn function() {\n\t\tvar context = this, args = arguments;\n\t\tvar later = function() {\n\t\t\ttimeout = null;\n\t\t\tif (!immediate) func.apply(context, args);\n\t\t};\n\t\tvar callNow = immediate && !timeout;\n\t\tclearTimeout(timeout);\n\t\ttimeout = setTimeout(later, wait);\n\t\tif (callNow) func.apply(context, args);\n\t};\n}\n\n// King Product Gallery Mobile Helpers\n// for gallery (flickity) resizing\n\nwindow.KingProductGalleryMobileHelpers = function($product){\n\n\tvar _spo = window.productData[$product.data('id')],\n\n\t\t\t$sProductCarousel = _spo.$productCarousel,\n\t\t\t$sProductGallery = _spo.$productGallery,\n\t\t\t$sProductGalleryItem = _spo.$productGalleryItem,\n\t\t\tsProductFlkty = _spo.productFlkty;\n\n\tvar KingProductGalleryMobile = false;\n\tvar flktyEventSet = false;\n\n\tif ( parseInt($sProductCarousel.data('size')) > 1 ) {\n\n\t\t$(window).on('resize.product-gallery-mobile-switch', function(){\n\n\t\t\tvar triggerSwitch = 'false';\n\t\t\tif ( ! $product.hasClass('featured-product') ) {\n\n\t\t\t\tif ( ! KingProductGalleryMobile && $(window).width() < 768 ) {\n\t\t\t\t\ttriggerSwitch = 'mobile';\n\t\t\t\t\tKingProductGalleryMobile = true;\n\t\t\t\t} else if ( KingProductGalleryMobile && $(window).width() >= 768 ) {\n\t\t\t\t\ttriggerSwitch = 'desktop';\n\t\t\t\t\tKingProductGalleryMobile = false;\n\t\t\t\t} \n\n\t\t\t} else {\n\n\t\t\t\tif ( ( ! KingProductGalleryMobile && $(window).width() < 768 ) || ( ! KingProductGalleryMobile && $(window).width() > 948 ) ) {\n\t\t\t\t\ttriggerSwitch = 'mobile';\n\t\t\t\t\tKingProductGalleryMobile = true;\n\t\t\t\t} else if ( KingProductGalleryMobile && ( $(window).width() >= 768 && $(window).width() <= 948 ) ) {\n\t\t\t\t\ttriggerSwitch = 'desktop';\n\t\t\t\t\tKingProductGalleryMobile = false;\n\t\t\t\t} \n\n\t\t\t}\n\t\t\t\n\t\t\tif ( triggerSwitch != 'false' ) {\n\n\t\t\t\t$sProductCarousel\n\t\t\t\t\t.removeClass('product-gallery--fit')\n\t\t\t\t\t.removeClass('product-gallery--fill')\n\t\t\t\t\t.removeClass('product-gallery--fill-mobile');\n\n\t\t\t\tif ( triggerSwitch == 'mobile' ) {\n\n\t\t\t\t\t$sProductCarousel.addClass($sProductCarousel.data('mobile-style'));\n\n\t\t\t\t\tif ( $sProductCarousel.data('mobile-style') == 'product-gallery--fill-mobile' && $sProductCarousel.hasClass('product-gallery--mobile-variable') && ! flktyEventSet ) {\n\t\t\t\t\t\tflktyEventSet = true;\n\t\t\t\t\t\tsProductFlkty.on('change', function( index ) {\n\t\t\t\t\t\t\tif ( $(window).width() < 768 || ( $product.hasClass('featured-product') && $(window).width() > 948 ) ) {\n\t\t\t\t\t\t\t\t$selectedItem = $sProductGalleryItem.eq(index);\n\t\t\t\t\t\t\t\t$sProductCarousel.attr('style', 'height:' + ( $selectedItem.width() / $selectedItem.children('.lazy-image').data('ratio') ) + 'px !important; min-height: 0');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\t$(window).on('resize.product-gallery-mobile-fill-helper', function(){\n\t\t\t\t\t\t\tif ( $(window).width() < 768 || ( $product.hasClass('featured-product') && $(window).width() > 948 ) ) {\n\t\t\t\t\t\t\t\t$selectedItem = $sProductGalleryItem.eq(sProductFlkty.selectedIndex);\n\t\t\t\t\t\t\t\t$sProductCarousel.attr('style', 'height:' + ( $selectedItem.width() / $selectedItem.children('.lazy-image').data('ratio') ) + 'px !important; min-height: 0');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).trigger('resize.product-gallery-mobile-fill-helper');\n\t\t\t\t\t}\n\n\t\t\t\t} else if ( triggerSwitch == 'desktop' ) {\n\t\t\t\t\t$sProductCarousel.addClass($sProductCarousel.data('desktop-style'));\n\t\t\t\t\t$sProductCarousel.removeAttr('style');\n\t\t\t\t}\n\n\t\t\t\tKING.Product.unmount();\n\n\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t$product.find('.product-gallery__item').attr('style', 'position: absolute');\n\t    \t\tKING.Product._mountGalleryResizer($product.find('.product-gallery'), $product);\n\t\t    \t$(window).trigger('resize');\n\t\t    \tsetTimeout(function(){\n\t\t\t    \tsProductFlkty.resize();\n\t\t    \t}, 10)\n\t\t\t\t}, 10);\n\n\t\t\t}\n\n\t\t}).trigger('resize.product-gallery-mobile-switch');\n\n\t}\n\n}\n\n// Returns image url with size format\n\nwindow.getSizedImageUrl = function(src, size) {\n\n  if ( size === null || src === null ) {\n    return src;\n  }\n\n  if (size === 'master') {\n    return removeProtocol(src);\n  }\n\n  var match = src.match(\n    /\\.(jpg|jpeg|gif|png|bmp|bitmap|tiff|tif)(\\?v=\\d+)?$/i\n  );\n\n  if (match !== null) {\n    var prefix = src.split(match[0]);\n    var suffix = match[0];\n    return removeProtocol(prefix[0] + '_' + size + suffix);\n  }\n\n\tfunction removeProtocol(path) {\n\t  return path.replace(/http(s)?:/, '');\n\t}\n\n\treturn src;\n\n}\n\n// Returns readable time from UTC\n\nwindow.formatTime = function(format, utc) {\n\n\tvar date = new Date(utc);\n  var nDay = date.getDay(),\n    nDate = date.getDate(),\n    nMonth = date.getMonth(),\n    nYear = date.getFullYear(),\n    nHour = date.getHours(),\n    aDays = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n    aMonths = window.month_names,\n    aDayCount = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334],\n    isLeapYear = function() {\n      return (nYear%4===0 && nYear%100!==0) || nYear%400===0;\n    },\n    getThursday = function() {\n      var target = new Date(date);\n      target.setDate(nDate - ((nDay+6)%7) + 3);\n      return target;\n    },\n    zeroPad = function(nNum, nPad) {\n      return ((Math.pow(10, nPad) + nNum) + '').slice(1);\n    };\n  return format.replace(/%[a-z]/gi, function(sMatch) {\n    return (({\n      '%a': aDays[nDay].slice(0,3),\n      '%A': aDays[nDay],\n      '%b': aMonths[nMonth].slice(0,3),\n      '%B': aMonths[nMonth],\n      '%c': date.toUTCString(),\n      '%C': Math.floor(nYear/100),\n      '%d': zeroPad(nDate, 2),\n      '%e': nDate,\n      '%F': date.toISOString().slice(0,10),\n      '%G': getThursday().getFullYear(),\n      '%g': (getThursday().getFullYear() + '').slice(2),\n      '%H': zeroPad(nHour, 2),\n      '%I': zeroPad((nHour+11)%12 + 1, 2),\n      '%j': zeroPad(aDayCount[nMonth] + nDate + ((nMonth>1 && isLeapYear()) ? 1 : 0), 3),\n      '%k': nHour,\n      '%l': (nHour+11)%12 + 1,\n      '%m': zeroPad(nMonth + 1, 2),\n      '%n': nMonth + 1,\n      '%M': zeroPad(date.getMinutes(), 2),\n      '%p': (nHour<12) ? 'AM' : 'PM',\n      '%P': (nHour<12) ? 'am' : 'pm',\n      '%s': Math.round(date.getTime()/1000),\n      '%S': zeroPad(date.getSeconds(), 2),\n      '%u': nDay || 7,\n      '%V': (function() {\n              var target = getThursday(),\n                n1stThu = target.valueOf();\n              target.setMonth(0, 1);\n              var nJan1 = target.getDay();\n              if (nJan1!==4) target.setMonth(0, 1 + ((4-nJan1)+7)%7);\n              return zeroPad(1 + Math.ceil((n1stThu-target)/604800000), 2);\n            })(),\n      '%w': nDay,\n      '%x': date.toLocaleDateString(),\n      '%X': date.toLocaleTimeString(),\n      '%y': (nYear + '').slice(2),\n      '%Y': nYear,\n      '%z': date.toTimeString().replace(/.+GMT([+-]\\d+).+/, '$1'),\n      '%Z': date.toTimeString().replace(/.+\\((.+?)\\)$/, '$1')\n    }[sMatch] || '') + '') || sMatch;\n  });\n\n}\n\n// Returns pseudo content\n\nwindow.getPseudoContent = function(selector) {\n\tvar element = document.querySelector(selector),\n\t\t\tpseudo = window.getComputedStyle(element, ':after');\n\treturn pseudo.getPropertyValue('content');\n}\n\n/*!\n * Serialize all form data into a SearchParams string\n * (c) 2020 Chris Ferdinandi, MIT License, https://gomakethings.com\n * @param  {Node}   form The form to serialize\n * @return {String}      The serialized form data\n */\n\nwindow.serialize = function(form) {\n  var arr = [];\n  Array.prototype.slice.call(form.elements).forEach(function(field) {\n    if (\n      !field.name ||\n      field.disabled ||\n      ['file', 'reset', 'submit', 'button'].indexOf(field.type) > -1\n    )\n      return;\n    if (field.type === 'select-multiple') {\n      Array.prototype.slice.call(field.options).forEach(function(option) {\n        if (!option.selected) return;\n        arr.push(\n          encodeURIComponent(field.name) +\n            '=' +\n            encodeURIComponent(option.value)\n        );\n      });\n      return;\n    }\n    if (['checkbox', 'radio'].indexOf(field.type) > -1 && !field.checked)\n      return;\n    arr.push(\n      encodeURIComponent(field.name) + '=' + encodeURIComponent(field.value)\n    );\n  });\n  return arr.join('&');\n}\n\n// get jsonp\n\nwindow.getJSONP = function(url, success) {\n\n  var ud = '_' + +new Date,\n      script = document.createElement('script'),\n      head = document.getElementsByTagName('head')[0] \n             || document.documentElement;\n\n  window[ud] = function(data) {\n      head.removeChild(script);\n      success && success(data);\n  };\n\n  script.src = url.replace('callback=?', 'callback=' + ud);\n  head.appendChild(script);\n\n}\n\nwindow.objectToQueryParams = function(obj, parentKey) {\n  var output = '';\n  parentKey = parentKey || null;\n\n  Object.keys(obj).forEach(function(key) {\n    var outputKey = key + '=';\n    if (parentKey) {\n      outputKey = parentKey + '[' + key + ']';\n    }\n\n    switch (trueTypeOf(obj[key])) {\n      case 'object':\n        output += objectToQueryParams(obj[key], parentKey ? outputKey : key);\n        break;\n      case 'array':\n        output += outputKey + '=' + obj[key].join(',') + '&';\n        break;\n      default:\n        if (parentKey) {\n          outputKey += '=';\n        }\n        output += outputKey + encodeURIComponent(obj[key]) + '&';\n        break;\n    }\n  });\n\n  return output;\n}\nfunction trueTypeOf(obj) {\n  return Object.prototype.toString\n    .call(obj)\n    .slice(8, -1)\n    .toLowerCase();\n}\n\n// Scroll top animation\n// Krown Themes\n\nvar animateScrollTopRAF;\nvar animateScrollTopTARGET;\nvar animateScrollTopSTEP;\nvar animateScrollTopDIR;\n\nanimateScrollTopFUNCTION = function(scrollTop){\n\t$('html').scrollTop($('html').scrollTop() + animateScrollTopSTEP);\n\tif ( \n\t\t( animateScrollTopDIR == 'down' && $('html').scrollTop() < animateScrollTopTARGET ) ||\n\t\t( animateScrollTopDIR == 'up' && $('html').scrollTop() > animateScrollTopTARGET )\n\t) {\n\t\tanimateScrollTopRAF = requestAnimationFrame(animateScrollTopFUNCTION);\n\t} else {\n\t\t//$('html').scrollTop(animateScrollTopTARGET);\n\t}\n}\n\nwindow.animateScrollTop = function(scrollTop){\n\tanimateScrollTopSTEP = (scrollTop - $('html').scrollTop()) / 15;\n\tanimateScrollTopTARGET = scrollTop;\n\tanimateScrollTopDIR = animateScrollTopSTEP >= 0 ? 'down' : 'up';\n\tanimateScrollTopRAF = requestAnimationFrame(animateScrollTopFUNCTION);\n}\n\n// scrollDOWN() / scrollTOP() functions\n\nwindow.slideUp = function(target, duration) {\n\ttarget.style.transitionProperty = 'height, margin, padding';\n  target.style.transitionDuration = duration + 'ms';\n  target.style.boxSizing = 'border-box';\n  target.style.height = target.offsetHeight + 'px';\n  target.offsetHeight;\n  target.style.overflow = 'hidden';\n  target.style.height = 0;\n  target.style.paddingTop = 0;\n  target.style.paddingBottom = 0;\n  target.style.marginTop = 0;\n  target.style.marginBottom = 0;\n  window.setTimeout( () => {\n    target.style.display = 'none';\n    target.style.removeProperty('height');\n    target.style.removeProperty('padding-top');\n    target.style.removeProperty('padding-bottom');\n    target.style.removeProperty('margin-top');\n    target.style.removeProperty('margin-bottom');\n    target.style.removeProperty('overflow');\n    target.style.removeProperty('transition-duration');\n    target.style.removeProperty('transition-property');\n  }, duration);\n}\nwindow.slideDown = function(target, duration) {\n\ttarget.style.removeProperty('display');\n  var display = window.getComputedStyle(target).display;\n\n  if (display === 'none')\n    display = 'block';\n\n  target.style.display = display;\n  var height = target.offsetHeight;\n  target.style.overflow = 'hidden';\n  target.style.height = 0;\n  target.style.paddingTop = 0;\n  target.style.paddingBottom = 0;\n  target.style.marginTop = 0;\n  target.style.marginBottom = 0;\n  target.offsetHeight;\n  target.style.boxSizing = 'border-box';\n  target.style.transitionProperty = \"height, margin, padding\";\n  target.style.transitionDuration = duration + 'ms';\n  target.style.height = height + 'px';\n  target.style.removeProperty('padding-top');\n  target.style.removeProperty('padding-bottom');\n  target.style.removeProperty('margin-top');\n  target.style.removeProperty('margin-bottom');\n  window.setTimeout( () => {\n    target.style.removeProperty('height');\n    target.style.removeProperty('overflow');\n    target.style.removeProperty('transition-duration');\n    target.style.removeProperty('transition-property');\n  }, duration);\n}\n\n// Extend CASH with some \"missing\" jQuery functions\n\n$.fn.scrollTop = function(value){\n\tif ( typeof value === \"number\" ) {\n\t\tif ( this[0] == window ) {\n\t\t\treturn this[0].scrollY = value;\n\t\t} else {\n\t\t\treturn this[0].scrollTop = value;\n\t\t}\n\t} else {\n\t\tif ( this[0] == window ) {\n\t\t\treturn this[0].scrollY;\n\t\t} else {\n\t\t\treturn this[0].scrollTop;\n\t\t}\n\t}\n}\n\nwindow.inArray = function( elem, array ) {\n  if ( array.indexOf ) {\n    return array.indexOf( elem );\n  }\n  for ( var i = 0, length = array.length; i < length; i++ ) {\n    if ( array[ i ] === elem ) {\n       return i;\n    }\n  }\n  return -1;\n}\n\nwindow.grep = function(items, callback) {\n  var filtered = [],\n      len = items.length,\n      i = 0;\n  for (i; i < len; i++) {\n    var item = items[i];\n    var cond = callback(item);\n    if (cond) {\n        filtered.push(item);\n    }\n  }\n  return filtered;\n};\n\nKING.Shortcodes = {};\n\n// Toggles\n\nKING.Shortcodes.Toggles = {\n \n  mount: function() {\n\n    $('.toggles:not(.init)').each(function(){\n\n      $(this).addClass('init');\n\n      var $titles = $(this).find('.toggle__title'),\n          $contents = $(this).find('.toggle__content'),\n          i = 0;\n\n      $titles.each(function(){\n\n        $(this)\n          .append('<span class=\"low-dpi\"><svg class=\"svg symbol symbol--minus\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"none\"><path fill-rule=\"evenodd\" d=\"M18 13H6v-2h12v2z\" fill=\"#000\"/></svg></span><span class=\"high-dpi\"><svg class=\"svg symbol symbol--minus\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"none\"><path fill-rule=\"evenodd\" d=\"M18 12.5H6V11h12v1.5z\" fill=\"#000\"/></svg></span>')\n          .append('<span class=\"low-dpi\"><svg class=\"svg symbol symbol--plus\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11 13V18H13V13H18V11H13V6H11V11H6V13H11Z\" fill=\"black\"/></svg></span><span class=\"high-dpi\"><svg class=\"svg symbol symbol--plus\" xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"none\"><path fill-rule=\"evenodd\" d=\"M10.75 12.25V17h1.5v-4.75H17v-1.5h-4.75V6h-1.5v4.75H6v1.5h4.75z\" fill=\"#000\"/></svg></span>');\n      \n        $(this).on('click', function(){\n\n          var $toggle = $(this).next('.toggle__content');\n\n          if ( ! $(this).hasClass('opened') ) {\n            $(this).addClass('opened');\n            window.slideDown($toggle[0], 200)\n          } else {\n            $(this).removeClass('opened');\n            window.slideUp($toggle[0], 200)\n          }\n          \n        });\n\n      });\n\n      $(this).find('.contents').remove();\n\n    });\n\n  }\n\n}\n\n// Mount in page\n\n$(document).ready(function(){\n  if ( $('.toggles').length > 0 ) {\n    KING.Shortcodes.Toggles.mount();\n  }\n});\n\n// Shopify events\n\n$(document).on('shopify:section:load', function(e){\n\n  var $section = $(e.target);\n  if ( $section.hasClass('mount-toggles') ) {\n    KING.Shortcodes.Toggles.mount();\n  }\n\n}).on('shopify:block:select', function(e){\n\n  var $block = $(e.target); \n\n  if ( $block.hasClass('toggle') ) {\n    if ( ! $block.find('.toggle__title').hasClass('opened') ) {\n      $block.find('.toggle__title').addClass('opened');\n      window.slideDown($block.find('.toggle__content')[0], 200);\n    }\n  }\n\n}).on('shopify:block:deselect', function(e){\n\n  var $block = $(e.target);\n\n  if ( $block.hasClass('toggle') ) {\n    if ( $block.find('.toggle__title').hasClass('opened') ) {\n      $block.find('.toggle__title').removeClass('opened');\n      window.slideUp($block.find('.toggle__content')[0], 200);\n    }\n  }\n\n});\n\n// Content slider\n \nKING.Shortcodes.ContentSlider = {\n\n  mount: function($section) {\n\n    var $slider = $section.find('.content-slider');\n\n    if ( $slider.find('.content-slider__item').length > 1 ) {\n\n      var flkty = new Flickity($slider[0], {\n        cellSelector: '.content-slider__item',\n        wrapAround: true,\n        prevNextButtons: false,\n        pageDots: false,\n        adaptiveHeight: true,\n        autoPlay: $slider.data('autoplay'),\n        pauseAutoPlayOnHover: false\n      });\n\n      $slider.append('<div class=\"flickity-custom-nav\"><span class=\"prev\">' + window.symbol_arrow + '</span><span class=\"current\">1</span><span>/</span><span class=\"total\">' + $slider.find('.content-slider__item').length + '</span><span class=\"next\">' + window.symbol_arrow + '</span></div>');\n\n      flkty.on('select', function(){\n        $slider.find('.current').html(flkty.selectedIndex+1);\n      });\n\n      $slider.find('.next').on('click', function(){\n        flkty.next();\n      });\n\n      $slider.find('.prev').on('click', function(){\n        flkty.previous();\n      });\n\n    }\n\n  }\n\n}\n\n// Tabs\n\nKING.Shortcodes.Tabs = {\n\n  mount: function($section) {\n\n    var $titles = $section.children('.titles').children('h5'),\n        $contents = $section.children('.contents').children('div'),\n        $openedT = $titles.eq(0),\n        $openedC = $contents.eq(0);\n\n    $openedT.addClass('opened');\n    window.slideDown($openedC[0], 0);\n\n    $titles.find('a').prop('href', '#').off('click');\n\n    $titles.on('click', function(e){\n\n      $openedT.removeClass('opened');\n      $openedT = $(this);\n      $openedT.addClass('opened');\n\n      window.slideUp($openedC[0], 200);\n      $openedC = $contents.eq($(this).index());\n      setTimeout(function(){\n        window.slideDown($openedC[0], 200)\n      }, 200);\n\n      e.preventDefault();\n\n    });\n\n  }\n\n}\n\n// Mount in page\n\n$(document).ready(function(){\n  if ( $('.krown-tabs').length > 0 ) {\n    $('.krown-tabs').each(function(){\n      KING.Shortcodes.Tabs.mount($(this));\n    });\n  }\n});\n\nKING.AnnouncementBar = {\n\n\tmount: function() {\n\n\t\tvar $announcement = $('.announcement');\n\n\t\tif ( $('.announcement__exit').length > 0 ) {\n\t\t\t$('.announcement__exit').on('click', function(){\n\t\t\t\t$('body').addClass('no-transitions');\n\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t$('body').removeClass('show-announcement-bar');\n\t\t\t\t\t\tlocalStorage.setItem('announcement-dismissed', 'true');\n\t\t\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t\t\t$(window).trigger('resize');\n\t\t\t\t\t\t\t$('body').removeClass('no-transitions');\n\t\t\t\t\t}, 100);\n\t\t\t\t}, 10);\n\t\t\t});\n\t\t}\n\n\t}\n\n}\n\n// Mount in page\n\nif ( $('.mount-announcement').length > 0 ) {\n\tKING.AnnouncementBar.mount();\n} \n\n// Shopify events\n\n$(document).on('shopify:section:load, shopify:section:select', function(e){\n\n\tvar $section = $(e.target);\n\tif ( $section.hasClass('mount-announcement') ) {\n\t\tif ( $('.announcement').length > 0 ) {\n\t\t\t$('body').addClass('show-announcement-bar');\n\t\t} else {\n\t\t\t$('body').removeClass('show-announcement-bar');\n\t\t}\n\t}\n\n})\nKING.Popup = {\n\n\t$popup: null,\n\n\tmount: function() {\n\n\t\tthis.$popup = $('#shopify-section-popup');\n\n\t\tvar show = this.$popup.find('.popup-content').data('show'),\n\t\t\t\tfreq = this.$popup.find('.popup-content').data('freq'),\n\t\t\t\tenable = this.$popup.find('.popup-content').data('enable');\n\n\t\tif ( show > 0 && enable ) {\n\t\t\tsetTimeout((function(){\n\t\t\t\tthis._trigger(show, freq);\n\t\t\t}).bind(this), parseInt(show*1000));\n\t\t}\n\n\t\tthis.$popup.find('.popup-close').on('click', (function(e){\n\t\t\tthis._hide();\n\t\t}).bind(this));\n\n\t\tthis.$popup.find('.popup-background').on('click', (function(e){\n\t\t\tthis._hide();\n\t\t}).bind(this));\n\n\t},\n\n\t_show: function() {\n\t\tthis.$popup.addClass('active');\n\t},\n\n\t_hide: function() {\n\t\tthis.$popup.removeClass('active');\n\t},\n\n\t_trigger: function(show, freq) {\n\n\t\tvar popupKey = 'popup-' + document.location.hostname,\n\t\t\t\tpopupStorage = localStorage.getItem(popupKey) != null ? JSON.parse(localStorage.getItem(popupKey)) : null;\n\n\t\tif ( popupStorage != null ) {\n\t\t\t\n\t\t\tif ( popupStorage['show'] != show || popupStorage['freq'] != freq ) {\n\n\t\t\t\tthis._refreshStorage(popupKey, show, freq);;\n\n\t\t\t\t// user saw the ad but settings are different - show it!\n\t\t\t\tthis._show();\n\n\t\t\t} else {\n\n\t\t\t\t// user saw the ad so we need to check if he should see it again\n\n\t\t\t\tif ( freq == 'every' ) { \n\n\t\t\t\t\tif ( sessionStorage[popupKey] == null || sessionStorage[popupKey] != 'shown' ) {\n\t\t\t\t\t\tthis._show();\n\t\t\t\t\t\tthis._refreshStorage(popupKey, show, freq);;\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tvar shownAt = popupStorage['shown'],\n\t\t\t\t\t\t\tnowAt = new Date().getTime(),\n\t\t\t\t\t\t\tinBetween = Math.round((nowAt - shownAt) / 1000);\n\n\t\t\t\t\tif ( freq == 'day' && inBetween > 129600 ) {\n\t\t\t\t\t\tthis._show();\n\t\t\t\t\t\tthis._refreshStorage(popupKey, show, freq);;\n\t\t\t\t\t} else if ( freq == 'week' && inBetween > 907200 ) {\n\t\t\t\t\t\tthis._show();\n\t\t\t\t\t\tthis._refreshStorage(popupKey, show, freq);;\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else {\n\n\t\t\tthis._refreshStorage(popupKey, show, freq);\n\n\t\t\t// user never saw the ad - show it!\n\n\t\t\tthis._show();\n\n\t\t}\n\n\t},\n\n\t_refreshStorage: function(popupKey, show, freq) {\n\n\t\tlocalStorage.setItem(popupKey, JSON.stringify({\n\t\t\t'show': show,\n\t\t\t'freq': freq,\n\t\t\t'shown': new Date().getTime()\n\t\t}));\n\n\t\tsessionStorage[popupKey] = 'shown';\n\n\t}\n\n}\n\n\n// Mount in page\n\nif ( $('.mount-popup').length > 0 ) {\n\tKING.Popup.mount($(this));\n}\n\n// Shopify events\n\n$(document).on('shopify:section:load', function(e){\n\n\tvar $section = $(e.target);\n\tif ( $section.hasClass('mount-popup') ) {\n\t\twindow.KING.Popup.mount();\n\t}\n\n}).on('shopify:section:select', function(e){\n\n\tvar $section = $(e.target);\n\tif ( $section.hasClass('mount-popup') ) {\n\t\twindow.KING.Popup._show();\n\t}\n\n}).on('shopify:section:deselect', function(e){\n\n\tvar $section = $(e.target);\n\tif ( $section.hasClass('mount-popup') ) {\n\t\twindow.KING.Popup._hide();\n\t}\n\n});\nKING.Sidebar = {\n\n\t$sidebar: null,\n\n\tSCROLL_StickySidebar: function(){\n\n \t\tvar $sidebar = KING.Sidebar.$sidebar,\n \t\t\t\tscrollTop = $(window).scrollTop(),\n\t\t\t\tscreenHeight = $(window).height(),\n\t\t\t\tsidebarHeight = $sidebar.outerHeight();\n\n\t\tif ( sidebarHeight > screenHeight ) {\n\n\t\t\tif ( scrollTop < sidebarHeight - screenHeight ) {\n\t\t\t\t$sidebar.css('transform', 'translate3d(0,' + ( scrollTop * -1 ) + 'px, 0)');\n\t\t\t} else {\n\t\t\t\t$sidebar.css('transform', 'translate3d(0,' + ( ( sidebarHeight - screenHeight ) * -1 ) + 'px, 0)');\n\t\t\t}\n\n\t\t}\n\n\t},\n\n\tmount: function() {\n\n\t\t// Sticky try out\n\n\t\tthis.$sidebar = $('.sidebar');\n\t \tvar $body = $('body');\n\n\t \tvar $sidebarSubmenuFirst = $('.sidebar__submenu--first'),\n\t \t\t\t$sidebarSubmenuSecond = $('.sidebar__submenu--second');\n\n\t \twindow.addEventListener('scroll', KING.Sidebar.SCROLL_StickySidebar, {passive:true});\n\n\t \t$(window).on('resize.sticky-sidebar', window.debounce((function(){\n\n\t\t\tvar screenHeight = $(window).height(),\n\t\t\t\t\tsidebarHeight = this.$sidebar.outerHeight();\n\n\t\t\tif ( sidebarHeight > screenHeight ) {\n\t\t\t\tKING.Sidebar.SCROLL_StickySidebar();\n\t\t\t} else {\n\t\t\t\tthis.$sidebar.css('transform', 'translate3d(0, 0, 0)');\n\t\t\t}\n\n\t\t\t$('.sidebar__cart, .sidebar__cart .cart, .sidebar__search, .collection__filters, .collection__filters .filters').css('height', window.innerHeight);\n\t\t\t$('.sidebar__menus').css('height', window.innerHeight);\n\t\t\t$('.sidebar__search.predictive-search .sidebar__search-results').css('maxHeight', window.innerHeight - 170);\n\n\t \t}).bind(this), 300)).trigger('resize.sticky-sidebar');\n\t \tsetTimeout(function(){\n\t \t\t$(window).trigger('resize.sticky-sidebar');\n\t \t}, 310);\n\n\t \tvar sidebarParentFLAG = false,\n\t \t\t\t$sidebarSeconds = $('.sidebar__seconds'),\n\t \t\t\t$sidebarSecondsDOM = $sidebarSeconds.find('.sidebar__menu'),\n\t \t\t\tsidebarSecondsFLAG = false,\n\t \t\t\t$sidebarThirds = $('.sidebar__thirds'),\n\t \t\t\t$sidebarThirdsDOM = $sidebarThirds.find('.sidebar__menu'),\n\t \t\t\tsidebarThirdsFLAG = false;\n\n\t \t$('.has-first-submenu').each(function(){\n\t \t\t$(this)[0].addEventListener('touchstart', function(){\n\t \t\t$(this).trigger('mouseenter');\n\t \t\t}, {passive: true});\n\t \t});\n\n\t \tvar $sidebar = this.$sidebar;\n\n\t \t$('.has-first-submenu > span, .has-first-submenu > svg').on('click', function(e){\n\n\t \t\t//if ( $(window).width() > 948 ) {\n\n\t\t \t\te.preventDefault();\n\n\t\t \t\t//$body.toggleClass('show-overlay');\n                $(this).parent().siblings().removeClass('opened');\n                $(this).parent().toggleClass('opened');\n\t\t \t\t$sidebarSeconds.toggleClass('opened');\n\t\t\t \tsidebarSecondsFLAG = true;\n\n\t\t \t\tvar $openedSubmenu = $(this).children('.sidebar__submenu').clone();\n\t\t\t \tif ( $sidebarSecondsDOM.find('.sidebar__submenu') && $sidebarSecondsDOM.find('.sidebar__submenu').data('handle') != $openedSubmenu.data('handle') ) {\n\t\t \t\t\t$sidebarSecondsDOM.html($openedSubmenu[0].outerHTML);\n\t\t\t \t}\n\n\t\t \t\t$sidebarSecondsDOM.children('.sidebar__submenu').find('.sub-menu').css('paddingTop', $(this)[0].getBoundingClientRect().top);\n\t\t \t\tsetTimeout(function(){\n\t\t \t\t\t$sidebarSecondsDOM.children('.sidebar__submenu').toggleClass('submenu-opened');\n\t\t \t\t}, 10);\t\n\n\t\t\t \t$sidebarSecondsDOM.find('.has-second-submenu').each(function(){\n\t\t\t \t\t$(this)[0].addEventListener('click', function(){\n\t\t\t \t\t\t$(this).trigger('click');\n\t\t \t\t\t\tif ( sidebarThirdsFLAG ) {\n\t\t\t\t\t \t\t$sidebarThirds.toggleClass('opened');\n\t\t\t\t\t \t\t$sidebarThirds.find('.submenu-opened').toggleClass('submenu-opened');\n\t\t\t\t\t \t\tsidebarThirdsFLAG = false;\n\t\t \t\t\t\t}\n\t\t \t\t\t}, {passive: true});\n\t\t\t \t});\n\n\t\t \t\t$sidebarSecondsDOM.find('.has-second-submenu').on('click', function(e){\n\n\t\t \t\t\te.preventDefault();\n\t\t\t \t\t$sidebarThirds.addClass('opened');\n\t\t\t \t\tsidebarThirdsFLAG = true;\n\n\t\t\t \t\tvar $openedSubmenu = $(this).children('.sidebar__submenu').clone();\n\t\t\t \t\tif ( $sidebarThirdsDOM.find('.sidebar__submenu') && $sidebarThirdsDOM.find('.sidebar__submenu').data('handle') != $openedSubmenu.data('handle') ) {\n\t\t\t \t\t\t$sidebarThirdsDOM.html($openedSubmenu[0].outerHTML);\n\t\t\t \t\t}\n\n\t\t \t\t\t$sidebarThirdsDOM.children('.sidebar__submenu').find('.sub-menu').css('paddingTop', $(this)[0].getBoundingClientRect().top);\n\t\t\t \t\tsetTimeout(function(){\n\t\t\t \t\t\t$sidebarThirdsDOM.children('.sidebar__submenu').addClass('submenu-opened');\n\t\t\t \t\t}, 10);\t\n\n\t\t \t\t}).on('mouseleave', function(){\n\t\t\t \t\t$sidebarThirds.removeClass('opened');\n\t\t \t\t\t$sidebarThirds.find('.submenu-opened').removeClass('submenu-opened');\n\t\t\t\t \tsidebarThirdsFLAG = false;\n\t\t \t\t});\n\n\t\t \t//}\n\n\t \t}).on('mouseleave', function(){\n\t \t\t$body.removeClass('show-overlay');\n\t \t\t$sidebarSeconds.removeClass('opened');\n\t \t\t$sidebarSeconds.find('.submenu-opened').removeClass('submenu-opened');\n\t \t\tsidebarSecondsFLAG = false;\n\t \t})\n\n\t \t$sidebarSeconds.on('mouseenter', function(){\n\t \t\t$body.addClass('show-overlay');\n\t \t\t$sidebarSeconds.addClass('opened');\n\t \t\t$sidebarSeconds.find('.sidebar__submenu--first').addClass('submenu-opened');\n\t \t})\n\t \t$sidebarSeconds.on('mouseleave', function(){\n\t \t\t$sidebarSeconds.removeClass('opened');\n\t \t\t$sidebarSeconds.find('.submenu-opened').removeClass('submenu-opened');\n\t \t\t$body.removeClass('show-overlay');\n\t \t\tsidebarSecondsFLAG = false;\n\t \t});\n\n\t \t$sidebarThirds.on('mouseenter', function(){\n\t \t\t$body.addClass('show-overlay');\n\t \t\t$sidebarThirds.addClass('opened');\n\t \t\t$sidebarSeconds.addClass('opened');\n\t \t\t$sidebarSeconds.find('.sidebar__submenu--first').addClass('submenu-opened');\n\t \t\t$sidebarThirds.find('.sidebar__submenu--second').addClass('submenu-opened');\n\t \t});\n\t \t$sidebarThirds.on('mouseleave', function(){\n\t \t\t$sidebarThirds.removeClass('opened');\n\t \t\t$sidebarThirds.find('.submenu-opened').removeClass('submenu-opened');\n\t \t\tsidebarThirdsFLAG = false;\n\t \t\t$sidebarSeconds.removeClass('opened');\n\t \t\t$sidebarSeconds.find('.submenu-opened').removeClass('submenu-opened');\n\t \t\tsidebarSecondsFLAG = false;\n\t \t\t$body.removeClass('show-overlay');\n\t \t});\n\n\t \tif ( ! $('body').hasClass('template-cart') && window.cart_action == 'overlay' ) {\n\t\t \t$('.sidebar__cart-handle, .sidebar__cart-close').on('click', function(e){\n\n\t\t\t$('.sidebar__cart, .sidebar__cart .cart').css('height', window.innerHeight);\n\n\t\t \t\te.preventDefault();\n\t\t \t\tif ( ! $('.sidebar__cart').hasClass('opened') ) {\n\t\t \t\t\t$('.sidebar__cart').addClass('opened');\n\t\t \t\t\t$('.cart-overlay-background').addClass('show');\n\t\t \t\t\t$('body').addClass('overflow-hidden');\n\t\t \t\t\tvar translation = $sidebar[0].getBoundingClientRect().y * -1;\n\t \t\t\t\t$('.sidebar__cart').css('transform', 'translateY(' + translation + 'px)');\n\t\t \t\t} else {\n\t\t \t\t\t$('.sidebar__cart').removeClass('opened');\n\t\t \t\t\t$('.cart-overlay-background').removeClass('show');\n\t\t \t\t\t$('body').removeClass('overflow-hidden');\n\t\t \t\t}\n\t\t \t});\n\t\t}\n\n\t\t$('.sidebar__menu-handle, .sidebar__menus-close').on('click', function(e){\n\n\t\t\te.preventDefault();\n\t\t\t$('.sidebar__menus').removeClass('kill-overflow');\n\t \t\tif ( ! $('.sidebar__menus').hasClass('opened') ) {\n\t \t\t\t$('.sidebar__menus').addClass('opened');\n\t \t\t\t$('.cart-overlay-background').addClass('show');\n\t\t \t\t\t$('body').addClass('overflow-hidden');\n\t \t\t} else {\n\t \t\t\t$('.sidebar__menus').removeClass('opened');\n\t \t\t\t$('.cart-overlay-background').removeClass('show');\n\t \t\t\t$('body').removeClass('overflow-hidden');\n\t \t\t}\n\t\t});\n\n\t\tif ( window.predictive_search_enabled == \"false\" ) {\n\t\t\t$('.sidebar__search-handle, .sidebar__search-close').on('click', function(e){\n\n\t\t\t\te.preventDefault();\n\t\t \t\tif ( ! $('.sidebar__search').hasClass('opened') ) {\n\t\t \t\t\t$('.sidebar__search').addClass('opened');\n\t\t \t\t\t$('.sidebar__search input[type=\"search\"]').attr('placeholder', $('.sidebar__search input[type=\"search\"]').data('responsive-placeholder'));\n\t\t \t\t\tsetTimeout(function(){\n\t\t \t\t\t\t$('.sidebar__search input[type=\"search\"]')[0].focus();\n\t\t \t\t\t}, 100);\n\t\t \t\t} else {\n\t\t \t\t\t$('.sidebar__search').removeClass('opened');\n\t\t \t\t}\n\t\t\t});\n\t\t} else {\n\t\t\t$('.sidebar__search-handle, .sidebar__search-close').on('click', function(e){\n\t\t\t\tif ( window.getPseudoContent('.sidebar__search').indexOf('predictive-mobile') >= 0 ) {\n\t\t\t\t\te.preventDefault();\n\t\t\t \t\tif ( ! $('.sidebar__search').hasClass('opened') ) {\n\t\t\t \t\t\t$('.sidebar__search').addClass('opened');\n\t\t \t\t\t\t$('.cart-overlay-background').addClass('show');\n\t\t\t \t\t\t$('body').addClass('overflow-hidden');\n\t\t\t \t\t\tsetTimeout(function(){\n\t\t\t \t\t\t\t$('.sidebar__search input[type=\"search\"]')[0].focus();\n\t\t\t \t\t\t}, 100);\n\t\t\t \t\t} else {\n\t\t\t \t\t\t$('.sidebar__search').removeClass('opened');\n\t\t\t \t\t\t$('.cart-overlay-background').removeClass('show');\n\t\t\t \t\t\t$('body').removeClass('overflow-hidden');\n\t\t\t \t\t}\n\t\t\t \t}\n\t\t\t});\n\t\t}\n\n\t \t$('.cart-overlay-background').on('click', function(){\n\t \t\tif ( $('.sidebar__cart').hasClass('opened') ) {\n\t \t\t\t$('.sidebar__cart').removeClass('opened');\n\t \t\t\t$('.cart-overlay-background').removeClass('show');\n\t \t\t} else if ( $('.sidebar__menus').hasClass('opened') ) {\n\t \t\t\t$('.sidebar__menus').removeClass('opened');\n\t \t\t\t$('.cart-overlay-background').removeClass('show');\n\t \t\t} else if ( $('.sidebar__search').hasClass('opened') ) {\n\t \t\t\t$('.sidebar__search').removeClass('opened');\n\t \t\t\t$('.cart-overlay-background').removeClass('show');\n\t \t\t} \n\t\t\t$('body').removeClass('overflow-hidden');\n\t \t});\n\n\t \tvar submenuLevel = 0;\n\n\t \t$('.sidebar__menus .sidebar__menu .has-submenu > a').each(function(){\n\n\t\t \t$(this).on('click', function(e){\n\t\t \t\tif ( $(window).width() <= 948 ) {\n\t\t\t \t\te.preventDefault();\n\t\t\t \t\te.stopPropagation();\n\t\t\t \t\t$('.sidebar__menus').addClass('kill-overflow');\n\t\t\t \t\t$('.sidebar__menus').scrollTop(0);\n\t\t\t \t\tif ( $(this).parent().hasClass('has-second-submenu') ) {\n\t\t\t \t\t\tsubmenuLevel = 2;\n\t\t\t \t\t} else {\n\t\t\t \t\t\tsubmenuLevel = 1;\n\t\t\t \t\t}\n\t\t\t \t\t$(this).parent().addClass('open-submenu');\n\t\t\t \t\t$(this).parent().parent().addClass('opened-submenu');\n\t\t\t \t\t$(this).closest('.sidebar__menus').addClass('opened-submenus');\n\t\t\t \t\t$(this).parent().parent().parent().siblings('nav').addClass('opened-other-submenu');\n\t\t\t \t}\n\t\t \t});\n\n\t \t});\n\n\t \t$('.sidebar__menus-back').on('click', function(e){\n\t \t\tif ( submenuLevel == 1 ) {\n\t \t\t\tsubmenuLevel = 0;\n\t \t\t\t$('.sidebar__menus').removeClass('opened-submenus');\n\t \t\t\t$('.sidebar__menus').find('nav.opened-other-submenu').removeClass('opened-other-submenu');\n\t \t\t\t$('.sidebar__menus').find('.opened-submenu').removeClass('opened-submenu');\n\t \t\t\t$('.sidebar__menus').find('.open-submenu').removeClass('open-submenu');\n\t\t\t\t$('.sidebar__menus').removeClass('kill-overflow');\n\t \t\t} else if ( submenuLevel == 2 ) {\n\t \t\t\tsubmenuLevel = 1;\n\t \t\t\t$('.has-second-submenu.open-submenu').parent().removeClass('opened-submenu');\n\t \t\t\t$('.has-second-submenu.open-submenu').removeClass('open-submenu');\n\t \t\t}\n\n\t \t});\n\n\t},\n\n\tunmount: function() {\n\t \twindow.removeEventListener('scroll', KING.Sidebar.SCROLL_StickySidebar);\n\t\t$(window).off('resize.sticky-sidebar');\n\t}\n\n}\n\n// Mount in page\n\n$(document).ready(function(){\n  KING.Sidebar.mount();\n});\n\n// Shopify events\n\n$(document).on('shopify:section:load', function(e){\n\n  var $section = $(e.target);\n  if ( $section.hasClass('mount-sidebar') ) {\n    KING.Sidebar.mount();\n    if ( $section.find('.localization-form__item').length > 0 ) {\n\t    KING.Localization.mount();\n\t  }\n  }\n\n}).on('shopify:section:unload', function(e){\n\n  var $section = $(e.target);\n  if ( $section.hasClass('mount-sidebar') ) {\n    KING.Sidebar.unmount();\n  }\n\n}); \nwindow.cartFormAjax = function(){\n\n  ///////////\n  // code that will run every time cart HTML is loaded\n  ///////////\n  \n  // Part 1: original part, cart\n\tvar $form = $('.cart__form');\n  \n\t$('#cart').find('.cart-item:not(.ajax-init)').each(function(){\n\n\t\tvar $item = $(this);\n\t\t$item.addClass('ajax-init');\n\n\t\tvar $remove = $(this).find('.remove');\n\t\t$remove.data('href', $remove.attr('href'));\n\t\t$remove.removeAttr('href');\n\n\t\tvar $qty = $(this).find('.qty');\n\t\t$qty.data('href', $qty.attr('data-href'));\n\t\t$qty.removeAttr('data-href');\n\n\t\tvar $qty_minus = $(this).find('.cart_quantity__minus');\n        var $qty_plus = $(this).find('.cart_quantity__plus');\n      \n        $qty_minus.on('click', function(e) {\n          e.preventDefault();\n          var newVal = $qty.val() - 1;\n          if (newVal < 1) {\n            newVal = 1;\n          }\n          $qty.val(newVal);\n          $qty.trigger('input');\n        });\n        $qty_plus.on('click', function(e) {\n          e.preventDefault();\n          var newVal = parseInt($qty.val(), 10) + 1;\n          $qty.val(newVal);\n          $qty.trigger('input');\n        });\n      \n\t\t// Remove items\n\t\t$remove.on('click', function(e){\n\t\t\te.preventDefault();\n\t\t\tupdateCartQty($form, $item, 0);\n\t\t});\n\n\t\t// Update quantities\n\t\t$qty.on('input', window.debounce(function(e){\n\t\t\te.preventDefault();\n\t\t\te.target.blur();\n\t\t\tupdateCartQty($form, $item, parseInt($qty.val()));\n\t\t}, 300)).on('click', function(e){\n\t\t\te.target.select();\n\t\t});\n\n\t});\n\n  // part 2, donation\n  var fixedAmountButtons = $('[name=\"donation-fixed-amount\"]'),\n    donationVariableAmount = $('.donation-variable-amount__input'),\n    cartCountSelector = 'body .cart, #cart-count a:first, #gocart p a, #cart .checkout em, .item-count, #item_count',\n    cartFormButtons = $('form[action=\"/cart\"]').find('[name=\"update\"], [name=\"checkout\"], [name=\"goto_pp\"], [name=\"goto_gc\"]'),\n    variableDonationIndexInProduct = $('#donation-index-in-product').html(),\n    data = { updates: {} },\n    qty = 0,\n    variantId,\n    isFixedAmount = true,\n    updateDonation = function($) {\n      isFixedAmount = false;\n      fixedAmountButtons.each(function() {\n        variantId = $(this).val();\n        if (variantId) {\n          if ($(this).is(':checked')) {\n            data['updates'][variantId] = 1;\n            isFixedAmount = true;\n          }\n          else {\n            data['updates'][variantId] = 0;\n          }\n        }\n      });\n      if (isFixedAmount) {\n        donationVariableAmount.val('');\n        data['updates'][variableDonationIndexInProduct] = 0;\n      }\n      else {\n        qty = parseInt(donationVariableAmount.val().replace(/[^0-9.,]/,''), 10) || 0;\n        data['updates'][variableDonationIndexInProduct] = qty;\n      }\n\n      fetch('/cart/update.js', {\n        method: 'POST',\n\t\tbody: $('form[action=\"/cart\"]').serialize(),\n\t\tcredentials: 'same-origin',\n\t\theaders: {\n\t\t\t'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'\n\t\t}\n\t  }).then(function (response) {\n        if (response.ok) {\n          fetch('/cart/update.js', {\n            method: 'POST',\n            body: JSON.stringify(data),\n    \t\theaders: {\n\t\t\t  'Content-Type': 'application/json'\n\t\t    }\n          }).then(function (response) {\n            refreshCartSidebar($form);\n          });\n        }\n\t  });\n/*\n      console.log(\"outer ajaxing\");\n      $.ajax({\n        type: 'POST',\n        url: '/cart/update.js', \n        data: $('form[action=\"/cart\"]').serialize(),\n        dataType: 'json',\n        success: function() {\n      \t  console.log(\"inner ajaxing\");\n          $.ajax({\n            type: 'POST',\n            url: '/cart/update.js',\n            data: data,\n            dataType: 'json',\n            success: function() {\n              console.log(\"inner inner jump\");\n              refreshCartSidebar($form);\n\n//              window.location = document.location.pathname+'#cart';\n//              window.location.reload();\n            }\n          });\n        }      \n      });\n\n*/    \n      \n      \n    };\n  \n  // Hide quantity box in cart form for variable donation amount.\n  // Update cart item count too, so that a variable amount counts as 1 item.\n  if ($('donation-plus').length > 0) {\n    jQuery('form[action=\"/cart\"] [name^=\"updates\"]:eq({{ donation_index }})').css('visibility', 'hidden');\n    jQuery('form[action=\"/cart\"] .cart-price:eq({{ donation_index }})').css('visibility', 'hidden');\n    if (cartCountSelector && jQuery(cartCountSelector).size()) {\n      var value = $(cartCountSelector).first().html();\n      $(cartCountSelector).first().html(value.replace(/[0-9]+/, $('#js-cartcount').html()));\n    }    \n  }\t\n                                    \n  // Automatically add the donation when a button is clicked or variable amount changes.\n  fixedAmountButtons.on('click', function() {\n    if ($(this).is('.active')) {\n      $(this).prop('checked', false);\n      $(this).removeClass('active');\n      if ($(this).val()) {\n        updateDonation($);\n      } else {\n        donationVariableAmount.val('');\n        donationVariableAmount.prop('disabled', true).addClass('donation-variable-amount__input--disabled');\n        updateDonation($);\n      }\n    } else {\n      fixedAmountButtons.removeClass('active');\n      $(this).addClass('active');\n      if ($(this).val()) {\n        updateDonation($);\n      } else {\n        donationVariableAmount.prop('disabled', false).removeClass('donation-variable-amount__input--disabled').get(0).focus();\n      }\n    }\n  });\n    \n  // If Enter key is pressed while input box has focus, update donation.\n  donationVariableAmount.on('keypress', function(e) {\n    if (e.which === 13) {\n      updateDonation($);\n      return false;\n    }\n  });\n  \n  // If Donation amount has changed, update donation.\n  donationVariableAmount.on('change, blur', function() {\n    cartFormButtons.prop('disabled', true);\n    updateDonation($);\n  });  \n}\n\nwindow.cartFormAjax();\n\nfunction refreshCartSidebar($form, $item, newQty) {\n  fetch(window.cart_url, {\n\tcredentials: 'same-origin',\n    method: 'GET'\n  }).then(function (response) {\n    response.text().then(function(html) {\n\t\tvar $html = $(html);\n\t\tif ( $html.find('.sidebar__cart-handle .count').html() == '0' ) {\n\t\t\t$('.cart__title').html($('.cart__title').data('cart-empty'));\n\t\t\t$('.cart__form').addClass('cart--empty');\n\t\t} else {\n\t\t\t$('.cart__title').html($html.find('.cart__title').html());\n\t\t\t$('.cart__form').html($html.find('.cart__form').html());\n\t\t\twindow.cartFormAjax();\n\t\t}\n\t\t$('.sidebar__cart-handle .count').html($html.find('.sidebar__cart-handle .count').html());\n        $form.removeClass('processing');\n        if (typeof $item !== 'undefined') {\n          if ( newQty > parseInt($html.find('.cart-item[data-id=\"' + $item.data('id') + '\"]').data('qty')) ) {\n            $form.prepend('<span class=\"alert alert--error\">' + window.cart_add_error.replace('{{ title }}', $item.data('title')) + '</span>');\n          } else if ( newQty == 0 ) {\n            $item.remove();\n          }\n        }\n    });\n  });\n};\n\nfunction updateCartQty($form, $item, newQty) {\n\n\t$form.addClass('processing');\n\t$form.find('.alert').remove();\n\n  fetch(window.cart_change_url + '.js', {\n    body: JSON.stringify({\n      id: $item.data('id'),\n      quantity: newQty\n    }),\n    method: 'POST',\n    credentials: 'same-origin',\n    headers: {\n      'Content-Type': 'application/json'\n    }\n  }).then(function (response) {\n\t  if ( response.ok ) { \n        refreshCartSidebar($form, $item, newQty);\n\t  } else {\n\t\t$form.prepend('<span class=\"alert alert--error\">' + window.cart_general_error + '</span>');\t\n\t\t$form.removeClass('processing');\n\t  }\n\n  });\n\n}\nKING.Localization = {\n\n\tmount: function() {\n\n\t\t$('.localization-form__item .regular-select-cover').each(function(){\n\n\t\t\tif ( ! $(this).hasClass('init') ) {\n\n\t\t\t\t$(this).addClass('init');\n\n\t\t\t\tvar widthBasedOnLocation = $(this).data('location') == 'footer' ? 120 : 100;\n\t\t\t\tvar selectContentWidth = Math.ceil($(this).find('.regular-select-content').outerWidth(true)),\n\t\t\t\t\t\tselectInnerWidth = Math.ceil($(this).find('.regular-select-inner').outerWidth(true));\n\t\t\t\t$(this).attr('style', 'width: ' + ( Math.max(widthBasedOnLocation, Math.max(selectInnerWidth, selectContentWidth)) + 1 ) + 'px !important');\n\n\t\t\t\t$(this).on('click', function(e){\n\n\t\t\t\t\te.stopPropagation();\n\t\t\t\t\tvar _this = $(this)[0];\n\n\t\t\t\t\t$('.regular-select-cover.content-opened').each(function(){\n\t\t\t\t\t\tif ( $(this)[0] != _this ) {\n\t\t\t\t\t\t\t$(this).removeClass('content-opened');\n\t\t\t\t\t\t\t$(this).parent().css('zIndex', 9);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tif ( ! $(this).hasClass('content-opened') ) {\n\n\t\t\t\t\t\t$(this).addClass('content-opened');\n\t\t\t\t\t\t$(this).attr('aria-expanded', 'true');\n\t\t\t\t\t\t$(this).parent().css('zIndex', 1000);\n\t\t\t\t\t\tvar $selectHandle = $(this);\n\n\t\t\t\t\t\tif ( $(this).hasClass('invert-with-fixed') ) {\n\t\t\t\t\t\t\tif ( $(this)[0].getBoundingClientRect().y + $(this).find('.regular-select-content').height() + 55 > window.innerHeight ) {\n\t\t\t\t\t\t\t\t$(this).addClass('invert');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif ( $(this).offset().top + $(this).find('.regular-select-content').height() + 55 > $('html').height() ) {\n\t\t\t\t\t\t\t\t$(this).addClass('invert');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t$(window).on('click.select-helper', function(){\n\t\t\t\t\t\t\tif ( $selectHandle.hasClass('content-opened') ) {\n\t\t\t\t\t\t\t\t$selectHandle.removeClass('content-opened').removeClass('invert');\n\t\t\t\t\t\t\t\t$selectHandle.parent().css('zIndex', 9);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$(this).attr('aria-expanded', 'false');\n\t\t\t\t\t\t$(this).parent().css('zIndex', 9);\n\t\t\t\t\t\t$(this).removeClass('content-opened').removeClass('invert');\n\t\t\t\t\t\t$(window).off('click.select-helper');\n\t\t\t\t\t}\n\n\t\t\t\t}).on('keypress', function(e){\n\t\t\t\t\tif ( e.which == 13 ) {\n\t\t\t\t\t\tif ( ! $(this).hasClass('opened-with-tab') ) {\n\t\t\t\t\t\t\t$(this).addClass('opened-with-tab');\n\t\t\t\t\t\t\t$(this).trigger('click');\n\t\t\t\t\t\t\t$(this).find('.regular-select-item').attr('tabindex', '0');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t}\n\n\t\t});\n\n\t}\n\n}\n\n\n// Mount in page\n\n$(document).ready(function(){\n  if ( $('.localization-form__item').length > 0 ) {\n    KING.Localization.mount();\n  }\n});\n\n// Shopify events\n\n$(document).on('shopify:section:load', function(e){\n\n  var $section = $(e.target);\n  if ( $section.hasClass('mount-footer') && $section.find('.localization-form__item').length > 0 ) {\n    KING.Localization.mount();\n  }\n\n});\nKING.Collection = {\n\n\tmount: function(collection) {\n\n  \tvar _this = {};\n\n\t\t_this.$collection = $(collection);\n\n\t\tif ( _this.$collection.hasClass('collection--slider') ) {\n\n\t\t\tnew Flickity(_this.$collection[0], {\n\t\t\t\tcellSelector: '.product-item',\n\t  \t\tcellAlign: 'left',\n\t  \t\tgroupCells: true,\n\t  \t\tprevNextButtons: false,\n\t  \t\tpageDots: true\n\t\t\t});\n\n\t  }\n\n\t  if ( _this.$collection.hasClass('collection--masonry') ) {\n\t  \t\n\t  \t_this.$collection.find('.product-item').css('position', 'absolute');\n\t  \tvar masonry = new MiniMasonry({\n\t  \t\tcontainer: '#collection-portfolio',\n\t  \t\tgutter: 0,\n\t  \t\tsurroundingGutter: false\n\t  \t});\n\t  }\n\n\t  _this.$collection.find('.product-item a').on('click', function(e){\n\t  \t$(this).addClass('hover');\n\t  });\n\n\t}\n\n}\n\n// Mount in page\n\nif ( $('.mount-collection').length > 0 ) {\n\t$('.mount-collection').each(function(){\n\t\tKING.Collection.mount($(this));\n\t});\n}\n\n// Shopify events\n\n$(document).on('shopify:section:load', function(e){\n\n\tvar $section = $(e.target);\n\tif ( $section.find('.mount-collection').length > 0 ) {\n\t\tKING.Collection.mount($section.find('.mount-collection'));\n\t}\n\n});\nKING.ProductMedia = {\n\n\t_productHostedVideos: {},\n\t_productYouTubeVideos: {},\n\t_productModels: {},\n\n\t_plyrStylesLoaded: false,\n\t_modelStylesLoaded: false,\n\t_videoLooping: false,\n\n\tmount: function($product) {\n\n\t\tvar productData = window.productData[$product.data('id')];\n\t\tthis._videoLooping = productData.$productCarousel.data('video-looping');\n\n\t\tproductData.$productGalleryItem.each((function(i, item){\n\n\t\t\t// init $item variables, media objects\n\n\t\t\tswitch ( $(item).data('product-media-type') ) {\n\t\t\t\tcase 'video': \n\t\t\t\t\tthis._productHostedVideos[$(item).data('media-id')] = {\n\t\t\t\t\t\t$item: $(item),\n\t\t\t\t\t\t$carousel: productData.$productCarousel,\n\t\t\t\t\t\tflkty: productData.productFlkty,\n\t\t\t\t\t\tplayer: null,\n\t\t\t\t\t\tinit: false\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'external_video': \n\t\t\t\t\tthis._productYouTubeVideos[$(item).data('media-id')] = {\n\t\t\t\t\t\t$item: $(item),\n\t\t\t\t\t\t$carousel: productData.$productCarousel,\n\t\t\t\t\t\tflkty: productData.productFlkty,\n\t\t\t\t\t\tplayer: null,\n\t\t\t\t\t\tinit: false\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'model': \n\t\t\t\t\tthis._productModels[$(item).data('media-id')] = {\n\t\t\t\t\t\t$item: $(item),\n\t\t\t\t\t\t$carousel: productData.$productCarousel,\n\t\t\t\t\t\tflkty: productData.productFlkty,\n\t\t\t\t\t\tplayer: null,\n\t\t\t\t\t\tinit: false\n\t\t\t\t\t}\n\t\t\t}\n\n\t\t}).bind(this));\n\n\t\t// check video array\n\n\t\tif ( Object.keys(this._productHostedVideos).length > 0 ) {\n\t\t\tif ( ! Shopify.Plyr ) {\n\t\t\t\twindow.Shopify.loadFeatures([\n\t        {\n\t          name: 'video-ui',\n\t          version: '1.0',\n\t          onLoad: (function(){\n\t          \tthis._mountSelfHostedVideos();\n\t          }).bind(this)\n\t        }\n\t      ]);\n        this.LibraryLoader.load('plyrShopifyStyles', (function(){\n        \tthis._plyrStylesLoaded = true;\n        \t$('.plyr').addClass('lazyloaded');\n\t\t\t\t\t$('.plyr').find('video').addClass('loaded');\n\t\t\t\t\tsetTimeout(function(){\n\t\t\t\t\t\t$('.plyr').addClass('reset-transitions');\n\t\t\t\t\t}, 50);\n        }).bind(this));\n\t\t\t} else {\n      \tthis._mountSelfHostedVideos();\n\t\t\t}\n\t\t}\n\n\t\t// check YouTube array\n\n\t\tif ( Object.keys(this._productYouTubeVideos).length > 0 ) {\n\t\t\tif ( ! window.YT ) {\n        this.LibraryLoader.load('youtubeSdk');\n\t\t\t} else {\n\t\t\t\tKING.ProductMedia._mountYouTubeVideos();\n\t\t\t}\n\t\t}\n\n\t\t// check models array\n\n\t\tvar $xrButton = $product.find('.product-gallery__view-in-space');\n\n\t\tif ( Object.keys(this._productModels).length > 0 ) {\n\n\t\t\tif ( ! Shopify.ModelViewerUI ) {\n\t\t\t\twindow.Shopify.loadFeatures([\n\t        {\n\t          name: 'model-viewer-ui',\n\t          version: '1.0',\n\t          onLoad: (function(){\n\t          \tthis._mountModels();\n\t          }).bind(this)\n\t        }\n\t      ]);\n\t\t\t\tthis.LibraryLoader.load('modelViewerUiStyles', (function(){\n\t\t\t\t\tthis._modelStylesLoaded = true;\n\t\t\t\t\t$('.shopify-model-viewer-ui').addClass('lazyloaded');\n\t\t\t\t}).bind(this));\n\t\t\t} else {\n\t\t\t\tthis._mountModels();\n\t\t\t}\n\n\t\t\tif ( ! Shopify.ShopifyXR ) {\n\t\t\t\twindow.Shopify.loadFeatures([\n\t\t      {\n\t\t        name: 'shopify-xr',\n\t\t        version: '1.0',\n\t\t        onLoad: (function(){\n\n\t\t        \tdocument.addEventListener('shopify_xr_initialized', (function(){\n\t          \t\tthis._setupShopifyXr(JSON.parse($product.find('.model-json')[0].innerHTML));\n\t\t        \t}).bind(this));\n\n\t\t        \tdocument.addEventListener('shopify_xr_launch', (function(){\n\t\t        \t\tthis._triggerAutoPlayOFF(productData.$productCarousel);\n\t\t        \t}).bind(this));\n\n\t          }).bind(this)\n\t\t      }\n\t      ]);\n\t\t\t} else {\n      \tthis._setupShopifyXr(JSON.parse($product.find('.model-json')[0].innerHTML));\n\t\t\t}\n\n\t\t\t// bind flickity events for models\n\n\t\t\tif ( $xrButton.length > 0 ) {\n\t\t\t\tproductData.productFlkty.on('change', (function(i){\n\t\t\t\t\tif ( productData.$productGalleryItem.eq(i).data('product-media-type') == 'model' ) {\n\t\t\t\t\t\t$xrButton.attr('data-shopify-model3d-id', productData.$productGalleryItem.eq(i).data('media-id'));\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$xrButton.attr('data-shopify-model3d-id', $xrButton.data('shopify-first-model3d-id'));\n\t\t\t\t\t}\n\t\t\t\t}).bind(this));\n\t\t\t}\n\n\t\t\tproductData.productFlkty.on('settle', (function(i){\n\t\t\t\tif ( productData.$productGalleryItem.eq(i).data('product-media-type') == 'model' ) {\n\t\t\t\t\tthis._triggerAutoPlayON(productData.$productGalleryItem.eq(i));\n\t\t\t\t}\n\t\t\t}).bind(this));\n\n\t\t\tproductData.productFlkty.on('staticClick', (function(e, p, elm, i){\n\t\t\t\tif ( $(elm).data('product-media-type') == 'model' ) {\n\t\t\t\t\tif ( $(elm).find('model-viewer').hasClass('shopify-model-viewer-ui__disabled') ) {\n\t\t\t\t\t\tthis._triggerAutoPlayON($(elm));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}).bind(this));\n\n\t\t}\n\n\t\t// bind flickity events for all media\n\n\t\tif ( productData.$productCarousel.data('size') > 1 ) {\n\n\t\t\tvar oldIndex = productData.productFlkty.selectedIndex;\n\t\t\tproductData.productFlkty.on('change', (function(i){\n\n\t\t\t\tif ( productData.$productGalleryItem.eq(oldIndex).data('product-media-type') == 'external_video' ) {\n\t\t\t\t\tproductData.$productGalleryItem.eq(i).find('iframe').attr('tabindex', '-1');\n\t\t\t\t}\n\t\t\t\tthis._triggerAutoPlayOFF(productData.$productCarousel);\n\t\t\t\toldIndex = i;\n\n\t\t\t\tif ( productData.$productGalleryItem.eq(i).data('product-media-type') != 'model' ) {\n\t\t\t\t\tthis._triggerAutoPlayON(productData.$productGalleryItem.eq(i));\n\t\t\t\t}\n\t\t\t\tif ( productData.$productGalleryItem.eq(i).data('product-media-type') == 'external_video' ) {\n\t\t\t\t\tproductData.$productGalleryItem.eq(i).find('iframe').attr('tabindex', '0');\n\t\t\t\t}\n\n\t\t\t}).bind(this));\n\n\t\t\tproductData.productFlkty.on('dragStart', function(e){\n\t\t\t\t$(e.currentTarget).addClass('dragging');\n\t\t\t});\n\t\t\tproductData.productFlkty.on('dragEnd', function(e){\n\t\t\t\t$(e.currentTarget).removeClass('dragging');\n\t\t\t});\n\n\t\t}\n\n\t},\n\n\t_triggerAutoPlayON: function($slide) {\n\t\tif ( $slide.hasClass('init-js-actions') ) {\n\t\t\tif ( $('body').hasClass('no-touch') && $(window).width() > 640 )  {\n\t\t\t\tswitch ( $slide.data('product-media-type') ) {\n\t\t\t\t\tcase 'video':\n\t\t\t\t\t\tthis._productHostedVideos[$slide.data('media-id')].player.play();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'external_video':\n\t\t\t\t\t\tthis._productYouTubeVideos[$slide.data('media-id')].player.playVideo();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'model':\n\t\t\t\t\t\tthis._productModels[$slide.data('media-id')].player.play();\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t_triggerAutoPlayOFF: function($slider) {\n\t\t$slider.find('.product-gallery__item').each((function(i, slide){\n\t\t\tif ( $(slide).hasClass('init-js-actions') ) {\n\t\t\t\tswitch ( $(slide).data('product-media-type') ) {\n\t\t\t\t\tcase 'video':\n\t\t\t\t\t\tthis._productHostedVideos[$(slide).data('media-id')].player.pause();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'external_video':\n\t\t\t\t\t\tif ( this._productYouTubeVideos[$(slide).data('media-id')].player != null ) {\n\t\t\t\t\t\t\tthis._productYouTubeVideos[$(slide).data('media-id')].player.pauseVideo();\n\t\t\t\t\t\t}\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'model':\n\t\t\t\t\t\tthis._productModels[$(slide).data('media-id')].player.pause();\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t}\n\t\t}).bind(this));\n\t\t\n\t},\n\n\t_mountModels: function() {\n\n\t\tfor (const key in this._productModels) {\n\n\t\t\tlet obj = this._productModels[key];\n\n\t\t\tif ( ! obj.init ) {\n\n\t\t\t\tobj.init = true;\n\n\t\t\t\tlet $model = obj.$item.find('model-viewer')[0],\n\t\t\t\t\t\tmodel = new Shopify.ModelViewerUI(obj.$item.find('model-viewer')[0]);\n\n\t\t\t\tobj.player = model;\n\n\t\t\t\tif ( obj.$carousel.data('size') > 1 ) {\n\t\t\t\t\t$model.addEventListener('shopify_model_viewer_ui_toggle_play', (function(e){\n\t\t\t\t\t\tthis._updateFlickityDraggable(obj.flkty, false);\n\t\t\t\t\t}).bind(this));\n\t\t\t\t\t$model.addEventListener('shopify_model_viewer_ui_toggle_pause', (function(e) {\n\t\t\t\t\t\tthis._updateFlickityDraggable(obj.flkty, true);\n\t\t\t\t\t}).bind(this));\n\t\t\t\t}\n\n\t\t\t\tif ( this._modelStylesLoaded ) {\n\t\t\t\t\tobj.$item.find('.shopify-model-viewer-ui').addClass('lazyloaded');\n\t\t\t\t}\n\t\t\t\tobj.$item.addClass('init-js-actions');\n\n\t\t\t}\n\n\t\t}\n\n\t},\n\n\t_setupShopifyXr: function(modelsJson) {\n\t\twindow.ShopifyXR.addModels(modelsJson);\n    window.ShopifyXR.setupXRElements();\n\t},\n\n\t_updateFlickityDraggable: function(flkty, draggable) {\n\t\tflkty.options.draggable = draggable;\n  \tflkty.updateDraggable();\n\t},\n\n\t_mountSelfHostedVideos: function() {\n\n\t\tfor (const key in this._productHostedVideos) {\n\n\t\t\tlet obj = this._productHostedVideos[key];\n\n\t\t\tif ( ! obj.init ) {\n\n\t\t\t\tobj.init = true;\n\n\t\t\t\tlet player = new Shopify.Plyr(obj.$item.find('video')[0], {\n\t\t\t\t\tloop: {\n\t\t\t\t\t\tactive: this._videoLooping\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tobj.player = player;\n\n\t\t\t\tplayer.on('ready', (function($item, e){\n\t\t\t\t\tif ( this._plyrStylesLoaded ) {\n\t\t\t\t\t\t$item.addClass('init-js-actions');\n\t\t\t\t\t\t$(e.target).addClass('lazyloaded');\n\t\t\t\t\t\t$(e.target).find('video').addClass('loaded');\n\t\t\t\t\t\tsetTimeout((function($player){\n\t\t\t\t\t\t\t$player.addClass('reset-transitions');\n\t\t\t\t\t\t}).bind(this, $(e.target)), 50);\n\t\t\t\t\t} \n\t\t\t\t}).bind(this, obj.$item));\n\n\t\t\t\tif ( obj.$carousel.data('size') > 1 ) {\n\n\t\t\t\t\tplayer.on('play', (function(e){\n\t\t\t\t\t\tif ( $(e.target).closest('.product-gallery__item').index() == obj.flkty.selectedIndex ) {\n\t\t\t\t\t\t\tthis._updateFlickityDraggable(obj.flkty, false);\n\t\t\t\t\t\t}\n\t\t\t\t\t}).bind(this));\n\n\t\t\t\t\tplayer.on('pause', (function(e){\n\t\t\t\t\t\tif ( $(e.target).closest('.product-gallery__item').index() == obj.flkty.selectedIndex ) {\n\t\t\t\t\t\t\tthis._updateFlickityDraggable(obj.flkty, true);\n\t\t\t\t\t\t}\n\t\t\t\t\t}).bind(this));\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\n\t},\n\n\t_mountYouTubeVideos: function() {\n\n\t\tfor (const key in this._productYouTubeVideos) {\n\n\t\t\tlet obj = this._productYouTubeVideos[key];\n\n\t\t\tif ( ! obj.init ) {\n\n\t\t\t\tobj.init = true;\n\n\t\t\t\tlet player = new YT.Player(obj.$item.find('iframe')[0], {\n\t\t\t\t\tevents: {\n\t\t\t\t\t\t'onStateChange': (function(e){\n\t\t\t\t\t\t\tif ( e.data === 0 && this._videoLooping ) {\n\t\t\t\t\t\t\t\te.target.seekTo(0);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}).bind(this),\n\t\t\t\t\t\t'onReady': (function($item, $iframe){\n\t\t\t\t\t\t\t$item.addClass('init-js-actions');\n\t\t\t\t\t\t\t$iframe.parent().addClass('lazyloaded');\n\t\t\t\t\t\t\t$iframe.attr('tabindex', '-1');\n\t\t\t\t\t\t}).bind(this, obj.$item, obj.$item.find('iframe'))\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tobj.player = player;\n\n\t\t\t}\n\n\t\t}\n\n\t},\n\n\tunmount: function($gallery) {\n\t\t$gallery.find('.product-gallery__item').each((function(i, item){\n\t\t\tdelete this._productYouTubeVideos[$(item).data('media-id')];\n\t\t\tdelete this._productModels[$(item).data('media-id')];\n\t\t\tdelete this._productHostedVideos[$(item).data('media-id')];\n\t\t}).bind(this));\n\t},\n\n\tLibraryLoader: (function() {\n\n\t\tvar types = {\n\t    link: 'link',\n\t    script: 'script'\n\t  };\n\n\t  var status = {\n\t    requested: 'requested',\n\t    loaded: 'loaded'\n\t  };\n\n\t  var cloudCdn = 'https://cdn.shopify.com/shopifycloud/';\n\n\t  var libraries = {\n\t    youtubeSdk: {\n\t      tagId: 'youtube-sdk',\n\t      src: 'https://www.youtube.com/iframe_api',\n\t      type: types.script\n\t    },\n\t    plyrShopifyStyles: {\n\t      tagId: 'plyr-shopify-styles',\n\t      src: cloudCdn + 'shopify-plyr/v1.0/shopify-plyr.css',\n\t      type: types.link\n\t    },\n\t    modelViewerUiStyles: {\n\t      tagId: 'shopify-model-viewer-ui-styles',\n\t      src: cloudCdn + 'model-viewer-ui/assets/v1.0/model-viewer-ui.css',\n\t      type: types.link\n\t    }\n\t  };\n\n\t  function load(libraryName, callback) {\n\t    var library = libraries[libraryName];\n\n\t    if (!library) return;\n\t    if (library.status === status.requested) return;\n\n\t    callback = callback || function() {};\n\t    if (library.status === status.loaded) {\n\t      callback();\n\t      return;\n\t    }\n\n\t    library.status = status.requested;\n\n\t    var tag;\n\n\t    switch (library.type) {\n\t      case types.script:\n\t        tag = createScriptTag(library, callback);\n\t        break;\n\t      case types.link:\n\t        tag = createLinkTag(library, callback);\n\t        break;\n\t    }\n\n\t    tag.id = library.tagId;\n\t    library.element = tag;\n\n\t    var firstScriptTag = document.getElementsByTagName(library.type)[0];\n\t    firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n\t  }\n\n\t  function createScriptTag(library, callback) {\n\t    var tag = document.createElement('script');\n\t    tag.src = library.src;\n\t    tag.addEventListener('load', function() {\n\t      library.status = status.loaded;\n\t      callback();\n\t    });\n\t    return tag;\n\t  }\n\n\t  function createLinkTag(library, callback) {\n\t    var tag = document.createElement('link');\n\t    tag.href = library.src;\n\t    tag.rel = 'stylesheet';\n\t    tag.type = 'text/css';\n\t    tag.addEventListener('load', function() {\n\t      library.status = status.loaded;\n\t      callback();\n\t    });\n\t    return tag;\n\t  }\n\n\t  return {\n\t    load: load\n\t  };\n\t})()\n\n}\nKING.SharePopup = {\n\tmount: function(){\n\t\tconst modal = basicLightbox.create(document.querySelector('#share-popup'));\n\t\t$('.share-link').on('click', function(e){\n\t\t\tmodal.show(function(){\n\t\t\t\t$('.share-popup').find('.basicLightboxClose').on('click', function(){\n\t\t\t\t\tmodal.close();\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n}\n\n// Mount in page\n\n$(document).ready(function(){\n\tif ( $('.share-link').length > 0 ) {\n\t\tKING.SharePopup.mount();\n\t}\n});\n\n// Shopify events\n\n$(document).on('shopify:section:load', function(e){\n\n\tvar $section = $(e.target);\n\tif ( $section.find('.share-link').length > 0 ) {\n\t\tKING.SharePopup.mount();\n\t}\n\n});\nKING.Search = {\n\n\t$searchForm: null,\n\t$searchInput: null,\n\t$searchResults: null,\n\t$searchMore: null,\n\n\t$sidebarOverlay: null,\n\n\tmount: function(){\n\n\t\tthis.$searchForm = $('.sidebar__search');\n\t\tthis.$searchInput = this.$searchForm.find('input[type=\"search\"]');\n\t\tthis.$searchResults = $('.sidebar__search-results');\n\t\tthis.$searchMore = $('.sidebar__search-link');\n\n\t\tthis.$sidebarOverlay = $('.cart-overlay-background');\n\n\t\t$(window).on('resize.search', (function(){\n\t\t\tthis.$searchResults.css('maxHeight', document.documentElement.clientHeight - 170);\n\t\t}).bind(this));\n\n\t\t// form animation\n\n\t\tthis.$searchInput.on('click', (function(e){\n\n\t\t\tif ( ! this.$searchForm.hasClass('open-search') ) {\n\n\t\t\t\t$('.sidebar').addClass('no-transforms');\n\t\t\t\tthis.$searchForm.addClass('open-search');\n\t\t\t\tthis.$searchResults.addClass('show');\n\t\t\t\tthis.$searchMore.addClass('show');\n \t\t\t\t$('body').addClass('overflow-hidden');\n\n\t\t\t\tthis.$sidebarOverlay.addClass('show').on('click.search-close', (function(){\n\t\t\t\t\tthis._closeSearch();\n\t\t\t\t}).bind(this));\n\n\t\t\t}\n\n\t\t}).bind(this));\t\n\n\t\tthis.$searchForm.find('.sidebar__search-close').on('click', (function(){\n\t\t\tif ( window.getPseudoContent('.sidebar__search').indexOf('predictive-mobile') < 0 ) {\n\t\t\t\tthis._closeSearch();\n\t\t\t}\n\t\t}).bind(this));\n\n\t\t// form function\n\n\t\tvar searchInputValue = this.$searchInput.val();\n\t\tthis.$searchInput.on('keyup', window.debounce((function(e){\n\n\t\t\tif ( searchInputValue != this.$searchInput.val() ) {\n\t\t\t\tsearchInputValue = this.$searchInput.val();\n\n\t\t\t\tvar query = this.$searchForm.find('input[type=\"search\"]').val();\n\n\t\t\t\tfunction escapeHTML(str) {\n  return str\n    .replace(/&/g, '&amp;')\n    .replace(/</g, '&lt;')\n    .replace(/>/g, '&gt;')\n    .replace(/\"/g, '&quot;')\n    .replace(/'/g, '&#039;');\n}\n\n// Create sanitized versions of the query for different contexts\nvar safeQuery = escapeHTML(query);\nvar urlSafeQuery = encodeURIComponent(query);\n\nif (query != '') {\n  if (!this.$searchResults.find('.search-item.blank').length > 0) {\n    this.$searchResults.html('<a class=\"search-item blank\"><div class=\"thumbnail\"></div><div class=\"content\"><h3 class=\"title\"></h3><span class=\"caption\"></span></div></a><a class=\"search-item blank\"><div class=\"thumbnail\"></div><div class=\"content\"><h3 class=\"title\"></h3><span class=\"caption\"></span></div></a><a class=\"search-item blank\"><div class=\"thumbnail\"></div><div class=\"content\"><h3 class=\"title\"></h3><span class=\"caption\"></span></div></a>');\n  }\n  \n  // Use the sanitized versions in the HTML\n  this.$searchMore.html(\n    '<a class=\"search-more button button--solid\" href=\"' + \n    window.search_url + '?q=' + urlSafeQuery + '&options[prefix]=last\">' + \n    window.search_words_search_for_html.replace('{{ terms }}', safeQuery) + \n    '</a>'\n  );\n} else {\n  this.$searchResults.html('');\n  this.$searchMore.html('');\n  this.$searchMore.removeClass('push-me');\n}\n\n\t\t\t\tvar searchDOM = '';\n\n\t\t\t\t// new call with xhr\n\n\t\t\t\tif ( query != '' ) {\n\n\t\t\t\t\tvar configParams = window.objectToQueryParams({\n\t\t\t\t\t\tresources: {\n\t\t\t\t\t\t\ttype:\"product,collection\" + ( window.predictive_search_include_pages == \"true\" ? \",page\" : \"\" ) + ( window.predictive_search_include_articles == \"true\" ? \",article\" : \"\" ),\n\t\t\t\t\t\t\tlimit: 4\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tvar xhr = new XMLHttpRequest();\n\n\t\t\t    xhr.onreadystatechange = (function() {\n\t\t\t      if (xhr.readyState !== XMLHttpRequest.DONE) {\n\t\t\t        return;\n\t\t\t      }\n\n\t\t\t      var contentType = xhr.getResponseHeader('Content-Type');\n\n\t\t\t      if (xhr.status === 200) {\n\t\t\t        try {\n\n\t\t\t          var response = JSON.parse(xhr.responseText);\n\t\t\t\t\t\t// trim out Text Promo and Photo Promo types from resources.results.products\n                      if (typeof response.resources.results.products != 'undefined') {\n                        var goodProducts = [];\n                        for (productidx in response.resources.results.products) {\n                          var type = response.resources.results.products[productidx].type;\n                          if (type != \"Photo Promo\" && type != \"Text Promo\") {\n                            goodProducts.push(response.resources.results.products[productidx]);\n                          }\n                        }\n                        response.resources.results.products = goodProducts;\n                      }\n                      \n                      var productSuggestions = response.resources.results.products,\n\t\t\t\t\t  \t\tarticleSuggestions = response.resources.results.articles,\n\t\t\t\t\t  \t\tpageSuggestions = response.resources.results.pages,\n\t\t\t\t\t  \t\tcollectionSuggestions = response.resources.results.collections;\n\n\t\t\t\t\t\t\t  if ( productSuggestions && productSuggestions.length > 0 ) {\n\n\t\t\t\t\t\t\t  \tproductSuggestions.forEach(function(item, i){\n\n\t\t\t\t\t\t\t\t\t\tsearchDOM += '<a class=\"search-item ' + ( i == 0 ? 'first' : '' ) + '\" href=\"' + item.url + '\" title=\"' + item.title + '\"><div class=\"thumbnail\">' + ( item.featured_image.url != null ? '<img class=\"lazyload\" src=\"' + window.getSizedImageUrl(item.featured_image.url, '80x90_crop_center') + '\" data-srcset=\"' + window.getSizedImageUrl(item.featured_image.url, '80x90_crop_center') + ' 80w, ' + window.getSizedImageUrl(item.featured_image.url, '160x180_crop_center') + ' 160w\" data-sizes=\"80px\" srcset=\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" alt=\"' + item.title + '\" />' : '<span class=\"onboarding-svg\">' + window.search_placeholder_image + '</span>' ) + '</div><div class=\"content\"><h3 class=\"title\">' + item.title + '</h3><span class=\"caption\">';\n\n\t\t\t\t\t\t\t\t\t  if ( window.predictive_search_show_vendor == \"true\" ) {\n\t\t\t\t\t\t\t\t\t  \tsearchDOM += '<span class=\"vendor\">' + window.search_words_prefix_by + ' ' + item.vendor + '</span>';\n\t\t\t\t\t\t\t\t\t  }\n\n\t\t\t\t\t\t\t\t\t  if ( window.predictive_search_show_price == \"true\" ) {\n\t\t\t\t\t\t\t\t\t  \tsearchDOM += '<span class=\"price\">' + theme.Currency.formatMoney(item.price, window.shop_money_format);\n\t\t\t\t\t\t\t\t\t  \tif ( parseInt(item.compare_at_price_max) > parseInt(item.price_min) ) {\n\t\t\t\t\t\t\t\t\t  \t\tsearchDOM += '<span class=\"st\">' + theme.Currency.formatMoney(item.compare_at_price_max, window.shop_money_format) + '</span>';\n\t\t\t\t\t\t\t\t\t  \t}\n\t\t\t\t\t\t\t\t\t  \tsearchDOM += '</span>';\n\t\t\t\t\t\t\t\t\t  }\n\n\t\t\t\t\t\t\t\t\t  searchDOM += '</span></div></a>';\n\n\t\t\t\t\t\t\t  \t});\n\n\t\t\t\t\t\t\t\t} \n\n\t\t\t\t\t\t\t\tif ( collectionSuggestions && collectionSuggestions.length > 0 ) {\n\t\t\t\t\t\t\t\t\tsearchDOM += '<span class=\"search-title\">' + window.search_words_collection_results_title + '</span>';\n\t\t\t\t\t\t\t  \tcollectionSuggestions.forEach(function(item, i){\n\t\t\t\t\t\t\t  \t\tsearchDOM += '<a class=\"search-item ' + ( i == 0 ? 'first' : '' ) + '\" href=\"' + item.url + '\" title=\"' + item.title + '\"><div class=\"thumbnail\">' + ( item.featured_image.url != null ? '<img class=\"lazyload\" src=\"' + window.getSizedImageUrl(item.featured_image.url, '80x90_crop_center') + '\" data-srcset=\"' + window.getSizedImageUrl(item.featured_image.url, '80x90_crop_center') + ' 80w, ' + window.getSizedImageUrl(item.featured_image.url, '160x180_crop_center') + ' 160w\" data-sizes=\"80px\" srcset=\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" alt=\"' + item.title + '\" />' : '<span class=\"onboarding-svg\">' + window.search_placeholder_image + '</span>' ) + '</div><div class=\"content\"><h3 class=\"title\">' + item.title + '</h3></div></a>';\n\t\t\t\t\t\t\t  \t});\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t  if ( articleSuggestions && articleSuggestions.length > 0 ) {\n\t\t\t\t\t\t\t  \tsearchDOM += '<span class=\"search-title\">' + window.search_words_article_results_title + '</span>';\n\t\t\t\t\t\t\t  \tarticleSuggestions.forEach(function(item, i){\n\t\t\t\t\t\t\t  \t\tsearchDOM += '<a class=\"search-item ' + ( i == 0 ? 'first ' : '' ) + ( item.featured_image.url != null ? '' : 'article' ) + '\" href=\"' + item.url +'\">' + ( item.featured_image.url != null ? '<div class=\"thumbnail\"><img class=\"lazyload\" src=\"' + window.getSizedImageUrl(item.featured_image.url, '80x90_crop_center') + '\" data-srcset=\"' + window.getSizedImageUrl(item.featured_image.url, '80x90_crop_center') + ' 80w, ' + window.getSizedImageUrl(item.featured_image.url, '160x180_crop_center') + ' 160w\" data-sizes=\"80px\" srcset=\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" alt=\"' + item.title + '\" /></div>' : '' ) + '<div class=\"content\"><h3 class=\"title\">' + item.title + '</h3>' + '<span class=\"caption\"><span class=\"vendor\" style=\"opacity: .66\">' + window.formatTime('%b %d, %Y', item.published_at) + '</span></span>' + '</div></a>';\n\t\t\t\t\t\t\t  \t});\n\t\t\t\t\t\t\t  }\n\n\t\t\t\t\t\t\t  if ( pageSuggestions && pageSuggestions.length > 0 ) {\n\t\t\t\t\t\t\t  \tsearchDOM += '<span class=\"search-title\">' + window.search_words_page_results_title + '</span>';\n\t\t\t\t\t\t\t  \tpageSuggestions.forEach(function(item, i){\n\t\t\t\t\t\t\t  \t\tsearchDOM += '<a class=\"search-item ' + ( i == 0 ? 'first' : '' ) + ' article\" href=\"' + item.url +'\"><div class=\"content\"><h3 class=\"title\">' + item.title + '</h3>' + ( item.body != '' ? '<span class=\"caption\"><span class=\"vendor\">' + item.body.replace( /(<([^>]+)>)/ig, '').trim().replace('&nbsp;', '').slice(0, 100) + '...' + '</span></span>' : '' ) + '</div></a>';\n\t\t\t\t\t\t\t  \t});\n\t\t\t\t\t\t\t  }\n\n\t\t\t\t\t\t\t  this.$searchResults.html(searchDOM);\n\t\t\t\t\t\t\t  if ( searchDOM == '' ) {\n\t\t\t\t\t\t\t  \tthis.$searchMore.addClass('push-top');\n\t\t\t\t\t\t\t  } else {\n\t\t\t\t\t\t\t  \tthis.$searchMore.removeClass('push-top');\n\t\t\t\t\t\t\t  }\n\n\t\t\t        } catch(error) {\n\n\t\t\t        }\n\n\t\t\t        return;\n\n\t\t\t      } else {\n\n\t\t\t      }\n\n\t\t\t      return;\n\n\t\t\t    }).bind(this);\n\n\t\t\t    xhr.open(\n\t\t\t      'get',\n\t\t\t      window.search_url + '/suggest.json?q=' + encodeURIComponent(query) + '&' + configParams\n\t\t\t    );\n\n\t\t\t    xhr.setRequestHeader('Content-Type', 'application/json');\n\n\t\t\t    xhr.send(); \n\n\t\t\t  }\n\n\t\t\t}\n\n\t\t}).bind(this), 100));\n\n\t},\n\n\t_closeSearch: function(){\n\t\tthis.$searchForm.removeClass('open-search');\n\t\tthis.$searchResults.removeClass('show');\n\t\tthis.$searchMore.removeClass('show');\n\t\t$('.sidebar').removeClass('no-transforms');\n\t\t$('body').removeClass('overflow-hidden');\n\t\tthis.$sidebarOverlay.removeClass('show').off('click.search-close');\n\t}\n\n\n}\n\n// Mount in page\n\nif ( window.predictive_search_enabled == \"true\" && $('.sidebar .search-form').length > 0 ) {\n\tKING.Search.mount();\n}\n// filtering tasks\n\nKING.Collection.mountFilters = function(){\n\n\tif ( ! $('body').hasClass('template-collection-portfolio') ) {\n\t\twindow.KingdomInitFilters();\n\t\twindow.KingdomInitSort();\t\n\t\twindow.KingdomInitFilterSortApply();\n\t}\n\n\tif ( $('.filters-overlay-background').length <= 0 ) {\n\t\t$('body').append('<div class=\"filters-overlay-background\" />');\n\t}\n\n\t$('.option select').each(function(){\n\t\twindow.styledSelectUpgraded($(this), true);\n\t});\n\n\t$('.collection__filters-close').on('click', function(e){\n\t\te.preventDefault();\n\t\tif ( $('.collection__filters').hasClass('opened') ) {\n\t\t\t$('.collection__filters').removeClass('opened');\n\t\t\t$('.filters-overlay-background').removeClass('show');\n\t\t\t$('body').removeClass('overflow-hidden');\n\t\t}\n\t});\n\n\t$('#collection-filters-handle').on('click', function(e){\n\t\te.preventDefault()\n\t\tif ( ! $('.collection__filters').hasClass('opened') ) {\n\t\t\t$('.collection__filters').addClass('opened');\n\t\t\t$('.filters-overlay-background').addClass('show');\n\t\t\t$('body').addClass('overflow-hidden');\n\t\t}\n\t});\n\n\t$('.filters-overlay-background').on('click', function(e){\n\t\t$('.collection__filters-close').trigger('click');\n\t});\n\n}\n\n// Mount in page\n\n$(document).ready(function(){\n\tif ( $('body').hasClass('template-collection') ) {\n\t\tKING.Collection.mountFilters();\n\t}\n});\n\n// Shopify events\n\n$(document).on('shopify:section:load', function(e){\n\n\tvar $section = $(e.target);\n\tif ( $section.find('.mount-collection-filters').length > 0 ) {\n\t\tKING.Collection.mountFilters();\n\t}\n\n});\n/* ---- \n\tProduct Page Helpers\n\t---- */\n\nwindow.productData = {};\n\nif(Array.prototype.equals)\n    console.warn(\"Overriding existing Array.prototype.equals. Possible causes: New API defines the method, there's a framework conflict or you've got double inclusions in your code.\");\n\nArray.prototype.equals = function (array) {\n    // if the other array is a falsy value, return\n    if (!array)\n        return false;\n\n    // compare lengths - can save a lot of time \n    if (this.length != array.length)\n        return false;\n\n    for (var i = 0, l=this.length; i < l; i++) {\n        // Check if we have nested arrays\n        if (this[i] instanceof Array && array[i] instanceof Array) {\n            // recurse into the nested arrays\n            if (!this[i].equals(array[i]))\n                return false;       \n        }           \n        else if (this[i] != array[i]) { \n            // Warning - two different object instances will never be equal: {x:20} != {x:20}\n            return false;   \n        }           \n    }       \n    return true;\n}\n// Hide method from for-in loops\nObject.defineProperty(Array.prototype, \"equals\", {enumerable: false});\n\n/* ---- \n\tMoney currency format\n\t---- */\n\nwindow.theme = window.theme || {};\ntheme.Currency = (function() {\n  var moneyFormat = '${{amount}}'; // eslint-disable-line camelcase\n\n  function formatMoney(cents, format) {\n\n    if (typeof cents === 'string') {\n      cents = cents.replace('.', '');\n    }\n    var value = '';\n    var placeholderRegex = /\\{\\{\\s*(\\w+)\\s*\\}\\}/;\n    var formatString = (format || moneyFormat);\n\n    function formatWithDelimiters(number, precision, thousands, decimal) {\n\n    \tif ( precision != undefined ) {\n    \t\tprecision = precision;\n    \t} else {\n    \t\tprecision = 2;\n    \t}\n\n      thousands = thousands || ',';\n      decimal = decimal || '.';\n\n\n      if (isNaN(number) || number == null) {\n        return 0;\n      }\n\n      number = (number / 100.0).toFixed(precision);\n\n      var parts = number.split('.');\n      var dollarsAmount = parts[0].replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, '$1' + thousands);\n      var centsAmount = parts[1] ? (decimal + parts[1]) : '';\n\n      return dollarsAmount + centsAmount;\n    }\n\n    switch (formatString.match(placeholderRegex)[1]) {\n      case 'amount':\n        value = formatWithDelimiters(cents, 2);\n        break;\n      case 'amount_no_decimals':\n        value = formatWithDelimiters(cents, 0);\n        break;\n      case 'amount_with_comma_separator':\n        value = formatWithDelimiters(cents, 2, '.', ',');\n        break;\n      case 'amount_no_decimals_with_comma_separator':\n        value = formatWithDelimiters(cents, 0, '.', ',');\n        break;\n      case 'amount_no_decimals_with_space_separator':\n        value = formatWithDelimiters(cents, 0, ' ');\n        break;\n    }\n\n    return formatString.replace(placeholderRegex, value);\n  }\n\n  return {\n    formatMoney: formatMoney\n  }\n})();\n\n// ---->> Store local pickup availability <<\n\ntheme.StoreAvailability = (function() {\n  var selectors = {\n    storeAvailabilityModalOpen: '[data-store-availability-modal-open]',\n    storeAvailabilityModalProductTitle:\n      '[data-store-availability-modal-product-title]',\n    storeAvailabilityUnitSystem: '[data-unit-system]',\n    storeAvailabilityLocationDistance: '[data-distance]',\n    storeAvailabilityDistanceUnit: '[data-distance-unit]'\n  };\n\n  var classes = {\n    hidden: 'hide'\n  };\n\n  function StoreAvailability(container) {\n    this.container = container;\n    this.body = document.querySelector('body');\n  }\n\n  StoreAvailability.prototype = Object.assign({}, StoreAvailability.prototype, {\n    updateContent: function(variantId, productTitle) {\n      var options = {\n        maximumAge: 3600000, // 1 hour\n        timeout: 5000\n      };\n      var self = this;\n      this._fetchStoreAvailabilities(variantId, productTitle);\n    },\n\n    clearContent: function() {\n      this.container.innerHTML = '';\n      if ( document.getElementById('StoreAvailabilityModal') ) {\n        document.getElementById('StoreAvailabilityModal').remove();\n      }\n    },\n\n    _useGeolocation: function(position, variantId, productTitle) {\n      var coordinates = position.coords;\n      var latitude = coordinates.latitude;\n      var longitude = coordinates.longitude;\n      if (window.cookiesEnabled()) {\n        var latitudeFromCookie = window.getCookie('latitude');\n        var longitudeFromCookie = window.getCookie('longitude');\n        if (\n          latitudeFromCookie &&\n          longitudeFromCookie &&\n          parseFloat(latitudeFromCookie) === latitude &&\n          parseFloat(longitudeFromCookie) === longitude\n        ) {\n          this._fetchStoreAvailabilities(\n            variantId,\n            productTitle,\n            latitude,\n            longitude\n          );\n        } else {\n          var oneHour = 1 / 24;\n          window.setCookie('latitude', latitude, oneHour);\n          window.setCookie('longitude', longitude, oneHour);\n          this._setBuyerLocation(latitude, longitude, variantId, productTitle);\n        }\n      } else {\n        this._fetchStoreAvailabilities(variantId, productTitle);\n      }\n    },\n\n    _setBuyerLocation: function(latitude, longitude, variantId, productTitle) {\n      var self = this;\n      fetch('/localization.json', {\n        method: 'PUT',\n        headers: {\n          'Content-Type': 'application/json'\n        },\n        body: JSON.stringify({ latitude: latitude, longitude: longitude })\n      }).then(function() {\n        self._fetchStoreAvailabilities(\n          variantId,\n          productTitle,\n          latitude,\n          longitude\n        );\n      });\n    },\n\n    _fetchStoreAvailabilities: function(\n      variantId,\n      productTitle,\n      latitude,\n      longitude\n    ) {\n      var variantSectionUrl =\n         this.container.dataset.baseUrl +\n          '/variants/' +\n          variantId +\n          '/?section_id=store-availability';\n      this.clearContent();\n      var self = this;\n      fetch(variantSectionUrl)\n        .then(function(response) {\n          return response.text();\n        })\n        .then(function(storeAvailabilityHTML) {\n          self.clearContent();\n          if (storeAvailabilityHTML.trim() === '') {\n            return;\n          }\n\n          var storeAvailabilityDOM = new DOMParser().parseFromString(storeAvailabilityHTML, 'text/html');\n\n          if ( storeAvailabilityDOM.getElementById('StoreAvailabilityModal') ) {\n            self.body.appendChild(storeAvailabilityDOM.getElementById('StoreAvailabilityModal'));\n          }\n          self.container.appendChild(storeAvailabilityDOM.getElementById('StoreAvailability'));\n\n          var storeAvailabilityModalOpen = self.container.querySelector(\n            selectors.storeAvailabilityModalOpen\n          );\n          // Only create modal if open modal element exists\n          if (!storeAvailabilityModalOpen) {\n            return;\n          } else {\n\n            var StoreAvailabilityModal = document.getElementById('StoreAvailabilityModal');\n            storeAvailabilityModalOpen.addEventListener('click', function(e){\n              e.preventDefault();\n              if ( ! StoreAvailabilityModal.classList.contains('opened') ) {\n                StoreAvailabilityModal.classList.add('opened');\n                document.querySelector('.locals-overlay-background').classList.add('show');\n              }\n            });\n\n            StoreAvailabilityModal.querySelector('.localization__filters-close').addEventListener('click', function(e){\n              if ( StoreAvailabilityModal.classList.contains('opened') ) {\n                StoreAvailabilityModal.classList.remove('opened');\n                document.querySelector('.locals-overlay-background').classList.remove('show');\n              }\n            });\n            document.querySelector('.locals-overlay-background').addEventListener('click', function(e){if ( StoreAvailabilityModal.classList.contains('opened') ) {\n                StoreAvailabilityModal.classList.remove('opened');\n                document.querySelector('.locals-overlay-background').classList.remove('show');\n              }\n            });\n\n          }\n\n          self._updateProductTitle(productTitle);\n          if (latitude && longitude) {\n            self._updateLocationDistances(latitude, longitude);\n          } else {\n            self._hideDistanceUnits();\n          }\n        });\n    },\n\n    _updateProductTitle: function(productTitle) {\n      var storeAvailabilityModalProductTitle = this.body.querySelector(\n        selectors.storeAvailabilityModalProductTitle\n      );\n      storeAvailabilityModalProductTitle.textContent = productTitle;\n    },\n\n    // Haversine Distance\n    // The haversine formula is an equation giving great-circle distances between\n    // two points on a sphere from their longitudes and latitudes\n    _calculateDistance: function(\n      latitude1,\n      longitude1,\n      latitude2,\n      longitude2,\n      unitSystem\n    ) {\n      var dtor = Math.PI / 180;\n      var radius = unitSystem === 'metric' ? 6378.14 : 3959;\n\n      var rlat1 = latitude1 * dtor;\n      var rlong1 = longitude1 * dtor;\n      var rlat2 = latitude2 * dtor;\n      var rlong2 = longitude2 * dtor;\n\n      var dlon = rlong1 - rlong2;\n      var dlat = rlat1 - rlat2;\n\n      var a =\n        Math.pow(Math.sin(dlat / 2), 2) +\n        Math.cos(rlat1) * Math.cos(rlat2) * Math.pow(Math.sin(dlon / 2), 2);\n      var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\n      return radius * c;\n    },\n\n    _updateLocationDistances: function(latitude, longitude) {\n      var countryCode = document.querySelector(\n        selectors.storeAvailabilityUnitSystem\n      );\n      var unitSystem = countryCode.dataset.unitSystem;\n      var allDistances = document.querySelectorAll(\n        selectors.storeAvailabilityLocationDistance\n      );\n      var allDistancesArray = Array.from(allDistances);\n      var self = this;\n      allDistancesArray.forEach(function(locationDistance) {\n        var distance = self\n          ._calculateDistance(\n            latitude,\n            longitude,\n            parseFloat(locationDistance.dataset.latitude),\n            parseFloat(locationDistance.dataset.longitude),\n            unitSystem\n          )\n          .toFixed(1);\n        locationDistance.innerHTML = distance;\n      });\n    },\n\n    _hideDistanceUnits: function() {\n      var distanceUnits = document.querySelectorAll(\n        selectors.storeAvailabilityDistanceUnit\n      );\n\n      if (!distanceUnits) {\n        return;\n      }\n\n      var distanceUnitsArray = Array.from(distanceUnits);\n      distanceUnitsArray.forEach(function(distanceUnit) {\n        distanceUnit.classList.add(classes.hidden);\n      });\n    }\n  });\n\n  return StoreAvailability;\n})();\n\n/* ---- \n\tProduct \n\t---- */\n\nKING.Product = {\n\n\t$product: null,\n\t$productText: null,\n\n\t$productGallery: null,\n\t$productGalleryItem: null,\n\tproductGalleryNavigation: null,\n\t$productGalleryNavigationItem: null,\n\n\t$productCarousel: null,\n\t$productCarouselImgs: null,\n\tproductFlkty: null,\n\n\tstoreAvailabilityContainer: null,\n\tstoreAvailability: null,\n\n  SCROLL_ProductGallery: null,\n\n\tmount: function( $productParent ) {\n\n\t\t$product = $productParent.find('.product');\n\n\t\t// Truncated description\n\n\t\tif ( $product.find('.product__description').hasClass('truncated') ) {\n\n\t\tsetTimeout((function($product){\n\n\t\t\tvar $productDescription = $product.find('.product__description')\n\t\t\t\t\t$productDescriptionInner = $productDescription.children('div'),\n\t\t\t\t\t$productDescriptionTrigger = null;\n\n\t\t\t\tif ( $productDescriptionInner.height() - 10 >  $productDescription.height() ) {\n\n\t\t\t\t\t$productDescription.after('<a class=\"truncated__trigger\">' + window.products_page_more_description_label + '</a>');\n\t\t\t\t\t$productDescriptionTrigger = $product.find('.truncated__trigger');\n\n\t\t\t\t\t$productDescriptionTrigger.on('click', (function(e){\n\n\t\t\t\t\t\te.preventDefault();\n\n\t\t\t\t\t\tif ( ! $productDescription.hasClass('truncated--show') ) {\n\t\t\t\t\t\t\t$productDescription.addClass('truncated--show');\n\t\t\t\t\t\t\t$productDescription.css('maxHeight', $productDescriptionInner.height());\n\t    \t\t\t\t$productDescriptionTrigger.text(window.products_page_less_description_label);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t$productDescription.removeClass('truncated--show');\n\t\t\t\t\t\t\t$productDescription.attr('style', '');\n\t    \t\t\t\t$productDescriptionTrigger.text(window.products_page_more_description_label);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}).bind(this));\n\n\t\t\t\t} else {\n\t\t\t\t\t$productDescription.removeClass('truncated');\n\t\t\t\t}\n\n\t\t\t}).bind(this, $product), 100);\n\n    }\n\n    // Quantity buttons\n\n    if ( $product.find('.product__quantity').length > 0 ) {\n\n\t\t\tvar $productQty = $product.find('.quantity__selector');\n\t\t\tif ( parseInt($productQty.val()) - 1 < parseInt($productQty.attr('min')) ) {\n\t\t\t\t$product.find('.quantity__minus').addClass('disabled');\n\t\t\t}\n\t\t\tif ( parseInt($productQty.val()) + 1 > parseInt($productQty.attr('max')) ) {\n\t\t\t\t$product.find('.quantity__plus').addClass('disabled');\n\t\t\t}\n\n\t\t\t$product.find('.quantity__minus').on('click', (function($productQty, $productQtyPlus, e){\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopImmediatePropagation();\n\t\t\t\tif ( ! $(e.currentTarget).hasClass('disabled') ) {\n\t\t\t\t\tvar currentQty = parseInt($productQty.val());\n\t\t\t\t\tif ( currentQty - 1 >= parseInt( $productQty.attr('min') ) ) {\n\t\t\t\t\t\t$productQty.val(currentQty - 1);\n\t\t\t\t\t\t$productQtyPlus.removeClass('disabled');\n\t\t\t\t\t} \n\t\t\t\t\tif ( currentQty - 1 <= parseInt( $productQty.attr('min') ) ) {\n\t\t\t\t\t\t$(e.currentTarget).addClass('disabled');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}).bind(this, $productQty, $product.find('.quantity__plus')));\n\n\t\t\t$product.find('.quantity__plus').on('click', (function($productQty, $productQtyMinus, e){\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopImmediatePropagation();\n\t\t\t\tif ( ! $(e.currentTarget).hasClass('disabled') ) {\n\t\t\t\t\tvar currentQty = parseInt($productQty.val());\n\t\t\t\t\tif ( currentQty + 1 <= parseInt( $productQty.attr('max') ) ) {\n\t\t\t\t\t\t$productQty.val(currentQty + 1);\n\t\t\t\t\t\t$productQtyMinus.removeClass('disabled');\n\t\t\t\t\t}\n\t\t\t\t\tif ( currentQty + 1 >= parseInt( $productQty.attr('max') ) ) {\n\t\t\t\t\t\t$(e.currentTarget).addClass('disabled');\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}).bind(this, $productQty, $product.find('.quantity__minus')));\n\n\t\t}\n\n\n\t\t// Store availability\n\n\t\tthis.storeAvailabilityContainer = $product.find('[data-store-availability-container]')[0];\n\t\tif ( this.storeAvailabilityContainer ) {\n\t\t\tthis.storeAvailability = new theme.StoreAvailability(this.storeAvailabilityContainer);\n\t\t}\n\n\t\t// Init product form\n\n\t\twindow.cartFormAjax();\n\n\t\tvar productIsDisabled = false;\n\t\tif ( $product.data('settings-hv') && $product.data('availability') ) {\n\t\t\tthis._advancedOptionsSelector($product, JSON.parse($product.find('.product-json')[0].innerHTML));\n\t\t} else if ( $product.data('settings-hv') && ! $product.data('availability') ) {\n\t\t\tproductIsDisabled = true;\n\t\t} \t\t\t\t\n\n\t\tif ( ! $product.hasClass('onboarding--true' ) ) {\n\t\t\tthis.initProductForm($product, productIsDisabled);\n\t\t}\n\n\t\tif ( $product.find('.product__form').length > 0 && $product.find('.product__form').data('type') == 'overlay' ) {\n\n    \tvar $form = $product.find('.product__form form'),\n\t\t\t  \t$submitSymbol = $product.find('.add-to-cart__symbol'),\n\t\t\t  \t$submitButton = $product.find('.product__add-to-cart'),\n\t\t\t  \t$cartCount = $('.sidebar__cart-handle .count'),\n\t\t\t  \t$cartTitle = $('.cart__title'),\n\t\t\t  \t$cartQty = $product.find('.quantity__selector');\n\n\n  \t\t$submitButton.on('click', function(e){\n\n  \t\t\te.preventDefault();\n\n  \t\t\tvar oldText = $submitSymbol.html();\n\t  \t\t$submitSymbol.html('<span class=\"preloader\" />');\n\t  \t\t$submitButton.addClass('working');\n\n\t  \t\tvar itemName = $product.find('.product__title').text(),\n\t  \t\t\t\titemPrice = $product.find('.product__price--original').attr('data-price'),\n\t  \t\t\t\titemCurrency = Shopify.currency.active,\n\t  \t\t\t\titemId = $product.data('id');\n\n        fetch(window.cart_add_url + '.js', {\n          body: window.serialize($form[0]),\n          method: 'POST',\n          credentials: 'same-origin',\n          headers: {\n            'Content-Type': 'application/x-www-form-urlencoded',\n            'X-Requested-With': 'XMLHttpRequest'\n          }\n        }).then(function (response) {\n\n          if ( response.ok ) {\n            fetch(window.cart_url, {\n              credentials: 'same-origin',\n              method: 'GET'\n            }).then(function (response) {\n\n              response.text().then(function(html) {\n                \n                // google pixel\n\n                if ( typeof ga !== 'undefined' ) {\n                  ga('ec:addProduct', {\n                    'id': itemId,\n                    'name': itemName,\n                    'price': parseFloat(itemPrice),\n                    'quantity': $cartQty.length > 0 ? parseInt($cartQty.val()) : 1\n                  });\n                  ga('ec:setAction', 'add');\n                  ga('send', 'event', 'UX', 'click', 'add to cart');     \n                }\n\n                // totals update\n                $('#cart .cart__items').html($(html).find('#cart .cart__items')[0].innerHTML);\n                $('#CartDetails').html($(html).find('#CartDetails').html());\n\n                if ( $('.cart__form').hasClass('cart--empty') ) {\n                  $('.cart__form').removeClass('cart--empty');\n                }\n\n                // button animation\n\n                setTimeout(function(){\n                  $submitButton.addClass('done');\n                  $submitSymbol.html(oldText);\n                  setTimeout(function(){\n                    $submitButton.addClass('clear');\n                    setTimeout(function(){\n                      $submitButton.removeClass('working').removeClass('done');\n                      setTimeout(function(){\n                        $submitButton.removeClass('clear');\n                      }, 1000);\n                    }, 10);\n                  }, 500);\n                }, 1000);\n\n                // count changing\n\n                if ( $cartQty.length > 0 ) {\n\n                  var qty = parseInt($cartQty.val());\n                  if ( qty == 1 ) {\n                    $cartTitle.html($cartTitle.data('added-singular').replace(/{{ count }}|count|{{count}}/g, qty));\n                  } else {\n                    $cartTitle.html($cartTitle.data('added-plural').replace(/{{ count }}|count|{{count}}/g, qty));\n                  }\n\n                  $cartCount.text(parseInt($cartCount.text()) + parseInt($cartQty.val()));\n\n                } else {\n\n                  $cartCount.text(parseInt($cartCount.text()) + 1);\n                  $cartTitle.html($cartTitle.data('added-singular').replace(/{{ count }}|count|{{count}}/, 1));\n\n                }\n\n                // open cart sidebar\n                \n                $('.sidebar__cart-handle').trigger('click');\n                window.cartFormAjax();\n\n              });\n              \n            });\n\n          } else {\n\n            response.json().then(function(data){\n              alert(data.description);\n              setTimeout(function(){\n                $submitButton.addClass('done');\n                $submitSymbol.html('');\n                setTimeout(function(){\n                  $submitButton.addClass('clear');\n                  setTimeout(function(){\n                    $submitSymbol.html(oldText);\n                    $submitButton.removeClass('working').removeClass('done');\n                    setTimeout(function(){\n                      $submitButton.removeClass('clear');\n                    }, 1000);\n                  }, 10);\n                }, 500);\n              }, 100);\n            });\n\n          }\n          \n          \n        });\n\n  \t\t});\n\n\n\t  }\n\n\t  // Product gallery\n\n  \tvar _this = {\n      optionsMap: {}\n    };\n\n\t\t_this.$productGallery = $product.find('.product__gallery');\n\t\t_this.$productGalleryItem = $product.find('.product-gallery__item');\n\t\t_this.$productCarousel = _this.$productGallery.children('.product-gallery');\n\n\t\t_this.$productGalleryNavigation = $product.find('.product-gallery__thumbnails');\n\t\t_this.$productGalleryNavigationItem = $product.find('.product-gallery__thumbnails .thumbnail');\n\t\t_this.$productGalleryNavigationItem.eq( $product.data('KingProductImageIndex') != undefined ? $product.data('KingProductImageIndex') : 0 ).addClass('active');\n\n    window.productData[$product.data('id')] = _this;\n\n\t\t// Resize all first\n\n\t  this._mountGalleryResizer(_this.$productCarousel, $product);\n\n\t\tvar $productThumbnails = $('.product-gallery__thumbnails .thumbnails-holder');\n\t\tvar gutter = _this.$productCarousel.hasClass('product-gallery--gutter') ? 25 : 0;\n\n\t\t$product.find('.product-gallery__thumbnails .thumbnail').on('click', function(){\n\n\t\t\t$product.find('.product-gallery__thumbnails .thumbnail.active').removeClass('active');\n\t\t\t$(this).addClass('active');\n\n\t\t\tif ( _this.$productCarousel.hasClass('flickity-enabled') ) {\n\n\t\t\t\t_this.productFlkty.select($(this).index());\n\t\t\t\tif ( _this.$productCarousel.hasClass('product-gallery--thumbnails') ) {\n\t\t\t\t\t$productThumbnails[0].scrollLeft = Math.max( $(this).index() - 2, 0 ) * $(this).width();\n\t\t\t\t}\n\n\t\t\t} else {\n\n        window.animateScrollTop(_this.$productGalleryItem.eq($(this).index()).offset().top - gutter);\n\n\t\t\t\tKING.ProductMedia._triggerAutoPlayOFF(_this.$productCarousel);\n\t\t\t\tKING.ProductMedia._triggerAutoPlayON(_this.$productGalleryItem.eq($(this).index()));\n\n\t\t\t\tif ( _this.$productCarousel.hasClass('product-gallery--thumbnails') ) {\n\t\t\t\t\t$productThumbnails.scrollTop = Math.max( $(this).index() - 1, 0 ) * $(this).height();\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}).on('keypress', function(e){\n\t\t\tif ( e.which == 13 ) {\n\t\t\t\t$(this).trigger('click');\n\t\t\t\t_this.$productCarousel.find('.product-gallery__item.is-selected')[0].focus();\n\t\t\t}\n\t\t});\n\n\t\tif ( _this.$productCarousel.hasClass('product-gallery--scroll') ) {\n\n      this.SCROLL_ProductGallery = (function(_this){\n\n        if ( ! _this.$productCarousel.hasClass('flickity-enabled') && $(window).width() > 1023 ) {\n\n          _this.$productGalleryItem.each((function(key, elm){\n\n            if ( $(window).scrollTop() + $(window).height() > $(elm).offset().top + $(window).height() / 2 && ! $(elm).hasClass('active') ) {\n\n              $(elm).addClass('active');\n              _this.$productGalleryNavigationItem.removeClass('active');\n              _this.$productGalleryNavigationItem.eq($(elm).index()).addClass('active');\n\n            } else if ( $(window).scrollTop() + $(window).height() < $(elm).offset().top + $(window).height() / 2 && $(elm).hasClass('active') ) {\n\n              $(elm).removeClass('active');\n              _this.$productGalleryNavigationItem.removeClass('active');\n              _this.$productGalleryNavigationItem.eq($(elm).index()-1).addClass('active');\n\n            }\n\n            if ( $(window).scrollTop() + $(window).height() > _this.$productGallery.height() && ! _this.$productGalleryNavigation.hasClass('scroll') ) {\n              _this.$productGalleryNavigation.addClass('scroll');\n            } else if ( $(window).scrollTop() + $(window).height() < _this.$productGallery.height() && _this.$productGalleryNavigation.hasClass('scroll') ) {\n              _this.$productGalleryNavigation.removeClass('scroll');\n            }\n\n          }).bind(_this));\n\n        }\n\n      }).bind(this, _this);\n      window.addEventListener('scroll', this.SCROLL_ProductGallery, {passive:true});\n      this.SCROLL_ProductGallery.call();\n\n\t\t}\n\n\t\t// init sliding gallery (always, because it turns into this at responsive)\n\n\t\tif ( parseInt(_this.$productCarousel.data('size')) > 1 ) {\n\n\t\t\t_this.productFlkty = new Flickity(_this.$productCarousel[0], {\n        cellSelector: '.product-gallery__item:not(.remove-from-flick)',\n        initialIndex: $product.data('KingProductImageIndex') != undefined ? $product.data('KingProductImageIndex') : 0,\n        wrapAround: false,\n        prevNextButtons: _this.$productCarousel.hasClass('product-gallery--dots') ? true : false,\n        arrowShape: 'M66.3964 39L63.7456 41.8947L69.8047 48.0702H23V51.9298H69.8047L63.7456 58.2982L66.3964 61L77 50L66.3964 39Z',\n        pageDots: false,\n        cellAlign: 'left',\n        accessibility: false,\n        setGallerySize: false,\n        watchCSS: _this.$productCarousel.hasClass('product-gallery--scroll') ? true : false,\n        resize: true,\n        on: {\n          ready: function(){\n            if ( _this.$productCarousel.hasClass('flickity-enabled') ) {\n              if ( _this.$productCarousel.hasClass('product-gallery--thumbnails') ) {\n                var selectedThumbnail = $product.data('KingProductImageIndex') != undefined ? $product.data('KingProductImageIndex') : 0;\n                $productThumbnails.scrollLeft = Math.max( selectedThumbnail - 2, 0 ) * 58;\n              }\n            }\n          }\n        }\n      });\n\t\t\t_this.productFlkty.resize();\n\n\t\t\tvar $cells = _this.$productCarousel.find('.product-gallery__item');\n\n\t\t\t// scroll animation\n\t\t\t_this.productFlkty.on('scroll', function(event, progress) {\n\n\t\t\t\tif ( $(window).width() < 768 || ( $product.hasClass('featured-product' ) && $(window).width() > 948 ) ) {\n\n\t\t\t\t  _this.productFlkty.slides.forEach( function( slide, i ) {\n\n\t\t\t\t    var img = _this.$productGalleryItem.eq(i).children('*').eq(0);\n\t\t\t\t    var x = ( slide.target + _this.productFlkty.x ) * -1/3;\n\t\t\t    \timg.css('transform', 'translateX( ' + x  + 'px)'); \n\n\t\t\t    });\n\n\t\t\t  } else {\n\n\t\t\t\t\t$cells.removeClass('before-selected after-selected');\n\n\t\t\t\t\tvar index = _this.productFlkty.selectedIndex;\n\n\t\t\t\t\t$cells.each(function(){\n\t\t\t\t\t\tif ( $(this).index() < index ) {\n\t\t\t\t\t\t\t$(this).addClass('before-selected');\n\t\t\t\t\t\t} else if ( $(this).index() > index ) {\n\t\t\t\t\t\t\t$(this).addClass('after-selected');\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t  }\n\n\t\t\t});\n\n\t\t\t// change navigation items when slide change\n\t\t\tvar $productThumbnails = $product.find('.product-gallery__thumbnails .thumbnails-holder'),\n\t\t\t\t\tproductThumbnailWidth = _this.$productGalleryNavigationItem.width();\n\n\t\t\t_this.productFlkty.on('change', function(i) {\n\t\t\t\t_this.$productGalleryNavigation.find('.active').removeClass('active');\n\t\t\t\t_this.$productGalleryNavigationItem.eq(i).addClass('active');\n\t\t\t\tif ( _this.$productCarousel.hasClass('product-gallery--thumbnails') ) {\n\t\t\t\t\t$productThumbnails.scrollLeft = Math.max( i - 2, 0 ) * productThumbnailWidth;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// add an extra set of arrows\n\t\t\tif ( _this.$productCarousel.hasClass('product-gallery--dots') ) {\n\n\t\t\t\t_this.$productGalleryNavigation.prepend('<button class=\"flickity-button flickity-prev-next-button previous\" type=\"button\" disabled=\"\" aria-label=\"Previous\"><svg class=\"flickity-button-icon\" viewBox=\"0 0 100 100\"><path d=\"M66.3964 39L63.7456 41.8947L69.8047 48.0702H23V51.9298H69.8047L63.7456 58.2982L66.3964 61L77 50L66.3964 39Z\" class=\"arrow\"></path></svg></button>');\n\t\t\t\t_this.$productGalleryNavigation.append('<button class=\"flickity-button flickity-prev-next-button next\" type=\"button\" aria-label=\"Next\"><svg class=\"flickity-button-icon\" viewBox=\"0 0 100 100\"><path d=\"M66.3964 39L63.7456 41.8947L69.8047 48.0702H23V51.9298H69.8047L63.7456 58.2982L66.3964 61L77 50L66.3964 39Z\" class=\"arrow\" transform=\"translate(100, 100) rotate(180) \"></path></svg></button>');\n\n\t\t\t\tvar $productGalleryNavigationPrevious = _this.$productGalleryNavigation.find('.flickity-button.previous'),\n\t\t\t\t\t\t$productGalleryNavigationNext = _this.$productGalleryNavigation.find('.flickity-button.next');\n\n\t\t\t\t$productGalleryNavigationPrevious.on('click', function(){\n\t\t\t\t\tif ( _this.$productCarousel.hasClass('flickity-enabled') ) {\n\t\t\t\t\t\t_this.productFlkty.select(Math.max(_this.productFlkty.selectedIndex - 1, 0));\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t$productGalleryNavigationNext.on('click', function(){\n\t\t\t\t\tif ( _this.$productCarousel.hasClass('flickity-enabled') ) {\n\t\t\t\t\t\t_this.productFlkty.select(Math.min(_this.productFlkty.selectedIndex + 1, _this.productFlkty.slides.length));\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t_this.productFlkty.on('change', function(i) {\n\t\t\t\t\t$productGalleryNavigationPrevious.prop('disabled', false);\n\t\t\t\t\t$productGalleryNavigationNext.prop('disabled', false);\n\t\t\t\t\tif ( i == 0 ) {\n\t\t\t\t\t\t$productGalleryNavigationPrevious.prop('disabled', true);\n\t\t\t\t\t} else if ( i == _this.productFlkty.slides.length - 1 ) {\n\t\t\t\t\t\t$productGalleryNavigationNext.prop('disabled', true);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t}\n\n\t\t}\n\n\t\t// a11y helper\n\n\t\tif ( parseInt(_this.$productCarousel.data('size')) > 1 ) {\n\t\t\t_this.$productGalleryItem.on('focus, focusin', function(){\n\t\t\t\tif ( ! $(this).hasClass('is-selected') ) {\n\t\t\t\t\t_this.$productCarousel.find('.flickity-viewport').scrollLeft = 0;\n\t\t\t\t\t_this.productFlkty.select($(this).index());\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t// Product Zoom\n\n\t\tif ( $('.product__image-zoom').length > 0 ) {\n\n\t\t\t$('body').append('<div id=\"zoom\"><img /><span class=\"zoom__exit\"><svg class=\"svg symbol symbol--zoom-out\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M10.2,19.2c-5,0-9-4-9-9s4-9,9-9s9,4,9,9S15.2,19.2,10.2,19.2z M10.2,3.2c-3.9,0-7,3.1-7,7s3.1,7,7,7s7-3.1,7-7 C17.2,6.4,14.1,3.2,10.2,3.2z\"/><path d=\"M15.637 17.078l1.414-1.414 5.657 5.657-1.414 1.414zM6.3 9.3h8v2h-8z\"/></svg></span><div class=\"zoom__overlay\"></div></div>');\n\n\t\t\t$('.product__image-zoom').on('click', (function(e){\n\n\t\t\t\t$('#zoom').addClass('opened');\n\n\t\t\t\tvar $image = $('#zoom img');\n\t\t\t\t$image.attr('src', $(e.currentTarget).data('image'));\n\n\t\t\t\tsetTimeout((function(){\n\t\t\t\t\tif ( $image[0].naturalWidth > 0 ) {\n\t\t\t\t\t\t\tthis._productZoomMount($image);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$image.on('load', (function(){\n\t\t\t\t\t\t\tthis._productZoomMount($image);\n\t\t\t\t\t\t}).bind(this))\n\t\t\t\t\t}\n\t\t\t\t}).bind(this), 200);\n\n\t\t\t}).bind(this));\n\n\t\t\t$('.zoom__exit').on('click', (function(e){\n\t\t\t\tthis._productZoomUnmount();\n\t\t\t}).bind(this));\n\n\t\t}\n\n\t\t// Other shortcodes\n\n\t\tif ( $('.toggles').length > 0 ) {\n\t\t\tKING.Shortcodes.Toggles.mount();\n\t\t}\n\n\t\t// Mobile hidden content fix (hack)\n\n\t\tif ( $(window).width() < 948 ) {\n\t\t\tsetTimeout(function(){\n\t\t\t\t$(window).trigger('scroll');\n\t\t\t}, 500);\n\t\t}\n\n\t},\n\n\t_mountGalleryResizer: function( $gallery, $product ) {\n \t\tif ( $gallery.hasClass('product-gallery--fit') && ( $gallery.hasClass('product-gallery--slider') || $(window).width() < 1024 ) ) {\n      $(window).on('resize.lazy-fit-height', function(){\n        $gallery.find('.lazy-image').each(function(){\n          var $parent = $(this).parent();\n          var gutter = \"image\"==$parent.attr(\"data-product-media-type\")||1024>$(window).width()?0:$gallery.hasClass(\"product-gallery--thumbnails\")?$gallery.hasClass(\"product-gallery--gutter\")?110:100:$gallery.hasClass(\"product-gallery--gutter\")?70:50;\n          $parent.css('width', ( $gallery.height() - gutter ) * $(this).data('ratio'));\n        });\n      }).trigger('resize.lazy-fit-height');\n      if ( $gallery.hasClass('flickity-enabled') ) {\n        window.productData[$product.data('id')].productFlkty.resize();\n      }\n    }\n\n\t},\n\n\t_productZoomMount: function( $image ) {\n\n\t\t$image.css({'left': 0, 'top': 0});\n\n\t\t$(window).on('mousemove.zoom', function(e) {\n\t\t\te.preventDefault();\n\t\t\twindow.clientX = e.clientX;\n\t\t\twindow.clientY = e.clientY;\n\t\t\tvar x = e.clientX * ( $(window).width() - $image.width() ) / $(window).width();\n\t\t\tvar y = e.clientY * ( $(window).height() - $image.height() ) / $(window).height();\n\t\t\t$image.css({'left': x, 'top': y});\n\t\t});\n\n\t\t$image.data('ratio', $image[0].naturalWidth / $image[0].naturalHeight);\n\n\t\t$(window).on('resize.zoom', function(){\t\n\n\t\t\tvar rf = $(window).width() > 768 ? 1 : 2;\n\n\t\t\tif ( $image.hasClass('portrait') ) {\n\t\t\t\t$image.css('width', $(window).width()*rf);\n\t\t\t\t$image.css('height', $(window).width()*rf / $image.data('ratio'));\n\t\t\t} else {\n\n\t\t\t\t$image.css('height', $(window).height()*rf);\n\t\t\t\t$image.css('width', $(window).height()*rf * $image.data('ratio'));\n\n\t\t\t\tif ( $image.width() < $(window).width() ) {\n\t\t\t\t\t$image.css('width', $(window).width()*rf);\n\t\t\t\t\t$image.css('height', $(window).width()*rf / $image.data('ratio'));\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tvar x = window.clientX * ( $(window).width() - $image.width() ) / $(window).width();\n\t\t\tvar y = window.clientY * ( $(window).height() - $image.height() ) / $(window).height();\n\n\t\t}).trigger('resize.zoom');\n\n\t\tsetTimeout(function(){\n\t\t\tif ( $('body').hasClass('touch') ) {\n\t\t\t\t$('#zoom').scrollTop = ( $(window).height() - $image.height() ) / -2;\n\t\t\t\t$('#zoom').scrollLeft = ( $(window).width() - $image.width() ) / -2;\n\t\t\t}\n\t\t\t$('#zoom').addClass('loaded');\n\t\t}, 50);\n\n\t}, \n\n\t_productZoomUnmount: function() {\n\n\t\t$('#zoom').removeClass('opened');\n\n\t\tsetTimeout(function(){\n\t\t\t$(window).off('resize.zoom');\n\t\t\t$(window).off('mousemove.zoom');\n\t\t\t$('#zoom img').attr('src', '').removeClass('portrait').removeClass('landscape');\n\t\t\t$('#zoom').removeClass('loaded');\n\t\t}, 300);\n\n\t},\n\n\tinitProductForm : function( $product, pdisabled ) {\n\n\t\tvar firstVariantEver = true;\n\n\t\tvar productSingleObject = JSON.parse($product.find('.product-json')[0].innerHTML),\n\t\t\t\tproductVariants = productSingleObject.variants;\n\n\t\t$product.find('form select.product__variant').on('change', (function(e){\n\t\t\tthis._initProductVariantChange(false, productSingleObject, $product);\n\t\t}).bind(this));\n\n\t\tthis._initProductVariantChange(true, productSingleObject, $product);\n\n\t\t$product.find('select.product__variant').each(function(){\n\t\t\twindow.styledSelectUpgraded($(this), false);\n\t\t});\n\n\t\t$product.find('.product__variant-holder').removeClass('hidden');\n\n\t\tif ( pdisabled ) {\n\t\t\t$product.find('.product__variant-holder').css('display', 'none');\n\t\t} \n\n\t},\n\n\t_getProductVariant : function( $product ) {\n\n\t\t/* ---- \n\t\t\tGet current variant\n\t\t\t---- */\n\n\t\tvar optionArray = [];\n\n\t\t$product.find('form select.product__variant').each(function(){\n\t\t\toptionArray.push($(this)[0].value);\n\t\t});\n\n\t\treturn optionArray;\n\n\t},\n\n\t_initProductVariantChange : function(firstTime, productSingleObject, $product) {\t\n\n\t\tvar variant = null,\n\t\t\toptions = this._getProductVariant( $product );\n      \n\t\tproductSingleObject.variants.forEach(function(el){\n      if ( el.options.equals(options) ) {\n        variant = el;\n      }\n\t\t});\n\n\t\tthis._productSelectCallback(variant, $product, productSingleObject);\n\t\tif ( ! firstTime && $product.find('#productSelect option').length > 1 && ! $('body').hasClass('template-index') ) {\n\t\t\tthis._updateProductVariantState(variant);\n\t\t}\n\n\t},\n\n\t_updateProductVariantState : function(variant) {\n\n\t   if (!history.pushState || !variant) {\n\t    return;\n\t  }\n\n\t  var newurl = window.location.protocol + '//' + window.location.host + window.location.pathname + '?variant=' + variant.id;\n\t  window.history.replaceState({path: newurl}, '', newurl);\n\n\t},\n\n\t_productSelectCallback : function(variant, $product, productSingleObject) {\n\n\t\tvar _po = window.productData[$product.data('id')];\n\n\t\tvar $addToCart = $product.find('.product__form'),\n\t\t\t\t$addToCartButton = $product.find('.product__add-to-cart'),\n\t      $productPrice = $product.find('.product__price--original'),\n\t      $comparePrice = $product.find('.product__price--compare'),\n\t      $quantityElements = $product.find('.quantity__selector'),\n\t      $quantityElementsHolder = $product.find('.product__quantity'),\n\t      $addToCartText = $product.find('.add-to-cart__text'),\n\t      $productCarousel = $product.find('.product__gallery .product-gallery'),\n\t      $productGalleryItem = $product.find('.product__gallery .product-gallery__item');\n\n\t\tif (variant) {\n\n\t\t\t// Set cart value id\n\n\t\t\t$product.find('#productSelect').find('option[value=\"' + variant.id + '\"]').prop('selected', true);\n\n\t\t\t// Swipe to variant slide\n\n\t\t\tif ( variant.featured_media != null ) {\n\n\t\t\t\tvar variantImg = $productCarousel.find('.product-gallery__item[data-media-id=\"' + variant.featured_media.id + '\"]');\n\n\t\t\t\tif ( variantImg.length > 0 ) {\n\n\t\t\t\t\tif ( $productCarousel.hasClass('product-gallery--slider') || ( $productCarousel.hasClass('product-gallery--scroll') && $(window).width() < 1024 ) ) {\n\t\t\t\t\t\tif ( variantImg.length > 0 ) {\n\t\t\t\t\t\t\tif ( _po != undefined && _po.productFlkty != undefined && variantImg.data('index') != _po.productFlkty.selectedElement ) {\n\t\t\t\t\t\t\t\t_po.productFlkty.select(variantImg.data('index'));\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t$product.data('KingProductImageIndex', variantImg.data('index'));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\t$product.data('KingProductImageIndex', variantImg.data('index'));\n\t\t\t\t\t\twindow.animateScrollTop(variantImg.offset().top);\n\t\t\t\t\t}\t\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// Display info about variants quantity\n\n\t\t\tvar $variantQuantity = $product.find('.variant-quantity');\n\t\t\t$variantQuantity.text('');\n\n\t\t\tvar DOMVariant = $product.find('#productSelect').find('option[value=\"' + variant.id + '\"]');\n\t\t\tif ( DOMVariant.attr('data-quantity') <= 0 ) {\n\t\t\t\tif ( DOMVariant.attr('data-inventory') == 'continue' ) {\n\t\t\t\t\t$variantQuantity.html(window.product_words_preorder);\n\t\t\t\t} else if ( DOMVariant.attr('data-inventory') == 'deny' ) {\n\t\t\t\t\t$variantQuantity.html(window.product_words_no_products);\n\t\t\t\t}\n\t\t\t} else if ( DOMVariant.attr('data-quantity') == '1' ) {\n\t\t\t\t$variantQuantity.html(window.product_words_one_product);\n\t\t\t} else if ( DOMVariant.attr('data-quantity') <= 5 ) {\n\t\t\t\t$variantQuantity.html(window.product_words_few_products.replace('{{ count }}', DOMVariant.attr('data-quantity')));\n\t\t\t} else if ( ! variant.available ) {\n\t\t\t\t$variantQuantity.html(window.product_words_no_products);\n\t\t\t}\n\n\t\t\t// Edit cart buttons based on stock \n\t\t\t\t\n\t\t\tif ( variant.available ) {\n\n\t\t\t\t$quantityElements.prop('max', 999);\n\t\t\t\t$addToCartButton.removeClass('disabled').prop('disabled', false);\n\t\t\t\t$addToCartText.text($addToCartText.attr('data-add-to-cart-text'));\n\t\t\t\t$quantityElements.show();\n\t\t\t\tif ( $quantityElementsHolder != null ) {\n\t\t\t\t\t$quantityElementsHolder.show();\n\t\t\t\t}\n\n\t\t\t} else {\n\t\t\t\t$addToCartButton.addClass('disabled').prop('disabled', true);\n\t\t\t\t$addToCartText.text(window.product_words_sold_out_variant);\n\t\t\t\t$quantityElements.hide();\n\t\t\t\tif ( $quantityElementsHolder != null ) {\n\t\t\t\t\t$quantityElementsHolder.hide();\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t// Update price\n\n\t\t\t$productPrice.html( theme.Currency.formatMoney(variant.price, window.shop_money_format) );\n\t\t\t$productPrice.attr( 'data-price', variant.price / 100 );\n\t\t\tif ( variant.compare_at_price > variant.price ) {\n\t\t\t\t$comparePrice.html(theme.Currency.formatMoney(variant.compare_at_price, window.shop_money_format)).show();\n\t\t\t} else {\n\t\t\t\t$comparePrice.hide();\n\t\t\t}\n\t\t\t\n\t\t\tif ( $product.find('.unit-price').length > 0 ) {\n\t\t\t\tif ( variant.unit_price_measurement ) {\n\t\t\t\t\t$product.find('.unit-price').html(theme.Currency.formatMoney(variant.unit_price, window.shop_money_format) + \" / \" + ( variant.unit_price_measurement.reference_value != 1 ? variant.unit_price_measurement.reference_value + \" \" : \"\" ) + variant.unit_price_measurement.reference_unit);\n\t\t\t\t} else {\n\t\t\t\t\t$product.find('.unit-price').empty();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Update sku\n\n\t\t\tif ( $product.find('.product__sku').length > 0 ) {\n\t\t\t\tif ( variant ) {\n\t\t\t\t\t$product.find('.product__sku').text(variant.sku);\n\t\t\t\t} else {\n\t\t\t\t\t$product.find('.product__sku').empty();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Update local pickup\n\n      if (this.storeAvailability) {\n        if ( variant.available === false ) {\n          this.storeAvailability.clearContent();\n        } else {\n          this.storeAvailability.updateContent(\n            variant.id,\n            $product.find('.product__title').text()\n          );\n          if ( $product.data('single-variant') ) {\n            $('body').attr('data-single-variant', '');\n          }\n        }\n      }\n\n\t\t} else {\n\n\t\t\t// Disable variant completely \n\n\t\t\t$addToCartButton.addClass('disabled').prop('disabled', true);\n\t\t\t$addToCartText.text(window.product_words_unavailable_variant);\n\t\t\t$quantityElements.hide();\n\t\t\tif ( $quantityElementsHolder != null ) {\n\t\t\t\t$quantityElementsHolder.hide();\n\t\t\t}\n\n\t\t}\n\n\t\tif ( $product.find('.quantity__selector').length > 0 ) {\n\n\t\t\tvar $productQty = $product.find('.quantity-selector');\n\t\t\t$product.find('.quantity__minus').removeClass('disabled');\n\t\t\t$product.find('.quantity__plus').removeClass('disabled');\n\n\t\t\tif ( parseInt($productQty.val()) - 1 < parseInt($productQty.attr('min')) ) {\n\t\t\t\t$product.find('.quantity__minus').addClass('disabled');\n\t\t\t}\n\t\t\tif ( parseInt($productQty.val()) + 1 > parseInt($productQty.attr('max')) ) {\n\t\t\t\t$product.find('.quantity__plus').addClass('disabled');\n\t\t\t}\n\n\t\t}\n\n\t},\n\n\t_advancedOptionsSelector: function($product, productJson) {\n\t  var forceMutation = false;\n\t  var $addToCartForm = $product.find('.product__form');\n\t  if (window.MutationObserver && $addToCartForm.length) {\n\t    if (typeof observer === 'object' && typeof observer.disconnect === 'function') {\n\t      observer.disconnect();\n\t    }\n\t    var config = { childList: true, subtree: true };\n\t    var observer = new MutationObserver(function() {    \n\t      Shopify.linkOptionSelectors(productJson, $product);\n\t      observer.disconnect();\n\t    });  \n\t    if ( forceMutation ) {\n\t      Shopify.linkOptionSelectors(productJson, $product);\n\t    }\n\t    observer.observe($addToCartForm[0], config);\n\t  }\n\t},\n\n\tunmount: function() {\n    window.removeEventListener('scroll', this.SCROLL_ProductGallery);\n\t\t$(window).off('resize.lazy-fit-height');\n\t}\n\n}\n\n// Mount in page\n\nif ( $('.mount-product-page').length > 0 ) {\n\t$('.mount-product-page').each(function(){\n\t\tKING.Product.mount($(this));\n\t\tKING.ProductMedia.mount($(this).find('.product'));\n\t\twindow.KingProductGalleryMobileHelpers($(this).find('.product'));\n\t});\n} \n\n// Mount portfolio page\n\nif ( $('.mount-project-page').length > 0 ) {\n\n  window.productData[$('.project').data('id')] = {\n    $productCarousel: $('<span data-video-looping=\"false\" />'),\n    $productGalleryItem: $('.product-gallery__item')\n  }\n\tKING.ProductMedia.mount($('.project'));\n}\n\n// Shopify events\n\n$(document).on('shopify:section:load', function(e){\n\n\tvar $section = $(e.target);\n\n\tsetTimeout(function(){\n\n \t\tif ( $section.hasClass('mount-product-page') ) {\n\t\t\tKING.Product.mount($section);\n\t  \tKING.Product._mountGalleryResizer($section.find('.product-gallery'), $section.find('.product'));\n\t\t\tKING.ProductMedia.mount($section.find('.product'));\n\t\t\twindow.KingProductGalleryMobileHelpers($section.find('.product'));\n \t\t} else if ( $section.hasClass('mount-project-page') ) {\n\t\t\t$('.project').data('po', {\n\t\t\t\t$productCarousel: $('<span data-video-looping=\"false\" />'),\n\t\t\t\t$productGalleryItem: $('.product-gallery__item')\n\t\t\t})\n\t\t\tKING.ProductMedia.mount($('.project'));\n \t\t}\n\n \t}, 100);\n\n}).on('shopify:section:unload', function(e){\n\n \t\tvar $section = $(e.target);\n\n\t\tif ( $section.hasClass('mount-product-page') ) {\n\t\t\tKING.Product.unmount();\n\t\t\tKING.ProductMedia.unmount($section.find('.product-gallery'));\n \t\t}\n\n});\n\n// quick hack\n\nif ( $('body').hasClass('template-product') ) {\n\tif ( $('#shopify-section-product-story').children().length <= 0 ) {\n\t\t$('#shopify-section-product-story').addClass('blank');\n\t}\n}\n\n// Init Product Review\n\nif ( $('#shopify-product-reviews').length > 0 ) {\n\n\tif ( $('#shopify-product-reviews').find('.spr-starrating').length > 0 ) {\n\t\t\n\t\tvar checkI = setInterval(function(){\n\n\t\t\tif ( $('.spr-reviews').children().length > 0 ) {\n\n\t\t\t\tclearInterval(checkI);\n\n\t\t\t  $('.product-page-reviews').css('display', 'block');\n\n\t\t\t  turnReviewsFormIntoPopup();\n\n        const reviewsFltky = new Flickity('.spr-reviews', {\n          cellSelector: '.spr-review, .spr-pagination',\n          cellAlign: 'left',\n          groupCells: true,\n          prevNextButtons: false,\n          pageDots: false,\n          adaptiveHeight: true,\n          on: {\n            ready: function(){\n              if ( $('.spr-reviews').hasClass('is-draggable') ) {\n                $('.spr-reviews').append('<div class=\"flickity-custom-nav\"><span class=\"prev\">' + window.symbol_arrow + '</span><span class=\"next\">' + window.symbol_arrow + '</span></div>');\n                $('.spr-reviews').find('.next').on('click', function(){\n                  reviewsFltky.next();\n                });\n                $('.spr-reviews').find('.prev').on('click', function(){\n                  reviewsFltky.previous();\n                });\n              }\n            }\n          }\n        });\n\n\t\t\t\t$('.spr-reviews').attr('data-no', $('.spr-review').length);\n\t\t\t\t\t\n\t\t\t\tvar ra = $('.spr-summary-starrating').find('.spr-icon-star').length,\n\t\t\t\t\t\trb = $('.spr-summary-starrating').find('.spr-icon-star-half-alt').length > 0 ? '5' : '0';\n\n\t\t\t\t$('.spr-summary-starrating').attr('data-rating', ra + '.' + rb);\n\n\t\t\t\treviewsFltky.on('change', function( index ) {\n\t\t\t\t  $('.spr-reviews').find('.is-selected').each(function(){\n\t\t\t\t  \tif ( $(this).hasClass('spr-pagination') && $(this).find('.spr-pagination-next').length > 0 ) {\n\n\t\t\t\t  \t\tvar $paginationObject = $(this),\n\t\t\t\t  \t\t\t\tpage = $(this).find('.spr-pagination-next a').data('page'),\n\t\t\t\t\t\t\t\t\tproduct_id = $(this).find('.spr-pagination-next a').data('product-id');\n\n                  // url (required), options (optional)\n                /*  console.log(SPR.api_url + '/reviews?page=' + page + '&product_id=' + product_id + '&shop=' + window.location.hostname);\n\n\n                  window.getJSONP(SPR.api_url + '/reviews?page=' + page + '&product_id=' + product_id + '&shop=' + window.location.hostname, function(data){\n\n                  });*/\n\n                JSONP({\n                  url: SPR.api_url + '/reviews',\n                  data: {\n                    page: page,\n                    product_id: product_id,\n                    shop: window.location.hostname\n                  },\n                  success: function(data){\n                    var $reviews = $(data.reviews);\n                    $paginationObject.remove();\n                    //reviewsFltky.reposition();\n                    reviewsFltky.append($reviews);\n                  }\n                });\n                  /*\n\n                  fetch(SPR.api_url + '/reviews?page=' + page + '&product_id=' + product_id + '&shop=' + window.location.hostname, {\n                      method: 'GET',\n                      referrerPolicy: 'strict-origin-when-cross-origin',\n                      cache: 'no-cache',\n                      headers: {\n                        'Content-Type': 'application/json'\n                      }\n                  }).then(function(response) {\n                    console.log(response);\n                    console.log(response.json);\n                  }).catch(function(err) {\n                      // Error :(\n                      console.log(err);\n                  });\n\n\t\t\t\t\t/*\t\t*/\n\n\t\t\t\t  \t}\n\t\t\t\t  })\n\t\t\t\t});\n\n\t\t\t}\n\n\t\t}, 30);\n\n\t} else {\n\n\t  $('.product-page-reviews').css('display', 'block');\n\n\t\tvar checkI = setInterval(function(){\n\t\t\tif ( $('.spr-form').length > 0 && ! $('.spr-form').hasClass('init') ) {\n\t\t\t\tclearInterval(checkI);\n\t\t\t\tturnReviewsFormIntoPopup();\n\t\t\t}\n\t\t}, 30);\n\n\t}\n\n}\n\nfunction turnReviewsFormIntoPopup() {\n\n\t$('.spr-form').addClass('init').attr('style', '').wrap('<div id=\"spr-form\" class=\"spr-form-holder\" />');\n\t$('.spr-form-holder').addClass('address-popup');\n  $('#spr-form').wrap('<div id=\"spr-form-modal\" />');\n  $('#spr-form').append('<div class=\"basicLightboxClose\">\u00D7</div>');\n  $('#spr-form-modal').addClass('hidden');\n\n  var modal = basicLightbox.create(document.querySelector('#spr-form-modal'));\n  $('.spr-summary-actions-newreview').attr('onclick', '').on('click', function(e){\n    e.preventDefault();\n    modal.show(function(){\n      $('#spr-form').find('.basicLightboxClose').on('click', function(){\n        modal.close();\n      });\n    });\n  });\n\n}\n\n\nKING.BlogPosts = {\n\n\tmount: function($blog) {\n\n\t\tif ( $blog.find('.blog--slider').length > 0 ) {\n\n\t  \tvar _this = {};\n\n\t\t\t_this.$slider = $blog.find('.blog--slider');\n\n\t\t\tthis._initSlider(_this.$slider);\n\n\t  \t$(window).on('resize.blog-slider', window.debounce((function(){\n\t  \t\tvar cellsWidth = 0;\n\t  \t\t_this.$slider.find('.blog-item').each(function(){\n\t  \t\t\tcellsWidth += $(this).outerWidth(true);\n\t  \t\t})\n\n\t  \t\tif ( cellsWidth > _this.$slider.width() && ! _this.$slider.hasClass('is-draggable') ) {\n\t  \t\t\tthis._initSlider(_this.$slider);\n\t  \t\t} else if ( cellsWidth <= _this.$slider.width() && _this.$slider.hasClass('is-draggable') ) {\n\t  \t\t\tthis._initSlider(_this.$slider);\n\t  \t\t}\n\n\t  \t}).bind(this), 300));\n\n\t\t}\n\n\t},\n\n\t_initSlider: function($slider) {\n\t\tsetTimeout(function(){\n\t\t\tnew Flickity($slider[0], {\n\t  \t\tcellSelector: '.blog-item',\n\t  \t\tcellAlign: 'left',\n\t  \t\tgroupCells: true,\n\t  \t\tprevNextButtons: false,\n\t  \t\tpageDots: true\n\t  \t});\n\t\t}, 1);\n\t}\n\n}\n\n// Mount in page\n\nif ( $('.mount-blog-posts').length > 0 ) {\n\t$('.mount-blog-posts').each(function(){\n\t\tKING.BlogPosts.mount($(this));;\n\t});\n}\n\n// Shopify events\n\n$(document).on('shopify:section:load', function(e){\n\n\tvar $section = $(e.target);\n\tif ( $section.hasClass('mount-blog-posts') ) {\n\t\tKING.BlogPosts.mount($section);\n\t}\n\n});\n\nKING.Gallery = {\n\n\tmount: function($gallery) {\n\n  \tvar _this = {};\n\n\t\t_this.$gallery = $gallery.find('.gallery__content');\n\t\t_this.$galleryParent = _this.$gallery.parent();\n\t\t_this.$galleryItems = _this.$gallery.find('.gallery__item');\n\n\t\tif ( _this.$galleryParent.hasClass('gallery--mobile-slider-true') ) {\n\t\t\tvar flkty = new Flickity(_this.$gallery[0], {\n\t  \t\tcellSelector: '.gallery__item',\n\t  \t\tprevNextButtons: false,\n\t  \t\tcellAlign: 'left',\n\t  \t\twrapAround: true,\n\t  \t\twatchCSS: true\n\t\t\t});\n\t  }\t\n\n\t  if ( _this.$gallery.attr('data-lightbox') == 'true' ) {\n\t  \t$gallery.find('.gallery__zoom').each(function(){\n\n\t  \t\tlet modal = basicLightbox.create('<img src=\"' + $(this).data('src') + '\" />');\n\t  \t\t$(this).on('click', function(e){\n\t  \t\t\te.preventDefault();\n\t  \t\t\tmodal.show();\n\t  \t\t})\n\n\t  \t});\n\t  }\n\n\t}\n\n}\n\n// Mount in page\n\nif ( $('.mount-gallery').length > 0 ) {\n\t$('.mount-gallery').each(function(){\n\t\tKING.Gallery.mount($(this).find('.gallery'));\n\t});\n}\n\n// Shopify events\n\n$(document).on('shopify:section:load', function(e){\n\n\tvar $section = $(e.target);\n\n\tif ( $section.hasClass('mount-gallery') ) {\n\t\tKING.Gallery.mount($section.find('.gallery'));\n\t}\n\n});\n// Shopify events\n\n$(document).on('shopify:section:load', function(e){\n\n\tvar $section = $(e.target);\n\n}).on('shopify:section:unload', function(e){\n\t\n\tvar $section = $(e.target);\n\n}).on('shopify:block:select', function(e){\n\n\tvar $block = $(e.target);\n\n}).on('shopify:block:deselect', function(e){\n\n\tvar $block = $(e.target);\n\n});\nKING.Slider = {\n\n\tSCROLL_SliderHelper: null,\n\tSliderList: {},\n\n\tmount: function($slider) {\n\n\t\tvar _this = {}\n\n\t\t_this.$slider = $slider.find('.slider');\n\t\t_this.$slides = $slider.find('.slide');\n\t\t_this.$images = _this.$slider.find('img');\n\t\t_this.$overlays = _this.$slider.find('.slide__overlay');\n\t\t_this.$texts = _this.$slider.find('.slide__text');\n\n\t\tif ( _this.$slider.hasClass('slider--scroll') ) {\n\n\t\t\t// Vertical slider\n\n\t\t\tvar previous = -1,\n\t\t\t\t\tcurrentOld = -1;\n\n\t\t\t// Add pagination\n\n\t\t\t_this.$slider.append('<div class=\"slider__dots\" />');\n\n\t\t\tfor (var i = 0; i < _this.$images.length; i++) {\n\t\t\t\t_this.$slider.find('.slider__dots').append('<span class=\"dot\" />');\n\t\t\t}\n\t\t\t_this.$sliderNavigation = _this.$slider.find('.slider__dots .dot');\n\t\t\t_this.$sliderNavigation.eq(0).addClass('is-selected');\n\n\t\t\t_this.$sliderNavigation.on('click', function(){\n\t\t\t\twindow.animateScrollTop(_this.$slides.eq($(this).index()).offset().top);\n\t\t\t});\n\n\t\t\t// Scroll effects\n\n\t\t\tthis.SCROLL_SliderHelper = (function(_this){\n\n\t\t\t\tvar sliderOffset = _this.$slider.offset().top,\n\t\t\t\t\t\tscrollTop = $(window).scrollTop(),\n\t\t\t\t\t\tscreenHeight = $(window).height();\n\n\t\t\t\tif ( scrollTop >= sliderOffset && scrollTop + screenHeight <= sliderOffset + _this.$slider.height() ) {\n\n\t\t\t\t\tfor (var i = 0; i < _this.$images.length; i++) {\n\n\t\t\t\t\t\t// animate each slide based on scrolling and it's offset\n\t\t\t\t\t\tvar transformValue = ( scrollTop - sliderOffset - ( screenHeight * i ) ) / 2;\n\t\t\t\t\t\tif ( Math.abs(transformValue) <= screenHeight / 2 ) {\n\t\t\t\t\t\t\tthis._scrollTransform(transformValue, _this.$images.eq(i), _this.$overlays.eq(i), _this.$texts.eq(i))\n\t\t\t\t\t\t} \n\n\t\t\t\t\t\tif ( scrollTop >= ( screenHeight * i ) + sliderOffset - ( screenHeight / 2 ) && ! _this.$sliderNavigation.eq(i).hasClass('is-selected') ) {\n\t\t\t\t\t\t\t_this.$sliderNavigation.removeClass('is-selected');\n\t\t\t\t\t\t\t_this.$sliderNavigation.eq(i).addClass('is-selected');\n\t\t\t\t\t\t} \n\n\t\t\t\t\t}\n\n\t\t\t\t} else if ( scrollTop < sliderOffset ) {\n\n\t\t\t\t\t// fix first slide\n\n\t\t\t\t\tvar transformValue = 0;\n\t\t\t\t\tthis._scrollTransform(0, _this.$images.eq(0), _this.$overlays.eq(0), _this.$texts.eq(0));\n\n\t\t\t\t} else if ( scrollTop + screenHeight > sliderOffset + _this.$slider.height() ) {\n\n\t\t\t\t\t// fix last slide\n\n\t\t\t\t\tvar transformValue = 0;\n\t\t\t\t\tthis._scrollTransform(0, _this.$images.eq(-1), _this.$overlays.eq(-1), _this.$texts.eq(-1));\n\n\t\t\t\t}\n\n\t\t\t\t// Toggle slider navigation\n\n\t\t\t\tif ( _this.$sliderNavigation.parent().hasClass('in-view') && ( scrollTop + screenHeight > sliderOffset + _this.$slider.height() || scrollTop < sliderOffset ) ) {\n\t\t\t\t\t_this.$sliderNavigation.parent().removeClass('in-view');\n\t\t\t\t\tif ( scrollTop < sliderOffset ) {\n\t\t\t\t\t\t_this.$sliderNavigation.parent().removeClass('in-bottom');\n\t\t\t\t\t} else if ( scrollTop + screenHeight > sliderOffset ) {\n\t\t\t\t\t\t_this.$sliderNavigation.parent().addClass('in-bottom');\n\t\t\t\t\t}\n\t\t\t\t} else if ( ! _this.$sliderNavigation.parent().hasClass('in-view') && ( scrollTop >= sliderOffset && scrollTop + screenHeight <= sliderOffset + _this.$slider.height() ) ) {\n\t\t\t\t\t_this.$sliderNavigation.parent().addClass('in-view');\n\t\t\t\t}\n\n\t\t\t}).bind(this, _this);\n\t\t\twindow.addEventListener('scroll', this.SCROLL_SliderHelper, {passive:true});\n\t\t\tthis.SCROLL_SliderHelper.call();\n\n\t\t}\n\n\t\t// Fix slider size (100vh) on mobile devices\n\n\t\t$(window).on('resize.slider-helper', function(){\n\t\t\tif ( $(window).width() < 948 ) {\n\t\t\t\t//_this.$slides.height(document.documentElement.clientHeight);\n\t\t\t\tif ( _this.$slider.hasClass('slider--mobile-js-height') && ( _this.$slider.hasClass('slider--horizontal') || _this.$slider.hasClass('slider--horizontal-mobile-true') ) ) {\n\t\t\t\t\t_this.$slider.height(document.documentElement.clientHeight - 120);\n\t\t\t\t}\n\t\t\t}\n\t\t}).trigger('resize.slider-helper');\n\n\t\tif ( _this.$slider.hasClass('slider--horizontal') || _this.$slider.hasClass('slider--horizontal-mobile-true') ) {\n\n\t\t\t// Horizontal slider (flickity powered) \n\n\t\t\t_this.flkty = new Flickity(_this.$slider[0], {\n\t  \t\tcellSelector: '.slide',\n\t  \t\tprevNextButtons: false,\n\t  \t\tcellAlign: 'left',\n\t  \t\twrapAround: false,\n\t  \t\tautoPlay: _this.$slider.data('autorotate'),\n\t  \t\twatchCSS: true\n\t  \t});\n\n\t  \tthis.SliderList[_this.$slider.attr('id')] = _this.flkty;\n\n\t  \t_this.$slider.data('flkty', _this.flkty);\n\n\t\t\t_this.flkty.on( 'scroll', function( e, progress ) {\n\n\t\t\t  _this.flkty.slides.forEach( function( slide, i ) {\n\n\t\t\t    var img = _this.$images[i];\n\t\t\t    if ( img ) {\n\t\t\t    \t\n\t\t\t\t    var x = ( slide.target + _this.flkty.x ) * -1/3;\n\t\t\t    \timg.style.transform = 'translateX( ' + x  + 'px)';\n\n\t\t\t\t    var text = _this.$texts[i];\n\t\t\t\t    var y = ( slide.target + _this.flkty.x ) / 8;\n\t\t\t    \ttext.style.transform = 'translateX( ' + y  + 'px)';\n\n\t\t\t\t    var overlay = _this.$overlays[i];\n\t\t\t\t    var z = ( ( slide.target + _this.flkty.x ) * -1/10 ) / 100;\n\t\t\t    \toverlay.style.opacity = z;\n\t\t\t    }\n\n\t\t    });\n\n\t\t\t});\n\t\t\t/* - not sure when did i comment this out --\n\t\t\t_this.flkty.on('settle', (function( index ) {\n\t\t\t\t_this.index = index;\n\t\t\t\t_this.$images.css('transform', 'none');\n\t\t\t\t_this.$texts.css('transform', 'none');\n\t\t\t\t_this.$overlays.css('opacity', '0');\n\t\t\t}).bind(this));*/\n\n\t\t}\n\n\t},\n\n\t_scrollTransform: function(transformValue, $image, $overlay, $text) {\n\t\tif ( $('body').hasClass('no-touch') ) {\n\t\t\t$image.css('transform', 'translate3d(0, ' + transformValue + 'px, 0)');\n\t\t\tif ( transformValue >= 0 ) {\n\t\t\t\t$overlay.css('opacity', transformValue / ( $(window).height() / 2 ) );\n\t\t\t}\n\t\t\t$text.css('transform', 'translate3d(0, ' + transformValue / 10 + 'px, 0)');\n\t\t}\n\t},\n\n\tunmount: function($slider) {\n\t\twindow.removeEventListener('scroll', this.SCROLL_SliderHelper);\n\t\t$(window).off('resize.slider-helper');\n\t}\n\n\n}\n\n\n// Mount in page\n\nif ( $('.mount-slider').length > 0 ) {\n\t$('.mount-slider').each(function(){\n\t\tKING.Slider.mount($(this));\n\t});\n}\n\n// Shopify events\n\n$(document).on('shopify:section:load', function(e){\n\n\tvar $section = $(e.target);\n\tif ( $section.hasClass('mount-slider') ) {\n\t\tKING.Slider.mount($section);\n\t}\n\n}).on('shopify:section:unload', function(e){\n\t\n\tvar $section = $(e.target);\n\tif ( $section.hasClass('mount-slider') ) {\n\t\tKING.Slider.unmount($section);\n\t}\n\n}).on('shopify:block:select', function(e){\n\n\tvar $block = $(e.target);\n\n\tif ( $block.parent().hasClass('flickity-slider') ) {\n\t\tKING.Slider.SliderList[$block[0].closest('.slider').id].select($block.index());\n\t}\n\t\n});\nKING.Testimonials = {\n\tmount: function($section) {\n\t\tKING.Shortcodes.ContentSlider.mount($section);\n\t}\n}\n\n// Mount in page\n\nif ( $('.mount-testimonials').length > 0 ) {\n\t$('.mount-testimonials').each(function(){\n\t\tKING.Testimonials.mount($(this));\n\t});\n}\n\n// Shopify events\n\n$(document).on('shopify:section:load', function(e){\n\n\tvar $section = $(e.target);\n\tif ( $section.hasClass('mount-testimonials') ) {\n\t\tKING.Testimonials.mount($section);\n\t}\n\n}).on('shopify:block:select', function(e){\n\n\tvar $block = $(e.target);\n\tif ( $block.hasClass('testimonial') && $block.closest('.testimonials__container').hasClass('flickity-enabled') ) {\n\t\t$block.closest('.flickity-enabled').data('flickity').select($block.index());\n\t}\n\n});\nvar canSrc = 'data:video/mp4;base64,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';\nvar canVideoPlaying = false;\nvar canVideo = document.createElement('video');\ncanVideo.setAttribute('playsinline', 'playsinline');\ncanVideo.setAttribute('muted', 'muted');\ncanVideo.setAttribute('autoplay', 'autoplay');\ncanVideo.setAttribute('loop', 'loop');\ncanVideo.setAttribute('controls', 'controls');\ncanVideo.setAttribute('width', 20);\ncanVideo.setAttribute('height', 20);\ncanVideo.onplay = function(){\n  canVideoPlaying = true;\n}\ncanVideo.setAttribute('src', canSrc);\ncanVideo.style.position = 'fixed';\ncanVideo.style.top = '-20px';\ncanVideo.style.left = '0px';\ncanVideo.style.zIndex = '997';\ndocument.querySelector('body').appendChild(canVideo);\n\nvar playPromise = canVideo.play();\nif ( playPromise !== undefined ) {\n  playPromise.then(function(){\n    autoPlayCallback(true);\n    canVideo.remove();\n  })\n  .catch(function(error){\n    if ( canVideoPlaying || error.toString().indexOf('interact with the document') > 0 ) {\n      autoPlayCallback(true);\n    } else {\n      autoPlayCallback(false);\n    }\n    canVideo.remove();\n  })\n}\n\nfunction autoPlayCallback(canAutoplay){\n  if ( canAutoplay ) {\n    $('.mount-video-background').each(function(){\n      loadVideoBackground($(this));\n    });\n  } else {\n     $('.video-text__background .video-text__image').css('display', 'block');\n  }\n}\n\nfunction loadVideoBackground($section){\n  var $video = $section.find('.video-text__background');\n  if ( $video.length > 0 ) {\n    $video.prepend('<video autoplay muted loop playsinline><source type=\"video/mp4\" src=\"' + $video.data('src') + '\"></video>');\n    $video.find('video')[0].play();\n    setTimeout(function(){\n      $video.find('video').css('opacity', 1);\n    }, 200);\n  }\n}\n\n// Shopify events\n\n$(document).on('shopify:section:load', function(e){\n   var $section = $(e.target);\n   if ( $section.hasClass('mount-video-background') ) {\n      loadVideoBackground($section);\n   }\n});\nKING.VideoPopup = {\n\n\tmount: function($videoPopup){\n\n\t\t$videoPopup.find('.video-popup__link').on('click', function(e){\n\n\t\t\te.preventDefault();\n\n\t\t\t$(this).append('<div class=\"video-popup__blackout\" />');\n\t\t\tsetTimeout((function(){\n\t\t\t\t$(this).find('.video-popup__blackout').css('opacity', 1);\n\t\t\t}).bind(this), 10);\n\n\t\t\tsetTimeout((function(){\n\t\t\t\tif ( $(this).data('video-source') == 'youtube' ) {\n\t\t\t\t\t$(this).append('<iframe class=\"video-popup__iframe\" src=\"https://youtube.com/embed/' + $(this).data('video-id') + '?autoplay=1&rel=0\" allow=\"autoplay; fullscreen\" allowfullscreen />');\n\t\t\t\t} else if ( $(this).data('video-source') == 'vimeo') { \n\t\t\t\t\t$(this).append('<iframe class=\"video-popup__iframe\" src=\"https://player.vimeo.com/video/' + $(this).data('video-id') + '?autoplay=1&rel=0\" allow=\"autoplay; fullscreen\" allowfullscreen />');\n\t\t\t\t}\n\t\t\t}).bind(this), 50);\n\n\t\t});\n\n\t}\n\n};\n\n// Mount in page\n\nif ( $('.mount-video-popup').length > 0 ) {\n\t$('.mount-video-popup').each(function(){\n\t\tKING.VideoPopup.mount($(this));\n\t});\n};\n\n// Shopify events\n\n$(document).on('shopify:section:load', function(e){\n\n\tvar $section = $(e.target);\n\tif ( $section.hasClass('mount-video-popup') ) {\n\t\tKING.VideoPopup.mount($section);\n\t}\n\n});\n// Shopify events\n\n$(document).on('shopify:section:load', function(e){\n\twindow.reorderSections();\n}).on('shopify:section:unload', function(e){\n\twindow.reorderSections();\n}).on('shopify:section:reorder', function(e){\n\twindow.reorderSections();\n});\n\n$(document).ready(function(){\n\n\tvar $body = $('body');\n\t\n\treframe(document.querySelectorAll('.rte iframe[src*=\"youtube\"], .rte iframe[src*=\"vimeo\"]'));\n\n\t// Input placeholder helpers\n\t\n\t$('input').each(function(){\n\t\t$(this).on('change', function(){\n\t\t\tif ( $(this).val() != '' ) {\n\t\t\t\t$(this).addClass('filled');\n\t\t\t} else {\n\t\t\t\t$(this).removeClass('filled');\n\t\t\t}\n\t\t})\n\t});\n\n\t// a11y tab helper\n\n\t$body.on('keyup', function(e) {\n\t    var code = e.keyCode || e.which;\n\t    if (code == '9') {\n\t    \t$body.addClass('tab-navigation');\n\t    }\n\t}).on('click', function(e){\n\t \tif ( $body.hasClass('tab-navigation') ) {\n\t \t\t$body.removeClass('tab-navigation');\n\t \t}\n\t});\n\n\t// newsletter has jump\n\tif ( window.location.search == '?customer_posted=true' ) {\n\t\tsetTimeout(function(){\n\t\t\t$('html').scrollTop($('#contact_form').offset().top - 250);\n\t\t}, 300);\n\t} else if ( window.location.pathname == '/challenge' ) {\n\t\tsetTimeout(function(){\n\t\t\t$('html').scrollTop(0);\n\t\t}, 300);\n\t}\n\n});\n\n$('input[type=\"search\"]').attr('value', '');\n$('form#contact_form').attr('autocomplete', 'off');\n\nif ( !!window.MSInputMethodContext && !!document.documentMode ) {\n\t$('body').addClass('ie11');\n\tsetTimeout(function(){\n\t\t$('.sidebar__cart-handle').off('click');\n\t}, 50);\n} "],
  "mappings": "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",
  "names": ["c", "e", "n", "t", "i", "u", "a", "b", "d", "f", "h", "g", "window", "factory", "jQuery", "console", "$", "global", "getComputedStyle", "Flickity", "JSONP", "r", "s", "l", "o", "$product", "$openedSubmenu", "response", "escapeHTML", "self", "$productQty", "_this"]
}
