{
  "version": 3,
  "sources": ["/cdn/shop/t/46/assets/theme.js?section_id=pickup-availability"],
  "sourcesContent": ["!function(n,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(n=\"undefined\"!=typeof globalThis?globalThis:n||self).EmblaCarousel=t()}(this,(function(){\"use strict\";function n(n){return\"number\"==typeof n}function t(n){return\"string\"==typeof n}function e(n){return\"boolean\"==typeof n}function o(n){return\"[object Object]\"===Object.prototype.toString.call(n)}function i(n){return Math.abs(n)}function r(n){return Math.sign(n)}function s(n,t){return i(n-t)}function c(n){return f(n).map(Number)}function a(n){return n[u(n)]}function u(n){return Math.max(0,n.length-1)}function l(n,t){return t===u(n)}function d(n,t=0){return Array.from(Array(n),((n,e)=>t+e))}function f(n){return Object.keys(n)}function p(n,t){return[n,t].reduce(((n,t)=>(f(t).forEach((e=>{const i=n[e],r=t[e],s=o(i)&&o(r);n[e]=s?p(i,r):r})),n)),{})}function m(n,t){return void 0!==t.MouseEvent&&n instanceof t.MouseEvent}function g(){let n=[];const t={add:function(e,o,i,r={passive:!0}){let s;if(\"addEventListener\"in e)e.addEventListener(o,i,r),s=()=>e.removeEventListener(o,i,r);else{const n=e;n.addListener(i),s=()=>n.removeListener(i)}return n.push(s),t},clear:function(){n=n.filter((n=>n()))}};return t}function h(n=0,t=0){const e=i(n-t);function o(t){return t<n}function r(n){return n>t}function s(n){return o(n)||r(n)}return{length:e,max:t,min:n,constrain:function(e){return s(e)?o(e)?n:t:e},reachedAny:s,reachedMax:r,reachedMin:o,removeOffset:function(n){return e?n-e*Math.ceil((n-t)/e):n}}}function v(n,t,e){const{constrain:o}=h(0,n),r=n+1;let s=c(t);function c(n){return e?i((r+n)%r):o(n)}function a(){return s}function u(){return v(n,a(),e)}const l={get:a,set:function(n){return s=c(n),l},add:function(n){return u().set(a()+n)},clone:u};return l}function y(n,t,o,c,a,u,l,d,f,p,v,y,x,b,E,S,w,M,D){const{cross:O,direction:T}=n,L=[\"INPUT\",\"SELECT\",\"TEXTAREA\"],A={passive:!1},I=g(),F=g(),P=h(50,225).constrain(b.measure(20)),N={mouse:300,touch:400},V={mouse:500,touch:600},j=E?43:25;let C=!1,B=0,H=0,k=!1,z=!1,R=!1,W=!1;function U(n){if(!m(n,c)&&n.touches.length>=2)return X(n);const t=u.readPoint(n),e=u.readPoint(n,O),o=s(t,B),i=s(e,H);if(!z&&!W){if(!n.cancelable)return X(n);if(z=o>i,!z)return X(n)}const r=u.pointerMove(n);o>S&&(R=!0),p.useFriction(.3).useDuration(.75),d.start(),a.add(T(r)),n.preventDefault()}function X(n){const t=v.byDistance(0,!1).index!==y.get(),e=u.pointerUp(n)*(E?V:N)[W?\"mouse\":\"touch\"],o=function(n,t){const e=y.add(-1*r(n)),o=v.byDistance(n,!E).distance;return E||i(n)<P?o:w&&t?.5*o:v.byIndex(e.get(),0).distance}(T(e),t),c=function(n,t){if(0===n||0===t)return 0;if(i(n)<=i(t))return 0;const e=s(i(n),i(t));return i(e/n)}(e,o),a=j-10*c,l=M+c/50;z=!1,k=!1,F.clear(),p.useDuration(a).useFriction(l),f.distance(o,!E),W=!1,x.emit(\"pointerUp\")}function G(n){R&&(n.stopPropagation(),n.preventDefault(),R=!1)}return{init:function(n){if(!D)return;function i(i){(e(D)||D(n,i))&&function(n){const e=m(n,c);W=e,R=E&&e&&!n.buttons&&C,C=s(a.get(),l.get())>=2,e&&0!==n.button||function(n){const t=n.nodeName||\"\";return L.includes(t)}(n.target)||(k=!0,u.pointerDown(n),p.useFriction(0).useDuration(0),a.set(l),function(){const n=W?o:t;F.add(n,\"touchmove\",U,A).add(n,\"touchend\",X).add(n,\"mousemove\",U,A).add(n,\"mouseup\",X)}(),B=u.readPoint(n),H=u.readPoint(n,O),x.emit(\"pointerDown\"))}(i)}const r=t;I.add(r,\"dragstart\",(n=>n.preventDefault()),A).add(r,\"touchmove\",(()=>{}),A).add(r,\"touchend\",(()=>{})).add(r,\"touchstart\",i).add(r,\"mousedown\",i).add(r,\"touchcancel\",X).add(r,\"contextmenu\",X).add(r,\"click\",G,!0)},destroy:function(){I.clear(),F.clear()},pointerDown:function(){return k}}}function x(n,t){let e,o;function r(n){return n.timeStamp}function s(e,o){const i=\"client\"+(\"x\"===(o||n.scroll)?\"X\":\"Y\");return(m(e,t)?e:e.touches[0])[i]}return{pointerDown:function(n){return e=n,o=n,s(n)},pointerMove:function(n){const t=s(n)-s(o),i=r(n)-r(e)>170;return o=n,i&&(e=n),t},pointerUp:function(n){if(!e||!o)return 0;const t=s(o)-s(e),c=r(n)-r(e),a=r(n)-r(o)>170,u=t/c;return c&&!a&&i(u)>.1?u:0},readPoint:s}}function b(n,t,o,r,s,c,a){const u=[n].concat(r);let l,d,f=[],p=!1;function m(n){return s.measureSize(a.measure(n))}return{init:function(s){c&&(d=m(n),f=r.map(m),l=new ResizeObserver((o=>{(e(c)||c(s,o))&&function(e){for(const o of e){if(p)return;const e=o.target===n,c=r.indexOf(o.target),a=e?d:f[c];if(i(m(e?n:r[c])-a)>=.5){s.reInit(),t.emit(\"resize\");break}}}(o)})),o.requestAnimationFrame((()=>{u.forEach((n=>l.observe(n)))})))},destroy:function(){p=!0,l&&l.disconnect()}}}function E(n,t,e,o,r){const s=r.measure(10),c=r.measure(50),a=h(.1,.99);let u=!1;function l(){return!u&&!!n.reachedAny(e.get())&&!!n.reachedAny(t.get())}return{shouldConstrain:l,constrain:function(r){if(!l())return;const u=n.reachedMin(t.get())?\"min\":\"max\",d=i(n[u]-t.get()),f=e.get()-t.get(),p=a.constrain(d/c);e.subtract(f*p),!r&&i(f)<s&&(e.set(n.constrain(e.get())),o.useDuration(25).useBaseFriction())},toggleActive:function(n){u=!n}}}function S(n,t,e,o){const i=t.min+.1,r=t.max+.1,{reachedMin:s,reachedMax:c}=h(i,r);return{loop:function(t){if(!function(n){return 1===n?c(e.get()):-1===n&&s(e.get())}(t))return;const i=n*(-1*t);o.forEach((n=>n.add(i)))}}}function w(t,o,i,r,s,c,a,u){const l={passive:!0,capture:!0};let d=0;function f(n){\"Tab\"===n.code&&(d=(new Date).getTime())}return{init:function(p){u&&(c.add(document,\"keydown\",f,!1),o.forEach(((o,f)=>{c.add(o,\"focus\",(o=>{(e(u)||u(p,o))&&function(e){if((new Date).getTime()-d>10)return;a.emit(\"slideFocusStart\"),t.scrollLeft=0;const o=i.findIndex((n=>n.includes(e)));n(o)&&(s.useDuration(0),r.index(o,0),a.emit(\"slideFocus\"))}(f)}),l)})))}}}function M(t){let e=t;function o(t){return n(t)?t:t.get()}return{get:function(){return e},set:function(n){e=o(n)},add:function(n){e+=o(n)},subtract:function(n){e-=o(n)}}}function D(n,t){const e=\"x\"===n.scroll?function(n){return`translate3d(${n}px,0px,0px)`}:function(n){return`translate3d(0px,${n}px,0px)`},o=t.style;let i=null,r=!1;return{clear:function(){r||(o.transform=\"\",t.getAttribute(\"style\")||t.removeAttribute(\"style\"))},to:function(t){if(r)return;const s=(c=n.direction(t),Math.round(100*c)/100);var c;s!==i&&(o.transform=e(s),i=s)},toggleActive:function(n){r=!n}}}function O(n,t,e,o,i,r,s,a,u){const l=c(i),d=c(i).reverse(),f=function(){const n=s[0];return g(m(d,n),e,!1)}().concat(function(){const n=t-s[0]-1;return g(m(l,n),-e,!0)}());function p(n,t){return n.reduce(((n,t)=>n-i[t]),t)}function m(n,t){return n.reduce(((n,e)=>p(n,t)>0?n.concat([e]):n),[])}function g(i,s,c){const l=function(n){return r.map(((e,i)=>({start:e-o[i]+.5+n,end:e+t-.5+n})))}(s);return i.map((t=>{const o=c?0:-e,i=c?e:0,r=c?\"end\":\"start\",s=l[t][r];return{index:t,loopPoint:s,slideLocation:M(-1),translate:D(n,u[t]),target:()=>a.get()>s?o:i}}))}return{canLoop:function(){return f.every((({index:n})=>p(l.filter((t=>t!==n)),t)<=.1))},clear:function(){f.forEach((n=>n.translate.clear()))},loop:function(){f.forEach((n=>{const{target:t,translate:e,slideLocation:o}=n,i=t();i!==o.get()&&(e.to(i),o.set(i))}))},loopPoints:f}}function T(n,t,o){let i,r=!1;return{init:function(s){o&&(i=new MutationObserver((n=>{r||(e(o)||o(s,n))&&function(n){for(const e of n)if(\"childList\"===e.type){s.reInit(),t.emit(\"slidesChanged\");break}}(n)})),i.observe(n,{childList:!0}))},destroy:function(){i&&i.disconnect(),r=!0}}}function L(n,t,e,o){const i={};let r,s=null,c=null,a=!1;return{init:function(){r=new IntersectionObserver((n=>{a||(n?.forEach((n=>{const e=t.indexOf(n.target);i[e]=n})),s=null,c=null,e.emit(\"slidesInView\"))}),{root:n.parentElement,threshold:o}),t.forEach((n=>r.observe(n)))},destroy:function(){r&&r.disconnect(),a=!0},get:function(n=!0){if(n&&s)return s;if(!n&&c)return c;const t=function(n){return f(i).reduce(((t,e)=>{const o=parseInt(e),{isIntersecting:r}=i[o];return(n&&r||!n&&!r)&&t.push(o),t}),[])}(n);return n&&(s=t),n||(c=t),t}}}function A(t,e,o,r,s,l,d,f,p){const{startEdge:m,endEdge:g,direction:h}=t,v=n(o);return{groupSlides:function(n){return v?function(n,t){return c(n).filter((n=>n%t==0)).map((e=>n.slice(e,e+t)))}(n,o):function(n){return n.length?c(n).reduce(((t,o,c)=>{const v=a(t)||0,y=0===v,x=o===u(n),b=s[m]-l[v][m],E=s[m]-l[o][g],S=!r&&y?h(d):0,w=i(E-(!r&&x?h(f):0)-(b+S));return c&&w>e+p&&t.push(o),x&&t.push(n.length),t}),[]).map(((t,e,o)=>{const i=Math.max(o[e-1]||0);return n.slice(i,t)})):[]}(n)}}}function I(n,e,o,f,p,m,I){const{align:F,axis:P,direction:N,startIndex:V,loop:j,duration:C,dragFree:B,dragThreshold:H,inViewThreshold:k,slidesToScroll:z,skipSnaps:R,containScroll:W,watchResize:U,watchSlides:X,watchDrag:G,watchFocus:Y}=m,$={measure:function(n){const{offsetTop:t,offsetLeft:e,offsetWidth:o,offsetHeight:i}=n;return{top:t,right:e+o,bottom:t+i,left:e,width:o,height:i}}},q=$.measure(e),Q=o.map($.measure),Z=function(n,t){const e=\"rtl\"===t,o=\"y\"===n,i=!o&&e?-1:1;return{scroll:o?\"y\":\"x\",cross:o?\"x\":\"y\",startEdge:o?\"top\":e?\"right\":\"left\",endEdge:o?\"bottom\":e?\"left\":\"right\",measureSize:function(n){const{height:t,width:e}=n;return o?t:e},direction:function(n){return n*i}}}(P,N),J=Z.measureSize(q),K=function(n){return{measure:function(t){return n*(t/100)}}}(J),_=function(n,e){const o={start:function(){return 0},center:function(n){return i(n)/2},end:i};function i(n){return e-n}return{measure:function(i,r){return t(n)?o[n](i):n(e,i,r)}}}(F,J),nn=!j&&!!W,tn=j||!!W,{slideSizes:en,slideSizesWithGaps:on,startGap:rn,endGap:sn}=function(n,t,e,o,r,s){const{measureSize:c,startEdge:u,endEdge:d}=n,f=e[0]&&r,p=function(){if(!f)return 0;const n=e[0];return i(t[u]-n[u])}(),m=function(){if(!f)return 0;const n=s.getComputedStyle(a(o));return parseFloat(n.getPropertyValue(`margin-${d}`))}(),g=e.map(c),h=e.map(((n,t,e)=>{const o=!t,i=l(e,t);return o?g[t]+p:i?g[t]+m:e[t+1][u]-n[u]})).map(i);return{slideSizes:g,slideSizesWithGaps:h,startGap:p,endGap:m}}(Z,q,Q,o,tn,p),cn=A(Z,J,z,j,q,Q,rn,sn,2),{snaps:an,snapsAligned:un}=function(n,t,e,o,r){const{startEdge:s,endEdge:c}=n,{groupSlides:u}=r,l=u(o).map((n=>a(n)[c]-n[0][s])).map(i).map(t.measure),d=o.map((n=>e[s]-n[s])).map((n=>-i(n))),f=u(d).map((n=>n[0])).map(((n,t)=>n+l[t]));return{snaps:d,snapsAligned:f}}(Z,_,q,Q,cn),ln=-a(an)+a(on),{snapsContained:dn,scrollContainLimit:fn}=function(n,t,e,o){const i=h(-t+n,0),r=e.map(((n,t)=>{const{min:o,max:r}=i,s=i.constrain(n),c=!t,a=l(e,t);return c?r:a||u(o,s)?o:u(r,s)?r:s})).map((n=>parseFloat(n.toFixed(3)))),c=function(){const n=r[0],t=a(r);return h(r.lastIndexOf(n),r.indexOf(t)+1)}();function u(n,t){return s(n,t)<=1}return{snapsContained:function(){if(t<=n+2)return[i.max];if(\"keepSnaps\"===o)return r;const{min:e,max:s}=c;return r.slice(e,s)}(),scrollContainLimit:c}}(J,ln,un,W),pn=nn?dn:un,{limit:mn}=function(n,t,e){const o=t[0];return{limit:h(e?o-n:a(t),o)}}(ln,pn,j),gn=v(u(pn),V,j),hn=gn.clone(),vn=c(o),yn=function(n,t,e,o){const i=g(),r=1e3/60;let s=null,c=0,a=0;function u(n){if(!a)return;s||(s=n,e(),e());const i=n-s;for(s=n,c+=i;c>=r;)e(),c-=r;o(c/r),a&&(a=t.requestAnimationFrame(u))}function l(){t.cancelAnimationFrame(a),s=null,c=0,a=0}return{init:function(){i.add(n,\"visibilitychange\",(()=>{n.hidden&&(s=null,c=0)}))},destroy:function(){l(),i.clear()},start:function(){a||(a=t.requestAnimationFrame(u))},stop:l,update:e,render:o}}(f,p,(()=>(({dragHandler:n,scrollBody:t,scrollBounds:e,options:{loop:o}})=>{o||e.constrain(n.pointerDown()),t.seek()})(Pn)),(n=>(({scrollBody:n,translate:t,location:e,offsetLocation:o,previousLocation:i,scrollLooper:r,slideLooper:s,dragHandler:c,animation:a,eventHandler:u,scrollBounds:l,options:{loop:d}},f)=>{const p=n.settled(),m=!l.shouldConstrain(),g=d?p:p&&m;g&&!c.pointerDown()&&(a.stop(),u.emit(\"settle\")),g||u.emit(\"scroll\");const h=e.get()*f+i.get()*(1-f);o.set(h),d&&(r.loop(n.direction()),s.loop()),t.to(o.get())})(Pn,n))),xn=pn[gn.get()],bn=M(xn),En=M(xn),Sn=M(xn),wn=M(xn),Mn=function(n,t,e,o,s){let c=0,a=0,u=s,l=.68,d=n.get(),f=0;function p(n){return u=n,g}function m(n){return l=n,g}const g={direction:function(){return a},duration:function(){return u},velocity:function(){return c},seek:function(){const t=o.get()-n.get();let i=0;return u?(e.set(n),c+=t/u,c*=l,d+=c,n.add(c),i=d-f):(c=0,e.set(o),n.set(o),i=t),a=r(i),f=d,g},settled:function(){return i(o.get()-t.get())<.001},useBaseFriction:function(){return m(.68)},useBaseDuration:function(){return p(s)},useFriction:m,useDuration:p};return g}(bn,Sn,En,wn,C),Dn=function(n,t,e,o,s){const{reachedAny:c,removeOffset:u,constrain:l}=o;function d(n){return n.concat().sort(((n,t)=>i(n)-i(t)))[0]}function f(t,o){const i=[t,t+e,t-e];if(!n)return t;if(!o)return d(i);const s=i.filter((n=>r(n)===o));return s.length?d(s):a(i)-e}return{byDistance:function(e,o){const r=s.get()+e,{index:a,distance:d}=function(e){const o=n?u(e):l(e),r=t.map(((n,t)=>({diff:f(n-o,0),index:t}))).sort(((n,t)=>i(n.diff)-i(t.diff))),{index:s}=r[0];return{index:s,distance:o}}(r),p=!n&&c(r);return!o||p?{index:a,distance:e}:{index:a,distance:e+f(t[a]-d,0)}},byIndex:function(n,e){return{index:n,distance:f(t[n]-s.get(),e)}},shortcut:f}}(j,pn,ln,mn,wn),On=function(n,t,e,o,i,r,s){function c(i){const c=i.distance,a=i.index!==t.get();r.add(c),c&&(o.duration()?n.start():(n.update(),n.render(1),n.update())),a&&(e.set(t.get()),t.set(i.index),s.emit(\"select\"))}return{distance:function(n,t){c(i.byDistance(n,t))},index:function(n,e){const o=t.clone().set(n);c(i.byIndex(o.get(),e))}}}(yn,gn,hn,Mn,Dn,wn,I),Tn=function(n){const{max:t,length:e}=n;return{get:function(n){return e?(n-t)/-e:0}}}(mn),Ln=g(),An=L(e,o,I,k),{slideRegistry:In}=function(n,t,e,o,i,r){const{groupSlides:s}=i,{min:c,max:f}=o;return{slideRegistry:function(){const o=s(r),i=!n||\"keepSnaps\"===t;return 1===e.length?[r]:i?o:o.slice(c,f).map(((n,t,e)=>{const o=!t,i=l(e,t);return o?d(a(e[0])+1):i?d(u(r)-a(e)[0]+1,a(e)[0]):n}))}()}}(nn,W,pn,fn,cn,vn),Fn=w(n,o,In,On,Mn,Ln,I,Y),Pn={ownerDocument:f,ownerWindow:p,eventHandler:I,containerRect:q,slideRects:Q,animation:yn,axis:Z,dragHandler:y(Z,n,f,p,wn,x(Z,p),bn,yn,On,Mn,Dn,gn,I,K,B,H,R,.68,G),eventStore:Ln,percentOfView:K,index:gn,indexPrevious:hn,limit:mn,location:bn,offsetLocation:Sn,previousLocation:En,options:m,resizeHandler:b(e,I,p,o,Z,U,$),scrollBody:Mn,scrollBounds:E(mn,Sn,wn,Mn,K),scrollLooper:S(ln,mn,Sn,[bn,Sn,En,wn]),scrollProgress:Tn,scrollSnapList:pn.map(Tn.get),scrollSnaps:pn,scrollTarget:Dn,scrollTo:On,slideLooper:O(Z,J,ln,en,on,an,pn,Sn,o),slideFocus:Fn,slidesHandler:T(e,I,X),slidesInView:An,slideIndexes:vn,slideRegistry:In,slidesToScroll:cn,target:wn,translate:D(Z,e)};return Pn}const F={align:\"center\",axis:\"x\",container:null,slides:null,containScroll:\"trimSnaps\",direction:\"ltr\",slidesToScroll:1,inViewThreshold:0,breakpoints:{},dragFree:!1,dragThreshold:10,loop:!1,skipSnaps:!1,duration:25,startIndex:0,active:!0,watchDrag:!0,watchResize:!0,watchSlides:!0,watchFocus:!0};function P(n){function t(n,t){return p(n,t||{})}const e={mergeOptions:t,optionsAtMedia:function(e){const o=e.breakpoints||{},i=f(o).filter((t=>n.matchMedia(t).matches)).map((n=>o[n])).reduce(((n,e)=>t(n,e)),{});return t(e,i)},optionsMediaQueries:function(t){return t.map((n=>f(n.breakpoints||{}))).reduce(((n,t)=>n.concat(t)),[]).map(n.matchMedia)}};return e}function N(n,e,o){const i=n.ownerDocument,r=i.defaultView,s=P(r),c=function(n){let t=[];return{init:function(e,o){return t=o.filter((({options:t})=>!1!==n.optionsAtMedia(t).active)),t.forEach((t=>t.init(e,n))),o.reduce(((n,t)=>Object.assign(n,{[t.name]:t})),{})},destroy:function(){t=t.filter((n=>n.destroy()))}}}(s),a=g(),u=function(){let n,t={};function e(n){return t[n]||[]}const o={init:function(t){n=t},emit:function(t){return e(t).forEach((e=>e(n,t))),o},off:function(n,i){return t[n]=e(n).filter((n=>n!==i)),o},on:function(n,i){return t[n]=e(n).concat([i]),o},clear:function(){t={}}};return o}(),{mergeOptions:l,optionsAtMedia:d,optionsMediaQueries:f}=s,{on:p,off:m,emit:h}=u,v=L;let y,x,b,E,S=!1,w=l(F,N.globalOptions),M=l(w),D=[];function O(t){const e=I(n,b,E,i,r,t,u);return t.loop&&!e.slideLooper.canLoop()?O(Object.assign({},t,{loop:!1})):e}function T(e,o){S||(w=l(w,e),M=d(w),D=o||D,function(){const{container:e,slides:o}=M,i=t(e)?n.querySelector(e):e;b=i||n.children[0];const r=t(o)?b.querySelectorAll(o):o;E=[].slice.call(r||b.children)}(),y=O(M),f([w,...D.map((({options:n})=>n))]).forEach((n=>a.add(n,\"change\",L))),M.active&&(y.translate.to(y.location.get()),y.animation.init(),y.slidesInView.init(),y.slideFocus.init(C),y.eventHandler.init(C),y.resizeHandler.init(C),y.slidesHandler.init(C),y.options.loop&&y.slideLooper.loop(),b.offsetParent&&E.length&&y.dragHandler.init(C),x=c.init(C,D)))}function L(n,t){const e=j();A(),T(l({startIndex:e},n),t),u.emit(\"reInit\")}function A(){y.dragHandler.destroy(),y.eventStore.clear(),y.translate.clear(),y.slideLooper.clear(),y.resizeHandler.destroy(),y.slidesHandler.destroy(),y.slidesInView.destroy(),y.animation.destroy(),c.destroy(),a.clear()}function V(n,t,e){M.active&&!S&&(y.scrollBody.useBaseFriction().useDuration(!0===t?0:M.duration),y.scrollTo.index(n,e||0))}function j(){return y.index.get()}const C={canScrollNext:function(){return y.index.add(1).get()!==j()},canScrollPrev:function(){return y.index.add(-1).get()!==j()},containerNode:function(){return b},internalEngine:function(){return y},destroy:function(){S||(S=!0,a.clear(),A(),u.emit(\"destroy\"),u.clear())},off:m,on:p,emit:h,plugins:function(){return x},previousScrollSnap:function(){return y.indexPrevious.get()},reInit:v,rootNode:function(){return n},scrollNext:function(n){V(y.index.add(1).get(),n,-1)},scrollPrev:function(n){V(y.index.add(-1).get(),n,1)},scrollProgress:function(){return y.scrollProgress.get(y.location.get())},scrollSnapList:function(){return y.scrollSnapList},scrollTo:V,selectedScrollSnap:j,slideNodes:function(){return E},slidesInView:function(){return y.slidesInView.get()},slidesNotInView:function(){return y.slidesInView.get(!1)}};return T(e,o),setTimeout((()=>u.emit(\"init\")),0),C}return N.globalOptions=void 0,N})),function(n,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(n=\"undefined\"!=typeof globalThis?globalThis:n||self).EmblaCarouselAutoHeight=t()}(this,(function(){\"use strict\";function n(n={}){let t,e=[];const o=[\"select\",\"slideFocus\"];function i(){t.containerNode().style.height=`${function(){const{slideRegistry:n}=t.internalEngine();return n[t.selectedScrollSnap()].map((n=>e[n])).reduce(((n,t)=>Math.max(n,t)),0)}()}px`}return{name:\"autoHeight\",options:n,init:function(n){t=n;const{options:{axis:r},slideRects:s}=t.internalEngine();\"y\"!==r&&(e=s.map((n=>n.height)),o.forEach((n=>t.on(n,i))),i())},destroy:function(){o.forEach((n=>t.off(n,i)));const n=t.containerNode();n.style.height=\"\",n.getAttribute(\"style\")||n.removeAttribute(\"style\")}}}return n.globalOptions=void 0,n})),function(n,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(n=\"undefined\"!=typeof globalThis?globalThis:n||self).EmblaCarouselAutoScroll=t()}(this,(function(){\"use strict\";const n={direction:\"forward\",speed:2,startDelay:1e3,active:!0,breakpoints:{},playOnInit:!0,stopOnFocusIn:!0,stopOnInteraction:!0,stopOnMouseEnter:!1,rootNode:null};function t(e={}){let o,i,r,s,c,a=!1,u=!0,l=0;function d(){if(r||a)return;if(!u)return;i.emit(\"autoScroll:play\");const n=i.internalEngine(),{ownerWindow:t}=n;l=t.setTimeout((()=>{n.scrollBody=function(n){const{location:t,previousLocation:e,offsetLocation:r,target:s,scrollTarget:c,index:a,indexPrevious:u,limit:{reachedMin:l,reachedMax:d,constrain:p},options:{loop:m}}=n,g=\"forward\"===o.direction?-1:1,h=()=>S;let v=0,y=0,x=t.get(),b=0,E=!1;const S={direction:()=>y,duration:()=>-1,velocity:()=>v,settled:()=>E,seek:function(n){const h=n/1e3;let w=0;e.set(t),v=g*o.speed*55,x+=v,t.add(v*h),s.set(t),w=x-b,y=Math.sign(w),b=x;const M=c.byDistance(0,!1).index;a.get()!==M&&(u.set(a.get()),a.set(M),i.emit(\"select\"));const D=\"forward\"===o.direction?l(r.get()):d(r.get());if(!m&&D){E=!0;const n=p(t.get());t.set(n),s.set(t),f()}return S},useBaseFriction:h,useBaseDuration:h,useFriction:h,useDuration:h};return S}(n),n.animation.start()}),s),a=!0}function f(){if(r||!a)return;i.emit(\"autoScroll:stop\");const n=i.internalEngine(),{ownerWindow:t}=n;n.scrollBody=c,t.clearTimeout(l),l=0,a=!1}function p(){u&&d(),i.off(\"settle\",p)}function m(){i.on(\"settle\",p)}return{name:\"autoScroll\",options:e,init:function(a,l){i=a;const{mergeOptions:p,optionsAtMedia:g}=l,h=p(n,t.globalOptions),v=p(h,e);if(o=g(v),i.scrollSnapList().length<=1)return;s=o.startDelay,r=!1,c=i.internalEngine().scrollBody;const{eventStore:y}=i.internalEngine(),x=i.rootNode(),b=o.rootNode&&o.rootNode(x)||x,E=i.containerNode();i.on(\"pointerDown\",f),o.stopOnInteraction||i.on(\"pointerUp\",m),o.stopOnMouseEnter&&(y.add(b,\"mouseenter\",(()=>{u=!1,f()})),o.stopOnInteraction||y.add(b,\"mouseleave\",(()=>{u=!0,d()}))),o.stopOnFocusIn&&(i.on(\"slideFocusStart\",f),o.stopOnInteraction||y.add(E,\"focusout\",d)),o.playOnInit&&d()},destroy:function(){i.off(\"pointerDown\",f).off(\"pointerUp\",m).off(\"slideFocusStart\",f).off(\"settle\",p),f(),r=!0,a=!1},play:function(n){void 0!==n&&(s=n),u=!0,d()},stop:function(){a&&f()},reset:function(){a&&(f(),m())},isPlaying:function(){return a}}}return t.globalOptions=void 0,t})),function(n,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(n=\"undefined\"!=typeof globalThis?globalThis:n||self).EmblaCarouselAutoplay=t()}(this,(function(){\"use strict\";const n={active:!0,breakpoints:{},delay:4e3,jump:!1,playOnInit:!0,stopOnFocusIn:!0,stopOnInteraction:!0,stopOnMouseEnter:!1,stopOnLastSnap:!1,rootNode:null};function t(e={}){let o,i,r,s=!1,c=!0,a=!1,u=0;function l(){if(r)return;if(!c)return;s||i.emit(\"autoplay:play\");const{ownerWindow:n}=i.internalEngine();n.clearInterval(u),u=n.setInterval(g,o.delay),s=!0}function d(){if(r)return;s&&i.emit(\"autoplay:stop\");const{ownerWindow:n}=i.internalEngine();n.clearInterval(u),u=0,s=!1}function f(){if(p())return c=s,d();c&&l()}function p(){const{ownerDocument:n}=i.internalEngine();return\"hidden\"===n.visibilityState}function m(n){void 0!==n&&(a=n),c=!0,l()}function g(){const{index:n}=i.internalEngine(),t=n.clone().add(1).get(),e=i.scrollSnapList().length-1;o.stopOnLastSnap&&t===e&&d(),i.canScrollNext()?i.scrollNext(a):i.scrollTo(0,a)}return{name:\"autoplay\",options:e,init:function(s,u){i=s;const{mergeOptions:m,optionsAtMedia:g}=u,h=m(n,t.globalOptions),v=m(h,e);if(o=g(v),i.scrollSnapList().length<=1)return;a=o.jump,r=!1;const{eventStore:y,ownerDocument:x}=i.internalEngine(),b=i.rootNode(),E=o.rootNode&&o.rootNode(b)||b,S=i.containerNode();i.on(\"pointerDown\",d),o.stopOnInteraction||i.on(\"pointerUp\",l),o.stopOnMouseEnter&&(y.add(E,\"mouseenter\",(()=>{c=!1,d()})),o.stopOnInteraction||y.add(E,\"mouseleave\",(()=>{c=!0,l()}))),o.stopOnFocusIn&&(i.on(\"slideFocusStart\",d),o.stopOnInteraction||y.add(S,\"focusout\",l)),y.add(x,\"visibilitychange\",f),o.playOnInit&&!p()&&l()},destroy:function(){i.off(\"pointerDown\",d).off(\"pointerUp\",l).off(\"slideFocusStart\",d),d(),r=!0,s=!1},play:m,stop:function(){s&&d()},reset:function(){s&&m()},isPlaying:function(){return s}}}return t.globalOptions=void 0,t})),function(n,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(n=\"undefined\"!=typeof globalThis?globalThis:n||self).EmblaCarouselClassNames=t()}(this,(function(){\"use strict\";const n={active:!0,breakpoints:{},snapped:\"is-snapped\",inView:\"is-in-view\",draggable:\"is-draggable\",dragging:\"is-dragging\"};function t(n,t){if(!n||!t)return;const{classList:e}=n;e.contains(t)&&e.remove(t)}function e(n,t){if(!n||!t)return;const{classList:e}=n;e.contains(t)||e.add(t)}function o(i={}){let r,s,c,a;const u=[\"select\"],l=[\"pointerDown\",\"pointerUp\"],d=[\"slidesInView\"];function f(n,o){\"pointerDown\"===o?e(c,r.dragging):t(c,r.dragging)}function p(n,o){var i;(i=s.containerNode().querySelectorAll(`.${o}`),Array.from(i)).forEach((n=>t(n,o))),n.forEach((n=>e(a[n],o)))}function m(){const{slideRegistry:n}=s.internalEngine();p(n[s.selectedScrollSnap()],r.snapped)}function g(){p(s.slidesInView(),r.inView)}return{name:\"classNames\",options:i,init:function(t,p){s=t;const{mergeOptions:h,optionsAtMedia:v}=p,y=h(n,o.globalOptions),x=h(y,i);r=v(x),c=s.rootNode(),a=s.slideNodes(),!!s.internalEngine().options.watchDrag&&e(c,r.draggable),r.dragging&&l.forEach((n=>s.on(n,f))),r.snapped&&(u.forEach((n=>s.on(n,m))),m()),r.inView&&(d.forEach((n=>s.on(n,g))),g())},destroy:function(){t(c,r.draggable),l.forEach((n=>s.off(n,f))),u.forEach((n=>s.off(n,m))),d.forEach((n=>s.off(n,g))),a.forEach((n=>t(n,r.snapped)))}}}return o.globalOptions=void 0,o})),function(n,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(n=\"undefined\"!=typeof globalThis?globalThis:n||self).EmblaCarouselFade=t()}(this,(function(){\"use strict\";function n(n,t,e){return Math.min(Math.max(n,t),e)}function t(n){return\"number\"==typeof n&&!isNaN(n)}function e(e={}){const o=1e3/60;let i,r,s,c,a=[],u=0,l=0,d=0,f=!1;function p(){y(i.selectedScrollSnap(),1)}function m(){f=!1}function g(){f=!1,u=0,l=0}function h(){const n=i.internalEngine().scrollBody.duration();l=n?0:1,f=!0,n||p()}function v(n){const{scrollSnaps:e,location:o,target:r}=i.internalEngine();!t(n)||a[n]<.5||(o.set(e[n]),r.set(o))}function y(t,e){i.scrollSnapList().forEach(((o,r)=>{const s=Math.abs(e),c=a[r],l=r===t,p=n(l?c+s:c-s,0,1);a[r]=p;const m=l&&f,g=i.previousScrollSnap();m&&(a[g]=1-p),l&&function(n,t){const{index:e,dragHandler:o,scrollSnaps:r}=i.internalEngine(),s=o.pointerDown(),c=1/(r.length-1);let a=n,l=s?i.selectedScrollSnap():i.previousScrollSnap();if(s&&a===l){const n=-1*Math.sign(u);a=l,l=e.clone().set(l).add(n).get()}d=l*c+(a-l)*c*t}(t,p),function(n){const t=i.internalEngine().slideRegistry[n],{scrollSnaps:e,containerRect:o}=i.internalEngine(),r=a[n];t.forEach((t=>{const s=i.slideNodes()[t].style,c=parseFloat(r.toFixed(2)),a=c>0,u=function(n){const{axis:t}=i.internalEngine();return`translate${t.scroll.toUpperCase()}(${t.direction(n)}px)`}(a?e[n]:o.width+2);a&&(s.transform=u),s.opacity=c.toString(),s.pointerEvents=r>.5?\"auto\":\"none\",a||(s.transform=u)}))}(r)}))}function x(){const{dragHandler:n,index:t,scrollBody:e}=i.internalEngine(),o=i.selectedScrollSnap();if(!n.pointerDown())return o;const r=Math.sign(e.velocity()),s=Math.sign(u),c=t.clone().set(o).add(-1*r).get();return r&&s?s===r?c:o:null}function b(){const{target:n,location:e}=i.internalEngine(),s=n.get()-e.get(),c=Math.abs(s)>=1,d=x(),f=!t(d);return function(n){const{dragHandler:e,scrollBody:i}=n.internalEngine(),s=o/1e3,c=e.pointerDown(),d=i.velocity()*s,f=i.duration(),p=x(),m=!t(p);if(c){if(!d)return;u+=d,l=Math.abs(d/r),v(p)}if(!c){if(!f||m)return;l+=(1-a[p])/f,l*=.68}m||y(p,l)}(i),!f&&!c&&a[d]>.999}function E(){return d}return{name:\"fade\",options:e,init:function(t){i=t;const e=i.selectedScrollSnap(),{scrollBody:o,containerRect:u,axis:l}=i.internalEngine(),d=l.measureSize(u);r=n(.75*d,200,500),f=!1,a=i.scrollSnapList().map(((n,t)=>t===e?1:0)),s=o.settled,c=i.scrollProgress,o.settled=b,i.scrollProgress=E,i.on(\"select\",h).on(\"slideFocus\",p).on(\"pointerDown\",g).on(\"pointerUp\",m),function(){const{translate:n,slideLooper:t}=i.internalEngine();n.clear(),n.toggleActive(!1),t.loopPoints.forEach((({translate:n})=>{n.clear(),n.toggleActive(!1)}))}(),p()},destroy:function(){const{scrollBody:n}=i.internalEngine();n.settled=s,i.scrollProgress=c,i.off(\"select\",h).off(\"slideFocus\",p).off(\"pointerDown\",g).off(\"pointerUp\",m),i.slideNodes().forEach((n=>{const t=n.style;t.opacity=\"\",t.transform=\"\",t.pointerEvents=\"\",n.getAttribute(\"style\")||n.removeAttribute(\"style\")}))}}}return e.globalOptions=void 0,e})),function(n,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(n=n||self).EmblaCarouselWheelGestures=t()}(this,(function(){\"use strict\";function n(){return(n=Object.assign||function(n){for(var t=1;t<arguments.length;t++){var e=arguments[t];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(n[o]=e[o])}return n}).apply(this,arguments)}function t(n,t){if(n.length!==t.length)throw new Error(\"vectors must be same length\");return n.map((function(n,e){return n+t[e]}))}function e(n){return Math.max.apply(Math,n.map(Math.abs))}function o(n){return Object.freeze(n),Object.values(n).forEach((function(n){null===n||\"object\"!=typeof n||Object.isFrozen(n)||o(n)})),n}var i=[1,18,\"undefined\"!=typeof window&&window.innerHeight||800],r=[-1,-1,-1],s=o({preventWheelAction:!0,reverseSign:[!0,!0,!1]}),c={active:!0,breakpoints:{},wheelDraggingClass:\"is-wheel-dragging\",forceWheelAxis:void 0,target:void 0};function a(u){var l;void 0===u&&(u={});var d=function(){};return{name:\"wheelGestures\",options:u,init:function(f,p){var m,g,h=p.mergeOptions,v=p.optionsAtMedia,y=h(c,a.globalOptions),x=h(y,u);l=v(x);var b,E=f.internalEngine(),S=null!=(m=l.target)?m:f.containerNode().parentNode,w=null!=(g=l.forceWheelAxis)?g:E.options.axis,M=function(c){void 0===c&&(c={});var a,u,l,d=function(){var n={};function t(t,e){n[t]=(n[t]||[]).filter((function(n){return n!==e}))}return o({on:function(e,o){return n[e]=(n[e]||[]).concat(o),function(){return t(e,o)}},off:t,dispatch:function(t,e){t in n&&n[t].forEach((function(n){return n(e)}))}})}(),f=d.on,p=d.off,m=d.dispatch,g=s,h={isStarted:!1,isStartPublished:!1,isMomentum:!1,startTime:0,lastAbsDelta:1/0,axisMovement:[0,0,0],axisVelocity:[0,0,0],accelerationFactors:[],scrollPoints:[],scrollPointsToMerge:[],willEndTimeout:400},v=!1,y=function(n){Array.isArray(n)?n.forEach((function(n){return E(n)})):E(n)},x=function(t){return void 0===t&&(t={}),Object.values(t).some((function(n){return null==n}))?g:g=o(n({},s,g,t))},b=function(e){var o=n({event:a,isStart:!1,isEnding:!1,isMomentumCancel:!1,isMomentum:h.isMomentum,axisDelta:[0,0,0],axisVelocity:h.axisVelocity,axisMovement:h.axisMovement,get axisMovementProjection(){return t(o.axisMovement,o.axisVelocity.map((function(n){return void 0===t&&(t=.996),n*t/(1-t);var t})))}},e);m(\"wheel\",n({},o,{previous:u})),u=o},E=function(o){var s,c=function(t){return n({},t,{axisDelta:t.axisDelta.map((function(n){return Math.min(Math.max(-700,n),700)}))})}(function(t,e){if(!e)return t;var o=!0===e?r:e.map((function(n){return n?-1:1}));return n({},t,{axisDelta:t.axisDelta.map((function(n,t){return n*o[t]}))})}({timeStamp:(s=o).timeStamp,axisDelta:[s.deltaX*i[s.deltaMode],s.deltaY*i[s.deltaMode],(s.deltaZ||0)*i[s.deltaMode]]},g.reverseSign)),u=c.axisDelta,l=c.timeStamp,d=e(u);o.preventDefault&&function(n,t){var e=g.preventWheelAction,o=t[0],i=t[1],r=t[2];if(\"boolean\"==typeof e)return e;switch(e){case\"x\":return Math.abs(o)>=n;case\"y\":return Math.abs(i)>=n;case\"z\":return Math.abs(r)>=n;default:return!1}}(d,u)&&o.preventDefault(),h.isStarted?h.isMomentum&&d>Math.max(2,2*h.lastAbsDelta)&&(F(!0),A()):A(),0===d&&Object.is&&Object.is(o.deltaX,-0)?v=!0:(a=o,h.axisMovement=t(h.axisMovement,u),h.lastAbsDelta=d,h.scrollPointsToMerge.push({axisDelta:u,timeStamp:l}),S(),b({axisDelta:u,isStart:!h.isStartPublished}),h.isStartPublished=!0,I())},S=function(){var n;2===h.scrollPointsToMerge.length?(h.scrollPoints.unshift({axisDeltaSum:h.scrollPointsToMerge.map((function(n){return n.axisDelta})).reduce(t),timeStamp:(n=h.scrollPointsToMerge.map((function(n){return n.timeStamp})),n.reduce((function(n,t){return n+t}))/n.length)}),M(),h.scrollPointsToMerge.length=0,h.scrollPoints.length=1,h.isMomentum||T()):h.isStartPublished||w()},w=function(){var n;h.axisVelocity=(n=h.scrollPointsToMerge,n[n.length-1]).axisDelta.map((function(n){return n/h.willEndTimeout}))},M=function(){var n=h.scrollPoints,t=n[0],e=n[1];if(e&&t){var o=t.timeStamp-e.timeStamp;if(!(o<=0)){var i=t.axisDeltaSum.map((function(n){return n/o})),r=i.map((function(n,t){return n/(h.axisVelocity[t]||1)}));h.axisVelocity=i,h.accelerationFactors.push(r),D(o)}}},D=function(n){var t=10*Math.ceil(n/10)*1.2;h.isMomentum||(t=Math.max(100,2*t)),h.willEndTimeout=Math.min(1e3,Math.round(t))},O=function(n){return 0===n||n<=.96&&n>=.6},T=function(){if(h.accelerationFactors.length>=5){if(v&&(v=!1,e(h.axisVelocity)>=.2))return void L();var n=h.accelerationFactors.slice(-5);n.every((function(n){var t=!!n.reduce((function(n,t){return n&&n<1&&n===t?1:0})),e=n.filter(O).length===n.length;return t||e}))&&L(),h.accelerationFactors=n}},L=function(){h.isMomentum=!0},A=function(){(h={isStarted:!1,isStartPublished:!1,isMomentum:!1,startTime:0,lastAbsDelta:1/0,axisMovement:[0,0,0],axisVelocity:[0,0,0],accelerationFactors:[],scrollPoints:[],scrollPointsToMerge:[],willEndTimeout:400}).isStarted=!0,h.startTime=Date.now(),u=void 0,v=!1},I=function(){clearTimeout(l),l=setTimeout(F,h.willEndTimeout)},F=function(n){void 0===n&&(n=!1),h.isStarted&&(b(h.isMomentum&&n?{isEnding:!0,isMomentumCancel:!0}:{isEnding:!0}),h.isMomentum=!1,h.isStarted=!1)},P=function(n){var t=[],e=function(e){e.removeEventListener(\"wheel\",n),t=t.filter((function(n){return n!==e}))};return o({observe:function(o){return o.addEventListener(\"wheel\",n,{passive:!1}),t.push(o),function(){return e(o)}},unobserve:e,disconnect:function(){t.forEach(e)}})}(y),N=P.observe,V=P.unobserve,j=P.disconnect;return x(c),o({on:f,off:p,observe:N,unobserve:V,disconnect:j,feedWheel:y,updateOptions:x})}({preventWheelAction:w,reverseSign:[!0,!0,!1]}),D=M.observe(S),O=M.on(\"wheel\",(function(n){var t=n.axisDelta,e=t[0],o=t[1],i=\"x\"===w?o:e,r=n.isEnding&&!n.isMomentum||n.isMomentum&&n.previous&&!n.previous.isMomentum;Math.abs(\"x\"===w?e:o)>Math.abs(i)&&!T&&!n.isMomentum&&function(n){try{F(b=new MouseEvent(\"mousedown\",n.event))}catch(n){return d()}T=!0,document.documentElement.addEventListener(\"mousemove\",A,!0),document.documentElement.addEventListener(\"mouseup\",A,!0),document.documentElement.addEventListener(\"mousedown\",A,!0),l.wheelDraggingClass&&S.classList.add(l.wheelDraggingClass)}(n),T&&(r?function(n){T=!1,F(I(\"mouseup\",n)),L(),l.wheelDraggingClass&&S.classList.remove(l.wheelDraggingClass)}(n):F(I(\"mousemove\",n)))})),T=!1;function L(){document.documentElement.removeEventListener(\"mousemove\",A,!0),document.documentElement.removeEventListener(\"mouseup\",A,!0),document.documentElement.removeEventListener(\"mousedown\",A,!0)}function A(n){T&&n.isTrusted&&n.stopImmediatePropagation()}function I(n,t){var e,o;if(w===E.options.axis){var i=t.axisMovement;e=i[0],o=i[1]}else{var r=t.axisMovement;o=r[0],e=r[1]}if(!E.options.skipSnaps&&!E.options.dragFree){var s=E.containerRect.width,c=E.containerRect.height;e=e<0?Math.max(e,-s):Math.min(e,s),o=o<0?Math.max(o,-c):Math.min(o,c)}return new MouseEvent(n,{clientX:b.clientX+e,clientY:b.clientY+o,screenX:b.screenX+e,screenY:b.screenY+o,movementX:e,movementY:o,button:0,bubbles:!0,cancelable:!0,composed:!0})}function F(n){f.containerNode().dispatchEvent(n)}d=function(){D(),O(),L()}},destroy:function(){return d()}}}return a.globalOptions=void 0,a}));\r\n// Animation for accordion.\r\nclass btyAccordion {\r\n\tconstructor( el, toggle = 'summary', view = '.details-content' ) {\r\n\t\tconst accordion = this;\r\n\r\n\t\taccordion.el      = el;\r\n\t\taccordion.summary = el.querySelector( toggle );\r\n\t\taccordion.content = el.querySelector( view );\r\n\r\n\t\taccordion.animation   = null;\r\n\t\taccordion.isClosing   = false;\r\n\t\taccordion.isExpanding = false;\r\n\r\n\t\tif ( ! accordion.content ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\taccordion.summary.addEventListener(\r\n\t\t\t'click',\r\n\t\t\tfunction( e ) {\r\n\t\t\t\taccordion.onClick( e );\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tonClick(e) {\r\n\t\te.preventDefault();\r\n\t\tconst accordion = this;\r\n\r\n\t\taccordion.el.style.overflow = 'hidden';\r\n\r\n\t\tlet aria = accordion.summary.getAttribute( 'aria-expanded' );\r\n\r\n\t\tif ( accordion.isClosing || ! accordion.el.open ) {\r\n\t\t\taccordion.open();\r\n\r\n\t\t\tif ( aria ) {\r\n\t\t\t\taccordion.summary.setAttribute( 'aria-expanded', 'true' );\r\n\t\t\t}\r\n\t\t} else if ( accordion.isExpanding || accordion.el.open ) {\r\n\t\t\taccordion.shrink();\r\n\r\n\t\t\tif ( aria ) {\r\n\t\t\t\taccordion.summary.setAttribute( 'aria-expanded', 'false' );\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tshrink() {\r\n\t\tconst accordion = this;\r\n\r\n\t\taccordion.isClosing = true;\r\n\r\n\t\tlet startHeight = accordion.el.offsetHeight + 'px',\r\n\t\t\tendHeight   = accordion.summary.offsetHeight + 'px';\r\n\r\n\t\tif ( accordion.animation ) {\r\n\t\t\taccordion.animation.cancel();\r\n\t\t}\r\n\r\n\t\taccordion.animation = accordion.el.animate(\r\n\t\t\t{\r\n\t\t\t\theight: [startHeight, endHeight]\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tduration: 200,\r\n\t\t\t\teasing: 'ease-out'\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\taccordion.animation.onfinish = function() {\r\n\t\t\taccordion.onAnimationFinish( false );\r\n\t\t}\r\n\r\n\t\taccordion.animation.oncancel = function() {\r\n\t\t\taccordion.isClosing = false;\r\n\t\t}\r\n\t}\r\n\r\n\topen() {\r\n\t\tconst accordion = this;\r\n\r\n\t\taccordion.el.style.height = accordion.el.offsetHeight + 'px';\r\n\t\taccordion.el.open         = true;\r\n\r\n\t\twindow.requestAnimationFrame(\r\n\t\t\tfunction() {\r\n\t\t\t\taccordion.expand();\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\texpand() {\r\n\t\tconst accordion = this;\r\n\r\n\t\taccordion.isExpanding = true;\r\n\r\n\t\tlet startHeight = accordion.el.offsetHeight + 'px',\r\n\t\t\tendHeight   = ( accordion.summary.offsetHeight + accordion.content.offsetHeight ) + 'px';\r\n\r\n\t\tif (accordion.animation) {\r\n\t\t\taccordion.animation.cancel();\r\n\t\t}\r\n\r\n\t\taccordion.animation = accordion.el.animate(\r\n\t\t\t{\r\n\t\t\t\theight: [startHeight, endHeight]\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tduration: 200,\r\n\t\t\t\teasing: 'ease-out'\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\taccordion.animation.onfinish = function() {\r\n\t\t\taccordion.onAnimationFinish( true );\r\n\t\t}\r\n\r\n\t\taccordion.animation.oncancel = function() {\r\n\t\t\taccordion.isExpanding = false;\r\n\t\t}\r\n\t}\r\n\r\n\tonAnimationFinish(open) {\r\n\t\tconst accordion = this;\r\n\r\n\t\taccordion.el.open     = open;\r\n\t\taccordion.animation   = null;\r\n\t\taccordion.isClosing   = false;\r\n\t\taccordion.isExpanding = false;\r\n\r\n\t\taccordion.el.removeAttribute( 'style' );\r\n\t}\r\n}\r\n\r\nfunction btyAccordionHandle( doc = document ) {\r\n\tlet details = doc.querySelectorAll( 'details' );\r\n\tif ( ! details.length ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tdetails.forEach(\r\n\t\tfunction( el ) {\r\n\t\t\t// No apply effect for motion reduce node.\r\n\t\t\tif ( el.hasAttribute( 'data-motion-reduce' ) ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tnew btyAccordion( el );\r\n\t\t}\r\n\t);\r\n}\r\n\r\n// Accordion hover.\r\nfunction btyAccordionHover( doc = document ) {\r\n\tlet menus = doc.querySelectorAll( '.menu-map.faq-accordion' );\r\n\r\n\tif ( ! menus.length ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tmenus.forEach(\r\n\t\tfunction( el ) {\r\n\t\t\tlet section   = el.closest( '.shopify-section' ),\r\n\t\t\t\tid        = el.getAttribute( 'data-id' ),\r\n\t\t\t\tcontainer = section ? section.querySelectorAll( '.content-map[data-id=\"' + id + '\"]' ) : [];\r\n\r\n\t\t\tel.addEventListener(\r\n\t\t\t\t'mouseenter',\r\n\t\t\t\tfunction() {\r\n\t\t\t\t\tif ( window.matchMedia( '(max-width: 991px)' ).matches || window.matchMedia( '(hover: none)' ).matches ) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif ( container.length ) {\r\n\t\t\t\t\t\tcontainer.forEach(\r\n\t\t\t\t\t\t\tfunction( con ) {\r\n\t\t\t\t\t\t\t\tlet sibs = btySiblings( con );\r\n\t\t\t\t\t\t\t\tif ( sibs.length ) {\r\n\t\t\t\t\t\t\t\t\tsibs.forEach(\r\n\t\t\t\t\t\t\t\t\t\tfunction( sib ) {\r\n\t\t\t\t\t\t\t\t\t\t\tsib.classList.remove( 'active' );\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tcon.classList.add( 'active' );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\t);\r\n}\r\n\r\n// Footer accordion.\r\nfunction btyFooterAccordion( doc = document ) {\r\n\tlet headings = doc.querySelectorAll( '.ft-block-heading' );\r\n\tif ( ! headings.length ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\theadings.forEach(\r\n\t\tfunction ( el ) {\r\n\t\t\tlet block = el.parentNode.querySelector( '.ft-block-content' );\r\n\t\t\tif ( ! block ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif ( window.matchMedia( '(min-width: 992px)' ).matches ) {\r\n\t\t\t\tel.parentNode.classList.remove( 'open' );\r\n\t\t\t\tblock.removeAttribute( 'style' );\r\n\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tel.onclick = function () {\r\n\t\t\t\tif ( window.matchMedia( '(min-width: 992px)' ).matches ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ( 'none' === window.getComputedStyle( block ).display ) {\r\n\t\t\t\t\tbtySlideDown( block );\r\n\t\t\t\t\tel.parentNode.classList.add( 'open' );\r\n\t\t\t\t} else {\r\n\t\t\t\t\tbtySlideUp( block );\r\n\t\t\t\t\tel.parentNode.classList.remove( 'open' );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n}\r\n\r\n// Add class to style footer menu css.\r\nfunction btyAddElementClass() {\r\n\tlet elements = document.querySelectorAll('.ft-block-item.ft-block-menu');\r\n\r\n\tif ( !elements.length ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tlet lastElement = elements[elements.length - 1];\r\n\r\n\telements[0].classList.add('first', 'open');\r\n\tlastElement.classList.add('last');\r\n\r\n\tif (elements.length === 1) {\r\n\t\telements[0].classList.remove('first', 'last');\r\n\t\telements[0].classList.add('has-radius');\r\n\t}\r\n}\r\n\r\n// Scroll in animation logic.\r\nfunction btyIntersection( elements, observer ) {\r\n\tconst offscreen = 'scroll-trigger-offscreen';\r\n\r\n\telements.forEach(\r\n\t\t( el, index ) => {\r\n\t\t\tif ( el.isIntersecting ) {\r\n\t\t\t\tconst target = el.target;\r\n\r\n\t\t\t\tif ( target.classList.contains( offscreen ) ) {\r\n\t\t\t\t\ttarget.classList.remove( offscreen );\r\n\r\n\t\t\t\t\ttarget.setAttribute( 'style', '--animation-order: ' + index + ';' );\r\n\t\t\t\t}\r\n\r\n\t\t\t\tobserver.unobserve( target );\r\n\t\t\t} else {\r\n\t\t\t\tel.target.classList.add( offscreen );\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n}\r\n\r\n// Scroll trigger.\r\nfunction btyScrollAnimationTrigger( doc = document, designMode = false ) {\r\n\tconst selectors = Array.from( doc.getElementsByClassName( 'scroll-trigger' ) );\r\n\tif ( ! selectors.length ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tif ( designMode ) {\r\n\t\tselectors.forEach(\r\n\t\t\t( el ) => {\r\n\t\t\t\tel.classList.add( 'scroll-trigger-design-mode' );\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst observer = new IntersectionObserver(\r\n\t\tbtyIntersection,\r\n\t\t{\r\n\t\t\trootMargin: '0px 0px -20px 0px',\r\n\t\t}\r\n\t);\r\n\r\n\tselectors.forEach( ( el ) => observer.observe( el ) );\r\n}\r\n\r\nclass ArticleImageOverlay extends HTMLElement {\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.applyStylesAndReorder = this.applyStylesAndReorder.bind(this);\r\n\t}\r\n\r\n\tconnectedCallback() {\r\n\t\tthis.applyStylesAndReorder();\r\n\r\n\t\twindow.addEventListener('resize', this.applyStylesAndReorder);\r\n\t\tdocument.addEventListener('shopify:section:load', this.applyStylesAndReorder);\r\n\t\tdocument.addEventListener('shopify:section:select', this.applyStylesAndReorder);\r\n\t\tdocument.addEventListener('shopify:block:select', this.applyStylesAndReorder);\r\n\t}\r\n\r\n\tapplyStylesAndReorder() {\r\n\t\tlet header          \t= document.querySelector('.header.transparent-header'),\r\n\t\t\tbreadcrumb          = document.querySelector('.breadcrumb-section'),\r\n\t\t\tbreadcrumbScrolling = document.querySelector('.breadcrumb-section .scrolling'),\r\n\t\t\tarticleImage        = document.querySelector('.blog-single-section .cover-image'),\r\n\t\t\tisArticleTemplate   = document.body.classList.contains('template-article');\r\n\r\n\t\t// If there's no article image, remove applied styles\r\n\t\tif (!articleImage) {\r\n\t\t\tdocument.body.classList.remove('has-image-cover');\r\n\r\n\t\t\tif (breadcrumb) {\r\n\t\t\t\tbreadcrumb.classList.remove('transparent');\r\n\t\t\t\tbreadcrumb.style.top = ''; // Reset to default\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t} else {\r\n\t\t\tdocument.body.classList.add('has-image-cover');\r\n\t\t}\r\n\r\n\t\tif (breadcrumb && header && articleImage && isArticleTemplate) {\r\n\t\t\tbreadcrumb.classList.add('transparent');\r\n\t\t}\r\n\t}\r\n}\r\n\r\n// Define custom element with a proper name\r\ncustomElements.define('article-image', ArticleImageOverlay);\r\n\r\nclass BreadcrumbOverlay extends HTMLElement {\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.applyStylesAndReorder = this.applyStylesAndReorder.bind(this);\r\n\t}\r\n\r\n\tconnectedCallback() {\r\n\t\tthis.applyStylesAndReorder();\r\n\r\n\t\twindow.addEventListener('resize', this.applyStylesAndReorder);\r\n\t\tdocument.addEventListener('shopify:section:load', this.applyStylesAndReorder);\r\n\t\tdocument.addEventListener('shopify:section:select', this.applyStylesAndReorder);\r\n\t\tdocument.addEventListener('shopify:block:select', this.applyStylesAndReorder);\r\n\t}\r\n\r\n\tdisconnectedCallback() {\r\n\t\twindow.removeEventListener('resize', this.applyStylesAndReorder);\r\n\t\tdocument.removeEventListener('shopify:section:load', this.applyStylesAndReorder);\r\n\t\tdocument.removeEventListener('shopify:section:select', this.applyStylesAndReorder);\r\n\t\tdocument.removeEventListener('shopify:block:select', this.applyStylesAndReorder);\r\n\t}\r\n\r\n\tapplyStylesAndReorder() {\r\n\t\tlet header            = document.querySelector('.header.transparent-header'),\r\n\t\t\tbreadcrumbWrapper = document.querySelector('.breadcrumb-section .section-wrapper');\r\n\r\n\t\tif (!header || !breadcrumbWrapper) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (window.innerWidth > 1) {\r\n\t\t\tlet headerHeight = header.offsetHeight;\r\n\t\t\tbreadcrumbWrapper.style.paddingTop = headerHeight + 'px';\r\n\t\t} else {\r\n\t\t\tbreadcrumbWrapper.style.paddingTop = null;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n// Define custom element with a proper name\r\ncustomElements.define('header-breadcrumb-overlay', BreadcrumbOverlay);\r\n\r\nclass BtyAccordionDetails extends HTMLElement {\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.handlePointerDown = this.handlePointerDown.bind(this);\r\n\t\tthis.handleKeydown = this.handleKeydown.bind(this);\r\n\t\tthis.handleContextMenu = this.handleContextMenu.bind(this);\r\n\r\n\t\tthis._suppressBlurCloseUntil = 0; // guard for right-click & context menu\r\n\t}\r\n\r\n\tconnectedCallback() {\r\n\t\tthis.detailsElements = this.querySelectorAll(\"details\");\r\n\t\t\tif (!this.detailsElements.length) return;\r\n\r\n\t\t\tthis.detailsElements.forEach((details) => {\r\n\t\t\t\tdetails.addEventListener(\"toggle\", () => {\r\n\t\t\t\tconst sum = details.querySelector(\":scope > summary\");\r\n\t\t\t\tif (sum) sum.setAttribute(\"aria-expanded\", details.hasAttribute(\"open\") ? \"true\" : \"false\");\r\n\t\t\t\tthis.closeOthers(details);\r\n\t\t\t});\r\n\t\t\tconst sum = details.querySelector(\":scope > summary\");\r\n\t\t\tif (sum && !sum.hasAttribute(\"aria-expanded\")) {\r\n\t\t\tsum.setAttribute(\"aria-expanded\", details.hasAttribute(\"open\") ? \"true\" : \"false\");\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// Close on primary-button click outside (NOT right/middle)\r\n\t\tdocument.addEventListener(\"pointerdown\", this.handlePointerDown, true);\r\n\r\n\t\t// Esc to close deepest open\r\n\t\tdocument.addEventListener(\"keydown\", this.handleKeydown, true);\r\n\r\n\t\t// Mark contextmenu (right-click) inside to avoid closing\r\n\t\tthis.addEventListener(\"contextmenu\", this.handleContextMenu, true);\r\n\t}\r\n\r\n\tdisconnectedCallback() {\r\n\t\tdocument.removeEventListener(\"pointerdown\", this.handlePointerDown, true);\r\n\t\tdocument.removeEventListener(\"keydown\", this.handleKeydown, true);\r\n\t\tthis.removeEventListener(\"contextmenu\", this.handleContextMenu, true);\r\n\t}\r\n\r\n\tcloseOthers(openedDetails) {\r\n\t\tthis.detailsElements.forEach((details) => {\r\n\t\t\tif (details !== openedDetails) {\r\n\t\t\t\tdetails.removeAttribute(\"open\");\r\n\t\t\t\tdetails.querySelector(\":scope > summary\")?.setAttribute(\"aria-expanded\", \"false\");\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n  \t// Only close on primary-button click outside this component\r\n\thandlePointerDown(event) {\r\n\t\tif (event.button !== 0) return; // ignore right/middle clicks\r\n\t\tif (this.contains(event.target)) return;\r\n\r\n\t\tthis.closeAll();\r\n\t}\r\n\r\n\thandleKeydown(event) {\r\n\t\t// ESC: \u0111\u00F3ng panel \u0111ang m\u1EDF s\u00E2u nh\u1EA5t\r\n\t\tif (event.key === \"Escape\" || event.key === \"Esc\") {\r\n\t\t\tconst openPanels = this.querySelectorAll(\"details[open]\");\r\n\t\t\t// N\u1EBFu b\u00EAn trong component c\u00F3 focus ho\u1EB7c \u0111ang c\u00F3 panel m\u1EDF\r\n\t\t\tif (!openPanels.length && !this.contains(document.activeElement)) return;\r\n\r\n\t\t\tconst deepest = openPanels[openPanels.length - 1];\r\n\t\t\tif (deepest) {\r\n\t\t\t\tevent.preventDefault();\r\n\t\t\t\tdeepest.removeAttribute(\"open\");\r\n\t\t\t\tconst sum = deepest.querySelector(\":scope > summary\");\r\n\t\t\t\tsum?.setAttribute(\"aria-expanded\", \"false\");\r\n\t\t\t\tsum?.focus();\r\n\t\t\t\tevent.stopPropagation();\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// TAB: n\u1EBFu \u0111ang c\u00F3 panel m\u1EDF m\u00E0 focus NH\u1EA2Y RA KH\u1ECEI panel \u2192 \u0111\u00F3ng\r\n\t\tif (event.key === \"Tab\") {\r\n\t\t\tconst openDetails = this.querySelector(\"details[open]\");\r\n\t\t\tif (!openDetails) {\r\n\t\t\t\treturn; // kh\u00F4ng c\u00F3 c\u00E1i n\u00E0o m\u1EDF th\u00EC th\u00F4i\r\n\t\t\t}\r\n\r\n\t\t\t// Sau khi browser move focus xong m\u1EDBi ki\u1EC3m tra\r\n\t\t\trequestAnimationFrame(() => {\r\n\t\t\t\tconst root   = this.getRootNode?.() || document;\r\n\t\t\t\tconst active = root.activeElement || document.activeElement;\r\n\r\n\t\t\t\t// N\u1EBFu focus m\u1EDBi v\u1EABn n\u1EB1m trong panel \u0111ang m\u1EDF \u2192 gi\u1EEF nguy\u00EAn\r\n\t\t\t\tif (active && openDetails.contains(active)) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// N\u1EBFu t\u1EDBi \u0111\u00E2y: focus \u0111\u00E3 ra ngo\u00E0i panel (VD: sang menu kh\u00E1c / icon kh\u00E1c) \u2192 \u0111\u00F3ng\r\n\t\t\t\tthis.closeAll();\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\thandleContextMenu(e) {\r\n\t\t// If right-click happens inside the component, suppress blur-closing briefly\r\n\t\tif (this.contains(e.target)) {\r\n\t\t\t// suppress for a short window to ride out focus/blur churn from context menu\r\n\t\t\tthis._suppressBlurCloseUntil = performance.now() + 400; // ms\r\n\t\t}\r\n\t}\r\n\r\n\tcloseAll() {\r\n\t\tthis.detailsElements.forEach((details) => {\r\n\t\t\tdetails.removeAttribute(\"open\");\r\n\t\t\tdetails.querySelector(\":scope > summary\")?.setAttribute(\"aria-expanded\", \"false\");\r\n\t\t});\r\n  \t}\r\n}\r\n\r\ncustomElements.define('bty-accordion-details', BtyAccordionDetails);\r\n\r\nfunction btyHeaderSticky() {\r\n\tlet header = document.querySelector( '.header.is-sticky' );\r\n\tif ( ! header ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tlet doc            = document.documentElement,\r\n\t\ttop            = (window.pageYOffset || doc.scrollTop) - (doc.clientTop || 0),\r\n\t\tregular        = header.dataset.colorScheme || '',\r\n\t\ttransparent    = header.dataset.transparentScheme || '',\r\n\t\thasTransparent = header.dataset.hasTransparent === 'true'\r\n\t\tthreshold      = header.offsetHeight || 1,\r\n\t\tatTop          = top <= threshold;\r\n\r\n\t// Clean any prior color classes, then apply only what's allowed\r\n\theader.classList.remove(regular, transparent);\r\n\tif (hasTransparent && atTop) {\r\n\t\theader.classList.add(transparent);\r\n\t} else {\r\n\t\theader.classList.add(regular);\r\n\t}\r\n\r\n\t// Your existing solid state after scroll\r\n\theader.classList.toggle('solid-sticky', !atTop);\r\n\theader.classList.toggle('is-scrolled', !atTop);\r\n}\r\n\r\nclass PopupHandler extends HTMLElement {\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t}\r\n\r\n\tconnectedCallback() {\r\n\t\tconst dots      = this.querySelector( '.dot' );\r\n\t\tconst itemInner = this.querySelector( '.item-inner' );\r\n\t\tconst body      = document.body;\r\n\r\n\t\tif (!dots || !itemInner) return;\r\n\r\n\t\tdots.addEventListener('click', (e) => {\r\n\t\t\te.stopPropagation();\r\n\t\t\tbody.classList.add( 'popup-map' );\r\n\t\t\titemInner.classList.add( 'show-inner' );\r\n\t\t});\r\n\r\n\t\titemInner.addEventListener('click', (e) => {\r\n\t\t\te.stopPropagation();\r\n\t\t});\r\n\r\n\t\tdocument.addEventListener('click', () => {\r\n\t\t\tbody.classList.remove( 'popup-map' );\r\n\t\t\titemInner.classList.remove( 'show-inner' );\r\n\t\t});\r\n\t}\r\n}\r\n\r\ncustomElements.define( 'popup-handler', PopupHandler );\r\n\r\nfunction btyToggleNavMenu ( doc = document ) {\r\n\tlet selectors = doc.querySelectorAll( '.header-navigation .menu-item .menu-toggle' );\r\n\r\n\tif ( ! selectors.length ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tselectors.forEach(\r\n\t\tfunction ( el ) {\r\n\t\t\tlet parent = el.parentNode;\r\n\r\n\t\t\tel.onclick = function() {\r\n\t\t\t\tparent.classList.toggle( 'open' );\r\n\t\t\t}\r\n\r\n\t\t\tdocument.addEventListener(\r\n\t\t\t\t'click',\r\n\t\t\t\t(event) => {\r\n\t\t\t\t\tif ( ! parent.contains( event.target ) ) {\r\n\t\t\t\t\t\tparent.classList.remove( 'open' );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\t);\r\n}\r\n/**\r\n * Predictive Search\r\n *\r\n * @package Dev\r\n */\r\n\r\nclass PredictiveSearch extends HTMLElement {\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.input                   = document.querySelector('.quick-search-form input[type=\"search\"]');\r\n\t\tthis.predictiveSearchResults = document.querySelector('#predictive-search'); // s\u1EEDa \u1EDF \u0111\u00E2y\r\n\t\tthis.modalSearch             = document.querySelector('.quick-search-form .search-modal');\r\n\t\tthis.searchButton            = document.querySelector('.quick-search-form .align-view-all');\r\n\t\tthis.resetButton             = document.querySelector('.quick-search .reset-button');\r\n\t\tthis.closeButton             = document.querySelector('.quick-search .close-search-button');\r\n\t\tthis.container               = document.querySelector('.quick-search-container');\r\n\r\n\t\tif (!this.input || !this.predictiveSearchResults) {\r\n\t\t\tconsole.warn('[PredictiveSearch] Required DOM elements not found.');\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.input.addEventListener(\r\n\t\t\t'input',\r\n\t\t\tthis.debounce((event) => {\r\n\t\t\t\tthis.onChange(event);\r\n\t\t\t\tthis.toggleResetButton();\r\n\t\t\t}, 300)\r\n\t\t);\r\n\r\n\t\tthis.input.addEventListener('focus', (event) => this.onFocus(event));\r\n\r\n\t\tdocument.querySelector('.quick-search-form')?.addEventListener('reset', this.onFormReset.bind(this));\r\n\r\n\t\tif (this.resetButton) {\r\n\t\t\tthis.resetButton.addEventListener('click', () => {\r\n\t\t\t\tthis.input.value = '';\r\n\t\t\t\tthis.input.dispatchEvent(new Event('input', { bubbles: true }));\r\n\t\t\t\tthis.input.focus();\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (this.closeButton) {\r\n\t\t\tthis.closeButton.addEventListener('click', () => {\r\n\t\t\t\tdocument.documentElement.classList.remove('quick-search-open');\r\n\t\t\t\tdocument.querySelector('.quick-search')?.setAttribute('aria-hidden', 'true');\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\twindow.addEventListener('resize', () => {\r\n\t\t\tif (this.hasAttribute('results')) {\r\n\t\t\t\tthis.predictiveSearchResults.style.maxHeight = `${this.getResultsMaxHeight()}px`;\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tdocument.addEventListener('mousedown', (event) => {\r\n\t\t\tconst target = event.target;\r\n\t\t\tconst isInside = target.closest('.quick-search-container');\r\n\t\t\tconst isClose = target.closest('.close-search-button');\r\n\r\n\t\t\tif (!isInside && !isClose && this.hasAttribute('open')) {\r\n\t\t\t\tdocument.documentElement.classList.remove('quick-search-open');\r\n\t\t\t\tdocument.querySelector('.quick-search')?.setAttribute('aria-hidden', 'true');\r\n\t\t\t\tthis.close();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tgetQuery() {\r\n\t\treturn this.input.value.trim();\r\n\t}\r\n\r\n\tonFocus() {\r\n\t\tthis.open();\r\n\t}\r\n\r\n\tonChange() {\r\n\t\tconst searchTerm = this.getQuery();\r\n\t\tconst defaultSearch = document.querySelector('.default-search');\r\n\r\n\t\tif (searchTerm.length > 0) {\r\n\t\t\tthis.getSearchResults(searchTerm);\r\n\t\t\tif (defaultSearch) defaultSearch.classList.add('hidden');\r\n\t\t} else {\r\n\t\t\tthis.close();\r\n\t\t\tif (defaultSearch) defaultSearch.classList.remove('hidden');\r\n\t\t}\r\n\t}\r\n\r\n\tgetSearchResults(searchTerm) {\r\n\t\tfetch(`/search/suggest?q=${searchTerm}&resources[type]=query,product,collection,page,article&section_id=predictive-search`)\r\n\t\t\t.then((response) => {\r\n\t\t\t\tif (!response.ok) {\r\n\t\t\t\t\tthis.close();\r\n\t\t\t\t\tthrow new Error(response.status);\r\n\t\t\t\t}\r\n\t\t\t\treturn response.text();\r\n\t\t\t})\r\n\t\t\t.then((text) => {\r\n\t\t\t\tconst htmlDoc = new DOMParser().parseFromString(text, 'text/html');\r\n\t\t\t\tconst section = htmlDoc.querySelector('#shopify-section-predictive-search');\r\n\r\n\t\t\t\tconst resultsMarkup = section?.innerHTML;\r\n\t\t\t\tif (!resultsMarkup) return;\r\n\r\n\t\t\t\tthis.predictiveSearchResults.innerHTML = '';\r\n\t\t\t\tthis.predictiveSearchResults.insertAdjacentHTML('beforeend', resultsMarkup);\r\n\r\n\t\t\t\t// Re-initialize any dynamic JS components\r\n\t\t\t\tbtyAnimationImageLoad(this.predictiveSearchResults);\r\n\t\t\t\tbtyQuickView(this.predictiveSearchResults);\r\n\t\t\t\tbtyAddToCart(this.predictiveSearchResults);\r\n\t\t\t\tbtyQuickAdd(this.predictiveSearchResults);\r\n\t\t\t\tbtySwatch(this.predictiveSearchResults);\r\n\t\t\t\tbtyHoverMediaVideo(this.predictiveSearchResults);\r\n\r\n\t\t\t\tthis.open();\r\n\t\t\t\tdocument.dispatchEvent(new CustomEvent('product-card-updated'));\r\n\t\t\t})\r\n\t\t\t.catch((error) => {\r\n\t\t\t\tthis.close();\r\n\t\t\t\tconsole.error('PredictiveSearch error:', error);\r\n\t\t\t});\r\n\t}\r\n\r\n\tgetResultsMaxHeight() {\r\n\t\tconst inputRect = this.input?.getBoundingClientRect();\r\n\t\tif (!inputRect) return 300; // fallback default\r\n\r\n\t\tconst offsetBottom = inputRect.bottom;\r\n\t\tlet subtractHeight;\r\n\r\n\t\tif (window.innerWidth >= 768) {\r\n\t\t\tsubtractHeight = 32 + 152;\r\n\t\t} else {\r\n\t\t\tsubtractHeight = 32;\r\n\t\t}\r\n\r\n\t\tthis.resultsMaxHeight = window.innerHeight - offsetBottom - subtractHeight;\r\n\t\treturn this.resultsMaxHeight;\r\n\t}\r\n\r\n\r\n\ttoggleResetButton() {\r\n\t\tconst resetIsHidden = this.resetButton?.classList.contains('hidden');\r\n\t\tif (this.input.value.length > 0 && resetIsHidden) {\r\n\t\t\tthis.searchButton?.classList.remove('hidden');\r\n\t\t\tthis.resetButton?.classList.remove('hidden');\r\n\t\t} else if (this.input.value.length === 0 && !resetIsHidden) {\r\n\t\t\tthis.searchButton?.classList.add('hidden');\r\n\t\t\tthis.resetButton?.classList.add('hidden');\r\n\t\t}\r\n\t}\r\n\r\n\tshouldResetForm() {\r\n\t\treturn !document.querySelector('[aria-selected=\"true\"] a');\r\n\t}\r\n\r\n\tonFormReset(event) {\r\n\t\tevent.preventDefault();\r\n\t\tif (this.shouldResetForm()) {\r\n\t\t\tthis.input.value = '';\r\n\t\t\tthis.input.focus();\r\n\t\t\tthis.toggleResetButton();\r\n\t\t\tthis.close();\r\n\t\t}\r\n\t}\r\n\r\n\topen() {\r\n\t\tthis.setAttribute('results', true);\r\n\t\tthis.setAttribute('open', true);\r\n\t\tthis.input.setAttribute('aria-expanded', true);\r\n\t\tthis.predictiveSearchResults.style.maxHeight = `${this.getResultsMaxHeight()}px`;\r\n\t}\r\n\r\n\tclose() {\r\n\t\tthis.removeAttribute('results');\r\n\t\tthis.input.setAttribute('aria-expanded', false);\r\n\t\tthis.resultsMaxHeight = false;\r\n\t\tthis.predictiveSearchResults.removeAttribute('style');\r\n\t}\r\n\r\n\tdebounce(fn, wait) {\r\n\t\tlet t;\r\n\t\treturn (...args) => {\r\n\t\t\tclearTimeout(t);\r\n\t\t\tt = setTimeout(() => fn.apply(this, args), wait);\r\n\t\t};\r\n\t}\r\n}\r\n\r\ncustomElements.define('predictive-search', PredictiveSearch);\r\n\r\nclass ScrollingHandler extends HTMLElement {\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.width     = 0;\r\n\t\tthis.scrolling = this.querySelector( '.scrolling-inner' );\r\n\r\n\t\twindow.addEventListener( 'DOMContentLoaded', this.handler.bind( this ) );\r\n\t\twindow.addEventListener( 'resize', this.handler.bind( this ) );\r\n\r\n\t\tdocument.addEventListener( 'shopify:section:load', this.handler.bind( this ) );\r\n\t\tdocument.addEventListener( 'shopify:section:select', this.handler.bind( this ) );\r\n\t\tdocument.addEventListener( 'shopify:block:select', this.handler.bind( this ) );\r\n\t\tdocument.addEventListener( 'product-card-updated', this.handler.bind( this ) );\r\n\t}\r\n\r\n\thandler() {\r\n\t\tif ( this.width == window.innerWidth ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.width = window.innerWidth;\r\n\t\tthis.scrolling.classList.remove( 'scrolling-animation' );\r\n\t\tlet boxes = this.querySelectorAll( '.scrolling-dup' );\r\n\t\tif ( boxes.length ) {\r\n\t\t\tboxes.forEach(e => e.remove());\r\n\t\t}\r\n\r\n\t\tlet localWidth = this.closest( '.scrolling-wrapper' ).offsetWidth,\r\n\t\t\tlength     = localWidth / this.scrolling.offsetWidth,\r\n\t\t\tdup        = false;\r\n\r\n\t\tlength = length == Infinity ? 5 : length;\r\n\r\n\t\tfor ( let i = 0; i < length; i++ ) {\r\n\t\t\tdup = this.scrolling.cloneNode( true );\r\n\t\t\tdup.classList.add( 'scrolling-dup', 'scrolling-animation' );\r\n\t\t\tthis.prepend( dup );\r\n\t\t}\r\n\r\n\t\tthis.scrolling.classList.add( 'scrolling-animation' );\r\n\t}\r\n}\r\ncustomElements.define( 'scrolling-item', ScrollingHandler );\r\nclass SearchForm extends HTMLElement {\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.input        = this.querySelector('.quick-search-form input[type=\"search\"]');\r\n\t\tthis.searchButton = this.querySelector( '.quick-search-form .search-button' );\r\n\t\tthis.resetButton  = this.querySelector('.quick-search-form .reset-button');\r\n\r\n\t\tif (this.input) {\r\n\t\t\tthis.input.form.addEventListener( 'reset', this.onFormReset.bind( this ) );\r\n\t\t\tthis.input.addEventListener(\r\n\t\t\t\t'input',\r\n\t\t\t\tthis.debounce(\r\n\t\t\t\t\t(event) => {\r\n\t\t\t\t\t\tthis.onChange(event);\r\n\t\t\t\t\t},\r\n\t\t\t\t\t300\r\n\t\t\t\t).bind( this )\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\ttoggleResetButton() {\r\n\t\tconst resetIsHidden = this.resetButton.classList.contains( 'hidden' );\r\n\t\tif ( this.input.value.length > 0 && resetIsHidden ) {\r\n\t\t\tthis.searchButton.classList.add( 'hidden' );\r\n\t\t\tthis.resetButton.classList.remove( 'hidden' );\r\n\t\t} else if ( this.input.value.length === 0 && !resetIsHidden ) {\r\n\t\t\tthis.searchButton.classList.remove( 'hidden' );\r\n\t\t\tthis.resetButton.classList.add( 'hidden' );\r\n\t\t}\r\n\t}\r\n\r\n\tonChange() {\r\n\t\tthis.toggleResetButton();\r\n\t}\r\n\r\n\tshouldResetForm() {\r\n\t\treturn !document.querySelector('[aria-selected=\"true\"] a');\r\n\t}\r\n\r\n\tonFormReset(event) {\r\n\t\t// Prevent default so the form reset doesn't set the value gotten from the url on page load\r\n\t\tevent.preventDefault();\r\n\t\t// Don't reset if the user has selected an element on the predictive search dropdown\r\n\t\tif ( this.shouldResetForm() ) {\r\n\t\t\tthis.input.value = '';\r\n\t\t\tthis.input.focus();\r\n\t\t\tthis.toggleResetButton();\r\n\t\t}\r\n\t}\r\n\r\n\tdebounce(fn, wait) {\r\n\t\tlet t;\r\n\t\treturn (...args) => {\r\n\t\t\tclearTimeout( t );\r\n\t\t\tt = setTimeout( () => fn.apply( this, args ), wait );\r\n\t\t};\r\n\t}\r\n}\r\n\r\ncustomElements.define('search-form', SearchForm);\r\n\r\n// Featured product slider.\r\nfunction btyFeaturedProductSlider( doc = document ) {\r\n\tlet selectors = doc.querySelectorAll( '.featured-products-wrapper .product-gallery[data-id=\"layout-1\"]' );\r\n\r\n\tif ( ! selectors.length ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tselectors.forEach(\r\n\t\tfunction( el ) {\r\n\t\t\tlet swiper_thumbs,\r\n\t\t\t\tswiper_main,\r\n\t\t\t\tgallery_media  = el.querySelector( '.gallery-media' ),\r\n\t\t\t\tgallery_thumbs = el.querySelector( '.gallery-thumbs' );\r\n\r\n\t\t\tif ( ! gallery_media || ! gallery_thumbs ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tswiper_thumbs = new Swiper(\r\n\t\t\t\tgallery_thumbs,\r\n\t\t\t\t{\r\n\t\t\t\t\tdirection: 'horizontal',\r\n\t\t\t\t\tspaceBetween: 4,\r\n\t\t\t\t\tslidesPerView: 3,\r\n\t\t\t\t\tfreeMode: false,\r\n\t\t\t\t\twatchSlidesVisibility: true,\r\n\t\t\t\t\twatchSlidesProgress: true,\r\n\t\t\t\t\twatchOverflow: true,\r\n\t\t\t\t\tnavigation: {\r\n\t\t\t\t\t\tnextEl: el.querySelector( '.swiper-button-next' ),\r\n\t\t\t\t\t\tprevEl: el.querySelector( '.swiper-button-prev' )\r\n\t\t\t\t\t},\r\n\t\t\t\t\tbreakpoints: {\r\n\t\t\t\t\t\t992: {\r\n\t\t\t\t\t\t\tslidesPerView: 4\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t);\r\n\r\n\t\t\tswiper_main = new Swiper(\r\n\t\t\t\tgallery_media,\r\n\t\t\t\t{\r\n\t\t\t\t\tspaceBetween: 20,\r\n\t\t\t\t\tthumbs: {\r\n\t\t\t\t\t\tswiper: swiper_thumbs\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\t);\r\n}\r\nclass ImageSpotlightSection extends HTMLElement {\r\n\tconnectedCallback() {\r\n\t\tconst items = this.querySelectorAll('.item');\r\n\r\n\t\titems.forEach(item => {\r\n\t\t\titem.addEventListener('click', (e) => {\r\n\t\t\t\tconst id = item.getAttribute('data-id');\r\n\t\t\t\tif (!id) return;\r\n\r\n\t\t\t\tconst dot = this.querySelector(`.unity-dot[data-id=\"${id}\"]`);\r\n\t\t\t\tif (dot) dot.click();\r\n\r\n\t\t\t\t// set active cho item click\r\n\t\t\t\titems.forEach(el => el.classList.remove('active'));\r\n\t\t\t\titem.classList.add('active');\r\n\r\n\t\t\t\t// ch\u1EB7n event bubbling \u0111\u1EC3 kh\u00F4ng b\u1ECB remove ngay khi click trong item\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\t// click ra ngo\u00E0i item-inner th\u00EC remove active\r\n\t\tdocument.addEventListener('click', (e) => {\r\n\t\t\t// n\u1EBFu click kh\u00F4ng n\u1EB1m trong .item-inner th\u00EC remove\r\n\t\t\tif (!e.target.closest('.item-inner')) {\r\n\t\t\t\titems.forEach(el => el.classList.remove('active'));\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (Shopify.designMode) {\r\n\t\t\tdocument.addEventListener('shopify:block:select', (e) => {\r\n\t\t\t\tconst blockId = e.detail.blockId;\r\n\t\t\t\tconst selectedItem = this.querySelector(`.item[data-block-id=\"${blockId}\"]`);\r\n\t\t\t\tif (!selectedItem) return;\r\n\r\n\t\t\t\titems.forEach(el => el.classList.remove('active'));\r\n\t\t\t\tselectedItem.classList.add('active');\r\n\t\t\t\tselectedItem.click();\r\n\t\t\t});\r\n\r\n\t\t\tdocument.addEventListener('shopify:block:deselect', () => {\r\n\t\t\t\titems.forEach(el => el.classList.remove('active'));\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n}\r\n\r\ncustomElements.define('image-spotlight-section', ImageSpotlightSection);\r\n\r\nclass LoadMore extends HTMLElement {\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.items          = [...document.querySelectorAll( '.location-grid-section .column-item' )];\r\n\t\tthis.loadMoreButton = document.querySelector( '.location-grid-section .load-more' );\r\n\t\tthis.currentIndex   = 0;\r\n\t\tthis.itemsPerLoad   = this.getItemsPerRow();\r\n\t\tthis.handleResize   = this.handleResize.bind( this );\r\n\t}\r\n\r\n\tconnectedCallback() {\r\n\t\tthis.init();\r\n\t\twindow.addEventListener( 'resize', this.handleResize );\r\n\t}\r\n\r\n\tdisconnectedCallback() {\r\n\t\twindow.removeEventListener( 'resize', this.handleResize );\r\n\t}\r\n\r\n\tgetItemsPerRow() {\r\n\t\treturn parseInt( document.querySelector( '.location-grid-section .multicolumn-inner' ).getAttribute( 'data-row' ), 10 );\r\n\t}\r\n\r\n\tinit() {\r\n\t\tthis.itemsPerLoad = this.getItemsPerRow();\r\n\t\tlet initialLoad   = this.itemsPerLoad * 2;\r\n\r\n\t\tthis.items.forEach(( item, index ) => {\r\n\t\t\titem.style.display = index < initialLoad ? 'block' : 'none';\r\n\t\t});\r\n\r\n\t\tthis.currentIndex = initialLoad;\r\n\t\tthis.updateButtonState();\r\n\t\tthis.loadMoreButton.addEventListener( 'click', () => this.loadItems() );\r\n\t}\r\n\r\n\tloadItems() {\r\n\t\tlet endIndex = this.currentIndex + this.itemsPerLoad;\r\n\r\n\t\tthis.items.slice( this.currentIndex, endIndex ).forEach(item => {\r\n\t\t\titem.style.display = 'block';\r\n\t\t});\r\n\r\n\t\tthis.currentIndex = endIndex;\r\n\t\tthis.updateButtonState();\r\n\t}\r\n\r\n\tupdateButtonState() {\r\n\t\tthis.loadMoreButton.style.display = (this.currentIndex >= this.items.length) ? 'none' : 'block';\r\n\t}\r\n\r\n\thandleResize() {\r\n\t\tthis.itemsPerLoad = this.getItemsPerRow();\r\n\t}\r\n}\r\n\r\ncustomElements.define( 'load-more', LoadMore );\r\ndocument.addEventListener( 'DOMContentLoaded', () => {\r\n    const checkGrid = setInterval(() => {\r\n        if ( document.querySelector( '.location-grid-section .multicolumn-inner' ) ) {\r\n            clearInterval( checkGrid );\r\n            new LoadMore();\r\n        }\r\n    }, 100);\r\n});\r\n\r\n// Marquee.\r\nclass MarqueeHandler extends HTMLElement {\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.width = 0;\r\n\t\tthis.marquee = this.querySelector( '.marquee-wrapper' );\r\n\t\tsetTimeout( this.resizeHandler.bind( this ), 100 );\r\n\t\twindow.addEventListener( 'resize', this.resizeHandler.bind( this ), false );\r\n\t\tthis.querySelectorAll( '[loading]' ).forEach(\r\n\t\t\t( item ) => {\r\n\t\t\t\titem.removeAttribute( 'loading' );\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\tresizeHandler(){\r\n\t\tif ( this.width == window.innerWidth ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.width = window.innerWidth;\r\n\t\tthis.marquee.classList.remove( 'marquee-animation' );\r\n\t\tlet boxes = this.querySelectorAll( '.marquee-dup' );\r\n\r\n\t\tif ( boxes.length ) {\r\n\t\t\tboxes.forEach(e => e.remove());\r\n\t\t}\r\n\r\n\t\tlet local_width = this.closest( '.marquee-section' ).offsetWidth,\r\n\t\t\tlength      = local_width / this.marquee.offsetWidth,\r\n\t\t\tdup         = false;\r\n\r\n\t\tlength = length == Infinity ? 5 : length;\r\n\r\n\t\tfor ( let i = 0; i < length; i++ ) {\r\n\t\t\tdup = this.marquee.cloneNode( true );\r\n\t\t\tdup.classList.add( 'marquee-dup', 'marquee-animation' );\r\n\t\t\tthis.prepend( dup );\r\n\t\t}\r\n\r\n\t\tthis.marquee.classList.add( 'marquee-animation' );\r\n\t}\r\n}\r\ncustomElements.define( 'marquee-section', MarqueeHandler );\r\n\r\n// Marquee vertical.\r\nclass MarqueeHandlerHeight extends HTMLElement {\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.height  = 0;\r\n\t\tthis.marquee = this.querySelector( '.two-marquee .marquee-wrapper' );\r\n\r\n\t\tsetTimeout( this.resizeHandler.bind( this ), 100 );\r\n\t\twindow.addEventListener( 'resize', this.resizeHandler.bind( this ), false );\r\n\r\n\t\tthis.querySelectorAll( '[loading]' ).forEach( ( item ) => {\r\n\t\t\titem.removeAttribute( 'loading' );\r\n\t\t});\r\n\t}\r\n\r\n\tresizeHandler() {\r\n\t\tif (this.height === window.innerHeight) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.height = window.innerHeight;\r\n\t\tthis.marquee.classList.remove( 'marquee-animation' );\r\n\r\n\t\tlet boxes = this.querySelectorAll( '.marquee-dup' );\r\n\t\tif (boxes.length) {\r\n\t\t\tboxes.forEach( ( e ) => e.remove() );\r\n\t\t}\r\n\r\n\t\tlet marqueeSection = this.closest( '.two-columns' );\r\n\r\n\t\tif ( ! marqueeSection ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlet local_height = marqueeSection.offsetHeight,\r\n\t\t\tlength       = local_height / this.marquee.offsetHeight,\r\n\t\t\tdup          = false;\r\n\r\n\t\tlength = length === Infinity?5 : Math.ceil( length );\r\n\r\n\t\tfor (let i = 0; i < length; i++) {\r\n\t\t\tdup = this.marquee.cloneNode( true );\r\n\t\t\tdup.classList.add( 'marquee-dup' );\r\n\t\t\tthis.append( dup );\r\n\t\t}\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.querySelectorAll( '.marquee-dup, .marquee-wrapper' ).forEach(( item ) => {\r\n\t\t\t\titem.classList.add( 'marquee-animation' );\r\n\t\t\t});\r\n\t\t}, 50);\r\n\t}\r\n}\r\n\r\ncustomElements.define( 'marquee-vertical', MarqueeHandlerHeight );\r\n// Marquee.\r\nclass ScrollingTextHandler extends HTMLElement {\r\n\tconstructor() {\r\n\t\tsuper();\r\n\r\n\t\tthis.width = 0;\r\n\t\tthis.scrolling = this.querySelector( '.scrolling-wrapper' );\r\n\t\tsetTimeout( this.resizeHandler.bind( this ), 100 );\r\n\t\twindow.addEventListener( 'resize', this.resizeHandler.bind( this ), false );\r\n\t\tthis.querySelectorAll( '[loading]' ).forEach(\r\n\t\t\t( item ) => {\r\n\t\t\t\titem.removeAttribute( 'loading' );\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tconnectedCallback() {\r\n\t\tthis.width   = 0;\r\n\t\tthis.wrapper = this.parentNode;\r\n\t\tthis.item    = this.querySelector( '.scrolling-animation' );\r\n\r\n\t\twindow.addEventListener( 'DOMContentLoaded', this.resizeHandler.bind( this ) );\r\n\t\twindow.addEventListener( 'resize', this.resizeHandler.bind( this ) );\r\n\r\n\t\tdocument.addEventListener( 'shopify:section:load', this.resizeHandler.bind( this ) );\r\n\t\tdocument.addEventListener( 'shopify:section:select', this.resizeHandler.bind( this ) );\r\n\t\tdocument.addEventListener( 'shopify:block:select', this.resizeHandler.bind( this ) );\r\n\t}\r\n\r\n\tresizeHandler(){\r\n\t\tif ( this.width == window.innerWidth ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.width = window.innerWidth;\r\n\t\tthis.scrolling.classList.remove( 'scrolling-animation' );\r\n\t\tlet boxes = this.querySelectorAll( '.scrolling-dup' );\r\n\r\n\t\tif ( boxes.length ) {\r\n\t\t\tboxes.forEach(e => e.remove());\r\n\t\t}\r\n\r\n\t\tlet local_width = this.offsetWidth,\r\n\t\t\tlength      = local_width / this.scrolling.offsetWidth,\r\n\t\t\tdup         = false;\r\n\r\n\t\tlength = length == Infinity ? 5 : length;\r\n\r\n\t\tfor ( let i = 0; i < length; i++ ) {\r\n\t\t\tdup = this.scrolling.cloneNode( true );\r\n\t\t\tdup.classList.add( 'scrolling-dup', 'scrolling-animation' );\r\n\t\t\tthis.prepend( dup );\r\n\t\t}\r\n\r\n\t\tthis.scrolling.classList.add( 'scrolling-animation' );\r\n\t}\r\n}\r\ncustomElements.define( 'scrolling-promotion-section', ScrollingTextHandler );\r\nfunction setupThumbProgress(section) {\r\n\tlet $$ = (root, sel) => Array.from(root.querySelectorAll(sel));\r\n\r\n\tlet getEmbla = (el) => {\r\n\t\tif (el.slider) return el.slider;\r\n\t\tlet map = window.__unitySliderInstances;\r\n\t\tif (map instanceof Map) {\r\n\t\t\tlet id = el.closest('[id^=\"shopify-section-\"]')?.id;\r\n\t\t\tlet inst = id ? map.get(id) : null;\r\n\t\t\treturn inst?.slider || inst || null;\r\n\t\t}\r\n\t\treturn null;\r\n\t};\r\n\r\n\t// Add <span class=\"progress-arc\"> into each thumb if missing\r\n\tlet ensureArcs = (thumbs) => {\r\n\t\tthumbs.forEach((btn) => {\r\n\t\t\tif (!btn.querySelector('.progress-arc')) {\r\n\t\t\t\tlet arc = document.createElement('span');\r\n\t\t\t\tarc.className = 'progress-arc';\r\n\t\t\t\tarc.setAttribute('aria-hidden', 'true');\r\n\t\t\t\tbtn.prepend(arc);\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\t// Get the currently active thumb index based on .unity-thumbs-slide-selected\r\n\tlet activeIdxFromDOM = (sliderEl, thumbs) => {\r\n\t\tlet slide = sliderEl.querySelector('.unity-thumbs-slide-selected');\r\n\t\tif (!slide) return 0;\r\n\t\tlet btn = slide.querySelector('.unity-thumb-number');\r\n\t\tlet i = thumbs.indexOf(btn);\r\n\t\treturn i >= 0 ? i : 0;\r\n\t};\r\n\r\n\t// Write progress to the thumb's arc\r\n\tlet setArc = (btn, ratio) => {\r\n\t\tlet arc = btn?.querySelector('.progress-arc');\r\n\t\tif (!arc) return;\r\n\t\tlet r = Math.max(0, Math.min(1, ratio));\r\n\t\tarc.style.setProperty('--deg', (r * 360) + 'deg');\r\n\t};\r\n\r\n\t// Fallback manual advance if no embla: just move the .unity-thumbs-slide-selected class\r\n\tlet fallbackAdvanceSelectedThumb = (sliderEl, thumbs) => {\r\n\t\tlet cur = activeIdxFromDOM(sliderEl, thumbs);\r\n\t\tlet next = cur + 1;\r\n\t\tif (next >= thumbs.length) next = 0;\r\n\r\n\t\t// remove current selected class from all slides\r\n\t\tsliderEl.querySelectorAll('.unity-thumbs-slide-selected').forEach((n) => {\r\n\t\t\tn.classList.remove('unity-thumbs-slide-selected');\r\n\t\t});\r\n\r\n\t\t// add selected class to the next thumb's wrapper\r\n\t\tlet targetThumb = thumbs[next];\r\n\t\tif (!targetThumb) return;\r\n\t\tlet wrap = targetThumb.closest('.unity-thumbs-slide');\r\n\t\tif (wrap) {\r\n\t\t\twrap.classList.add('unity-thumbs-slide-selected');\r\n\t\t}\r\n\t};\r\n\r\n\tlet root = section || document;\r\n\r\n\t// scope to slideshow-section only\r\n\tlet sliders = root.querySelectorAll('.slideshow-section unity-slider');\r\n\r\n\tsliders.forEach((sliderEl) => {\r\n\t\tif (sliderEl.__thumbProgressInit) return;\r\n\t\tsliderEl.__thumbProgressInit = true;\r\n\r\n\t\tlet embla    = getEmbla(sliderEl);\r\n\t\tlet viewport = sliderEl.querySelector('.unity-slider-viewport');\r\n\t\tlet wrap     = sliderEl.querySelector('.unity-thumbs-slider-container')\r\n\t\t             || sliderEl.querySelector('.thumb-slider')\r\n\t\t             || sliderEl;\r\n\t\tlet thumbs   = $$(sliderEl, '.unity-thumb-number');\r\n\r\n\t\t// autoplay duration (ms)\r\n\t\tlet autoplayMs = Number(sliderEl.options?._autoplay) || 5000;\r\n\t\tif (!thumbs.length || autoplayMs < 1) return;\r\n\r\n\t\tensureArcs(thumbs);\r\n\r\n\t\tlet raf    = 0;\r\n\t\tlet t0     = null;\r\n\t\tlet paused = false;\r\n\r\n\t\tlet clearOthers = () => {\r\n\t\t\tlet a = activeIdxFromDOM(sliderEl, thumbs);\r\n\t\t\tthumbs.forEach((b, i) => {\r\n\t\t\t\tif (i !== a) setArc(b, 0);\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tlet advanceSlide = () => {\r\n\t\t\tif (embla && typeof embla.scrollNext === 'function') {\r\n\t\t\t\tembla.scrollNext();\r\n\t\t\t} else {\r\n\t\t\t\tfallbackAdvanceSelectedThumb(sliderEl, thumbs);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tlet step = (ts) => {\r\n\t\t\tif (t0 == null) t0 = ts;\r\n\r\n\t\t\tif (!paused) {\r\n\t\t\t\tlet i = activeIdxFromDOM(sliderEl, thumbs);\r\n\t\t\t\tlet progress = (ts - t0) / autoplayMs;\r\n\r\n\t\t\t\tsetArc(thumbs[i], progress);\r\n\r\n\t\t\t\tif (progress >= 1) {\r\n\t\t\t\t\tadvanceSlide();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\traf = requestAnimationFrame(step);\r\n\t\t};\r\n\r\n\t\tlet restart = () => {\r\n\t\t\tcancelAnimationFrame(raf);\r\n\t\t\tt0 = null;\r\n\t\t\tpaused = false;\r\n\t\t\tclearOthers();\r\n\t\t\traf = requestAnimationFrame(step);\r\n\t\t};\r\n\r\n\t\t// Embla tells us slide actually changed\r\n\t\tif (embla && embla.on) {\r\n\t\t\tembla.on('select', () => {\r\n\t\t\t\tsetTimeout(restart, 20);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t// MutationObserver fallback if theme updates .unity-thumbs-slide-selected manually\r\n\t\tif (wrap) {\r\n\t\t\tlet mo = new MutationObserver(() => {\r\n\t\t\t\tsetTimeout(restart, 0);\r\n\t\t\t});\r\n\t\t\tmo.observe(wrap, {\r\n\t\t\t\tsubtree: true,\r\n\t\t\t\tchildList: true,\r\n\t\t\t\tattributes: true,\r\n\t\t\t\tattributeFilter: ['class']\r\n\t\t\t});\r\n\t\t\tsliderEl.__thumbProgressObserver = mo;\r\n\t\t}\r\n\r\n\t\t// Manual thumb click should also restart timer\r\n\t\tsliderEl.addEventListener('click', (e) => {\r\n\t\t\tif (e.target.closest('.unity-thumb-number')) {\r\n\t\t\t\tsetTimeout(restart, 0);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// Start the loop\r\n\t\tclearOthers();\r\n\t\traf = requestAnimationFrame(step);\r\n\r\n\t\t// Cleanup if section unloads\r\n\t\tsliderEl.__thumbProgressCleanup = () => {\r\n\t\t\tcancelAnimationFrame(raf);\r\n\t\t\tsliderEl.__thumbProgressObserver?.disconnect();\r\n\t\t\t[viewport, wrap].filter(Boolean).forEach((el) => {\r\n\t\t\t\tel.replaceWith(el);\r\n\t\t\t});\r\n\t\t};\r\n\t});\r\n}\r\n\r\nfunction btyShortDescription( doc = document ) {\r\n\tlet button  = doc.querySelector( '.read-more-btn' );\r\n\tlet short   = doc.querySelector( '.short-content' );\r\n\tlet content = doc.querySelector( '.full-content' );\r\n\r\n\tif ( ! short || ! button || ! content ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tif ( button ) {\r\n\t\tconst buttonHandle = function() {\r\n\t\t\tif ( content.style.display === \"none\" ) {\r\n\t\t\t\tshort.style.display   = \"none\";\r\n\t\t\t\tcontent.style.display = \"block\";\r\n\t\t\t\tbutton.textContent    = btyStrings.product.read_less;\r\n\t\t\t} else {\r\n\t\t\t\tcontent.style.display = \"none\";\r\n\t\t\t\tshort.style.display   = \"block\";\r\n\t\t\t\tbutton.textContent    = btyStrings.product.read_more;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tbutton.addEventListener( 'click', buttonHandle );\r\n\t}\r\n}\r\n\r\n// Update Progress Bar Cart.\r\nfunction btyUpdateProgressBarCart( cartTotal, itemCount  ) {\r\n\tconst progressWrapper = document.getElementById( 'cart-progress-wrapper' );\r\n\r\n\tif ( ! progressWrapper ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst moneyFormat            = progressWrapper.dataset.moneyFormat;\r\n\tconst preGoalMessageTemplate = progressWrapper.dataset.preGoalMessageTemplate;\r\n\tconst postGoalMessage        = progressWrapper.dataset.postGoalMessage;\r\n\r\n\tconst progressBar        = document.getElementById( 'cart-progress-bar' );\r\n\tconst goalMessageElement = document.querySelector( '.goal-message' );\r\n\r\n\tlet progressThreshold = Math.round(progressWrapper.dataset.threshold * (Shopify.currency.rate || 1));\r\n\r\n\tif ( ! moneyFormat || ! progressThreshold || ! preGoalMessageTemplate || ! postGoalMessage || ! progressBar || ! goalMessageElement ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tif ( itemCount === 0 || cartTotal === 0 ) {\r\n\t\tif ( progressWrapper ) {\r\n\t\t\tprogressWrapper.style.display = 'none';\r\n\t\t}\r\n\t\tif ( goalMessageElement ) {\r\n\t\t\tgoalMessageElement.style.display = 'none';\r\n\t\t}\r\n\t} else {\r\n\t\tif ( progressWrapper ) {\r\n\t\t\tprogressWrapper.style.display = 'block';\r\n\t\t\tprogressWrapper.setAttribute( 'data-threshold-selected-currency', progressThreshold );\r\n\t\t}\r\n\r\n\t\tif ( progressBar ) {\r\n\t\t\tprogressBar.style.display = 'block';\r\n\r\n\t\t\tlet progressPercentage = null;\r\n\r\n\t\t\t// console.log( cartTotal );\r\n\r\n\t\t\tif ( cartTotal ) {\r\n\t\t\t\tprogressPercentage = Math.min( ( cartTotal / progressThreshold ) * 100, 100 );\r\n\t\t\t} else {\r\n\t\t\t\tlet sideCartPrice = document.querySelector( '.side-cart-footer .total-price' );\r\n\t\t\t\tif ( sideCartPrice ) {\r\n\t\t\t\t\tlet total_price_str    = sideCartPrice.textContent.replace( /\\D/g,'' ),\r\n\t\t\t\t\t\ttotal_price_number = Number( total_price_str );\r\n\r\n\t\t\t\t\tif ( moneyFormat.includes( '{{amount_no_decimals}}' ) || moneyFormat.includes( '{{amount_no_decimals_with_comma_separator}}' ) || moneyFormat.includes( '{{amount_no_decimals_with_space_separator}}' ) ) {\r\n\t\t\t\t\t\tprogressPercentage = Math.min( ( total_price_number * 100 / progressThreshold ) * 100, 100 );\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tprogressPercentage = Math.min( ( total_price_number / progressThreshold ) * 100, 100 );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet mainCartPrice = document.querySelector( '.cart-page-section .cart-totals .totals-price' );\r\n\t\t\t\tif ( mainCartPrice ) {\r\n\t\t\t\t\tlet total_price_str    = mainCartPrice.textContent.replace( /\\D/g,'' ),\r\n\t\t\t\t\t\ttotal_price_number = Number( total_price_str );\r\n\r\n\t\t\t\t\tif ( moneyFormat.includes( '{{amount_no_decimals}}' ) || moneyFormat.includes( '{{amount_no_decimals_with_comma_separator}}' ) || moneyFormat.includes( '{{amount_no_decimals_with_space_separator}}' ) ) {\r\n\t\t\t\t\t\tprogressPercentage = Math.min( ( total_price_number * 100 / progressThreshold ) * 100, 100 );\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tprogressPercentage = Math.min( ( total_price_number / progressThreshold ) * 100, 100 );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tprogressBar.style.width = `${progressPercentage}%`;\r\n\r\n\t\t\tif ( progressPercentage >= 100 ) {\r\n\t\t\t\tprogressWrapper.classList.add( 'full' );\r\n\t\t\t} else {\r\n\t\t\t\tprogressWrapper.classList.remove( 'full' );\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif ( goalMessageElement ) {\r\n\t\t\tgoalMessageElement.style.display = 'block';\r\n\r\n\t\t\tlet remainingForGoal = null;\r\n\r\n\t\t\tif ( cartTotal ) {\r\n\t\t\t\tremainingForGoal = progressThreshold - cartTotal;\r\n\t\t\t} else {\r\n\t\t\t\tlet sideCartPrice = document.querySelector( '.side-cart-footer .total-price' );\r\n\t\t\t\tif ( sideCartPrice ) {\r\n\t\t\t\t\tlet total_price_str    = sideCartPrice.textContent.replace( /\\D/g,'' ),\r\n\t\t\t\t\t\ttotal_price_number = Number( total_price_str );\r\n\r\n\t\t\t\t\tif ( moneyFormat.includes( '{{amount_no_decimals}}' ) || moneyFormat.includes( '{{amount_no_decimals_with_comma_separator}}' ) || moneyFormat.includes( '{{amount_no_decimals_with_space_separator}}' ) ) {\r\n\t\t\t\t\t\tremainingForGoal = progressThreshold - Math.min( total_price_number * 100 );\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tremainingForGoal = progressThreshold - total_price_number;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet mainCartPrice = document.querySelector( '.cart-page-section .cart-totals .totals-price' );\r\n\t\t\t\tif ( mainCartPrice ) {\r\n\t\t\t\t\tlet total_price_str    = mainCartPrice.textContent.replace( /\\D/g,'' ),\r\n\t\t\t\t\t\ttotal_price_number = Number( total_price_str );\r\n\r\n\t\t\t\t\tif ( moneyFormat.includes( '{{amount_no_decimals}}' ) || moneyFormat.includes( '{{amount_no_decimals_with_comma_separator}}' ) || moneyFormat.includes( '{{amount_no_decimals_with_space_separator}}' ) ) {\r\n\t\t\t\t\t\tremainingForGoal = progressThreshold - Math.min( total_price_number * 100 );\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tremainingForGoal = progressThreshold - total_price_number;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif ( remainingForGoal < 0 ) {\r\n\t\t\t\tremainingForGoal = 0;\r\n\t\t\t}\r\n\r\n\t\t\tlet remainingAmount = remainingForGoal;\r\n\r\n\t\t\tlet remainingAmountFormatted = btyFormatPrice(remainingAmount);\r\n\r\n\t\t\tconst preGoalMessage = preGoalMessageTemplate.replace( '[remainingForGoalFormatted]', remainingAmountFormatted );\r\n\r\n\t\t\tgoalMessageElement.innerHTML = remainingForGoal > 0 ? preGoalMessage : postGoalMessage;\r\n\t\t}\r\n\t}\r\n}\r\n\r\n// Minicart recommendations.\r\nfunction btyMinicartRecommendations( doc = document ) {\r\n\tlet selector = doc.querySelector( '.minicart-recommendations[data-source]' );\r\n\tif ( ! selector ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tlet url = selector.getAttribute( 'data-url' );\r\n\r\n\tif ( selector.innerHTML.trim() || ! url ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tfetch( url )\r\n\t\t.then(\r\n\t\t\tfunction( r ) {\r\n\t\t\t\tif ( 200 !== r.status ) {\r\n\t\t\t\t\tconsole.log( 'Status Code: ' + r.status );\r\n\t\t\t\t\tthrow r;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn r.text();\r\n\t\t\t}\r\n\t\t).then(\r\n\t\t\tfunction( res ) {\r\n\t\t\t\tselector.innerHTML = btyGetSectionHtml( res, '.minicart-recommendations[data-source]' );\r\n\r\n\t\t\t\tbtyAddToCart( selector );\r\n\t\t\t\tbtyQuickView( selector );\r\n\t\t\t\tbtySwatch( selector );\r\n\t\t\t\tbtyAnimationImageLoad( selector );\r\n\t\t\t\tbtyHoverMediaVideo( selector );\r\n\t\t\t\tbtyQuickAdd( selector );\r\n\t\t\t\tbtyScrollAnimationTrigger( selector );\r\n\r\n\t\t\t\t// Fire when product card updated.\r\n\t\t\t\tdocument.dispatchEvent( new CustomEvent( 'product-card-updated' ) );\r\n\t\t\t}\r\n\t\t).catch(\r\n\t\t\tfunction( err ) {\r\n\t\t\t\tconsole.log( err );\r\n\t\t\t}\r\n\t\t);\r\n}\r\n\r\n// Side cart click outer popup.\r\nfunction btySideCartPopupOuter( doc = document ) {\r\n\tlet selector = doc.querySelector( '.side-cart-inner' ),\r\n\t\toverlay  = selector ? selector.querySelector( '.mini-cart-overlay' ) : false,\r\n\t\tpopup    = selector ? selector.querySelectorAll( '.popup-toolDown' ) : false;\r\n\r\n\tif ( ! popup.length || ! overlay) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tpopup.forEach(\r\n\t\tfunction( el ) {\r\n\t\t\tselector.addEventListener(\r\n\t\t\t\t'mousedown',\r\n\t\t\t\tfunction( e ) {\r\n\t\t\t\t\tif ( ! el.contains( e.target ) ) {\r\n\t\t\t\t\t\tif ( el.classList.contains( 'open' ) && overlay.classList.contains( 'open' ) ) {\r\n\t\t\t\t\t\t\tel.classList.remove( \"open\" );\r\n\t\t\t\t\t\t\toverlay.classList.remove( \"open\" );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\t);\r\n}\r\n\r\n// Cart checkbox agree to terms.\r\nfunction btyAgreeToTerms( doc = document ) {\r\n\tlet selector = document.querySelectorAll( '.agree-to-terms' );\r\n\r\n\tif ( ! selector.length ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tselector.forEach(\r\n\t\tfunction( el ) {\r\n\t\t\tlet agreeCheckbox = el.querySelector( '#agree' );\r\n\t\t\tlet checkoutButton = el.parentNode.querySelector( 'button[name=\"checkout\"]' );\r\n\r\n\t\t\tif ( ! agreeCheckbox || ! checkoutButton ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// Disable the checkout button initially\r\n\t\t\tcheckoutButton.disabled = true;\r\n\r\n\t\t\tagreeCheckbox.addEventListener('change', function() {\r\n\t\t\t\tcheckoutButton.disabled = !this.checked;\r\n\t\t\t});\r\n\t\t}\r\n\t);\r\n}\r\n\r\n// Side cart update product item when apply discount.\r\nfunction btyUpdateDiscountSideCartItem( doc = document ) {\r\n\tlet item = doc.querySelectorAll( '.side-cart .product-item[data-id]' );\r\n\tif ( ! item.length ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\t// Register dom html need an update when the response available.\r\n\tlet modules = [\r\n\t\t{\r\n\t\t\tnode: '.side-cart .cart-items',\r\n\t\t\tsection: 'side-cart',\r\n\t\t\tselector: '.side-cart .cart-items'\r\n\t\t},\r\n\t\t{\r\n\t\t\tnode: '.side-cart .sub-total',\r\n\t\t\tsection: 'side-cart',\r\n\t\t\tselector: '.side-cart .sub-total'\r\n\t\t}\r\n\t];\r\n\r\n\titem.forEach(\r\n\t\tfunction( el ) {\r\n\t\t\tlet id = el.getAttribute( 'data-id' );\r\n\r\n\t\t\tif ( ! id ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tlet discountApplyButton = el.closest( '.side-cart' ).querySelector( '.side-cart-footer [data-update-coupon]' );\r\n\r\n\t\t\tif ( ! discountApplyButton ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tdiscountApplyButton.onclick = function() {\r\n\t\t\t\tlet inputs  = el.querySelectorAll( '.quantity-input' );\r\n\r\n\t\t\t\tif ( inputs.length ) {\r\n\t\t\t\t\tinputs.forEach(\r\n\t\t\t\t\t\tfunction( input ) {\r\n\t\t\t\t\t\t\tlet data;\r\n\r\n\t\t\t\t\t\t\tdata = {\r\n\t\t\t\t\t\t\t\tid: id,\r\n\t\t\t\t\t\t\t\tsections: modules.map( (s) => s.section ),\r\n\t\t\t\t\t\t\t\tsections_url: window.location.pathname\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Fetch data.\r\n\t\t\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\t\t\tbtyFetchCart( data, modules, el );\r\n\t\t\t\t\t\t\t}, \"500\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n}\r\nclass btyUnitySlider extends HTMLElement {\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t}\r\n\r\n\tconnectedCallback() {\r\n\t\tthis.slider             = null;\r\n\t\tthis.thumbSlider        = null;\r\n\t\tthis.options            = this.querySelector('[data-options]');\r\n\t\tthis.thumbOptions       = this.querySelector('[data-thumbs-options]');\r\n\t\tthis.viewport           = this.querySelector('.unity-slider-viewport');\r\n\t\tthis.thumbsViewport     = this.querySelector('.unity-thumbs-slider-viewport');\r\n\t\tthis.isVariantScrolling = false;\r\n\r\n\t\tthis.init();\r\n\r\n\t\tif (!window.__unitySliderInstances) window.__unitySliderInstances = new Map();\r\n\t\tconst sectionId = this.closest('[id^=\"shopify-section-\"]')?.id;\r\n\t\tif (sectionId) window.__unitySliderInstances.set(sectionId, this);\r\n\r\n\t\tdocument.addEventListener('shopify:section:load', () => this.init(event));\r\n\t\tdocument.addEventListener('shopify:section:select', () => this.init(event));\r\n\t\tdocument.addEventListener('shopify:block:select', () => this.init(event));\r\n\t\tdocument.addEventListener('product-variant-updated', (e) => this.scrollToVariantImage(e));\r\n\t}\r\n\r\n\tcleanup() {\r\n\t\ttry {\r\n\t\t\tif (this.slider?.destroy) this.slider.destroy();\r\n\t\t\tif (this.thumbSlider?.destroy) this.thumbSlider.destroy();\r\n\t\t} catch (err) {\r\n\t\t\tconsole.warn('[unity-slider] cleanup error:', err);\r\n\t\t}\r\n\t\tthis.slider      = null;\r\n\t\tthis.thumbSlider = null;\r\n\t\tthis.classList.remove('initialized');\r\n\t}\r\n\r\n\tdisconnectedCallback() {\r\n\t\tthis.cleanup();\r\n\t}\r\n\r\n\ttoggleArrows(bsSlider, prevBtn, nextBtn) {\r\n\t\tconst arrowState = () => {\r\n\t\t\tbsSlider.canScrollPrev()\r\n\t\t\t\t? prevBtn.removeAttribute('disabled')\r\n\t\t\t\t: prevBtn.setAttribute('disabled', 'disabled');\r\n\t\t\tbsSlider.canScrollNext()\r\n\t\t\t\t? nextBtn.removeAttribute('disabled')\r\n\t\t\t\t: nextBtn.setAttribute('disabled', 'disabled');\r\n\t\t};\r\n\t\tbsSlider.on('select', arrowState).on('init', arrowState).on('reInit', arrowState);\r\n\t\treturn () => {\r\n\t\t\tprevBtn.removeAttribute('disabled');\r\n\t\t\tnextBtn.removeAttribute('disabled');\r\n\t\t};\r\n\t}\r\n\r\n\taddArrows(bsSlider, prevBtn, nextBtn) {\r\n\t\tconst scrollPrev = () => bsSlider.scrollPrev();\r\n\t\tconst scrollNext = () => bsSlider.scrollNext();\r\n\t\tprevBtn.addEventListener('click', scrollPrev, false);\r\n\t\tnextBtn.addEventListener('click', scrollNext, false);\r\n\t\tconst removeToggle = this.toggleArrows(bsSlider, prevBtn, nextBtn);\r\n\t\treturn () => {\r\n\t\t\tremoveToggle();\r\n\t\t\tprevBtn.removeEventListener('click', scrollPrev, false);\r\n\t\t\tnextBtn.removeEventListener('click', scrollNext, false);\r\n\t\t};\r\n\t}\r\n\r\n\tinit(event) {\r\n\t\tif (this.classList.contains('initialized')) {\r\n\t\t\tthis.cleanup();\r\n\t\t}\r\n\t\tif (!this.options || !this.viewport) return;\r\n\r\n\t\tlet options = JSON.parse(this.options.content.textContent),\r\n\t\t\tplugins = [EmblaCarouselClassNames()];\r\n\r\n\t\tlet prevBtn = this.querySelector(options._prevBtn);\r\n\t\tlet nextBtn = this.querySelector(options._nextBtn);\r\n\r\n\t\tif (!prevBtn || !nextBtn) {\r\n\t\t\tconst section = this.closest('[id^=\"shopify-section-\"]');\r\n\t\t\tif (section) {\r\n\t\t\t\tif (!prevBtn) prevBtn = section.querySelector(options._prevBtn);\r\n\t\t\t\tif (!nextBtn) nextBtn = section.querySelector(options._nextBtn);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (options._autoplay) {\r\n\t\t\tplugins.push(\r\n\t\t\t\tEmblaCarouselAutoplay({\r\n\t\t\t\t\tdelay: Number(options._autoplay || 5000),\r\n\t\t\t\t\tstopOnMouseEnter: true,\r\n\t\t\t\t\tstopOnInteraction: false,\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tif (options._autoheight) plugins.push(EmblaCarouselAutoHeight());\r\n\t\tif (options._fade) plugins.push(EmblaCarouselFade());\r\n\r\n\t\tthis.slider = EmblaCarousel(this.viewport, options, plugins);\r\n\r\n\t\tif (prevBtn && nextBtn) this.addArrows(this.slider, prevBtn, nextBtn);\r\n\r\n\t\tconst handleVideoPlayback = () => {\r\n\t\t\tif (!this.slider) return;\r\n\r\n\t\t\tconst slides = this.slider.slideNodes?.() || [];\r\n\t\t\tconst selectedIndex = this.slider.selectedScrollSnap();\r\n\r\n\t\t\tslides.forEach((slide, i) => {\r\n\t\t\t\tconst isActive = i === selectedIndex;\r\n\t\t\t\thandleMedia(slide, isActive);\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tconst handleMedia = (slide, isActive) => {\r\n\r\n\t\t\tslide.querySelectorAll('video').forEach((video) => {\r\n\t\t\t\tif (isActive) {\r\n\t\t\t\t\tif (video.paused) video.play().catch(() => {});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (!video.paused) video.pause();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tconst yt = slide.querySelector('iframe[src*=\"youtube\"], iframe[src*=\"youtu.be\"]');\r\n\t\t\tif (yt) {\r\n\t\t\t\tyt.contentWindow?.postMessage(\r\n\t\t\t\t\tisActive\r\n\t\t\t\t\t\t? '{\"event\":\"command\",\"func\":\"playVideo\",\"args\":\"\"}'\r\n\t\t\t\t\t\t: '{\"event\":\"command\",\"func\":\"pauseVideo\",\"args\":\"\"}',\r\n\t\t\t\t\t\"*\"\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\tconst vimeo = slide.querySelector('iframe[src*=\"vimeo\"]');\r\n\t\t\tif (vimeo) {\r\n\t\t\t\tvimeo.contentWindow?.postMessage(\r\n\t\t\t\t\t{ method: isActive ? 'play' : 'pause' },\r\n\t\t\t\t\tvimeo.src\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\tconst model = slide.querySelector('model-viewer, model-viewer[data-shopify-model]');\r\n\t\t\tif (model) {\r\n\t\t\t\tif (isActive) {\r\n\t\t\t\t\tif (model.play) model.play();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (model.pause) model.pause();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tconst genericIframe = slide.querySelector(\r\n\t\t\t\t'iframe:not([src*=\"youtube\"]):not([src*=\"youtu\"]):not([src*=\"vimeo\"])'\r\n\t\t\t);\r\n\r\n\t\t\tif (genericIframe && !isActive) {\r\n\t\t\t\tgenericIframe.src = genericIframe.src;\r\n\t\t\t}\r\n\t\t};\r\n\r\n\r\n\t\tthis.slider.on('init', handleVideoPlayback);\r\n\t\tthis.slider.on('select', handleVideoPlayback);\r\n\r\n\t\tif (this.thumbsViewport && !this.thumbsViewport.closest(' .slideshow-section' )) {\r\n\r\n\t\t\tconst mainViewport = this.viewport;\r\n\r\n\t\t\tif (mainViewport) {\r\n\t\t\t\tmainViewport.setAttribute('tabindex', '-1');\r\n\t\t\t\tmainViewport.setAttribute('aria-hidden', 'true');\r\n\r\n\t\t\t\tmainViewport.querySelectorAll('a, button, input, video, iframe, [tabindex]')\r\n\t\t\t\t.forEach((el) => {\r\n\t\t\t\t\tel.setAttribute('tabindex', '-1');\r\n\t\t\t\t\tel.setAttribute('aria-hidden', 'true');\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (this.thumbOptions && this.thumbsViewport) {\r\n\t\t\tthis.initThumbSlider();\r\n\t\t\tlet lastWidth = window.innerWidth;\r\n\t\t\twindow.addEventListener('resize', () => {\r\n\t\t\t\tconst currentWidth = window.innerWidth;\r\n\t\t\t\tif ((lastWidth > 991 && currentWidth <= 991) || (lastWidth <= 991 && currentWidth > 991)) {\r\n\t\t\t\t\tthis.initThumbSlider();\r\n\t\t\t\t}\r\n\t\t\t\tlastWidth = currentWidth;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tthis.classList.add('initialized');\r\n\t}\r\n\r\n\tinitThumbSlider() {\r\n\t\tif (!this.thumbOptions || !this.thumbsViewport) return;\r\n\r\n\t\tconst productGallery = this.closest('.product-gallery');\r\n\t\tconst isLayout2 = productGallery?.getAttribute('data-id') === 'layout-2';\r\n\r\n\t\tif (this.thumbSlider?.destroy) this.thumbSlider.destroy();\r\n\r\n\t\tthis.thumbSlider = EmblaCarousel(this.thumbsViewport, {\r\n\t\t\taxis: isLayout2 ? 'x' : window.innerWidth <= 991 ? 'x' : 'y',\r\n\t\t\t...JSON.parse(this.thumbOptions.content.textContent),\r\n\t\t});\r\n\r\n\t\tif (!this.thumbSlider?.slideNodes) return;\r\n\r\n\t\tconst slidesThumbs = this.thumbSlider.slideNodes();\r\n\t\tconst thumbPrev    = this.querySelector('.unity-thumb-prev');\r\n\t\tconst thumbNext    = this.querySelector('.unity-thumb-next');\r\n\r\n\t\tif (slidesThumbs.length < 4 && thumbPrev && thumbNext) {\r\n\t\t\tthumbPrev.style.display = 'none';\r\n\t\t\tthumbNext.style.display = 'none';\r\n\t\t} else if (thumbPrev && thumbNext) {\r\n\t\t\tthumbPrev.style.display = '';\r\n\t\t\tthumbNext.style.display = '';\r\n\t\t\tthis.addArrows(this.thumbSlider, thumbPrev, thumbNext);\r\n\t\t}\r\n\r\n\t\tconst updateSelectedClass = () => {\r\n\t\t\tif (this.isVariantScrolling) return;\r\n\t\t\tconst slides = this.slider?.slideNodes?.() || [];\r\n\t\t\tconst thumbs = this.thumbSlider?.slideNodes?.() || [];\r\n\t\t\tif (!slides.length || !thumbs.length) return;\r\n\r\n\t\t\tconst selectedIndex = this.slider.selectedScrollSnap?.() || 0;\r\n\r\n\t\t\tslides.forEach((s, i) => s.classList.toggle('selected', i === selectedIndex));\r\n\t\t\tthumbs.forEach((t, i) => {\r\n\t\t\t\tt.classList.toggle('selected', i === selectedIndex);\r\n\t\t\t\tt.classList.toggle('unity-thumbs-slide-selected', i === selectedIndex);\r\n\t\t\t});\r\n\r\n\t\t\ttry {\r\n\t\t\t\tthis.thumbSlider.scrollTo(selectedIndex);\r\n\t\t\t} catch {}\r\n\t\t};\r\n\r\n\t\tslidesThumbs.forEach((thumb, index) => {\r\n\t\t\tthumb.addEventListener('click', () => {\r\n\t\t\t\tthis.slider?.scrollTo(index);\r\n\t\t\t\tsetTimeout(updateSelectedClass, 100);\r\n\t\t\t});\r\n\t\t});\r\n\r\n\t\tthis.slider?.on?.('select', updateSelectedClass);\r\n\r\n\t\tconst fixThumbFocus = () => {\r\n\t\t\tconst thumbs = this.thumbsViewport.querySelectorAll('.unity-thumbs-slide');\r\n\t\t\tthumbs.forEach((thumb, index) => {\r\n\t\t\t\tconst button = thumb.querySelector('button');\r\n\t\t\t\tconst isClone = thumb.hasAttribute('data-embla-clone');\r\n\r\n\t\t\t\tif (isClone) {\r\n\t\t\t\t\tthumb.setAttribute('tabindex', '-1');\r\n\t\t\t\t\tthumb.setAttribute('aria-hidden', 'true');\r\n\t\t\t\t\tif (button) {\r\n\t\t\t\t\t\tbutton.setAttribute('tabindex', '-1');\r\n\t\t\t\t\t\tbutton.setAttribute('aria-hidden', 'true');\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthumb.removeAttribute('aria-hidden');\r\n\t\t\t\t\tthumb.setAttribute('tabindex', '-1');\r\n\t\t\t\t\tif (button) {\r\n\t\t\t\t\t\tbutton.setAttribute('tabindex', '0');\r\n\t\t\t\t\t\tbutton.removeAttribute('aria-hidden');\r\n\t\t\t\t\t\tbutton.addEventListener('focus', () => {\r\n\t\t\t\t\t\t\tthis.slider?.scrollTo(index);\r\n\t\t\t\t\t\t\tthis.thumbSlider?.scrollTo(index);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tthis.thumbSlider.on('init', () => {\r\n\t\t\tupdateSelectedClass();\r\n\t\t\tsetTimeout(fixThumbFocus, 150);\r\n\t\t});\r\n\t\tthis.thumbSlider.on('reInit', () => setTimeout(fixThumbFocus, 150));\r\n\t}\r\n\r\n\tscrollToVariantImage(e) {\r\n\t\tconst selected = e?.detail?.selected;\r\n\t\tif (!selected?.featured_media?.id || !this.slider) return;\r\n\r\n\t\tconst slides = this.slider.slideNodes?.() || [];\r\n\t\tconst thumbs = this.thumbSlider?.slideNodes?.() || [];\r\n\t\tif (!slides.length) return;\r\n\r\n\t\tconst mediaId = selected.featured_media.id;\r\n\t\tlet index = slides.findIndex((s) => Number(s.dataset.mediaId) === mediaId);\r\n\t\tif (index < 0) index = 0;\r\n\r\n\t\tthis.isVariantScrolling = true;\r\n\r\n\t\ttry {\r\n\t\t\tthis.slider.scrollTo(index, true);\r\n\t\t\tthis.thumbSlider?.scrollTo(index, true);\r\n\t\t} catch (err) {\r\n\t\t\tconsole.warn('[unity-slider] scrollToVariantImage error:', err);\r\n\t\t}\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tslides.forEach((s, i) => s.classList.toggle('selected', i === index));\r\n\t\t\tthumbs.forEach((t, i) => t.classList.toggle('selected', i === index));\r\n\t\t\tthis.isVariantScrolling = false;\r\n\t\t}, 600);\r\n\t}\r\n}\r\n\r\ncustomElements.define('unity-slider', btyUnitySlider);\r\nclass BtyTimeline extends HTMLElement {\r\n\tconstructor() {\r\n\t\tsuper();\r\n\t\tthis.eventsMinDistance = 60;\r\n\t}\r\n\r\n\tconnectedCallback() {\r\n\t\tthis.initTimeline();\r\n\t\tif ( window.Shopify && window.Shopify.designMode ) {\r\n\t\t\tdocument.addEventListener('shopify:block:select', ( event ) => {\r\n\t\t\t\tconst blockId = event.detail?.blockId;\r\n\r\n\t\t\t\tif ( !this.timelineComponents || !this.timelineComponents.timelineEvents ) {\r\n\t\t\t\t\tsetTimeout(() => this.selectEventByBlockId(blockId), 300);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.selectEventByBlockId(blockId);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tinitTimeline() {\r\n\t\tconst timeline = this.querySelector( '.timeline-wrapper' );\r\n\t\tif ( ! timeline ) return;\r\n\r\n\t\tthis.timelineComponents = {\r\n\t\t\ttimelineWrapper: timeline.querySelector( '.events-wrapper' ),\r\n\t\t\teventsWrapper: timeline.querySelector( '.events' ),\r\n\t\t\tfillingLine: timeline.querySelector( '.filling-line' ),\r\n\t\t\ttimelineEvents: timeline.querySelectorAll( '.events a' ),\r\n\t\t\ttimelineNavigation: timeline.querySelector( '.cd-timeline-navigation' ),\r\n\t\t\teventsContent: timeline.querySelector( '.events-content' )\r\n\t\t};\r\n\r\n\t\tconst originalEvents = Array.from(this.timelineComponents.timelineEvents);\r\n\t\tconst parsedDates = this.parseDate(originalEvents);\r\n\r\n\t\tconst zipped = originalEvents.map((el, i) => ({\r\n\t\t\tdate: parsedDates[i],\r\n\t\t\tel\r\n\t\t})).filter(item => item.date instanceof Date && !isNaN(item.date));\r\n\r\n\t\tzipped.sort((a, b) => a.date - b.date);\r\n\r\n\t\tthis.timelineComponents.timelineDates = zipped.map(item => item.date);\r\n\t\tthis.timelineComponents.timelineEvents = zipped.map(item => item.el);\r\n\r\n\t\tconst eventsContainer = this.timelineComponents.eventsWrapper;\r\n\t\teventsContainer.innerHTML = '';\r\n\t\tthis.timelineComponents.timelineEvents.forEach(el => eventsContainer.appendChild(el));\r\n\r\n\t\tthis.timelineComponents.eventsMinLapse = this.minLapse(this.timelineComponents.timelineDates);\r\n\r\n\t\tthis.setDatePosition();\r\n\t\tthis.timelineTotWidth = this.setTimelineWidth();\r\n\t\ttimeline.classList.add( 'loaded' );\r\n\r\n\t\tthis.addNavigationHandlers();\r\n\t\tthis.addEventSelectionHandler();\r\n\t\tthis.addKeyboardNavigation();\r\n\r\n\t\tconst selectedEvent = this.querySelector( '.events a.selected' ) || this.timelineComponents.timelineEvents[0];\r\n\r\n\t\tif (selectedEvent) this.updateFilling(selectedEvent);\r\n\t}\r\n\r\n\taddNavigationHandlers() {\r\n\t\tconst { timelineNavigation } = this.timelineComponents;\r\n\t\tif ( !timelineNavigation ) return;\r\n\r\n\t\tconst nextBtn = timelineNavigation.querySelector( '.next' );\r\n\t\tconst prevBtn = timelineNavigation.querySelector( '.prev' );\r\n\r\n\t\tif ( nextBtn ) nextBtn.addEventListener('click', (event) => this.updateSlide(event, 'next'));\r\n\t\tif ( prevBtn ) prevBtn.addEventListener('click', (event) => this.updateSlide(event, 'prev'));\r\n\t}\r\n\r\n\tselectEventByBlockId(blockId) {\r\n\t\tconst matchedLink = Array.from(this.timelineComponents.timelineEvents).find(\r\n\t\t\tlink => link.dataset.blockId === blockId\r\n\t\t);\r\n\t\tif ( matchedLink ) matchedLink.click();\r\n\t}\r\n\r\n\taddEventSelectionHandler() {\r\n\t\tthis.timelineComponents.eventsWrapper.addEventListener('click', (event) => {\r\n\t\t\tconst target = event.target.closest('a');\r\n\t\t\tif (target) {\r\n\t\t\t\tevent.preventDefault();\r\n\r\n\t\t\t\tthis.timelineComponents.timelineEvents.forEach(ev => ev.classList.remove('selected'));\r\n\t\t\t\ttarget.classList.add('selected');\r\n\t\t\t\tthis.updateFilling(target);\r\n\r\n\t\t\t\tconst blockId   = target.dataset.blockId;\r\n\t\t\t\tconst section   = target.closest('[id^=\"shopify-section-\"]');\r\n\t\t\t\tconst sectionId = section?.id;\r\n\t\t\t\tif (!sectionId) return;\r\n\r\n\t\t\t\tconst unitySliderInstance = window.__unitySliderInstances?.get(sectionId);\r\n\t\t\t\tif (!unitySliderInstance || !unitySliderInstance.slider) return;\r\n\r\n\t\t\t\tconst slides     = Array.from(section.querySelectorAll('.unity-slide'));\r\n\t\t\t\tconst slideIndex = slides.findIndex(el => el.dataset.blockId === blockId);\r\n\r\n\t\t\t\tif (slideIndex !== -1) {\r\n\t\t\t\t\tunitySliderInstance.slider.scrollTo(slideIndex);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// \uD83D\uDC47 Th\u00EAm \u0111o\u1EA1n n\u00E0y \u0111\u1EC3 \u0111\u1ED3ng b\u1ED9 ng\u01B0\u1EE3c l\u1EA1i\r\n\t\tconst section = this.closest('[id^=\"shopify-section-\"]');\r\n\t\tconst sectionId = section?.id;\r\n\t\tconst unitySliderInstance = window.__unitySliderInstances?.get(sectionId);\r\n\r\n\t\tif (unitySliderInstance?.slider) {\r\n\t\t\tunitySliderInstance.slider.on('select', () => {\r\n\t\t\t\tconst index = unitySliderInstance.slider.selectedScrollSnap();\r\n\t\t\t\tconst slides = Array.from(section.querySelectorAll('.unity-slide'));\r\n\t\t\t\tconst activeSlide = slides[index];\r\n\t\t\t\tif (!activeSlide) return;\r\n\r\n\t\t\t\tconst blockId = activeSlide.dataset.blockId;\r\n\t\t\t\tconst matchedLink = Array.from(this.timelineComponents.timelineEvents)\r\n\t\t\t\t\t.find(link => link.dataset.blockId === blockId);\r\n\r\n\t\t\t\tif (matchedLink) {\r\n\t\t\t\t\tthis.timelineComponents.timelineEvents.forEach(ev => ev.classList.remove('selected'));\r\n\t\t\t\t\tmatchedLink.classList.add('selected');\r\n\t\t\t\t\tthis.updateFilling(matchedLink);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\r\n\taddKeyboardNavigation() {\r\n\t\tdocument.addEventListener('keyup', (event) => {\r\n\t\t\tif (!this.elementInViewport(this)) return;\r\n\t\t\tif (event.key === 'ArrowLeft') this.showNewContent('prev');\r\n\t\t\tif (event.key === 'ArrowRight') this.showNewContent('next');\r\n\t\t});\r\n\t}\r\n\r\n\tupdateSlide(event, direction) {\r\n\t\tevent.preventDefault();\r\n\t\tconst translateValue = this.getTranslateValue();\r\n\t\tconst wrapperWidth = this.timelineComponents.timelineWrapper.clientWidth;\r\n\t\tconst newValue = direction === 'next'\r\n\t\t\t? translateValue - (wrapperWidth - this.eventsMinDistance)\r\n\t\t\t: translateValue + (wrapperWidth - this.eventsMinDistance);\r\n\t\tthis.translateTimeline(newValue, wrapperWidth - this.timelineTotWidth);\r\n\t}\r\n\r\n\ttranslateTimeline(value, totWidth) {\r\n\t\tconst { eventsWrapper, timelineNavigation } = this.timelineComponents;\r\n\t\tvalue = Math.max(totWidth, Math.min(0, value));\r\n\t\teventsWrapper.style.transform = `translateX(${value}px)`;\r\n\r\n\t\ttimelineNavigation.querySelector('.prev').classList.toggle('disabled', value === 0);\r\n\t\ttimelineNavigation.querySelector('.next').classList.toggle('disabled', value === totWidth);\r\n\t}\r\n\r\n\tupdateFilling(selectedEvent) {\r\n\t\tconst eventLeft = selectedEvent.offsetLeft + selectedEvent.offsetWidth / 2;\r\n\t\tconst scaleValue = eventLeft / this.timelineTotWidth;\r\n\t\tthis.timelineComponents.fillingLine.style.transform = `scaleX(${scaleValue})`;\r\n\t}\r\n\r\n\tsetDatePosition() {\r\n\t\tthis.timelineComponents.timelineEvents.forEach((event, i) => {\r\n\t\t\tconst distance = this.daydiff(this.timelineComponents.timelineDates[0], this.timelineComponents.timelineDates[i]);\r\n\t\t\tevent.style.left = (Math.round(distance / this.timelineComponents.eventsMinLapse) + 2) * this.eventsMinDistance + 'px';\r\n\t\t});\r\n\t}\r\n\r\n\tsetTimelineWidth() {\r\n\t\tconst wrapperWidth = this.timelineComponents.timelineWrapper.clientWidth;\r\n\r\n\t\tconst timeSpan = this.daydiff(\r\n\t\t\tthis.timelineComponents.timelineDates[0],\r\n\t\t\tthis.timelineComponents.timelineDates.at(-1)\r\n\t\t);\r\n\t\tconst estimatedWidth = (Math.round(timeSpan / this.timelineComponents.eventsMinLapse) + 4) * this.eventsMinDistance;\r\n\r\n\t\tconst totalWidth = Math.max(estimatedWidth, wrapperWidth);\r\n\r\n\t\tthis.timelineComponents.eventsWrapper.style.width = `${totalWidth}px`;\r\n\t\tthis.updateFilling(this.timelineComponents.timelineEvents[0]);\r\n\r\n\t\tconst { timelineNavigation } = this.timelineComponents;\r\n\t\tif (timelineNavigation) {\r\n\t\t\tconst prev = timelineNavigation.querySelector('.prev');\r\n\t\t\tconst next = timelineNavigation.querySelector('.next');\r\n\r\n\t\t\tconst shouldDisable = totalWidth <= wrapperWidth;\r\n\r\n\t\t\tif (prev) prev.classList.toggle('disabled', shouldDisable);\r\n\t\t\tif (next) next.classList.toggle('disabled', shouldDisable);\r\n\t\t}\r\n\t\treturn totalWidth;\r\n\t}\r\n\r\n\tgetTranslateValue() {\r\n\t\tconst transform = window.getComputedStyle(this.timelineComponents.eventsWrapper).transform;\r\n\t\treturn transform.includes('(') ? parseFloat(transform.split('(')[1].split(')')[0].split(',')[4]) || 0 : 0;\r\n\t}\r\n\r\n\tparseDate(events) {\r\n\t\tconst validDates = [];\r\n\t\treturn Array.from(events).map(event => {\r\n\t\t\tconst dateStr = event.dataset.date?.trim();\r\n\t\t\tif (!dateStr) return null;\r\n\r\n\t\t\tconst parts = dateStr.split('/').map(Number);\r\n\t\t\tlet date;\r\n\t\t\tif (parts.length === 1 && !isNaN(parts[0])) {\r\n\t\t\t\tdate = new Date(parts[0], 0, 1);\r\n\t\t\t} else if (parts.length === 3 && parts.every(n => !isNaN(n))) {\r\n\t\t\t\tdate = new Date(parts[2], parts[1] - 1, parts[0]);\r\n\t\t\t} else {\r\n\t\t\t\treturn null;\r\n\t\t\t}\r\n\r\n\t\t\tvalidDates.push(date);\r\n\t\t\treturn date;\r\n\t\t});\r\n\t}\r\n\r\n\tdaydiff(first, second) {\r\n\t\tconst msPerDay = 1000 * 60 * 60 * 24;\r\n\t\treturn Math.round((second - first) / msPerDay);\r\n\t}\r\n\r\n\tminLapse(dates) {\r\n\t\treturn Math.min(...dates.slice(1).map((date, i) => this.daydiff(dates[i], date)));\r\n\t}\r\n\r\n\telementInViewport(el) {\r\n\t\tconst rect = el.getBoundingClientRect();\r\n\t\treturn rect.top < window.innerHeight && rect.bottom > 0;\r\n\t}\r\n}\r\n\r\ncustomElements.define( 'timeline-carousel', BtyTimeline );\r\n\r\n/**\r\n * Theme js\r\n *\r\n * @package Dev\r\n */\r\n\r\n'use strict';\r\n\r\n// Set scrollbar width.\r\nfunction btyScrollBar( doc = document ) {\r\n\tlet domId = document.getElementById( 'dynamic-variables-theme-css' );\r\n\tif ( ! domId ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tlet scrollbarWidth = window.innerWidth - document.body.clientWidth,\r\n\t\tmegaMenu       = doc.querySelector( '.header-nav .mega-menu-wrap' ),\r\n\t\tcurrentWidth   = window.innerWidth - document.documentElement.clientWidth;\r\n\r\n\t// Custom event.\r\n\tconst scrollbarEvent = new Event( 'scrollbar-width' );\r\n\r\n\tconst observer = new ResizeObserver(() => {\r\n\t\tconst newWidth = window.innerWidth - document.documentElement.clientWidth;\r\n\r\n\t\tif ( newWidth !== currentWidth ) {\r\n\t\t\tscrollbarEvent.detail = {\r\n\t\t\t\tprevious: currentWidth,\r\n\t\t\t\tcurrent: newWidth\r\n\t\t\t};\r\n\r\n\t\t\tcurrentWidth = newWidth;\r\n\r\n\t\t\twindow.dispatchEvent( scrollbarEvent );\r\n\t\t}\r\n\t});\r\n\r\n\tobserver.observe( document.documentElement );\r\n\r\n\t// First load.\r\n\tconst updateContainerContent = function() {\r\n\t\tconst initialWidth = window.innerWidth - document.documentElement.clientWidth;\r\n\t\tdomId.innerHTML = ':root{--scrollbar-width:' + initialWidth + 'px;--container-content:' + ( megaMenu ? megaMenu.offsetWidth : 0 ) + 'px}';\r\n\t}\r\n\r\n\tupdateContainerContent();\r\n\twindow.addEventListener( 'resize', updateContainerContent );\r\n\r\n\t// Start listening for changes.\r\n\twindow.addEventListener(\r\n\t\t'scrollbar-width',\r\n\t\tfunction( e ) {\r\n\t\t\tlet newMegaMenu = doc.querySelector( '.header-nav .mega-menu-wrap .container .mega-menu' );\r\n\t\t\tdomId.innerHTML = ':root{--scrollbar-width:' + e.detail.current + 'px;--container-content:' + ( newMegaMenu ? newMegaMenu.offsetWidth : 0 ) + 'px}';\r\n\t\t}\r\n\t);\r\n\r\n\treturn observer;\r\n}\r\n\r\n// Siblings.\r\nfunction btySiblings( el, filter ) {\r\n\t// create an empty array.\r\n\tlet siblings = [];\r\n\r\n\t// if no parent, return empty list.\r\n\tif ( ! el || ! el.parentNode ) {\r\n\t\treturn siblings;\r\n\t}\r\n\r\n\t// first child of the parent node.\r\n\tlet sibling = el.parentNode.firstElementChild;\r\n\r\n\t// loop through next siblings until `null`.\r\n\tdo {\r\n\t\t// push sibling to array.\r\n\t\tif ( sibling != el && ( ! filter || filter( sibling ) ) ) {\r\n\t\t\tsiblings.push( sibling );\r\n\t\t}\r\n\t} while ( sibling = sibling.nextElementSibling );\r\n\r\n\treturn siblings;\r\n}\r\n\r\n// Slide up.\r\nfunction btySlideUp( target, duration = 200 ) {\r\n\ttarget.style.transitionProperty = 'height, margin, padding';\r\n\ttarget.style.transitionDuration = duration + 'ms';\r\n\ttarget.style.height             = target.offsetHeight + 'px';\r\n\ttarget.offsetHeight;\r\n\ttarget.style.overflow      = 'hidden';\r\n\ttarget.style.height        = 0;\r\n\ttarget.style.paddingTop    = 0;\r\n\ttarget.style.paddingBottom = 0;\r\n\ttarget.style.marginTop     = 0;\r\n\ttarget.style.marginBottom  = 0;\r\n\r\n\twindow.setTimeout(\r\n\t\tfunction() {\r\n\t\t\ttarget.style.display = 'none';\r\n\t\t\ttarget.style.removeProperty( 'height' );\r\n\t\t\ttarget.style.removeProperty( 'padding-top' );\r\n\t\t\ttarget.style.removeProperty( 'padding-bottom' );\r\n\t\t\ttarget.style.removeProperty( 'margin-top' );\r\n\t\t\ttarget.style.removeProperty( 'margin-bottom' );\r\n\t\t\ttarget.style.removeProperty( 'overflow' );\r\n\t\t\ttarget.style.removeProperty( 'transition-duration' );\r\n\t\t\ttarget.style.removeProperty( 'transition-property' );\r\n\t\t},\r\n\t\tduration\r\n\t);\r\n}\r\n\r\n// Slide down.\r\nfunction btySlideDown( target, duration = 200 ) {\r\n\ttarget.style.removeProperty( 'display' );\r\n\tlet display = window.getComputedStyle( target ).display;\r\n\r\n\tif ( 'none' === display ) {\r\n\t\tdisplay = 'block';\r\n\t}\r\n\r\n\ttarget.style.display = display;\r\n\r\n\tlet height = target.offsetHeight;\r\n\r\n\ttarget.style.overflow      = 'hidden';\r\n\ttarget.style.height        = 0;\r\n\ttarget.style.paddingTop    = 0;\r\n\ttarget.style.paddingBottom = 0;\r\n\ttarget.style.marginTop     = 0;\r\n\ttarget.style.marginBottom  = 0;\r\n\ttarget.offsetHeight;\r\n\ttarget.style.transitionProperty = \"height, margin, padding\";\r\n\ttarget.style.transitionDuration = duration + 'ms';\r\n\ttarget.style.height             = height + 'px';\r\n\r\n\ttarget.style.removeProperty( 'padding-top' );\r\n\ttarget.style.removeProperty( 'padding-bottom' );\r\n\ttarget.style.removeProperty( 'margin-top' );\r\n\ttarget.style.removeProperty( 'margin-bottom' );\r\n\r\n\twindow.setTimeout(\r\n\t\tfunction() {\r\n\t\t\ttarget.style.removeProperty( 'height' );\r\n\t\t\ttarget.style.removeProperty( 'overflow' );\r\n\t\t\ttarget.style.removeProperty( 'transition-duration' );\r\n\t\t\ttarget.style.removeProperty( 'transition-property' );\r\n\t\t},\r\n\t\tduration\r\n\t);\r\n}\r\n\r\n// Toggle dropdown.\r\nfunction btyToggleDropdown( doc = document ) {\r\n\tlet toggle = doc.querySelectorAll( '.toggle-dropdown .dropdown-summary' );\r\n\tif ( ! toggle.length ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\ttoggle.forEach(\r\n\t\tfunction( el ) {\r\n\t\t\tlet parent      = el.parentNode,\r\n\t\t\t\ttitle       = el.querySelector( '.summary-info' ),\r\n\t\t\t\tmobileTitle = el.parentNode.querySelector( '.dropdown-content-title' );\r\n\r\n\t\t\tconst clickAnyWhere = function( e ) {\r\n\t\t\t\tlet target = e.target;\r\n\r\n\t\t\t\tif ( target === el || target.classList.contains( 'content' ) || target.closest( '.dropdown-summary' ) ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ( target.classList.contains( 'tab-head', 'active' ) ) {\r\n\t\t\t\t\tif ( title ) {\r\n\t\t\t\t\t\ttitle.innerText = target.innerText;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif ( mobileTitle ) {\r\n\t\t\t\t\t\tmobileTitle.innerText = target.innerText;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tparent.removeAttribute( 'open' );\r\n\r\n\t\t\t\tdocument.removeEventListener( 'click', clickAnyWhere );\r\n\t\t\t}\r\n\r\n\t\t\tel.onclick = function( e ) {\r\n\t\t\t\tdocument.addEventListener( 'click', clickAnyWhere );\r\n\r\n\t\t\t\tlet aria = el.hasAttribute( 'aria-expanded' );\r\n\r\n\t\t\t\tif ( parent.hasAttribute( 'open' ) ) {\r\n\t\t\t\t\tparent.removeAttribute( 'open' );\r\n\r\n\t\t\t\t\tif ( aria ) {\r\n\t\t\t\t\t\tel.setAttribute( 'aria-expanded', 'false' );\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tlet sibling = parent.parentNode.querySelector( '.toggle-dropdown[open]' );\r\n\t\t\t\t\tif ( sibling ) {\r\n\t\t\t\t\t\tsibling.removeAttribute( 'open' );\r\n\r\n\t\t\t\t\t\tlet sibAria = sibling.querySelector( '.dropdown-summary[aria-expanded]' );\r\n\t\t\t\t\t\tif ( sibAria ) {\r\n\t\t\t\t\t\t\tsibAria.setAttribute( 'aria-expanded', 'false' );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tparent.setAttribute( 'open', '' );\r\n\r\n\t\t\t\t\tif ( aria ) {\r\n\t\t\t\t\t\tel.setAttribute( 'aria-expanded', 'true' );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n}\r\n\r\n// Update aria expanded for summary <details> tag only.\r\nfunction btyToggleDetails( doc = document ) {\r\n\tlet details = doc.querySelectorAll( 'details' );\r\n\tif ( ! details.length ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tdetails.forEach(\r\n\t\tfunction( el ) {\r\n\t\t\tlet summary = el.querySelector( 'summary' );\r\n\t\t\tif ( el.classList.contains( 'product-accordion' ) || el.classList.contains( 'collapsible-item' ) || el.classList.contains( 'order-note' ) || ! summary ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tdocument.addEventListener(\r\n\t\t\t\t'click',\r\n\t\t\t\tfunction( e ) {\r\n\t\t\t\t\tlet target = e.target;\r\n\r\n\t\t\t\t\tif ( target === el || el.contains( target ) || target.closest( '.toggle-dropdown' ) ) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet tmpAria = doc.querySelector( '[open] [aria-expanded]' );\r\n\t\t\t\t\tif ( tmpAria ) {\r\n\t\t\t\t\t\ttmpAria.setAttribute( 'aria-expanded', 'false' );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t);\r\n\r\n\t\t\tel.onclick = function( e ) {\r\n\t\t\t\tlet aria = summary.getAttribute( 'aria-expanded' );\r\n\t\t\t\tif ( ! aria ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ( 'string' === typeof( el.getAttribute( 'open' ) ) ) {\r\n\t\t\t\t\tif ( aria ) {\r\n\t\t\t\t\t\tsummary.setAttribute( 'aria-expanded', 'false' );\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tlet sibling = el.parentNode.querySelector( '[open]' );\r\n\t\t\t\t\tif ( sibling ) {\r\n\t\t\t\t\t\tlet sibAria = sibling.querySelector( '[open] [aria-expanded]' );\r\n\t\t\t\t\t\tif ( sibAria ) {\r\n\t\t\t\t\t\t\tsibAria.setAttribute( 'aria-expanded', 'false' );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif ( aria ) {\r\n\t\t\t\t\t\tsummary.setAttribute( 'aria-expanded', 'true' );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n}\r\n\r\n// Json parse.\r\nfunction btyJsonParse( string ) {\r\n\ttry {\r\n\t\treturn JSON.parse( string.trim() );\r\n\t} catch ( e ) {\r\n\t\treturn false;\r\n\t}\r\n}\r\n\r\n// Remove item in array.\r\nfunction btyRemoveArrayItem( arr = [], item ) {\r\n\tif ( ! arr.length || ! item ) {\r\n\t\treturn [];\r\n\t}\r\n\r\n\treturn arr.filter(\r\n\t\tfunction( el ) {\r\n\t\t\treturn el != item;\r\n\t\t}\r\n\t);\r\n}\r\n\r\n// Set delay time when user typing.\r\nconst btySearchDelay = function( timer = 0 ) {\r\n\treturn function( callback, ms ) {\r\n\t\tclearTimeout( timer );\r\n\t\ttimer = setTimeout( callback, ms );\r\n\t};\r\n}();\r\n\r\n// Get image src.\r\nfunction btyGetImageSrc( img ) {\r\n\t// Create canvas.\r\n\tlet canvas  = document.createElement( 'canvas' ),\r\n\t\tcontext = canvas.getContext( '2d' );\r\n\r\n\t// Set width and height.\r\n\tcanvas.width  = img.width;\r\n\tcanvas.height = img.height;\r\n\r\n\t// Draw the image.\r\n\tcontext.drawImage( img, 0, 0 );\r\n\r\n\treturn canvas.toDataURL( 'image/jpeg', 1.0 );\r\n}\r\n\r\n// Scrolling detect direction.\r\nfunction btyScrollingDetect() {\r\n\tlet body = document.body;\r\n\r\n\tif ( window.oldScroll > window.scrollY ) {\r\n\t\tbody.classList.add( 'direction-up' );\r\n\t\tbody.classList.remove( 'direction-down' );\r\n\t} else {\r\n\t\tbody.classList.remove( 'direction-up' );\r\n\t\tbody.classList.add( 'direction-down' );\r\n\t}\r\n\r\n\t// Reset state.\r\n\twindow.oldScroll = window.scrollY;\r\n}\r\n\r\n// Set loading animation for image.\r\nfunction btyImageLoad( image, image_src, image_key, ele_loading ) {\r\n\tlet newImage = new Image();\r\n\r\n\tnewImage.crossOrigin = 'anonymous';\r\n\r\n\t// Check local storage first.\r\n\tif ( sessionStorage.getItem( image_key ) ) {\r\n\t\timage.src = sessionStorage.getItem( image_key );\r\n\t\treturn;\r\n\t}\r\n\r\n\t// Add loading animation.\r\n\timage.parentNode.classList.add( 'loading' );\r\n\r\n\t// Handle.\r\n\tnewImage.onload = function() {\r\n\t\tele_loading.classList.remove( 'loading' );\r\n\t\tlet renderImage = btyGetImageSrc( newImage );\r\n\r\n\t\t// Set final image src.\r\n\t\timage.src = renderImage;\r\n\r\n\t\t// Save image to local storage.\r\n\t\tif ( image_key ) {\r\n\t\t\tsessionStorage.setItem( image_key, renderImage );\r\n\t\t}\r\n\t}\r\n\r\n\tnewImage.onerror = function() {\r\n\t\tele_loading.classList.remove( 'loading' );\r\n\t}\r\n\r\n\t// Set image src for 'newImage.onload' function handle.\r\n\tnewImage.src = image_src;\r\n}\r\n\r\n// Get form data.\r\nfunction btySerializeForm( form, type = 'string' ) {\r\n\tlet obj      = {},\r\n\t\tformData = new FormData( form );\r\n\r\n\tfor ( let key of formData.keys() ) {\r\n\t\tobj[ key ] = formData.get( key );\r\n\t}\r\n\r\n\treturn 'string' === type ? JSON.stringify( obj ) : obj;\r\n};\r\n\r\n// Get price format.\r\nfunction btyFormatPrice( money = 0, format = false ) {\r\n\tif ( 'string' === typeof( money ) ) {\r\n\t\tmoney = money.replace( '.', '' );\r\n\t}\r\n\r\n\tif ( false === format ) {\r\n\t\tformat = btyGlobals.money_format;\r\n\t}\r\n\r\n\tlet value            = '',\r\n\t\tplaceholderRegex = /\\{\\{\\s*(\\w+)\\s*\\}\\}/;\r\n\r\n\tfunction defaultOption( opt, def ) {\r\n\t\treturn 'undefined' === typeof( opt ) ? def : opt;\r\n\t}\r\n\r\n\tfunction formatWithDelimiters( number, precision, thousands, decimal ) {\r\n\t\tprecision = defaultOption( precision, 2 );\r\n\t\tthousands = defaultOption( thousands, ',' );\r\n\t\tdecimal   = defaultOption( decimal, '.' );\r\n\r\n\t\tif ( isNaN( number ) || number == null ) {\r\n\t\t\treturn 0;\r\n\t\t}\r\n\r\n\t\tnumber = ( number / 100.0 ).toFixed( precision );\r\n\r\n\t\tlet parts   = number.split( '.' ),\r\n\t\t\tdollars = parts[0].replace( /(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, '$1' + thousands ),\r\n\t\t\tmoney   = parts[1] ? ( decimal + parts[1] ) : '';\r\n\r\n\t\treturn dollars + money;\r\n\t}\r\n\r\n\tswitch ( format.match( placeholderRegex )[1] ) {\r\n\t\tcase 'amount':\r\n\t\t\tvalue = formatWithDelimiters( money, 2 );\r\n\t\t\tbreak;\r\n\t\tcase 'amount_no_decimals':\r\n\t\t\tvalue = formatWithDelimiters( money, 0 );\r\n\t\t\tbreak;\r\n\t\tcase 'amount_with_comma_separator':\r\n\t\t\tvalue = formatWithDelimiters( money, 2, '.', ',' );\r\n\t\t\tbreak;\r\n\t\tcase 'amount_no_decimals_with_comma_separator':\r\n\t\t\tvalue = formatWithDelimiters( money, 0, '.', ',' );\r\n\t\t\tbreak;\r\n\t\tcase 'amount_with_space_separator':\r\n\t\t\tvalue = formatWithDelimiters( money, 2, ' ', ',' );\r\n\t\t\tbreak;\r\n\t\tcase 'amount_with_period_and_space_separator':\r\n\t\t\tvalue = formatWithDelimiters( money, 2, ' ', '.' );\r\n\t\t\tbreak;\r\n\t\tcase 'amount_no_decimals_with_space_separator':\r\n\t\t\tvalue = formatWithDelimiters( money, 0, '.', '' );\r\n\t\t\tbreak;\r\n\t\tcase 'amount_with_apostrophe_separator':\r\n\t\t\tvalue = formatWithDelimiters( money, 2, \"'\", '.' );\r\n\t\t\tbreak;\r\n\t}\r\n\r\n\treturn format.replace( placeholderRegex, value );\r\n}\r\n\r\n// Render price html.\r\nfunction btyPriceHtml( price, compare_price = false, unit_price = false, unit_price_measurement = {} ) {\r\n\tlet html         = '',\r\n\t\tregularPrice = btyStrings.product.regular_price;\r\n\r\n\tif ( compare_price ) {\r\n\t\tconst savedPercent = Math.round((1 - price / compare_price) * 100);\r\n\r\n\t\thtml += '<span class=\"price\">';\r\n\t\thtml += '<span class=\"sr-only\">' + btyStrings.product.sale_price + ': </span>';\r\n\t\thtml += btyFormatPrice( price );\r\n\t\thtml += '</span>';\r\n\r\n\t\thtml += '<s class=\"regular-price\">';\r\n\t\thtml += '<span class=\"sr-only\">' + regularPrice + ': </span>';\r\n\t\thtml += btyFormatPrice( compare_price );\r\n\t\thtml += '</s>';\r\n\r\n\t\thtml += '<span class=\"product-sale-label\">';\r\n\t\thtml += '<span class=\"sr-only\">' + btyStrings.product.on_sale + ': </span>';\r\n\t\thtml += '<span class=\"sale-total\">-' + savedPercent + '%</span>';\r\n\t\thtml += '</span>';\r\n\r\n\t} else {\r\n\t\thtml += '<span class=\"regular-price\">';\r\n\t\thtml += '<span class=\"sr-only\">' + regularPrice + ': </span>';\r\n\t\thtml += btyFormatPrice( price );\r\n\t\thtml += '</span>';\r\n\t}\r\n\r\n\tif ( unit_price ) {\r\n\t\thtml += '<span class=\"unit-price\">';\r\n\t\thtml += btyFormatPrice( unit_price ) + '/' + unit_price_measurement.quantity_unit;\r\n\t\thtml += '</span>';\r\n\t}\r\n\r\n\treturn html;\r\n}\r\n\r\n// Parse html dom.\r\nfunction btyGetSectionHtml( text = '', selector = '.shopify-section', html = 'inner' ) {\r\n\tlet el = new DOMParser().parseFromString( text, 'text/html' ).querySelector( selector );\r\n\r\n\treturn el ? ( 'inner' === html ? el.innerHTML : el.outerHTML ) : '';\r\n}\r\n\r\n/**\r\n * Update html dom.\r\n *\r\n * @param  array sections The response sections.\r\n * @param  array modules  The modules need update html dom.\r\n */\r\nfunction btyUpdateHtml( sections, modules ) {\r\n\tmodules.forEach(\r\n\t\tfunction( mod ) {\r\n\t\t\tlet query = document.querySelectorAll( mod.node );\r\n\t\t\tif ( ! query.length ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tquery.forEach(\r\n\t\t\t\tfunction( el ) {\r\n\t\t\t\t\tel.innerHTML = btyGetSectionHtml( sections[ mod.section ], mod.selector );\r\n\t\t\t\t}\r\n\t\t\t);\r\n\r\n\t\t\t// Re-init function.\r\n\t\t\tbtyAddToCart();\r\n\t\t\tbtySwatch();\r\n\t\t\tbtyQuickAdd();\r\n\t\t}\r\n\t);\r\n}\r\n\r\n// Countdown time.\r\nfunction btyCountdownTime( doc = document ) {\r\n\tlet selectors = doc.querySelectorAll( '.countdown-time' );\r\n\r\n\tif ( ! selectors.length ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tselectors.forEach(\r\n\t\tfunction( el ) {\r\n\t\t\tlet time        = el.getAttribute( 'data-time' ),\r\n\t\t\t\tdayField    = el.querySelector( '.days' ),\r\n\t\t\t\thourField   = el.querySelector( '.hours' ),\r\n\t\t\t\tminuteField = el.querySelector( '.minutes' ),\r\n\t\t\t\tsecondField = el.querySelector( '.seconds' );\r\n\r\n\t\t\tif ( ! dayField || ! hourField || ! minuteField || ! secondField ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// Check time first.\r\n\t\t\tif ( isNaN( Date.parse( time ) ) ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// Convert to milisecond.\r\n\t\t\tlet interval,\r\n\t\t\t\tsecond = 1000,\r\n\t\t\t\tminute = second * 60,\r\n\t\t\t\thour   = minute * 60,\r\n\t\t\t\tday    = hour * 24,\r\n\t\t\t\ttoday  = new Date();\r\n\r\n\t\t\tconst countDownFn = function() {\r\n\t\t\t\tlet countDown = new Date( time ).getTime(),\r\n\t\t\t\t\tnow       = new Date().getTime(),\r\n\t\t\t\t\tdistance  = countDown - now,\r\n\t\t\t\t\tdayInner  = Math.floor( distance / day );\r\n\r\n\t\t\t\tif ( distance < 0 ) {\r\n\t\t\t\t\tel.parentNode.remove();\r\n\r\n\t\t\t\t\tclearInterval( init );\r\n\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ( 0 == dayInner && dayField ) {\r\n\t\t\t\t\tdayField.parentNode.remove();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdayField.innerText = dayInner;\r\n\t\t\t\t}\r\n\r\n\t\t\t\thourField.innerText   = ( '0' + Math.floor( ( distance % day ) / hour ) ).slice( -2 );\r\n\t\t\t\tminuteField.innerText = ( '0' + Math.floor( ( distance % hour ) / minute ) ).slice( -2 );\r\n\t\t\t\tsecondField.innerText = ( '0' + Math.floor( ( distance % minute ) / second ) ).slice( -2 );\r\n\r\n\t\t\t\t// Show countdown.\r\n\t\t\t\tel.parentNode.classList.remove( 'hidden' );\r\n\t\t\t}\r\n\r\n\t\t\tlet init = setInterval( countDownFn, 0 );\r\n\t\t}\r\n\t);\r\n}\r\n\r\n/**\r\n * Close theme popup\r\n *\r\n * @param  string class_name  Class name remove form <html>\r\n * @return node   parent_node Parent node to implement click overlay.\r\n */\r\nfunction btyClosePopup(class_name, parent_node, overlay = true) {\r\n\tif (!class_name) return;\r\n\r\n\tlet doc = document.documentElement,\r\n\t\tbutton = parent_node ? parent_node.querySelector('.close-button, .side-cart-close') : false;\r\n\r\n\t// CLICK OVERLAY.\r\n\tif (parent_node && overlay) {\r\n\t\tconst parentHandle = function (e) {\r\n\t\t\tif (e.target != parent_node) return;\r\n\r\n\t\t\tdoc.classList.remove(class_name);\r\n\r\n\t\t\tparent_node._lastFocused?.focus();\r\n\r\n\t\t\tparent_node.removeEventListener('click', parentHandle);\r\n\t\t\tdocument.dispatchEvent(new CustomEvent('theme-popup-close'));\r\n\t\t};\r\n\r\n\t\tparent_node.addEventListener('click', parentHandle);\r\n\t}\r\n\r\n\t// ESC KEY.\r\n\tdoc.addEventListener('keyup', function (e) {\r\n\t\tif (e.keyCode !== 27) return;\r\n\r\n\t\tdoc.classList.remove(class_name);\r\n\r\n\t\tparent_node?._lastFocused?.focus();\r\n\r\n\t\tdocument.dispatchEvent(new CustomEvent('theme-popup-close'));\r\n\t});\r\n\r\n\t// CLOSE BUTTON.\r\n\tif (button) {\r\n\t\tconst buttonHandle = function () {\r\n\t\t\tdoc.classList.remove(class_name);\r\n\r\n\t\t\tparent_node?._lastFocused?.focus();\r\n\r\n\t\t\tbutton.removeEventListener('click', buttonHandle);\r\n\t\t\tdocument.dispatchEvent(new CustomEvent('theme-popup-close'));\r\n\t\t};\r\n\r\n\t\tbutton.addEventListener('click', buttonHandle);\r\n\t}\r\n}\r\n\r\n// Quick search.\r\nfunction btyQuickSearch() {\r\n\tconst actions          = document.querySelectorAll( '.action-search' );\r\n\tconst dialog           = document.querySelector( '.quick-search' );\r\n\tconst input            = document.querySelector( '.quick-search .search-input' );\r\n\tconst button           = document.querySelector( '.quick-search .search-button' );\r\n\tconst closeBtn         = document.querySelector( '.quick-search .close-search-button' );\r\n\tconst suggestions      = document.querySelector( '.quick-search .suggestions-product' );\r\n\tconst predictiveResult = document.querySelector( '#predictive-search' );\r\n\r\n\tif (!actions.length || !input || !button || !predictiveResult ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\t// dialog semantics (safe to repeat).\r\n\tdialog.setAttribute('role','dialog');\r\n\tdialog.setAttribute('aria-modal','true');\r\n\tdialog.setAttribute('hidden','');\r\n\tdialog.setAttribute('inert','');\r\n\r\n\r\n\tconst FOCUSABLE = 'a,button,input,select,textarea,[tabindex]:not([tabindex=\"-1\"])';\r\n\r\n\tif (Shopify.designMode && document.documentElement.classList.contains( 'quick-search-open' )) {\r\n\t\tbtyClosePopup( 'quick-search-open', dialog );\r\n\t}\r\n\r\n\tactions.forEach((el) => {\r\n\t\tel.onclick = function (e) {\r\n\t\t\te.preventDefault();\r\n\t\t\tdocument.documentElement.classList.add( 'quick-search-open' );\r\n\t\t\tbtyClosePopup( 'quick-search-open', dialog );\r\n\r\n\t\t\t// remember opener to restore focus on close.\r\n\t\t\tdialog._returnFocus = el;\r\n\r\n\t\t\tdialog.removeAttribute('hidden');\r\n\t\t\tdialog.removeAttribute('inert');\r\n\t\t\tinput.focus();\r\n\t\t\tinput.removeAttribute( 'tabindex' );\r\n\r\n\t\t\t// one-time focus trap + Esc to close.\r\n\t\t\tif (!dialog._trap) {\r\n\t\t\t\tdialog._trap = true;\r\n\t\t\t\tdialog.addEventListener('keydown', (ev) => {\r\n\t\t\t\t\tif (ev.key === 'Escape') {\r\n\t\t\t\t\t\tev.preventDefault();\r\n\t\t\t\t\t\tcloseBtn?.click();\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (ev.key !== 'Tab') return;\r\n\t\t\t\t\tif (dialog.hasAttribute('hidden')) return;\r\n\t\t\t\t\tconst els = dialog.querySelectorAll(FOCUSABLE);\r\n\t\t\t\t\tif (!els.length) return;\r\n\t\t\t\t\tconst first = els[0], last = els[els.length - 1];\r\n\t\t\t\t\tif (ev.shiftKey && (document.activeElement === first || document.activeElement === dialog)) {\r\n\t\t\t\t\t\tev.preventDefault(); last.focus();\r\n\t\t\t\t\t} else if (!ev.shiftKey && document.activeElement === last) {\r\n\t\t\t\t\t\tev.preventDefault(); first.focus();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\t});\r\n\r\n\tif (closeBtn) {\r\n\t\tcloseBtn.addEventListener('click', function () {\r\n\t\t\tdocument.documentElement.classList.remove( 'quick-search-open' );\r\n\t\t\tdialog.setAttribute('hidden','');\r\n\t\t\tdialog.setAttribute('inert','');\r\n\t\t\t(dialog._returnFocus || actions[0])?.focus();\r\n\t\t});\r\n\t}\r\n\r\n\tconst searchForm = document.querySelector( '.search-input-page' );\r\n\tif (searchForm) {\r\n\t\tsearchForm.addEventListener('click', function (e) {\r\n\t\t\te.stopPropagation();\r\n\t\t\tdocument.documentElement.classList.add( 'main-search-open' );\r\n\t\t});\r\n\t}\r\n\r\n\tdocument.addEventListener('click', function (e) {\r\n\t\tif (!e.target.closest('.search-form-header')) {\r\n\t\t\tdocument.documentElement.classList.remove( 'main-search-open' );\r\n\t\t}\r\n\t});\r\n\r\n\tinput.addEventListener('input', function () {\r\n\t\tconst value = input.value.trim();\r\n\t\tif (!value) {\r\n\t\t\tpredictiveResult.innerHTML = '';\r\n\t\t\tsuggestions?.classList.remove( 'sr-only' );\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tdialog.classList.add( 'searching' );\r\n\t\tsuggestions?.classList.add( 'sr-only' );\r\n\t\tpredictiveResult.innerHTML = btyGlobals.card_placeholder;\r\n\r\n\t\tconst url = `${btyGlobals.search_url}?section_id=predictive-search&type=product&q=${encodeURIComponent(value)}`;\r\n\r\n\t\tfetch(url)\r\n\t\t\t.then((res) => {\r\n\t\t\t\tif (!res.ok) throw new Error(res.statusText);\r\n\t\t\t\treturn res.text();\r\n\t\t\t})\r\n\t\t\t.then((html) => {\r\n\t\t\t\tconst temp = document.createElement('div');\r\n\t\t\t\ttemp.innerHTML = html;\r\n\r\n\t\t\t\tconst section = temp.querySelector( '#shopify-section-predictive-search' );\r\n\t\t\t\tif (!section) return;\r\n\r\n\t\t\t\tpredictiveResult.innerHTML = section.innerHTML;\r\n\r\n\t\t\t\tif (predictiveResult.innerHTML.trim() === '') {\r\n\t\t\t\t\tpredictiveResult.classList.add( 'hidden' );\r\n\t\t\t\t} else {\r\n\t\t\t\t\tpredictiveResult.classList.remove( 'hidden' );\r\n\t\t\t\t}\r\n\r\n\t\t\t\tbtyAnimationImageLoad(predictiveResult);\r\n\t\t\t\tbtyQuickView( predictiveResult );\r\n\t\t\t\tbtyAddToCart( predictiveResult );\r\n\t\t\t\tbtyQuickAdd( predictiveResult );\r\n\t\t\t\tbtySwatch( predictiveResult );\r\n\t\t\t\tbtyHoverMediaVideo( predictiveResult );\r\n\t\t\t})\r\n\t\t\t.catch(console.error)\r\n\t\t\t.finally(() => {\r\n\t\t\t\tdialog.classList.remove( 'searching' );\r\n\t\t\t});\r\n\t});\r\n}\r\n\r\n// Quantity button.\r\nfunction btyQuantityButton( doc = document ) {\r\n\tlet buttons = doc.querySelectorAll( '.quantity-button' );\r\n\tif ( ! buttons.length ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tbuttons.forEach(\r\n\t\tfunction( el ) {\r\n\t\t\tlet eventChange = new Event( 'change', { bubbles: true } );\r\n\r\n\t\t\tel.onclick = function() {\r\n\t\t\t\tlet input = el.parentNode.querySelector( '.quantity-input' );\r\n\t\t\t\tif ( ! input ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet current = Number( input.value || 0 ),\r\n\t\t\t\t\tstep    = Number( input.getAttribute( 'step' ) || 1 ),\r\n\t\t\t\t\tmin     = Number( input.getAttribute( 'min' ) || 0 ),\r\n\t\t\t\t\tmax     = Number( input.getAttribute( 'max' ) ),\r\n\t\t\t\t\tname    = el.name;\r\n\r\n\t\t\t\tif ( 'minus' === name && current >= step ) { // Minus button.\r\n\t\t\t\t\tif ( current <= min || ( current - step ) < min ) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tinput.value = current - step;\r\n\t\t\t\t} else if ( 'plus' === name ) { // Plus button.\r\n\t\t\t\t\tif ( max && ( current >= max || ( current + step ) > max ) ) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tinput.value = current + step;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Trigger event.\r\n\t\t\t\tinput.dispatchEvent( eventChange );\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n}\r\n\r\n// Main menu.\r\nfunction btyNavMenu( doc = document, event = false ) {\r\n\tlet toggles = doc.querySelectorAll( '.toggle-panel-button' ),\r\n\t\tpanel  = doc.querySelector( '.site-panel' );\r\n\r\n\tif ( ! toggles.length || ! panel ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\t// Close site panel when settings update.\r\n\tif ( event && event.detail.load ) {\r\n\t\tbtyClosePopup( 'site-panel-open', panel );\r\n\t}\r\n\r\n\ttoggles.forEach(\r\n\t\tfunction( el ) {\r\n\t\t\t// Toggle site panel.\r\n\t\t\tel.onclick = function() {\r\n\t\t\t\tdocument.documentElement.classList.add( 'site-panel-open' );\r\n\r\n\t\t\t\tbtyClosePopup( 'site-panel-open', panel );\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t// Toggle sub menu.\r\n\tlet links = doc.querySelectorAll( '.site-panel .has-children' );\r\n\tif ( ! links.length ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tlinks.forEach(\r\n\t\tfunction( el ) {\r\n\t\t\tel.onclick = function( e ) {\r\n\t\t\t\tif ( e.target.classList.contains( 'menu-text' ) && !el.contains(e.target) ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tlet menu    = el.closest( '.toggle-navigation' ),\r\n\t\t\t\t\tparent  = el.parentNode,\r\n\t\t\t\t\tsubMenu = parent.querySelector( '.sub-menu' ) || parent.querySelector( '.sub-mega-menu' );\r\n\t\t\t\tif ( ! subMenu ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tparent.classList.add( 'active' );\r\n\r\n\t\t\t\t// Update current sub menu.\r\n\t\t\t\tlet level = Number( subMenu.getAttribute( 'data-level' ) || 1 ),\r\n\t\t\t\t\tback  = parent.querySelector( '.back' );\r\n\t\t\t\tif ( level ) {\r\n\t\t\t\t\tmenu.setAttribute( 'data-level', level );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Go back parent level.\r\n\t\t\t\tif ( back ) {\r\n\t\t\t\t\tback.onclick = function() {\r\n\t\t\t\t\t\tparent.classList.remove( 'active' );\r\n\t\t\t\t\t\tmenu.setAttribute( 'data-level', level - 1 );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n}\r\n\r\n// Split Slider.\r\nfunction btySplitSlider( doc = document ) {\r\n\tlet selectors = doc.querySelectorAll( '.split-slider' );\r\n\tif ( ! selectors.length ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tselectors.forEach(\r\n\t\tfunction( el ) {\r\n\t\t\tlet imageCarouselOption, imageCarousel, textCarouselOption, textCarousel,\r\n\t\t\t\timageEl = el.querySelector( '.image-content .swiper' ),\r\n\t\t\t\ttextEl  = el.querySelector( '.text-content .swiper' ),\r\n\t\t\t\tmobile  = window.matchMedia( '(max-width: 991px)' ).matches || window.matchMedia( '(hover: none)' ).matches\r\n\r\n\t\t\timageCarouselOption = {\r\n\t\t\t\tspeed: 600,\r\n\t\t\t\tspaceBetween: 40,\r\n\t\t\t\tscrollbar: {\r\n\t\t\t\t\tel: \".split-slider .swiper-scrollbar\",\r\n\t\t\t\t\tdraggable: true\r\n\t\t\t\t},\r\n\t\t\t\tbreakpoints: {\r\n\t\t\t\t\t240: {\r\n\t\t\t\t\t\tslidesPerView: 1\r\n\t\t\t\t\t},\r\n\t\t\t\t\t992: {\r\n\t\t\t\t\t\tslidesPerView: 1.25\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Image card.\r\n\t\t\tif ( imageEl && ! imageEl.classList.contains( 'swiper-initialized' ) ) {\r\n\t\t\t\timageCarousel = new Swiper( imageEl, imageCarouselOption );\r\n\t\t\t}\r\n\r\n\t\t\ttextCarouselOption = {\r\n\t\t\t\tspeed: 600,\r\n\t\t\t\tspaceBetween: 40,\r\n\t\t\t\tscrollbar: {\r\n\t\t\t\t\tel: \".split-slider .swiper-scrollbar\",\r\n\t\t\t\t\tdraggable: true\r\n\t\t\t\t},\r\n\t\t\t\tbreakpoints: {\r\n\t\t\t\t\t240: {\r\n\t\t\t\t\t\tslidesPerView: 1\r\n\t\t\t\t\t},\r\n\t\t\t\t\t992: {\r\n\t\t\t\t\t\tslidesPerView: 1\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Layout.\r\n\t\t\tif ( el.classList.contains( 'content-layout' ) ) {\r\n\t\t\t\ttextCarouselOption.centeredSlides = true;\r\n\t\t\t\ttextCarouselOption.spaceBetween   = 200;\r\n\r\n\t\t\t\tif ( mobile ) {\r\n\t\t\t\t\ttextCarouselOption.autoHeight = true;\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\ttextCarouselOption.autoHeight  = true;\r\n\r\n\t\t\t\ttextCarouselOption.navigation = {\r\n\t\t\t\t\tnextEl: el.querySelector( '.text-content .swiper-button-next' ),\r\n\t\t\t\t\tprevEl: el.querySelector( '.text-content .swiper-button-prev' )\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Text content.\r\n\t\t\tif ( textEl && ! textEl.classList.contains( 'swiper-initialized' ) ) {\r\n\t\t\t\ttextCarousel = new Swiper( textEl, textCarouselOption );\r\n\t\t\t}\r\n\r\n\t\t\t// Sync controls.\r\n\t\t\tif ( textCarousel && imageCarousel ) {\r\n\t\t\t\ttextCarousel.controller.control  = imageCarousel;\r\n\t\t\t\timageCarousel.controller.control = textCarousel;\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n}\r\n\r\n// Account popup.\r\nfunction btyAccountPopup( doc = document ) {\r\n\tlet selectors = doc.querySelectorAll( '.action-account' ),\r\n\t\tcustomer  = document.querySelector( '.customer-wraper' );\r\n\tif ( ! selectors.length || ! customer || document.body.classList.contains( 'has-account-details' ) ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\t// Get display style.\r\n\tconst getStyles = function( el, property = 'display' ) {\r\n\t\tlet obj = window.getComputedStyle( el, null );\r\n\r\n\t\treturn obj.getPropertyValue( property );\r\n\t}\r\n\r\n\t// Get first input field.\r\n\tconst getInput = function( parent ) {\r\n\t\treturn parent.querySelector( '.field input' );\r\n\t}\r\n\r\n\t// Toggle popup.\r\n\tselectors.forEach(\r\n\t\tfunction( el ) {\r\n\t\t\tel.onclick = function( e ) {\r\n\t\t\t\tif ( el.classList.contains( 'new-customer-accounts' ) ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tlet login    = customer.querySelector( '.login' ),\r\n\t\t\t\t\tloginBox = login ? login.querySelector( '#login-container' ) : false,\r\n\t\t\t\t\trecover  = login ? login.querySelector( '#recover-container' ) : false,\r\n\t\t\t\t\tregister = customer.querySelector( '.register' );\r\n\r\n\t\t\t\tif ( ! recover || ! loginBox || ! register ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdocument.documentElement.classList.add( 'customer-open' );\r\n\r\n\t\t\t\t// Focus input field on desktop.\r\n\t\t\t\tif ( window.matchMedia( '(min-width: 992px)' ).matches ) {\r\n\t\t\t\t\tif ( getStyles( register ) === 'block' ) {\r\n\t\t\t\t\t\tgetInput( register ).focus();\r\n\t\t\t\t\t} else if ( getStyles( recover ) === 'block' ) {\r\n\t\t\t\t\t\tgetInput( recover ).focus();\r\n\t\t\t\t\t} else if ( getStyles( loginBox ) === 'block' ) {\r\n\t\t\t\t\t\tgetInput( loginBox ).focus();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Close popup.\r\n\t\t\t\tbtyClosePopup( 'customer-open', customer );\r\n\r\n\t\t\t\tcustomer.onclick = function( e ) {\r\n\t\t\t\t\tlet target = e.target;\r\n\r\n\t\t\t\t\t// Create account.\r\n\t\t\t\t\tif ( target.classList.contains( 'create-account' ) ) {\r\n\t\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\t\tlogin.classList.add( 'hidden' );\r\n\t\t\t\t\t\tregister.classList.remove( 'hidden' );\r\n\r\n\t\t\t\t\t\tgetInput( register ).focus();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Sign-in.\r\n\t\t\t\t\tif ( target.classList.contains( 'sign-in' ) ) {\r\n\t\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\t\tlogin.classList.remove( 'hidden' );\r\n\t\t\t\t\t\tregister.classList.add( 'hidden' );\r\n\r\n\t\t\t\t\t\tgetInput( loginBox ).focus();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Fogot password.\r\n\t\t\t\t\tif ( target.classList.contains( 'forgot-password' ) ) {\r\n\t\t\t\t\t\tsetTimeout(\r\n\t\t\t\t\t\t\tfunction() {\r\n\t\t\t\t\t\t\t\tgetInput( recover ).focus();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Cancel login.\r\n\t\t\t\t\tif ( target.classList.contains( 'login-cancel' ) ) {\r\n\t\t\t\t\t\tsetTimeout(\r\n\t\t\t\t\t\t\tfunction() {\r\n\t\t\t\t\t\t\t\tgetInput( loginBox ).focus();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n}\r\n\r\n// Update cart item count.\r\nfunction btyCartItemCount( items = 1 ) {\r\n\tlet count = document.querySelectorAll( '.cart-item-count' ),\r\n\t\tlabel = document.querySelectorAll( '.item-count-label' );\r\n\tif ( ! count.length ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\titems = Number( items );\r\n\r\n\tcount.forEach(\r\n\t\tfunction( el ) {\r\n\t\t\tel.innerHTML = items;\r\n\r\n\t\t\tif ( items < 1 ) {\r\n\t\t\t\tel.classList.add( 'hidden' );\r\n\t\t\t} else {\r\n\t\t\t\tel.classList.remove( 'hidden' );\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n\r\n\tlabel.forEach(\r\n\t\tfunction( el ) {\r\n\t\t\tif (typeof window.cartText !== 'undefined') {\r\n\t\t\t\tel.textContent = items === 1 ? window.cartText.one : window.cartText.other;\r\n\t\t\t} else {\r\n\t\t\t\tel.textContent = items === 1 ? 'item' : 'items';\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n}\r\n\r\n// Find if two arrays contain any common item in Javascript.\r\nfunction btyDiffObject( haystack, arr ) {\r\n\treturn arr.every(\r\n\t\tfunction( v ) {\r\n\t\t\treturn haystack.includes( v );\r\n\t\t}\r\n\t);\r\n};\r\n\r\n// Selected variant image.\r\nfunction btySelectedVariant( variant, data, slider ) {\r\n\tfor ( let opt in data ) {\r\n\t\tif ( btyDiffObject( Object.values( variant ), data[opt].options ) ) {\r\n\t\t\tif ( 'object' === typeof( slider ) && Object.keys( slider ).length && data[opt].featured_media ) {\r\n\t\t\t\tslider.slideTo( ( data[opt].featured_media.position - 1 ), 500, false );\r\n\t\t\t}\r\n\r\n\t\t\treturn data[opt];\r\n\t\t}\r\n\t}\r\n}\r\n\r\n// Fetch cart data.\r\nfunction btyFetchCart( obj, modules, item ) {\r\n\tlet body = JSON.stringify( obj );\r\n\r\n\tfetch( btyGlobals.cart_change_url, {...btyFetchConfig(), ...{ body } } )\r\n\t\t.then(\r\n\t\t\tfunction( r ) {\r\n\t\t\t\treturn r.json();\r\n\t\t\t}\r\n\t\t).then(\r\n\t\t\tfunction( res ) {\r\n\t\t\t\tlet warning = item.querySelectorAll( '.product-warning' );\r\n\t\t\t\tif ( warning.length ) {\r\n\t\t\t\t\twarning.forEach(\r\n\t\t\t\t\t\tfunction( el ) {\r\n\t\t\t\t\t\t\tel.innerHTML = '';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ( res.errors && warning.length ) {\r\n\t\t\t\t\twarning.forEach(\r\n\t\t\t\t\t\tfunction( el ) {\r\n\t\t\t\t\t\t\tel.innerHTML = btyGlobals.svg_warning + res.errors;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t\tlet qtyInput = item.querySelectorAll( '.quantity-input' );\r\n\t\t\t\t\tif ( qtyInput.length ) {\r\n\t\t\t\t\t\tqtyInput.forEach(\r\n\t\t\t\t\t\t\tfunction( el ) {\r\n\t\t\t\t\t\t\t\tel.value = el.getAttribute( 'data-qty' );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Update cart item count first.\r\n\t\t\t\tbtyCartItemCount( res.item_count );\r\n\r\n\t\t\t\t// Cart empty.\r\n\t\t\t\tif ( ! res.items.length ) {\r\n\t\t\t\t\tlet cartTable       = document.querySelector( '.cart-page-section .container' ),\r\n\t\t\t\t\t\tcartSubtotal    = cartTable ? cartTable.querySelector( '.cart-footer' ) : false,\r\n\t\t\t\t\t\tsideCartContent = document.querySelector( '.side-cart-content' ),\r\n\t\t\t\t\t\tsideCartFooter  = document.querySelector( '.side-cart-footer' );\r\n\r\n\t\t\t\t\t// Update cart table section.\r\n\t\t\t\t\tif ( cartTable ) {\r\n\t\t\t\t\t\tcartTable.innerHTML = btyGetSectionHtml( res.sections['main-cart'], '.container' );\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Remove cart subtotal section.\r\n\t\t\t\t\tif ( cartSubtotal ) {\r\n\t\t\t\t\t\tcartSubtotal.remove();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Update side cart content.\r\n\t\t\t\t\tif ( sideCartContent ) {\r\n\t\t\t\t\t\tsideCartContent.innerHTML = btyGetSectionHtml( res.sections['side-cart'], '.side-cart-content' );\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Remove side cart footer.\r\n\t\t\t\t\tif ( sideCartFooter ) {\r\n\t\t\t\t\t\tsideCartFooter.remove();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Open login popup when cart empty.\r\n\t\t\t\t\tbtyAccountPopup();\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Update current item.\r\n\t\t\t\tlet currentItem = res.items.filter( (e) => e.line === Number( obj.line ) );\r\n\t\t\t\tif ( currentItem.length ) {\r\n\t\t\t\t\tlet sidecartContent = item.closest( '.side-cart-content' ),\r\n\t\t\t\t\t\ttotalPrice      = item.querySelector( '.totals-item-price' ),\r\n\t\t\t\t\t\tquantityUnit    = item.querySelectorAll( '[name=\"quantity\"]' );\r\n\t\t\t\t\tif ( totalPrice ) {\r\n\t\t\t\t\t\ttotalPrice.innerHTML = btyGetSectionHtml( res.sections['main-cart'], '[data-line=\"' + obj.line + '\"] .totals-item-price' );\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif ( sidecartContent ) {\r\n\t\t\t\t\t\titem.innerHTML = btyGetSectionHtml( res.sections['side-cart'], '[data-line=\"' + obj.line + '\"]' );\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif ( quantityUnit.length ) {\r\n\t\t\t\t\t\tquantityUnit.forEach(\r\n\t\t\t\t\t\t\tfunction( el ) {\r\n\t\t\t\t\t\t\t\tel.setAttribute( 'data-qty', obj.quantity );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\titem.remove();\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Update html.\r\n\t\t\t\tbtyUpdateHtml( res.sections, modules );\r\n\r\n\t\t\t\t// Re-init quantity button.\r\n\t\t\t\tbtyQuantityButton();\r\n\r\n\t\t\t\t// Re-init update product quantity.\r\n\t\t\t\tbtyUpdateProductQuantity();\r\n\r\n\t\t\t\t// Update cart progress bar.\r\n\t\t\t\tbtyUpdateProgressBarCart( res.total_price );\r\n\r\n\t\t\t\t// Re-init minicart recommendations.\r\n\t\t\t\tbtyAnimationImageLoad();\r\n\t\t\t\tbtyScrollAnimationTrigger();\r\n\t\t\t\tbtyMinicartRecommendations();\r\n\r\n\t\t\t\t// Re-init cart popup outer.\r\n\t\t\t\tbtySideCartPopupOuter();\r\n\r\n\t\t\t\t// Reinit checkbox agree to terms.\r\n\t\t\t\tbtyAgreeToTerms();\r\n\t\t\t}\r\n\t\t).catch(\r\n\t\t\tfunction( e ) {\r\n\t\t\t\tconsole.error( e );\r\n\t\t\t}\r\n\t\t).finally(\r\n\t\t\tfunction() {\r\n\t\t\t\t// Remove loading.\r\n\t\t\t\titem.classList.remove( 'updating' );\r\n\t\t\t}\r\n\t\t);\r\n}\r\n\r\n// Update product quantity.\r\nfunction btyUpdateProductQuantity( doc = document ) {\r\n\tlet item = doc.querySelectorAll( '.product-item[data-line]' );\r\n\tif ( ! item.length ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\t// Register dom html need an update when the response available.\r\n\tlet modules = [\r\n\t\t{\r\n\t\t\tnode: '.cart-totals',\r\n\t\t\tsection: 'main-cart',\r\n\t\t\tselector: '.cart-totals'\r\n\t},\r\n\t\t{\r\n\t\t\tnode: '.agree-to-terms',\r\n\t\t\tsection: 'main-cart',\r\n\t\t\tselector: '.agree-to-terms'\r\n\t},\r\n\t\t{\r\n\t\t\tnode: '.cart-table',\r\n\t\t\tsection: 'main-cart',\r\n\t\t\tselector: '.cart-table'\r\n\t},\r\n\t\t{\r\n\t\t\tnode: '.cart-items',\r\n\t\t\tsection: 'side-cart',\r\n\t\t\tselector: '.cart-items'\r\n\t},\r\n\t\t{\r\n\t\t\tnode: '.minicart-recommendations-wrapper',\r\n\t\t\tsection: 'side-cart',\r\n\t\t\tselector: '.minicart-recommendations-wrapper'\r\n\t},\r\n\t\t{\r\n\t\t\tnode: '.side-cart .sub-total',\r\n\t\t\tsection: 'side-cart',\r\n\t\t\tselector: '.side-cart .sub-total'\r\n\t},\r\n\t\t{\r\n\t\t\tnode: '.side-cart .agree-to-terms',\r\n\t\t\tsection: 'side-cart',\r\n\t\t\tselector: '.side-cart .agree-to-terms'\r\n\t}\r\n\t];\r\n\r\n\titem.forEach(\r\n\t\tfunction( el ) {\r\n\t\t\tlet line = parseInt( el.getAttribute( 'data-line' ), 10 );\r\n\r\n\t\t\tif ( ! line || isNaN( line ) ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tlet removes = el.querySelectorAll( '.product-remove' ),\r\n\t\t\t\tinputs  = el.querySelectorAll( '.quantity-input' );\r\n\r\n\t\t\t// Quantity change.\r\n\t\t\tif ( inputs.length ) {\r\n\t\t\t\tinputs.forEach(\r\n\t\t\t\t\tfunction( input ) {\r\n\t\t\t\t\t\tinput.onchange = function() {\r\n\t\t\t\t\t\t\tlet data, quantity = Number( input.value.trim() );\r\n\r\n\t\t\t\t\t\t\t// Loading effect.\r\n\t\t\t\t\t\t\tel.classList.add( 'updating' );\r\n\r\n\t\t\t\t\t\t\tdata = {\r\n\t\t\t\t\t\t\t\tline: line,\r\n\t\t\t\t\t\t\t\tquantity: quantity,\r\n\t\t\t\t\t\t\t\tsections: modules.map( (s) => s.section ),\r\n\t\t\t\t\t\t\t\tsections_url: window.location.pathname\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Fetch data.\r\n\t\t\t\t\t\t\tbtyFetchCart( data, modules, el );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\t// Remove button click.\r\n\t\t\tif ( removes.length ) {\r\n\t\t\t\tremoves.forEach(\r\n\t\t\t\t\tfunction( remove ) {\r\n\t\t\t\t\t\tremove.onclick = function( e ) {\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\t\t\t// Loading effect.\r\n\t\t\t\t\t\t\tel.classList.add( 'updating' );\r\n\r\n\t\t\t\t\t\t\tlet data = {\r\n\t\t\t\t\t\t\t\tline: line,\r\n\t\t\t\t\t\t\t\tquantity: 0,\r\n\t\t\t\t\t\t\t\tsections: modules.map( (s) => s.section ),\r\n\t\t\t\t\t\t\t\tsections_url: window.location.pathname\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t// Fetch data.\r\n\t\t\t\t\t\t\tbtyFetchCart( data, modules, el );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n}\r\n\r\n// Variant options.\r\nfunction btyProductVariants(doc = document, output = false) {\r\n\tlet data,\r\n\t\tselector = doc.querySelectorAll('.product-variants');\r\n\tif (!selector.length) return;\r\n\r\n\tselector.forEach(function (sl) {\r\n\t\tlet variants = sl.parentNode.querySelector('[data-product-variants]'),\r\n\t\t\tquantity = sl.parentNode.querySelector('[data-inventory-quantity]'),\r\n\t\t\tfield = sl.querySelectorAll('.field-value');\r\n\t\tif (!field.length || !variants || !quantity) return;\r\n\r\n\t\tlet product      = sl.closest('.main-product'),\r\n\t\t\tgallery      = product ? product.querySelector('.product-gallery') : false,\r\n\t\t\tfeatured     = sl.closest('.featured-product-product'),\r\n\t\t\timage        = featured ? featured.querySelector('.media-preview') : false,\r\n\t\t\tsummary      = sl.closest('.product-summary'),\r\n\t\t\tvariant_pick = {};\r\n\r\n\t\tvariants = btyJsonParse(variants.textContent);\r\n\t\tquantity = btyJsonParse(quantity.textContent);\r\n\r\n\t\tlet price       = summary.querySelector('.product-price'),\r\n\t\t\tform        = summary.querySelector('[data-type=\"add-to-cart-form\"]'),\r\n\t\t\tinput       = form ? form.querySelector('.quantity-input') : false,\r\n\t\t\tproductId   = form ? form.querySelector('[name=\"id\"]') : false,\r\n\t\t\tbutton      = form ? form.querySelector('[name=\"add\"]') : false,\r\n\t\t\tprice_2     = summary.querySelector('.product-price-floated .product-price'),\r\n\t\t\tform_2      = summary.querySelector('.product-floated-product-form [data-type=\"add-to-cart-form\"]'),\r\n\t\t\tinput_2     = form_2 ? form_2.querySelector('.quantity-input') : false,\r\n\t\t\tproductId_2 = form_2 ? form_2.querySelector('[name=\"id\"]') : false,\r\n\t\t\tbutton_2    = form_2 ? form_2.querySelector('[name=\"add\"]') : false,\r\n\t\t\tproductUrl  = sl.getAttribute('data-url'),\r\n\t\t\tpickup      = summary.querySelector('.pickup-availability'),\r\n\t\t\tamount      = summary.querySelector('.product-sale-label .sale-total .saved-number');\r\n\r\n\t\tfield.forEach(function (el) {\r\n\t\t\tif (el.type === 'radio') {\r\n\t\t\t\tif (el.checked) variant_pick[el.name] = el.value;\r\n\t\t\t} else {\r\n\t\t\t\tvariant_pick[el.name] = el.value;\r\n\t\t\t}\r\n\r\n\t\t\tel.onchange = function () {\r\n\t\t\t\tvariant_pick[el.name] = el.value;\r\n\t\t\t\tbtyUpdateStockStatusProduct(variants, sl);\r\n\r\n\t\t\t\tlet selected = btySelectedVariant(variant_pick, variants);\r\n\r\n\t\t\t\tif ( form ) {\r\n\t\t\t\t\tlet sellingMessage = form.parentNode.querySelector( '.selling-plan-message' ),\r\n\t\t\t\t\t\tbutton         = form.querySelector( '.add-to-cart-button' ),\r\n\t\t\t\t\t\tpaymentButton  = form.querySelector( '.shopify-payment-button' );\r\n\r\n\t\t\t\t\tif ( sellingMessage && ! sellingMessage.classList.contains( 'hidden' ) ) {\r\n\t\t\t\t\t\tsellingMessage.innerHTML = '';\r\n\t\t\t\t\t\tsellingMessage.classList.add( 'hidden' );\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif ( selected.requires_selling_plan && selected.selling_plan_allocations.length == 0 ) {\r\n\t\t\t\t\t\tif ( button ) {\r\n\t\t\t\t\t\t\tbutton.classList.add( 'selling-plan-error' );\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif ( paymentButton ) {\r\n\t\t\t\t\t\t\tpaymentButton.classList.add( 'hidden' );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif ( button ) {\r\n\t\t\t\t\t\t\tbutton.classList.remove( 'selling-plan-error' );\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif ( paymentButton ) {\r\n\t\t\t\t\t\t\tpaymentButton.classList.remove( 'hidden' );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!selected) {\r\n\t\t\t\t\tif (button) {\r\n\t\t\t\t\t\tbutton.classList.add('disabled');\r\n\t\t\t\t\t\tbutton.innerHTML = btyStrings.product.unavailable;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (button_2) {\r\n\t\t\t\t\t\tbutton_2.classList.add('disabled');\r\n\t\t\t\t\t\tbutton_2.innerHTML = btyStrings.product.unavailable;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (form) form.classList.add('disabled');\r\n\t\t\t\t\tif (form_2) form_2.classList.add('disabled');\r\n\t\t\t\t\tif (pickup) pickup.innerHTML = '';\r\n\t\t\t\t\tif (amount) amount.closest('.product-sale-label').classList.add('hidden');\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (productId) productId.value = selected.id;\r\n\t\t\t\tif (productId_2) productId_2.value = selected.id;\r\n\r\n\t\t\t\tif (image && selected.featured_image) {\r\n\t\t\t\t\timage.removeAttribute('srcset');\r\n\t\t\t\t\tbtyImageLoad(image, selected.featured_image.src, selected.featured_media.id, image.parentNode);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (productUrl && gallery) {\r\n\t\t\t\t\twindow.history.replaceState({}, '', productUrl + '?variant=' + selected.id);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (price) {\r\n\t\t\t\t\tprice.innerHTML = btyPriceHtml(selected.price, selected.compare_at_price, selected.unit_price, selected.unit_price_measurement);\r\n\t\t\t\t}\r\n\t\t\t\tif (price_2) {\r\n\t\t\t\t\tprice_2.innerHTML = btyPriceHtml(selected.price, selected.compare_at_price, selected.unit_price, selected.unit_price_measurement);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (amount) {\r\n\t\t\t\t\tif (selected.compare_at_price) {\r\n\t\t\t\t\t\tlet amountTotal = 100 * (selected.compare_at_price - selected.price) / selected.compare_at_price;\r\n\t\t\t\t\t\tamount.innerHTML = amountTotal.toFixed(0);\r\n\t\t\t\t\t\tamount.closest('.product-sale-label').classList.remove('hidden');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tamount.closest('.product-sale-label').classList.add('hidden');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (input) {\r\n\t\t\t\t\tlet max = quantity.filter(e => e.id === selected.id);\r\n\t\t\t\t\tif (max.length) {\r\n\t\t\t\t\t\tlet qty = max[0].qty;\r\n\t\t\t\t\t\tif (qty > 0) {\r\n\t\t\t\t\t\t\tif (Number(input.value) > qty) input.value = qty;\r\n\t\t\t\t\t\t\tinput.setAttribute('max', qty);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tinput.removeAttribute('max');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tinput.removeAttribute('max');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet groupImage = document.querySelectorAll('.check-group-image .swiper[data-color]');\r\n\t\t\t\tif (groupImage.length) {\r\n\t\t\t\t\tlet colorName = selected.featured_media && selected.featured_media.alt ? selected.featured_media.alt.split('_')[0] : false;\r\n\t\t\t\t\tif (colorName) {\r\n\t\t\t\t\t\tgroupImage.forEach(function (gi) {\r\n\t\t\t\t\t\t\tlet label = gi.getAttribute('data-color');\r\n\t\t\t\t\t\t\tif (!label) return;\r\n\t\t\t\t\t\t\tif (colorName.trim().toLowerCase() == label) gi.classList.remove('group-hidden');\r\n\t\t\t\t\t\t\telse gi.classList.add('group-hidden');\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet shopifyPayment = document.querySelector('shopify-payment-terms');\r\n\t\t\t\tif (shopifyPayment) shopifyPayment.setAttribute('variant-id', selected.id);\r\n\r\n\t\t\t\tif (pickup) {\r\n\t\t\t\t\tif (selected.available) btyPickupAvailability(doc, productId.value, pickup);\r\n\t\t\t\t\telse pickup.innerHTML = '';\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet selectedOption = el.closest('.variant-field')?.querySelector('.field-title .selected-value');\r\n\t\t\t\tif (selectedOption) selectedOption.innerText = el.value.trim();\r\n\r\n\t\t\t\tif (form) form.classList.toggle('disabled', !selected.available);\r\n\t\t\t\tif (form_2) form_2.classList.toggle('disabled', !selected.available);\r\n\r\n\t\t\t\tif (button) {\r\n\t\t\t\t\tif (selected.available) {\r\n\t\t\t\t\t\tlet priceHTML = '';\r\n\t\t\t\t\t\tif (selected.compare_at_price && selected.compare_at_price > selected.price) {\r\n\t\t\t\t\t\t\tconst discount = Math.round((1 - selected.price / selected.compare_at_price) * 100);\r\n\t\t\t\t\t\t\tpriceHTML = `\r\n\t\t\t\t\t\t\t\t<span> - </span>\r\n\t\t\t\t\t\t\t\t<div class=\"product-price price--on-sale\">\r\n\t\t\t\t\t\t\t\t\t<div class=\"price__sale\">\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"price\">$${(selected.price / 100).toFixed(2)}</span>\r\n\t\t\t\t\t\t\t\t\t\t<s class=\"regular-price\">$${(selected.compare_at_price / 100).toFixed(2)}</s>\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"product-sale-label\">\r\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"sale-total\">-${discount}%</span>\r\n\t\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t`;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tpriceHTML = `\r\n\t\t\t\t\t\t\t\t<span> - </span>\r\n\t\t\t\t\t\t\t\t<div class=\"product-price\">\r\n\t\t\t\t\t\t\t\t\t<span class=\"price d\">$${(selected.price / 100).toFixed(2)}</span>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t`;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tbutton.innerHTML = `${btyStrings.product.add_to_cart}`;\r\n\t\t\t\t\t\tbutton.classList.remove('disabled');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tbutton.innerHTML = btyStrings.product.out_of_stock;\r\n\t\t\t\t\t\tbutton.classList.add('disabled');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (button_2) {\r\n\t\t\t\t\tif (selected.available) {\r\n\t\t\t\t\t\tbutton_2.innerHTML = btyStrings.product.add_to_cart;\r\n\t\t\t\t\t\tbutton_2.classList.remove('disabled');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tbutton_2.innerHTML = btyStrings.product.out_of_stock;\r\n\t\t\t\t\t\tbutton_2.classList.add('disabled');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdocument.dispatchEvent(new CustomEvent('product-variant-updated', { detail: { selected } }));\r\n\t\t\t};\r\n\r\n\t\t\tif (amount?.textContent.trim()) {\r\n\t\t\t\tamount.closest('.product-sale-label')?.classList.remove('hidden');\r\n\t\t\t} else {\r\n\t\t\t\tamount?.closest('.product-sale-label')?.classList.add('hidden');\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tlet firstSelected = btySelectedVariant(variant_pick, variants);\r\n\r\n\t\tif (!firstSelected && variants.length) {\r\n\t\t\tlet cheapest = variants.reduce((prev, curr) => (curr.price < prev.price ? curr : prev));\r\n\t\t\tfirstSelected = cheapest;\r\n\t\t\tvariant_pick = cheapest.options.reduce((obj, val, index) => {\r\n\t\t\t\tobj['option' + (index + 1)] = val;\r\n\t\t\t\treturn obj;\r\n\t\t\t}, {});\r\n\r\n\t\t\tif (productId) productId.value = cheapest.id;\r\n\t\t\tif (productId_2) productId_2.value = cheapest.id;\r\n\t\t\tif (price) price.innerHTML = btyPriceHtml(cheapest.price, cheapest.compare_at_price, cheapest.unit_price, cheapest.unit_price_measurement);\r\n\t\t\tif (price_2) price_2.innerHTML = btyPriceHtml(cheapest.price, cheapest.compare_at_price, cheapest.unit_price, cheapest.unit_price_measurement);\r\n\r\n\t\t\tif (button) {\r\n\t\t\t\tif (cheapest.available) {\r\n\t\t\t\t\tbutton.classList.remove('disabled');\r\n\t\t\t\t\tbutton.innerHTML = btyStrings.product.add_to_cart;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tbutton.classList.add('disabled');\r\n\t\t\t\t\tbutton.innerHTML = btyStrings.product.out_of_stock;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif (button_2) {\r\n\t\t\t\tif (cheapest.available) {\r\n\t\t\t\t\tbutton_2.classList.remove('disabled');\r\n\t\t\t\t\tbutton_2.innerHTML = btyStrings.product.add_to_cart;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tbutton_2.classList.add('disabled');\r\n\t\t\t\t\tbutton_2.innerHTML = btyStrings.product.out_of_stock;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfield.forEach(el => {\r\n\t\t\t\tlet value = cheapest.options.find(v => v === el.value);\r\n\t\t\t\tif (value) {\r\n\t\t\t\t\tel.checked = true;\r\n\t\t\t\t\tel.dispatchEvent(new Event('change'));\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else if (firstSelected) {\r\n\t\t\tlet checkedField = sl.querySelector('.field-value:checked');\r\n\t\t\tif (checkedField) {\r\n\t\t\t\tcheckedField.dispatchEvent(new Event('change'));\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (pickup && firstSelected && firstSelected.available) btyPickupAvailability(doc, firstSelected.id, pickup);\r\n\r\n\t\tif (input && firstSelected) {\r\n\t\t\tlet max = quantity.filter(e => e.id === firstSelected.id);\r\n\t\t\tif (max.length) {\r\n\t\t\t\tlet qty = max[0].qty;\r\n\t\t\t\tif (qty > 0) {\r\n\t\t\t\t\tif (Number(input.value) > qty) input.value = qty;\r\n\t\t\t\t\tinput.setAttribute('max', qty);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tinput.removeAttribute('max');\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tinput.removeAttribute('max');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tdata = firstSelected;\r\n\t});\r\n\r\n\tif (output) return data;\r\n}\r\n\r\n// Quick view variant options.\r\nfunction btyQuickViewVariants(doc = document, slider = {}) {\r\n\tlet selector = doc.querySelector('.product-variants');\r\n\tif (!selector) return;\r\n\r\n\tlet variants = selector.parentNode.querySelector('[data-product-variants]'),\r\n\t\tquantity = selector.parentNode.querySelector('[data-inventory-quantity]'),\r\n\t\tfield    = selector.querySelectorAll('.field-value');\r\n\tif (!field.length || !variants || !quantity) return;\r\n\r\n\tlet summary      = selector.closest('.product-summary') || selector.parentNode,\r\n\t\timage        = summary.querySelector('.media-preview'),\r\n\t\tform         = summary.querySelector('[data-type=\"add-to-cart-form\"]'),\r\n\t\tprice        = summary.querySelector('.product-price'),\r\n\t\tbutton       = form ? form.querySelector('[name=\"add\"]') : false,\r\n\t\tproductId    = form ? form.querySelector('[name=\"id\"]') : false,\r\n\t\tinput        = form ? form.querySelector('.quantity-input') : false,\r\n\t\tpickup       = summary.querySelector('.pickup-availability'),\r\n\t\tamount       = summary.querySelector('.product-sale-label .sale-total .saved-number'),\r\n\t\tproductUrl   = selector.getAttribute('data-url'),\r\n\t\tproductLink  = summary.querySelector('.product-url'),\r\n\t\tshareInput   = summary.querySelector('.product-share .field-input'),\r\n\t\tvariant_pick = {};\r\n\r\n\tvariants = btyJsonParse(variants.textContent);\r\n\tquantity = btyJsonParse(quantity.textContent);\r\n\r\n\tfield.forEach((el) => {\r\n\t\tif (el.type === 'radio') {\r\n\t\t\tif (el.checked) variant_pick[el.name] = el.value;\r\n\t\t} else {\r\n\t\t\tvariant_pick[el.name] = el.value;\r\n\t\t}\r\n\r\n\t\tel.onchange = function () {\r\n\t\t\tvariant_pick[el.name] = el.value;\r\n\t\t\tbtyUpdateStockStatusProduct(variants, selector);\r\n\r\n\t\t\tlet selected = btySelectedVariant(variant_pick, variants, slider);\r\n\t\t\tif (!selected) {\r\n\t\t\t\tif (button) {\r\n\t\t\t\t\tbutton.classList.add('disabled');\r\n\t\t\t\t\tbutton.innerHTML = btyStrings.product.unavailable;\r\n\t\t\t\t}\r\n\t\t\t\tif (form) form.classList.add('disabled');\r\n\t\t\t\tif (pickup) pickup.innerHTML = '';\r\n\t\t\t\tif (amount) amount.closest('.product-sale-label')?.classList.add('hidden');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// Check variant selling plan.\r\n\t\t\tif ( form ) {\r\n\t\t\t\tlet sellingMessage = form.parentNode.querySelector( '.selling-plan-message' );\r\n\r\n\t\t\t\tif ( sellingMessage && ! sellingMessage.classList.contains( 'hidden' ) ) {\r\n\t\t\t\t\tsellingMessage.innerHTML = '';\r\n\t\t\t\t\tsellingMessage.classList.add( 'hidden' );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (productId) productId.value = selected.id;\r\n\r\n\t\t\tif (image && selected.featured_image) {\r\n\t\t\t\timage.removeAttribute('srcset');\r\n\t\t\t\tbtyImageLoad(image, selected.featured_image.src, selected.featured_media?.id, image.parentNode);\r\n\t\t\t}\r\n\r\n\t\t\tif (productUrl) {\r\n\t\t\t\tif (productLink) productLink.href = productUrl + '?variant=' + selected.id;\r\n\t\t\t\tif (shareInput) shareInput.value = window.location.origin + productUrl + '?variant=' + selected.id;\r\n\t\t\t}\r\n\r\n\t\t\tif (price) {\r\n\t\t\t\tprice.innerHTML = btyPriceHtml(selected.price, selected.compare_at_price, selected.unit_price, selected.unit_price_measurement);\r\n\t\t\t}\r\n\r\n\t\t\tif (amount) {\r\n\t\t\t\tif (selected.compare_at_price) {\r\n\t\t\t\t\tlet amountTotal = 100 * (selected.compare_at_price - selected.price) / selected.compare_at_price;\r\n\t\t\t\t\tamount.innerHTML = amountTotal.toFixed(0);\r\n\t\t\t\t\tamount.closest('.product-sale-label')?.classList.remove('hidden');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tamount.closest('.product-sale-label')?.classList.add('hidden');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (input) {\r\n\t\t\t\tlet max = quantity.find(e => e.id === selected.id);\r\n\t\t\t\tif (max) {\r\n\t\t\t\t\tlet qty = max.qty;\r\n\t\t\t\t\tif (qty > 0) {\r\n\t\t\t\t\t\tif (Number(input.value) > qty) input.value = qty;\r\n\t\t\t\t\t\tinput.setAttribute('max', qty);\r\n\t\t\t\t\t} else input.removeAttribute('max');\r\n\t\t\t\t} else input.removeAttribute('max');\r\n\t\t\t}\r\n\r\n\t\t\tif (form) form.classList.toggle('disabled', !selected.available);\r\n\r\n\t\t\tif (button) {\r\n\t\t\t\tif (selected.available) {\r\n\t\t\t\t\tlet priceHTML = '';\r\n\t\t\t\t\tif (selected.compare_at_price && selected.compare_at_price > selected.price) {\r\n\t\t\t\t\t\tconst discount = Math.round((1 - selected.price / selected.compare_at_price) * 100);\r\n\t\t\t\t\t\tpriceHTML = `\r\n\t\t\t\t\t\t\t<span> - </span>\r\n\t\t\t\t\t\t\t<div class=\"product-price price--on-sale\">\r\n\t\t\t\t\t\t\t\t<div class=\"price__sale\">\r\n\t\t\t\t\t\t\t\t\t<span class=\"price\">$${(selected.price / 100).toFixed(2)}</span>\r\n\t\t\t\t\t\t\t\t\t<s class=\"regular-price\">$${(selected.compare_at_price / 100).toFixed(2)}</s>\r\n\t\t\t\t\t\t\t\t\t<span class=\"product-sale-label\">\r\n\t\t\t\t\t\t\t\t\t\t<span class=\"sale-total\">-${discount}%</span>\r\n\t\t\t\t\t\t\t\t\t</span>\r\n\t\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t`;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tpriceHTML = `\r\n\t\t\t\t\t\t\t<span> - </span>\r\n\t\t\t\t\t\t\t<div class=\"product-price\">\r\n\t\t\t\t\t\t\t\t<span class=\"price\">$${(selected.price / 100).toFixed(2)}</span>\r\n\t\t\t\t\t\t\t</div>\r\n\t\t\t\t\t\t`;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tbutton.innerHTML = `${btyStrings.product.add_to_cart}`;\r\n\t\t\t\t\tbutton.classList.remove('disabled');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tbutton.innerHTML = btyStrings.product.out_of_stock;\r\n\t\t\t\t\tbutton.classList.add('disabled');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (pickup) {\r\n\t\t\t\tif (selected.available) btyPickupAvailability(doc, selected.id, pickup);\r\n\t\t\t\telse pickup.innerHTML = '';\r\n\t\t\t}\r\n\r\n\t\t\tlet selectedOption = el.closest('.variant-field')?.querySelector('.field-title .selected-value');\r\n\t\t\tif (selectedOption) selectedOption.innerText = el.value.trim();\r\n\r\n\t\t\tdocument.dispatchEvent(new CustomEvent('product-variant-updated', { detail: { selected } }));\r\n\t\t};\r\n\t});\r\n\r\n\tlet firstSelected = btySelectedVariant(variant_pick, variants, slider);\r\n\tif (!firstSelected && variants.length) {\r\n\t\tlet cheapest = variants.reduce((prev, curr) => (curr.price < prev.price ? curr : prev));\r\n\t\tfirstSelected = cheapest;\r\n\t\tvariant_pick = cheapest.options.reduce((obj, val, index) => {\r\n\t\t\tobj['option' + (index + 1)] = val;\r\n\t\t\treturn obj;\r\n\t\t}, {});\r\n\r\n\t\tif (productId) productId.value = cheapest.id;\r\n\t\tif (price) price.innerHTML = btyPriceHtml(cheapest.price, cheapest.compare_at_price, cheapest.unit_price, cheapest.unit_price_measurement);\r\n\r\n\t\tif (button) {\r\n\t\t\tif (cheapest.available) {\r\n\t\t\t\tbutton.classList.remove('disabled');\r\n\t\t\t\tbutton.innerHTML = btyStrings.product.add_to_cart;\r\n\t\t\t} else {\r\n\t\t\t\tbutton.classList.add('disabled');\r\n\t\t\t\tbutton.innerHTML = btyStrings.product.out_of_stock;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfield.forEach(el => {\r\n\t\t\tlet value = cheapest.options.find(v => v === el.value);\r\n\t\t\tif (value) {\r\n\t\t\t\tel.checked = true;\r\n\t\t\t\tel.dispatchEvent(new Event('change'));\r\n\t\t\t}\r\n\t\t});\r\n\t} else if (firstSelected) {\r\n\t\tlet checkedField = selector.querySelector('.field-value:checked');\r\n\t\tif (checkedField) checkedField.dispatchEvent(new Event('change'));\r\n\t}\r\n\r\n\tif (pickup && firstSelected && firstSelected.available) {\r\n\t\tbtyPickupAvailability(doc, firstSelected.id, pickup);\r\n\t}\r\n\r\n\tif (input && firstSelected) {\r\n\t\tlet max = quantity.find(e => e.id === firstSelected.id);\r\n\t\tif (max) {\r\n\t\t\tlet qty = max.qty;\r\n\t\t\tif (qty > 0) {\r\n\t\t\t\tif (Number(input.value) > qty) input.value = qty;\r\n\t\t\t\tinput.setAttribute('max', qty);\r\n\t\t\t} else input.removeAttribute('max');\r\n\t\t} else input.removeAttribute('max');\r\n\t}\r\n}\r\n\r\n// Quick view.\r\nfunction btyQuickView( doc = document ) {\r\n\tlet box      = document.querySelector( '.quick-view' ),\r\n\t\tcontent  = box ? box.querySelector( '.quick-view-content' ) : false,\r\n\t\tselector = doc.querySelectorAll( '.product-quick-view' );\r\n\r\n\tif ( ! content || ! selector.length ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tselector.forEach(\r\n\t\tfunction( el ) {\r\n\t\t\tel.onclick = function( e ) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tlet product_id = el.parentNode.getAttribute( 'data-id' );\r\n\t\t\t\tif ( product_id == box.getAttribute( 'data-id' ) ) {\r\n\t\t\t\t\tdocument.documentElement.classList.add( 'quick-view-open' );\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdocument.documentElement.classList.add( 'quick-view-open' );\r\n\t\t\t\tbox.classList.add( 'loading' );\r\n\t\t\t\tbox.setAttribute( 'data-id', product_id );\r\n\r\n\t\t\t\tfetch( el.href + '?sections=quickview' )\r\n\t\t\t\t\t.then(\r\n\t\t\t\t\t\tfunction( r ) {\r\n\t\t\t\t\t\t\tif ( 200 !== r.status ) {\r\n\t\t\t\t\t\t\t\tconsole.log( 'Status Code: ' + r.status );\r\n\t\t\t\t\t\t\t\tthrow r;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\treturn r.json();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t).then(\r\n\t\t\t\t\t\tfunction( res ) {\r\n\t\t\t\t\t\t\tcontent.innerHTML = btyGetSectionHtml( res.quickview );\r\n\r\n\t\t\t\t\t\t\tlet options,\r\n\t\t\t\t\t\t\t\tgallery = document.querySelector( '.quick-view .product-gallery .swiper' );\r\n\r\n\t\t\t\t\t\t\tif ( gallery ) {\r\n\t\t\t\t\t\t\t\toptions = {\r\n\t\t\t\t\t\t\t\t\tslidesPerView: 1,\r\n\t\t\t\t\t\t\t\t\tspaceBetween: 10,\r\n\t\t\t\t\t\t\t\t\tnavigation: {\r\n\t\t\t\t\t\t\t\t\t\tnextEl: '.quick-view .swiper-button-next',\r\n\t\t\t\t\t\t\t\t\t\tprevEl: '.quick-view .swiper-button-prev'\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\tpagination: {\r\n\t\t\t\t\t\t\t\t\t\tel: '.quick-view .swiper-pagination',\r\n\t\t\t\t\t\t\t\t\t\ttype: 'bullets',\r\n\t\t\t\t\t\t\t\t\t\tclickable: true\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tlet quickViewSlide = new Swiper( gallery, options );\r\n\r\n\t\t\t\t\t\t\t\tbtyQuickViewVariants( box, quickViewSlide );\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tbtyQuickViewVariants( box, {} );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t).catch(\r\n\t\t\t\t\t\tfunction( e ) {\r\n\t\t\t\t\t\t\tconsole.error( e );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t).finally(\r\n\t\t\t\t\t\tfunction() {\r\n\t\t\t\t\t\t\t// Re-init share.\r\n\t\t\t\t\t\t\tbtyProductShare();\r\n\r\n\t\t\t\t\t\t\t// Re-init quantity.\r\n\t\t\t\t\t\t\tbtyQuantityButton();\r\n\r\n\t\t\t\t\t\t\t// Update lazy load image.\r\n\t\t\t\t\t\t\tbtyAnimationImageLoad( box, 0 );\r\n\r\n\t\t\t\t\t\t\t// Re-init add to cart.\r\n\t\t\t\t\t\t\tbtyAddToCart();\r\n\r\n\t\t\t\t\t\t\t// Remove loading.\r\n\t\t\t\t\t\t\tbox.classList.remove( 'loading' );\r\n\r\n\t\t\t\t\t\t\t// Close popup.\r\n\t\t\t\t\t\t\tbtyClosePopup( 'quick-view-open', box );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n}\r\n\r\n// Update storage.\r\nfunction btyUpdateStorage( key, array, id, type = 'local' ) {\r\n\tlet storage = 'local' === type ? localStorage : sessionStorage;\r\n\r\n\tif ( ! storage.getItem( key ) ) {\r\n\t\t// Set key.\r\n\t\tstorage.setItem( key, JSON.stringify( array ) );\r\n\t} else if ( ! storage.getItem( key ).includes( id ) ) {\r\n\t\t// Add new id.\r\n\t\tlet parseStorage = btyJsonParse( storage.getItem( key ) );\r\n\t\tif ( ! parseStorage ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tparseStorage.push( id );\r\n\r\n\t\tstorage.setItem( key, JSON.stringify( parseStorage ) );\r\n\t}\r\n}\r\n\r\n// Update variants on popup.\r\nfunction btyVariantsPopup( doc = document, popup ) {\r\n\tlet variants = doc.querySelectorAll( '.product-variants' );\r\n\tif ( ! popup || ! variants.length ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tvariants.forEach(\r\n\t\tfunction( el ) {\r\n\t\t\tlet variantData = el.querySelector( '[data-product-variants]' ),\r\n\t\t\t\tproductId   = el.getAttribute( 'data-id' ),\r\n\t\t\t\tselect      = el.querySelectorAll( '.field-value' ),\r\n\t\t\t\timageLink   = popup.querySelector( '.preview-image [data-id=\"' + productId + '\"]' ),\r\n\t\t\t\timage       = imageLink ? imageLink.querySelector( 'img' ) : false,\r\n\t\t\t\tprice       = popup.querySelector( '[data-id=\"' + productId + '\"] .product-price' ),\r\n\t\t\t\tstock       = popup.querySelector( '[data-id=\"' + productId + '\"] .product-stock-status' ),\r\n\t\t\t\tform        = popup.querySelector( '.form-add-to-cart[data-id=\"' + productId + '\"]' ),\r\n\t\t\t\tinputId     = form ? form.querySelector( '[name=\"id\"]' ) : false,\r\n\t\t\t\tvariantPick = {};\r\n\r\n\t\t\tif ( ! select.length ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvariantData = variantData ? btyJsonParse( variantData.textContent ) : false;\r\n\t\t\tif ( ! variantData ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// Foreach.\r\n\t\t\tselect.forEach(\r\n\t\t\t\tfunction( sel ) {\r\n\t\t\t\t\tvariantPick[ sel.name ] = sel.value;\r\n\r\n\t\t\t\t\t// Change event.\r\n\t\t\t\t\tsel.onchange = function() {\r\n\t\t\t\t\t\tvariantPick[ sel.name ] = sel.value;\r\n\r\n\t\t\t\t\t\tlet selected = btySelectedVariant( variantPick, variantData );\r\n\r\n\t\t\t\t\t\t// Update image.\r\n\t\t\t\t\t\tif ( image ) {\r\n\t\t\t\t\t\t\timage.removeAttribute( 'srcset' );\r\n\t\t\t\t\t\t\tbtyImageLoad( image, selected.featured_media.preview_image.src, selected.featured_media.id, image.parentNode );\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Update current variant id.\r\n\t\t\t\t\t\tif ( inputId ) {\r\n\t\t\t\t\t\t\tinputId.value = selected.id;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Update stock status, add to cart button text.\r\n\t\t\t\t\t\tif ( selected.available ) {\r\n\t\t\t\t\t\t\tif ( form ) {\r\n\t\t\t\t\t\t\t\tform.classList.remove( 'disabled' );\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif ( stock ) {\r\n\t\t\t\t\t\t\t\tstock.innerHTML = btyStrings.product.in_stock;\r\n\t\t\t\t\t\t\t\tstock.classList.remove( 'inventory--low' );\r\n\t\t\t\t\t\t\t\tstock.classList.add( 'inventory--high' );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tif ( form ) {\r\n\t\t\t\t\t\t\t\tform.classList.add( 'disabled' );\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif ( stock ) {\r\n\t\t\t\t\t\t\t\tstock.innerHTML = btyStrings.product.out_of_stock;\r\n\t\t\t\t\t\t\t\tstock.classList.remove( 'inventory--high' );\r\n\t\t\t\t\t\t\t\tstock.classList.add( 'inventory--low' );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Update price.\r\n\t\t\t\t\t\tif ( price ) {\r\n\t\t\t\t\t\t\tprice.innerHTML = btyPriceHtml( selected.price, selected.compare_at_price );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t);\r\n\r\n\t\t\t// First matching variants.\r\n\t\t\tlet firstSelected = btySelectedVariant( variantPick, variantData );\r\n\t\t\tif ( firstSelected.available ) {\r\n\t\t\t\tif ( form ) {\r\n\t\t\t\t\tform.classList.remove( 'disabled' );\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ( stock ) {\r\n\t\t\t\t\tstock.innerHTML = btyStrings.product.in_stock;\r\n\t\t\t\t\tstock.classList.remove( 'inventory--low' );\r\n\t\t\t\t\tstock.classList.add( 'inventory--high' );\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tif ( form ) {\r\n\t\t\t\t\tform.classList.add( 'disabled' );\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ( stock ) {\r\n\t\t\t\t\tstock.innerHTML = btyStrings.product.out_of_stock;\r\n\t\t\t\t\tstock.classList.remove( 'inventory--high' );\r\n\t\t\t\t\tstock.classList.add( 'inventory--low' );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif ( price ) {\r\n\t\t\t\tprice.innerHTML = btyPriceHtml( firstSelected.price, firstSelected.compare_at_price );\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n}\r\n\r\n// Open side cart.\r\nfunction btySideCart() {\r\n\tlet buttons  = document.querySelectorAll( '.action-cart' ),\r\n\t\tsideCart = document.querySelector( '.side-cart' );\r\n\tif ( ! buttons.length || ! sideCart ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tbuttons.forEach(\r\n\t\tfunction( el ) {\r\n\t\t\tel.onclick = function( e ) {\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tdocument.documentElement.classList.add( 'side-cart-open' );\r\n\r\n\t\t\t\tbtyClosePopup( 'side-cart-open', sideCart );\r\n\r\n\t\t\t\tconst closeBtn = sideCart.querySelector('.side-cart-close');\r\n\t\t\t\tif (closeBtn) setTimeout(() => closeBtn.focus(), 300);\r\n\t\t\t\tif (!sideCart._trap) {\r\n\t\t\t\t\tsideCart._trap = true; // prevent duplicates\r\n\t\t\t\t\tsideCart.addEventListener('keydown', function(ev){\r\n\t\t\t\t\t\tif (ev.key !== 'Tab') return;\r\n\r\n\t\t\t\t\t\tconst els = sideCart.querySelectorAll('a,button,input,select,textarea,[tabindex]:not([tabindex=\"-1\"])');\r\n\t\t\t\t\t\tconst first = els[0];\r\n\t\t\t\t\t\tconst last  = els[els.length - 1];\r\n\r\n\t\t\t\t\t\tif (ev.shiftKey && document.activeElement === first) {\r\n\t\t\t\t\t\t\tev.preventDefault();\r\n\t\t\t\t\t\t\tlast.focus();\r\n\t\t\t\t\t\t} else if (!ev.shiftKey && document.activeElement === last) {\r\n\t\t\t\t\t\t\tev.preventDefault();\r\n\t\t\t\t\t\t\tfirst.focus();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n}\r\n\r\n// Get fetch config.\r\nfunction btyFetchConfig( type = 'json' ) {\r\n\treturn {\r\n\t\tmethod: 'POST',\r\n\t\theaders: {\r\n\t\t\t'Content-Type': 'application/json',\r\n\t\t\t'Accept': 'application/' + type\r\n\t\t}\r\n\t};\r\n}\r\n\r\n// ValidateEmail.\r\nfunction btyValidateEmail( selector ) {\r\n\tlet mailformat = /^([A-Za-z0-9_\\-\\.])+\\@([A-Za-z0-9_\\-\\.])+\\.([A-Za-z]{2,4})$/;\r\n\r\n\tselector.focus();\r\n\r\n\tif ( selector.value.match( mailformat ) ) {\r\n\t\tselector.classList.remove( 'email-invalid' );\r\n\r\n\t\treturn true;\r\n\t} else {\r\n\t\tselector.classList.add( 'email-invalid' );\r\n\r\n\t\treturn false;\r\n\t}\r\n}\r\n\r\nfunction btyCheckInventoryOnLoad(doc = document) {\r\n\tlet qtyInputs = doc.querySelectorAll('input[name=\"quantity\"][max]');\r\n\tqtyInputs.forEach((qtyInput) => {\r\n\t\tlet max = parseInt(qtyInput.getAttribute('max') || 0);\r\n\t\tlet val = parseInt(qtyInput.value || 1);\r\n\t\tlet warning = qtyInput.closest('form')?.querySelector('.product-warning');\r\n\r\n\t\tif (max && val > max) {\r\n\t\t\tqtyInput.value = max;\r\n\t\t\tif (warning) {\r\n\t\t\t\twarning.innerHTML = btyGlobals.svg_warning + `Ch\u1EC9 c\u00F2n ${max} s\u1EA3n ph\u1EA9m trong kho.`;\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n}\r\n\r\n// Ajax add to cart.\r\nfunction btyAddToCart(doc = document) {\r\n\tlet buttons = doc.querySelectorAll('.add-to-cart-button');\r\n\tif (!buttons.length) return;\r\n\r\n\tlet modules = [\r\n\t\t{\r\n\t\t\tnode: '.side-cart-inner',\r\n\t\t\tsection: 'side-cart',\r\n\t\t\tselector: '.side-cart-inner'\r\n\t\t},\r\n\t\t{\r\n\t\t\tsection: 'cart-count'\r\n\t\t}\r\n\t];\r\n\r\n\tbuttons.forEach(function (button) {\r\n\t\t// Hidden payment button if require selling plan.\r\n\t\tif (button.classList.contains('selling-plan-error')) {\r\n\t\t\tlet formEl = button.closest('[data-type=\"add-to-cart-form\"]');\r\n\t\t\tif (formEl) {\r\n\t\t\t\tlet paymentButton = formEl.querySelector('.shopify-payment-button');\r\n\t\t\t\tif (paymentButton) paymentButton.classList.add('hidden');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tbutton.onclick = function (e) {\r\n\t\t\tlet form = button.closest('[data-type=\"add-to-cart-form\"]');\r\n\t\t\t// Check selling plan\r\n\t\t\tif (button.classList.contains('selling-plan-error')) {\r\n\t\t\t\tif (form) {\r\n\t\t\t\t\tlet sellingMessage = form.parentNode?.querySelector('.selling-plan-message');\r\n\t\t\t\t\tif (sellingMessage) {\r\n\t\t\t\t\t\tsellingMessage.innerHTML = btyStrings.product.selling_plan_message;\r\n\t\t\t\t\t\tsellingMessage.classList.remove('hidden');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tlet sideCartNode = document.querySelector('.side-cart');\r\n\t\t\tif (sideCartNode) sideCartNode._lastFocused = document.activeElement;\r\n\r\n\t\t\tif (button.classList.contains('disabled')) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (button.tagName.toUpperCase() === 'A') return;\r\n\t\t\te.preventDefault();\r\n\r\n\t\t\tif (\r\n\t\t\t\tbutton.classList.contains('add-product-variants') &&\r\n\t\t\t\twindow.matchMedia('(max-width: 767px)').matches\r\n\t\t\t) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tbutton.classList.add('loading');\r\n\r\n\t\t\tif (!form) {\r\n\t\t\t\tbutton.classList.remove('loading');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tlet formData = new FormData(form),\r\n\t\t\t\twarning = form.parentNode.querySelector('.product-warning'),\r\n\t\t\t\tconfig = btyFetchConfig('javascript');\r\n\r\n\t\t\tlet qtyInput = form.querySelector('input[name=\"quantity\"]');\r\n\t\t\tlet max = parseInt(qtyInput?.getAttribute('max') || 0);\r\n\t\t\tlet val = parseInt(qtyInput?.value || 1);\r\n\r\n\t\t\t// Validate.\r\n\t\t\tif (max && val > max) {\r\n\t\t\t\tif (warning) {\r\n\t\t\t\t\tconst msg = btyStrings.product.warning_message.replace('{{max}}', max);\r\n\t\t\t\t\tconsole.log( msg );\r\n\t\t\t\t\twarning.innerHTML = btyGlobals.svg_warning + msg;\r\n\t\t\t\t\twarning.classList.remove('hidden');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tqtyInput.value = max;\r\n\t\t\t\tbutton.classList.remove('loading');\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\r\n\t\t\tconfig.headers['X-Requested-With'] = 'XMLHttpRequest';\r\n\t\t\tdelete config.headers['Content-Type'];\r\n\r\n\t\t\tformData.append('sections', modules.map((s) => s.section));\r\n\t\t\tformData.append('sections_url', window.location.pathname);\r\n\t\t\tconfig.body = formData;\r\n\r\n\t\t\tfetch(btyGlobals.cart_add_url, config)\r\n\t\t\t\t.then((r) => r.json())\r\n\t\t\t\t.then((res) => {\r\n\t\t\t\t\tif (warning) {\r\n\t\t\t\t\t\twarning.innerHTML = res.status\r\n\t\t\t\t\t\t\t? btyGlobals.svg_warning + (res.message || res.description)\r\n\t\t\t\t\t\t\t: '';\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (res.status) return;\r\n\r\n\t\t\t\t\tbtyUpdateHtml(res.sections, modules);\r\n\t\t\t\t\tbtyAnimationImageLoad();\r\n\t\t\t\t\tbtyScrollAnimationTrigger();\r\n\t\t\t\t\tbtyMinicartRecommendations();\r\n\t\t\t\t\tbtySideCartPopupOuter();\r\n\t\t\t\t\tbtyCartItemCount(\r\n\t\t\t\t\t\tbtyGetSectionHtml(res.sections['cart-count'], '.shopify-section')\r\n\t\t\t\t\t);\r\n\t\t\t\t\tsetTimeout(() => {\r\n\t\t\t\t\t\tdocument.documentElement.classList.add('side-cart-open');\r\n\t\t\t\t\t});\r\n\t\t\t\t\tbtyUpdateProgressBarCart(res.total_price);\r\n\t\t\t\t})\r\n\t\t\t\t.catch((e) => console.error(e))\r\n\t\t\t\t.finally(() => {\r\n\t\t\t\t\tbtyQuantityButton();\r\n\t\t\t\t\tbtyUpdateProductQuantity();\r\n\t\t\t\t\tbutton.classList.remove('loading');\r\n\r\n\t\t\t\t\tlet quickAddLoading = doc.querySelector('.quick-add-box .field-item.loading');\r\n\t\t\t\t\tif (quickAddLoading) quickAddLoading.classList.remove('loading');\r\n\r\n\t\t\t\t\tdocument.documentElement.classList.remove('quick-view-open');\r\n\r\n\t\t\t\t\tbtyClosePopup('side-cart-open', document.querySelector('.side-cart'));\r\n\r\n\t\t\t\t\tlet sideCart = document.querySelector('.side-cart'),\r\n\t\t\t\t\t\tcloseButton = sideCart?.querySelector('.side-cart-close');\r\n\r\n\t\t\t\t\tif (closeButton) {\r\n\t\t\t\t\t\tsetTimeout(() => closeButton.focus(), 400);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tbtyAgreeToTerms();\r\n\t\t\t\t});\r\n\t\t};\r\n\t});\r\n}\r\n\r\n// Ajax add all set to cart.\r\nfunction btyAddMultiProductToCart(doc = document) {\r\n\tlet selectors = doc.querySelectorAll('.add-multiple-products');\r\n\tif (!selectors.length) return;\r\n\r\n\tselectors.forEach(function (el) {\r\n\t\tlet items = el.parentNode.querySelectorAll('.product-card [name=\"id\"]');\r\n\t\tif (!items.length) return;\r\n\r\n\t\titems.forEach(function (item, index) {\r\n\t\t\titem.addEventListener('change', function () {\r\n\t\t\t\tlet currentId = el.querySelector('[data-index=\"' + index + '\"]');\r\n\t\t\t\tif (currentId) currentId.value = item.value;\r\n\t\t\t});\r\n\t\t});\r\n\t});\r\n}\r\n\r\n// Check product inventory.\r\nfunction btyProductInventory( doc = document, variants = {} ) {\r\n\tlet variant   = {},\r\n\t\tquickAdds = doc.querySelectorAll( '.quick-add-box .field-swatch .selected' ),\r\n\t\tswatches  = doc.querySelector( '.product-swatches .selected' );\r\n\tif ( ! quickAdds.length && ! swatches ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tlet selected = btySelectedVariant( variant, variants );\r\n}\r\n\r\n/**\r\n * Update stock status\r\n *\r\n * @param  object variants The product variants.\r\n * @param  node   siblings The product card.\r\n */\r\nfunction btyUpdateStockStatus( variants, card ) {\r\n\tlet getSelected = card.querySelectorAll( '.field-swatch .selected' ),\r\n\t\tswatch      = card.querySelector( '.product-swatches .swatch.selected' );\r\n\tif ( getSelected.length ) {\r\n\t\tgetSelected.forEach(\r\n\t\t\tfunction( el ) {\r\n\t\t\t\tlet current = {};\r\n\r\n\t\t\t\t// Check color variant.\r\n\t\t\t\tif ( swatch ) {\r\n\t\t\t\t\tcurrent[ swatch.getAttribute( 'data-name' ) ] = swatch.getAttribute( 'data-value' );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Get siblings to save 2 fix variant, ex: ABC ABD ABX ABY.\r\n\t\t\t\tlet siblings = btySiblings(\r\n\t\t\t\t\tel.parentNode,\r\n\t\t\t\t\tfunction( e ) {\r\n\t\t\t\t\t\treturn e.classList.contains( 'field-swatch' );\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\r\n\t\t\t\tif ( siblings.length ) {\r\n\t\t\t\t\tsiblings.forEach(\r\n\t\t\t\t\t\tfunction( si ) {\r\n\t\t\t\t\t\t\tlet siSelected = si.querySelector( '.selected' );\r\n\t\t\t\t\t\t\tif ( ! siSelected ) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tcurrent[ siSelected.getAttribute( 'data-name' ) ] = siSelected.getAttribute( 'data-value' );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Update stock status on quick add.\r\n\t\t\t\tlet indexSelected = el.parentNode.querySelectorAll( '.field-item' );\r\n\t\t\t\tif ( indexSelected.length ) {\r\n\t\t\t\t\tindexSelected.forEach(\r\n\t\t\t\t\t\tfunction( is ) {\r\n\t\t\t\t\t\t\tcurrent[ is.getAttribute( 'data-name' ) ] = is.getAttribute( 'data-value' );\r\n\r\n\t\t\t\t\t\t\tlet selected = btySelectedVariant( current, variants );\r\n\t\t\t\t\t\t\tif ( selected ) {\r\n\t\t\t\t\t\t\t\tif ( selected.available ) {\r\n\t\t\t\t\t\t\t\t\tis.classList.remove( 'soldout' );\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tis.classList.add( 'soldout' );\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tis.classList.add( 'soldout' );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tif ( swatch ) {\r\n\t\tswatch.parentNode.querySelectorAll( '.swatch' ).forEach(\r\n\t\t\tfunction( el ) {\r\n\t\t\t\tlet current = {};\r\n\r\n\t\t\t\tif ( getSelected.length ) {\r\n\t\t\t\t\tgetSelected.forEach(\r\n\t\t\t\t\t\tfunction( si ) {\r\n\t\t\t\t\t\t\tcurrent[ si.getAttribute( 'data-name' ) ] = si.getAttribute( 'data-value' );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcurrent[ el.getAttribute( 'data-name' ) ] = el.getAttribute( 'data-value' );\r\n\r\n\t\t\t\tlet selected = btySelectedVariant( current, variants );\r\n\t\t\t\tif ( selected ) {\r\n\t\t\t\t\tif ( selected.available ) {\r\n\t\t\t\t\t\tel.classList.remove( 'soldout' );\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tel.classList.add( 'soldout' );\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tel.classList.add( 'soldout' );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n}\r\n\r\n/**\r\n * Update stock status for product page\r\n *\r\n * @param  object variants The product variants.\r\n * @param  node   siblings The product card.\r\n */\r\nfunction btyUpdateStockStatusProduct( variants, element ) {\r\n\tlet getSelected = element.querySelectorAll( '.variant-field .field-value:checked' );\r\n\tif ( ! getSelected.length ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tgetSelected.forEach(\r\n\t\tfunction( el ) {\r\n\t\t\tlet current = {};\r\n\r\n\t\t\t// Get siblings to save 2 fix variant, ex: ABC ABD ABX ABY.\r\n\t\t\tlet siblings = btySiblings(\r\n\t\t\t\tel.closest( '.variant-field' ),\r\n\t\t\t\tfunction( e ) {\r\n\t\t\t\t\treturn e.classList.contains( 'variant-field' );\r\n\t\t\t\t}\r\n\t\t\t);\r\n\r\n\t\t\tif ( siblings.length ) {\r\n\t\t\t\tsiblings.forEach(\r\n\t\t\t\t\tfunction( si ) {\r\n\t\t\t\t\t\tlet siSelected = si.querySelector( '.field-value:checked' );\r\n\t\t\t\t\t\tif ( ! siSelected ) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tcurrent[ siSelected.getAttribute( 'name' ) ] = siSelected.getAttribute( 'value' );\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\t// Update stock status on quick add.\r\n\t\t\tlet indexSelected = el.closest( '.variant-field' ).querySelectorAll( '.field-value' );\r\n\t\t\tif ( indexSelected.length ) {\r\n\t\t\t\tindexSelected.forEach(\r\n\t\t\t\t\tfunction( is ) {\r\n\t\t\t\t\t\tlet inputId = is.getAttribute( 'id' ),\r\n\t\t\t\t\t\t\tlabel   = inputId ? is.parentNode.querySelector( 'label[for=\"' + inputId + '\"]' ) : false;\r\n\r\n\t\t\t\t\t\tif ( ! label ) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tcurrent[ is.getAttribute( 'name' ) ] = is.getAttribute( 'value' );\r\n\r\n\t\t\t\t\t\tlet selected = btySelectedVariant( current, variants );\r\n\t\t\t\t\t\tif ( selected ) {\r\n\t\t\t\t\t\t\tif ( selected.available ) {\r\n\t\t\t\t\t\t\t\tlabel.classList.remove( 'soldout' );\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tlabel.classList.add( 'soldout' );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tlabel.classList.add( 'soldout' );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n}\r\n\r\n// Quick add.\r\nfunction btyQuickAdd( doc = document ) {\r\n\tlet selectors = doc.querySelectorAll( '.quick-add .field-item' );\r\n\tif ( ! selectors.length ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tselectors.forEach(\r\n\t\tfunction( el ) {\r\n\t\t\tel.onclick = function() {\r\n\t\t\t\tlet form   = el.closest( '[data-type=\"add-to-cart-form\"]' ),\r\n\t\t\t\t\tsubmit = form ? form.querySelector( '[type=\"submit\"]' ) : false,\r\n\t\t\t\t\tcard   = form.closest( '.product-card' );\r\n\t\t\t\tif ( ! card || ! submit ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Highlight selected.\r\n\t\t\t\tif ( ! el.classList.contains( 'selected' ) ) {\r\n\t\t\t\t\tlet oldActive = el.parentNode.querySelector( '.field-item.selected' );\r\n\t\t\t\t\tif ( oldActive ) {\r\n\t\t\t\t\t\toldActive.classList.remove( 'selected' );\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tel.classList.add( 'selected' );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Update swatch.\r\n\t\t\t\tlet variants  = form.querySelector( '[data-product-variants]' ),\r\n\t\t\t\t\tproductId = form.querySelector( '[name=\"id\"]' );\r\n\r\n\t\t\t\tif ( productId && variants ) {\r\n\t\t\t\t\t// Json parse.\r\n\t\t\t\t\tvariants = btyJsonParse( variants.textContent );\r\n\r\n\t\t\t\t\tlet variant_pick     = {},\r\n\t\t\t\t\t\tquickAddSelected = card.querySelectorAll( '.quick-add-box .selected' );\r\n\r\n\t\t\t\t\tif ( quickAddSelected.length ) {\r\n\t\t\t\t\t\tquickAddSelected.forEach(\r\n\t\t\t\t\t\t\tfunction( qas ) {\r\n\t\t\t\t\t\t\t\tvariant_pick[ qas.getAttribute( 'data-name' ) ] = qas.getAttribute( 'data-value' );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Get option from Swatch.\r\n\t\t\t\t\tlet selectedSwatch = card.querySelector( '.product-swatches .swatch.selected' );\r\n\t\t\t\t\tif ( selectedSwatch ) {\r\n\t\t\t\t\t\tvariant_pick[ selectedSwatch.getAttribute( 'data-name' ) ] = selectedSwatch.getAttribute( 'data-value' );\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Found selected variant.\r\n\t\t\t\t\tlet selected = btySelectedVariant( variant_pick, variants );\r\n\t\t\t\t\tif ( selected ) {\r\n\t\t\t\t\t\tproductId.value = selected.id;\r\n\r\n\t\t\t\t\t\t// Update stock status.\r\n\t\t\t\t\t\tbtyUpdateStockStatus( variants, card );\r\n\r\n\t\t\t\t\t\t// Update product price.\r\n\t\t\t\t\t\tlet price = card.querySelector( '.product-price' );\r\n\t\t\t\t\t\tif ( price ) {\r\n\t\t\t\t\t\t\tprice.innerHTML = btyPriceHtml( selected.price, selected.compare_at_price, selected.unit_price, selected.unit_price_measurement );\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif ( selected.available ) {\r\n\t\t\t\t\t\t\tel.classList.add( 'loading' );\r\n\r\n\t\t\t\t\t\t\tsubmit.click();\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\talert( 'This item is currently out of stock.' );\r\n\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tel.addEventListener('keydown', function(e) {\r\n\t\t\t// Trigger on Enter or Space\r\n\t\t\t\tif (e.key === 'Enter' || e.key === ' ') {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tel.click();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t);\r\n}\r\n\r\n// Swatch list.\r\nfunction btySwatch( doc = document ) {\r\n\tlet swatch = doc.querySelectorAll( '.product-card .swatch' );\r\n\tif ( ! swatch.length ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tswatch.forEach(\r\n\t\tfunction( el ) {\r\n\t\t\tel.onclick = function( e ) {\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tif ( el.classList.contains( 'selected' ) ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tlet swatchValue = el.parentNode.querySelector( '.swatch-selected' );\r\n\t\t\t\tif ( swatchValue ) {\r\n\t\t\t\t\tswatchValue.innerText = el.innerText.trim();\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Get wrapper.\r\n\t\t\t\tlet card    = el.closest( '.product-card' ),\r\n\t\t\t\t\twrapper = card.querySelector( '.product-media-wrap' );\r\n\t\t\t\tif ( ! wrapper ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Get product image.\r\n\t\t\t\tlet image = wrapper.querySelector( '.product-image img' );\r\n\r\n\t\t\t\t// Handle loading image.\r\n\t\t\t\tconst imageLoadHandle = function( dataSrc, main ) {\r\n\t\t\t\t\tif ( ! image ) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet newImage     = new Image(),\r\n\t\t\t\t\t\tvariationImg = el.getAttribute( 'data-key' ) || false,\r\n\t\t\t\t\t\tmainImg      = image.getAttribute( 'data-key' ) || false;\r\n\r\n\t\t\t\t\tnewImage.crossOrigin = 'anonymous';\r\n\r\n\t\t\t\t\t// Main image.\r\n\t\t\t\t\tif ( main ) {\r\n\t\t\t\t\t\tvariationImg = mainImg;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Check local storage first.\r\n\t\t\t\t\tif ( sessionStorage.getItem( variationImg ) ) {\r\n\t\t\t\t\t\timage.src = sessionStorage.getItem( variationImg );\r\n\t\t\t\t\t\timage.removeAttribute( 'srcset' );\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Save main product image first.\r\n\t\t\t\t\tif ( 'string' !== typeof( image.getAttribute( 'data-loaded' ) ) && mainImg ) {\r\n\t\t\t\t\t\tlet mainImage = new Image();\r\n\r\n\t\t\t\t\t\tmainImage.crossOrigin = 'anonymous';\r\n\r\n\t\t\t\t\t\tmainImage.onload = function() {\r\n\t\t\t\t\t\t\tlet renderMainImage = btyGetImageSrc( mainImage );\r\n\r\n\t\t\t\t\t\t\tif ( mainImg ) {\r\n\t\t\t\t\t\t\t\tsessionStorage.setItem( mainImg, renderMainImage );\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\timage.setAttribute( 'data-loaded', '' );\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tmainImage.src = image.src;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Add loading animation.\r\n\t\t\t\t\twrapper.classList.add( 'loading' );\r\n\r\n\t\t\t\t\t// Handle.\r\n\t\t\t\t\tnewImage.onload = function() {\r\n\t\t\t\t\t\twrapper.classList.remove( 'loading' );\r\n\t\t\t\t\t\tlet renderImage = btyGetImageSrc( newImage );\r\n\r\n\t\t\t\t\t\t// Set final image src.\r\n\t\t\t\t\t\timage.src = renderImage;\r\n\t\t\t\t\t\timage.removeAttribute( 'srcset' );\r\n\r\n\t\t\t\t\t\t// Save image to local storage.\r\n\t\t\t\t\t\tif ( variationImg ) {\r\n\t\t\t\t\t\t\tsessionStorage.setItem( variationImg, renderImage );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tnewImage.onerror = function() {\r\n\t\t\t\t\t\twrapper.classList.remove( 'loading' );\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Set image src for 'newImage.onload' function handle.\r\n\t\t\t\t\tnewImage.src = dataSrc;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Get old selected.\r\n\t\t\t\tlet oldActive = card.querySelector( '.swatch.selected' );\r\n\t\t\t\tif ( oldActive ) {\r\n\t\t\t\t\toldActive.classList.remove( 'selected' );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Set swatch selected.\r\n\t\t\t\tel.classList.add( 'selected' );\r\n\r\n\t\t\t\t// Update product image src.\r\n\t\t\t\tif ( image ) {\r\n\t\t\t\t\tlet src = el.getAttribute( 'data-src' ) || '';\r\n\t\t\t\t\tif ( src && src != image.src ) {\r\n\t\t\t\t\t\timageLoadHandle( src );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Update swatch.\r\n\t\t\t\tlet form      = el.closest( '.product-card' ).querySelector( '[data-type=\"add-to-cart-form\"]' ),\r\n\t\t\t\t\taddToCart = form ? form.querySelector( '.add-to-cart-button' ) : false,\r\n\t\t\t\t\tvariants  = form ? form.querySelector( '[data-product-variants]' ) : false,\r\n\t\t\t\t\tproductId = form ? form.querySelector( '[name=\"id\"]' ) : false;\r\n\r\n\t\t\t\tif ( productId && variants ) {\r\n\t\t\t\t\tlet variant_pick = {},\r\n\t\t\t\t\t\tdataName     = el.getAttribute( 'data-name' ),\r\n\t\t\t\t\t\tdataValue    = el.getAttribute( 'data-value' );\r\n\r\n\t\t\t\t\tvariants = btyJsonParse( variants.textContent );\r\n\r\n\t\t\t\t\tvariant_pick[ dataName ] = dataValue;\r\n\r\n\t\t\t\t\t// Update stock status.\r\n\t\t\t\t\tbtyUpdateStockStatus( variants, card );\r\n\r\n\t\t\t\t\t// Get quick add value.\r\n\t\t\t\t\tlet quickAdd = card.querySelectorAll( '.quick-add .field-item.selected' );\r\n\t\t\t\t\tif ( quickAdd.length ) {\r\n\t\t\t\t\t\tquickAdd.forEach(\r\n\t\t\t\t\t\t\tfunction( qa ) {\r\n\t\t\t\t\t\t\t\tvariant_pick[ qa.getAttribute( 'data-name' ) ] = qa.getAttribute( 'data-value' );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet selected = btySelectedVariant( variant_pick, variants );\r\n\t\t\t\t\tif ( selected ) {\r\n\t\t\t\t\t\tproductId.value = selected.id;\r\n\r\n\t\t\t\t\t\t// Dispatch 'change' event.\r\n\t\t\t\t\t\tproductId.dispatchEvent( new Event( 'change' ) );\r\n\r\n\t\t\t\t\t\t// Update add to cart button status.\r\n\t\t\t\t\t\tif ( addToCart ) {\r\n\t\t\t\t\t\t\tif ( selected.available ) {\r\n\t\t\t\t\t\t\t\taddToCart.classList.remove( 'disabled' );\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\taddToCart.classList.add( 'disabled' );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Update product url.\r\n\t\t\t\t\t\tlet ahref = el.closest( '.product-card' ).querySelectorAll( 'a[href]:not(.swatch)' );\r\n\t\t\t\t\t\tif ( ahref.length ) {\r\n\t\t\t\t\t\t\tahref.forEach(\r\n\t\t\t\t\t\t\t\tfunction( link ) {\r\n\t\t\t\t\t\t\t\t\tlink.setAttribute( 'href', link.href.split( '?' )[1] ? link.href.split( '?' )[0] + '?variant=' + selected.id : link.href + '?variant=' + selected.id );\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n}\r\n\r\n// Product tabs.\r\nfunction btyProductTabs(doc = document, event = {}) {\r\n\tlet selectors = doc.querySelectorAll('.tabs .tab-head');\r\n\tif (!selectors.length) return;\r\n\r\n\tselectors.forEach(function (el) {\r\n\t\tlet wrap   = el.closest('.tabs'),\r\n\t\t\tindex  = el.getAttribute('data-index'),\r\n\t\t\ttab    = wrap.querySelector('.tab-content[data-index=\"' + index + '\"]'),\r\n\t\t\tslide  = wrap.querySelector('.product-main-slide:nth-child(' + index + ')'), // slide t\u01B0\u01A1ng \u1EE9ng\r\n\t\t\tarrows = wrap.querySelector('.unity-arrows[data-index=\"' + index + '\"]');\r\n\r\n\t\tif (!tab) return;\r\n\r\n\t\t// Design mode.\r\n\t\tif (Shopify.designMode && Object.keys(event).length) {\r\n\t\t\tlet currentTab = doc.querySelector('.tab-head[data-id=\"' + event.detail.blockId + '\"]');\r\n\t\t\tif (currentTab) currentTab.click();\r\n\t\t}\r\n\r\n\t\tel.addEventListener('click', function () {\r\n\r\n\t\t\tif (el.classList.contains('active')) return;\r\n\r\n\t\t\tlet navActived    = wrap.querySelector('.tab-head.active'),\r\n\t\t\t\ttabActived    = wrap.querySelector('.tab-content.active'),\r\n\t\t\t\tslideActived  = wrap.querySelector('.product-main-slide.active'),\r\n\t\t\t\tarrowsActived = wrap.querySelector('.unity-arrows.active');\r\n\r\n\t\t\t// Remove active\r\n\t\t\tif (navActived) navActived.classList.remove('active');\r\n\t\t\tif (tabActived) tabActived.classList.remove('active');\r\n\t\t\tif (slideActived) slideActived.classList.remove('active');\r\n\t\t\tif (arrowsActived) arrowsActived.classList.remove('active');\r\n\r\n\t\t\t// Add active\r\n\t\t\tel.classList.add('active');\r\n\t\t\ttab.classList.add('active');\r\n\t\t\tif (slide) slide.classList.add('active');\r\n\t\t\tif (arrows) arrows.classList.add('active');\r\n\t\t});\r\n\t});\r\n\r\n\t// Dropdown\r\n\tlet dropdown = doc.querySelectorAll('.dropdown-content li');\r\n\tif (dropdown.length) {\r\n\t\tdropdown.forEach(function (el) {\r\n\t\t\tel.addEventListener('click', function () {\r\n\t\t\t\tlet parent  = el.closest('.tabs'),\r\n\t\t\t\t\tcurrent = parent.querySelector('.tab-head[data-index=\"' + el.getAttribute('data-index') + '\"]');\r\n\t\t\t\tif (!current) return;\r\n\r\n\t\t\t\tcurrent.click();\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n}\r\n\r\n\r\n// Video.\r\nfunction btyVideo( doc = document ) {\r\n\tlet selectors = doc.querySelectorAll( '.video-item' );\r\n\tif ( ! selectors.length ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tselectors.forEach(\r\n\t\tfunction( el ) {\r\n\t\t\tlet imageWrapper = el.querySelector( '.video-image-wrapper' );\r\n\r\n\t\t\tif ( ! imageWrapper ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tlet playBtn = el.querySelector('.play-video');\r\n\t\t\tif (playBtn) {\r\n\t\t\t\tplayBtn.addEventListener('click', function(e) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\timageWrapper.click();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\timageWrapper.addEventListener(\r\n\t\t\t\t'click',\r\n\t\t\t\tfunction() {\r\n\t\t\t\t\tlet iframe = el.querySelector( 'iframe' ),\r\n\t\t\t\t\t\tvideo  = el.querySelector( 'video' );\r\n\r\n\t\t\t\t\tif ( iframe ) {\r\n\t\t\t\t\t\tiframe.src = iframe.getAttribute( 'data-src' );\r\n\r\n\t\t\t\t\t\tbtyMediaAction( el, 'play' );\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif ( video ) {\r\n\t\t\t\t\t\tvideo.setAttribute( 'data-ready', '' );\r\n\r\n\t\t\t\t\t\tlet playPromise = video.play();\r\n\t\t\t\t\t\tif ( undefined !== playPromise ) {\r\n\t\t\t\t\t\t\tplayPromise.then(\r\n\t\t\t\t\t\t\t\tfunction() {}\r\n\t\t\t\t\t\t\t).catch(\r\n\t\t\t\t\t\t\t\tfunction( error ) {\r\n\t\t\t\t\t\t\t\t\tconsole.log( error );\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\t);\r\n}\r\n\r\n// Video background.\r\nfunction btyBackgroundVideo( doc = document ) {\r\n\tlet selectors = doc.querySelectorAll( '.toggle-popup-bg-video' );\r\n\tif ( ! selectors.length ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tselectors.forEach(\r\n\t\tfunction( el ) {\r\n\t\t\tel.addEventListener(\r\n\t\t\t\t'click',\r\n\t\t\t\tfunction() {\r\n\t\t\t\t\tlet section = el.closest( '.video-background-section' ),\r\n\t\t\t\t\t\tpopup   = section ? section.querySelector( '.background-video-popup' ) : false,\r\n\t\t\t\t\t\tiframe  = popup ? popup.querySelector( 'iframe' ) : false,\r\n\t\t\t\t\t\tvideo   = popup ? popup.querySelector( 'video' ) : false;\r\n\r\n\t\t\t\t\tif ( ! popup ) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tdocument.documentElement.classList.add( 'bg-video-popup-open' );\r\n\t\t\t\t\tbtyClosePopup( 'bg-video-popup-open', popup );\r\n\r\n\t\t\t\t\tif ( iframe ) {\r\n\t\t\t\t\t\tiframe.src = iframe.getAttribute( 'data-src' );\r\n\r\n\t\t\t\t\t\tbtyMediaAction( popup, 'play' );\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif ( video ) {\r\n\t\t\t\t\t\tvideo.setAttribute( 'data-ready', '' );\r\n\r\n\t\t\t\t\t\tlet playPromise = video.play();\r\n\t\t\t\t\t\tif ( undefined !== playPromise ) {\r\n\t\t\t\t\t\t\tplayPromise.then(\r\n\t\t\t\t\t\t\t\tfunction() {}\r\n\t\t\t\t\t\t\t).catch(\r\n\t\t\t\t\t\t\t\tfunction( error ) {\r\n\t\t\t\t\t\t\t\t\tconsole.log( error );\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\t);\r\n}\r\n\r\n// Action for media.\r\nfunction btyMediaAction( doc = document, type = 'pause' ) {\r\n\tlet video = doc.querySelectorAll( '.js-youtube, .js-vimeo, video' );\r\n\tif ( ! video.length ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tlet youtubeFunc = 'stopVideo';\r\n\r\n\tswitch ( type ) {\r\n\t\tcase 'pause':\r\n\t\t\tyoutubeFunc = 'pauseVideo';\r\n\t\t\tbreak;\r\n\t\tcase 'play':\r\n\t\t\tyoutubeFunc = 'playVideo';\r\n\t\t\tbreak;\r\n\t\tcase 'stop':\r\n\t\t\tyoutubeFunc = 'stopVideo';\r\n\t\t\tbreak;\r\n\t}\r\n\r\n\tif ( video.length ) {\r\n\t\tvideo.forEach(\r\n\t\t\tfunction( vd ) {\r\n\t\t\t\tif ( 'video' === vd.tagName.toLowerCase() ) {\r\n\t\t\t\t\tlet playPromise = vd.play();\r\n\r\n\t\t\t\t\tif ( 'pause' === type ) {\r\n\t\t\t\t\t\tif ( undefined !== playPromise ) {\r\n\t\t\t\t\t\t\tplayPromise.then(\r\n\t\t\t\t\t\t\t\tfunction() {\r\n\t\t\t\t\t\t\t\t\tvd.pause();\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t).catch(\r\n\t\t\t\t\t\t\t\tfunction( error ) {\r\n\t\t\t\t\t\t\t\t\tconsole.log( error );\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif ( undefined !== playPromise ) {\r\n\t\t\t\t\t\t\tplayPromise.then(\r\n\t\t\t\t\t\t\t\tfunction() {}\r\n\t\t\t\t\t\t\t).catch(\r\n\t\t\t\t\t\t\t\tfunction( error ) {\r\n\t\t\t\t\t\t\t\t\tconsole.log( error );\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if ( vd.classList.contains( 'js-youtube' ) ) {\r\n\t\t\t\t\tvd.contentWindow.postMessage( '{\"event\":\"command\",\"func\":\"' + youtubeFunc + '\",\"args\":\"\"}', '*' );\r\n\t\t\t\t} else if ( vd.classList.contains( 'js-vimeo' ) ) {\r\n\t\t\t\t\tvd.contentWindow.postMessage( '{\"method\":\"' + type + '\"}', '*' );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n}\r\n\r\n// Address box section.\r\nfunction btyAddress( doc =document ) {\r\n\tlet selectors = doc.querySelectorAll( '.address-box .address-summary' );\r\n\tif ( ! selectors.length ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tselectors.forEach(\r\n\t\tfunction( el ) {\r\n\t\t\tlet items = el.querySelectorAll( '.summary-item' );\r\n\t\t\tif ( items.length < 2 ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\titems.forEach(\r\n\t\t\t\tfunction( im, index ) {\r\n\t\t\t\t\tim.addEventListener(\r\n\t\t\t\t\t\t'click',\r\n\t\t\t\t\t\tfunction( e ) {\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\t\t\tconst mobile = window.matchMedia( '(max-width: 767px)' ).matches;\r\n\r\n\t\t\t\t\t\t\tlet oldActive = el.querySelector( '.summary-item.active' ),\r\n\t\t\t\t\t\t\t\tsubBox    = im.querySelector( '.address-sub' ),\r\n\t\t\t\t\t\t\t\timage     = el.parentNode.querySelector( '.address-content-inner' );\r\n\r\n\t\t\t\t\t\t\tif ( im.classList.contains( 'active' ) ) {\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif ( oldActive ) {\r\n\t\t\t\t\t\t\t\tlet oldSubBox = oldActive.querySelector( '.address-sub' );\r\n\t\t\t\t\t\t\t\tif ( oldSubBox && mobile ) {\r\n\t\t\t\t\t\t\t\t\tbtySlideUp( oldSubBox );\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\toldActive.classList.remove( 'active' );\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif ( image ) {\r\n\t\t\t\t\t\t\t\timage.setAttribute( 'data-level', index );\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tim.classList.add( 'active' );\r\n\r\n\t\t\t\t\t\t\tif ( subBox && mobile ) {\r\n\t\t\t\t\t\t\t\tbtySlideDown( subBox );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\t);\r\n}\r\n\r\n// Pickup availability.\r\nfunction btyPickupAvailability( doc = document, variant_id = false, pickup = false ) {\r\n\tlet panel = document.querySelector( '.pickup-availability-panel' );\r\n\tif ( ! pickup || ! panel ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tfetch( '/variants/' + variant_id + '?section_id=pickup-availability' )\r\n\t\t.then(\r\n\t\t\tfunction( r ) {\r\n\t\t\t\tif ( 200 !== r.status ) {\r\n\t\t\t\t\tconsole.log( 'Status Code: ' + r.status );\r\n\t\t\t\t\tthrow r;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn r.text();\r\n\t\t\t}\r\n\t\t).then(\r\n\t\t\tfunction( res ) {\r\n\t\t\t\tpickup.innerHTML = btyGetSectionHtml( res, '.pickup-availability-info', 'outer' );\r\n\t\t\t\tpanel.innerHTML  = btyGetSectionHtml( res, '.pickup-availability-modal', 'outer' );\r\n\r\n\t\t\t\tlet toggle = pickup.querySelector( '.toggle-modal' );\r\n\t\t\t\tif ( toggle ) {\r\n\t\t\t\t\ttoggle.onclick = function() {\r\n\t\t\t\t\t\tdocument.documentElement.classList.add( 'pickup-availability-open' );\r\n\r\n\t\t\t\t\t\tbtyClosePopup( 'pickup-availability-open', panel );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t).catch(\r\n\t\t\tfunction( e ) {\r\n\t\t\t\tconsole.error( e );\r\n\t\t\t}\r\n\t\t);\r\n}\r\n\r\n// Pickup availability for simple product.\r\nfunction btyPickupAvailabilityInit( doc = document ) {\r\n\tlet variants = doc.querySelectorAll( '.product-variants' );\r\n\tif ( variants.length ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tlet inner     = doc.querySelector( '.product-summary-inner[data-selected-id]' ),\r\n\t\tpickup    = doc.querySelector( '.pickup-availability' ),\r\n\t\tproductId = inner ? inner.getAttribute( 'data-selected-id' ) : false;\r\n\r\n\tif ( ! pickup || ! productId ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tbtyPickupAvailability( doc, productId, pickup );\r\n}\r\n\r\n// Popup content.\r\nfunction btyProductPopup( doc = document ) {\r\n\tlet selectors = doc.querySelectorAll( '.product-popup' );\r\n\tif ( ! selectors.length ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tselectors.forEach(\r\n\t\tfunction( el ) {\r\n\t\t\tlet summary = el.closest( '.product-summary' ),\r\n\t\t\t\tbutton  = el.querySelector( '.popup-toggle' ),\r\n\t\t\t\tview    = el.querySelector( '.popup-view' ),\r\n\t\t\t\tclose   = el.querySelector( '.popup-close' );\r\n\r\n\t\t\tif ( ! summary || ! button || ! view || ! close ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tbutton.onclick = function() {\r\n\t\t\t\tsummary.classList.add( 'open' );\r\n\r\n\t\t\t\t// Target.\r\n\t\t\t\tview.onclick = function( e ) {\r\n\t\t\t\t\tif ( view !== e.target ) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tsummary.classList.remove( 'open' );\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Use ESC key.\r\n\t\t\t\tdocument.addEventListener(\r\n\t\t\t\t\t'keyup',\r\n\t\t\t\t\tfunction( e ) {\r\n\t\t\t\t\t\tif ( 27 !== e.keyCode ) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tsummary.classList.remove( 'open' );\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\r\n\t\t\t\t// Use close button.\r\n\t\t\t\tclose.onclick = function() {\r\n\t\t\t\t\tsummary.classList.remove( 'open' );\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n}\r\n\r\n// Share button.\r\nfunction btyProductShare( doc = document ) {\r\n\tlet selector = doc.querySelector( '.product-share[data-os]' );\r\n\tif ( ! selector ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tlet button  = selector.querySelector( '.share-button' ),\r\n\t\tsummary = selector.querySelector( 'summary' ),\r\n\t\tinput   = selector.querySelector( '.field-input' ),\r\n\t\tmessage = selector.querySelector( '.share-message' ),\r\n\t\tcopy    = selector.querySelector( '.share-button-copy' ),\r\n\t\tclose   = selector.querySelector( '.share-button-close' );\r\n\r\n\tif ( ! button || ! summary || ! copy || ! close ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tlet closeAction = function() {\r\n\t\tsummary.parentNode.removeAttribute( 'open' );\r\n\t\tclose.classList.add( 'hidden' );\r\n\t\tmessage.classList.add( 'hidden' );\r\n\t\tmessage.textContent = '';\r\n\t}\r\n\r\n\tif ( navigator.share ) {\r\n\t\tbutton.classList.remove( 'hidden' );\r\n\t\tbutton.onclick = function() {\r\n\t\t\tnavigator.share(\r\n\t\t\t\t{\r\n\t\t\t\t\turl: document.location.href,\r\n\t\t\t\t\ttitle: document.title\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\t} else {\r\n\t\tsummary.classList.remove( 'hidden' );\r\n\r\n\t\tcopy.onclick = function() {\r\n\t\t\tnavigator.clipboard.writeText( input.value ).then(\r\n\t\t\t\tfunction() {\r\n\t\t\t\t\tmessage.classList.remove( 'hidden' );\r\n\t\t\t\t\tclose.classList.remove( 'hidden' );\r\n\r\n\t\t\t\t\tmessage.textContent = btyStrings.general.share_success;\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\t// Click any to close.\r\n\t\tdocument.addEventListener(\r\n\t\t\t'click',\r\n\t\t\tfunction( e ) {\r\n\t\t\t\tif ( e.target.closest( '.product-share' ) ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcloseAction();\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\t// Use ESC key.\r\n\t\tdocument.addEventListener(\r\n\t\t\t'keyup',\r\n\t\t\tfunction( e ) {\r\n\t\t\t\tif ( 27 !== e.keyCode ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcloseAction();\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\t// Close button.\r\n\t\tclose.onclick = closeAction;\r\n\t}\r\n}\r\n\r\n// Sale notification.\r\nfunction btySalesNotification( doc = document ) {\r\n\tlet selector = doc.querySelector( '.sales-notification' );\r\n\tif ( ! selector ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tlet inner   = selector.querySelector( '.sn-inner' ),\r\n\t\toptions = selector.querySelector( '[data-options]' ),\r\n\t\titems   = selector.querySelector( '[data-items]' );\r\n\tif ( ! inner || ! options || ! items ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tlet parseOptions = btyJsonParse( options.content.textContent ),\r\n\t\tparseItems   = new DOMParser().parseFromString( items.innerHTML, 'text/html' );\r\n\r\n\t// Remove html template.\r\n\toptions.remove();\r\n\titems.remove();\r\n\r\n\tlet length = parseItems.querySelectorAll( '.sn-item' );\r\n\tif ( ! length.length ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\t// Get random item in array.\r\n\tconst randomItem = function( arr = [] ) {\r\n\t\treturn arr[ Math.floor( Math.random() * arr.length ) ];\r\n\t}\r\n\r\n\t// Display function.\r\n\tconst displayFn = function() {\r\n\t\tlet item     = randomItem( length ),\r\n\t\t\ttime     = item.querySelector( '.sn-time' ),\r\n\t\t\tcustomer = item.querySelector( '.sn-customer' );\r\n\r\n\t\t// Append time text.\r\n\t\tif ( time ) {\r\n\t\t\ttime.innerText = randomItem( parseOptions.virtual_times );\r\n\t\t}\r\n\r\n\t\t// Append customer text.\r\n\t\tif ( customer ) {\r\n\t\t\tcustomer.innerText = randomItem( parseOptions.virtual_customers ) + parseOptions.purchased;\r\n\t\t}\r\n\r\n\t\tinner.innerHTML = item.outerHTML;\r\n\r\n\t\tlet current = inner.querySelector( '.sn-item' );\r\n\t\tif ( ! current ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Set animation.\r\n\t\tsetTimeout(\r\n\t\t\tfunction() {\r\n\t\t\t\tcurrent.classList.add( 'active' );\r\n\t\t\t},\r\n\t\t\t50\r\n\t\t);\r\n\r\n\t\t// Start loading bar when animation end.\r\n\t\tsetTimeout(\r\n\t\t\tfunction() {\r\n\t\t\t\tcurrent.insertAdjacentHTML( 'beforeend', '<span class=\"underline-animated' + ( parseOptions.loading_bar ? '' : ' visibility-hidden' ) + '\"></span>' );\r\n\r\n\t\t\t\t// Remove notification after animation end.\r\n\t\t\t\tlet animation = current.querySelector( '.underline-animated' );\r\n\t\t\t\tif ( animation ) {\r\n\t\t\t\t\tanimation.addEventListener(\r\n\t\t\t\t\t\t'animationend',\r\n\t\t\t\t\t\tfunction() {\r\n\t\t\t\t\t\t\tcurrent.classList.add( 'down' );\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\t300\r\n\t\t);\r\n\r\n\t\t// Remove notification by click to Close button.\r\n\t\tlet closeBtn = current.querySelector( '.sn-close' );\r\n\t\tif ( closeBtn ) {\r\n\t\t\tcloseBtn.onclick = function() {\r\n\t\t\t\tcurrent.classList.add( 'down' );\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tlet init, timeTotal = parseOptions.time_total * 1000;\r\n\tsetTimeout(\r\n\t\tfunction() {\r\n\t\t\tdisplayFn();\r\n\r\n\t\t\tinit = setInterval( displayFn, timeTotal );\r\n\t\t},\r\n\t\t( parseOptions.time_init * 1000 )\r\n\t);\r\n}\r\n\r\n// Newsletter popup.\r\nfunction btyNewsletterPopup( doc = document ) {\r\n\tlet form = doc.querySelector( '.newsletter-popup-form' );\r\n\tif ( ! form ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tlet delay = form.getAttribute( 'data-delay' );\r\n\r\n\tsetTimeout(\r\n\t\tfunction() {\r\n\t\t\t// Always show popup when Display mode set to Test mode.\r\n\t\t\tif ( Shopify.designMode && '' === form.getAttribute( 'data-mode' ) ) {\r\n\t\t\t\tform.parentNode.classList.add( 'closed' );\r\n\t\t\t} else {\r\n\t\t\t\tif ( 'test' === form.getAttribute( 'data-mode' ) ) {\r\n\t\t\t\t\tform.parentNode.classList.remove( 'closed' );\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif ( form.classList.contains( 'first-visit' ) ) {\r\n\t\t\t\t\t\tconst getCookie = new URLSearchParams( document.cookie.replaceAll( '&', '%26' ).replaceAll( '; ', '&' ) );\r\n\t\t\t\t\t\tif ( ! getCookie.get( 'newsletter-popup-cookie' ) ) {\r\n\t\t\t\t\t\t\tform.parentNode.classList.remove( 'closed' );\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tfunction setCookie( cname, cvalue, exdays ) {\r\n\t\t\t\t\t\t\tlet d = new Date();\r\n\r\n\t\t\t\t\t\t\td.setTime( d.getTime() + ( exdays * 24 * 60 * 60 * 1000) );\r\n\r\n\t\t\t\t\t\t\tlet expires = 'expires=' + d.toUTCString();\r\n\r\n\t\t\t\t\t\t\tdocument.cookie = cname + '=' + cvalue + ';' + expires + ';path=/';\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tsetCookie( 'newsletter-popup-cookie', 1, 30 );\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tform.parentNode.classList.remove( 'closed' );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tconst isAgeVerification = form.closest( '.age-verification-section' ) !== null;\r\n\r\n\t\t\t// Click to popup overlay.\r\n\t\t\tif ( ! isAgeVerification ) {\r\n\t\t\t\tform.addEventListener('click', function ( e ) {\r\n\t\t\t\t\tif ( e.target !== form ) return;\r\n\t\t\t\t\tform.parentNode.classList.add( 'closed' );\r\n\t\t\t\t});\r\n\r\n\t\t\t\t// Use ESC key.\r\n\t\t\t\tdocument.addEventListener('keyup', function ( e ) {\r\n\t\t\t\t\tif ( e.keyCode !== 27 ) return;\r\n\t\t\t\t\t\tform.parentNode.classList.add( 'closed' );\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// Use close button.\r\n\t\t\t\tlet button = form.querySelector( '.close-button' );\r\n\t\t\t\tif ( button ) {\r\n\t\t\t\t\tbutton.onclick = function() {\r\n\t\t\t\t\t\tform.parentNode.classList.add( 'closed' );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\tNumber( delay )\r\n\t);\r\n}\r\n\r\n// Age verification popup.\r\nfunction btyAgeverificationPopup(doc = document) {\r\n\t// Function to check the cookies.\r\n\tfunction checkAgeVerification() {\r\n\t\tconst cookieString = doc.cookie && doc.cookie.split('; ').find(row => row.startsWith('acceptAgeVerification='));\r\n\t\tif ( ! cookieString || Shopify.designMode ) {\r\n\t\t\tlet allowSection = doc.querySelector( \".age-verification-section .allow\" );\r\n\t\t\tif (allowSection) {\r\n\t\t\t\tallowSection.classList.remove( \"hidden\" );\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Function to set the cookie.\r\n\tfunction setCookie(name, value, days) {\r\n\t\tconst d = new Date();\r\n\t\td.setTime(d.getTime() + (days * 24 * 60 * 60 * 1000));\r\n\t\tconst expires = \"expires=\" + d.toUTCString();\r\n\t\tdoc.cookie = `${name}=${value};${expires};path=/`;\r\n\t}\r\n\r\n\t// Check and attach event to the \"Yes\" button.\r\n\tlet yesBtn = doc.querySelector( \".age-verification-section .yes-btn\" );\r\n\r\n\tif (yesBtn) {\r\n\t\tyesBtn.addEventListener(\"click\", function () {\r\n\t\t\tlet allowSection = doc.querySelector( \".age-verification-section .allow\" );\r\n\t\t\tif (allowSection) {\r\n\t\t\t\tallowSection.classList.add( \"hidden\" );\r\n\t\t\t}\r\n\t\t\t// Add 'closed' class and set cookie when clicking \"Yes\".\r\n\t\t\tlet form = doc.querySelector( '.age-verification-section .newsletter-popup-form' );\r\n\t\t\tif (form) {\r\n\t\t\t\tform.parentNode.classList.add( 'closed' );\r\n\t\t\t}\r\n\t\t\tsetCookie( 'acceptAgeVerification', 1, 30 );\r\n\t\t});\r\n\t}\r\n\r\n\t// Check and attach event to the \"No\" button.\r\n\tlet noBtn = doc.querySelector( \".age-verification-section .no-btn\" );\r\n\tif (noBtn) {\r\n\t\tnoBtn.addEventListener(\"click\", function () {\r\n\t\t\tlet allowSection    = doc.querySelector( \".age-verification-section .allow\" );\r\n\t\t\tlet notAllowSection = doc.querySelector( \".age-verification-section .not-allow\" );\r\n\t\t\tif (allowSection && notAllowSection) {\r\n\t\t\t\tallowSection.classList.add( \"hidden\" );\r\n\t\t\t\tnotAllowSection.classList.remove( \"hidden\" );\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t// Check and attach event to the \"Back\" button.\r\n\tlet backBtn = doc.querySelector( \".age-verification-section .back-btn\" );\r\n\tif (backBtn) {\r\n\t\tbackBtn.addEventListener(\"click\", function () {\r\n\t\t\tlet notAllowSection = doc.querySelector( \".age-verification-section .not-allow\" );\r\n\t\t\tlet allowSection    = doc.querySelector( \".age-verification-section .allow\" );\r\n\t\t\tif (notAllowSection && allowSection) {\r\n\t\t\t\tnotAllowSection.classList.add( \"hidden\" );\r\n\t\t\t\tallowSection.classList.remove( \"hidden\" );\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t// Call the cookie check function.\r\n\tcheckAgeVerification();\r\n}\r\n\r\n// Cookies bar.\r\nfunction btyCookiesBar( doc = document ) {\r\n\tlet box    = doc.querySelector( '.cookies-bar' ),\r\n\t\tbutton = doc.querySelector( '.button-cookies' );\r\n\r\n\tif ( ! box || ! button || ( Shopify.designMode && '' === box.getAttribute( 'data-mode' ) ) ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst getCookie = new URLSearchParams( document.cookie.replaceAll( '&', '%26' ).replaceAll( '; ', '&' ) );\r\n\tif ( ! getCookie.get( 'acceptCookies' ) ) {\r\n\t\tbox.classList.add( 'show' );\r\n\t}\r\n\r\n\tfunction setCookie( cname, cvalue, exdays ) {\r\n\t\tlet d = new Date();\r\n\r\n\t\td.setTime( d.getTime() + ( exdays * 24 * 60 * 60 * 1000) );\r\n\r\n\t\tlet expires = 'expires=' + d.toUTCString();\r\n\r\n\t\tdocument.cookie = cname + '=' + cvalue + ';' + expires + ';path=/';\r\n\t}\r\n\r\n\tbutton.onclick = function () {\r\n\t\tif ( '' === box.getAttribute( 'data-mode' ) ) {\r\n\t\t\tsetCookie( 'acceptCookies', 1, 30 );\r\n\t\t} else {\r\n\t\t\tdocument.cookie = 'acceptCookies=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';\r\n\t\t}\r\n\r\n\t\tbox.classList.remove( 'show' );\r\n\t}\r\n}\r\n\r\n// Hover media video.\r\nfunction btyHoverMediaVideo( doc = document ) {\r\n\tlet selectors = doc.querySelectorAll( '.hover-media-video' );\r\n\tif ( ! selectors.length ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tselectors.forEach(\r\n\t\tfunction( el ) {\r\n\t\t\tlet parent = el.parentNode;\r\n\r\n\t\t\tparent.addEventListener(\r\n\t\t\t\t'mousemove',\r\n\t\t\t\tfunction( e ) {\r\n\t\t\t\t\tbtyMediaAction( parent, 'play' );\r\n\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t);\r\n\r\n\t\t\tparent.addEventListener(\r\n\t\t\t\t'mouseleave',\r\n\t\t\t\tfunction( e ) {\r\n\t\t\t\t\tbtyMediaAction( parent, 'pause' );\r\n\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\t);\r\n}\r\n\r\n// Animation for image load.\r\nfunction btyAnimationImageLoad( doc = document, delay = 0 ) {\r\n\tlet images = doc.querySelectorAll( '.lazy-image img' );\r\n\tif ( ! images.length ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst imgLazyObserver = new IntersectionObserver(\r\n\t\tfunction( entries, observer ) {\r\n\t\t\tentries.forEach(\r\n\t\t\t\tfunction( entry ) {\r\n\t\t\t\t\tif ( entry.isIntersecting ) {\r\n\t\t\t\t\t\tif ( entry.target.dataset.src ) {\r\n\t\t\t\t\t\t\tentry.target.src = entry.target.dataset.src;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif ( entry.target.dataset.srcSet ) {\r\n\t\t\t\t\t\t\tentry.target.srcSet = entry.target.dataset.srcSet;\r\n\t\t\t\t\t\t} else if ( entry.target.dataset.srcset ) {\r\n\t\t\t\t\t\t\tentry.target.setAttribute( 'srcset', entry.target.dataset.srcset );\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tentry.target.removeAttribute( 'data-src' );\r\n\t\t\t\t\t\tentry.target.removeAttribute( 'data-srcset' );\r\n\r\n\t\t\t\t\t\tentry.target.addEventListener(\r\n\t\t\t\t\t\t\t'load',\r\n\t\t\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\t\t\tentry.target.parentNode.classList.add( 'lazy-loaded' );\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\tobserver.unobserve( entry.target );\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t},\r\n\t\t{\r\n\t\t\trootMargin: '-20px 0px -20px 0px'\r\n\t\t}\r\n\t);\r\n\r\n\timages.forEach(\r\n\t\tfunction( img ) {\r\n\t\t\tif ( img.parentNode.classList.contains( 'lazy-loaded' ) ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\timgLazyObserver.observe( img );\r\n\t\t}\r\n\t);\r\n}\r\n\r\n// Animation for animated-image-collage.\r\nfunction btyAnimationCollageLoad(doc = document) {\r\n\tconst sections = doc.querySelectorAll( '.collection-list-section' );\r\n\r\n\tif ( sections.length === 0 ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tconst observer = new IntersectionObserver(( entries, obs ) => {\r\n\t\tentries.forEach((entry) => {\r\n\t\t\tif (entry.isIntersecting) {\r\n\t\t\t\tconst section = entry.target;\r\n\r\n\t\t\t\tsection.querySelectorAll( '.lazy-image img' ).forEach(( img ) => {\r\n\t\t\t\t\tif (img.dataset.src) {\r\n\t\t\t\t\t\timg.src = img.dataset.src;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (img.dataset.srcset) {\r\n\t\t\t\t\t\timg.srcset = img.dataset.srcset;\r\n\t\t\t\t\t}\r\n\t\t\t\t\timg.removeAttribute( 'data-src' );\r\n\t\t\t\t\timg.removeAttribute( 'data-srcset' );\r\n\r\n\t\t\t\t\tif (img.parentNode) {\r\n\t\t\t\t\t\timg.parentNode.classList.add( 'lazy-loaded' );\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tobs.unobserve( section );\r\n\t\t\t}\r\n\t\t});\r\n\t}, { rootMargin: '50px' });\r\n\r\n\tsections.forEach(( section ) => observer.observe( section ));\r\n}\r\n\r\n// Collection sticky.\r\nfunction btyCollectionSticky( doc = document ) {\r\n\tlet items = doc.querySelectorAll( '.collection-sticky' );\r\n\tif ( ! items.length ) {\r\n\t\treturn\r\n\t}\r\n\r\n\tconst stickCollection = function() {\r\n\t\titems.forEach(\r\n\t\t\tfunction( el ) {\r\n\t\t\t\tlet box        = el.querySelector( '.heading-box' ),\r\n\t\t\t\t\tsubHeading = box ? box.querySelector( '.sub-heading .dynamic-label' ) : false,\r\n\t\t\t\t\theading    = box ? box.querySelector( '.heading .dynamic-label' ) : false,\r\n\t\t\t\t\tbutton     = box ? box.querySelector( '.collection-list-button .dynamic-label' ) : false,\r\n\t\t\t\t\tcards      = el.querySelectorAll( '.card-item' );\r\n\t\t\t\tif ( ! cards.length ) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfor ( let i = 0, j = cards.length; i < j; i++ ) {\r\n\t\t\t\t\tlet rect    = cards[i].getBoundingClientRect(),\r\n\t\t\t\t\t\tindex   = i + 1,\r\n\t\t\t\t\t\tcurrent = el.querySelector( '.card-item:nth-child(' + index + ')' );\r\n\r\n\t\t\t\t\tif ( ! current ) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tlet title          = current.getAttribute( 'data-title' ),\r\n\t\t\t\t\t\tdataSubHeading = current.getAttribute( 'data-subheading' ),\r\n\t\t\t\t\t\tdataHeading    = current.getAttribute( 'data-heading' ),\r\n\t\t\t\t\t\thref           = current.getAttribute( 'data-href' );\r\n\t\t\t\t\tif ( rect.top <= 1 && ( rect.top >= rect.height * -1 ) ) {\r\n\t\t\t\t\t\tif ( button && button.innerText != title ) {\r\n\t\t\t\t\t\t\tif ( href.trim() ) {\r\n\t\t\t\t\t\t\t\tbutton.parentNode.href = href;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif ( title.trim() ) {\r\n\t\t\t\t\t\t\t\tbutton.innerText = title;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tbutton.parentNode.classList.add( 'bounce-it' );\r\n\t\t\t\t\t\t\tsetTimeout(\r\n\t\t\t\t\t\t\t\tfunction() {\r\n\t\t\t\t\t\t\t\t\tbutton.parentNode.classList.remove( 'bounce-it' );\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t1000\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif ( dataSubHeading.trim() && subHeading ) {\r\n\t\t\t\t\t\t\tsubHeading.innerText = dataSubHeading;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif ( dataHeading.trim() && heading ) {\r\n\t\t\t\t\t\t\theading.innerText = dataHeading;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tstickCollection();\r\n\r\n\t// Trigger.\r\n\twindow.addEventListener(\r\n\t\t'scroll',\r\n\t\tfunction() {\r\n\t\t\tstickCollection();\r\n\t\t}\r\n\t);\r\n}\r\n\r\n// Recipient form.\r\nfunction btyRecipientForm( doc = document ) {\r\n\tlet input  = doc.querySelector( '.recipient-checkbox-label input[type=\"checkbox\"]' ),\r\n\t\tfields = doc.querySelector( '.recipient-fields' );\r\n\r\n\tif ( ! input || ! fields ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tinput.onchange = function() {\r\n\t\tif ( input.checked ) {\r\n\t\t\tfields.classList.add( 'open' );\r\n\t\t} else {\r\n\t\t\tfields.classList.remove( 'open' );\r\n\t\t}\r\n\t}\r\n}\r\n\r\n// Load media.\r\nfunction btyLoadMedia( selector = undefined, action = 'play' ) {\r\n\tif ( ! selector ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tlet wrapper = selector.querySelector( '.media-preview-wrap' ),\r\n\t\tplayBtn = selector.querySelector( '.view-media' );\r\n\r\n\tif ( ! playBtn ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\t// Return if media loaded.\r\n\tif ( wrapper.classList.contains( 'media-loaded' ) ) {\r\n\t\tbtyMediaAction( wrapper, action );\r\n\r\n\t\treturn;\r\n\t}\r\n\r\n\t// Play current video.\r\n\tbtyMediaAction( wrapper, action );\r\n\r\n\tif ( selector.hasAttribute( 'data-model' ) ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tlet template = selector.querySelector( 'template' ),\r\n\t\tmediaDiv = wrapper.querySelector( '.media-content' );\r\n\r\n\tif ( ! mediaDiv ) {\r\n\t\twrapper.classList.add( 'media-loaded' );\r\n\r\n\t\tif ( template ) {\r\n\t\t\twrapper.insertAdjacentHTML( 'beforeend', '<div class=\"media-content\">' + template.innerHTML + '</div>' );\r\n\t\t}\r\n\t}\r\n\r\n\t// Remove model after loaded, inside <template> tag.\r\n\tif ( template ) {\r\n\t\ttemplate.remove();\r\n\t}\r\n}\r\n\r\n// Load media on desktop.\r\nfunction btyMediaDesktop( doc = document ) {\r\n\tlet selectors = doc.querySelectorAll( '.main-item' );\r\n\tif ( ! selectors.length ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tselectors.forEach(\r\n\t\tfunction( el ) {\r\n\t\t\tif ( el.hasAttribute( 'data-model' ) ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tel.addEventListener(\r\n\t\t\t\t'click',\r\n\t\t\t\tfunction() {\r\n\t\t\t\t\tbtyLoadMedia( el, 'play' );\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\t);\r\n}\r\n\r\n// Scroll to top.\r\nfunction btyScrollToTop() {\r\n\tlet myButton = document.getElementById( 'btnScrollToTop' );\r\n\r\n\tif ( ! myButton ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\twindow.onscroll = function() {\r\n\t\t// Display after 400px height.\r\n\t\tif ( window.pageYOffset >= 400 ) {\r\n\t\t\tmyButton.style.display = 'block';\r\n\t\t} else {\r\n\t\t\tmyButton.style.display = 'none';\r\n\t\t}\r\n\t}\r\n\r\n\t// Onclick function.\r\n\tmyButton.addEventListener(\r\n\t\t'click',\r\n\t\tfunction() {\r\n\t\t\twindow.scrollTo(\r\n\t\t\t\t{\r\n\t\t\t\t\ttop: 0,\r\n\t\t\t\t\tleft: 0,\r\n\t\t\t\t\tbehavior: \"smooth\"\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\t);\r\n}\r\n\r\n// Open localization form.\r\nfunction btyToggleLocalization() {\r\n\tlet toggles = document.querySelectorAll( '.localization-selector' ),\r\n\t\tform    = document.querySelector( '.localization-form-wrapper' );\r\n\r\n\tif ( ! toggles.length || ! form ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\t// Toggle localization form.\r\n\ttoggles.forEach(\r\n\t\tfunction ( el ) {\r\n\t\t\tel.onclick = function ( e ) {\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tdocument.documentElement.classList.add( 'localization-form-open' );\r\n\r\n\t\t\t\tbtyClosePopup( 'localization-form-open', form );\r\n\t\t\t\tlet closeButton = form.querySelector( '.close-button' );\r\n\t\t\t\tif ( closeButton ) {\r\n\t\t\t\t\tsetTimeout(\r\n\t\t\t\t\t\tfunction() {\r\n\t\t\t\t\t\t\tcloseButton.focus();\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\t400\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t}\r\n\t);\r\n\r\n}\r\n\r\nfunction btySubmitLocalization( doc = document ) {\r\n\tlet forms = doc.querySelectorAll( '.localization-form' );\r\n\tif ( ! forms.length ) {\r\n\t\treturn;\r\n\t}\r\n\r\n\tforms.forEach(\r\n\t\tfunction( form ) {\r\n\t\t\tlet select = form.querySelectorAll( 'select' );\r\n\t\t\tif ( ! select.length ) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tselect.forEach(\r\n\t\t\t\tfunction( el ) {\r\n\t\t\t\t\tel.addEventListener(\r\n\t\t\t\t\t\t'change',\r\n\t\t\t\t\t\tfunction() {\r\n\t\t\t\t\t\t\tform.submit();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t);\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\t);\r\n}\r\n\r\n// Popup focus.\r\nfunction btyTrapFocus( container, firstFocusableElement ) {\r\n\tconst focusableElements = container.querySelectorAll(\r\n\t\t'a[href], button:not([disabled]), input, textarea, select, details, [tabindex]:not([tabindex=\"-1\"])'\r\n\t);\r\n\r\n\tconst firstElement = firstFocusableElement || focusableElements[0];\r\n\tconst lastElement  = focusableElements[focusableElements.length - 1];\r\n\r\n\tfunction handleKeyDown(e) {\r\n\t\tif (e.key === 'Tab') {\r\n\t\t\tif (e.shiftKey) {\r\n\t\t\t\tif (document.activeElement === firstElement) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tlastElement.focus();\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tif (document.activeElement === lastElement) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tfirstElement.focus();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tcontainer.addEventListener( 'keydown', handleKeyDown );\r\n}\r\n\r\n// DOM Loaded.\r\ndocument.addEventListener(\r\n\t'DOMContentLoaded',\r\n\tfunction() {\r\n\t\tbtyAccordionHover();\r\n\t\tbtyScrollBar();\r\n\t\tbtyRecipientForm();\r\n\t\tbtyNewsletterPopup();\r\n\t\tbtyAgeverificationPopup();\r\n\t\tbtyToggleDetails();\r\n\t\tbtyQuickAdd();\r\n\t\tbtyHoverMediaVideo();\r\n\t\tbtyCollectionSticky();\r\n\t\tbtyAnimationImageLoad();\r\n\t\tbtyAnimationCollageLoad();\r\n\t\tbtyAccountPopup();\r\n\t\tbtySplitSlider();\r\n\t\tbtyProductTabs();\r\n\t\tbtyCountdownTime();\r\n\t\tbtyNavMenu();\r\n\t\tbtyCookiesBar();\r\n\t\tbtyQuantityButton();\r\n\t\tbtySideCart();\r\n\t\tbtyQuickSearch();\r\n\t\tbtyCheckInventoryOnLoad();\r\n\t\tbtyAddToCart();\r\n\t\tbtyAddMultiProductToCart();\r\n\t\tbtyUpdateProductQuantity();\r\n\t\tbtyQuickView();\r\n\t\tbtyQuickViewVariants();\r\n\t\tbtySwatch();\r\n\t\tbtyAccordionHandle();\r\n\t\tbtyToggleDropdown();\r\n\t\tbtyVideo();\r\n\t\tbtyBackgroundVideo();\r\n\t\tbtyAddress();\r\n\t\tbtyPickupAvailabilityInit();\r\n\t\tbtyProductVariants();\r\n\t\tbtyProductPopup();\r\n\t\tbtyProductShare();\r\n\t\tbtyScrollAnimationTrigger();\r\n\t\tbtyHeaderSticky();\r\n\t\tbtyMediaDesktop();\r\n\t\tbtyMinicartRecommendations();\r\n\t\tbtySideCartPopupOuter();\r\n\t\tbtyFeaturedProductSlider();\r\n\t\tbtyShortDescription();\r\n\t\tbtyScrollToTop();\r\n\t\tbtyAgreeToTerms();\r\n\t\tbtyUpdateProgressBarCart();\r\n\t\tbtyToggleNavMenu();\r\n\t\tbtyToggleLocalization();\r\n\t\tbtySubmitLocalization();\r\n\t\tbtyFooterAccordion();\r\n\t\tbtyAddElementClass();\r\n\t\tsetupThumbProgress();\r\n\r\n\t\twindow.addEventListener(\r\n\t\t\t'resize',\r\n\t\t\tfunction() {\r\n\t\t\t\tbtyHeaderSticky();\r\n\t\t\t\tbtyFooterAccordion();\r\n\t\t\t\tbtyAddElementClass();\r\n\t\t\t\tbtySplitSlider();\r\n\t\t\t\tbtyMediaDesktop();\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\twindow.addEventListener(\r\n\t\t\t'scroll',\r\n\t\t\tfunction() {\r\n\t\t\t\tbtyHeaderSticky();\r\n\t\t\t\tbtyScrollingDetect();\r\n\t\t\t\tbtyAnimationImageLoad();\r\n\t\t\t\tbtyAnimationCollageLoad();\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n);\r\n\r\n// Design mode event.\r\ndocument.addEventListener(\r\n\t'shopify:section:load',\r\n\tfunction( e ) {\r\n\t\tlet section = e.target;\r\n\r\n\t\tbtySplitSlider( section );\r\n\t\tbtyAccordionHover( section );\r\n\t\tbtyAnimationImageLoad( section );\r\n\t\tbtyAnimationCollageLoad( section );\r\n\t\tbtyCountdownTime( section );\r\n\t\tbtyProductTabs( section );\r\n\t\tbtyAccordionHandle( section );\r\n\t\tbtyToggleDropdown( section );\r\n\t\tbtyVideo( section );\r\n\t\tbtyBackgroundVideo( section );\r\n\t\tbtyAddress( section );\r\n\t\tbtyProductVariants( section );\r\n\t\tbtyProductPopup( section );\r\n\t\tbtyProductShare( section );\r\n\t\tbtyCollectionSticky( section );\r\n\t\tbtyQuantityButton( section );\r\n\t\tbtyScrollAnimationTrigger( section, true );\r\n\t\tbtyMinicartRecommendations( section );\r\n\t\tbtyNewsletterPopup( section );\r\n\t\tbtyAgeverificationPopup( section );\r\n\t\tbtySideCartPopupOuter( section );\r\n\t\tbtyFeaturedProductSlider( section );\r\n\t\tbtyToggleNavMenu( section );\r\n\t\tbtyToggleLocalization( section );\r\n\t\tbtySubmitLocalization( section );\r\n\t\tbtyQuickView();\r\n\t\tbtyQuickViewVariants();\r\n\t\tbtyFooterAccordion();\r\n\t\tbtyAddElementClass();\r\n\t\tsetupThumbProgress( section );\r\n\r\n\t\tconsole.log( 'Section load.' );\r\n\t}\r\n);\r\ndocument.addEventListener(\r\n\t'shopify:section:select',\r\n\tfunction( e ) {\r\n\t\tlet section = e.target;\r\n\r\n\t\tbtySplitSlider( section );\r\n\t\tbtyAccordionHover( section );\r\n\t\tbtyQuickSearch();\r\n\t\tbtyCookiesBar( section );\r\n\t\tbtyNewsletterPopup( section );\r\n\t\tbtyAgeverificationPopup( section );\r\n\t\tbtyAnimationImageLoad( section );\r\n\t\tbtyAnimationCollageLoad( section );\r\n\t\tbtyNavMenu( section, e );\r\n\t\tbtyToggleDropdown( section );\r\n\t\tbtyProductTabs( section );\r\n\t\tbtyCountdownTime( section );\r\n\t\tbtyAccordionHandle( section );\r\n\t\tbtyVideo( section );\r\n\t\tbtyBackgroundVideo( section );\r\n\t\tbtyAddress( section );\r\n\t\tbtyProductVariants( section );\r\n\t\tbtyProductPopup( section );\r\n\t\tbtyProductShare( section );\r\n\t\tbtyAccountPopup( section );\r\n\t\tbtyQuickAdd( section );\r\n\t\tbtyScrollBar( section );\r\n\t\tbtyHoverMediaVideo( section );\r\n\t\tbtySwatch( section );\r\n\t\tbtyCollectionSticky( section );\r\n\t\tbtyCheckInventoryOnLoad( section );\r\n\t\tbtyAddToCart( section );\r\n\t\tbtyAddMultiProductToCart( section );\r\n\t\tbtyQuantityButton( section );\r\n\t\tbtyMinicartRecommendations( section );\r\n\t\tbtySideCartPopupOuter( section );\r\n\t\tbtyFeaturedProductSlider( section );\r\n\t\tbtyShortDescription( section );\r\n\t\tbtyToggleNavMenu( section );\r\n\t\tbtyToggleLocalization( section );\r\n\t\tbtySubmitLocalization( section );\r\n\t\tsetupThumbProgress( section );\r\n\t\tbtyQuickView();\r\n\t\tbtyQuickViewVariants();\r\n\t\tbtyFooterAccordion();\r\n\t\tbtyAddElementClass();\r\n\t\tconsole.log( 'Section select.' );\r\n\t}\r\n);\r\ndocument.addEventListener(\r\n\t'shopify:block:select',\r\n\tfunction( e ) {\r\n\t\tconsole.log( 'Block select.' );\r\n\r\n\t\tlet section = document.getElementById( 'shopify-section-' + e.detail.sectionId );\r\n\t\tif ( ! section ) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tbtySplitSlider( section );\r\n\t\tbtyAccordionHover( section );\r\n\t\tbtyNewsletterPopup( section );\r\n\t\tbtyAgeverificationPopup( section );\r\n\t\tbtyAnimationImageLoad( section );\r\n\t\tbtyAnimationCollageLoad( section );\r\n\t\tbtyProductTabs( section, e );\r\n\t\tbtyCollectionSticky( section );\r\n\t\tbtyMinicartRecommendations( section );\r\n\t\tbtySideCartPopupOuter( section );\r\n\t\tbtyShortDescription( section );\r\n\t\tbtyQuickView( section );\r\n\t\tbtyQuickViewVariants();\r\n\t\tbtyFooterAccordion();\r\n\t\tbtyAddElementClass();\r\n\t}\r\n);\r\ndocument.addEventListener(\r\n\t'shopify:section:reorder',\r\n\tfunction( e ) {\r\n\t\tlet section = e.target;\r\n\r\n\t\tbtyScrollAnimationTrigger( section, true );\r\n\r\n\t\tconsole.log( 'Section reorder.' );\r\n\t}\r\n);\r\ndocument.addEventListener('DOMContentLoaded', function() {\r\n  const header = document.querySelector('[data-header]');\r\n  const menuItems = document.querySelectorAll('.menu-item--has-children');\r\n\r\n  menuItems.forEach(item => {\r\n    item.addEventListener('mouseenter', () => {\r\n      header?.classList.add('menu-open');\r\n    });\r\n    item.addEventListener('mouseleave', () => {\r\n      header?.classList.remove('menu-open');\r\n    });\r\n  });\r\n});\r\n"],
  "mappings": "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",
  "names": ["n", "t", "e", "i", "r", "s", "o", "c", "a", "u", "l", "d", "f", "p", "v", "y", "x", "b", "E", "S", "w", "M", "D", "O", "T", "L", "A", "I", "F", "P", "N", "m", "g", "h", "sum", "event", "root", "section", "sectionId", "unitySliderInstance", "money", "button", "setCookie"]
}
