1<!doctype html> 2 3<html lang="en" dir="ltr"> 4 <head> 5<!--LOOMI SDK--> 6<!--DO NOT EDIT--> 7<!--Start - Anti Flicker--> 8<style id="vslyAntiFlickerStyle-AE29"> 9 body { 10 opacity: 0!important; 11 } 12</style> 13<style id="vslyAntiFlickerStyle-BC82"> 14 body { 15 16 animation: vslyAntiFlickerFadeIn 0.1s linear; 17 -moz-animation: vslyAntiFlickerFadeIn 0.1s linear; 18 -o-animation: vslyAntiFlickerFadeIn 0.1s linear; 19 -webkit-animation: vslyAntiFlickerFadeIn 0.1s linear; 20 21 animation-fill-mode: forwards; 22 -moz-animation-fill-mode: forwards; 23 -o-animation-fill-mode: forwards; 24 -webkit-animation-fill-mode: forwards; 25 26 animation-delay: 500ms; 27 -moz-animation-delay: 500ms; 28 -o-animation-delay: 500ms; 29 -webkit-animation-delay: 500ms; 30 } 31 32 @keyframes vslyAntiFlickerFadeIn { 33 to { 34 opacity: 1; 35 } 36 } 37</style>
38<script id="vslyAntiFlickerScript-OJ93" data-em-disable> 39 console.debug('vsly-anti-flicker', 'Anti Flicker Script Loaded'); 40 let fallbackTimer = -1; 41 let retryTimer = -1; 42 let retries = 0; 43 44 function _vslyAntiFlickerRevealInner() { 45 try { 46 console.debug('vsly-anti-flicker', 'Revealing'); 47 const hideElem = document.querySelector('#vslyAntiFlickerStyle-AE29'); 48 if (hideElem) { 49 hideElem.remove(); 50 } 51 clearTimeout(fallbackTimer); 52 console.debug('vsly-anti-flicker', 'Revealing done'); 53 } catch (ex) { 54 console.error('vsly-anti-flicker', ex); 55 if (retries > 15) { 56 setTimeout(window.vslyAntiFlickerReveal, 10); 57 retries += 1; 58 } 59 } 60 } 61 62 window.vslyAntiFlickerReveal = function () { 63 setTimeout(_vslyAntiFlickerRevealInner, 10); 64 } 65 66 fallbackTimer = setTimeout(() => { 67 console.debug('vsly-anti-flicker', 'Falling back after timeout'); 68 window._vslyAntiFlickerRevealInner() 69 clearTimeout(retryTimer) 70 }, 500) 71</script>
71 72<!--End - Anti Flicker--> 73<link rel="preconnect" href="https://live.visually-io.com/" crossorigin data-em-disable> 74<link rel="dns-prefetch" href="https://live.visually-io.com/" data-em-disable>
75<script> 76 (()=> { 77 const env = 2; 78 var store = "qynda.myshopify.com"; 79 var alias = store.replace(".myshopify.com", "").replaceAll("-", "_").toUpperCase(); 80 var jitsuKey = "js.73720693009"; 81 var themeId = 181940945169; 82 var role = "main"; 83 window.loomi_ctx = {...(window.loomi_ctx || {}),storeAlias:alias,jitsuKey,env,themeId,role}; 84 85 86 87 88 var product = {}; 89 var variants = []; 90 91 variants.push({id:54370783428881,policy:"deny",price:10000,iq:0}); 92 93 variants.push({id:54370507161873,policy:"deny",price:15000,iq:-1}); 94 95 variants.push({id:54370507194641,policy:"deny",price:20000,iq:0}); 96 97 variants.push({id:54370507227409,policy:"deny",price:25000,iq:0}); 98 99 variants.push({id:54392469586193,policy:"deny",price:30000,iq:0}); 100 101 product.variants = variants; 102 product.oos = !true; 103 product.price = 10000 ; 104 window.loomi_ctx.current_product=product; 105 window.loomi_ctx.productId=11184018325777; 106 window.loomi_ctx.variantId = 54370783428881; 107 108 109 window.loomi_ctx.blockingConcent = false; 110 loomi_ctx.ttl=1786789108; 111 112 !function(){var t,n,e;!function(t){t.JSCondition="jsCondition",t.JSFunction="jsFunction",t.JSEvent="jsEvent",t.Selector="selector",t.ElementEvent="elementEvent",t.PageLoad="pageLoad",t.Timeout="timeout",t.Inactivity="inactivity",t.ExitIntent="exitIntent",t.Conjunction="conjunction"}(t||(t={})),function(t){t[t.PAUSED=4]="PAUSED"}(n||(n={})),function(t){t[t.LOCAL=0]="LOCAL",t[t.STAGE=1]="STAGE",t[t.PROD=2]="PROD",t[t.TEST=3]="TEST"}(e||(e={}));var r,i="lmi_preview";function o(){return o=Object.assign?Object.assign.bind():function(t){for(var n=1;n<arguments.length;n++){var e=arguments[n];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])}return t},o.apply(this,arguments)}function a(t,n){t.prototype=Object.create(n.prototype),t.prototype.constructor=t,c(t,n)}function c(t,n){return c=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,n){return t.__proto__=n,t},c(t,n)}function u(t,n){(null==n||n>t.length)&&(n=t.length);for(var e=0,r=new Array(n);e<n;e++)r[e]=t[e];return r}!function(t){t.USE_CASE="USE_CASE",t.ADD_TO_CART="ADD_TO_CART"}(r||(r={})),window.addEventListener("load",function(){setTimeout(function(){},2e3)});var s="vsly-hide-theme-preview",l="vslyCtags",d=function(){return new Date(1e3*Math.floor(Date.now()/1e3))};function f(t,n,e,r){return void 0===n&&(n=500),void 0===e&&(e=4),new Promise(function(i,o){t()?i(0):0!==e?setTimeout(function(){r&&r()&&o("condition rejected "+m(function(){return t.toString()})),f(t,n,e-1).then(i).catch(o)},n):o("condition rejected "+m(function(){return t.toString()}))})}function v(t){return btoa(unescape(encodeURIComponent(JSON.stringify(t))))}function m(t,n){void 0===n&&(n=void 0);try{return t()}catch(t){return n}}var w=function(t){return t&&decodeURIComponent(document.cookie.replace(new RegExp("(?:(?:^|.*;)\\s*"+encodeURIComponent(t).replace(/[\-\.\+\*]/g,"\\$&")+"\\s*\\=\\s*([^;]*).*$)|^.*$"),"$1"))||null};function h(){var t=m(function(){return window.loomi_ctx.clientId});return t?(window.localStorage.setItem("vsly__st",String(t)),String(t)):window.localStorage.getItem("vsly__st")}function g(t,n,e){void 0===n&&(n=5),void 0===e&&(e=500),n>=0&&!m(t)&&setTimeout(function(){m(t)||g(t,n-1)},e)}function p(t){return t.replace(/[^a-z_A-Z0-9]/gi,"_")}function _(){return!!m(function(){return window.vsly_fbs})}function y(){return window.location.search.includes("lmi_debug")||_()}var S=/*#__PURE__*/function(){function t(t,n){this._value=void 0,this._addedAt=void 0,this._value=t,this._addedAt=n||(new Date).getTime()}var n=t.prototype;return n.value=function(){return this._value},n.addedAt=function(){return this._addedAt},t}(),I=/*#__PURE__*/function(){function t(t,n){this.backend=void 0,this.ttlMillis=void 0,this.backend=t,this.ttlMillis=n}var n=t.prototype;return n.isValid=function(t){return!!t&&(new Date).getTime()-t.addedAt()<=this.ttlMillis},n.get=function(t){var n=this.backend.get(t),e=this.isValid(n);if(n&&e)return n.value();e||this.backend.remove(t)},n.set=function(t,n,e){var r=new S(n,e);this.backend.set(t,r)},t}(),E=/*#__PURE__*/function(){function t(t){this.namespace=void 0,this.namespace="vsly_cache_"+t,window[this.namespace]={}}var n=t.prototype;return n.get=function(t){var n=this;return m(function(){return window[n.namespace][t]})},n.remove=function(t){var n=this;m(function(){return delete window[n.namespace][t]})},n.set=function(t,n){window[this.namespace][t]=n},t}(),A=/*#__PURE__*/function(){function t(t){this.namespace=void 0,this.namespace="vsly_cache_"+t}var n=t.prototype;return n.get=function(t){var n=this;return m(function(){var e=sessionStorage.getItem(n.namespace+"_"+t);if(e){var r=JSON.parse(e);return new S(r._value,r._addedAt)}})},n.remove=function(t){sessionStorage.removeItem(this.namespace+"_"+t)},n.set=function(t,n){sessionStorage.setItem(this.namespace+"_"+t,JSON.stringify(n))},t}(),P=/*#__PURE__*/function(t){function n(n,e){return t.call(this,new A(n),e)||this}return a(n,t),n}(I),T=/*#__PURE__*/function(t){function n(n,e){return t.call(this,new E(n),e)||this}return a(n,t),n}(I),x=function(t,n){void 0===n&&(n=8397271938200529);for(var e,r=3735928559^n,i=1103547991^n,o=0;o<t.length;o++)e=t.charCodeAt(o),r=Math.imul(r^e,2654435761),i=Math.imul(i^e,1597334677);return r=Math.imul(r^r>>>16,2246822507)^Math.imul(i^i>>>13,3266489909),""+(4294967296*(2097151&(i=Math.imul(i^i>>>16,2246822507)^Math.imul(r^r>>>13,3266489909)))+(r>>>0))};function C(t,n,e,r,i){void 0===e&&(e=10),void 0===r&&(r=!1),void 0===i&&(i="none");var a=t._USE_CASE,c=t._USE_CASE_VARIANT,u=t._USE_CASE_AUDIENCES,s=t._USE_CASE_VERSION,l=t._USE_CASE_GA_VARIANT,f=t._USE_CASE_GA;if(!_()&&!L()&&function(t){try{var n=location.pathname,e=new URL(t);if(location.search.includes("vsly-redirected-from"))return!1;if(!0===m(function(){return window.visually.flags["sdk-kill-advanced-redirect-checks"]}))return!0;var r=!1,i=decodeURIComponent(location.search);
112return e.searchParams.forEach(function(t,n){var e=decodeURIComponent(n+"="+t);i.includes(e)||(r=!0)}),!!((m(function(){return Array.from(e.searchParams.values()).length})||0)>0&&r)||n!==e.pathname}catch(t){return!1}}(n)&&function(t,n,e){var r="vsly-redirect-"+x(e._USE_CASE+"-"+e._USE_CASE_VARIANT+"-"+e._USE_CASE_VERSION+"-"+t);return"session"===n?"true"!==sessionStorage.getItem(r)&&(sessionStorage.setItem(r,"true"),!0):"user"!==n||"true"!==localStorage.getItem(r)&&(localStorage.setItem(r,"true"),!0)}(n,i,t)){g();var w=a+"-"+c,h={type:"USE_CASE",ts:d().valueOf(),payload:o({sid:m(function(){return window.loomi_ctx.session.id}),user:{anonymous_id:m(function(){return window.loomi_ctx.userId})},use_case:a,use_case_variant:c},s?{version:s}:{},u?{audiences:u}:{}),options:{gaName:m(function(){return p(f)}),gaVariant:m(function(){return p(l)})}};m(function(){R(a)&&(h.payload.clickId="redirect",h.options.isRedirect=!0)}),window.vsly_redirecting=!0,setTimeout(function(){try{g();var t=JSON.stringify(h),e=v(h),i=!w.includes(N),o=n;try{new URLSearchParams(location.search).forEach(function(t,n){(r||U(n))&&(o=O(o,n,t))})}catch(n){!function(){var t;y()&&(t=console).debug.apply(t,["loomi-editor"].concat([].slice.call(arguments)))}("e87",{redirectUrl:o,key:w,event:t,ex:n})}return o=O(o,"vsly-redirected-from",w),i&&(o=O(o,"vsly-redirected-event",e)),location.replace&&location.replace(o),Promise.resolve()}catch(t){return Promise.reject(t)}},e)}function g(){document.body&&(document.body.style.opacity=0)}}function O(t,n,e){try{var r=new URL(t);return r.searchParams.append(n,e),r.href}catch(n){return t+(t.includes("?")?"&":"?")+"key="+e}}function b(t){return{_USE_CASE:t.experienceId,_USE_CASE_VARIANT:t.variantId,_USE_CASE_VERSION:t.version,_USE_CASE_AUDIENCES:m(function(){return window.loomi_ctx.audiences.join("|")},""),_USE_CASE_GA:t.gaExperienceName,_USE_CASE_GA_VARIANT:t.gaVariantName}}var N="theme_test_redirect_back_to_main",U=function(t){return t.toLowerCase().startsWith("utm")};function L(){return m(function(){return window.Shopify.designMode},!1)}function k(){return m(function(){return window.Shopify.country})||m(function(){return window.visually.country})}var R=function(t){return window.loomi.conf.experiments.find(function(n){return n.name===t}).isRedirect},D="visually",M="widgets";window.IntersectionObserver&&new IntersectionObserver(function(t,n){t.forEach(function(t){if(t.isIntersecting){var e=t.target;(function(t){var n=t.getAttribute("lmw"),e=t.getAttribute("lmwv");if(n&&e){var r=n+e;return f(function(){return m(function(){return!!window[D][M][r]})&&m(function(){return!!window.preact})},50,500).then(function(){m(function(){return window[D][M][r]("#"+t.id)})}),!0}return!1})(e)&&n.unobserve(e)}})},{root:null,rootMargin:window.vslyDeferWidgetsMargin||"100px",threshold:.1});var j,J=function(t){return"main"===t.role},G=function(){return m(function(){return new URL(window.location.href)})};function V(){var t=m(function(){return window.loomi_ctx.cart});if(t)return t;var n=localStorage.getItem("loomi-cart");if(n)try{return JSON.parse(n)}catch(t){}}!function(t){t.CART_CHANGE="CART_CHANGE",t.LOYALTY_CHANGE="LOYALTY_CHANGE"}(j||(j={}));var F=function(){return window.loomi_ctx.session.id};function H(t){return JSON.parse(localStorage.getItem(t)||"[]")}function q(t,n,e,r){t=t||[],n=n||[];var i=m(function(){return n.filter(function(n){return!t.find(e(n))})})||[],o=[].concat(t,i).slice(0,25);return o.length>0&&localStorage.setItem(r,JSON.stringify(o)),o}var B,K="vsly_params_history",Y="vsly_visited_pages";!function(t){t.MOBILE="MOBILE",t.DESKTOP="DESKTOP"}(B||(B={}));var Q=function(){return edgetag("getUserId")};function W(){var t="vsly_edgetag";return g(function(){return Q()&&localStorage.setItem(t,Q()),!0}),m(Q)||localStorage.getItem(t)}var z="lmi_type",$="lmi_from",Z="lmi_class",X="lmi_utm_data",tt={utm_source:"source",utm_medium:"medium",utm_campaign:"campaign",utm_term:"term",utm_content:"content"},nt=function(t,n){void 0===n&&(n=3);for(var e=t,r=0;r<n;r++)try{var i=decodeURIComponent(e);if(i===e)break;e=i}catch(t){break}return e},et=function(t){void 0===t&&(t=window.location.search);var n={utm:{},lmi_params:{}};return m(function(){return new URLSearchParams(t)}
112).forEach(function(t,e){if(t){var r=tt[e],i=nt(t);r?n.utm[r]=i:function(t){return m(function(){return[Z,$,z].includes(t)})}(e)&&(n.lmi_params[e]=i)}}),n};function rt(){var t,n,e,r=(t=function(t){if(function(t){return!t||"{}"===JSON.stringify(t)}(t))return null;var n={};return t.campaign&&(n.campaign=t.campaign),t.medium&&(n.medium=t.medium),t.source&&(n.source=t.source),t.term&&(n.term=t.term),t.content&&(n.content=t.content),n}(m(function(){return et().utm})),n=[],null!=(e=localStorage.getItem(X))&&(n=[].concat(JSON.parse(e)).slice(0,20)),t&&(t.ts=d(),n=[t].concat(n)),n);return localStorage.setItem(X,JSON.stringify(r)),r}function it(){var t=m(function(){return rt()},[]);if(!Array.isArray(t)||0===t.length)return"";var n=t.filter(function(t){return t.campaign});return 0===n.length?"":m(function(){return n.reduce(function(t,n){return n.ts>t.ts?n:t},n[0]).campaign},"")||""}var ot=function(){try{var t=function(){if(!ut)return Promise.resolve(new Promise(function(t,n){var e=indexedDB.open(at,1);e.onerror=function(t){n("IDB e:o"+t.target.error)},e.onsuccess=function(n){t(ut=n.target.result)},e.onupgradeneeded=function(t){t.target.result.createObjectStore(ct,{keyPath:"id"}).createIndex("id","id",{unique:!0})}})).then(function(){})}();return Promise.resolve(t&&t.then?t.then(function(){return ut}):ut)}catch(t){return Promise.reject(t)}},at="VISUALLY_IO",ct=at,ut=null;function st(){var t=new URL(window.location.href);return t.protocol+"//"+t.hostname+t.pathname}var lt="__eventn_id";function dt(){var t=function(t){var n=function(t){try{var n=w(t),e=mt(n);if(n)return{id:e.id,firstSeen:e.firstSeen||ht()}}catch(t){}}(t),e=function(t){var n=window.localStorage.getItem(t),e=mt(n);if(n)return{id:e.id,firstSeen:e.firstSeen||ht()}}(t);if(!n&&!e){var r=function(){var t=Math.random().toString(36).substring(2,12),n=ht();return{newId:t,newEpoch:n,value:wt(t,n)}}(),i=r.newId,o=r.newEpoch;return ft(i,o,t),{id:i,firstSeen:o}}if(!e&&n)return ft(n.id,n.firstSeen,t),n;if(!n&&e)return ft(e.id,e.firstSeen,t),e;var a=Math.min(n.firstSeen,e.firstSeen),c=n.firstSeen<=e.firstSeen?n.id:e.id;return vt(n,e)&&(c=n.id<=e.id?n.id:e.id),e.id==n.id&&e.firstSeen==n.firstSeen||ft(c,a,t),{id:c,firstSeen:a}}(lt),n=t.firstSeen;return{id:t.id,firstSession:gt(n),firstSeen:n}}function ft(t,n,e){void 0===e&&(e=lt);var r=wt(t,n);m(function(){return localStorage.setItem(e,r)}),function(t,n,e,r){m(function(){return window.loomi_ctx.cc})&&!m(function(){return(m(function(){return window.Shopify.customerPrivacy.analyticsProcessingAllowed})||m(function(){return window.Shopify.customerPrivacy.userCanBeTracked})||m(function(){return window.visually.analyticsProcessingAllowed}))()})||(document.cookie=encodeURIComponent(t)+"="+n+"; path=/; expires=Fri, 31 Dec 9999 23:59:59 GMT"+(e?"; domain="+e:"")+(r?"; secure":""))}(e,r,document.location.hostname.replace("www.","").replace("checkout.",""),"http:"!==document.location.protocol)}var vt=function(t,n){return t.firstSeen===n.firstSeen&&t.id!==n.id};function mt(t){return{firstSeen:m(function(){return parseInt(t.split(".")[1])},null),id:m(function(){return t.split(".")[0]})}}function wt(t,n){return t+"."+n}function ht(){return Math.trunc((new Date).getTime()/1e3)}var gt=function(t){return(new Date).getTime()/1e3-t<=7200},pt="vsly_vid",_t="lmi_debug";function yt(t){return m(function(){return new URL(window.location.href).searchParams.get(t)||void 0})}function St(){try{var t=m(function(){return window.vslyAntiFlickerReveal},void 0);t&&t()}catch(t){}}new P("p",18e5),new T("recs_cache",300001),new T("ai_recs_cache",300001);var It,Et=new Map;function At(t){var n="/api/allocator/web/public/v2/allocate";return Tt(t)&&(n="/allocate"),{cfgUrl:""+Pt(t)+n}}function Pt(t){return Tt(t)?"http://localhost:8080":"https://"+function(t){return void 0===t&&(t=window.loomi_ctx.env),t===e.STAGE?"sdk.loomi-stg.xyz":"live.visually-io.com"}()}function Tt(t){return[e.TEST,e.LOCAL].includes(t)}!function(t){t.NONE="none",t.YOTPO="yotpo"}(It||(It={}));var xt="vsly_session";function Ct(t){return nt((t||"").replace("+"," "))}function Ot(){var t=window.loomi_ctx.storeAlias,n={id:x(t+window.loomi_ctx.userId+d()+it()+Lt()),utm_campaign:it(),last_interaction:new Date,landing_page:m(function(){return location.href},""),start_at:new Date};return bt(n),n}function bt(t){var n=JSON.stringify(t);localStorage.setItem(xt,n),window.loomi_ctx.session=t}function Nt(){var t=function(){window.loomi_ctx=window.loomi_ctx||{};var t=window.loomi_ctx.session||m(function(){var t=JSON.parse(localStorage.getItem(xt));return t.last_interaction=new Date(t.last_interaction),t.start_at=new Date(t.start_at),t})||Ot();return function(t){var n=new Date,e=t.last_interaction;return(n.valueOf()-e.valueOf())/6e4>30||Ct(it())!==Ct(t.utm_campaign)||t.last_interaction.getDate()!==n.getDate()}(t)&&(t=Ot()),window.loomi_ctx.session=t,t}();t.last_interaction=new Date,bt(t)}var Ut,Lt=function(){return Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15)};function kt(t){return t.startsWith("https://")?t.substring(8):t}function Rt(t){try{return decodeURIComponent(t.replace(/\+/g," "))}catch(t){return""}}!function(t){t.SIGNUP="SIGNUP",t.ADD_TO_CART="ADD_TO_CART",t.CHANGE_QTY="CHANGE_QTY",t.REMOVE_FROM_CART="REMOVE_FROM_CART",t.PAGE_LOAD="PAGE_LOAD",t.CLICK="CLICK",t.LOGIN="LOGIN",t.LOGOUT="LOGOUT",t.TIME_SPENT="TIME_SPENT",t.USE_CASE="USE_CASE"}(Ut||(Ut={}));var Dt=function(t){return Promise.resolve(function(t){try{return Promise.resolve(function(n,r){try{var i=(c=window.loomi_ctx.jitsuKey,u=(o=window.loomi_ctx.env,a={trackingHost:"https://live.visually-io.com"},o===e.TEST&&(a.trackingHost="http://localhost:8088"),o===e.STAGE&&(a.trackingHost="https://sdk.loomi-stg.xyz"),a).trackingHost,Promise.resolve(fetch(u+"/api/s?token="+c+"&bulk=1",{headers:{"content-type":"text/plain"},body:JSON.stringify(t.eventPayload),method:"POST",mode:"cors",credentials:"omit",keepalive:!0})).then(function(t){return t.ok}))}catch(t){return r(t)}var o,a,c,u;return i&&i.then?i.then(void 0,r):i}(0,function(t){return console.error("vsly: Failed to send event",t),!1}))}catch(t){return Promise.reject(t)}}(t)).then(function(n){return Promise.resolve(function(t){try{try{var n=t.eventPayload,e=n.bulk[0],r=window.loomi_ctx.env,i=n.shared,o=v({experienceId:e.use_case,variantId:e.use_case_variant,storeAlias:i.alias,anonymousId:i.anonymous_id,version:e.version}),a=new URL(At(r).cfgUrl.replace("/allocate","/match"));a.searchParams.append("q",o),fetch(a.toString())}catch(e){console.error("vsly: Failed to persist allocation",e)}return Promise.resolve()}catch(e){return Promise.reject(e)}}(t)).then(function(){return n})})},Mt="vsly_analytics_queue";function jt(t,n){try{var e=window.loomi_ctx,r=e.storeAlias,i=e.jitsuKey,o=et(),a={id:Date.now()+"-"+Math.random().toString(36).substring(2,9),timestamp:Date.now(),eventPayload:{bulk:[{url:location.href,doc_path:location.pathname,doc_search:location.search,sid:e.session.id,sid_start:e.session.start_at,utm:o.utm,lmi_params:o.lmi_params,event_type:"USE_CASE",use_case:t._USE_CASE,use_case_variant:t._USE_CASE_VARIANT,version:t._USE_CASE_VERSION||1}],shared:{anonymous_id:n.id,user_agent:navigator.userAgent,utc_time:(new Date).toISOString(),local_tz_offset:(new Date).getTimezoneOffset(),doc_host:location.host,alias:r,api_key:i}},retries:0},c=Jt();c.push(a),Gt(c)}catch(t){console.error("vsly: Failed to queue analytics event",t)}}function Jt(){try{var t=localStorage.getItem(Mt);if(!t)return[];var n=JSON.parse(t);return Array.isArray(n)?n:[]}catch(t){return console.error("vsly: Failed to read analytics queue",t),[]}}function Gt(t){try{localStorage.setItem(Mt,JSON.stringify(t))}catch(t){console.error("vsly: Failed to save analytics queue",t)}}var Vt=function(t,n){try{localStorage.setItem(t,JSON.stringify({variant:n.experiment.variant,version:n.experiment.version||0}))}catch(t){}},Ft=function(t,n){var e=null;try{var r=localStorage.getItem(t);if(r){var i,o=JSON.parse(r);if(o&&"object"==typeof o&&"variant"in o){i=o;var a=n.find(function(t){return t.experiment.variant===i.variant});a&&(a.experiment.version||0)===(i.version||0)&&(e=a)}}}catch(t){}return e},Ht=function(t){return"vsly_redirect_test_"+t[0].experiment.name},qt=function(t,n){if(t){var e=t.experiment;n.some(function(t){var n=t.experiment;return n.variant===e.variant&&n.version===e.version})||(t=!1)}if(!t)for(var r,i=100*Math.random(),o=0,a=function(t){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(n)return(n=n.call(t)).next.bind(n);if(Array.isArray(t)||(n=function(t,n){if(t){if("string"==typeof t)return u(t,n);var e=Object.prototype.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?u(t,n):void 0}}(t))){n&&(t=n);var e=0;return function(){return e>=t.length?{done:!0}:{done:!1,value:t[e++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(n);!(r=a()).done;){var c=r.value;if(i<=(o+=c.targeting.chance)){t=c;break}}return t},Bt=function(t){void 0===t&&(t=!0);var n=window.loomi_ctx.consent;n.allowed=t,n.fin||(n.fin=Kt())},Kt=function(){return(new Date).getTime()},Yt=function(){return window.Shopify.customerPrivacy},Qt=["AT","BE","BG","HR","CY","CZ","DK","EE","FI","FR","DE","GR","HU","IE","IT","LV","LT","LU","MT","NL","PL","PT","RO","SK","SI","ES","SE","NO","IS","LI"],Wt=function(t){void 0===t&&(t=!0);var n=window.loomi_ctx.consent;n.allowed=t,n.fin||(n.fin=zt())},zt=function(){return(new Date).getTime()},$t=function(){return window.Shopify.customerPrivacy},Zt=function(){return Promise.resolve()};function Xt(){return m(Nt),dt(),function(t){void 0===t&&(t=window.loomi_ctx.embeddedTests);try{if(!t)return;if(0===t.length)return;var n=t.filter(function(t){return t.experiment.isThemeTest});n.length>0&&function(t){var n=Ht(t),e=Ft(n,t);
112if((e=qt(e,t))&&e.experiment){Vt(n,e);var r=e.experiment,i=m(function(){return r.code.find(function(t){return"themeTest"===t.kind}).value.targetThemeId})||0,o=b({experienceId:r.name,variantId:r.variant,version:r.version,gaExperienceName:r.gaName,gaVariantName:r.gaVariant});jt(o,dt()),function(t,n,e){void 0===e&&(e=10),m(function(){return window.visually.flags["kill-theme-testing"]},!1)||function(t){if(n="vsly_disableThemeTest",(e=m(function(){return G().searchParams.has("disableThemeTest")})||!!sessionStorage.getItem(n))&&sessionStorage.setItem(n,"1"),L()||e)return!0;var n,e;m(function(){try{return Promise.resolve(f(function(){return!!document&&!!document.head},10,2e3)).then(function(){var t=document.head||document.getElementsByTagName("head")[0];if(!t.querySelector("#"+s)){var n=document.createElement("style");n.id=s,n.appendChild(document.createTextNode("#preview-bar-iframe,#PBarNextFrameWrapper,#PBarNextFrame { display: none !important;}")),t.appendChild(n)}})}catch(t){return Promise.reject(t)}});var r=window.loomi_ctx.themeId||m(function(){return window.Shopify.theme.id}),i=window.loomi_ctx.role||m(function(){return window.Shopify.theme.role}),o=!J({id:r,role:i}),a=m(function(){return!window.loomi_ctx.testedThemes.includes(r)});return!(!o||!a)||function(t,n){return t.id===n||J(t)&&!n}({id:r,role:i},t)}(n)||(function(t,n){var e=t._USE_CASE!==N;(function(t){return!!t})(n)&&e&&[sessionStorage,localStorage].forEach(function(t){return t.setItem("vslyThemeTest","1")})}(t,n),C(t,function(t){var n=G();return n.searchParams.append("preview_theme_id",""+(t||"")),n}(n).href,e,!0,"session"))}(o,i)}}(n);var e=t.filter(function(t){return!t.experiment.isThemeTest});e.length>0&&function(t){var n=t.filter(function(t){return function(t){if(!t)return!0;try{var n=t.match(/UrlTarget\(([^)]+)\)/);if(!n)return!1;var e=function(t){try{var n=t.match(/^"([^"]*)",\s*"([^"]*)",\s*(true|false)$/);return n?{value:n[1],op:n[2],includeQueryParam:"true"===n[3]}:null}catch(t){return null}}(n[1]);return!!e&&function(t,n,e){var r,i=window.location.search||"",o=window.location.href||"",a=(r=function(t){var n=t.startsWith("/")?t:"/"+t,e=n.split("/");if(e.length<2)return n;var r=e[1],i=!1;return r.length>0&&r.length<=7&&(2===r.length||r.length>2&&"-"===r[2])&&(i=!0),i?"/"+e.slice(2).join("/"):n}(window.location.pathname),["STORY_IL","MAYVEN_GLOBAL","JDSPORT_IL"].includes(window.loomi_ctx.storeAlias)?r.toLowerCase():r),c=function(t){var n=kt(t),e=n.indexOf("?");return-1!==e?{hostPath:n.substring(0,e),rawQuery:n.substring(e+1)}:{hostPath:n,rawQuery:""}}(t),u=c.rawQuery,s=c.hostPath.toLowerCase(),l=kt(o.split("?")[0]).toLowerCase(),d="",f=s;if(d=(new URL(o).host+a).toLowerCase(),e){var v=i?Rt(i.substring(1)):"";if(v&&(l+="?"+v,d+="?"+v),u){var m=Rt(u);m&&(f+="?"+m)}}return function(t,n,e,r){switch(r){case"contains":return t.includes(e)||n.includes(e);case"matches":try{var i=new RegExp(e);return i.test(t)||i.test(n)}catch(t){return!1}case"==":return t===e||n===e;case"!=":return t===n?t!==e:n!==e;default:return!1}}(l,d,f,n)}(e.value,e.op,e.includeQueryParam)}catch(t){return console.error("vsly: Failed to evaluate targeting formula",t),!1}}(t.targeting.formula)});if(0!==n.length){var e=Ht(n),r=Ft(e,n);if((r=qt(r,n))&&r.experiment){Vt(e,r);var i=r.experiment,o=b({experienceId:i.name,variantId:i.variant,version:i.version,gaExperienceName:i.gaName,gaVariantName:i.gaVariant});jt(o,dt());var a=m(function(){return i.code.find(function(t){return"pageRedirect"===t.kind}).value});a&&C(o,a.destUrl,a.redirectAfter||1,a.retainQueryParams,a.stickinessMode)}}}(e)}catch(t){console.error("vsly ETT",t)}}(),window.vsly_redirecting}var tn=function(){return window.loomi_ctx.blockingConcent},nn=function(t){return console.error(t)};(function(){try{var t,n=function(n){if(t)return n;var r,u;(u=Jt()).length>0&&Promise.allSettled(u.map(Dt)).then(function(t){Gt(u.filter(function(n,e){var r=t[e];return("fulfilled"!==r.status||!r.value)&&(n.retries++,function(t){return!(Date.now()-t.timestamp>18e5||t.retries>3)}(n))}))}).catch(function(t){console.error("vsly: Failed to process analytics queue",t)}),(r=function(){var t=k();return!!t&&!Qt.includes(t)},new Promise(function(t,n){var e,i=(e=window.loomi_ctx).consent||(e.consent={});i.init=zt(),(k()?Zt():f(k,50,200)).then(function(){r()&&(Wt(),t())}),(m(function(){return $t().analyticsProcessingAllowed})?Zt():f(function(){return m(function(){return $t().analyticsProcessingAllowed})},50,200)).then(function(){var e=$t().analyticsProcessingAllowed()||r();Wt(e),e?t():n()}),i.ccListener||(document.addEventListener("visitorConsentCollected",function(e){var i=e.detail.analyticsAllowed||r();Wt(i),i?t():n()}),i.ccListener=!0)})).catch();var s=function(t,n){try{return m(Nt),m(function(){var t=window.loomi_ctx.ctags||[];0===t.length?window.loomi_ctx.ctags=JSON.parse(localStorage.getItem(l)||"[]"):localStorage.setItem(l,JSON.stringify(t)),m(function(){var t=JSON.parse(localStorage.getItem("vsl
112yCustomCtags")||"[]");t&&t.length>0&&(window.loomi_ctx.ctags=[].concat(window.loomi_ctx.ctags||[],t))})}),Promise.resolve(function(t,n){try{var e=dt(),r=function(t,n){var e=function(){var t=m(function(){return V().items.map(function(t){return{variantId:t.variant_id||0,quantity:t.quantity||0,productId:t.product_id||0,price:t.price||0}})})||[],n={path:window.location.pathname,host:window.location.hostname};m(function(){return t.length})>0&&(n.cartItems=t);var e=m(function(){return V().token});e&&(n.cartToken=e);var r=rt();r&&(n.trafficSources=r),n.productsSeenInSession=function(){var t=m(function(){return window.loomi_ctx.sessionProducts});if(t)return t;var n=localStorage.getItem("loomi_session_products"),e=n?JSON.parse(n):[];return m(function(){return e.filter(function(t){return""!=t.handle}).reverse().slice(0,20)})}(),n.isCustomer=!!h(),n.query=window.location.search||"",n.hash=window.location.hash||"";var i,o=(void 0===i&&(i=V()),m(function(){return(("spa"==window.vslyIntegrationType?m(function(){return i.attributes.map(function(t){return t.key})}):m(function(){return Object.keys(i.attributes)}))||[]).filter(function(t){return!t.startsWith("vsly")&&t.length<20}).slice(0,50)})||[]);return o&&(n.cartAttributes=o),n}();e.storeAlias=t;var r=h();r&&(e.clientId=r),e.anonymousId=n.id,e.firstSeen=n.firstSeen,e.firstSession=n.firstSession,e.gaId=m(function(){return document.cookie.split(";").map(function(t){return t.split("=")}).find(function(t){return"_ga"==t[0].trim()})[1]},"");var i=window.loomi_ctx;e.customerTags=m(function(){return i.ctags.slice(0,20)}),e.landingPage=m(function(){return i.session.landing_page}),e.hasSubs=!!m(function(){return(t=V(),m(function(){return t.items.map(function(t){return m(function(){return t.selling_plan_allocation.selling_plan.name.toLowerCase()})}).filter(function(t){return!!t})},[])).length>0;var t});var a=W();a&&(e.edgetag=a);var c=function(){try{var t=m(function(){return new URL(window.location.href)});if(m(function(){return t.searchParams.get("forceOverride")})){var n=m(function(){return t.searchParams.get("targeting")});if(n)return JSON.parse(decodeURIComponent(escape(atob(n))))}}catch(t){!function(){var t;y()&&(t=console).error.apply(t,["loomi-editor"].concat([].slice.call(arguments)))}("preview overrides",t)}return{}}(),u=H(K),s=function(){var t,n=H(Y);function e(t){return new Date(t.ts).valueOf()}function r(){var t=new URL(location.href);return["vslyvid","vslywgid","vslysid","lmi_preview","targeting","vsly_vid"].forEach(function(n){return t.searchParams.delete(n)}),t.search||""}return(t=Y,Promise.resolve(ot()).then(function(n){return new Promise(function(e,r){var i=n.transaction([ct],"readonly").objectStore(ct).get(t);i.onerror=function(t){r("IDB e:r"+t.target.error)},i.onsuccess=function(t){e(t.target.result)}})})).then(function(t){var i,o={ts:new Date,name:st(),search:m(r,"")},a=!!o.search,c=(m(function(){return t.visits})||n||[]).filter(function(t){return!a||!(t.name===o.name&&!t.search)}).filter(function(t){return!(t.name===o.name&&(o.search===t.search||a&&!t.search))}).sort(function(t,n){return e(n)-e(t)}).slice(0,500);c.unshift(o),(i={id:Y,visits:c},Promise.resolve(ot()).then(function(t){return new Promise(function(n,e){var r=t.transaction([ct],"readwrite").objectStore(ct).put(i);r.onerror=function(t){e("IDB e:w"+t.target.error)},r.onsuccess=function(){n("")}})})).catch()}).catch(),q([{ts:d(),name:st()}],n,function(t){return function(n){return t.name===n.name}},Y)}(),l=JSON.parse(localStorage.getItem("loomi_purchased_products")||"[]"),f=o({deviceKind:m(function(){return window.loomi_ctx.deviceOverride},void 0)},{}),v=!!m(function(){return navigator.userAgent.includes("Macintosh")&&"ontouchend"in document}),g=m(function(){return window.innerWidth},0),p=m(function(){return window.vslyDesktopBreakpoint})||960,_=m(function(){return w("cart_currency")})||m(function(){return V().currency})||"",S=m(function(){return i.current_product});if(S){e.oos=m(function(){return S.oos}),e.price=m(function(){return S.price}),e.iq=m(function(){return S.variants.reduce(function(t,n){return n.iq+t},0)}),e.productId=m(function(){var t=function(){var t={},n=window.loomi_ctx||{};n.productId&&(t.productId=n.productId);var e=m(function(){var t=new URL(location.href).searchParams,n="variant";return t.has(n)&&function(t){var n=Number(t),e=isNaN(n)?Number((""+t).replace(/[^\d.]+/g,""))||void 0:n;if(void 0!==e&&0!==e)return""+e}(t.get(n))})||n.variantId;return e&&(t.variantId=e),t}().productId;return Number.isFinite(Number(t))?t.toString():""},"");var I=1*i.variantId;Number.isFinite(I)&&(e.vid=I)}var E=m(F);"spa"==window.vslyIntegrationType&&(e.spa=!0);var A=m(function(){return i.ttl});return o({cartCurrency:_},e,{queryHistory:u,isIPadPro:v,windowInnerWidth:g,desktopBreakpoint:p,visitedPages:s,ttl:Number.isFinite(A)?A:0,purchasedLineItems:l,sid:E},f||{},c||{})}(t,e);return Promise.resolve(function(t,n){try{var e=v(n),r=(u=At(t).cfgUrl,s=function(){[i,pt].map(function(t){var n=yt(t);n&&sessionStorage.setItem(t,n)});var t=sessionStorage.getItem(i),n=sessionStorage.getItem(pt);return{previewKey:t,debugAllocator:yt(_t),previewVariantId:n}}(),l=s.previewKey,d=s.debugAllocator,f=s.previewVariantId,m=new URL(u),l&&m.searchParams.append(i,l),d&&m.searchParams.append(_t,"true"),f&&m.searchParams.append(pt,f),m);r.searchParams.append("q",e);var o=x(r.href),a=window.vslyNativeFetch||window.fetch,c=Et.has(o)?Et.get(o):a(r.href).finally(function(){return Et.delete(o)});return Et.set(o,c),Promise.resolve(c).then(function(t){if(t.ok)return Promise.resolve(t.json());throw new Error("failed to load config: "+t.statusText)})}catch(t){return Promise.reject(t)}var u,s,l,d,f,m}(n,r)).then(function(t){return m(function(){window.loomi_ctx.audiences=t.audiences,m(function(){return t.audiences&&localStorage.setItem("vsl
112y_audiences",JSON.stringify(t.audiences))}),window.loomi_ctx.testedThemes=t.testedThemes||[]}),function(t){var n=t.currentVariant;window.loomi_ctx=o({},window.loomi_ctx||{});var e=m(function(){return n.pid});e&&(window.loomi_ctx.productId=""+e);var r=m(function(){return n.vid});r&&(window.loomi_ctx.variantId=""+r);var i=m(function(){return n.price});i&&(window.loomi_ctx.variantPrice=i);var a=m(function(){return n.meta});a&&(window.loomi_ctx.productMeta=""+a)}(t),q(t.queryHistory,r.queryHistory,function(t){return function(n){return n.v===t.v&&n.k===t.k}},K),function(t){var n;(n=t.experiments)&&n.findIndex(function(t){var n=m(function(){return t.clientTargetingFormula.toString()},"")||"";return n.includes("CartItemHasTag")||n.includes("CartItemHasCollection")||n.includes("AllCartItemsHasTag")})>-1||!0===m(function(){return t.flags["sdk-enable-cart-enrichment"]},!1)&&(t.flags["sdk-enable-cart-enrichment"]=!1)}(t),{configuration:t,tracking:e}})}catch(t){return Promise.reject(t)}}(t,n))}catch(t){return Promise.reject(t)}}(a,c),g=new Promise(function(t){"function"==typeof window.loomi_ctx.run?t():window.addEventListener("visually_loaded",function(){return t()},{once:!0})});return Promise.all([s,g]).then(function(t){var n=t[0],r=n.configuration,i=n.tracking;(function(t){return(n="vsly-a",r=function(t){return t==e.STAGE?"https://sdk.loomi-stg.xyz/":"https://assets.visually.io/"}(t)+"v/visually-a.js?cb="+window.loomi_ctx.sdk_version,i={defer:!0},void 0===i&&(i={async:!1,defer:!1}),new Promise(function(t,e){var o=document.getElementById(n);o?t(document.getElementById(n)):((o=document.createElement("script")).id=n,o.src=r,o.async=i.async||!1,o.defer=i.defer||!1,o.setAttribute("data-em-disable",""),o.onload=function(){return t(o)},o.onerror=function(){return e(new Error("Failed to load "+r))},document.head.appendChild(o))})).catch();var n,r,i})(c),window.loomi_ctx.run(r,i)}).catch(nn).finally(St)};if(window.vsly_init=!0,window.vslyIntegrationType="static",function(){if(m(function(){return window.visually_io_editor}))return!0;var t=m(function(){return window.loomi_ctx.ttl});return!("number"!=typeof t||!Number.isFinite(t)||t<=0)&&t<Math.floor(Date.now()/1e3)}())return console.log("sdk blocked"),Promise.resolve();window.loomi_ctx.sdk_version="0.12.135";var r=window.loomi_ctx,a=r.storeAlias,c=r.env;if(!tn()&&Xt())return Promise.resolve();var u=function(){if(tn()){var n=function(n){return t?n:window.loomi_ctx.consent.allowed?void(Xt()&&(t=1)):(St(),void(t=1))},e=function(t,n){try{var e=Promise.resolve((console.log("consent api init"),new Promise(function(t,n){var e,r=(e=window.loomi_ctx).consent||(e.consent={});r.init=Kt(),(m(function(){return Yt().analyticsProcessingAllowed})?Promise.resolve():f(function(){return m(function(){return Yt().analyticsProcessingAllowed})},50,200)).then(function(){var e=window.Shopify.customerPrivacy.analyticsProcessingAllowed();console.log("consent api",e),Bt(e),e?t():n()}),r.ccListener||(document.addEventListener("visitorConsentCollected",function(){var e=window.Shopify.customerPrivacy.analyticsProcessingAllowed();console.log("visitorConsentCollected",e),Bt(e),e?t():n()}),r.ccListener=!0)}))).then(function(){})}catch(t){return n()}return e&&e.then?e.then(void 0,n):e}(0,function(){St(),t=1});return e&&e.then?e.then(n):n(e)}}();return Promise.resolve(u&&u.then?u.then(n):n(u))}catch(t){return Promise.reject(t)}})().then(function(){return console.log("vsly sdk with embed init")})}(); 113 114 })() 115</script>
115 116<link href="https://assets.visually.io/vsly/lib/visually.js?cb=1eff4ae4" rel="preload" as="script" data-em-disable>
117<script rel="prefetch" type="text/javascript" src="https://assets.visually.io/vsly/lib/visually.js?cb=1eff4ae4" data-em-disable></script>
117 118<link href="https://assets.visually.io/widgets/vsly-preact.min.js" rel="preload" as="script" data-em-disable>
119<script data-vsly="preact2" type="text/javascript" src="https://assets.visually.io/widgets/vsly-preact.min.js" data-em-disable></script>
119 120<!--LOOMI SDK--> 121 122 123<!-- discount format fix -->
124<script> 125 (function() { 126 const params = new URLSearchParams(window.location.search); 127 const discount = params.get('discount'); 128 if (discount) { 129 document.cookie = `discount_code=${encodeURIComponent(discount)}; path=/; max-age=${60 * 60 * 24 * 7}`; 130 fetch(`/discount/${encodeURIComponent(discount)}`, { method: 'GET', credentials: 'same-origin' }); 131 } 132 })(); 133</script>
133 134 135 136 137 138 139 140 141 142
142<script> 143 if (window.location.pathname.startsWith('/a/returns')) { 144 window.location.replace('https://account.qynda.com'); 145 } 146 </script>
146 147 148<meta charset="utf-8"> 149 <meta name="viewport" content="width=device-width, initial-scale=1.0, height=device-height, minimum-scale=1.0, maximum-scale=5.0"> 150 151 <title>QYNDA GIFT Card</title><meta name="description" content="Give the gift of choice with a QYNDA Digital Gift Card. Whether it's for a birthday, celebration, thank you, or just because, let them discover something they'll truly love from our curated collection. Your digital gift card will be delivered via email within a few hours of purchase. Simply forward the email to your re"><link rel="canonical" href="https://qynda.com/products/qynda-gift-card"><link rel="shortcut icon" href="//qynda.com/cdn/shop/files/cropped-Qynda_Logo_Simbol_B-e1674736793607.png?v=1737861232&width=96"> 152 <link rel="apple-touch-icon" href="//qynda.com/cdn/shop/files/cropped-Qynda_Logo_Simbol_B-e1674736793607.png?v=1737861232&width=180"><link rel="preconnect" href="https://fonts.shopifycdn.com" crossorigin><link rel="preload" href="//qynda.com/cdn/fonts/instrument_sans/instrumentsans_n4.db86542ae5e1596dbdb28c279ae6c2086c4c5bfa.woff2" as="font" type="font/woff2" crossorigin><link rel="preload" href="//qynda.com/cdn/fonts/nunito/nunito_n4.fc49103dc396b42cae9460289072d384b6c6eb63.woff2" as="font" type="font/woff2" crossorigin><meta property="og:type" content="product"> 153 <meta property="og:title" content="QYNDA GIFT Card"> 154 <meta property="product:price:amount" content="100.00"> 155 <meta property="product:price:currency" content="USD"> 156 <meta property="product:availability" content="in stock"><meta property="og:image" content="http://qynda.com/cdn/shop/files/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353&width=2048"> 157 <meta property="og:image:secure_url" content="https://qynda.com/cdn/shop/files/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353&width=2048"> 158 <meta property="og:image:width" content="1200"> 159 <meta property="og:image:height" content="1200"><meta property="og:description" content="Give the gift of choice with a QYNDA Digital Gift Card. Whether it's for a birthday, celebration, thank you, or just because, let them discover something they'll truly love from our curated collection. Your digital gift card will be delivered via email within a few hours of purchase. Simply forward the email to your re"><meta property="og:url" content="https://qynda.com/products/qynda-gift-card"> 160<meta property="og:site_name" content="QYNDA"><meta name="twitter:card" content="summary"><meta name="twitter:title" content="QYNDA GIFT Card"> 161 <meta name="twitter:description" content="Give the gift of choice with a QYNDA Digital Gift Card. Whether it's for a birthday, celebration, thank you, or just because, let them discover something they'll truly love from our curated collection. 162Your digital gift card will be delivered via email within a few hours of purchase. Simply forward the email to your recipient or print it for a personal touch. 163 164Delivered by email within a few hours 165Redeemable online at QYNDA 166No expiration date 167Available in multiple options 168"><meta name="twitter:image" content="https://qynda.com/cdn/shop/files/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?crop=center&height=1200&v=1787564353&width=1200"> 169 <meta name="twitter:image:alt" content="">
169<script type="application/ld+json">{"@context":"http:\/\/schema.org\/","@id":"\/products\/qynda-gift-card#product","@type":"ProductGroup","brand":{"@type":"Brand","name":"QYNDA"},"category":"Gift Cards","description":"Give the gift of choice with a QYNDA Digital Gift Card. Whether it's for a birthday, celebration, thank you, or just because, let them discover something they'll truly love from our curated collection.\nYour digital gift card will be delivered via email within a few hours of purchase. Simply forward the email to your recipient or print it for a personal touch.\n\nDelivered by email within a few hours\nRedeemable online at QYNDA\nNo expiration date\nAvailable in multiple options\n","hasVariant":[{"@id":"\/products\/qynda-gift-card?variant=54370783428881#variant","@type":"Product","image":"https:\/\/qynda.com\/cdn\/shop\/files\/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353\u0026width=1920","name":"QYNDA GIFT Card - $100","offers":{"@id":"\/products\/qynda-gift-card?variant=54370783428881#offer","@type":"Offer","availability":"http:\/\/schema.org\/InStock","price":"100.00","priceCurrency":"USD","url":"https:\/\/qynda.com\/products\/qynda-gift-card?variant=54370783428881"}},{"@id":"\/products\/qynda-gift-card?variant=54370507161873#variant","@type":"Product","image":"https:\/\/qynda.com\/cdn\/shop\/files\/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353\u0026width=1920","name":"QYNDA GIFT Card - $150","offers":{"@id":"\/products\/qynda-gift-card?variant=54370507161873#offer","@type":"Offer","availability":"http:\/\/schema.org\/InStock","price":"150.00","priceCurrency":"USD","url":"https:\/\/qynda.com\/products\/qynda-gift-card?variant=54370507161873"}},{"@id":"\/products\/qynda-gift-card?variant=54370507194641#variant","@type":"Product","image":"https:\/\/qynda.com\/cdn\/shop\/files\/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353\u0026width=1920","name":"QYNDA GIFT Card - $200","offers":{"@id":"\/products\/qynda-gift-card?variant=54370507194641#offer","@type":"Offer","availability":"http:\/\/schema.org\/InStock","price":"200.00","priceCurrency":"USD","url":"https:\/\/qynda.com\/products\/qynda-gift-card?variant=54370507194641"}},{"@id":"\/products\/qynda-gift-card?variant=54370507227409#variant","@type":"Product","image":"https:\/\/qynda.com\/cdn\/shop\/files\/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353\u0026width=1920","name":"QYNDA GIFT Card - $250","offers":{"@id":"\/products\/qynda-gift-card?variant=54370507227409#offer","@type":"Offer","availability":"http:\/\/schema.org\/InStock","price":"250.00","priceCurrency":"USD","url":"https:\/\/qynda.com\/products\/qynda-gift-card?variant=54370507227409"}},{"@id":"\/products\/qynda-gift-card?variant=54392469586193#variant","@type":"Product","image":"https:\/\/qynda.com\/cdn\/shop\/files\/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353\u0026width=1920","name":"QYNDA GIFT Card - $300","offers":{"@id":"\/products\/qynda-gift-card?variant=54392469586193#offer","@type":"Offer","availability":"http:\/\/schema.org\/InStock","price":"300.00","priceCurrency":"USD","url":"https:\/\/qynda.com\/products\/qynda-gift-card?variant=54392469586193"}}],"name":"QYNDA GIFT Card","productGroupID":"11184018325777","url":"https:\/\/qynda.com\/products\/qynda-gift-card"}</script>
169<script type="application/ld+json"> 170 { 171 "@context": "https://schema.org", 172 "@type": "BreadcrumbList", 173 "itemListElement": [{ 174 "@type": "ListItem", 175 "position": 1, 176 "name": "Home", 177 "item": "https://qynda.com" 178 },{ 179 "@type": "ListItem", 180 "position": 2, 181 "name": "QYNDA GIFT Card", 182 "item": "https://qynda.com/products/qynda-gift-card" 183 }] 184 } 185</script>
185<style>/* Typography (heading) */ 186 @font-face { 187 font-family: "Instrument Sans"; 188 font-weight: 400; 189 font-style: normal; 190 font-display: fallback; 191 src: url("//qynda.com/cdn/fonts/instrument_sans/instrumentsans_n4.db86542ae5e1596dbdb28c279ae6c2086c4c5bfa.woff2") format("woff2"), 192 url("//qynda.com/cdn/fonts/instrument_sans/instrumentsans_n4.510f1b081e58d08c30978f465518799851ef6d8b.woff") format("woff"); 193} 194 195@font-face { 196 font-family: "Instrument Sans"; 197 font-weight: 400; 198 font-style: italic; 199 font-display: fallback; 200 src: url("//qynda.com/cdn/fonts/instrument_sans/instrumentsans_i4.028d3c3cd8d085648c808ceb20cd2fd1eb3560e5.woff2") format("woff2"), 201 url("//qynda.com/cdn/fonts/instrument_sans/instrumentsans_i4.7e90d82df8dee29a99237cd19cc529d2206706a2.woff") format("woff"); 202} 203 204/* Typography (body) */ 205 @font-face { 206 font-family: Nunito; 207 font-weight: 400; 208 font-style: normal; 209 font-display: fallback; 210 src: url("//qynda.com/cdn/fonts/nunito/nunito_n4.fc49103dc396b42cae9460289072d384b6c6eb63.woff2") format("woff2"), 211 url("//qynda.com/cdn/fonts/nunito/nunito_n4.5d26d13beeac3116db2479e64986cdeea4c8fbdd.woff") format("woff"); 212} 213 214@font-face { 215 font-family: Nunito; 216 font-weight: 400; 217 font-style: italic; 218 font-display: fallback; 219 src: url("//qynda.com/cdn/fonts/nunito/nunito_i4.fd53bf99043ab6c570187ed42d1b49192135de96.woff2") format("woff2"), 220 url("//qynda.com/cdn/fonts/nunito/nunito_i4.cb3876a003a73aaae5363bb3e3e99d45ec598cc6.woff") format("woff"); 221} 222 223@font-face { 224 font-family: Nunito; 225 font-weight: 700; 226 font-style: normal; 227 font-display: fallback; 228 src: url("//qynda.com/cdn/fonts/nunito/nunito_n7.37cf9b8cf43b3322f7e6e13ad2aad62ab5dc9109.woff2") format("woff2"), 229 url("//qynda.com/cdn/fonts/nunito/nunito_n7.45cfcfadc6630011252d54d5f5a2c7c98f60d5de.woff") format("woff"); 230} 231 232@font-face { 233 font-family: Nunito; 234 font-weight: 700; 235 font-style: italic; 236 font-display: fallback; 237 src: url("//qynda.com/cdn/fonts/nunito/nunito_i7.3f8ba2027bc9ceb1b1764ecab15bae73f86c4632.woff2") format("woff2"), 238 url("//qynda.com/cdn/fonts/nunito/nunito_i7.82bfb5f86ec77ada3c9f660da22064c2e46e1469.woff") format("woff"); 239} 240 241:root { 242 /* Container */ 243 --container-max-width: 100%; 244 --container-xxs-max-width: 27.5rem; /* 440px */ 245 --container-xs-max-width: 42.5rem; /* 680px */ 246 --container-sm-max-width: 61.25rem; /* 980px */ 247 --container-md-max-width: 71.875rem; /* 1150px */ 248 --container-lg-max-width: 78.75rem; /* 1260px */ 249 --container-xl-max-width: 85rem; /* 1360px */ 250 --container-gutter: 1.25rem; 251 252 --section-vertical-spacing: 2.5rem; 253 --section-vertical-spacing-tight:2.5rem; 254 255 --section-stack-gap:2.25rem; 256 --section-stack-gap-tight:2.25rem; 257 258 /* Form settings */ 259 --form-gap: 1.25rem; /* Gap between fieldset and submit button */ 260 --fieldset-gap: 1rem; /* Gap between each form input within a fieldset */ 261 --form-control-gap: 0.625rem; /* Gap between input and label (ignored for floating label) */ 262 --checkbox-control-gap: 0.75rem; /* Horizontal gap between checkbox and its associated label */ 263 --input-padding-block: 0.65rem; /* Vertical padding for input, textarea and native select */ 264 --input-padding-inline: 0.8rem; /* Horizontal padding for input, textarea and native select */ 265 --checkbox-size: 0.875rem; /* Size (width and height) for checkbox */ 266 267 /* Other sizes */ 268 --sticky-area-height: calc(var(--announcement-bar-is-sticky, 0) * var(--announcement-bar-height, 0px) + var(--header-is-sticky, 0) * var(--header-is-visible, 1) * var(--header-height, 0px)); 269 270 /* RTL support */ 271 --transform-logical-flip: 1; 272 --transform-origin-start: left; 273 --transform-origin-end: right; 274 275 /** 276 * --------------------------------------------------------------------- 277 * TYPOGRAPHY 278 * --------------------------------------------------------------------- 279 */ 280 281 /* Font properties */ 282 --heading-font-family: "Instrument Sans", sans-serif; 283 --heading-font-weight: 400; 284 --heading-font-style: normal; 285 --heading-text-transform: normal; 286 --heading-letter-spacing: 0.18em; 287 --text-font-family: Nunito, sans-serif;
288 --text-font-weight: 400; 289 --text-font-style: normal; 290 --text-letter-spacing: 0.0em; 291 --button-font: var(--text-font-style) var(--text-font-weight) var(--text-sm) / 1.65 var(--text-font-family); 292 --button-text-transform: uppercase; 293 --button-letter-spacing: 0.18em; 294 295 /* Font sizes */--text-heading-size-factor: 1; 296 --text-h1: max(0.6875rem, clamp(1.375rem, 1.146341463414634rem + 0.975609756097561vw, 2rem) * var(--text-heading-size-factor)); 297 --text-h2: max(0.6875rem, clamp(1.25rem, 1.0670731707317074rem + 0.7804878048780488vw, 1.75rem) * var(--text-heading-size-factor)); 298 --text-h3: max(0.6875rem, clamp(1.125rem, 1.0335365853658536rem + 0.3902439024390244vw, 1.375rem) * var(--text-heading-size-factor)); 299 --text-h4: max(0.6875rem, clamp(1rem, 0.9542682926829268rem + 0.1951219512195122vw, 1.125rem) * var(--text-heading-size-factor)); 300 --text-h5: calc(0.875rem * var(--text-heading-size-factor)); 301 --text-h6: calc(0.75rem * var(--text-heading-size-factor)); 302 303 --text-xs: 0.75rem; 304 --text-sm: 0.8125rem; 305 --text-base: 0.875rem; 306 --text-lg: 1.0rem; 307 --text-xl: 1.125rem; 308 309 /* Rounded variables (used for border radius) */ 310 --rounded-full: 9999px; 311 --button-border-radius: 0.0rem; 312 --input-border-radius: 0.0rem; 313 314 /* Box shadow */ 315 --shadow-sm: 0 2px 8px rgb(0 0 0 / 0.05); 316 --shadow: 0 5px 15px rgb(0 0 0 / 0.05); 317 --shadow-md: 0 5px 30px rgb(0 0 0 / 0.05); 318 --shadow-block: px px px rgb(var(--text-primary) / 0.0); 319 320 /** 321 * --------------------------------------------------------------------- 322 * OTHER 323 * --------------------------------------------------------------------- 324 */ 325 326 --checkmark-svg-url: url(//qynda.com/cdn/shop/t/116/assets/checkmark.svg?v=77552481021870063511771159400); 327 --cursor-zoom-in-svg-url: url(//qynda.com/cdn/shop/t/116/assets/cursor-zoom-in.svg?v=53880737899771658811771159400); 328 } 329 330 [dir="rtl"]:root { 331 /* RTL support */ 332 --transform-logical-flip: -1; 333 --transform-origin-start: right; 334 --transform-origin-end: left; 335 } 336 337 @media screen and (min-width: 700px) { 338 :root { 339 /* Typography (font size) */ 340 --text-xs: 0.75rem; 341 --text-sm: 0.8125rem; 342 --text-base: 0.875rem; 343 --text-lg: 1.0rem; 344 --text-xl: 1.25rem; 345 346 /* Spacing settings */ 347 --container-gutter: 2rem; 348 } 349 } 350 351 @media screen and (min-width: 1000px) { 352 :root { 353 /* Spacing settings */ 354 --container-gutter: 3rem; 355 356 --section-vertical-spacing: 4rem; 357 --section-vertical-spacing-tight: 4rem; 358 359 --section-stack-gap:3rem; 360 --section-stack-gap-tight:3rem; 361 } 362 }:root {/* Overlay used for modal */ 363 --page-overlay: 0 0 0 / 0.4; 364 365 /* We use the first scheme background as default */ 366 --page-background: ; 367 368 /* Product colors */ 369 --on-sale-text: 79 0 48; 370 --on-sale-badge-background: 79 0 48; 371 --on-sale-badge-text: 255 255 255; 372 --sold-out-badge-background: 239 239 239; 373 --sold-out-badge-text: 0 0 0 / 0.65; 374 --custom-badge-background: 28 28 28; 375 --custom-badge-text: 255 255 255; 376 --star-color: 28 28 28; 377 378 /* Status colors */ 379 --success-background: 212 227 203; 380 --success-text: 48 122 7; 381 --warning-background: 253 241 224; 382 --warning-text: 237 138 0; 383 --error-background: 243 204 204; 384 --error-text: 203 43 43; 385 }.color-scheme--scheme-1 { 386 /* Color settings */--accent: 28 28 28; 387 --text-color: 28 28 28; 388 --background: 239 239 239 / 1.0; 389 --background-without-opacity: 239 239 239; 390 --background-gradient: ;--border-color: 207 207 207;/* Button colors */ 391 --button-background: 28 28 28; 392 --button-text-color: 255 255 255; 393 394 /* Circled buttons */ 395 --circle-button-background: 255 255 255; 396 --circle-button-text-color: 28 28 28; 397 }.shopify-section:has(.section-spacing.color-scheme--bg-609ecfcfee2f667ac6c12366fc6ece56) + .shopify-section:has(.section-spacing.color-scheme--bg-609ecfcfee2f667ac6c12366fc6ece56:not(.bordered-section)) .section-spacing { 398 padding-block-start: 0; 399 }.color-scheme--scheme-2 {
400 /* Color settings */--accent: 28 28 28; 401 --text-color: 28 28 28; 402 --background: 255 255 255 / 1.0; 403 --background-without-opacity: 255 255 255; 404 --background-gradient: ;--border-color: 221 221 221;/* Button colors */ 405 --button-background: 28 28 28; 406 --button-text-color: 255 255 255; 407 408 /* Circled buttons */ 409 --circle-button-background: 255 255 255; 410 --circle-button-text-color: 28 28 28; 411 }.shopify-section:has(.section-spacing.color-scheme--bg-54922f2e920ba8346f6dc0fba343d673) + .shopify-section:has(.section-spacing.color-scheme--bg-54922f2e920ba8346f6dc0fba343d673:not(.bordered-section)) .section-spacing { 412 padding-block-start: 0; 413 }.color-scheme--scheme-3 { 414 /* Color settings */--accent: 255 255 255; 415 --text-color: 255 255 255; 416 --background: 28 28 28 / 1.0; 417 --background-without-opacity: 28 28 28; 418 --background-gradient: ;--border-color: 62 62 62;/* Button colors */ 419 --button-background: 255 255 255; 420 --button-text-color: 28 28 28; 421 422 /* Circled buttons */ 423 --circle-button-background: 255 255 255; 424 --circle-button-text-color: 28 28 28; 425 }.shopify-section:has(.section-spacing.color-scheme--bg-c1f8cb21047e4797e94d0969dc5d1e44) + .shopify-section:has(.section-spacing.color-scheme--bg-c1f8cb21047e4797e94d0969dc5d1e44:not(.bordered-section)) .section-spacing { 426 padding-block-start: 0; 427 }.color-scheme--scheme-4 { 428 /* Color settings */--accent: 255 255 255; 429 --text-color: 255 255 255; 430 --background: 0 0 0 / 0.0; 431 --background-without-opacity: 0 0 0; 432 --background-gradient: ;--border-color: 255 255 255;/* Button colors */ 433 --button-background: 255 255 255; 434 --button-text-color: 28 28 28; 435 436 /* Circled buttons */ 437 --circle-button-background: 255 255 255; 438 --circle-button-text-color: 28 28 28; 439 }.shopify-section:has(.section-spacing.color-scheme--bg-3671eee015764974ee0aef1536023e0f) + .shopify-section:has(.section-spacing.color-scheme--bg-3671eee015764974ee0aef1536023e0f:not(.bordered-section)) .section-spacing { 440 padding-block-start: 0; 441 }.color-scheme--scheme-c633763a-c3d1-4cb2-9a72-ca6a049f8979 { 442 /* Color settings */--accent: 28 28 28; 443 --text-color: 255 255 255; 444 --background: 79 0 48 / 1.0; 445 --background-without-opacity: 79 0 48; 446 --background-gradient: ;--border-color: 105 38 79;/* Button colors */ 447 --button-background: 28 28 28; 448 --button-text-color: 255 255 255; 449 450 /* Circled buttons */ 451 --circle-button-background: 255 255 255; 452 --circle-button-text-color: 28 28 28; 453 }.shopify-section:has(.section-spacing.color-scheme--bg-98d30b40cffc6df00173335fbb8abe84) + .shopify-section:has(.section-spacing.color-scheme--bg-98d30b40cffc6df00173335fbb8abe84:not(.bordered-section)) .section-spacing { 454 padding-block-start: 0; 455 }.color-scheme--scheme-436d8b66-f602-438c-9184-7e3531f46828 { 456 /* Color settings */--accent: 255 255 255; 457 --text-color: 255 255 255; 458 --background: 0 0 0 / 0.0; 459 --background-without-opacity: 0 0 0; 460 --background-gradient: ;--border-color: 255 255 255;/* Button colors */ 461 --button-background: 255 255 255; 462 --button-text-color: 255 255 255; 463 464 /* Circled buttons */ 465 --circle-button-background: 0 0 0; 466 --circle-button-text-color: 255 255 255; 467 }.shopify-section:has(.section-spacing.color-scheme--bg-3671eee015764974ee0aef1536023e0f) + .shopify-section:has(.section-spacing.color-scheme--bg-3671eee015764974ee0aef1536023e0f:not(.bordered-section)) .section-spacing { 468 padding-block-start: 0; 469 }.color-scheme--scheme-30d85203-2ade-44b6-9d27-d0399b6fdaaa { 470 /* Color settings */--accent: 28 28 28; 471 --text-color: 28 28 28; 472 --background: 250 249 249 / 1.0; 473 --background-without-opacity: 250 249 249; 474 --background-gradient: ;--border-color: 217 216 216;/* Button colors */ 475 --button-background: 28 28 28; 476 --button-text-color: 255 255 255; 477 478 /* Circled buttons */ 479 --circle-button-background: 255 255 255; 480 --circle-button-text-color: 28 28 28; 481 }.shopify-section:has(.section-spacing.color-scheme--bg-b8c70af2db6fcaf4619db8fe37557759) + .shopify-section:has(.section-spacing.color-scheme--bg-b8c70af2db6fcaf4619db8fe37557759:not(.bordered-section)) .section-spacing { 482 padding-block-start: 0; 483 }.color-scheme--dialog { 484 /* Color settings */--accent: 28 28 28; 485 --text-color: 28 28 28; 486 --background: 255 255 255 / 1.0; 487 --background-without-opacity: 255 255 255; 488 --background-gradient: ;--border-color: 221 221 221;/* Button colors */ 489 --button-background: 28 28 28; 490 --button-text-color: 255 255 255; 491 492 /* Circled buttons */ 493 --circle-button-background: 255 255 255; 494 --circle-button-text-color: 28 28 28; 495 } 496 /* Arrow */ 497 --position-horizontal-slick-arrow: ; 498 499 /* General Color*/ 500 --color-text: ; 501 --color-text2: ; 502 --color-global: ; 503 --color-white: ; 504 --color-grey: ; 505 --color-black: ; 506 --color-base-text-rgb: ; 507 --color-base-text2-rgb: ;
508 --color-background: ; 509 --color-background-rgb: ; 510 --color-background-overylay: ; 511 --color-base-accent-text: ; 512 --color-base-accent-1: ; 513 --color-base-accent-2: ; 514 --color-link: ; 515 --color-link-hover: ; 516 --color-error: ; 517 --color-error-bg: ; 518 --color-success: ; 519 --color-success-bg: ; 520 --color-info: ; 521 --color-info-bg: ; 522 --color-link-underline: ; 523 524 --color-breadcrumb: ; 525 --colors-breadcrumb-hover: ; 526 --colors-breadcrumb-active: ; 527 528 --border-global: ; 529 --bg-global: ; 530 531 --bg-planceholder: ; 532 533 --color-warning: ; 534 --bg-warning: ; 535 536 --color-background-10 : ; 537 --color-background-20 : ; 538 --color-background-30 : ; 539 --color-background-50 : ; 540 --color-background-global : ; 541 542 /* Arrow Color */ 543 --arrow-color: ; 544 --arrow-background-color: ; 545 --arrow-border-color: ; 546 --arrow-color-hover: ; 547 --arrow-background-color-hover: ; 548 --arrow-border-color-hover: ; 549 550 --arrow-width: px; 551 --arrow-height: px; 552 --arrow-size: px; 553 --arrow-size-icon: px; 554 --arrow-border-radius: %; 555 --arrow-border-width: px; 556</style>
556<script> 557 // This allows to expose several variables to the global scope, to be used in scripts 558 window.themeVariables = { 559 settings: { 560 showPageTransition: null, 561 pageType: "product", 562 moneyFormat: "\u003cspan class=money\u003e${{amount}}\u003c\/span\u003e", 563 moneyWithCurrencyFormat: "\u003cspan class=money\u003e${{amount}} USD\u003c\/span\u003e", 564 currencyCodeEnabled: false, 565 cartType: "drawer", 566 staggerMenuApparition: true 567 }, 568 569 strings: { 570 addedToCart: "Added to your cart!", 571 closeGallery: "Close gallery", 572 zoomGallery: "Zoom picture", 573 errorGallery: "Image cannot be loaded", 574 shippingEstimatorNoResults: "Sorry, we do not ship to your address.", 575 shippingEstimatorOneResult: "There is one shipping rate for your address:", 576 shippingEstimatorMultipleResults: "There are several shipping rates for your address:", 577 shippingEstimatorError: "One or more error occurred while retrieving shipping rates:", 578 next: "Next", 579 previous: "Previous" 580 }, 581 582 mediaQueries: { 583 'sm': 'screen and (min-width: 700px)', 584 'md': 'screen and (min-width: 1000px)', 585 'lg': 'screen and (min-width: 1150px)', 586 'xl': 'screen and (min-width: 1400px)', 587 '2xl': 'screen and (min-width: 1600px)', 588 'sm-max': 'screen and (max-width: 699px)', 589 'md-max': 'screen and (max-width: 999px)', 590 'lg-max': 'screen and (max-width: 1149px)', 591 'xl-max': 'screen and (max-width: 1399px)', 592 '2xl-max': 'screen and (max-width: 1599px)', 593 'motion-safe': '(prefers-reduced-motion: no-preference)', 594 'motion-reduce': '(prefers-reduced-motion: reduce)', 595 'supports-hover': 'screen and (pointer: fine)', 596 'supports-touch': 'screen and (hover: none)' 597 } 598 };</script>
598<script>document.documentElement.className = document.documentElement.className.replace('no-js', 'js');</script>
598 599 600 601
601<script async crossorigin fetchpriority="high" src="/cdn/shopifycloud/importmap-polyfill/es-modules-shim.2.4.0.js"></script>
vendor: 1 bytes, line 601
601
602<script type="importmap">{ 603 "imports": { 604 "vendor": "//qynda.com/cdn/shop/t/116/assets/vendor.min.js?v=166833309358212501051771159355", 605 "theme": "//qynda.com/cdn/shop/t/116/assets/theme.js?v=48160923075965912301789392933", 606 "photoswipe": "//qynda.com/cdn/shop/t/116/assets/photoswipe.min.js?v=13374349288281597431771159354" 607 } 608 } 609 </script>
609 610 611
611<script type="module" src="//qynda.com/cdn/shop/t/116/assets/vendor.min.js?v=166833309358212501051771159355"></script>
611 612
612<script type="module" src="//qynda.com/cdn/shop/t/116/assets/theme.js?v=48160923075965912301789392933"></script>
612 613
613<script src="//qynda.com/cdn/shop/t/116/assets/gulf-cup-quick-buy.js?v=26339452569879990491786616142" defer></script>
613 614 615
615<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
615<meta name="google-site-verification" content="msVD-nCEAq0FjR2kk20khwGLMS-Si3kF7SEUfP8vQrM"> 616<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/73720693009/digital_wallets/dialog"> 617<meta id="in-context-paypal-metadata" data-shop-id="73720693009" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD"> 618<link rel="ucp" href="/.well-known/ucp" version="2026-08-25"><link rel="buy" href="/cart/54370783428881:1?ucp/version=2026-08-25&context/payment/0/handler=dev.shopify.shop_pay" payment="dev.shopify.shop_pay com.google.pay dev.shopify.card"><link rel="alternate" hreflang="x-default" href="https://qynda.com/products/qynda-gift-card"> 619<link rel="alternate" hreflang="en" href="https://qynda.com/products/qynda-gift-card"> 620<link rel="alternate" hreflang="ar" href="https://qynda.com/ar/products/qynda-gift-card"> 621<link rel="alternate" type="application/json+oembed" href="https://qynda.com/products/qynda-gift-card.oembed">
622<script async="async" src="/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=6039077137"></script>
622 623<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
624<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&default_configuration_id=6039077137&shop_id=73720693009" crossorigin="anonymous"></script>
vendor: 1 bytes, line 624
624
625<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":73720693009,"countryCode":"US","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/73720693009","merchantName":"QYNDA","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","discover","elo","jcb"],"total":{"type":"pending","label":"QYNDA","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 625
625
626<script id="shopify-features" type="application/json">{"accessToken":"baf8dbd1521300635d6b8de37b9432f6","betas":["rich-media-storefront-analytics"],"domain":"qynda.com","predictiveSearch":true,"shopId":73720693009,"locale":"en"}</script>
vendor: 1 bytes, line 626
626
627<script>var Shopify = Shopify || {}; 628Shopify.shop = "qynda.myshopify.com"; 629Shopify.locale = "en"; 630Shopify.currency = {"active":"USD","rate":"1.0"}; 631Shopify.country = "US"; 632Shopify.theme = {"name":"Qynda 2.5.0","id":181940945169,"schema_name":"Prestige","schema_version":"10.6.0","theme_store_id":855,"role":"main"}; 633Shopify.theme.handle = "null"; 634Shopify.theme.style = {"id":null,"handle":null}; 635Shopify.cdnHost = "qynda.com/cdn"; 636Shopify.routes = Shopify.routes || {}; 637Shopify.routes.root = "/"; 638Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 639Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 640Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 641Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 641
641
642<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 642
642
643<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
vendor: 1 bytes, line 643
643
644<script> 645 window.ShopifyPay = window.ShopifyPay || {}; 646 window.ShopifyPay.apiHost = "shop.app\/pay"; 647 window.ShopifyPay.redirectState = null; 648</script>
vendor: 1 bytes, line 648
648
649<script> 650 window.Shopify = window.Shopify || {}; 651 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 652 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 653 window.Shopify.SignInWithShop.eligible = true; 654</script>
vendor: 1 bytes, line 654
654
655<script id="shop-js-analytics" type="application/json">{"pageType":"product"}</script>
vendor: 1 bytes, line 655
655
656<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"></script>
vendor: 1 bytes, line 656
656
657<script type="module"> 658 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"); 659 660 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 661 662</script>
vendor: 1 bytes, line 662
662
663<script> 664 window.Shopify = window.Shopify || {}; 665 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 666 window.Shopify.featureAssets['shop-js'] = {"avatar":["modules/v2/loader.avatar.en.esm.js"],"checkout-modal":["modules/v2/loader.checkout-modal.en.esm.js"],"init-customer-accounts-sign-up":["modules/v2/loader.init-customer-accounts-sign-up.en.esm.js"],"init-customer-accounts":["modules/v2/loader.init-customer-accounts.en.esm.js"],"init-fed-cm":["modules/v2/loader.init-fed-cm.en.esm.js"],"init-shop-cart-sync":["modules/v2/loader.init-shop-cart-sync.en.esm.js"],"init-shop-email-lookup-coordinator":["modules/v2/loader.init-shop-email-lookup-coordinator.en.esm.js"],"init-shop-for-new-customer-accounts":["modules/v2/loader.init-shop-for-new-customer-accounts.en.esm.js"],"init-shop-user-recognition":["modules/v2/loader.init-shop-user-recognition.en.esm.js"],"init-windoid":["modules/v2/loader.init-windoid.en.esm.js"],"lead-capture":["modules/v2/loader.lead-capture.en.esm.js"],"listener":["modules/v2/loader.listener.en.esm.js"],"pay-button":["modules/v2/loader.pay-button.en.esm.js"],"payment-terms":["modules/v2/loader.payment-terms.en.esm.js"],"shop-button":["modules/v2/loader.shop-button.en.esm.js"],"shop-cart-sync":["modules/v2/loader.shop-cart-sync.en.esm.js"],"shop-cash-offers":["modules/v2/loader.shop-cash-offers.en.esm.js"],"shop-follow-button":["modules/v2/loader.shop-follow-button.en.esm.js"],"shop-login-button":["modules/v2/loader.shop-login-button.en.esm.js"],"shop-login":["modules/v2/loader.shop-login.en.esm.js"],"shop-toast-manager":["modules/v2/loader.shop-toast-manager.en.esm.js"],"shop-user-recognition":["modules/v2/loader.shop-user-recognition.en.esm.js"]}; 667</script>
vendor: 1 bytes, line 667
667
668<script>(function() { 669 var isLoaded = false; 670 function asyncLoad() { 671 if (isLoaded) return; 672 isLoaded = true; 673 var urls = ["\/\/cdn.shopify.com\/proxy\/9f612c152d951a7334519a7ba400fa9d4c68c2dd8ffdbc58def9c17fc6881577\/api.goaffpro.com\/loader.js?shop=qynda.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA","\/\/cdn.shopify.com\/proxy\/3199cfefa75f45476f2cadee4885bc9e81211ad94400c6cec802ba1e9fb31cf1\/pixel.wetracked.io\/qynda.myshopify.com\/events.js?shop=qynda.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA"]; 674 for (var i = 0; i < urls.length; i++) { 675 var s = document.createElement('script'); 676 s.type = 'text/javascript'; 677 s.async = true; 678 s.src = urls[i]; 679 var x = document.getElementsByTagName('script')[0]; 680 x.parentNode.insertBefore(s, x); 681 } 682 }; 683 if(window.attachEvent) { 684 window.attachEvent('onload', asyncLoad); 685 } else { 686 window.addEventListener('load', asyncLoad, false); 687 } 688})();</script>
vendor: 1 bytes, line 688
688
689<script id="__st">var __st={"a":73720693009,"offset":10800,"reqid":"383bd3ba-7bd5-4a54-b73b-c6548815cf92-1791225456","pageurl":"qynda.com\/products\/qynda-gift-card","u":"f476f52e66d4","p":"product","rtyp":"product","rid":11184018325777};</script>
vendor: 1 bytes, line 689
689
690<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 690
690
691<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.3.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!0,!0)}();</script>
vendor: 1 bytes, line 691
691
692<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//qynda.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 692
692
693<script>(function () {var userAgent = navigator.userAgent;var platform = navigator.platform;var maxTouchPoints = navigator.maxTouchPoints || 0;var isIOS = /iPad|iPhone|iPod/.test(platform) || (platform === 'MacIntel' && maxTouchPoints > 1);var isMacSafari = platform.indexOf('Mac') === 0 && /Safari/.test(userAgent) && !/Chrome|Chromium|CriOS|FxiOS|Edg|OPR|Android/.test(userAgent);var isAppleSafari = isIOS || isMacSafari;if (isAppleSafari) {fetch('/sf_private_access_tokens' + location.search).catch(function () {});}function browserMajorVersion(pattern) {var match = userAgent.match(pattern);return match ? parseInt(match[1], 10) : null;}function shouldLoadAutosizesPolyfill() {if (!window.PerformanceObserver?.supportedEntryTypes?.includes('paint')) {return false;}var chromeVersion = browserMajorVersion(/Chrome\/(\d+)/);if (chromeVersion !== null) {return chromeVersion < 126;}var firefoxVersion = browserMajorVersion(/Firefox\/(\d+)/);if (firefoxVersion !== null) {return firefoxVersion < 150;}var safariVersion = isAppleSafari ? browserMajorVersion(/Version\/(\d+).*Safari\//) : null;if (safariVersion !== null) {return safariVersion < 27;}return true;}if (shouldLoadAutosizesPolyfill()) {var autosizesScript = document.createElement('script');autosizesScript.async = true;autosizesScript.crossOrigin = 'anonymous';autosizesScript.src = "//qynda.com/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
693<script crossorigin="anonymous" defer="defer" src="//qynda.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 693
693
694<script id="shopify-origin-trials" async="async" integrity="sha256-qJbe/jEZBHtr5W/BlA2cKAz3vkXu6vJQyLjgvgCC86g=" src="//cdn.shopify.com/shopifycloud/storefront/assets/storefront/origin_trials-318ab40a.js" crossorigin="anonymous" onload="window.__shopifyOriginTrialsDone = true" onerror="window.__shopifyOriginTrialsDone = true"></script>
vendor: 1 bytes, line 694
694
695<script> 696 window.Shopify = window.Shopify || {}; 697 window.Shopify.MCP = window.Shopify.MCP || {}; 698 window.Shopify.MCP.enabled = true; 699 window.Shopify.MCP.shop = "qynda.myshopify.com"; 700 window.Shopify.MCP.mcpEndpoint = "https:\/\/qynda.com\/api\/mcp"; 701 window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n - What is your return policy?\n - What is your shipping policy?\n - What is your phone number?\n - What are your hours of operation?\"\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."}},"required":["query"]}}]; 702</script>
vendor: 1 bytes, line 702
702
703<script>(()=>{var d="shopify:webmcp_adapter_loaded",n=Symbol.for("shopify.webmcp_adapter_loading");function s(c,a,{win:r=window,doc:o=document}={}){function p(){try{return r.localStorage.getItem(d)==="true"}catch{return!1}}function l(){try{r.localStorage.setItem(d,"true")}catch{}}function u(){return typeof(o.modelContext||r.navigator?.modelContext)?.registerTool=="function"}function f(){if(r[n]||!u())return;let t=o.head||o.getElementsByTagName("head")[0];if(!t)return;let e=o.createElement("script");e.type="module",e.crossOrigin="anonymous",a&&(e.integrity=a),e.src=c,e.addEventListener("load",l,{once:!0}),e.addEventListener("error",()=>{r[n]=!1},{once:!0}),t.appendChild(e),r[n]=!0}function _(t){let e=o.getElementById("shopify-origin-trials");if(!e||r.__shopifyOriginTrialsDone){t();return}e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0})}function i(){_(()=>r.setTimeout(f,0))}function m(){o.addEventListener("DOMContentLoaded",i,{once:!0})}p()?i():m()}s("\/\/qynda.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 704</script>
vendor: 1 bytes, line 704
704
705<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://qynda.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}}; 706</script>
vendor: 1 bytes, line 706
706
707<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 708 function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent); 709</script>
vendor: 1 bytes, line 709
709
710<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}})); 711</script>
vendor: 1 bytes, line 711
711
712<script id='scb4127' type='text/javascript' async='' src='https://qynda.com/cdn/shopifycloud/privacy-banner/storefront-banner.js'></script>
712<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://qynda.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 713<style id="shopify-accelerated-checkout-cart"> 714 #shopify-buyer-consent { 715 margin-top: 1em; 716 display: inline-block; 717 width: 100%; 718} 719 720#shopify-buyer-consent.hidden { 721 display: none; 722} 723 724#shopify-subscription-policy-button { 725 background: none; 726 border: none; 727 padding: 0; 728 text-decoration: underline; 729 font-size: inherit; 730 cursor: pointer; 731} 732 733#shopify-subscription-policy-button::before { 734 box-shadow: none; 735} 736 737 </style> 738
739<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
739 740<link href="//qynda.com/cdn/shop/t/116/assets/theme.css?v=142033106197744844461787483079" rel="stylesheet" type="text/css" media="all" /><link href="//qynda.com/cdn/shop/t/116/assets/home.css?v=123041593073138138881779366232" rel="stylesheet" type="text/css" media="all" /><link href="//qynda.com/cdn/shop/t/116/assets/0-fresh-custom.css?v=37779586012857309731789286097" rel="stylesheet" type="text/css" media="all" /> 741 <link href="//qynda.com/cdn/shop/t/116/assets/base.css?v=41678747383040202431785265306" rel="stylesheet" type="text/css" media="all" /> 742 <link href="//qynda.com/cdn/shop/t/116/assets/ar-part.css?v=168517559685038814091784028415" rel="stylesheet" type="text/css" media="all" /> 743 744<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css" /><style> 745 html:not(.currency-ready) .money, 746 html:not(.currency-ready) sale-price, 747 html:not(.currency-ready) .price-list .price, 748 html:not(.currency-ready) .price-list .money, 749 html:not(.currency-ready) .product-card__price, 750 html:not(.currency-ready) .product-card__price .money, 751 html:not(.currency-ready) .fs-msg strong, 752 html:not(.currency-ready) [data-price-cents] { 753 visibility: hidden !important; 754 } 755</style> 756 <!-- BEGIN app block: shopify://apps/pandectes-gdpr/blocks/banner/58c0baa2-6cc1-480c-9ea6-38d6d559556a --> 757 758 759 760 <!-- TCF is active, scripts are loaded above --> 761 762
762<script> 763 764 window.PandectesSettings = {"store":{"id":73720693009,"plan":"basic","theme":"Copy of Qynda 2.3.4","primaryLocale":"en","adminMode":false,"headless":false,"storefrontRootDomain":"","checkoutRootDomain":"","storefrontAccessToken":"","useGeolocation":false},"tsPublished":1769427938,"declaration":{"showPurpose":false,"showProvider":false,"declIntroText":"We use cookies to optimize website functionality, analyze the performance, and provide personalized experience to you. Some cookies are essential to make the website operate and function correctly. Those cookies cannot be disabled. In this window you can manage your preference of cookies.","showDateGenerated":true},"language":{"unpublished":[],"languageMode":"Single","fallbackLanguage":"en","languageDetection":"browser","languagesSupported":[]},"texts":{"managed":{"headerText":{"en":"We respect your privacy"},"consentText":{"en":"This website uses cookies to ensure you get the best experience."},"linkText":{"en":"Learn more"},"imprintText":{"en":"Imprint"},"googleLinkText":{"en":"Google's Privacy Terms"},"allowButtonText":{"en":"Accept"},"denyButtonText":{"en":"Decline"},"dismissButtonText":{"en":"Ok"},"leaveSiteButtonText":{"en":"Leave this site"},"preferencesButtonText":{"en":"Preferences"},"cookiePolicyText":{"en":"Cookie policy"},"preferencesPopupTitleText":{"en":"Manage consent preferences"},"preferencesPopupIntroText":{"en":"We use cookies to optimize website functionality, analyze the performance, and provide personalized experience to you. Some cookies are essential to make the website operate and function correctly. Those cookies cannot be disabled. In this window you can manage your preference of cookies."},"preferencesPopupSaveButtonText":{"en":"Save preferences"},"preferencesPopupCloseButtonText":{"en":"Close"},"preferencesPopupAcceptAllButtonText":{"en":"Accept all"},"preferencesPopupRejectAllButtonText":{"en":"Reject all"},"cookiesDetailsText":{"en":"Cookies details"},"preferencesPopupAlwaysAllowedText":{"en":"Always allowed"},"accessSectionParagraphText":{"en":"You have the right to request access to your data at any time."},"accessSectionTitleText":{"en":"Data portability"},"accessSectionAccountInfoActionText":{"en":"Personal data"},"accessSectionDownloadReportActionText":{"en":"Request export"},"accessSectionGDPRRequestsActionText":{"en":"Data subject requests"},"accessSectionOrdersRecordsActionText":{"en":"Orders"},"rectificationSectionParagraphText":{"en":"You have the right to request your data to be updated whenever you think it is appropriate."},"rectificationSectionTitleText":{"en":"Data Rectification"},"rectificationCommentPlaceholder":{"en":"Describe what you want to be updated"},"rectificationCommentValidationError":{"en":"Comment is required"},"rectificationSectionEditAccountActionText":{"en":"Request an update"},"erasureSectionTitleText":{"en":"Right to be forgotten"},"erasureSectionParagraphText":{"en":"You have the right to ask all your data to be erased. After that, you will no longer be able to access your account."},"erasureSectionRequestDeletionActionText":{"en":"Request personal data deletion"},"consentDate":{"en":"Consent date"},"consentId":{"en":"Consent ID"},"consentSectionChangeConsentActionText":{"en":"Change consent preference"},"consentSectionConsentedText":{"en":"You consented to the cookies policy of this website on"},"consentSectionNoConsentText":{"en":"You have not consented to the cookies policy of this website."},"consentSectionTitleText":{"en":"Your cookie consent"},"consentStatus":{"en":"Consent preference"},"confirmationFailureMessage":{"en":"Your request was not verified. Please try again and if problem persists, contact store owner for assistance"},"confirmationFailureTitle":{"en":"A problem occurred"},"confirmationSuccessMessage":{"en":"We will soon get back to you as to your request."},"confirmationSuccessTitle":{"en":"Your request is verified"},"guestsSupportEmailFailureMessage":{"en":"Your request was not submitted. Please try again and if problem persists, contact store owner for assistance."},"guestsSupportEmailFailureTitle":{"en":"A problem occurred"},"guestsSupportEmailPlaceholder":{"en":"E-mail address"},"guestsSupportEmailSuccessMessage":{"en":"If you are registered as a customer of this store, you will soon receive an email with instructions on how to proceed."}
764,"guestsSupportEmailSuccessTitle":{"en":"Thank you for your request"},"guestsSupportEmailValidationError":{"en":"Email is not valid"},"guestsSupportInfoText":{"en":"Please login with your customer account to further proceed."},"submitButton":{"en":"Submit"},"submittingButton":{"en":"Submitting..."},"cancelButton":{"en":"Cancel"},"declIntroText":{"en":"We use cookies to optimize website functionality, analyze the performance, and provide personalized experience to you. Some cookies are essential to make the website operate and function correctly. Those cookies cannot be disabled. In this window you can manage your preference of cookies."},"declName":{"en":"Name"},"declPurpose":{"en":"Purpose"},"declType":{"en":"Type"},"declRetention":{"en":"Retention"},"declProvider":{"en":"Provider"},"declFirstParty":{"en":"First-party"},"declThirdParty":{"en":"Third-party"},"declSeconds":{"en":"seconds"},"declMinutes":{"en":"minutes"},"declHours":{"en":"hours"},"declWeeks":{"en":"week(s)"},"declDays":{"en":"days"},"declMonths":{"en":"months"},"declYears":{"en":"years"},"declSession":{"en":"Session"},"declDomain":{"en":"Domain"},"declPath":{"en":"Path"}}
764,"categories":{"strictlyNecessaryCookiesTitleText":{"en":"Strictly necessary cookies"},"strictlyNecessaryCookiesDescriptionText":{"en":"These cookies are essential in order to enable you to move around the website and use its features, such as accessing secure areas of the website. The website cannot function properly without these cookies."},"functionalityCookiesTitleText":{"en":"Functional cookies"},"functionalityCookiesDescriptionText":{"en":"These cookies enable the site to provide enhanced functionality and personalisation. They may be set by us or by third party providers whose services we have added to our pages. If you do not allow these cookies then some or all of these services may not function properly."},"performanceCookiesTitleText":{"en":"Performance cookies"},"performanceCookiesDescriptionText":{"en":"These cookies enable us to monitor and improve the performance of our website. For example, they allow us to count visits, identify traffic sources and see which parts of the site are most popular."},"targetingCookiesTitleText":{"en":"Targeting cookies"},"targetingCookiesDescriptionText":{"en":"These cookies may be set through our site by our advertising partners. They may be used by those companies to build a profile of your interests and show you relevant adverts on other sites. They do not store directly personal information, but are based on uniquely identifying your browser and internet device. If you do not allow these cookies, you will experience less targeted advertising."},"unclassifiedCookiesTitleText":{"en":"Unclassified cookies"},"unclassifiedCookiesDescriptionText":{"en":"Unclassified cookies are cookies that we are in the process of classifying, together with the providers of individual cookies."}},"auto":{}},"library":{"previewMode":false,"fadeInTimeout":0,"defaultBlocked":7,"showLink":true,"showImprintLink":false,"showGoogleLink":false,"enabled":true,"cookie":{"expiryDays":365,"secure":true,"domain":""},"dismissOnScroll":false,"dismissOnWindowClick":false,"dismissOnTimeout":false,"palette":{"popup":{"background":"#FFFFFF","backgroundForCalculations":{"a":1,"b":255,"g":255,"r":255},"text":"#000000"},"button":{"background":"transparent","backgroundForCalculations":{"a":1,"b":255,"g":255,"r":255},"text":"#000000","textForCalculation":{"a":1,"b":0,"g":0,"r":0},"border":"#000000"}},"content":{"href":"https://qynda.myshopify.com/policies/privacy-policy","imprintHref":"/","close":"✕","target":"","logo":"<img class=\"cc-banner-logo\" style=\"max-height: 40px;\" src=\"https://qynda.myshopify.com/cdn/shop/files/pandectes-banner-logo.png\" alt=\"Cookie banner\" />"},"window":"<div role=\"dialog\" aria-label=\"{{header}}\" aria-describedby=\"cookieconsent:desc\" id=\"pandectes-banner\" class=\"cc-window-wrapper cc-top-wrapper\"><div class=\"pd-cookie-banner-window cc-window {{classes}}\">{{children}}</div></div>","compliance":{"opt-both":"<div class=\"cc-compliance cc-highlight\">{{deny}}{{allow}}</div>"},"type":"opt-both","layouts":{"basic":"{{logo}}{{messagelink}}{{compliance}}{{close}}"},"position":"top","theme":"wired","revokable":true,"animateRevokable":false,"revokableReset":false,"revokableLogoUrl":"https://qynda.myshopify.com/cdn/shop/files/pandectes-reopen-logo.png","revokablePlacement":"bottom-left","revokableMarginHorizontal":15,"revokableMarginVertical":15,"static":false,"autoAttach":true,"hasTransition":true,"blacklistPage":[""],"elements":{"close":"<button aria-label=\"Close\" type=\"button\" class=\"cc-close\">{{close}}</button>","dismiss":"<button type=\"button\" class=\"cc-btn cc-btn-decision cc-dismiss\">{{dismiss}}</button>","allow":"<button type=\"button\" class=\"cc-btn cc-btn-decision cc-allow\">{{allow}}</button>","deny":"<button type=\"button\" class=\"cc-btn cc-btn-decision cc-deny\">{{deny}}</button>","preferences":"<button type=\"button\" class=\"cc-btn cc-settings\" aria-controls=\"pd-cp-preferences\" onclick=\"Pandectes.fn.openPreferences()\">{{preferences}}</button>"}},"geolocation":{"brOnly":false,"caOnly":false,"chOnly":false,"euOnly":true,"jpOnly":false,"thOnly":false,"canadaOnly":false,"canadaLaw25":false,"canadaPipeda":false,"globalVisibility":false},"dsr":{"guestsSupport":false,"accessSectionDownloadReportAuto":false},"banner":{"resetTs":1702817282,"extraCss":" .cc-banner-logo {max-width: 24em!important;} @media(min-width: 768px) {.cc-window.cc-floating{max-width: 24em!important;width: 24em!important;}} .cc-message, .pd-cookie-banner-window .cc-header, .cc-logo {text-align: left} .cc-window-wrapper{z-index: 2147483647;} .cc-window{z-index: 2147483647;font-family: inherit;} .pd-cookie-banner-window .cc-header{font-family: inherit;} .pd-cp-ui{font-family: inherit; background-color: #FFFFFF;color:#000000;} button.pd-cp-btn, a.pd-cp-btn{} input + .pd-cp-preferences-slider{background-color: rgba(0, 0, 0, 0.3)} .pd-cp-scrolling-section::-webkit-scrollbar{background-color: rgba(0, 0, 0, 0.3)} input:checked + .pd-cp-preferences-slider{background-color: rgba(0, 0, 0, 1)} .pd-cp-scrolling-section::-webkit-scrollbar-thumb {background-color: rgba(0, 0, 0, 1)} .pd-cp-ui-close{color:#000000;} .pd-cp-preferences-slider:before{background-color: #FFFFFF} .pd-cp-title:before {border-color: #000000!important} .pd-cp-preferences-slider{background-color:#000000} .pd-cp-toggle{color:#000000!important} @media(max-width:699px) {.pd-cp-ui-close-top svg {fill: #000000}} .pd-cp-toggle:hover,.pd-cp-toggle:visited,.pd-cp-toggle:active{color:#000000!important} .pd-cookie-banner-window {box-shadow: 0 0 18px rgb(0 0 0 / 20%);} ","customJavascript":{},"showPoweredBy":false,"logoHeight":40,"hybridStrict":false,"cookiesBlockedByDefault":"7","isActive":true,"implicitSavePreferences":false,"cookieIcon":false,"blockBots":false,"showCookiesDetails":true,"hasTransition":true,"blockingPage":false,"showOnlyLandingPage":false,"leaveSiteUrl":"https://www.google.com","linkRespectStoreLang":false},"cookies":{"0":[{"name":"localization","type":"http","domain":"qynda.com","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","session":false,"expires":1,"unit":"declYears","purpose":{"en":"Shopify store localization"}},{"name":"secure_customer_sig","type":"http","domain":"qynda.com","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","session":false,"expires":1,"unit":"declYears","purpose":{"en":"Used in connection with customer login."}},{"name":"_cmp_a","type":"http","domain":".qynda.com","path":"/","provider":"Shopify","firstParty":true,"retention":"1 day(s)","session":false,"expires":1,"unit":"declDays","purpose":{"en":"Used for managing customer privacy settings."}},{"name":"keep_alive","type":"http","domain":"qynda.com","path":"/","provider":"Shopify","firstParty":true,"retention":"30 minute(s)","session":false,"expires":30,"unit":"declMinutes","purpose":{"en":"Used in connection with buyer localization."}},{"name":"cookietest","type":"http","domain":"qynda.com","path":"/","provider":"Shopify","firstParty":true,"retention":"Session","session":true,"expires":1,"unit":"declSeconds","purpose":{"en":"Used to ensure our systems are working correctly."}},{"name":"_secure_session_id","type":"http","domain":"qynda.com","path":"/","provider":"Shopify","firstParty":true,"retention":"1 month(s)","session":false,"expires":1,"unit":"declMonths","purpose":{"en":"Used in connection with navigation through a storefront."}},{"name":"_pandectes_gdpr","type":"http","domain":".qynda.com","path":"/","provider":"Pandectes","firstParty":true,"retention":"1 year(s)","session":false,"expires":1,"unit":"declYears","purpose":{"en":"Used for the functionality of the cookies consent banner."}}],"1":[{"name":"wpm-domain-test","type":"http","domain":"com","path":"/","provider":"Shopify","firstParty":false,"retention":"Session","session":true,"expires":1,"unit":"declSeconds","purpose":{"en":"Used to test the storage of parameters about products added to the cart or payment currency"}}],"2":[{"name":"_shopify_y","type":"http","domain":".qynda.com","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","session":false,"expires":1,"unit":"declYears","purpose":{"en":"Shopify analytics."}}
764,{"name":"_shopify_s","type":"http","domain":".qynda.com","path":"/","provider":"Shopify","firstParty":true,"retention":"30 minute(s)","session":false,"expires":30,"unit":"declMinutes","purpose":{"en":"Shopify analytics."}},{"name":"_orig_referrer","type":"http","domain":".qynda.com","path":"/","provider":"Shopify","firstParty":true,"retention":"2 ","session":false,"expires":2,"unit":"declSession","purpose":{"en":"Tracks landing pages."}},{"name":"_landing_page","type":"http","domain":".qynda.com","path":"/","provider":"Shopify","firstParty":true,"retention":"2 ","session":false,"expires":2,"unit":"declSession","purpose":{"en":"Tracks landing pages."}},{"name":"_shopify_sa_t","type":"http","domain":".qynda.com","path":"/","provider":"Shopify","firstParty":true,"retention":"30 minute(s)","session":false,"expires":30,"unit":"declMinutes","purpose":{"en":"Shopify analytics relating to marketing & referrals."}},{"name":"_shopify_sa_p","type":"http","domain":".qynda.com","path":"/","provider":"Shopify","firstParty":true,"retention":"30 minute(s)","session":false,"expires":30,"unit":"declMinutes","purpose":{"en":"Shopify analytics relating to marketing & referrals."}},{"name":"_ga","type":"http","domain":".qynda.com","path":"/","provider":"Google","firstParty":true,"retention":"1 year(s)","session":false,"expires":1,"unit":"declYears","purpose":{"en":"Cookie is set by Google Analytics with unknown functionality"}},{"name":"_shopify_d","type":"http","domain":"com","path":"/","provider":"Shopify","firstParty":false,"retention":"Session","session":true,"expires":1,"unit":"declSeconds","purpose":{"en":"Shopify analytics."}},{"name":"_shopify_d","type":"http","domain":"qynda.com","path":"/","provider":"Shopify","firstParty":true,"retention":"Session","session":true,"expires":1,"unit":"declSeconds","purpose":{"en":"Shopify analytics."}},{"name":"_ga_Q5DKMFHGHY","type":"http","domain":".qynda.com","path":"/","provider":"Google","firstParty":true,"retention":"1 year(s)","session":false,"expires":1,"unit":"declYears","purpose":{"en":""}}],"4":[{"name":"_gcl_au","type":"http","domain":".qynda.com","path":"/","provider":"Google","firstParty":true,"retention":"3 month(s)","session":false,"expires":3,"unit":"declMonths","purpose":{"en":"Cookie is placed by Google Tag Manager to track conversions."}},{"name":"_fbp","type":"http","domain":".qynda.com","path":"/","provider":"Facebook","firstParty":true,"retention":"3 month(s)","session":false,"expires":3,"unit":"declMonths","purpose":{"en":"Cookie is placed by Facebook to track visits across websites."}},{"name":"__kla_id","type":"http","domain":"qynda.com","path":"/","provider":"Klaviyo","firstParty":true,"retention":"1 year(s)","session":false,"expires":1,"unit":"declYears","purpose":{"en":"Tracks when someone clicks through a Klaviyo email to your website."}},{"name":"wpm-domain-test","type":"http","domain":"qynda.com","path":"/","provider":"Shopify","firstParty":true,"retention":"Session","session":true,"expires":1,"unit":"declSeconds","purpose":{"en":"Used to test the storage of parameters about products added to the cart or payment currency"}},{"name":"test_cookie","type":"http","domain":".doubleclick.net","path":"/","provider":"Google","firstParty":false,"retention":"15 minute(s)","session":false,"expires":15,"unit":"declMinutes","purpose":{"en":"To measure the visitorsâ actions after they click through from an advert. Expires after each visit."}}],"8":[{"name":"_g1691420496","type":"http","domain":".qynda.com","path":"/","provider":"Unknown","firstParty":true,"retention":"Session","session":true,"expires":-54,"unit":"declYears","purpose":{"en":""}}]},"blocker":{"isActive":false,"googleConsentMode":{"id":"","analyticsId":"","isActive":false,"adStorageCategory":4,"analyticsStorageCategory":2,"personalizationStorageCategory":1,"functionalityStorageCategory":1,"customEvent":true,"securityStorageCategory":0,"redactData":true,"urlPassthrough":false},"facebookPixel":{"id":"","isActive":false,"ldu":false},"microsoft":{},"rakuten":{"isActive":false,"cmp":false,"ccpa":false},"gpcIsActive":false,"clarity":{},"defaultBlocked":7,"patterns":{"whiteList":[],"blackList":{"1":[],"2":[],"4":[],"8":[]},"iframesWhiteList":[],"iframesBlackList":{"1":[],"2":[],"4":[],"8":[]},"beaconsWhiteList":[],"beaconsBlackList":{"1":[],"2":[],"4":[],"8":[]}}}}; 765 766 window.addEventListener('DOMContentLoaded', function(){ 767 const script = document.createElement('script'); 768 769 script.src = "https://cdn.shopify.com/extensions/01a10580-fd2a-7a23-97ae-f050569f8f5d/gdpr-cookie-consent-414/assets/pandectes-core.js"; 770 771 script.defer = true; 772 document.body.appendChild(script); 773 }) 774 </script>
774 775 776 777 778 779 780 781 782<!-- END app block --><!-- BEGIN app block: shopify://apps/t-lab-ai-language-translate/blocks/language_switcher/b5b83690-efd4-434d-8c6a-a5cef4019faf --> 783 784�<!-- BEGIN app snippet: switcher_styling --> 785<style> 786 .tl-switcher-container.hidden { 787 display: none; 788 height: 0; 789 overflow: hidden; 790 opacity: 0; 791 } 792 .tl-switcher-container { 793 position: relative; 794 z-index: 1; 795 line-height: normal; 796 } 797 .tl-switcher-container.desktop { 798 display: inline-flex; 799 align-items: center; 800 } 801 .tl-switcher-container.mobile { 802 display: block; 803 } 804 .tl-custom-position { 805 position: absolute; 806 z-index: 9999; 807 box-shadow: 0 0 10px rgba(0, 0, 0, .15); 808 border-radius: 3px; 809 background-color: #fff; 810 } 811 .tl-wrapper { 812 position: relative; 813 } 814 .tl-dropdown { 815 display: none; 816 position: absolute; 817 top: 100%; 818 left: 0; 819 z-index: 1; 820 min-width: 100%; 821 border-radius: 3px; 822 box-shadow: 0 0 10px rgba(0, 0, 0, .15); 823 background-color: #fff; 824 padding: 16px 15px 17px; 825 font-weight: normal; 826 color: #000; 827 } 828 .tl-dropdown.active { 829 display: block; 830 } 831 .tl-overlay { 832 display: none; 833 position: fixed; 834 top: 0; 835 right: 0; 836 bottom: 0; 837 left: 0; 838 z-index: 9999; 839 background-color: rgba(0, 0, 0, .5); 840 align-items: center; 841 justify-content: center; 842 } 843 .tl-overlay.active { 844 display: flex; 845 } 846 .tl-overlay .tl-inner { 847 display: flex; 848 flex-direction: column; 849 justify-content: center; 850 position: relative; 851 width: 400px; 852 max-width: 95%; 853 min-height: 150px; 854 border-radius: 5px; 855 box-shadow: 0 0 15px rgba(0, 0, 0, .15); 856 background-color: #fff; 857 padding: 25px 5%; 858 } 859 .tl-switcher { 860 position: relative; 861 } 862 .tl-switcher form { 863 margin: 0; 864 overflow: visible; 865 } 866 .tl-select, 867 .tl-selection, 868 .tl-option { 869 display: flex; 870 align-items: center; 871 column-gap: 7px; 872 white-space: nowrap; 873 } 874 .tl-select { 875 border: 1px solid rgba(0, 0, 0, .15); 876 border-radius: 3px; 877 padding: 8px 10px; 878 text-align: left; 879 font-size: 14px; 880 text-transform: capitalize; 881 cursor: pointer; 882 } 883 .tl-select:after { 884 content: ""; 885 display: inline-block; 886 width: 7px; 887 height: 7px; 888 margin: 0 5px 0 auto; 889 border-width: 0 1px 1px 0; 890 border-style: solid; 891 border-color: #000; 892 opacity: 0.9; 893 transform: rotate(45deg) translate(0, -40%); 894 transition: 0.3s ease; 895 } 896 .tl-select.open:after { 897 transform: rotate(-135deg) translate(-2px, 0); 898 } 899 .tl-flag { 900 width: 18px; 901 max-width: none; 902 border-radius: 1px; 903 vertical-align: middle; 904 transition: 0.2s ease; 905 } 906 .tl-label { 907 display: inline-block; 908 vertical-align: middle; 909 overflow-x: hidden; 910 text-overflow: ellipsis; 911 } 912 .tl-name { 913 text-transform: capitalize; 914 } 915 .tl-code { 916 text-transform: uppercase; 917 } 918 .tl-selections { 919 display: flex; 920 align-items: center; 921 border: 1px solid rgba(0, 0, 0, .15); 922 border-radius: 3px; 923 } 924 .tl-selections:hover { 925 cursor: pointer; 926 } 927 .tl-selection { 928 padding: 8px 10px; 929 } 930 .tl-selection + .tl-selection { 931 margin-left: -8px; 932 } 933 .tl-invert { 934 filter: invert(100%); 935 } 936 .tl-select:has(.tl-icon):after { 937 display: none; 938 } 939 .tl-close-btn { 940 display: none; 941 } 942 .tl-title { 943 margin: 0 0 7px; 944 text-align: left; 945 font-size: 14px; 946 } 947 .tl-switcher + .tl-title { 948 margin-top: 14px; 949 } 950 .tl-options { 951 display: none; 952 list-style: none; 953 position: absolute; 954 bottom: auto; 955 top: 100%; 956 left: 0; 957 z-index: 1; 958 min-width: 100%; 959 max-height: 170px; 960 margin: 0 0; 961 border-radius: 3px; 962 box-shadow: 0 0 5px 1px rgba(0, 0, 0, .15); 963 overflow-y: auto; 964 background-color: #fff; 965 padding: 6px 1px; 966 text-align: left; 967 font-size: 14px; 968 font-weight: normal; 969 color: #000; 970 } 971 .tl-options.open { 972 display: block; 973 } 974 .tl-option { 975 padding: 5px 10px; 976 text-transform: capitalize; 977 cursor: pointer; 978 transition: 0.2s ease; 979 } 980 .tl-option::before, 981 .tl-option::after { 982 content: none !important; 983 } 984 .tl-select:focus-visible, 985 .tl-option:focus-visible, 986 .tl-selections:focus-visible, 987 .tl-close-btn:focus-visible, 988 .tl-submit-btn:focus-visible { 989 outline: 2px solid #b3b3b3; 990 outline-offset: -2px; 991 /* Blends with the theme text colour where supported, so a dark header keeps 992 a visible ring. The flat grey above stays the fallback. */ 993 outline-color: color-mix(in srgb, currentColor 40%, transparent); 994 } 995 .tl-option:hover img { 996 opacity: 0.75; 997 } 998 .tl-btn-container { 999 margin-top: 18px;
1000 text-align: center; 1001 } 1002 .tl-submit-btn { 1003 border: none; 1004 border-radius: 3px; 1005 outline: none; 1006 box-shadow: none; 1007 background-color: #333; 1008 padding: 9px 35px; 1009 font-size: 14px; 1010 font-weight: bold; 1011 color: #fff; 1012 text-transform: uppercase; 1013 cursor: pointer; 1014 transition: 0.2s ease; 1015 } 1016 .tl-submit-btn:hover { 1017 background-color: #222; 1018 } 1019 .tl-overlay .tl-close-btn { 1020 display: block; 1021 position: absolute; 1022 top: 10px; 1023 right: 15px; 1024 cursor: pointer; 1025 } 1026 .tl-overlay .tl-switcher { 1027 margin-bottom: 5px; 1028 } 1029 .tl-overlay .tl-options { 1030 padding: 8px 1px; 1031 } 1032 @supports (-webkit-hyphens:none) { 1033 .tl-select, 1034 .tl-selection, 1035 .tl-option { 1036 column-gap: 0; 1037 } 1038 .tl-select img + .tl-label, 1039 .tl-selection img + .tl-label, 1040 .tl-option img + .tl-label, 1041 div.tl-select:after { 1042 margin-left: 7px; 1043 } 1044 } 1045 .tl-switcher-container.tl-custom-position { 1046 border-width: 1px; 1047 border-style: solid; 1048 border-color: #000000; 1049 background-color: #ffffff; 1050 } 1051 .tl-custom-position.top-right { 1052 top: 55px; 1053 right: 20px; 1054 bottom: auto; 1055 left: auto; 1056 } 1057 .tl-custom-position.top-left { 1058 top: 55px; 1059 right: auto; 1060 bottom: auto; 1061 left: 20px; 1062 } 1063 .tl-custom-position.bottom-left { 1064 position: fixed; 1065 top: auto; 1066 right: auto; 1067 bottom: 20px; 1068 left: 20px; 1069 } 1070 .tl-custom-position.bottom-right { 1071 position: fixed; 1072 top: auto; 1073 right: 20px; 1074 bottom: 20px; 1075 left: auto; 1076 } 1077 .tl-custom-position > div { 1078 font-size: 14px; 1079 color: #5c5c5c; 1080 } 1081 .tl-custom-position .tl-label { 1082 color: #5c5c5c; 1083 } 1084 .tl-dropdown.bottom-right, 1085 .tl-dropdown.bottom-left { 1086 bottom: 100%; 1087 top: auto; 1088 } 1089 .tl-dropdown.top-right, 1090 .tl-dropdown.bottom-right { 1091 right: 0; 1092 left: auto; 1093 } 1094 .tl-options.bottom-right, 1095 .tl-options.bottom-left { 1096 bottom: 100%; 1097 top: auto; 1098 } 1099 .tl-options.top-right, 1100 .tl-options.bottom-right { 1101 right: 0; 1102 left: auto; 1103 } 1104 div:not(.tl-inner) > .tl-switcher .tl-select, 1105 div.tl-selections { 1106 border-width: 0px; 1107 } 1108 1109 1110</style> 1111<!-- END app snippet --> 1112
1113<script type="text/template" id="tl-switcher-template"> 1114 <div class="tl-switcher-container hidden "> 1115 1116 <!-- BEGIN app snippet: language_form --><div class="tl-switcher tl-language"><form method="post" action="/localization" id="localization_form" accept-charset="UTF-8" class="shopify-localization-form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/products/qynda-gift-card" /> 1117 <div class="tl-select" role="button" tabindex="0" aria-haspopup="listbox" aria-expanded="false"> 1118 �<!-- BEGIN app snippet: language_flag --> 1119 <img 1120 class="tl-flag" 1121 loading="lazy" 1122 width="20" 1123 height="18" 1124 alt="Language switcher country flag for English" 1125 src="https://cdn.shopify.com/extensions/01a0f19a-971b-7f79-878f-357b9347d0a0/content-translation-425/assets/gb.svg" 1126 ><!-- END app snippet --> 1127 <span class="tl-label tl-name">English</span> 1128 1129 </div> 1130 <ul class="tl-options " role="listbox" aria-label="Language">�<!-- BEGIN app snippet: switcher_option --><li 1131 class="tl-option active" 1132 role="option" 1133 tabindex="-1" 1134 aria-selected="true" 1135 data-value="en" 1136><!-- BEGIN app snippet: language_flag --> 1137 <img 1138 class="tl-flag" 1139 loading="lazy" 1140 width="20" 1141 height="18" 1142 alt="Language dropdown option country flag for English" 1143 src="https://cdn.shopify.com/extensions/01a0f19a-971b-7f79-878f-357b9347d0a0/content-translation-425/assets/gb.svg" 1144 ><!-- END app snippet --> 1145 <span class="tl-label tl-name">English</span>�</li> 1146<!-- END app snippet -->�<!-- BEGIN app snippet: switcher_option --><li 1147 class="tl-option " 1148 role="option" 1149 tabindex="-1" 1150 aria-selected="false" 1151 data-value="ar" 1152><!-- BEGIN app snippet: language_flag --> 1153 <img 1154 class="tl-flag" 1155 loading="lazy" 1156 width="20" 1157 height="18" 1158 alt="Language dropdown option country flag for Ø§ÙØ¹Ø±Ø¨ÙØ©" 1159 src="https://cdn.shopify.com/extensions/01a0f19a-971b-7f79-878f-357b9347d0a0/content-translation-425/assets/sa.svg" 1160 ><!-- END app snippet --> 1161 <span class="tl-label tl-name">Ø§ÙØ¹Ø±Ø¨ÙØ©</span>�</li> 1162<!-- END app snippet --> 1163 </ul> 1164 <input type="hidden" name="country_code" value="US"> 1165 <input type="hidden" name="language_code" value="en"></form> 1166</div> 1167<!-- END app snippet --> 1168 1169 1170 <!-- BEGIN app snippet: hidden_language_list --><div class="tl-languages-unwrap" style="display: none;"><form method="post" action="/localization" id="localization_form" accept-charset="UTF-8" class="shopify-localization-form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/products/qynda-gift-card" /> 1171 <ul class="tl-options" role="listbox" aria-label="Language">�<!-- BEGIN app snippet: switcher_option --><li 1172 class="tl-option active" 1173 role="option" 1174 tabindex="-1" 1175 aria-selected="true" 1176 data-value="en" 1177> 1178 <span class="tl-label tl-name">English</span>�</li> 1179<!-- END app snippet -->�<!-- BEGIN app snippet: switcher_option --><li 1180 class="tl-option " 1181 role="option" 1182 tabindex="-1" 1183 aria-selected="false" 1184 data-value="ar" 1185> 1186 <span class="tl-label tl-name">Ø§ÙØ¹Ø±Ø¨ÙØ©</span>�</li> 1187<!-- END app snippet --> 1188 </ul> 1189 <input type="hidden" name="country_code" value="US"> 1190 <input type="hidden" name="language_code" value="en"></form> 1191</div> 1192<!-- END app snippet --> 1193 </div> 1194</script>
1194 1195
1196<script defer="defer" src="https://cdn.shopify.com/extensions/01a0f19a-971b-7f79-878f-357b9347d0a0/content-translation-425/assets/advanced-switcher-init.js" type="text/javascript"></script>
1196 1197
1198<script> 1199 (function () { 1200 1201 if (typeof window.TranslationLab === 'undefined') { 1202 window.TranslationLab = {}; 1203 } 1204 1205 window.TranslationLab.CurrencySettings = { 1206 themeMoneyFormat: "\u003cspan class=money\u003e${{amount}}\u003c\/span\u003e", 1207 themeMoneyWithCurrencyFormat: "\u003cspan class=money\u003e${{amount}} USD\u003c\/span\u003e", 1208 format: 'money_with_currency_format', 1209 isRtl: false 1210 }; 1211 1212 window.TranslationLab.switcherSettings = { 1213 switcherMode: 'language', 1214 labelType: 'language-name', 1215 showFlags: true, 1216 useSwitcherIcon: false, 1217 imgFileTemplate: 'https://cdn.shopify.com/extensions/01a0f19a-971b-7f79-878f-357b9347d0a0/content-translation-425/assets/[country-code].svg', 1218 1219 isModal: false, 1220 1221 currencyFormatClass: 'span.money, span.tlab-currency-format, .price-item, .price, .price-sale, .price-compare, .product__price, .product__price--sale, .product__price--old, .jsPrice', 1222 shopCurrencyCode: "USD" || "USD", 1223 1224 langCurrencies: null, 1225 1226 currentLocale: 'en', 1227 languageList: [{"iso_code":"en","display_code":"en","endonym_name":"English"},{"iso_code":"ar","display_code":"ar","endonym_name":"Ø§ÙØ¹Ø±Ø¨ÙØ©"}], 1228 1229 currentCountry: 'US', 1230 availableCountries: [], 1231 1232 regionLanguages: null, 1233 1234 countryRegionAndLanguageCombinedSave: false, 1235 1236 addNoRedirect: false, 1237 addLanguageCode: false, 1238 }; 1239 1240 function getShopifyThemeName() { 1241 if (window.Shopify && window.Shopify.theme && window.Shopify.theme.name) { 1242 return window.Shopify.theme.name.toLowerCase(); 1243 } 1244 return null; 1245 } 1246 1247 function find(collection, predicate) { 1248 for (var i = 0; i < collection.length; i++) { 1249 if (predicate(collection[i])) { 1250 return collection[i]; 1251 } 1252 } 1253 return null; 1254 } 1255 1256 function getCurrenciesForLanguage(languageCode, languageCurrencies, defaultCurrencyCode) { 1257 if (!languageCode || !languageCurrencies) { 1258 return { 1259 languageCode: '', 1260 currencies: [{ code: defaultCurrencyCode }] 1261 }; 1262 } 1263 const langCodePart = languageCode.split('-')[0]; 1264 const langCurrencyMapping = find(languageCurrencies, function(x) { return x.languageCode === languageCode || x.languageCode === langCodePart; }); 1265 const defaultCurrenciesForLanguage = { 1266 languageCode: languageCode, 1267 currencies: [{ code: defaultCurrencyCode }] 1268 }; 1269 return langCurrencyMapping ?? defaultCurrenciesForLanguage; 1270 } 1271 1272 function findCurrencyForLanguage(langCurrencies, languageCode, currencyCode, defaultCurrencyCode) { 1273 if (!languageCode) return null 1274 const langCurrencyMapping = getCurrenciesForLanguage(languageCode, langCurrencies, defaultCurrencyCode); 1275 if (!currencyCode) return langCurrencyMapping.currencies[0]; 1276 const currency = find(langCurrencyMapping.currencies, function(currency) { return currency.code === currencyCode; }); 1277 if (!currency) return langCurrencyMapping.currencies[0]; 1278 return currency; 1279 } 1280 1281 function getCurrentCurrencyCode(languageCurrencies, language, shopCurrencyCode) { 1282 const queryParamCurrencyCode = getQueryParam('currency'); 1283 if (queryParamCurrencyCode) { 1284 window.TranslationLab.currencyCookie.write(queryParamCurrencyCode.toUpperCase()); 1285 deleteQueryParam('currency'); 1286 } 1287 1288 const savedCurrencyCode = window.TranslationLab.currencyCookie.read() ?? null; 1289 const currencyForCurrentLanguage = findCurrencyForLanguage(languageCurrencies, language.iso_code, savedCurrencyCode, shopCurrencyCode); 1290 return currencyForCurrentLanguage ? currencyForCurrentLanguage.code : shopCurrencyCode; 1291 } 1292 1293 function getQueryParam(param) { 1294 const queryString = window.location.search; 1295 const urlParams = new URLSearchParams(queryString); 1296 const paramValue = urlParams.get(param); 1297 return paramValue; 1298 } 1299 1300 function deleteQueryParam(param) { 1301 const url = new URL(window.location.href); 1302 url.searchParams.delete(param); 1303 window.history.replaceState({}, '', url.toString()); 1304 } 1305 1306 window.TranslationLab.currencyCookie = { 1307 name: 'translation-lab-currency', 1308 write: function (currency) { 1309 window.localStorage.setItem(this.name, currency); 1310 }, 1311 read: function () { 1312 return window.localStorage.getItem(this.name); 1313 }, 1314 destroy: function () { 1315 window.localStorage.removeItem(this.name); 1316 } 1317 } 1318 1319 window.TranslationLab.currencyService = { 1320 getCurrenciesForLanguage: getCurrenciesForLanguage, 1321 findCurrencyForLanguage: findCurrencyForLanguage, 1322 getCurrentCurrencyCode: getCurrentCurrencyCode 1323 } 1324 1325 var switcherOptions = { 1326 shopifyThemeName: getShopifyThemeName(), 1327 switcherPrototypeSelector: '.tl-switcher-container.hidden', 1328 switcherPosition: "header", 1329 headerRefElement: "", 1330 headerRelativePosition: "before", 1331 mobileRefElement: "", 1332 mobileRelativePosition: "before", 1333 }; 1334 1335 window.TranslationLab.switcherOptions = switcherOptions; 1336 1337 if (window.TranslationLab.Switcher) { 1338 window.TranslationLab.Switcher.configure(switcherOptions); 1339 } 1340 1341 })();
1342</script>
1342 1343 1344 1345
1346<script defer="defer" src="https://cdn.shopify.com/extensions/01a0f19a-971b-7f79-878f-357b9347d0a0/content-translation-425/assets/advanced-switcher.js" type="text/javascript"></script>
1346 1347 1348 1349 1350 1351<!-- END app block --><!-- BEGIN app block: shopify://apps/judge-me-reviews/blocks/judgeme_core/61ccd3b1-a9f2-4160-9fe9-4fec8413e5d8 --><!-- Start of Judge.me Core --> 1352 1353 1354 1355 1356 1357 1358 1359<link rel="dns-prefetch" href="https://cdn.judge.me"> 1360<link rel="dns-prefetch" href="https://cdn1.judge.me"> 1361<link rel="dns-prefetch" href="https://api.judge.me"> 1362
1363<script data-cfasync='false' class='jdgm-settings-script'>window.jdgmSettings={"pagination":5,"disable_web_reviews":false,"coupon_receiving_condition":"with_picture","coupon_value_type":"percentage","coupon_value_percentage":10,"coupon_value_fixed_amount":0,"coupon_discount_type":"single","coupon_tier_text_enabled":false,"coupon_tier_text_percentage":10,"coupon_tier_text_fixed_amount":0,"coupon_tier_photo_enabled":false,"coupon_tier_photo_percentage":10,"coupon_tier_photo_fixed_amount":0,"coupon_tier_video_enabled":false,"coupon_tier_video_percentage":10,"coupon_tier_video_fixed_amount":0,"enable_coupons":true,"badge_no_review_text":"No reviews","badge_n_reviews_text":"{{ n }} review/reviews","badge_star_color":"#4F0030","hide_badge_preview_if_no_reviews":true,"badge_hide_text":false,"enforce_center_preview_badge":false,"widget_title":"Customer Reviews","widget_open_form_text":"Write a review","widget_close_form_text":"Cancel review","widget_refresh_page_text":"Refresh page","widget_summary_text":"Based on {{ number_of_reviews }} review/reviews","widget_no_review_text":"Be the first to write a review","widget_name_field_text":"Display name","widget_verified_name_field_text":"Verified Name (public)","widget_name_placeholder_text":"Display name","widget_required_field_error_text":"This field is required.","widget_email_field_text":"Email address","widget_verified_email_field_text":"Verified Email (private, can not be edited)","widget_email_placeholder_text":"Your email address","widget_email_field_error_text":"Please enter a valid email address.","widget_rating_field_text":"Rating","widget_review_title_field_text":"Review Title","widget_review_title_placeholder_text":"Give your review a title","widget_review_body_field_text":"Review content","widget_review_body_placeholder_text":"Start writing here...","widget_pictures_field_text":"Picture/Video (optional)","widget_submit_review_text":"Submit Review","widget_submit_verified_review_text":"Submit Verified Review","widget_submit_success_msg_with_auto_publish":"Thank y
1363ou! Please refresh the page in a few moments to see your review. You can remove or edit your review by logging into \u003ca href='https://judge.me/login' target='_blank' rel='nofollow noopener'\u003eJudge.me\u003c/a\u003e","widget_submit_success_msg_no_auto_publish":"Thank you! Your review will be published as soon as it is approved by the shop admin. You can remove or edit your review by logging into \u003ca href='https://judge.me/login' target='_blank' rel='nofollow noopener'\u003eJudge.me\u003c/a\u003e","widget_show_default_reviews_out_of_total_text":"Showing {{ n_reviews_shown }} out of {{ n_reviews }} reviews.","widget_show_all_link_text":"Show all","widget_show_less_link_text":"Show less","widget_author_said_text":"{{ reviewer_name }} said:","widget_days_text":"{{ n }} days ago","widget_weeks_text":"{{ n }} week/weeks ago","widget_months_text":"{{ n }} month/months ago","widget_years_text":"{{ n }} year/years ago","widget_yesterday_text":"Yesterday","widget_today_text":"Today","widget_replied_text":"\u003e\u003e {{ shop_name }} replied:","widget_read_more_text":"Read more","widget_reviewer_name_as_initial":"","widget_rating_filter_color":"#fbcd0a","widget_rating_filter_see_all_text":"See all reviews","widget_sorting_most_recent_text":"Most Recent","widget_sorting_highest_rating_text":"Highest Rating","widget_sorting_lowest_rating_text":"Lowest Rating","widget_sorting_with_pictures_text":"Only Pictures","widget_sorting_most_helpful_text":"Most Helpful","widget_open_question_form_text":"Ask a question","widget_reviews_subtab_text":"Reviews","widget_questions_subtab_text":"Questions","widget_question_label_text":"Question","widget_answer_label_text":"Answer","widget_question_placeholder_text":"Write your question here","widget_submit_question_text":"Submit Question","widget_question_submit_success_text":"Thank you for your question! We will notify you once it gets answered.","widget_star_color":"#4F0030","verified_badge_text":"Verified","verified_badge_bg_color":"","verified_badge_text_color":"","verified_badge_placement":"left-of-reviewer-name","widget_review_max_height":"","widget_hide_border":false,"widget_social_share":false,"widget_thumb":false,"widget_review_location_show":false,"widget_location_format":"","all_reviews_include_out_of_store_products":true,"all_reviews_out_of_store_text":"(out of store)","all_reviews_pagination":100,"all_reviews_product_name_prefix_text":"about","enable_review_pictures":true,"enable_question_anwser":false,"widget_theme":"align","review_date_format":"mm/dd/yyyy","default_sort_method":"most-recent","enable_ai_review_visibility":true,"widget_product_reviews_subtab_text":"Product Reviews","widget_shop_reviews_subtab_text":"Shop Reviews","widget_other_products_reviews_text":"Reviews for other products","widget_store_reviews_subtab_text":"Store reviews","widget_product_variant_reference_text":"Review for","widget_no_store_reviews_text":"This store hasn't received any reviews yet","widget_web_restriction_product_reviews_text":"This product hasn't received any reviews yet","widget_no_items_text":"No items found","widget_show_more_text":"Show more","widget_write_a_store_review_text":"Write a Store Review","widget_product_and_store_reviews_text":"Product and store reviews","widget_reviews_in_collection_text":"Reviews in this collection","widget_other_languages_heading":"Reviews in Other Languages","widget_translate_review_text":"Translate review to {{ language }}","widget_translating_review_text":"Translating...","widget_show_original_translation_text":"Show original ({{ language }})","widget_translate_review_failed_text":"Review couldn't be translated.","widget_translate_review_retry_text":"Retry","widget_translate_review_try_again_later_text":"Try again later","show_product_url_for_grouped_product":true,"widget_sorting_pictures_first_text":"Pictures First","show_pictures_on_all_rev_page_mobile":false,"show_pictures_on_all_rev_page_desktop":false,"floating_tab_hide_mobile_install_preference":false,"floating_tab_button_name":"â
Reviews","floating_tab_title":"Let customers speak for us","floating_tab_button_color":"","floating_tab_button_background_color":"","floating_tab_url":"","floating_tab_url_enabled":false,"floating_tab_tab_style":"text","all_reviews_text_badge_text":"Customers rate us {{ shop.metafields.judgeme.all_reviews_rating | round: 1 }}/5 based on {{ shop.metafields.judgeme.all_reviews_count }} reviews.","all_reviews_text_badge_text_branded_style":"{{ shop.metafields.judgeme.all_reviews_rating | round: 1 }} out of 5 stars based on {{ shop.metafields.judgeme.all_reviews_count }} reviews","is_all_reviews_text_badge_a_link":false,"show_stars_for_all_reviews_text_badge":false,"all_reviews_text_badge_url":"","all_reviews_text_style":"branded","all_reviews_text_color_style":"judgeme_brand_color","all_reviews_text_color":"#108474","all_reviews_text_show_jm_brand":false,"featured_carousel_show_header":true,"featured_carousel_title":"Let customers speak for us","testimonials_carousel_title":"Customers are saying","videos_carousel_title":"Real customer stories","cards_carousel_title":"Customers are saying","featured_carousel_count_text":"from {{ n }} reviews","featured_carousel_add_link_to_all_reviews_page":false,"featured_carousel_url":"","featured_carousel_show_images":true,"featured_carousel_autoslide_interval":5,"featured_carousel_arrows_on_the_sides":false,"featured_carousel_height":250,"featured_carousel_width":80,"featured_carousel_image_size":0,"featured_carousel_image_height":250,"featured_carousel_arrow_color":"#eeeeee","verified_count_badge_style":"branded","verified_count_badge_orientation":"horizontal","verified_count_badge_color_style":"judgeme_brand_color","verified_count_badge_color":"#108474","is_verified_count_badge_a_link":false,"verified_count_badge_url":"","verified_count_badge_show_jm_brand":true,"widget_rating_preset_default":5,"widget_first_sub_tab":"product-reviews","widget_show_histogram":true,"widget_histogram_use_custom_color":false,"widget_pagination_use_custom_color":false,"widget_star_use_custom_color":false,"widget_verified_badge_use_custom_color":false,"widget_write_review_use_custom_color":false,"picture_reminder_submit_button":"Upload Pictures","enable_review_videos":true,"mute_video_by_default":false,"widget_sorting_videos_first_text":"Videos First","widget_review_pending_text":"Pending","featured_carousel_items_for_large_screen":3,"social_share_options_order":"Facebook,Twitter","remove_microdata_snippet":true,"disable_json_ld":false,"enable_json_ld_products":false,"preview_badge_show_question_text":false,"preview_badge_no_question_text":"No questions","preview_badge_n_question_text":"{{ number_of_questions }} question/questions","qa_badge_show_icon":false,"qa_badge_position":"same-row","remove_judgeme_branding":true,"widget_add_search_bar":false,"widget_search_bar_placeholder":"Search","widget_sorting_verified_only_text":"Verified only","widget_sorting_most_relevant_text":"Most Relevant","featured_carousel_theme":"default","featured_carousel_show_rating":true,"featured_carousel_show_title":true,"featured_carousel_show_body":true,"featured_carousel_show_date":false,"featured_carousel_show_reviewer":true,"featured_carousel_show_product":false,"featured_carousel_header_background_color":"#108474","featured_carousel_header_text_color":"#ffffff","featured_carousel_name_product_separator":"reviewed","featured_carousel_full_star_background":"#108474","featured_carousel_empty_star_background":"#dadada","featured_carousel_vertical_theme_background":"#f9fafb","featured_carousel_verified_badge_enable":true,"featured_carousel_verified_badge_color":"#108474","featured_carousel_border_style":"round","featured_carousel_review_line_length_limit":3,"featured_carousel_more_reviews_button_text":"Read more reviews","featured_carousel_view_product_button_text":"View product","all_reviews_page_load_reviews_on":"scroll","all_reviews_page_load_more_text":"Load More Reviews","disable_fb_tab_reviews":false,"enable_ajax_cdn_cache":false,"widget_advanced_speed_features":5,"widget_public_name_text":"displayed publicly like","default_reviewer_name":"John Smith","default_reviewer_name_has_non_latin":true,"widget_reviewer_anonymous":"Anonymous","medals_widget_title":"Judge.me Review Medals","medals_widget_background_color":"#f9fafb","medals_widget_position":"footer_all_pages","medals_widget_border_color":"#f9fafb","medals_widget_verified_text_position":"left","medals_widget_use_monochromatic_version":false,"medals_widget_elements_color":"#108474","show_reviewer_avatar":true,"widget_invalid_yt_video_url_error_text":"Not a YouTube video URL","widget_max_length_field_error_text":"Please enter no more than {0} characters.","widget_show_country_flag":true,"widget_show_collected_via_shop_app":true,"widget_verified_by_shop_badge_style":"light","widget_verified_by_shop_text":"Verified by Shop","widget_show_photo_gallery":true,"widget_load_with_code_splitting":true,"widget_ugc_install_preference":false,"widget_ugc_title":"Made by us, Shared by you","widget_ugc_subt
1363itle":"Tag us to see your picture featured in our page","widget_ugc_arrows_color":"#ffffff","widget_ugc_primary_button_text":"Buy Now","widget_ugc_primary_button_background_color":"#108474","widget_ugc_primary_button_text_color":"#ffffff","widget_ugc_primary_button_border_width":"0","widget_ugc_primary_button_border_style":"none","widget_ugc_primary_button_border_color":"#108474","widget_ugc_primary_button_border_radius":"25","widget_ugc_secondary_button_text":"Load More","widget_ugc_secondary_button_background_color":"#ffffff","widget_ugc_secondary_button_text_color":"#108474","widget_ugc_secondary_button_border_width":"2","widget_ugc_secondary_button_border_style":"solid","widget_ugc_secondary_button_border_color":"#108474","widget_ugc_secondary_button_border_radius":"25","widget_ugc_reviews_button_text":"View Reviews","widget_ugc_reviews_button_background_color":"#ffffff","widget_ugc_reviews_button_text_color":"#108474","widget_ugc_reviews_button_border_width":"2","widget_ugc_reviews_button_border_style":"solid","widget_ugc_reviews_button_border_color":"#108474","widget_ugc_reviews_button_border_radius":"25","widget_ugc_reviews_button_link_to":"judgeme-reviews-page","widget_ugc_show_post_date":true,"widget_ugc_max_width":"800","widget_rating_metafield_value_type":true,"widget_primary_color":"#000000","widget_enable_secondary_color":false,"widget_secondary_color":"#edf5f5","widget_summary_average_rating_text":"{{ average_rating }} out of 5","widget_media_grid_title":"Customer photos \u0026 videos","widget_media_grid_see_more_text":"See more","widget_round_style":false,"widget_show_product_medals":true,"widget_verified_by_judgeme_text":"Verified by Judge.me","widget_show_store_medals":true,"widget_verified_by_judgeme_text_in_store_medals":"Verified by Judge.me","widget_media_field_exceed_quantity_message":"Sorry, we can only accept {{ max_media }} for one review.","widget_media_field_exceed_limit_message":"{{ file_name }} is too large, please select a {{ media_type }} less than {{ size_limit }}MB.","widget_review_submitted_text":"Review Submitted!","widget_question_submitted_text":"Question Submitted!","widget_close_form_text_question":"Cancel","widget_write_your_answer_here_text":"Write your answer here","widget_enabled_branded_link":true,"widget_show_collected_by_judgeme":false,"widget_reviewer_name_color":"","widget_write_review_text_color":"","widget_write_review_bg_color":"","widget_collected_by_judgeme_text":"collected by Judge.me","widget_pagination_type":"standard","widget_load_more_text":"Load More","widget_load_more_color":"#108474","widget_full_review_text":"Full Review","widget_read_more_reviews_text":"Read More Reviews","widget_read_questions_text":"Read Questions","widget_questions_and_answers_text":"Questions \u0026 Answers","widget_verified_by_text":"Verified by","widget_verified_text":"Verified","widget_number_of_reviews_text":"{{ number_of_reviews }} reviews","widget_back_button_text":"Back","widget_next_button_text":"Next","widget_custom_forms_filter_button":"Filters","custom_forms_style":"horizontal","widget_show_review_information":false,"how_reviews_are_collected":"How reviews are collected?","widget_show_review_keywords":false,"widget_gdpr_statement":"How we use your data: We'll only contact you about the review you left, and only if necessary. By submitting your review, you agree to Judge.me's \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms\u003c/a\u003e, \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy\u003c/a\u003e and \u003ca href='https://judge.me/content-policy' target='_blank' rel='nofollow noopener'\u003econtent\u003c/a\u003e policies.","widget_multilingual_sorting_enabled":false,"widget_translate_review_content_enabled":false,"widget_translate_review_content_method":"manual","popup_widget_review_selection":"automatically_with_pictures","popup_widget_round_border_style":true,"popup_widget_show_title":true,"popup_widget_show_body":true,"popup_widget_show_reviewer":false,"popup_widget_show_product":true,"popup_widget_show_pictures":true,"popup_widget_use_review_picture":true,"popup_widget_show_on_home_page":true,"popup_widget_show_on_product_page":true,"popup_widget_show_on_collection_page":true,"popup_widget_show_on_cart_page":true,"popup_widget_position":"bottom_left","popup_widget_first_review_delay":5,"popup_widget_duration":5,"popup_widget_interval":5,"popup_widget_review_count":5,"popup_widget_hide_on_mobile":true,"review_snippet_widget_round_border_style":true,"review_snippet_widget_card_color":"#FFFFFF","review_snippet_widget_text_color":"#000000","review_snippet_widget_lighter_text_color":"#7B7B7B","review_snippet_widget_slider_arrows_background_color":"#FFFFFF","review_snippet_widget_slider_arrows_color":"#000000","review_snippet_widget_star_color":"#000000","show_product_variant":true,"all_reviews_product_variant_label_text":"Variant: ","widget_show_verified_branding":true,"widget_ai_summary_title":"Customers say","widget_ai_summary_disclaimer":"AI-powered review summary based on recent customer reviews","widget_show_ai_summary":false,"widget_show_ai_summary_bg":false,"write_review_button_visibility":"everyone","store_summary_widget_heading":"Customers rate this store","store_summary_widget_button_text":"View customer reviews","store_summary_widget_button_theme_text":"See AI reviews summary","widget_show_review_title_input":false,"widget_autofill_review_title":true,"redirect_reviewers_invited_via_email":"external_form","request_store_review_after_product_review":true,"request_review_other_products_in_order":true,"review_form_color_scheme":"default","review_form_corner_style":"square","review_form_star_color":"#000000","review_form_text_color":"#333333","review_form_background_color":"#ffffff","review_form_field_background_color":"#fafafa","review_form_button_color":"#000000","review_form_button_text_color":"#ffffff","review_form_modal_overlay_color":"#000000","review_form_theme":"multi_step","review_form_location":"in_store_popup","review_form_external_page_background_color":"#C5F7F0","review_content_screen_title_text":"How would you rate this product?","review_content_introduction_text":"We would love it if you would share a bit about your experience.","store_review_form_title_text":"How would you rate this store?","store_review_form_introduction_text":"We would love it if you would share a bit about your experience.","show_review_guidance_text":true,"one_star_review_guidance_text":"Poor","five_star_review_guidance_text":"Great","customer_information_screen_title_text":"About you","customer_information_introduction_text":"Please tell us more about you.","custom_questions_screen_title_text":"Your experience in more detail","custom_questions_introduction_text":"Here are a few questions to help us understand more about your experience.","review_submitted_screen_title_text":"Thanks for your review!","review_submitted_screen_thank_you_text":"We are processing it and it will appear on the store soon.","review_submitted_screen_email_verification_text":"Please confirm your email by clicking the link we just sent you. This helps us keep reviews authentic.","confirm_email_screen_title_text":"Confirm your email","confirm_email_screen_message_text":"To help keep reviews authentic, we'll send you a secure link to continue writing your review. It only takes a moment.","check_email_screen_title_text":"Check your email","check_email_screen_message_text":"We sent you an email to {{ email }}. Click the button on the email to continue.","check_email_screen_resend_message_text":"Email resent!","check_email_resend_hint_text":"Didn't get the email? Check your spam folder or [resend the email].","verification_email_rate_limit_error_text":"You've reached the limit for review attempts on this product. Please check your inbox or try again later.","review_submitted_request_store_review_text":"Would you like to share your experience of shopping with us?","review_submitted_review_other_products_text":"Would you like to review these products?","store_review_screen_title_text":"Would you like to share your experience of shopping with us?","store_review_introduction_text":"We value your feedback and use it to improve. Please share any thoughts or suggestions you have.","reviewer_media_screen_title_picture_text":"Share a picture","reviewer_media_introduction_picture_text":"Upload a photo to support your review.","reviewer_media_screen_title_video_text":"Share a video","reviewer_media_introduction_video_text":"Upload a video to support your review.","reviewer_media_screen_title_picture_or_video_text":"Share a picture or video","reviewer_media_introduction_picture_or_video_text":"Upload a photo or video to support your review.","reviewer_media_
1363youtube_url_text":"Paste your Youtube URL here","advanced_settings_next_step_button_text":"Next","advanced_settings_close_review_button_text":"Close","modal_write_review_flow":true,"write_review_flow_required_text":"Required","write_review_flow_privacy_message_text":"We respect your privacy.","write_review_flow_anonymous_text":"Post review as anonymous","write_review_flow_visibility_text":"This won't be visible to other customers.","write_review_flow_multiple_selection_help_text":"Select as many as you like","write_review_flow_single_selection_help_text":"Select one option","write_review_flow_required_field_error_text":"This field is required","write_review_flow_invalid_email_error_text":"Please enter a valid email address","write_review_flow_max_length_error_text":"Max. {{ max_length }} characters.","write_review_flow_media_upload_text":"\u003cb\u003eClick to upload\u003c/b\u003e or drag and drop","write_review_flow_gdpr_statement":"We'll only contact you about your review if necessary. By submitting your review, you agree to our \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms and conditions\u003c/a\u003e and \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy policy\u003c/a\u003e.","rating_only_reviews_enabled":false,"show_negative_reviews_help_screen":false,"new_review_flow_help_screen_rating_threshold":3,"negative_review_resolution_screen_title_text":"Tell us more","negative_review_resolution_text":"Your experience matters to us. If there were issues with your purchase, we're here to help. Feel free to reach out to us, we'd love the opportunity to make things right.","negative_review_resolution_button_text":"Contact us","negative_review_resolution_proceed_with_review_text":"Leave a review","negative_review_resolution_subject":"Issue with purchase from {{ shop_name }}.{{ order_name }}","coupon_promo_intro_any_review_text":"Write a review and get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_with_photo_text":"Write a review and add a photo or video to get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_with_video_text":"Write a review and add a video to get a coupon for {{ amount }} off your next purchase","coupon_promo_intro_up_to_any_review_text":"Write a review and get a coupon for up to {{ amount }} off your next purchase","coupon_promo_intro_up_to_with_photo_text":"Write a review and add a photo or video to get a coupon for up to {{ amount }} off your next purchase","coupon_promo_intro_external_text":"Write a review and get a reward for your next purchase","coupon_promo_intro_external_with_photo_text":"Write a review and add a photo or video to get a reward for your next purchase","coupon_promo_intro_external_with_video_text":"Write a review and add a video to get a reward for your next purchase","coupon_promo_media_photo_text":"Add a photo or video and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_photo_only_text":"Add a photo and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_video_text":"Add a video and get a coupon for {{ amount }} off your next purchase","coupon_promo_media_external_photo_text":"Add a photo or video and get a reward for your next purchase","coupon_promo_media_external_photo_only_text":"Add a photo and get a reward for your next purchase","coupon_promo_media_external_video_text":"Add a video and get a reward for your next purchase","coupon_promo_success_text":"You've got a coupon for your next purchase at {{ shop_name }}!","coupon_promo_success_subtext":"You'll receive your coupon email within the hour.","preview_badge_collection_page_install_status":false,"widget_review_custom_css":".jdgm-rev-widg__summary .jdgm-star {\nfont-size: 28px;\n}\n.jdgm-rev-widg__summary-average {\ndisplay: block;\nfont-size: 25px;\n}\n.jdgm-medals--rebranding {\ndisplay: none;\n}\n.jdgm-row-media {\nborder: none;\n}\n.jdgm-row-media div {\n border-top: 0;\n}\n.jdgm-row-actions {\nborder-top: none;\n}","preview_badge_custom_css":"","preview_badge_stars_count":"5-stars","featured_carousel_custom_css":"","floating_tab_custom_css":"","all_reviews_widget_custom_css":"","medals_widget_custom_css":"","verified_badge_custom_css":"","all_reviews_text_custom_css":"","transparency_badges_collected_via_store_invite":false,"transparency_badges_from_another_provider":false,"transparency_badges_collected_from_store_visitor":false,"transparency_badges_collected_by_verified_review_provider":false,"transparency_badges_earned_reward":false,"transparency_badges_collected_via_store_invite_text":"Review collected via store invitation","transparency_badges_from_another_provider_text":"Review collected from another provider","transparency_badges_collected_from_store_visitor_text":"Review collected from a store visitor","transparency_badges_written_in_google_text":"Review written in Google","transparency_badges_written_in_etsy_text":"Review written in Etsy","transparency_badges_written_in_shop_app_text":"Review written in Shop App","transparency_badges_earned_reward_text":"Review earned a reward for future purchase","product_review_widget_per_page":10,"widget_other_languages_reviews_per_page":3,"widget_store_review_label_text":"Review about the store","widget_cart_mode_aggregate_heading_text":"Customers rate this store","checkout_comment_extension_title_on_product_page":"Customer Comments","checkout_comment_extension_num_latest_comment_show":5,"checkout_comment_extension_format":"name_and_timestamp","checkout_comment_customer_name":"last_initial","checkout_comment_comment_notification":true,"preview_badge_collection_page_install_preference":false,"preview_badge_home_page_install_preference":false,"preview_badge_product_page_install_preference":false,"review_widget_install_preference":"","review_carousel_install_preference":false,"floating_reviews_tab_install_preference":"none","verified_reviews_count_badge_install_preference":false,"all_reviews_text_install_preference":false,"review_widget_best_location":false,"judgeme_medals_install_preference":false,"review_widget_revamp_enabled":false,"review_widget_qna_enabled":false,"review_widget_revamp_dual_publish_end_date":"2026-05-28T07:41:30.000+00:00","review_widget_header_theme":"minimal","review_widget_widget_title_enabled":true,"review_widget_header_text_size":"medium","review_widget_header_text_weight":"regular","review_widget_average_rating_style":"compact","review_widget_bar_chart_enabled":true,"review_widget_bar_chart_type":"numbers","review_widget_bar_chart_style":"standard","review_widget_expanded_media_gallery_enabled":false,"review_widget_show_review_highlights":false,"review_widget_show_review_keywords_in_gray":false,"review_widget_reviews_section_theme":"standard","review_widget_image_style":"thumbnails","review_widget_review_image_ratio":"square","review_widget_stars_size":"medium","review_widget_verified_badge":"standard_text","review_widget_review_title_text_size":"medium","review_widget_review_text_size":"medium","review_widget_review_text_length":"medium","review_widget_number_of_columns_desktop":3,"review_widget_carousel_transition_speed":5,"review_widget_custom_questions_answers_display":"always","review_widget_card_section_size":"small","review_widget_button_text_color":"#FFFFFF","review_widget_text_color":"#000000","review_widget_lighter_text_color":"#7B7B7B","review_widget_corner_styling":"soft","review_widget_review_word_singular":"review","review_widget_review_word_plural"
1363:"reviews","review_widget_voting_label":"Helpful?","review_widget_shop_reply_label":"Reply from {{ shop_name }}:","review_widget_filters_title":"Filters","review_widget_filter_rating_title":"Rating","review_widget_filter_keyword_title":"Keyword","review_widget_clear_filters_text":"Clear filters","review_widget_expand_more_text":"More","review_widget_review_highlights_title":"Review highlights","qna_widget_question_word_singular":"Question","qna_widget_question_word_plural":"Questions","qna_widget_answer_reply_label":"Answer from {{ answerer_name }}:","qna_content_screen_title_text":"Ask a question about this product","qna_widget_question_required_field_error_text":"Please enter your question.","qna_widget_flow_gdpr_statement":"We'll only contact you about your question if necessary. By submitting your question, you agree to our \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms and conditions\u003c/a\u003e and \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy policy\u003c/a\u003e.","qna_widget_question_submitted_text":"Thanks for your question!","qna_widget_close_form_text_question":"Close","qna_widget_question_submit_success_text":"Weâll notify you by email when your question is answered.","all_reviews_widget_v2025_enabled":true,"all_reviews_widget_v2025_header_theme":"default","all_reviews_widget_v2025_widget_title_enabled":true,"all_reviews_widget_v2025_header_text_size":"medium","all_reviews_widget_v2025_header_text_weight":"regular","all_reviews_widget_v2025_average_rating_style":"bold","all_reviews_widget_v2025_bar_chart_enabled":true,"all_reviews_widget_v2025_bar_chart_type":"stars","all_reviews_widget_v2025_bar_chart_style":"standard","all_reviews_widget_v2025_expanded_media_gallery_enabled":false,"all_reviews_widget_v2025_show_store_medals":true,"all_reviews_widget_v2025_show_photo_gallery":true,"all_reviews_widget_v2025_show_review_keywords":false,"all_reviews_widget_v2025_show_ai_summary":false,"all_reviews_widget_v2025_show_ai_summary_bg":false,"all_reviews_widget_v2025_show_review_highlights":false,"all_reviews_widget_v2025_show_review_keywords_in_gray":false,"all_reviews_widget_v2025_add_search_bar":false,"all_reviews_widget_v2025_default_sort_method":"most-recent","all_reviews_widget_v2025_reviews_per_page":10,"all_reviews_widget_v2025_reviews_section_theme":"cards","all_reviews_widget_v2025_image_style":"thumbnails","all_reviews_widget_v2025_review_image_ratio":"square","all_reviews_widget_v2025_stars_size":"medium","all_reviews_widget_v2025_verified_badge":"standard_text","all_reviews_widget_v2025_review_title_text_size":"medium","all_reviews_widget_v2025_review_text_size":"medium","all_reviews_widget_v2025_review_text_length":"medium","all_reviews_widget_v2025_number_of_columns_desktop":3,"all_reviews_widget_v2025_carousel_transition_speed":5,"all_reviews_widget_v2025_custom_questions_answers_display":"always","all_reviews_widget_v2025_review_dates":false,"all_reviews_widget_v2025_card_section_size":"small","all_reviews_widget_v2025_show_product_variant":true,"all_reviews_widget_v2025_show_reviewer_avatar":true,"all_reviews_widget_v2025_reviewer_name_as_initial":"","all_reviews_widget_v2025_review_location_show":false,"all_reviews_widget_v2025_location_format":"","all_reviews_widget_v2025_show_country_flag":false,"all_reviews_widget_v2025_widget_thumb":false,"all_reviews_widget_v2025_verified_by_shop_badge_style":"light","all_reviews_widget_v2025_social_share":false,"all_reviews_widget_v2025_social_share_options_order":"Facebook,Twitter,LinkedIn,Pinterest","all_reviews_widget_v2025_pagination_type":"standard","all_reviews_widget_v2025_button_text_color":"#FFFFFF","all_reviews_widget_v2025_text_color":"#000000","all_reviews_widget_v2025_lighter_text_color":"#7B7B7B","all_reviews_widget_v2025_corner_styling":"soft","all_reviews_widget_v2025_title":"Customer reviews","all_reviews_widget_v2025_ai_summary_title":"Customers say about this store","all_reviews_widget_v2025_no_review_text":"Be the first to write a review","all_reviews_widget_v2025_review_highlights_title":"Review highlights","reviews_grid_widget_show_sample_reviews":false,"reviews_grid_widget_review_selection":"all","reviews_grid_widget_select_products":[],"reviews_grid_widget_show_media_only":false,"reviews_grid_widget_display_order":"media_first","reviews_grid_widget_card_grouping":"per_media","reviews_grid_widget_columns_desktop":3,"reviews_grid_widget_rows_desktop":3,"reviews_grid_widget_columns_mobile":2,"reviews_grid_widget_rows_mobile":6,"reviews_grid_widget_show_stars":true,"reviews_grid_widget_show_reviewer_name":true,"reviews_grid_widget_show_review_title_on_hover_desktop":true,"reviews_grid_widget_corner_styling":"soft","reviews_grid_widget_card_spacing":"medium","reviews_grid_widget_header_text_color":"#000000","reviews_grid_widget_star_and_reviewer_name_color":"#F9F9F9","reviews_grid_widget_overlay_and_background_color":"#000000","reviews_grid_widget_content_color":"#F9F9F9","reviews_grid_widget_header_text":"From our customers","reviews_grid_widget_show_average_rating":true,"trust_badge_enabled":false,"trust_badge_structure":"outline","trust_badge_color":"black","trust_badge_star":"black","trust_badge_rating_display_default":"show_avg_text","platform":"shopify","branding_url":"https://app.judge.me/reviews","branding_text":"Powered by Judge.me","locale":"en","reply_name":"QYNDA","shop_currency":"USD","widget_version":"3.0","footer":true,"autopublish":true,"review_dates":true,"enable_custom_form":false,"shop_locale":"en","enable_multi_locales_translations":true,"show_review_title_input":false,"autofill_review_title":true,"review_verification_email_status":"always","require_verification_before_submit":false,"sign_in_with_
1363shop_enabled":false,"customer_account_validation_enabled":true,"most_relevant_sort_enabled":false,"coupon_promo_invited_eligible":true,"coupon_promo_web_eligible":false,"uses_coupon_integration":false,"uses_external_coupon":false,"can_be_branded":true,"rtl_stars_enabled_ar":true,"rtl_stars_enabled_he":true,"reply_name_text":"QYNDA"};</script>
1363 <style class='jdgm-settings-style'>.jdgm-xx{left:0}:root{--jdgm-primary-color: #000;--jdgm-secondary-color: rgba(0,0,0,0.1);--jdgm-star-color: #4F0030;--jdgm-write-review-text-color: white;--jdgm-write-review-bg-color: #000000;--jdgm-paginate-color: #000;--jdgm-border-radius: 0;--jdgm-reviewer-name-color: #000000}.jdgm-histogram__bar-content{background-color:#000}.jdgm-rev[data-verified-buyer=true] .jdgm-rev__icon.jdgm-rev__icon:after,.jdgm-rev__buyer-badge.jdgm-rev__buyer-badge{color:white;background-color:#000}.jdgm-review-widget--small .jdgm-gallery.jdgm-gallery .jdgm-gallery__thumbnail-link:nth-child(8) .jdgm-gallery__thumbnail-wrapper.jdgm-gallery__thumbnail-wrapper:before{content:"See more"}@media only screen and (min-width: 768px){.jdgm-gallery.jdgm-gallery .jdgm-gallery__thumbnail-link:nth-child(8) .jdgm-gallery__thumbnail-wrapper.jdgm-gallery__thumbnail-wrapper:before{content:"See more"}}.jdgm-preview-badge .jdgm-star.jdgm-star{color:#4F0030}.jdgm-prev-badge[data-average-rating='0.00']{display:none !important}.jdgm-author-all-initials{display:none !important}.jdgm-author-last-initial{display:none !important}.jdgm-rev-widg__title{visibility:hidden}.jdgm-rev-widg__summary-text{visibility:hidden}.jdgm-prev-badge__text{visibility:hidden}.jdgm-rev__prod-link-prefix:before{content:'about'}.jdgm-rev__variant-label:before{content:'Variant: '}.jdgm-rev__out-of-store-text:before{content:'(out of store)'}@media only screen and (min-width: 768px){.jdgm-rev__pics .jdgm-rev_all-rev-page-picture-separator,.jdgm-rev__pics .jdgm-rev__product-picture{display:none}}@media only screen and (max-width: 768px){.jdgm-rev__pics .jdgm-rev_all-rev-page-picture-separator,.jdgm-rev__pics .jdgm-rev__product-picture{display:none}}.jdgm-preview-badge[data-template="product"]{display:none !important}.jdgm-preview-badge[data-template="collection"]{display:none !important}.jdgm-preview-badge[data-template="index"]{display:none !important}.jdgm-review-widget[data-from-snippet="true"]{display:none !important}.jdgm-verified-count-badget[data-from-snippet="true"]{display:none !important}.jdgm-carousel-wrapper[data-from-snippet="true"]{display:none !important}.jdgm-all-reviews-text[data-from-snippet="true"]{display:none !important}.jdgm-medals-section[data-from-snippet="true"]{display:none !important}.jdgm-ugc-media-wrapper[data-from-snippet="true"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_via_store_invitation"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_from_another_provider"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_from_store_visitor"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_written_in_etsy"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_written_in_google_business"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_written_in_shop_app"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_earned_for_future_purchase"]{display:none !important}.jdgm-review-snippet-widget{--jdgm-snippet-card-color: #fff;--jdgm-snippet-text-color: #000;--jdgm-snippet-lighter-text-color: #7B7B7B;--jdgm-snippet-star-color: #000;--jdgm-snippet-border-radius: 8px;--jdgm-snippet-arrows-bg-color: #fff;--jdgm-snippet-arrows-color: #000}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__cards-container .jdgm-rev-snippet-card{border-radius:8px;background:#fff}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__cards-container .jdgm-rev-snippet-card__rev-rating .jdgm-star{color:#000}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__prev-btn,.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__next-btn{border-radius:50%;background:#fff}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__prev-btn>svg,.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__next-btn>svg{fill:#000}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jm-mfp-content,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__icon,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__pic-img,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__reply{border-radius:8px}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev[data-verified-buyer="true"] .jdgm-full-rev__icon::after{border-radius:8px}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-rev__buyer-badge{border-radius:calc( 8px / 2 )}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-full-rev__replier::before{content:'QYNDA'}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-full-rev__product-button{border-radius:calc( 8px * 6 )} 1364</style> <style class='jdgm-settings-style'>.jdgm-review-widget .jdgm-rev-widg__summary .jdgm-star{font-size:28px}.jdgm-review-widget .jdgm-rev-widg__summary-average{display:block;font-size:25px}.jdgm-review-widget .jdgm-medals--rebranding{display:none}.jdgm-review-widget .jdgm-row-media{border:none}.jdgm-review-widget .jdgm-row-media div{border-top:0}.jdgm-review-widget .jdgm-row-actions{border-top:none} 1365</style> 1366 1367 1368 1369 1370 <style class='jdgm-miracle-styles'> 1371 @-webkit-keyframes jdgm-spin{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes jdgm-spin{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@font-face{font-family:'JudgemeStar';src:url("data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAAScAA0AAAAABrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEgAAAABoAAAAcbyQ+3kdERUYAAARgAAAAHgAAACAAMwAGT1MvMgAAAZgAAABGAAAAVi+vS9xjbWFwAAAB8AAAAEAAAAFKwBMjvmdhc3AAAARYAAAACAAAAAj//wADZ2x5ZgAAAkAAAAEJAAABdH33LXtoZWFkAAABMAAAAC0AAAA2BroQKWhoZWEAAAFgAAAAHAAAACQD5QHQaG10eAAAAeAAAAAPAAAAFAYAAABsb2NhAAACMAAAAA4AAAAOAO4AeG1heHAAAAF8AAAAHAAAACAASgAvbmFtZQAAA0wAAADeAAABkorWfVZwb3N0AAAELAAAACkAAABEp3ubLXgBY2BkYADhPPP4OfH8Nl8ZuJkYQODS2fRrCPr/aSYGxq1ALgcDWBoAO60LkwAAAHgBY2BkYGDc+v80gx4TAwgASaAICmABAFB+Arl4AWNgZGBgYGPQYWBiAAIwyQgWc2AAAwAHVQB6eAFjYGRiYJzAwMrAwejDmMbAwOAOpb8ySDK0MDAwMbByMsCBAAMCBKS5pjA4PGB4wMR44P8BBj3GrQymQGFGkBwAjtgK
1371/gAAeAFjYoAAEA1jAwAAZAAHAHgB3crBCcAwDEPRZydkih567CDdf4ZskmLwFBV8xBfCaC4BXkOUmx4sU0h2ngNb9V0vQCxaRKIAevT7fGWuBrEAAAAAAAAAAAA0AHgAugAAeAF9z79Kw1AUx/FzTm7un6QmJtwmQ5Bg1abgEGr/BAqlU6Gju+Cgg1MkQ/sA7Vj7BOnmO/gUvo2Lo14NqIO6/IazfD8HEODtmQCfoANwNsyp2/GJt3WKQrd1NLiYYWx2PBqOsmJMEOznPOTzfSCrhAtbbLdmeFLJV9eKd63WLrZcIcuaEVdssWCKM6pLCfTVOYbz/0pNSMSZKLIZpvh78sAUH6PlMrreTCabP9r+Z/puPZ2ur/RqpQHgh+MIegCnXeM4MRAPjYN//5tj4ZtTjkFqEdmeMShlEJ7tVAly2TAkx6R68Fl4E/aVvn8JqHFQ4JS1434gXKcuL31dDhzs3YbsEOAd/IU88gAAAHgBfY4xTgMxEEVfkk0AgRCioKFxQYd2ZRtpixxgRU2RfhU5q5VWseQ4JdfgAJyBlmNwAM7ABRhZQ0ORwp7nr+eZAa54YwYg9zm3ynPOeFRe8MCrciXOh/KSS76UV5L/iDmrLiS5AeU519wrL3jmSbkS5115yR2fyivJv9kx0ZMZ2RLZw27q87iNQi8EBo5FSPIMw3HqBboi5lKTGAGDp8FKXWP+t9TU01Lj5His1Ba6uM9dTEMwvrFmbf5GC/q2drW3ruXUhhsCiQOjznFlCzYhHUZp4xp76vsvQh89CQAAeAFjYGJABowM6IANLMrEyMTIzMjCXpyRWJBqZshWXJJYBKOMAFHFBucAAAAAAAAB//8AAngBY2BkYGDgA2IJBhBgAvKZGViBJAuYxwAABJsAOgAAeAFjYGBgZACCk535hiD60tn0azAaAEqpB6wAAA==") format("woff");font-weight:normal;font-style:normal}.jdgm-star{font-family:'JudgemeStar';display:inline !important;text-decoration:none !important;padding:0 4px 0 0 !important;margin:0 !important;font-weight:bold;opacity:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.jdgm-star:hover{opacity:1}.jdgm-star:last-of-type{padding:0 !important}.jdgm-star.jdgm--on:before{content:"\e000"}.jdgm-star.jdgm--off:before{content:"\e001"}.jdgm-star.jdgm--half:before{content:"\e002"}.jdgm-widget *{margin:0;line-height:1.4;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch}.jdgm-hidden{display:none !important;visibility:hidden !important}.jdgm-temp-hidden{display:none}.jdgm-spinner{width:40px;height:40px;margin:auto;border-radius:50%;border-top:2px solid #eee;border-right:2px solid #eee;border-bottom:2px solid #eee;border-left:2px solid #ccc;-webkit-animation:jdgm-spin 0.8s infinite linear;animation:jdgm-spin 0.8s infinite linear}.jdgm-spinner:empty{display:block}.jdgm-prev-badge{display:block !important} 1372 1373</style> 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 <link id="judgeme_widget_align_css" rel="stylesheet" type="text/css" media="nope!" onload="this.media='all'" href="https://cdn.shopify.com/extensions/01a0fd03-c455-7b82-9766-74101e55572c/judgeme-771/assets/widget_v3_theme_align.css"> 1387 1388 1389 1390
1391<script data-cfasync='false' class='jdgm-script'> 1392!function(e){window.jdgm=window.jdgm||{}; 1393/* INF-1976 */ 1394var _jdgmBlocked=function(){var raw=(window.jdgmSettings||{}).hostname_allowlist;var list=(raw==null?"":""+raw).split(/[\s,]+/).map(function(h){return h.trim().toLowerCase().replace(/\.$/,"");}).filter(function(h){return h;});if(!list.length)return false;var host=(e.location.hostname||"").toLowerCase().replace(/\.$/,"");if(/(^|\.)shopifypreview\.com$/.test(host))return false;var bare=host.replace(/^www\./,"");for(var i=0;i<list.length;i++){var en=list[i];if(en.indexOf("*.")===0){var b=en.slice(2);if(host===b||host.slice(-(b.length+1))==="."+b)return false;}else if(bare===en.replace(/^www\./,""))return false;}return true;}(); 1395if(_jdgmBlocked){jdgm._loaderExecuted=true;jdgm._blocked=true;var _jdgmS=e.createElement("style");_jdgmS.textContent='[class^="jdgm-"],[class*=" jdgm-"]{display:none !important}';(e.head||e.documentElement).appendChild(_jdgmS);return;} 1396jdgm.CDN_HOST="https://cdnwidget.judge.me/",jdgm.CDN_HOST_ALT="https://cdn2.judge.me/cdn/widget_frontend/",jdgm.API_HOST="https://api.judge.me/",jdgm.CDN_BASE_URL="https://cdn.shopify.com/extensions/01a0fd03-c455-7b82-9766-74101e55572c/judgeme-771/assets/",jdgm.CDN_API_HOST="https://cdn.judge.me/", 1397jdgm.docReady=function(d){(e.attachEvent?"complete"===e.readyState:"loading"!==e.readyState)? 1398setTimeout(d,0):e.addEventListener("DOMContentLoaded",d)},jdgm.loadCSS=function(d,t,o,a){ 1399!o&&jdgm.loadCSS.requestedUrls.indexOf(d)>=0||(jdgm.loadCSS.requestedUrls.push(d), 1400(a=e.createElement("link")).rel="stylesheet",a.class="jdgm-stylesheet",a.media="nope!", 1401a.href=d,a.onload=function(){this.media="all",t&&setTimeout(t)},e.body.appendChild(a))}, 1402jdgm.loadCSS.requestedUrls=[],jdgm.loadJS=function(e,d){var t=new XMLHttpRequest; 1403t.onreadystatechange=function(){4===t.readyState&&t.status>=200&&t.status<300&&(Function(t.response)(),d&&d(t.response))}, 1404t.open("GET",e),t.onerror=function(){if(e.indexOf(jdgm.CDN_HOST)===0&&jdgm.CDN_HOST_ALT!==jdgm.CDN_HOST){var f=e.replace(jdgm.CDN_HOST,jdgm.CDN_HOST_ALT);jdgm.loadJS(f,d)}},t.send()},jdgm.docReady((function(){(window.jdgmLoadCSS||e.querySelectorAll( 1405".jdgm-widget, .jdgm-all-reviews-page").length>0)&&(jdgmSettings.widget_load_with_code_splitting? 1406parseFloat(jdgmSettings.widget_version)>=3?jdgm.loadCSS(jdgm.CDN_BASE_URL+"widget_v3_base.css"): 1407jdgm.loadCSS(jdgm.CDN_BASE_URL+"widget_base.css"):jdgm.loadCSS(jdgm.CDN_BASE_URL+"shopify_v2.css") 1408)}))}(document); 1409</script>
1409 1410<noscript><link rel="stylesheet" type="text/css" media="all" href="https://cdn.shopify.com/extensions/01a0fd03-c455-7b82-9766-74101e55572c/judgeme-771/assets/shopify_v2.css"></noscript> 1411 1412<!-- BEGIN app snippet: theme_fix_tags -->
1412<script> 1413 (function() { 1414 var jdgmThemeFixes = null; 1415 if (!jdgmThemeFixes) return; 1416 1417 // "All themes" fix: CSS and JS applied on every theme. CSS is injected 1418 // before the per-theme fix so the theme-specific CSS wins the cascade. 1419 // HTML is never applied globally (too risky). 1420 var allThemesFix = jdgmThemeFixes['all']; 1421 if (allThemesFix && allThemesFix.css) { 1422 var allStyleTag = document.createElement('style'); 1423 allStyleTag.classList.add('jdgm-theme-fix-style-all'); 1424 allStyleTag.innerHTML = allThemesFix.css; 1425 document.head.append(allStyleTag); 1426 }; 1427 1428 if (allThemesFix && allThemesFix.js) { 1429 var allScriptTag = document.createElement('script'); 1430 allScriptTag.classList.add('jdgm-theme-fix-script-all'); 1431 allScriptTag.innerHTML = allThemesFix.js; 1432 document.head.append(allScriptTag); 1433 }; 1434 1435 var thisThemeFix = jdgmThemeFixes[Shopify.theme.id]; 1436 if (!thisThemeFix) return; 1437 1438 if (thisThemeFix.html) { 1439 document.addEventListener("DOMContentLoaded", function() { 1440 var htmlDiv = document.createElement('div'); 1441 htmlDiv.classList.add('jdgm-theme-fix-html'); 1442 htmlDiv.innerHTML = thisThemeFix.html; 1443 document.body.append(htmlDiv); 1444 }); 1445 }; 1446 1447 if (thisThemeFix.css) { 1448 var styleTag = document.createElement('style'); 1449 styleTag.classList.add('jdgm-theme-fix-style'); 1450 styleTag.innerHTML = thisThemeFix.css; 1451 document.head.append(styleTag); 1452 }; 1453 1454 if (thisThemeFix.js) { 1455 var scriptTag = document.createElement('script'); 1456 scriptTag.classList.add('jdgm-theme-fix-script'); 1457 scriptTag.innerHTML = thisThemeFix.js; 1458 document.head.append(scriptTag); 1459 }; 1460 })(); 1461</script>
1461 1462<!-- END app snippet --> 1463<!-- End of Judge.me Core --> 1464 1465 1466 1467<!-- END app block --><!-- BEGIN app block: shopify://apps/t-lab-ai-language-translate/blocks/custom_translations/b5b83690-efd4-434d-8c6a-a5cef4019faf --><!-- BEGIN app snippet: custom_translation_scripts -->
1467<script> 1468var __assign=this&&this.__assign||function(){return(__assign=Object.assign||function(r){for(var n,t=1,e=arguments.length;t<e;t++)for(var a in n=arguments[t])Object.prototype.hasOwnProperty.call(n,a)&&(r[a]=n[a]);return r}).apply(this,arguments)},__spreadArray=this&&this.__spreadArray||function(r,n,t){if(t||2===arguments.length)for(var e,a=0,i=n.length;a<i;a++)!e&&a in n||((e=e||Array.prototype.slice.call(n,0,a))[a]=n[a]);return r.concat(e||Array.prototype.slice.call(n))};(()=>{var C=/\([0-9]+?\)$/,G=/\r?\n|\r|\t|\xa0|\u200B|\u200E| | /g,t=/<\/?[a-z][\s\S]*>/i,p=/^(https?:\/\/|\/\/)[^\s/$.?#].[^\s]*$/i,J=/\{\{\s*([a-zA-Z_]\w*)\s*\}\}/g,g=/\{\{\s*([a-zA-Z_]\w*)\s*\}\}/,tr=/\{\{\s*[a-zA-Z_]\w*\s*\}\}/g,l=/^(https:)?\/\/cdn\.shopify\.com\/(.+)\.(png|jpe?g|gif|webp|svgz?|bmp|tiff?|ico|avif)/i,m=/^(https:)?\/\/cdn\.shopify\.com/i,s=/\b(?:https?|ftp)?:?\/\/?[^\s\/]+\/[^\s]+\.(?:png|jpe?g|gif|webp|svgz?|bmp|tiff?|ico|avif)\b/i,h=/url\(['"]?(.*?)['"]?\)/,d="__label:",n=document.createElement("textarea"),o=new DOMParser,z=new Set(["SCRIPT","IFRAME","OBJECT","EMBED","LINK","META","BASE"]),W=/^(on\w+|srcdoc)$/i,F=/(expression|javascript:|@import|url\s*\()/i,q=new Set(["href","action","formaction","xlink:href"]),er=/^(?:javascript|vbscript|data):/i,ar=document.createElement("template"),O={t:"a",i:"button",u:"div",o:"iframe",l:"img",v:"input",p:"p",g:"picture",m:"section",h:"source",T:"span",S:"textarea",_:"video"},x={M:["src","data-src","data-source","data-href","data-zoom","data-master","data-bg","base-src"],A:"src",k:"data-src",I:["srcset","data-srcset"],R:"srcset",C:"data-srcset",O:["alt"],N:["href","data-href"],D:["href","data-href","data-src","data-zoom"],L:["src","data-src","data-bg"],P:["data-bgset"],H:["data-href"],U:["src"],j:["srcset","data-srcset"],W:["src"],F:["src"],q:["poster"],G:"value",J:"type",$:"value",B:["placeholder"],V:["placeholder"],Y:["data-label","title"],Z:["data-tooltip"],X:"class",K:"href"},k=Array.from(new Set(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray(__spreadArray([],x.M,!0),x.I,!0),x.F,!0),x.q,!0),x.O,!0),["style"],!1),x.P,!0))),ir=new Set(k),ur=new Set([O.l,O.g,O.i,O.p,O.t,O.v]),or=new Set([O.l,O.g,O.u,O.m,O._]),I=new Set([O.l,O.h]),fr=new Set([O.g,O._]),R=[O.l,O.g,O.h].join(", "),N=[O._,"".concat(O.u,"[data-bg]"),"".concat(O.u,"[data-src]"),"".concat(O.u,"[data-bgset]"),"".concat(O.m,"[data-bg]"),"".concat(O.m,"[data-src]"),"".concat(O.m,"[data-bgset]")].join(", "),u=R+", "+N,cr=16.67,lr=500,D=function(r){return r.nodeType===Node.ELEMENT_NODE},L=function(r){return r.nodeType===Node.TEXT_NODE};function P(r){return r&&"none"!==r&&(r=r.match(h))&&r[1]?r[1]:null}function H(r){r=r.trim();return l.test(r)||s.test(r)}function U(r){return t.test(r)}function j(r){r=r.trim();return"/"===r[0]&&"/"!==r[1]}var $=function(r){return!r||0===r.trim().length};function B(r){return r.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function V(t){var e=new Map;return{get:function(r){var n;if(e.has(r))return n=e.get(r),e.delete(r),e.set(r,n),n},set:function(r,n){e.has(r)?e.delete(r):e.size>=t&&e.delete(e.keys().next().value),e.set(r,n)}}}function Y(r,n){var t=r.get(n);return t||r.set(n,t=[]),t}function Z(r){return-1===r.indexOf("&")?r:(n.innerHTML=r,n.value)}function v(r){return X(Z(r))}function X(r){return r.trim().replace(C,"").replace(G,"").trim()}var b=1e3;function K(r){var n=r.length>b;return{key:n?gr(r):r,rr:n,nr:r.length}}function Q(r){return K(r.trim().replace(G,"").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'").replace(/&/g,"&").trim())}function rr(r){return Q(r).key}var w=/<\s*([a-z][\w:-]*)\b(?:[^>"']|"[^"]*"|'[^']*')*>/gi,f="__IGNORED__";function r(r){return new RegExp("(\\s)(".concat(r,")\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s\"'=<>]+)"),"i")}var a,i,c=[{name:x.X,pattern:r(x.X)},{name:x.K,pattern:r(x.K),tr:O.t}];function sr(r){return r.replace(w,function(r,n){for(var t,e=n.toLowerCase(),a=r,i=0;i<c.length;i++){var u=c[i];void 0!==u.tr&&u.tr!==e||(t=a,u=u.pattern,a=t.replace(u,function(r,n,t){return"".concat(n).concat(t,'="').concat(f,'"')}))}return a})}function dr(r){for(var n,t=[],e=/<\s*(\/?)\s*([a-z][\w:-]*)\b/gi;null!==(n=e.exec(r));)t.push(n[1]+n[2].toLowerCase());return t.join("|")}function vr(r){for(var r=o.parseFromString(r,"text/html"),i=r.body.querySelectorAll("*"),n=function(r){for(var a=i[r],n=Array.from(a.attributes).map(function(r){var n,t,e=r.name.toLowerCase();return{name:e,value:(n=a.localName,t=e,c.some(function(r){return r.name===t&&(void 0===r.tr||r.tr===n)})?f:r.value)}}).sort(function(r,n){return r.name.localeCompare(n.name)||r.value.localeCompare(n.value)});0<a.attributes.length;)a.removeAttribute(a.attributes[0].name);for(var t=0;t<n.length;t++){var e=n[t];a.setAttribute(e.name,e.value)}},t=0;t<i.length;t++)n(t);return r.body.innerHTML}function T(r,n,t){r=r.getAttribute(t);null===r?n.removeAttribute(t):n.setAttribute(t,r)}function pr(r,n){var r=o.parseFromString(r,"text/html"),n=o.parseFromString(n,"text/html"),t=r.body.querySelectorAll("*"),e=n.body.querySelectorAll("*");if(((r,n)=>{if(r.length===n.length){for(var t=0;t<r.length;t++)if(r[t].localName!==n[t].localName)return;return 1}})(t,e))for(var a=0;a<t.length;a++)T(t[a],e[a],x.X);var i=r.body.querySelectorAll(O.t),u=n.body.querySelectorAll(O.t);if(i.length!==u.length)return null;for(a=0;a<i.length;a++)T(i[a],u[a],x.K);return n.body.innerHTML}function nr(r){return r.trim().toLowerCase().replace(/^https:/i,"")}function gr(r){for(var n=5381,t=0;t<r.length;t++)n=(n<<5)+n^r.charCodeAt(t);return(n>>>0).toString(36)}function mr(r,n,t){void 0===t&&(t=20);for(var e=r,a=0;e&&e.parentElement&&a<t;){for(var i=e.parentElement,u=0,o=n;u<o.length;u++)for(var f=o[u],c=0,l=f.er;c<l.length;c++){var s=l[c];switch(s.type){case"class":for(var d=0,v=i.classList;d<v.length;d++){var p=v[d];if(s.value.test(p))return f.label}break;case"id":if(i.id&&s.value.test(i.id))return f.label;break;case"attribute":if(i.hasAttribute(s.name)){if(!s.value)return f.label;var g=i.getAttribute(s.name);if(g&&s.value.test(g))return f.label}}}e=i,a++}return"unknown"}function hr(){var l=/([^\s]+)\.(png|jpe?g|gif|webp|svgz?|bmp|tiff?|ico|avif)$/i,s=/_(\{width\}x*|\{width\}x\{height\}|\d{3,4}x\d{3,4}|\d{3,4}x|x\d{3,4}|pinco|icon|thumb|small|compact|medium|large|grande|original|master)(_crop_\w+)*(@[2-3]x)*(.progressive)*$/i,d=/^(https?|ftp|file):\/\//i;function t(r){var n,t="".concat(r.path).concat(r.ar).concat(null!=(t=r.size)?t:"",".").concat(r.ir);return r.ur&&(t="".concat(r.path).concat(r.ur,"/").concat(r.ar).concat(null!=(n=r.size)?n:"",".").concat(r.ir)),r.host&&(t="".concat(null!=(n=r.protocol)?n:"","//").concat(r.host).concat(t)),r.cr&&(t+=r.cr),t}return{lr:function(r){var n,t=!0,e=(d.test(r)||r.startsWith("//")||(t=!1,r="https://example.com"+r),t);r.startsWith("//")&&(e=!1,r="https:"+r);try{n=new URL(r)}catch(r){return null}var a,i,u,o,f,c,r=n.pathname.split("/").filter(function(r){return r});return r.length<1||(i=r.pop(),a=null!=(a=r.pop())?a:null,null===(i=i.match(l)))?null:(c=i[1],i=i[2],u=c.match(s),o=c,(f=null)!==u&&(o=c.substring(0,u.
1468index),f=u[0]),c=0<r.length?"/"+r.join("/")+"/":"/",{protocol:e?n.protocol:null,host:t?n.host:null,path:c,cr:n.search,ur:a,ar:o,size:f,ir:i,version:n.searchParams.get("v"),width:n.searchParams.get("width")})},sr:t,dr:function(r){var n=r.ur?"/".concat(r.ur):"";return"".concat(n,"/").concat(r.ar,".").concat(r.ir)},vr:function(r,n){return t(__assign(__assign({},n),{size:r.size}))}}}function y(p,r){var u={},o={},f=new Map,c=[],l=new Map,s=new Map,d=new Map,v=new Map,i=new Map,a=new Map,t=new Map,g=function(r){return r.toLowerCase().replace(/[\s\W_]+/g,"")},m=new Set(r.pr.map(g)),h=0,b=0,w=0,T=!1,y=!1,S=!0,_=[],M=new Set,A=/\w/;function E(r){if(!u[r])for(var n=0;n<_.length;n++){var t=_[n];if(!(r===t||r.length>t.length))for(var e=t.indexOf(r);-1!==e;){var a=0<e?t[e-1]:null,i=e+r.length<t.length?t[e+r.length]:null;if(!(null!==a&&A.test(a)||null!==i&&A.test(i)))return u[r]=t,void((a=f.get(r))&&(o[r]=X(a)));e=t.indexOf(r,e+1)}}}var k=hr();function I(r,n,t){return r&&n&&!(0<m.size&&m.has(g(r)))&&(t.set(r,n),T=!0)}function R(r){var n=k.dr(r);return["".concat(n,"?v=").concat(r.version||"0").toLowerCase(),n.toLowerCase()]}function H(r){var n=[nr(r)],r=k.lr(r);if(r)for(var t=0,e=R(r);t<e.length;t++){var a=e[t];n.push(a)}return n}var U=16;function C(r,f,c,i,n){if(0!==f.size){var l=new Set,s=[];f.forEach(function(r,n){for(var t=new Set,e=r;e;){var a=c(e);if(-1!==a.indexOf(n))return void s.push(n);if(a.some(function(r){return t.has(r)}))break;for(var i=0,u=a;i<u.length;i++){var o=u[i];t.add(o)}e=(r=>{for(var n=0,t=c(r);n<t.length;n++){var e=t[n];if(l.has(e))return null!=(e=f.get(e))?e:null}return null})(e)}l.add(n)});for(var t=0,e=s;t<e.length;t++){var a=e[t];f.delete(a),null!=n&&n(a,null)}var u=[];f.forEach(function(r,n){for(var t=r,e=U;0<e;e--){var a=i(t);if(!a)break;t=a}t!==r&&u.push([n,t])});for(var o=0,d=u;o<d.length;o++){var v=d[o],a=v[0],v=v[1];f.set(a,v),null!=n&&n(a,v)}(0<s.length||0<u.length)&&p.log("dictionary","Cycles resolved in ".concat(r,". Dropped:"),s,"Collapsed:",u)}}var e=new Map;function j(r,n){r=e.get(r);r&&(null===n?f.delete(r):f.set(r,n))}function z(r,n){var t,e;return $(r)||0===f.size&&0===c.length?null:(t=X(r),S||M.has(t)||!f.has(t)||(M.add(t),E(t)),(e=u[t])&&(p.log("dictionary",'Overlapping text: "'.concat(r,'" related to html: "').concat(e,'"')),n)&&(r=>{if(r&&!D(r.textContent))for(var n=x(r.outerHTML),t=n.gr,e=(n.mr||(t=0),r.parentElement),a=0;e&&a<5;){if(D(e.textContent))return;var i=x(e.outerHTML),u=i.mr,i=i.gr;if(u){if(p.log("dictionary","Ancestor depth ".concat(a,": overlap score=").concat(i.toFixed(3),", base=").concat(t.toFixed(3))),t<i)return 1;if(i<t&&0<t)return}e=e.parentElement,a++}})(n)?(p.log("dictionary",'Skipping text translation for "'.concat(r,'" because an ancestor HTML translation exists')),null):f.get(t)||($(e=r)||0===c.length?null:(e=e.trim(),void 0===(n=N.get(e))&&(n=(r=>{for(var n,t,e=r.replace(/\s+/g,""),a=0;a<c.length;a++){var i=c[a];if(!i.hr||-1!==e.indexOf(i.hr)){var u=r.match(i.br);if(u&&1<u.length){n=i.mr,t=u;break}}}if(n&&t){var o=t.slice(1),f=n.match(J);if(f&&f.length===o.length)return f.reduce(function(r,n,t){return r.replace(n,function(){return o[t]})},n)}return null})(e),N.set(e,n)),n)))}var O=V(500);function x(r){if($(r)||0===l.size)return{mr:null,gr:0};var r=Q(r),t=r.key;if(t.length>b)return{mr:null,gr:0};var e=null,a=0,n=l.get(t);if(null!=n)return{mr:n,gr:1};if(r.rr)return{mr:null,gr:0};n=O.get(t);if(n)return n;l.forEach(function(r,n){-1!==n.indexOf(t)&&(n=t.length/n.length,a<n)&&(a=n,e=r)});r={mr:e,gr:a};return O.set(t,r),r}var N=V(1e3);function D(r){var n=w;if(r&&!(r.length<=n))for(var t=0,e=0;e<r.length;e++){var a=r.charCodeAt(e);if(32!==a&&9!==a&&10!==a&&13!==a&&160!==a&&8203!==a&&8206!==a&&++t>n)return!0}return!1}function W(r){if($(r)||0===l.size)return null;var n=l.get(rr(r));if(null!=n)return n;if(0===s.size)return null;if(-1===r.indexOf("<"))return null;var n=dr(r),t=v.get(n);if(!t||0===t.length)return null;var e,n=sr(r),n=d.get(n);if(n&&0<n.length)return e=n[0].mr,n.some(function(r){return r.mr!==e})?null:pr(r,e);for(var a=vr(r),i=null,u=0;u<t.length;u++){var o=t[u];
1468if(null!=o.wr||(o.wr=vr(o.Tr)),a===o.wr){if(i&&i.mr!==o.mr)return null;i=o}}return i?pr(r,i.mr):null}function L(r){if(!$(r)&&0!==i.size){var n=i.get(nr(r));if(n)return n;n=k.lr(r);if(n)for(var t=0,e=R(n);t<e.length;t++){var a=e[t],a=i.get(a);if(a)return a}}return null}function P(r){return!$(r)&&0!==a.size&&null!=(r=a.get(nr(r)))?r:null}function F(r){var n;return!$(r)&&0!==t.size&&null!=(n=null!=(n=t.get(X(r)))?n:t.get(rr(r)))?n:null}function q(){var r={yr:f,Sr:c.map(function(r){return{pattern:r.br.source,mr:r.mr}}),_r:l,Mr:i,Ar:a,Er:t,kr:T,Ir:0<i.size,Rr:h,Cr:o};return JSON.stringify(r,function(r,n){var t;return n instanceof Map?(t={},n.forEach(function(r,n){t[String(n)]=r}),t):n})}return{Or:function(r,n){I(r,n,f)},Nr:function(r,n){if(r&&n&&!(0<m.size&&m.has(g(r)))){var r=r.trim(),t=r.match(J);if(t&&0!==t.length){var e,a=B(r);t.forEach(function(r){a=a.replace(B(r),function(){return"([\\s\\S]*)"})}),a="\\s*"+(a=a.replace(/\s+/g,"\\s+"))+"\\s*";try{e=new RegExp("^"+a+"$")}catch(r){return void p.log("dictionary","Skipping invalid string template pattern",a,String(r))}for(var i=r.split(tr).map(function(r){return r.replace(/\s+/g,"")}),u="",o=0;o<i.length;o++)i[o].length>u.length&&(u=i[o]);c.push({br:e,mr:n,hr:u}),T=!0}}},Dr:function(r,n){var t,e,a;r!==n&&I(e=(t=K(Z(r).trim().replace(G,"").trim())).key,n,l)&&((a=s.get(r))?(a.mr=n,a.wr=void 0):(a={mr:n,Tr:sr(r)},s.set(r,a),Y(d,a.Tr).push(a),Y(v,dr(r)).push(a)),h=Math.max(h,r.length),b=Math.max(b,e.length),w=Math.max(w,t.nr))},Lr:function(r,n){if(I(r,n,i),r=k.lr(r))for(var t=0,e=R(r);t<e.length;t++)I(e[t],n,i)},Pr:function(r,n){I(r,n,a)},Hr:function(r,n,t){I(r,t,a),I(n,t,f),e.set(r,n)},Ur:function(r,n){y=!0,I(r,n,t)},jr:function(){var n,t,e;return C("images",i,H,L),C("links",a,function(r){return[nr(r)]},P,j),p.log("dictionary","Translation dictionaries: ",q),0<l.size&&0<f.size&&(n=Array.from(f.keys()),_=Array.from(l.keys()),S=!1,t=0,(e=function(){for(var r=performance.now();t<n.length;)if(E(n[t++]),8<=performance.now()-r)return void window.setTimeout(e,0);S=!0,p.log("dictionary","appliedTextTranslations: ",function(){return JSON.stringify(o)}),p.log("dictionary","overlappingTexts: ",function(){return JSON.stringify(u)})})()),{kr:T,Ir:0<i.size,zr:y,Wr:D,Fr:z,qr:W,Gr:L,Jr:P,$r:F}}}}function S(r,n,t){function l(r,n){n=r.split(n);return 2===n.length?n[1].trim()?n:[n[0]]:[r]}var s=y(t,n);return r.forEach(function(r){if(r){var f,c=r.name,r=r.value;if(c&&r){if("string"==typeof r)try{f=JSON.parse(r)}catch(r){return void t.log("dictionary","Invalid metafield JSON for "+c,function(){return String(r)})}else f=r;f&&Object.keys(f).forEach(function(e){if(e){var r,n,a=f[e];if(a)if(e!==a)if(c.includes("judge"))r=v(e),s.Ur(r,a);else if(e.startsWith("[img-src]"))n=nr(e.replace("[img-src]","")),s.Lr(n,a);else if(U(e))s.Dr(e,a);else if(H(e))n=nr(e),s.Lr(n,a);else if(r=(r=e).trim(),p.test(r)||m.test(r))n=nr(e),s.Pr(n,a);else if(j(e))n=nr(e),o=v(e),s.Hr(n,o,a);else if(g.test(e))s.Nr(e,a);else if(e.startsWith(d))n=a.replace(d,""),o=e.replace(d,""),s.Or(v(o),n);else{if("product_tags"===c)for(var t=0,i=["_",":"];t<i.length;t++){var u=(r=>{if(e.includes(r)){var n=l(e,r),t=l(a,r);if(n.length===t.length)return n.forEach(function(r,n){r!==t[n]&&(s.Or(v(r),t[n]),s.Or(v("".concat(r,":")),"".concat(t[n],":")))}),{value:void 0}}})(i[t]);if("object"==typeof u)return u.value}var o=v(e);o!==a&&s.Or(o,a)}}})}}}),s.jr()}function _(u,a){var e=[{label:"judge-me",er:[{type:"class",value:/jdgm/i},{type:"class",value:/^jm-review/i},{type:"id",value:/judge-me/i},{type:"attribute",name:"data-widget-name",value:/review_widget/i}]}],f=hr(),n=new Set(a.Br),i=0,o=new WeakMap;function c(r){var n,t=r.parentElement;return t?(n=o.get(t))&&n.Vr===i?n.Yr:(n=mr(r,e,5),o.set(t,{Vr:i,Yr:n}),n):mr(r,e,5)}var l=new WeakMap;function s(r,n,t){r.getAttribute(n)!==t&&r.setAttribute(n,t);var e=l.get(r);e||l.set(r,e={}),e[n]=t}function d(r,n,t){r=l.get(r);return r&&r[n]===t}function v(r,n,t){if(r.hasAttributes())for(var e=0;e<n.length;e++){var a=n[e],i=r.getAttribute(a);!i||d(r,a,i)||(i=t(a,i))&&s(r,a,i)}}function p(r,n,t){v(r,n,function(r,n){return r.includes("href")&&null!=(r=t.Jr(n))?r:t.Fr(n)})}function g(r,n,t){v(r,n,function(r,n){return t.Jr(n)})}function m(r,n,t){v(r,[n],function(r,n){return t.Fr(n)})}function h(r,n,t){for(var e,a,i,u,o,f=0;f<n.length;f++)a=n[f],i=t,o=u=void 0,(o=(e=r).getAttribute(a))&&!d(e,a,o)&&(o=nr(o.split("&")[0]),(u=S(o,i))?s(e,a,u):(u=i.Jr(o))&&s(e,a,u))}function b(r,n,t){for(var e,a,i,u,o=0;o<n.length;o++)a=n[o],i=t,u=void 0,(u=(e=r).getAttribute(a))&&!d(e,a,u)&&(u=((r,n)=>{if(0!==(r=r.split(",").filter(function(r){return r&&""!==r.trim()}).map(y)).length){var t=r[0].url,t=S(t=r[0].version?"".concat(t,"?").concat(r[0].version):t,n);if(t){var u=f.lr(t);if(u)return r.map(function(r){var n,t,e=u,a=r.url,i=f.lr(a);return i&&(a=f.vr(i,e)),r.Zr&&(i=r.Zr.split("&"),n=i.map(function(r){return r.split("=")[0]}),e=a.indexOf("?"),t=-1===e?[]:a.slice(e+1).split("&").filter(function(r){return-1===n.indexOf(r.split("=")[0])}),e=-1===e?a:a.slice(0,e),a="".concat(e,"?").concat(t.concat(i).join("&"))),a=r.size?"".concat(a," ").concat(r.size):a}).join(",")}}})(u,i))&&s(e,a,u)}function w(r,n){for(var t=r.childNodes,e=0;e<t.length;e++){var a=t[e],i=a.localName?n[a.localName]:null;i&&i(a)}}function T(r){return(r=r&&(null==(r=r.split(",")[0])?void 0:r.trim()))&&r.split(/\s+/)[0]||null}function y(r){var r=r.trim().split(/\s+/),n=r[0].split("?"),t=n[0],n=n[1],n=n?n.split("&"):[];
1468return{url:t,version:((r,n)=>{for(var t=0;t<r.length;t++)if(n(r[t]))return r[t];return null})(n,function(r){return r.startsWith("v=")}),Zr:n.filter(function(r){return!r.startsWith("v=")}).join("&"),size:r[1]}}function S(r,n){var t=f.lr(r);return null===t?null:(r=n.Gr(r))?null===(r=f.lr(r))?null:f.vr(t,r):(r=f.dr(t),null===(n=n.Gr(r))||null===(r=f.lr(n))?null:f.vr(t,r))}function _(r,n,t){var e,a;if(e=x.D,a=n,v(r,e,function(r,n){return H(n)?a.Gr(n):a.Jr(n)}),t.Xr)for(var i=r,u=x.N,o=t.Kr,f=0;f<u.length;f++){var c,l=u[f],s=i.getAttribute(l);s&&(c=s===o||s.startsWith(o+"/")||s.startsWith(o+"?")||s.startsWith(o+"#"),j(s))&&!c&&(c="".concat(o).concat(s),i.setAttribute(l,c))}}function M(r,n){((r,n)=>{if(r instanceof HTMLImageElement&&!r.getAttribute(x.A))for(var t=[r.currentSrc,r.getAttribute(x.k),T(r.getAttribute(x.R)),T(r.getAttribute(x.C))],e=0;e<t.length;e++){var a=t[e];if(a){a=S(a,n);if(a)return s(r,x.A,a)}}})(r,n),h(r,x.M,n),b(r,x.I,n),p(r,x.O,n)}function A(r,n){h(r,x.U,n),b(r,x.j,n)}function E(r,n){g(r,x.U,n)}function k(r,n){var n=u.Gr(n);return!!n&&(n='url("'.concat(n,'")'),r.style.backgroundImage!==n)&&(r.style.backgroundImage=n,!0)}function I(r){var n,t,e,a,i;switch(r.localName){case O.l:M(r,u);break;case O.g:i=u,w(a=r,((a={})[O.h]=function(r){return A(r,i)},a[O.l]=function(r){return M(r,i)},a));break;case O.u:case O.m:a=u,(e=P((t=r).style.backgroundImage||t.getAttribute("data-bg")||""))&&k(t,e),h(t,x.L,a),b(t,x.P,a),p(t,x.H,a);break;case O._:n=u,g(e=r,x.F,n),h(e,x.q,n),w(e,((e={})[O.h]=function(r){return E(r,n)},e));break;case O.h:((null==(t=r.parentElement)?void 0:t.localName)===O._?E:A)(r,u)}}function R(r,n){n=(r=>{var n=ar;
1468try{n.innerHTML=r;for(var t=[],e=document.createTreeWalker(n.content,NodeFilter.SHOW_ELEMENT),a=e.nextNode();a;a=e.nextNode()){var i=a;if(z.has(i.nodeName))t.push(i);else{for(var u,o=i.attributes.length-1;0<=o;--o){var f,c=i.attributes[o].name;W.test(c)?i.removeAttribute(c):q.has(c.toLowerCase())&&(f=(i.attributes[o].value||"").replace(/[\u0000-\u0020]+/g,""),er.test(f))&&i.removeAttribute(c)}i.hasAttribute("style")&&(u=i.getAttribute("style")||"",F.test(u))&&i.removeAttribute("style")}}for(o=0;o<t.length;o++)t[o].remove();return n.innerHTML}finally{n.innerHTML=""}})(n);return r.innerHTML!==n&&(r.innerHTML=n,1)}return{Qr:function(r){return!(!r||!D(r)||n.has((r=r).localName)||r.classList.contains("tl-switcher-container")||(r=r.parentNode)&&["SCRIPT","STYLE"].includes(r.nodeName.toUpperCase()))},rn:function(r){if(L(r)&&null!=(n=r.textContent)&&n.trim()){if(u.zr)if("judge-me"===c(r)){var n=u.$r(r.textContent);if(n)return void(r.textContent=Z(n))}var t=u.Fr(r.textContent,r.parentElement||void 0);t&&(U(t)?(n=r.parentElement)&&1===n.childNodes.length&&R(n,t):(n=r.textContent.trim().replace(C,"").trim(),r.textContent=Z(r.textContent.replace(n,function(){return t}))))}},nn:function(r){if(!!$(r.textContent)||!r.innerHTML)return!1;if(u.zr&&"judge-me"===c(r)){var n=null!=(n=u.$r(r.innerHTML))?n:u.$r(r.textContent);if(n&&R(r,n))return!0}n=u.Wr(r.textContent)?null:u.qr(r.innerHTML);return!(!n||!R(r,n))},tn:function(r){switch(p(r,x.Y,u),r.localName){case O.T:p(r,x.Z,u);break;case O.t:_(r,u,a);break;case O.v:t=u,!(e=(n=r).getAttribute(x.J))||"submit"!==e&&"button"!==e||m(n,x.$,t),p(n,x.B,t);break;case O.S:p(r,x.V,u);break;case O.l:case O.g:case O.u:case O.m:case O._:I(r);break;case O.i:m(r,x.G,u);break;case O.o:g(r,x.W,u)}var n,t,e},en:I,an:k,un:function(r){var n;return!!r&&(n=r.localName,!!or.has(n)||n===O.h&&!!r.parentElement&&fr.has(r.parentElement.localName))},on:function(r){return u.zr||!u.Wr(r.textContent)},zr:function(){return u.zr},fn:function(){i++},Ir:function(){return u.Ir},getImageTranslation:function(r){return S(r,u)}}}function e(n){var t=[],e=0;function a(){0!==e&&(e===t.length?e=t.length=0:64<e&&t.length<=2*e&&(t.splice(0,e),e=0))}
1468return{cn:function(r){return!(n<=t.length-e||(a(),t.push(r),0))},ln:function(){var r;return t.length<=e?(a(),null):(r=t[e++],a(),r)},sn:function(){return e<t.length}}}function br(r,t){var n=new Map([["high",0],["normal",1],["deferred",2]]);function u(r){return null!=(r=n.get(r))?r:1}var o=[e(r),e(r),e(r)],f=new WeakMap;function i(r){var n=navigator.scheduling;return n&&"function"==typeof n.isInputPending&&n.isInputPending()||performance.now()-r>=t}function c(){return o[0].sn()||o[1].sn()||o[2].sn()}function l(r,n,t,e){if(void 0===e&&(e=!1),r.sn()){if(!e&&i(n))return!1;e=r.ln();e&&e.isActive&&((n=f.get(e.node))&&n[e.kind]===e&&delete n[e.kind],t(e))}return!0}return{dn:function(r,n,t,e){var a=f.get(r),i=null!=(i=null==a?void 0:a[n])?i:null;return i&&u(e)>=u(i.priority)?"deduped":(t={node:r,kind:n,source:t,priority:e,isActive:!0},o[u(e)].cn(t)?(i&&(i.isActive=!1),a?a[n]=t:f.set(r,((e={})[n]=t,e)),"enqueued"):"dropped")},vn:c,pn:function(r){var n=performance.now();if(c()){for(var t=0;t<o.length;t++)l(o[t],n,r,!0);for(;!i(n);){for(var e=!1,t=0;t<o.length;t++){var a=o[t];if(a.sn()){e=!0;if(!l(a,n,r))return}}if(!e)break}}}}}function wr(v,t){var p=new WeakSet,g=new WeakMap,m=new WeakSet;function e(r,n){return!(!r.isConnected||!v.un(r)||(v.en(r),t.log("media","Processed media attributes immediately",n,r),0))}function a(r,n){for(var t=0;t<r.length;t++)e(r[t],n)}function i(r,n,t){D(r)&&(e(r,n),I.has(r.localName)||a(r.querySelectorAll(t),n))}function n(){if(v.Ir()){for(var r=document.querySelectorAll('[style*="background"]'),n=0;n<r.length;n++)s(r[n]);for(var t=[],e=document.styleSheets,n=0;n<e.length;n++){var a=e[n];if(!p.has(a)){var i=void 0;try{i=a.cssRules}catch(r){p.add(a);continue}var u=g.get(a);if(u&&u.gn===i.length)for(var o=0;o<u.mn.length;o++)t.push(u.mn[o]);else{var f=[];d(i,f),g.set(a,{gn:i.length,mn:f});for(o=0;o<f.length;o++)t.push(f[o])}}}if(0<t.length)for(var c=0;c<t.length;c+=200)for(var l=document.querySelectorAll(t.slice(c,c+200).join(", ")),n=0;n<l.length;n++)s(l[n])}function s(r){var n;m.has(r)||(n=P(getComputedStyle(r).backgroundImage))&&v.an(r,n)&&m.add(r)}function d(r,n){for(var t=0;t<r.length;t++){var e,a=r[t];a.type===CSSRule.STYLE_RULE?((r,n)=>{var t;if(null!=(t=r.style)&&t.backgroundImage&&r.selectorText){try{document.documentElement.matches(r.selectorText)}catch(r){return}n.push(r.selectorText)}})(a,n):(e=void 0,(e=(a=a).type===CSSRule.MEDIA_RULE?(e=a,"function"!=typeof window.matchMedia||window.matchMedia(e.conditionText).matches?e.cssRules:null):"cssRules"in a?a.cssRules:null)&&d(e,n))}}}return{hn:e,bn:function(r,n){i(r,n,u)},wn:function(r,n){i(r,n,N)},Tn:function(r){a(document.querySelectorAll(u),r),n()},yn:n}}function M(p,g,m){var a=br(lr,2*cr),h=new WeakMap,t=new WeakMap,r=null,i=null,u=!1,b=wr(p,m);function o(){null===r&&a.vn()&&(r=requestAnimationFrame(d))}function w(r,n,t,e){if(r&&("subtree"!==n||r.nodeType!==Node.TEXT_NODE||p.Qr(r.parentElement))&&("subtree"===n||r.isConnected)){t=a.dn(r,n,t,e);if("enqueued"!==t)return"dropped"!==t||(u=!0,m.log("messageHandler","Dropped work item, queue full:",n,r),!1);"subtree"===n&&D(r)&&"deferred"===e&&i&&i.observe(r),o()}return!0}function T(r,n){return r.nodeType===Node.TEXT_NODE?w(r,"characterData",n,"high"):!p.Qr(r)||w(r,"subtree",n,ur.has(r.localName)?"high":i?"deferred":"normal")}function e(){if(document.body){for(var r=document.createTreeWalker(document.body,NodeFilter.SHOW_TEXT),n=[],t=r.nextNode();t;t=r.nextNode())n.push(t);for(var e,a=0;a<n.length;a++)L(e=n[a])&&e.isConnected&&p.Qr(e.parentElement)&&null!=(e=e.textContent)&&e.trim()&&f(n[a])}}function f(r){var n;!p.Qr(r.parentElement)||h.has(r)&&r.textContent===h.get(r)||(n=r.textContent,p.rn(r),r.textContent!==n&&h.set(r,null!=(n=r.textContent)?n:""))}var c=new WeakMap;function l(r){for(var n=r.childNodes,t=!0,e=0;e<n.length;e++)T(n[e],"continuation")||(t=!1);return t}function n(r){r=r.node;if(i&&D(r)&&i.unobserve(r),r.isConnected)if(r.nodeType===Node.TEXT_NODE)f(r);else if(p.Qr(r))if(m.log("messageHandler","Processing element:",r),p.Qr(r)){if(p.tn(r),!(r!==document.body&&p.on(r)))return void(n=r.textContent,n="".concat(r.childNodes.length,":").concat(n?gr(n):""),c.get(r)===n||l(r)&&c.set(r,n));var n=r.innerHTML;t.get(r)!==n&&(p.nn(r)?r.innerHTML!==n&&t.set(r,r.innerHTML):(m.log("messageHandler","Child nodes:",r.childNodes),l(r)))}}function s(r){switch(r.kind){case"subtree":n(r);break;
1468case"attributes":p.Qr(r.node)&&p.tn(r.node);break;case"mediaAttributes":b.hn(r.node,r.source);break;case"mediaSubtree":b.wn(r.node,r.source);break;case"characterData":!g.Sn&&"mutation"===r.source||f(r.node)}}function d(){try{a.pn(s)}finally{r=null,o()}}"undefined"!=typeof IntersectionObserver&&(i=new IntersectionObserver(function(r){for(var n=0;n<r.length;n++){var t=r[n];t.isIntersecting&&(null!=i&&i.unobserve(t.target),w(t.target,"subtree","intersection","high"))}},{rootMargin:"300px"}));var v=["class","id","data-widget-name"],y=new Set(v),S=p.zr(),_={subtree:!0,childList:!0,attributes:!0,attributeFilter:g._n?void 0:S?k.concat(v):k,characterData:g.Sn},M=new WeakMap;var A=new MutationObserver(function(r){m.log("observer","Observer:",r);for(var n=0;n<r.length;n++){var t=r[n];switch(t.type){case"childList":S&&p.fn();for(var e=t.addedNodes,a=0;a<e.length;a++){o=u=i=void 0;var i=e[a];if(D(i))if(I.has(i.localName)||i.localName===O.g)b.bn(i,"mutation");else{for(var u=i.querySelectorAll(R),o=0;o<u.length;o++)b.hn(u[o],"mutation");(p.un(i)||i.querySelector(N))&&w(i,"mediaSubtree","mutation","high")}if(T(e[a],"mutation"),g.Mn&&D(e[a])&&e[a].shadowRoot){var f=e[a].shadowRoot;A.observe(f,_);for(var c=0;c<f.childNodes.length;c++)T(f.childNodes[c],"mutation")}}break;case"attributes":S&&t.attributeName&&y.has(t.attributeName)&&p.fn();var l=t.target;if(p.Qr(l)){var s=l;if(t.attributeName&&ir.has(t.attributeName)&&p.un(s)){if("style"===t.attributeName){var d=s.style.backgroundImage||"";if(M.get(s)===d)break;M.set(s,d)}b.hn(s,"mutation");break}g._n&&s&&w(s,"attributes","mutation","normal")}break;case"characterData":if(g.Sn){var v=t.target;if(v&&v.nodeType===Node.TEXT_NODE){if(h.has(v)&&v.textContent===h.get(v))break;w(v,"characterData","mutation","high")}}}}}),E=(A.observe(document.documentElement,_),!1);return{An:function(){if(e(),document.body)for(var r=document.createTreeWalker(document.body,NodeFilter.SHOW_ELEMENT),n=r.nextNode();n;n=r.nextNode()){var t=n;p.Qr(t)&&p.tn(t)}!document.body||E&&!u||(u=!1,w(document.body,"subtree","page-load","high")),E?b.yn():(b.Tn("page-load"),E=!0)}}}void 0===window.TranslationLab&&(window.TranslationLab={}),window.TranslationLab.CustomTranslations=(a=(()=>{var a;try{a=window.localStorage.getItem("tlab_debug_mode")||null}catch(r){a=null}return{log:function(r,n){for(var t=[],e=2;e<arguments.length;e++)t[e-2]=arguments[e];!a||"observer"===r&&"all"===a||("all"===a||a===r||"custom"===r&&"custom"===a)&&(r=t.map(function(r){if("function"==typeof r)try{return r()}catch(r){return"Error generating parameter: ".concat(r.message)}return r}),console.log.apply(console,[n].concat(r)))}}})(),i=null,{init:function(r,n){var t,e;r&&!r.isPrimaryLocale&&r.translationsMetadata&&r.translationsMetadata.length&&(0<(n=((r,n,t,e)=>{function a(r,n){for(var t=[],e=2;e<arguments.length;e++)t[e-2]=arguments[e];for(var a=0,i=t;a<i.length;a++){var u=i[a];if(u&&void 0!==u[r])return u[r]}return n}var i=null;try{i=window.localStorage.getItem("tlab_feature_options")}catch(r){e.log("dictionary","localStorage unavailable for tlab_feature_options",String(r))}var u=null;if(i)try{u=JSON.parse(i)}catch(r){e.log("dictionary","Invalid tlab_feature_options JSON",String(r))}var t=a("useMessageHandler",!0,u,i=t),o=a("localizeUrls",!1,u,i),f=a("processShadowRoot",!1,u,i),c=a("attributesMutations",!1,u,i),l=a("processCharacterData",!1,u,i),s=a("excludedTemplates",[],u,i),u=a("phraseIgnoreList",[],u,i);return e.log("dictionary","useMessageHandler:",t),e.log("dictionary","localizeUrls:",o),e.log("dictionary","processShadowRoot:",f),e.log("dictionary","attributesMutations:",c),e.log("dictionary","processCharacterData:",l),e.log("dictionary","excludedTemplates:",s),e.log("dictionary","phraseIgnoreList:",u),{Br:["html","head","meta","script","noscript","style","link","canvas","svg","g","path","ellipse","br","hr"],locale:r,Kr:n,kn:t,Xr:o,Mn:f,_n:c,Sn:l,En:s,pr:u}})(r.locale,r.Kr,n,a)).En.length&&n.En.includes(r.template)||n.kn&&(r=S(r.translationsMetadata,n,a),t=i=_(r,n),r.kr)&&(e=M(t,n,a),r=function(){e.An(),window.setTimeout(function(){return e.An()},500)},"loading"===document.readyState?window.addEventListener("DOMContentLoaded",r,{once:!0}):r(),"complete"!==document.readyState)&&window.addEventListener("load",function(){return e.An()},{once:!0}))},getImageTranslation:function(r){return a.log("dictionary","translationManager: ",i),i?i.getImageTranslation(r):null}})})(); 1469</script>
1469<!-- END app snippet -->
1469<script> 1470 (function() { 1471 var ctx = { 1472 locale: "en", 1473 isPrimaryLocale: true, 1474 rootUrl: "", 1475 translationsMetadata: [], 1476 template: "product.gift-card", 1477 }; 1478 var settings = null; 1479 TranslationLab.CustomTranslations.init(ctx, settings); 1480 })(); 1481</script>
1481 1482 1483 1484<!-- END app block --><!-- BEGIN app block: shopify://apps/klaviyo-email-marketing-sms/blocks/klaviyo-onsite-embed/2632fe16-c075-4321-a88b-50b567f42507 --> 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497
1497<script async src="https://static.klaviyo.com/onsite/js/Skg2RQ/klaviyo.js?company_id=Skg2RQ"></script>
1497 1498
1498<script>!function(){if(!window.klaviyo){window._klOnsite=window._klOnsite||[];try{window.klaviyo=new Proxy({},{get:function(n,i){return"push"===i?function(){var n;(n=window._klOnsite).push.apply(n,arguments)}:function(){for(var n=arguments.length,o=new Array(n),w=0;w<n;w++)o[w]=arguments[w];var t="function"==typeof o[o.length-1]?o.pop():void 0,e=new Promise((function(n){window._klOnsite.push([i].concat(o,[function(i){t&&t(i),n(i)}]))}));return e}}})}catch(n){window.klaviyo=window.klaviyo||[],window.klaviyo.push=function(){var n;(n=window._klOnsite).push.apply(n,arguments)}}}}();</script>
1498 1499 1500 1501
1501<script id="viewed_product"> 1502 if (item == null) { 1503 var _learnq = _learnq || []; 1504 1505 var MetafieldReviews = null 1506 var MetafieldYotpoRating = null 1507 var MetafieldYotpoCount = null 1508 var MetafieldLooxRating = null 1509 var MetafieldLooxCount = null 1510 var okendoProduct = null 1511 var okendoProductReviewCount = null 1512 var okendoProductReviewAverageValue = null 1513 try { 1514 // The following fields are used for Customer Hub recently viewed in order to add reviews. 1515 // This information is not part of __kla_viewed. Instead, it is part of __kla_viewed_reviewed_items 1516 MetafieldReviews = {}; 1517 MetafieldYotpoRating = null 1518 MetafieldYotpoCount = null 1519 MetafieldLooxRating = null 1520 MetafieldLooxCount = null 1521 1522 okendoProduct = null 1523 // If the okendo metafield is not legacy, it will error, which then requires the new json formatted data 1524 if (okendoProduct && 'error' in okendoProduct) { 1525 okendoProduct = null 1526 } 1527 okendoProductReviewCount = okendoProduct ? okendoProduct.reviewCount : null 1528 okendoProductReviewAverageValue = okendoProduct ? okendoProduct.reviewAverageValue : null 1529 } catch (error) { 1530 console.error('Error in Klaviyo onsite reviews tracking:', error); 1531 } 1532 1533 var item = { 1534 Name: "QYNDA GIFT Card", 1535 ProductID: 11184018325777, 1536 Categories: [], 1537 ImageURL: "https://qynda.com/cdn/shop/files/Qynda-Digital-Gift-Card-Design-02_jpg_grande.jpg?v=1787564353", 1538 URL: "https://qynda.com/products/qynda-gift-card", 1539 Brand: "QYNDA", 1540 Price: "$100.00", 1541 Value: "100.00", 1542 CompareAtPrice: "$0.00" 1543 }; 1544 _learnq.push(['track', 'Viewed Product', item]); 1545 _learnq.push(['trackViewedItem', { 1546 Title: item.Name, 1547 ItemId: item.ProductID, 1548 Categories: item.Categories, 1549 ImageUrl: item.ImageURL, 1550 Url: item.URL, 1551 Metadata: { 1552 Brand: item.Brand, 1553 Price: item.Price, 1554 Value: item.Value, 1555 CompareAtPrice: item.CompareAtPrice 1556 }, 1557 metafields:{ 1558 reviews: MetafieldReviews, 1559 yotpo:{ 1560 rating: MetafieldYotpoRating, 1561 count: MetafieldYotpoCount, 1562 }, 1563 loox:{ 1564 rating: MetafieldLooxRating, 1565 count: MetafieldLooxCount, 1566 }, 1567 okendo: { 1568 rating: okendoProductReviewAverageValue, 1569 count: okendoProductReviewCount, 1570 } 1571 } 1572 }]); 1573 } 1574 </script>
1574 1575 1576 1577 1578 1579 1580
1580<script> 1581 window.klaviyoReviewsProductDesignMode = false 1582 </script>
1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592<!-- END app block -->
1592<script src="https://cdn.shopify.com/extensions/01a0fd03-c455-7b82-9766-74101e55572c/judgeme-771/assets/loader.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 1592
1592
1593<script src="https://cdn.shopify.com/extensions/01a0d722-0867-7a28-bc93-1d8af6336bdd/dondy-whatsapp-chat-widget-99/assets/ChatBubble.js" type="text/javascript" defer="defer"></script>
1593 1594<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
1595<script>(function(){if ("sendBeacon" in navigator && "performance" in window) {try {var session_token_from_headers = performance.getEntriesByType('navigation')[0].serverTiming.find(x => x.name == '_s').description;} catch {var session_token_from_headers = undefined;}var session_cookie_matches = document.cookie.match(/_shopify_s=([^;]*)/);var session_token_from_cookie = session_cookie_matches && session_cookie_matches.length === 2 ? session_cookie_matches[1] : "";var session_token = session_token_from_headers || session_token_from_cookie || "";function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 73720693009,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "product"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 1595
1595
1596<script> 1597 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 1598</script>
vendor: 1 bytes, line 1598
1598
1599<script>(function(){var wpmLoader=function(){"use strict";var e=/Googlebot|Storebot-Google|bingbot|Baiduspider|YandexBot|DuckDuckBot|Slurp|facebookexternalhit|Twitterbot|LinkedInBot|Applebot|AdsBot-Google|Mediapartners-Google|APIs-Google|PetalBot|SemrushBot|AhrefsBot|MJ12bot|DotBot|Acunetix|PerplexityBot|Perplexity-User/i,t=/bytedance/i;function i(){try{var e=document.cookie;if(!e||"string"!=typeof e)return;for(var t=0,i=e.split(";");t<i.length;t++){var n=i[t],r=n.indexOf("=");if(-1!==r){var o=n.slice(0,r).trim();if(o){var a=void 0;try{a=decodeURIComponent(o)}catch(e){a=o}if("_shopify_s"===a){var d=n.slice(r+1).trim();try{return decodeURIComponent(d)}catch(e){return d}}}}}return}catch(e){return}}function n(e){try{"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(e)}catch(e){}}function r(e,t){return"string"==typeof e&&e.length>0&&e.length<=t?e:void 0}function o(e){var t;switch(null==(t=null==e?void 0:e.navigation)?void 0:t.type){case 0:return"navigate";case 1:return"reload";case 2:return"back_forward";default:return}}function a(){var e,t,i;try{var n=null==(i=null==(t=null==(e=self.ShopifyAnalytics)?void 0:e.lib)?void 0:t.trekkie)?void 0:i.state;return"awaiting-consent"===n||"initialized"===n?n:void 0}catch(e){return}}return function(d,s,u,l){var c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};try{var p=c.trekkieShim;!0!==p&&"true"!==p||null!=window.__TREKKIE_SHIM_QUEUE||(window.__TREKKIE_SHIM_QUEUE=[])}catch(e){}var f,v,h,y,g=(v=(f={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/}).modern,h=f.legacy,(y=navigator.userAgent).match(e)?"bot":y.match(v)?"modern":y.match(h)?"legacy":y.match(t)?"bot":"unknown"),m=function(e){var t,i,n=r(e,128);try{var a=window.performance,d=null==(t=null==a?void 0:a.getEntriesByType)?void 0:t.call(a,"navigation")[0];if(!d)return{requestId:n,navigationType:o(a)};var s="type"in d?r(d.type,64):void 0,u="serverTiming"in d&&Array.isArray(d.serverTiming)?d.serverTiming:[];return{requestId:null!=n?n:r(null==(i=u.find(function(e){return"requestID"===e.name}))?void 0:i.description,128),navigationType:s}}catch(e){return{requestId:n}}}(c.requestId),w=function(e){var t=e.version,r=e.browserTarget,o=e.surface,a=e.shopId,d=e.monorailEndpoint,s=window.location.href;return{emit:function(e){var u=e.status,l=e.errorMsg,c=e.failureReason,p=e.useKeepaliveFallback,f=void 0!==p&&p,v=e.navigationType,h=e.pagehidePersisted,y=e.requestId,g=e.trekkieState;if(d){var m,w;try{var b=(new Date).getTime();m=JSON.stringify({metadata:{event_sent_at_ms:b},events:[{schema_id:"web_pixels_manager_load/3.3",payload:{version:t,bundle_target:r,page_url:s,status:u,surface:o,error_msg:l,failure_reason:c,navigation_type:v,pagehide_persisted:h,request_id:y,trekkie_state:g,shop_id:a,visit_token:i()},metadata:{event_created_at_ms:b}}]})}catch(e){return}try{if("function"==typeof window.navigator.sendBeacon&&-1===(w=window.navigator.userAgent).indexOf("iPhone; CPU iPhone OS 12_")&&-1===w.indexOf("iPad; CPU OS 12_")&&-1===w.indexOf("iPod touch; CPU iPhone OS 12_")&&window.navigator.sendBeacon.bind(window.navigator)(d,m))return}catch(e){}if(f)try{"function"==typeof window.fetch&&window.fetch(d,{method:"POST",headers:{"Content-Type":"text/plain"},body:m,keepalive:!0}
1599).catch(function(){})}catch(e){}else try{var _=new XMLHttpRequest;_.open("POST",d,!0),_.setRequestHeader("Content-Type","text/plain"),_.send(m)}catch(e){n("[Web Pixels Manager] Got an unhandled error while logging to Monorail.")}}else n("[Web Pixels Manager] No Monorail endpoint provided, skipping logging.")}}}({version:u,browserTarget:g,surface:d.surface,shopId:d.shopId,monorailEndpoint:d.monorailEndpoint});if(Boolean(null==(_=null==(b=window.Shopify)?void 0:b.analytics)?void 0:_.replayQueue))w.emit({status:"setup-skipped",errorMsg:"replay queue already initialized."});else{var b,_;w.emit({status:"setup-started"}),window.Shopify=window.Shopify||{};var S=window.Shopify;S.analytics=S.analytics||{};var P=S.analytics;P.replayQueue=[],P.publish=function(e,t,i){return P.replayQueue.push([e,t,i]),!0};try{self.performance.mark("wpm:start")}catch(e){}var k,C="modern"===g?"modern":"legacy",E=(null!=l?l:{modern:"",legacy:""})[C],I=[(k={baseUrl:s,hashVersion:u,buildTarget:C}).baseUrl,"/wpm","/b",k.hashVersion,"modern"===k.buildTarget?"m":"l",".js"].join(""),O=!1,T=!1;try{c.browserTarget=g,function(){O=!0;try{window.addEventListener("pagehide",M)}catch(e){O=!1}}(),R(function(){try{R(x)}catch(e){D(e)}}),w.emit({status:"loading",requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()})}catch(e){D(e)}}function U(){var e;if(q(),!function(){var e,t;return Boolean(null==(t=null==(e=window.Shopify)?void 0:e.analytics)?void 0:t.initialized)}()){var t,i,n;try{if("function"!=typeof(null==(e=window.webPixelsManager)?void 0:e.init))return void A();if(!(null!==(n=i=t=window.webPixelsManager.init(d))&&"function"!=typeof n&&Object(n)===n&&"publish"in i&&"function"==typeof i.publish&&"publishCustomEvent"in i&&"function"==typeof i.publishCustomEvent&&"visitor"in i&&"function"==typeof i.visitor))return void A()}catch(e){return void A(e)}var r=window.Shopify.analytics;r.replayQueue.forEach(function(e){var i=e[0],n=e[1],r=e[2];t.publishCustomEvent(i,n,r)}),r.replayQueue=[],r.publish=t.publishCustomEvent,r.visitor=t.visitor,r.initialized=!0}}function A(e){B("manager_api_unavailable",void 0===e?void 0:Q(e))}function x(){B("script_load_failed","".concat(I," has failed to load"))}function B(e,t){T||(T=!0,q(),w.emit({status:"failed",errorMsg:t,failureReason:e,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function M(e){O&&(q(),w.emit({status:"pagehide-while-loading",useKeepaliveFallback:!0,pagehidePersisted:e.persisted,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function q(){O=!1;try{window.removeEventListener("pagehide",M)}catch(e){}}function R(e){var t;!function(e){var t=e.src,i=e.async,n=void 0===i||i,r=e.onload,o=e.onerror,a=e.sri,d=e.scriptDataAttributes,s=void 0===d?{}:d,u=document.createElement("script"),l=document.querySelector("head"),c=document.querySelector("body");if(u.async=n,u.src=t,a&&(u.integrity=a,u.crossOrigin="anonymous"),s)for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))try{u.dataset[p]=String(s[p])}catch(e){}if(r&&u.addEventListener("load",r),o&&u.addEventListener("error",o),l)l.appendChild(u);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(u)}}({src:I,async:!0,onload:U,onerror:e,sri:(t=E,"string"==typeof t&&/^sha384-[A-Za-z0-9+/=]+$/.test(t)?E:""),scriptDataAttributes:c})}function D(e){B("script_append_failed",Q(e))}function Q(e){return e instanceof Error?e.message:"Unknown error"}}}();wpmLoader({shopId: 73720693009,storefrontBaseUrl: "https://qynda.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://qynda.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"2824241425","configuration":"{\"accountID\":\"J6cKLzyySkep1JWuMszRJ4\",\"backendUrl\":\"https:\/\/pixel-for-openai-ads.fly.dev\",\"shop\":\"qynda.myshopify.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"057f05b899d4e0778e78fe536aa0cc14","type":"APP","apiClientId":374065037313,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"2367848721","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"9bce1c0cdfc09538057898e4ff134fa2","type":"APP","apiClientId":30400643073,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]}
1599,"dataSharingState":"unrestricted"},{"id":"2281373969","configuration":"{\"projectId\":\"ut0tkkx09u\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"d8a2bb2ccbb513dc8e8b6937f4b8033e","type":"APP","apiClientId":240074326017,"privacyPurposes":[],"capabilities":["advanced_dom_events"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1961132305","configuration":"{\"accountID\":\"Skg2RQ\",\"webPixelConfig\":\"eyJlbmFibGVBZGRlZFRvQ2FydEV2ZW50cyI6IHRydWV9\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"c63c5b72c8d77be5f2d27d14c081da38","type":"APP","apiClientId":123074,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted","enabledFlags":["9a3ed68a"]},{"id":"1421607185","configuration":"{\"webPixelName\":\"Judge.me\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"8acc938b1a30dc7624e304493ca567d7","type":"APP","apiClientId":683015,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1193083153","configuration":"{\"shop\":\"qynda.myshopify.com\",\"cookie_duration\":\"604800\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"a2e7513c3708f34b1f617d7ce88f9697","type":"APP","apiClientId":2744533,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"765427985","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-Q5DKMFHGHY\\\",\\\"GT-TBVZHPZJ\\\"],\\\"target_country\\\":\\\"US\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-Q5DKMFHGHY\\\",\\\"AW-11229629141\\\/t2jkCLml_68aENWV2uop\\\"]},{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-Q5DKMFHGHY\\\",\\\"AW-11229629141\\\/8Z2HCIep_68aENWV2uop\\\"]},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-Q5DKMFHGHY\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-Q5DKMFHGHY\\\",\\\"AW-11229629141\\\/uHU7CISp_68aENWV2uop\\\",\\\"MC-9NV8447YY7\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-Q5DKMFHGHY\\\"},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-Q5DKMFHGHY\\\",\\\"AW-11229629141\\\/t2jkCLml_68aENWV2uop\\\",\\\"MC-9NV8447YY7\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-Q5DKMFHGHY\\\",\\\"AW-11229629141\\\/ffUICIGp_68aENWV2uop\\\",\\\"MC-9NV8447YY7\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-Q5DKMFHGHY\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-Q5DKMFHGHY\\\",\\\"AW-11229629141\\\/QvnuCIqp_68aENWV2uop\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-Q5DKMFHGHY\\\",\\\"AW-11229629141\\\/4gzdCP6o_68aENWV2uop\\\"]},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-Q5DKMFHGHY\\\"}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"a3321ca85cf5aaf6b57585fcd8d67b3a","type":"APP","apiClientId":1780363,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted","enabledFlags":["9a3ed68a"]},{"id":"186548497","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"],"name":"WeTracked"},{"id":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"QYNDA","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"qynda.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/qynda.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[{"price":{"amount":100.0,"currencyCode":"USD"},"product":{"title":"QYNDA GIFT Card","vendor":"QYNDA","id":"11184018325777","untranslatedTitle":"QYNDA GIFT Card","url":"\/products\/qynda-gift-card","type":""},"id":"54370783428881","image":{"src":"\/\/qynda.com\/cdn\/shop\/files\/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353"},"sku":null,"title":"$100","untranslatedTitle":"$100"},{"price":{"amount":150.0,"currencyCode":"USD"},"product":{"title":"QYNDA GIFT Card","vendor":"QYNDA","id":"11184018325777","untranslatedTitle":"QYNDA GIFT Card","url":"\/products\/qynda-gift-card","type":""},"id":"54370507161873","image":{"src":"\/\/qynda.com\/cdn\/shop\/files\/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353"},"sku":null,"title":"$150","untranslatedTitle":"$150"},{"price":{"amount":200.0,"currencyCode":"USD"},"product":{"title":"QYNDA GIFT Card","vendor":"QYNDA","id":"11184018325777","untranslatedTitle":"QYNDA GIFT Card","url":"\/products\/qynda-gift-card","type":""},"id":"54370507194641","image":{"src":"\/\/qynda.com\/cdn\/shop\/files\/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353"},"sku":null,"title":"$200","untranslatedTitle":"$200"},{"price":{"amount":250.0,"currencyCode":"USD"},"product":{"title":"QYNDA GIFT Card","vendor":"QYNDA","id":"11184018325777","untranslatedTitle":"QYNDA GIFT Card","url":"\/products\/qynda-gift-card","type":""},"id":"54370507227409","image":{"src":"\/\/qynda.com\/cdn\/shop\/files\/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353"},"sku":null,"title":"$250","untranslatedTitle":"$250"},{"price":{"amount":300.0,"currencyCode":"USD"},"product":{"title":"QYNDA GIFT Card","vendor":"QYNDA","id":"11184018325777","untranslatedTitle":"QYNDA GIFT Card","url":"\/products\/qynda-gift-card","type":""},"id":"54392469586193","image":{"src":"\/\/qynda.com\/cdn\/shop\/files\/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353"},"sku":null,"title":"$300","untranslatedTitle":"$300"}
1599],"products":[{"id":"11184018325777","handle":"qynda-gift-card","isCollective":null,"title":"QYNDA GIFT Card","type":null,"untranslatedTitle":"QYNDA GIFT Card","url":"\/products\/qynda-gift-card","vendor":"QYNDA","remoteShopId":null,"variants":[{"id":"54370783428881","image":{"src":"\/\/qynda.com\/cdn\/shop\/files\/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353"},"price":{"amount":100.0,"currencyCode":"USD"},"sku":null,"title":"$100","untranslatedTitle":"$100"},{"id":"54370507161873","image":{"src":"\/\/qynda.com\/cdn\/shop\/files\/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353"},"price":{"amount":150.0,"currencyCode":"USD"},"sku":null,"title":"$150","untranslatedTitle":"$150"},{"id":"54370507194641","image":{"src":"\/\/qynda.com\/cdn\/shop\/files\/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353"},"price":{"amount":200.0,"currencyCode":"USD"},"sku":null,"title":"$200","untranslatedTitle":"$200"},{"id":"54370507227409","image":{"src":"\/\/qynda.com\/cdn\/shop\/files\/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353"},"price":{"amount":250.0,"currencyCode":"USD"},"sku":null,"title":"$250","untranslatedTitle":"$250"},{"id":"54392469586193","image":{"src":"\/\/qynda.com\/cdn\/shop\/files\/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353"},"price":{"amount":300.0,"currencyCode":"USD"},"sku":null,"title":"$300","untranslatedTitle":"$300"}]},{"id":"9032455389457","handle":"cooldown-coat","isCollective":null,"title":"COOLDOWN COAT","type":"Clothing","untranslatedTitle":"COOLDOWN COAT","url":"\/products\/cooldown-coat","vendor":"QYNDA","remoteShopId":null,"variants":[{"id":"53692389097745","image":{"src":"\/\/qynda.com\/cdn\/shop\/files\/Canvas_2_134f5ef2-8a07-486a-9a03-06d55f4a0314.jpg?v=1782042552"},"price":{"amount":145.0,"currencyCode":"USD"},"sku":"Q24CDPGAR-1-0001","title":"Puritan Grey \/ XS","untranslatedTitle":"Puritan Grey \/ XS"}]},{"id":"9466075578641","handle":"arma","isCollective":null,"title":"ARMA LONG SLEEVE T-SHIRT","type":"Clothing","untranslatedTitle":"ARMA LONG SLEEVE T-SHIRT","url":"\/products\/arma","vendor":"QYNDA","remoteShopId":null,"variants":[{"id":"48736418660625","image":{"src":"\/\/qynda.com\/cdn\/shop\/files\/ARMAMAROON.jpg?v=1770725834"},"price":{"amount":89.0,"currencyCode":"USD"},"sku":"Q23ARMRRS-1-0019","title":"Maroon \/ XS","untranslatedTitle":"Maroon \/ XS"}]},{"id":"10211815358737","handle":"breathe-2-0","isCollective":null,"title":"BREATHE 2.0 T-SHIRT","type":"Clothing","untranslatedTitle":"BREATHE 2.0 T-SHIRT","url":"\/products\/breathe-2-0","vendor":"QYNDA","remoteShopId":null,"variants":[{"id":"52723221266705","image":{"src":"\/\/qynda.com\/cdn\/shop\/files\/breathe-maroon-1_cc0c4d08-4b25-4221-80f1-a6581c381db8.jpg?v=1770725773"},"price":{"amount":52.0,"currencyCode":"USD"},"sku":"Q25SSMRRS-1-0009","title":"Maroon \/ XS","untranslatedTitle":"Maroon \/ XS"}]},{"id":"9074807832849","handle":"mak-light-parka","isCollective":null,"title":"MAK LIGHT PARKA","type":"Clothing","untranslatedTitle":"MAK LIGHT PARKA","url":"\/products\/mak-light-parka","vendor":"QYNDA","remoteShopId":null,"variants":[{"id":"53026068332817","image":{"src":"\/\/qynda.com\/cdn\/shop\/files\/MAROON-1_cb705425-33dd-4d4f-9b15-56905eabbef2.jpg?v=1770898002"},"price":{"amount":180.0,"currencyCode":"USD"},"sku":"Q23MKMRAR-1-0010","title":"Maroon \/ XS","untranslatedTitle":"Maroon \/ XS"}]}],"purchasingCompany":null},},"https://qynda.com/cdn","5982071ew7ea472e3p69b68784m2150dfea",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"false","themeId":"181940945169","themeStoreId":"855","themePublished":"true","eventMetadataId":"82cb07ed-e03b-4003-a7ab-abdfcc54bd28","pageType":"product","resourceId":"11184018325777","shopId":"73720693009","storefrontBaseUrl":"https:\/\/qynda.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"5982071ew7ea472e3p69b68784m2150dfea","publish":"custom","events":"[[\"page_viewed\",{}],[\"product_viewed\",{\"productVariant\":{\"price\":{\"amount\":100.0,\"currencyCode\":\"USD\"},\"product\":{\"title\":\"QYNDA GIFT Card\",\"vendor\":\"QYNDA\",\"id\":\"11184018325777\",\"untranslatedTitle\":\"QYNDA GIFT Card\",\"url\":\"\/products\/qynda-gift-card\",\"type\":\"\"},\"id\":\"54370783428881\",\"image\":{\"src\":\"\/\/qynda.com\/cdn\/shop\/files\/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353\"},\"sku\":null,\"title\":\"$100\",\"untranslatedTitle\":\"$100\"}}]]"});})();</script>
1599<script> 1600 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 1601 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 1602 window.ShopifyAnalytics.meta.currency = 'USD'; 1603 var meta = {"product":{"id":11184018325777,"gid":"gid:\/\/shopify\/Product\/11184018325777","vendor":"QYNDA","type":"","handle":"qynda-gift-card","variants":[{"id":54370783428881,"price":10000,"name":"QYNDA GIFT Card - $100","public_title":"$100","sku":null},{"id":54370507161873,"price":15000,"name":"QYNDA GIFT Card - $150","public_title":"$150","sku":null},{"id":54370507194641,"price":20000,"name":"QYNDA GIFT Card - $200","public_title":"$200","sku":null},{"id":54370507227409,"price":25000,"name":"QYNDA GIFT Card - $250","public_title":"$250","sku":null},{"id":54392469586193,"price":30000,"name":"QYNDA GIFT Card - $300","public_title":"$300","sku":null}],"remote":false},"page":{"pageType":"product","resourceType":"product","resourceId":11184018325777,"requestId":"383bd3ba-7bd5-4a54-b73b-c6548815cf92-1791225456"}}; 1604 for (var attr in meta) { 1605 window.ShopifyAnalytics.meta[attr] = meta[attr]; 1606 } 1607</script>
vendor: 1 bytes, line 1607
1607
1608<script class="analytics"> 1609 (function () { 1610 var customDocumentWrite = function(content) { 1611 var jquery = null; 1612 1613 if (window.jQuery) { 1614 jquery = window.jQuery; 1615 } else if (window.Checkout && window.Checkout.$) { 1616 jquery = window.Checkout.$; 1617 } 1618 1619 if (jquery) { 1620 jquery('body').append(content); 1621 } 1622 }; 1623 1624 var hasLoggedConversion = function(token) { 1625 if (token) { 1626 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 1627 } 1628 return false; 1629 } 1630 1631 var setCookieIfConversion = function(token) { 1632 if (token) { 1633 var twoMonthsFromNow = new Date(Date.now()); 1634 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 1635 1636 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 1637 } 1638 } 1639 1640 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 1641 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 1642 if (trekkie.integrations) { 1643 return; 1644 } 1645 trekkie.methods = [ 1646 'identify', 1647 'page', 1648 'ready', 1649 'track', 1650 'trackForm', 1651 'trackLink' 1652 ]; 1653 trekkie.factory = function(method) { 1654 return function() { 1655 var args = Array.prototype.slice.call(arguments); 1656 args.unshift(method); 1657 trekkie.push(args); 1658 if (method == 'track' || method == 'page') { 1659 var pageUrl; 1660 try { 1661 pageUrl = window.location.href; 1662 } catch (e) {} 1663 var pageReferrer; 1664 try { 1665 pageReferrer = document.referrer; 1666 } catch (e) {} 1667 try { 1668 if (window.__TREKKIE_SHIM_QUEUE == null) { 1669 window.__TREKKIE_SHIM_QUEUE = []; 1670 } 1671 window.__TREKKIE_SHIM_QUEUE.push({ 1672 from: 'trekkie-stub', 1673 method: method, 1674 args: args.slice(1), 1675 pageContext: { 1676 url: pageUrl, 1677 referrer: pageReferrer 1678 } 1679 }); 1680 } catch (e) { 1681 // no-op 1682 } 1683 } 1684 return trekkie; 1685 }; 1686 }; 1687 for (var i = 0; i < trekkie.methods.length; i++) { 1688 var key = trekkie.methods[i]; 1689 trekkie[key] = trekkie.factory(key); 1690 } 1691 trekkie.load = function(config) { 1692 trekkie.config = config || {}; 1693 trekkie.config.initialDocumentCookie = document.cookie; 1694 var first = document.getElementsByTagName('script')[0]; 1695var script = document.createElement('script'); 1696script.type = 'text/javascript'; 1697script.onerror = function(e) { 1698 var scriptFallback = document.createElement('script'); 1699 scriptFallback.type = 'text/javascript'; 1700 scriptFallback.onerror = function(error) { 1701 var Monorail = { 1702 produce: function produce(monorailDomain, schemaId, payload) { 1703 var currentMs = new Date().getTime(); 1704 var event = { 1705 schema_id: schemaId, 1706 payload: payload, 1707 metadata: { 1708 event_created_at_ms: currentMs, 1709 event_sent_at_ms: currentMs 1710 } 1711 }; 1712 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 1713 }, 1714 sendRequest: function sendRequest(endpointUrl, payload) { 1715 // Try the sendBeacon API 1716 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 1717 var blobData = new window.Blob([payload], { 1718 type: 'text/plain' 1719 }); 1720 1721 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 1722 return true; 1723 } // sendBeacon was not successful 1724 1725 } // XHR beacon 1726 1727 var xhr = new XMLHttpRequest(); 1728 1729 try { 1730 xhr.open('POST', endpointUrl); 1731 xhr.setRequestHeader('Content-Type', 'text/plain'); 1732 xhr.send(payload); 1733 } catch (e) { 1734 console.log(e); 1735 } 1736 1737 return false; 1738 }, 1739 isIos12: function isIos12() { 1740 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 1741 } 1742 }; 1743 Monorail.produce('monorail-edge.shopifysvc.com', 1744 'trekkie_storefront_load_errors/1.1', 1745 {shop_id: 73720693009, 1746 theme_id: 181940945169, 1747 app_name: "storefront", 1748 context_url: window.location.href, 1749 source_url: "//qynda.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js"}); 1750 1751 }; 1752 scriptFallback.async = true; 1753 scriptFallback.src = '//qynda.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 1754 first.parentNode.insertBefore(scriptFallback, first); 1755}; 1756script.async = true; 1757script.src = '//qynda.com/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js'; 1758first.parentNode.insertBefore(script, first); 1759 1760 }; 1761 trekkie.load( 1762 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":73720693009,"isMerchantRequest":null,"themeId":181940945169,"themeCityHash":"2684660477420088785","contentLanguage":"en","currency":"USD","eventMetadataId":"82cb07ed-e03b-4003-a7ab-abdfcc54bd28"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":false,"source":"trekkie-storefront-renderer","apiClientId":580111}} 1763 ); 1764 1765 var loaded = false;
1766 trekkie.ready(function() { 1767 if (loaded) return; 1768 loaded = true; 1769 1770 window.ShopifyAnalytics.lib = window.trekkie; 1771 1772 var originalDocumentWrite = document.write; 1773 document.write = customDocumentWrite; 1774 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 1775 document.write = originalDocumentWrite; 1776 1777 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 1778 var token = match? match[1]: undefined; 1779 if (!hasLoggedConversion(token)) { 1780 setCookieIfConversion(token); 1781 window.ShopifyAnalytics.lib.track("Viewed Product",{"currency":"USD","variantId":54370783428881,"productId":11184018325777,"productGid":"gid:\/\/shopify\/Product\/11184018325777","name":"QYNDA GIFT Card - $100","price":"100.00","sku":null,"brand":"QYNDA","variant":"$100","category":"","nonInteraction":true,"remote":false,"available":true},undefined,undefined,{"shopifyEmitted":true}); 1782 } 1783 }); 1784 1785 window.ShopifyAnalytics.lib.page(null,{"pageType":"product","resourceType":"product","resourceId":11184018325777,"requestId":"383bd3ba-7bd5-4a54-b73b-c6548815cf92-1791225456","shopifyEmitted":true}); 1786 1787 var eventsListenerScript = document.createElement('script'); 1788 eventsListenerScript.async = true; 1789 eventsListenerScript.src = "//qynda.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 1790 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 1791})();</script>
vendor: 1 bytes, line 1791
1791
1792<script 1793 defer 1794 src="https://qynda.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js" 1795 data-application="storefront-renderer" 1796 data-shop-id="73720693009" 1797 data-render-region="gcp-us-central1" 1798 data-page-type="product" 1799 data-theme-instance-id="181940945169" 1800 data-theme-name="Prestige" 1801 data-theme-version="10.6.0" 1802 data-monorail-region="shop_domain" 1803 data-resource-timing-sampling-rate="10" 1804 data-shs="true" 1805 data-shs-beacon="true" 1806 data-shs-export-with-fetch="true" 1807 data-shs-logs-sample-rate="1" 1808 data-shs-beacon-endpoint="https://qynda.com/api/collect" 1809></script>
1809 1810<meta name="shopify-y" content="4b0a3e58-8f8c-403a-93cc-0dc1e72d4b84" data-expiration="1822783057000"><meta name="shopify-s" content="e6492138-2870-437a-9d8e-72b8fdd18e20" data-expiration="1791227257000"><meta name="new-cookie-storage-activated" content="t"> 1811</head> 1812 1813 1814 1815 <body class=" product-gift-card features--button-transition features--zoom-image color-scheme color-scheme--scheme-1 collection "> 1816 1817 1818 1819 <!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 1819-1820
1819 1820<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
1820GTM-TJCH6R3
vendor: 83 bytes, lines 1820-1821
1820" 1821height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
1822<!-- End Google Tag Manager (noscript) --><template id="drawer-default-template"> 1823 <div part="base"> 1824 <div part="overlay"></div> 1825 1826 <div part="content"> 1827 <header part="header"> 1828 <slot name="header"></slot> 1829 1830 <dialog-close-button style="display: contents"> 1831 <button type="button" part="close-button tap-area" aria-label="Close"><svg aria-hidden="true" focusable="false" fill="none" width="14" class="icon icon-close" viewBox="0 0 16 16"> 1832 <path d="m1 1 14 14M1 15 15 1" stroke="currentColor" stroke-width="1.5"/> 1833 </svg> 1834 1835 </button> 1836 </dialog-close-button> 1837 </header> 1838 1839 <div part="body"> 1840 <slot></slot> 1841 </div> 1842 1843 <footer part="footer"> 1844 <slot name="footer"></slot> 1845 </footer> 1846 </div> 1847 </div> 1848</template><template id="modal-default-template"> 1849 <div part="base"> 1850 <div part="overlay"></div> 1851 1852 <div part="content"> 1853 <header part="header"> 1854 <slot name="header"></slot> 1855 1856 <dialog-close-button style="display: contents"> 1857 <button type="button" part="close-button tap-area" aria-label="Close"><svg aria-hidden="true" focusable="false" fill="none" width="14" class="icon icon-close" viewBox="0 0 16 16"> 1858 <path d="m1 1 14 14M1 15 15 1" stroke="currentColor" stroke-width="1.5"/> 1859 </svg> 1860 1861 </button> 1862 </dialog-close-button> 1863 </header> 1864 1865 <div part="body"> 1866 <slot></slot> 1867 </div> 1868 </div> 1869 </div> 1870</template><template id="popover-default-template"> 1871 <div part="base"> 1872 <div part="overlay"></div> 1873 1874 <div part="content"> 1875 <header part="header"> 1876 <slot name="header"></slot> 1877 1878 <dialog-close-button style="display: contents"> 1879 <button type="button" part="close-button tap-area" aria-label="Close"><svg aria-hidden="true" focusable="false" fill="none" width="14" class="icon icon-close" viewBox="0 0 16 16"> 1880 <path d="m1 1 14 14M1 15 15 1" stroke="currentColor" stroke-width="1.5"/> 1881 </svg> 1882 1883 </button> 1884 </dialog-close-button> 1885 </header> 1886 1887 <div part="body"> 1888 <slot></slot> 1889 </div> 1890 </div> 1891 </div> 1892</template><template id="header-search-default-template"> 1893 <div part="base"> 1894 <div part="overlay"></div> 1895 1896 <div part="content"> 1897 <slot></slot> 1898 </div> 1899 </div> 1900</template><template id="video-media-default-template"> 1901 <slot></slot> 1902 1903 <svg part="play-button" fill="none" width="48" height="48" viewBox="0 0 48 48"> 1904 <path fill-rule="evenodd" clip-rule="evenodd" d="M48 24c0 13.255-10.745 24-24 24S0 37.255 0 24 10.745 0 24 0s24 10.745 24 24Zm-18 0-9-6.6v13.2l9-6.6Z" fill="var(--play-button-background, #efefef)"/> 1905 </svg> 1906</template><loading-bar class="loading-bar" aria-hidden="true"></loading-bar> 1907 <a href="#main" allow-hash-change class="skip-to-content sr-only">Skip to content</a> 1908 1909 <span id="header-scroll-tracker" style="position: absolute; width: 1px; height: 1px; top: var(--header-scroll-tracker-offset, 10px); left: 0;"></span><!-- BEGIN sections: header-group --> 1910<aside id="shopify-section-sections--25613585285393__announcement-bar" class="shopify-section shopify-section-group-header-group shopify-section--announcement-bar"><style> 1911 [hidden] { 1912 display: none !important; 1913 } 1914 1915 :root { 1916 --announcement-bar-is-sticky: 0;--header-scroll-tracker-offset: var(--announcement-bar-height);}#shopify-section-sections--25613585285393__announcement-bar { 1917 --announcement-bar-font-size: 0.625rem; 1918 } 1919 .js-announcement-text { 1920 font-size: 14px; 1921 display: inline-block; 1922 } 1923 1924 1925 @media screen and (min-width: 999px) { 1926 #shopify-section-sections--25613585285393__announcement-bar { 1927 --announcement-bar-font-size: 0.6875rem; 1928 } 1929 } 1930 </style> 1931 1932 <height-observer variable="announcement-bar"> 1933 <div class="announcement-bar color-scheme color-scheme--scheme-c633763a-c3d1-4cb2-9a72-ca6a049f8979"><carousel-prev-button aria-controls="carousel-sections--25613585285393__announcement-bar" class="contents"> 1934 <button type="button" class="tap-area"> 1935 <span class="sr-only">Previous</span><svg aria-hidden="true" focusable="false" fill="none" width="12" class="icon icon-arrow-left icon--direction-aware" viewBox="0 0 16 18"> 1936 <path d="M11 1 3 9l8 8" stroke="currentColor" stroke-linecap="square"/> 1937 </svg></button> 1938 </carousel-prev-button>
1938<announcement-bar-carousel allow-swipe autoplay="5" id="carousel-sections--25613585285393__announcement-bar" class="announcement-bar__carousel"><p class="prose heading is-selected" 1939 data-visibility="all" 1940 1941 > 1942 <span class="js-announcement-text" >Worldwide Free Shipping + Exchange for orders over $199</span> 1943 </p><p class="prose heading " 1944 data-visibility="kuwait" 1945 hidden 1946 > 1947 <span class="js-announcement-text" >Buy Now, Pay Later with Deema</span> 1948 </p></announcement-bar-carousel><carousel-next-button aria-controls="carousel-sections--25613585285393__announcement-bar" class="contents"> 1949 <button type="button" class="tap-area"> 1950 <span class="sr-only">Next</span><svg aria-hidden="true" focusable="false" fill="none" width="12" class="icon icon-arrow-right icon--direction-aware" viewBox="0 0 16 18"> 1951 <path d="m5 17 8-8-8-8" stroke="currentColor" stroke-linecap="square"/> 1952 </svg></button> 1953 </carousel-next-button></div> 1954 </height-observer> 1955 1956
1956<script> 1957 (() => { 1958 const applyKuwaitVisibility = (isKuwait) => { 1959 const carousel = document.getElementById('carousel-sections--25613585285393__announcement-bar'); 1960 if (!carousel) return; 1961 1962 const cells = carousel.querySelectorAll('p.prose'); 1963 const filteredIndexes = []; 1964 1965 cells.forEach((el, index) => { 1966 const isKuwaitSlide = el.getAttribute('data-visibility') === 'kuwait'; 1967 if (isKuwaitSlide && !isKuwait) { 1968 filteredIndexes.push(index); 1969 } 1970 }); 1971 1972 const isCustomElement = typeof carousel.filter === 'function'; 1973 1974 if (isCustomElement) { 1975 // Native carousel filtering 1976 carousel.filter(filteredIndexes); 1977 1978 // Ensure a visible cell is selected 1979 const activeCell = carousel.selectedCell; 1980 if (activeCell && activeCell.hasAttribute('hidden')) { 1981 const firstVisibleIndex = Array.from(carousel.allCells).findIndex(cell => !cell.hasAttribute('hidden')); 1982 if (firstVisibleIndex !== -1) { 1983 carousel.select(firstVisibleIndex, { instant: true }); 1984 } 1985 } 1986 } else { 1987 // Direct DOM fallback before Custom Element registers 1988 cells.forEach((el, index) => { 1989 if (filteredIndexes.includes(index)) { 1990 el.setAttribute('hidden', ''); 1991 el.classList.remove('is-selected'); 1992 } else { 1993 el.removeAttribute('hidden'); 1994 } 1995 }); 1996 1997 // Ensure the first visible slide has is-selected class 1998 const visibleSlides = Array.from(cells).filter(el => !el.hasAttribute('hidden')); 1999 if (visibleSlides.length > 0) { 2000 const hasSelected = visibleSlides.some(el => el.classList.contains('is-selected')); 2001 if (!hasSelected) { 2002 visibleSlides[0].classList.add('is-selected'); 2003 } 2004 } 2005 } 2006 2007 // Hide arrow buttons if only 1 slide is visible 2008 const remainingVisibleSlides = Array.from(cells).filter(el => !el.hasAttribute('hidden')); 2009 const prevBtn = document.querySelector(`carousel-prev-button[aria-controls="carousel-sections--25613585285393__announcement-bar"]`); 2010 const nextBtn = document.querySelector(`carousel-next-button[aria-controls="carousel-sections--25613585285393__announcement-bar"]`); 2011 if (remainingVisibleSlides.length <= 1) { 2012 if (prevBtn) prevBtn.style.display = 'none'; 2013 if (nextBtn) nextBtn.style.display = 'none'; 2014 } else { 2015 if (prevBtn) prevBtn.style.display = ''; 2016 if (nextBtn) nextBtn.style.display = ''; 2017 } 2018 2019 // Hide entire announcement bar if all slides are hidden 2020 const wrapper = document.querySelector('.announcement-bar'); 2021 const headerSection = document.getElementById('shopify-section-sections--25613585285393__announcement-bar'); 2022 if (wrapper) { 2023 if (remainingVisibleSlides.length === 0) { 2024 wrapper.style.display = 'none'; 2025 document.documentElement.style.setProperty('--announcement-bar-height', '0px'); 2026 if (headerSection) { 2027 headerSection.style.display = 'none'; 2028 } 2029 } else { 2030 wrapper.style.display = ''; 2031 if (headerSection) { 2032 headerSection.style.display = ''; 2033 document.documentElement.style.setProperty('--announcement-bar-height', `${headerSection.clientHeight.toFixed(2)}px`); 2034 } 2035 } 2036 } 2037 }; 2038 2039 // Respect both storefront country selector context and raw IP 2040 const shopifyCountry = 'US'; 2041 const isKuwaitContext = (shopifyCountry === 'KW');if (isKuwaitContext) { 2042 applyKuwaitVisibility(true); 2043 } else { 2044 const cachedIsKuwait = sessionStorage.getItem('user_is_kuwait'); 2045 if (cachedIsKuwait !== null) { 2046 applyKuwaitVisibility(cachedIsKuwait === 'true'); 2047 } else { 2048 const endpoints = [ 2049 'https://freeipapi.com/api/json', 2050 'https://ipwho.is/' 2051 ]; 2052 2053 const fetchCountry = (url) => { 2054 return fetch(url) 2055 .then(res => res.json()) 2056 .then(data => { 2057 const code = data.countryCode || data.country_code; 2058 if (code) return code.toUpperCase(); 2059 throw new Error('No country code'); 2060 }); 2061 }; 2062 2063 fetchCountry(endpoints[0]) 2064 .catch(() => fetchCountry(endpoints[1])) 2065 .then(countryCode => { 2066 const isKuwait = (countryCode === 'KW'); 2067 sessionStorage.setItem('user_is_kuwait', isKuwait ? 'true' : 'false'); 2068 applyKuwaitVisibility(isKuwait); 2069 }) 2070 .catch(err => { 2071 console.error('GeoIP lookup failed: ', err); 2072 // Fallback to Shopify country 2073 const isKuwait = (shopifyCountry === 'KW'); 2074 sessionStorage.setItem('user_is_kuwait', isKuwait ? 'true' : 'false'); 2075 applyKuwaitVisibility(isKuwait); 2076 }); 2077 } 2078 } 2079 })(); 2080 </script>
2080 2081 2082
2082<script> 2083 document.documentElement.style.setProperty('--announcement-bar-height', `${document.getElementById('shopify-section-sections--25613585285393__announcement-bar').clientHeight.toFixed(2)}px`); 2084 </script>
2084 2085
2086<script> 2087(() => { 2088 const style = document.createElement('style'); 2089 style.textContent = `.js-announcement-text { opacity: 0; } .js-announcement-text.is-ready { opacity: 1; transition: opacity 0.2s; }`; 2090 document.head.appendChild(style); 2091 2092 const syncBar = () => { 2093 const containers = document.querySelectorAll('.js-announcement-text:not([data-done])'); 2094 if (!containers.length) return; 2095 2096 containers.forEach(container => { 2097 if (container.querySelector('.money')) { 2098 container.setAttribute('data-done', 'true'); 2099 container.classList.add('is-ready'); 2100 return; 2101 } 2102 2103 const text = container.textContent; 2104 const priceRegex = /(\$\d+(?:[\.,]\d+)?)/g; 2105 2106 if (priceRegex.test(text)) { 2107 container.innerHTML = text.replace(priceRegex, (match) => { 2108 const cents = (window.currencySwitcher && window.currencySwitcher.parsePrice) 2109 ? window.currencySwitcher.parsePrice(match) 2110 : parseInt(match.replace(/[^\d]/g, '')) * 100; 2111 return `<span class="money" data-base-currency="USD" data-price-cents="${cents}">${match}</span>`; 2112 }); 2113 container.setAttribute('data-done', 'true'); 2114 } 2115 }); 2116 2117 document.querySelectorAll('.js-announcement-text').forEach(el => el.classList.add('is-ready')); 2118 }; 2119 2120 const checker = setInterval(() => { 2121 if (window.currencySwitcher && window.currencySwitcher._ready) { 2122 clearInterval(checker); 2123 syncBar(); 2124 } 2125 }, 50); 2126 2127 setTimeout(() => { 2128 clearInterval(checker); 2129 document.querySelectorAll('.js-announcement-text').forEach(el => el.classList.add('is-ready')); 2130 }, 2000); 2131})(); 2132</script>
2132</aside><header id="shopify-section-sections--25613585285393__header" class="shopify-section shopify-section-group-header-group shopify-section--header"><style> 2133 :root { 2134 --header-is-sticky: 1; 2135 } 2136 2137 #shopify-section-sections--25613585285393__header { 2138 --header-grid: "primary-nav logo secondary-nav" / minmax(0, 1fr) auto minmax(0, 1fr); 2139 --header-padding-block: 1rem; 2140 --header-transparent-header-text-color: 255 255 255; 2141 --header-separation-border-color: 0 0 0 / 0; 2142 2143 position: relative; 2144 z-index: 4; 2145 } 2146 2147 @media screen and (min-width: 700px) { 2148 #shopify-section-sections--25613585285393__header { 2149 --header-padding-block: 1.2rem; 2150 } 2151 } 2152 2153 @media screen and (min-width: 1000px) { 2154 #shopify-section-sections--25613585285393__header {--header-grid: "logo primary-nav secondary-nav" / minmax(max-content, 1fr) auto minmax(max-content, 1fr);} 2155 }#shopify-section-sections--25613585285393__header { 2156 position: sticky; 2157 top: 0; 2158 } 2159 2160 .shopify-section--announcement-bar ~ #shopify-section-sections--25613585285393__header { 2161 top: calc(var(--announcement-bar-is-sticky, 0) * var(--announcement-bar-height, 0px)); 2162 }#shopify-section-sections--25613585285393__header { 2163 --header-logo-width: 100px; 2164 } 2165 2166 @media screen and (min-width: 700px) { 2167 #shopify-section-sections--25613585285393__header { 2168 --header-logo-width: 140px; 2169 } 2170 }</style> 2171 2172<height-observer variable="header"> 2173 <x-header class="header color-scheme color-scheme--scheme-2"> 2174 <a href="/" class="header__logo"><span class="sr-only">QYNDA</span><img src="//qynda.com/cdn/shop/files/logo1111-1024x202.png?v=1737861104&width=1024" alt="" srcset="//qynda.com/cdn/shop/files/logo1111-1024x202.png?v=1737861104&width=280 280w, //qynda.com/cdn/shop/files/logo1111-1024x202.png?v=1737861104&width=420 420w" width="1024" height="202" sizes="140px" class="header__logo-image"><img src="//qynda.com/cdn/shop/files/logo1111-1024x202-_1.png?v=1770559572&width=1024" alt="" srcset="//qynda.com/cdn/shop/files/logo1111-1024x202-_1.png?v=1770559572&width=280 280w, //qynda.com/cdn/shop/files/logo1111-1024x202-_1.png?v=1770559572&width=420 420w" width="1024" height="202" sizes="140px" class="header__logo-image header__logo-image--transparent"></a> 2175 2176<nav class="header__primary-nav header__primary-nav--center" aria-label="Primary navigation"> 2177 <button type="button" aria-controls="sidebar-menu" class="md:hidden"> 2178 <span class="sr-only">Navigation menu</span><svg aria-hidden="true" fill="none" focusable="false" width="24" class="header__nav-icon icon icon-hamburger" viewBox="0 0 24 24"> 2179 <path d="M1 19h22M1 12h22M1 5h22" stroke="currentColor" stroke-width="1.5" stroke-linecap="square"/> 2180 </svg></button><ul class="contents unstyled-list md-max:hidden"> 2181 2182 <li class="header__primary-nav-item" data-title="Products"><dropdown-menu-disclosure follow-summary-link trigger="hover"><details class="header__menu-disclosure"> 2183 <summary data-follow-link="/collections/all-modest-workout-clothes" class="h6">Products</summary><ul class="header__dropdown-menu header__dropdown-menu--restrictable unstyled-list" role="list"><li><a href="/collections/all-modest-workout-clothes" class="link-faded-reverse" >All products</a></li><li><a href="/pages/gulf-cup-collection" class="link-faded-reverse" >Gulf Cup</a></li><li><a href="/collections/sets" class="link-faded-reverse" >Sets</a></li><li><a href="/collections/modest-workout-tops" class="link-faded-reverse" >Tops</a></li><li><a href="/collections/modest-workout-bottoms" class="link-faded-reverse" >Bottoms</a></li><li><a href="/collections/modest-workout-jackets" class="link-faded-reverse" >Jackets</a></li></ul></details></dropdown-menu-disclosure></li> 2184 2185 <li class="header__primary-nav-item" data-title="QYNDA Values"><dropdown-menu-disclosure follow-summary-link trigger="hover"><details class="header__menu-disclosure"> 2186 <summary data-follow-link="#" class="h6">QYNDA Values</summary><ul class="header__dropdown-menu header__dropdown-menu--restrictable unstyled-list" role="list"><li><a href="/pages/beauty-in-modesty" class="link-faded-reverse" >Beauty in Modesty</a></li><li><a href="/pages/inner-strength" class="link-faded-reverse" >Inner Strengthâ</a></li><li><a href="/pages/culture-influence" class="link-faded-reverse" >Culture Influenceâ</a></li></ul></details></dropdown-menu-disclosure></li> 2187 2188 <li class="header__primary-nav-item" data-title="Gift Card"><a href="/products/qynda-gift-card" class="block h6" aria-current="page">Gift Card</a></li></ul></nav><nav class="header__secondary-nav" aria-label="Secondary navigation"> 2189 2190<!-- Custom Currency Switcher --> 2191<div id="currency-switcher" class="currency-switcher currency-switcher-desktop" style="margin-left:8px; position:relative;"> 2192 <button id="currency-current" type="button" class="currency-current" aria-haspopup="true" aria-expanded="false" 2193 style="display:flex;"> 2194 <img class="cs-flag-img" 2195 src="https://cdn.shopify.com/s/files/1/0737/2069/3009/files/USD.png?v=1763453689" 2196 alt="USD" 2197 width="20" height="14" style="display:inline-block;" /> 2198 <span class="cs-code" style="font-weight:600;">USD</span> 2199 <img class="cs-chevron-img" 2200 src="https://cdn.shopify.com/s/files/1/0737/2069/3009/files/chevron-down_22_1_1.png?v=1763460674" 2201 alt="toggle" width="18" height="18" /> 2202 </button> 2203 2204 <div id="currency-dropdown" class="currency-dropdown" aria-hidden="true"> 2205 <div class="currency-grid"> 2206 <div class="currency-tile"> 2207 <button type="button" class="currency-item" data-currency="KWD" data-flag-src="https://cdn.shopify.com/s/files/1/0737/2069/3009/files/KWD.png?v=1763453447"> 2208 <img class="item-flag-img" src="https://cdn.shopify.com/s/files/1/0737/2069/3009/files/KWD.png?v=1763453447" alt="KWD" width="36" height="36" />
2209 <span class="currency-label"><span class="code">KWD</span> <span class="name">- Kuwaiti Dinar</span></span> 2210 </button> 2211 </div> 2212 2213 <div class="currency-tile"> 2214 <button type="button" class="currency-item" data-currency="BHD" data-flag-src="https://cdn.shopify.com/s/files/1/0737/2069/3009/files/BHD.png?v=1763453605"> 2215 <img class="item-flag-img" src="https://cdn.shopify.com/s/files/1/0737/2069/3009/files/BHD.png?v=1763453605" alt="BHD" width="36" height="36" /> 2216 <span class="currency-label"><span class="code">BHD</span> <span class="name">- Bahraini Dinar</span></span> 2217 </button> 2218 </div> 2219 2220 <div class="currency-tile"> 2221 <button type="button" class="currency-item" data-currency="SAR" data-flag-src="https://cdn.shopify.com/s/files/1/0737/2069/3009/files/KSA.png?v=1763453501"> 2222 <img class="item-flag-img" src="https://cdn.shopify.com/s/files/1/0737/2069/3009/files/KSA.png?v=1763453501" alt="SAR" width="36" height="36" /> 2223 <span class="currency-label"><span class="code">SAR</span> <span class="name">- Saudi Riyal</span></span> 2224 </button> 2225 </div> 2226 2227 <div class="currency-tile"> 2228 <button type="button" class="currency-item" data-currency="OMR" data-flag-src="https://cdn.shopify.com/s/files/1/0737/2069/3009/files/OMR.png?v=1763453646"> 2229 <img class="item-flag-img" src="https://cdn.shopify.com/s/files/1/0737/2069/3009/files/OMR.png?v=1763453646" alt="OMR" width="36" height="36" /> 2230 <span class="currency-label"><span class="code">OMR</span> <span class="name">- Omani Rial</span></span> 2231 </button> 2232 </div> 2233 2234 <div class="currency-tile"> 2235 <button type="button" class="currency-item" data-currency="QAR" data-flag-src="https://cdn.shopify.com/s/files/1/0737/2069/3009/files/QAR.png?v=1763453547"> 2236 <img class="item-flag-img" src="https://cdn.shopify.com/s/files/1/0737/2069/3009/files/QAR.png?v=1763453547" alt="QAR" width="36" height="36" /> 2237 <span class="currency-label"><span class="code">QAR</span> <span class="name">- Qatari Riyal</span></span> 2238 </button> 2239 </div> 2240 2241 <div class="currency-tile"> 2242 <button type="button" class="currency-item" data-currency="USD" data-flag-src="https://cdn.shopify.com/s/files/1/0737/2069/3009/files/USD.png?v=1763453689"> 2243 <img class="item-flag-img" src="https://cdn.shopify.com/s/files/1/0737/2069/3009/files/USD.png?v=1763453689" alt="USD" width="36" height="36" /> 2244 <span class="currency-label"><span class="code">USD</span> <span class="name">- United States Dollar</span></span> 2245 </button> 2246 </div> 2247 2248 <div class="currency-tile"> 2249 <button type="button" class="currency-item" data-currency="AED" data-flag-src="https://cdn.shopify.com/s/files/1/0737/2069/3009/files/AED.png?v=1763453585"> 2250 <img class="item-flag-img" src="https://cdn.shopify.com/s/files/1/0737/2069/3009/files/AED.png?v=1763453585" alt="AED" width="36" height="36" /> 2251 <span class="currency-label"><span class="code">AED</span> <span class="name">- UAE Dirham</span></span> 2252 </button> 2253 </div> 2254 </div> 2255 </div> 2256</div> 2257<!-- /Custom Currency Switcher --> 2258 <ul class="contents unstyled-list"><li class="localization-selectors md-max:hidden"><style> 2259 :root { 2260 --toggle-width: 100px; 2261 --toggle-height: 38px; 2262 --pill-padding: 1px; 2263 --transition-speed: 0.4s; 2264 } 2265 2266 .locale-toggle-wrapper { 2267 position: relative; 2268 display: inline-flex; 2269 align-items: center; 2270 background-color: #f4f4f4; 2271 border-radius: 50px; 2272 padding: var(--pill-padding); 2273 border: 1px solid #e0e0e0; 2274 width: var(--toggle-width); 2275 height: var(--toggle-height); 2276 cursor: pointer; 2277 overflow: hidden; 2278 user-select: none; 2279 } 2280 2281 /* The sliding background pill */ 2282 .toggle-slider { 2283 position: absolute; 2284 top: 0; 2285 bottom: 0; 2286 width: calc(50% - var(--pill-padding)); 2287 background-color: #ffffff; 2288 border-radius: 40px; 2289 box-shadow: 0 2px 4px rgba(0,0,0,0.1); 2290 transition: transform var(--transition-speed) cubic-bezier(0.65, 0, 0.35, 1); 2291 z-index: 1; 2292 left: 1px; 2293 } 2294 2295 /* Positions based on current language */ 2296 [data-current-lang="en"] .toggle-slider { 2297 transform: translateX(0); 2298 } 2299 2300 [data-current-lang="ar"] .toggle-slider { 2301 transform: translateX(calc(var(--toggle-width) / 2 - var(--pill-padding))); 2302 } 2303 2304 /* Temporary class added via JS during the click */ 2305 .is-switching[data-current-lang="en"] .toggle-slider { 2306 transform: translateX(calc(var(--toggle-width) / 2 - var(--pill-padding))); 2307 } 2308 .is-switching[data-current-lang="ar"] .toggle-slider { 2309 transform: translateX(0); 2310 } 2311 2312 .locale-toggle-btn { 2313 position: relative; 2314 flex: 1; 2315 z-index: 2; 2316 border: none; 2317 background: none; 2318 height: 100%; 2319 cursor: pointer; 2320 font-size: 11px; 2321 font-weight: 600; 2322 color: #888; 2323 transition: color var(--transition-speed) ease; 2324 display: flex; 2325 align-items: center; 2326 justify-content: center; 2327 margin: 0; 2328 padding: 0; 2329 } 2330 2331 .locale-toggle-btn.is-active { 2332 color: #000000; 2333 } 2334 2335 .lang-text-ar { 2336 font-size: 14px; 2337 } 2338</style><form method="post" action="/localization" id="localization-form-header-nav-sections--25613585285393__header-locale" accept-charset="UTF-8" class="shopify-localization-form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/products/qynda-gift-card" /><div class="locale-toggle-wrapper" 2339 data-current-lang="en" 2340 onclick="handleLocaleToggle(event, this)"> 2341 2342 <div class="toggle-slider"></div><button type="button" 2343 class="locale-toggle-btn is-active" 2344 data-value="ar">EN 2345</button><button type="button" 2346 class="locale-toggle-btn " 2347 data-value="ar"><span class="lang-text-ar">ع</span></button><input type="hidden" name="locale_code" value="ar"> 2348 </div></form>
2348<script> 2349 function handleLocaleToggle(event, wrapper) { 2350 // Prevent immediate form submission 2351 event.preventDefault(); 2352 2353 // 1. Trigger the animation class 2354 wrapper.classList.add('is-switching'); 2355 2356 // 2. Find the form and the hidden input 2357 const form = wrapper.closest('form'); 2358 2359 // 3. Wait for the animation to halfway finish, then submit 2360 setTimeout(() => { 2361 form.submit(); 2362 }, 300); // 300ms delay matches our CSS transition 2363 } 2364 </script>
2364</li><li class="header__account-link sm-max:hidden"> 2365 <a href="https://qynda.com/customer_authentication/redirect?locale=en®ion_country=US"> 2366 <span class="sr-only">Login</span><svg aria-hidden="true" fill="none" focusable="false" width="24" class="header__nav-icon icon icon-account" viewBox="0 0 24 24"> 2367 <path d="M16.125 8.75c-.184 2.478-2.063 4.5-4.125 4.5s-3.944-2.021-4.125-4.5c-.187-2.578 1.64-4.5 4.125-4.5 2.484 0 4.313 1.969 4.125 4.5Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> 2368 <path d="M3.017 20.747C3.783 16.5 7.922 14.25 12 14.25s8.217 2.25 8.984 6.497" stroke="currentColor" stroke-width="1.5" stroke-miterlimit="10"/> 2369 </svg></a> 2370 </li><li class="relative header__cart-link"> 2371 <a href="/cart" 2372 2373 aria-controls="cart-drawer" 2374 2375 data-no-instant> 2376 2377 <span class="sr-only">Cart</span><svg aria-hidden="true" fill="none" focusable="false" width="24" class="header__nav-icon icon icon-cart" viewBox="0 0 24 24"><path d="M4.75 8.25A.75.75 0 0 0 4 9L3 19.125c0 1.418 1.207 2.625 2.625 2.625h12.75c1.418 0 2.625-1.149 2.625-2.566L20 9a.75.75 0 0 0-.75-.75H4.75Zm2.75 0v-1.5a4.5 4.5 0 0 1 4.5-4.5v0a4.5 4.5 0 0 1 4.5 4.5v1.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg><!-- ð Cart Count Badge --> 2378 2379 2380 <cart-dot class="header__cart-dot "></cart-dot> 2381 </a> 2382</li> 2383
2383<script> 2384document.addEventListener('cart:change', () => { 2385 updateCartCount(); 2386}); 2387 function updateCartCount() { 2388 fetch('/cart.js') 2389 .then(res => res.json()) 2390 .then(cart => { 2391 const cartLink = document.querySelector('a[href$="/cart"]'); 2392 if (!cartLink) return; 2393 2394 let badge = cartLink.querySelector(".cart-count-badge"); 2395 if (!badge) { 2396 badge = document.createElement("span"); 2397 badge.className = "cart-count-badge"; 2398 cartLink.appendChild(badge); 2399 } 2400 2401 if (cart.item_count > 0) { 2402 badge.textContent = cart.item_count; 2403 badge.style.display = "inline-block"; 2404 } else { 2405 badge.style.display = "none"; 2406 } 2407 }) 2408 .catch(err => console.error("Cart update error:", err)); 2409 } 2410 2411</script>
2411 2412 <style> 2413 @media (min-width: 740px) { 2414 ul.contents.unstyled-list.md-max\:hidden { 2415 display: contents !important; 2416 } 2417} 2418 span.cart-count-badge { 2419 position: absolute; 2420 top: -5px; 2421 right: -5px; 2422 width: 14px; 2423 background: #4f0030; 2424 height: 14px; 2425 text-align: center; 2426 color: white; 2427 font-size: 10px; 2428 border-radius: 100%; 2429} 2430 .header__wishlis{ 2431 order: 6; 2432 position: relative; 2433 } 2434 #wishlist-count { 2435 position: absolute; 2436 top: -5px; 2437 right: -5px; 2438 width: 14px; 2439 background: #4f0030; 2440 height: 14px; 2441 text-align: center; 2442 color: white; 2443 font-size: 10px; 2444 border-radius: 100%; 2445 } 2446 .header__wishlist_count .wishlist-icon{ 2447 padding: 0px; 2448 width: 28px; 2449 height: 27px; 2450 } 2451 </style> 2452 <li class="header__wishlis"> 2453 <a href="/pages/wishlist?view=wishlist" class="header__wishlist_count" data-product-handle="cape"> 2454 2455 <span id="wishlist-count">0</span> 2456 <svg class="wishlist-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> 2457 <path d="M20.8 4.6c-1.3-1.4-3.3-1.9-5-1.2-1.1.4-2 1.3-2.8 2.6-0.8-1.3-1.7-2.2-2.8-2.6-1.7-.6-3.7-.2-5 1.2-1.6 1.8-1.5 4.4.1 6.1l7.7 7.7 7.7-7.7c1.6-1.7 1.7-4.3.1-6.1z"></path> 2458 </svg> 2459 </a> 2460 2461 </li> 2462 </ul> 2463 </nav><style> 2464 /* Toggle Container */ 2465 .locale-toggle-wrapper.sidebar-toggle { 2466 position: relative; 2467 display: inline-flex; 2468 align-items: center; 2469 background-color: #f4f4f4; 2470 border-radius: 50px; 2471 padding: 3px; 2472 border: 1px solid #e0e0e0; 2473 width: 95px; 2474 height: 36px; 2475 cursor: pointer; 2476 overflow: hidden; 2477 margin-right: 10px; 2478 } 2479 2480 /* The Sliding Background */ 2481 .sidebar-toggle .toggle-slider { 2482 position: absolute; 2483 top: 3px; 2484 bottom: 3px; 2485 width: 44.5px; 2486 background-color: #ffffff; 2487 border-radius: 40px; 2488 box-shadow: 0 2px 4px rgba(0,0,0,0.1); 2489 transition: transform 0.4s cubic-bezier(0.65, 0, 0.35, 1); 2490 z-index: 1; 2491 left: 4px; 2492 } 2493 2494 /* Initial Position Logic */ 2495 [data-current-lang="en"].sidebar-toggle .toggle-slider { transform: translateX(0); } 2496 [data-current-lang="ar"].sidebar-toggle .toggle-slider { transform: translateX(44.5px); } 2497 2498 /* Animation Trigger (On Click) */ 2499 .sidebar-toggle.is-switching[data-current-lang="en"] .toggle-slider { transform: translateX(44.5px); } 2500 .sidebar-toggle.is-switching[data-current-lang="ar"] .toggle-slider { transform: translateX(0); } 2501 2502 .sidebar-toggle .locale-toggle-btn { 2503 position: relative; 2504 flex: 1; 2505 z-index: 2; 2506 border: none; 2507 background: none; 2508 height: 100%; 2509 cursor: pointer; 2510 font-size: 11px; 2511 font-weight: 700; 2512 color: #999; 2513 transition: color 0.3s ease; 2514 display: flex; 2515 align-items: center; 2516 justify-content: center; 2517 padding: 0; 2518 margin: 0; 2519 } 2520 2521 .sidebar-toggle .locale-toggle-btn.is-active { color: #000; } 2522 .lang-text-ar { font-size: 14px; } 2523</style> 2524 2525<template id="header-sidebar-template"> 2526 <div part="base"> 2527 <div part="overlay"></div> 2528 <div part="content"> 2529 <header part="header"> 2530 <dialog-close-button class="contents"> 2531 <button type="button" part="close-button tap-area" aria-label="Close"><svg aria-hidden="true" focusable="false" fill="none" width="16" class="icon icon-close" viewBox="0 0 16 16"> 2532 <path d="m1 1 14 14M1 15 15 1" stroke="currentColor" stroke-width="1.5"/> 2533 </svg> 2534 2535 </button> 2536 </dialog-close-button> 2537 </header> 2538 <div part="panel-list"> 2539 <slot name="main-panel"></slot><slot name="collapsible-panel"></slot></div> 2540 </div> 2541 </div> 2542</template> 2543 2544<header-sidebar id="sidebar-menu" class="header-sidebar drawer drawer--sm color-scheme color-scheme--scheme-2" template="header-sidebar-template" open-from="left"> 2545 <div class="header-sidebar__main-panel" slot="main-panel"> 2546 <div class="header-sidebar__scroller"> 2547 <ul class="header-sidebar__linklist divide-y unstyled-list" role="list"><li><button type="button" class="header-sidebar__linklist-button h6" aria-controls="header-panel-1" aria-expanded="false">Products<svg aria-hidden="true" focusable="false" fill="none" width="12" class="icon icon-chevron-right icon--direction-aware" viewBox="0 0 10 10"> 2548 <path d="m3 9 4-4-4-4" stroke="currentColor" stroke-linecap="square"/> 2549 </svg></button></li><li><button type="button" class="header-sidebar__linklist-button h6" aria-controls="header-panel-2" aria-expanded="false">QYNDA Values<svg aria-hidden="true" focusable="false" fill="none" width="12" class="icon icon-chevron-right icon--direction-aware" viewBox="0 0 10 10"> 2550 <path d="m3 9 4-4-4-4" stroke="currentColor" stroke-linecap="square"/> 2551 </svg></button></li><li><a href="/products/qynda-gift-card" class="header-sidebar__linklist-button h6">Gift Card</a></li></ul> 2552 2553 <div class="customer-links"> 2554 <a class="header__link--account customer_login_link" href="/account/login">
2555 <span class="icon-wrapper"> 2556 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" aria-hidden="true" focusable="false" role="presentation" class="icon icon-account stroke-w-0"><path d="M 16 3 C 8.832031 3 3 8.832031 3 16 C 3 23.167969 8.832031 29 16 29 C 23.167969 29 29 23.167969 29 16 C 29 8.832031 23.167969 3 16 3 Z M 16 5 C 22.085938 5 27 9.914063 27 16 C 27 22.085938 22.085938 27 16 27 C 9.914063 27 5 22.085938 5 16 C 5 9.914063 9.914063 5 16 5 Z M 16 8 C 13.25 8 11 10.25 11 13 C 11 14.515625 11.707031 15.863281 12.78125 16.78125 C 10.53125 17.949219 9 20.300781 9 23 L 11 23 C 11 20.226563 13.226563 18 16 18 C 18.773438 18 21 20.226563 21 23 L 23 23 C 23 20.300781 21.46875 17.949219 19.21875 16.78125 C 20.292969 15.863281 21 14.515625 21 13 C 21 10.25 18.75 8 16 8 Z M 16 10 C 17.667969 10 19 11.332031 19 13 C 19 14.667969 17.667969 16 16 16 C 14.332031 16 13 14.667969 13 13 C 13 11.332031 14.332031 10 16 10 Z"></path></svg> 2557 </span> 2558 <span class="title">Sign In</span> 2559 </a> 2560 <a class="header__link--account customer_register_link" href="/account/register"> 2561 <span class="icon-wrapper"> 2562 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 17 17" class="icon icon-sign-up"><g id="Layer_2" data-name="Layer 2"><g id="Layer_1-2" data-name="Layer 1"><path d="M10.11,15.67H2.16a1.1,1.1,0,0,1-.26,0,.67.67,0,0,1-.56-.8,7.32,7.32,0,0,1,3.86-5,7.16,7.16,0,0,1,5.08-.58,8.49,8.49,0,0,1,1.39.49.66.66,0,0,0,.9-.49.67.67,0,0,0-.42-.74c-.3-.14-.61-.26-.93-.39l.28-.24a4.25,4.25,0,0,0,1-1.35,4.42,4.42,0,0,0,.15-3.68A4.47,4.47,0,0,0,9.7.16C9.44.09,9.18.08,8.93,0h-.1s0,0-.06,0S8.71,0,8.7,0H8.3s0,0-.07,0-.05,0-.06,0H8a2.44,2.44,0,0,1-.39.05,4.5,4.5,0,0,0-3.17,2.4A4.32,4.32,0,0,0,4,5.07a4.56,4.56,0,0,0,.58,1.72A4.41,4.41,0,0,0,5.58,8c.12.11.12.11,0,.17a8.5,8.5,0,0,0-1.19.54,8.39,8.39,0,0,0-2.49,2,8.13,8.13,0,0,0-1.88,4v.56c0,.12,0,.25.07.37A2,2,0,0,0,1.73,17h8.6s.08,0,.12-.05a.66.66,0,0,0,.35-.87A.67.67,0,0,0,10.11,15.67ZM5.31,4.52A3.19,3.19,0,1,1,8.55,7.7,3.2,3.2,0,0,1,5.31,4.52Z"></path><path d="M16.17,13.18c-.49,0-1,0-1.49,0-.15,0-.18,0-.17-.19V11.43a.79.79,0,0,0-.06-.34.66.66,0,0,0-1.27.27v1.69c0,.11,0,.14-.13.13H11.42a.82.82,0,0,0-.34.06.68.68,0,0,0-.38.72.66.66,0,0,0,.64.55H13c.14,0,.19,0,.19.17,0,.5,0,1,0,1.49a.75.75,0,0,0,.53.83H14a.64.64,0,0,0,.58-.68V14.77c0-.2,0-.21.21-.21H16.3A.65.65,0,0,0,17,14v-.27A.75.75,0,0,0,16.17,13.18Z"></path></g></g></svg> 2563 </span> 2564 <span class="title">Create an Account</span> 2565 </a> 2566 </div> 2567 2568 <div class="header__wishlist" style="display: flex; align-items: center; margin-bottom: 15px; border-top: 1px solid #e0e0e0; border-bottom: 1px solid #e0e0e0; padding: 10px 0;"> 2569 <a href="/pages/wishlist?view=wishlist" class="header__wishlist_count" style="display: inline-flex; align-items: center; text-decoration: none; gap: 8px; color: inherit; width: 100%; margin-left: 15px;"> 2570 <div style="display: flex; align-items: center;"> 2571 <svg class="wishlist-icon" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="22" height="22" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"> 2572 <path d="M20.8 4.6c-1.3-1.4-3.3-1.9-5-1.2-1.1.4-2 1.3-2.8 2.6-0.8-1.3-1.7-2.2-2.8-2.6-1.7-.6-3.7-.2-5 1.2-1.6 1.8-1.5 4.4.1 6.1l7.7 7.7 7.7-7.7c1.6-1.7 1.7-4.3.1-6.1z"></path> 2573 </svg> 2574 <span id="wishlist-count" style="margin-left: 4px; font-variant-numeric: tabular-nums;">0</span> 2575 </div> 2576 <span style="font-family: inherit; font-size: 12px; color: #4f0030; line-height: 1; font-weight: 500;">Wishlist</span> 2577 </a> 2578 </div><div class="localization-selectors" style="display: flex; padding: 0 15px;"><form method="post" action="/localization" id="sidebar-locale-form" accept-charset="UTF-8" class="shopify-localization-form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/products/qynda-gift-card" /><div class="locale-toggle-wrapper sidebar-toggle" data-current-lang="en" onclick="handleSidebarLocaleToggle(event, this)"> 2579 <div class="toggle-slider"></div><button type="button" class="locale-toggle-btn is-active">EN</button><button type="button" class="locale-toggle-btn "><span class="lang-text-ar">ع</span></button><input type="hidden" name="locale_code" value="ar"> 2580 </div></form><div class="currency-switcher currency-switcher-mobile" style="margin-left:8px; position:relative;"> 2581 <button class="currency-current" type="button" aria-haspopup="true" aria-expanded="false" style="display:flex; align-items:center;"> 2582 <img class="cs-flag-img" src="https://cdn.shopify.com/s/files/1/0737/2069/3009/files/USD.png?v=1763453689" alt="USD" width="20" height="14" />
2583 <span class="cs-code" style="font-weight:600;">USD</span> 2584 <img class="cs-chevron-img" src="https://cdn.shopify.com/s/files/1/0737/2069/3009/files/chevron-down_22_1_1.png?v=1763460674" alt="toggle" width="18" height="18" /> 2585 </button> 2586 <div id="currency-dropdown" class="currency-dropdown" aria-hidden="true"> 2587 <div class="currency-grid"> 2588 <div class="currency-tile"> 2589 <button type="button" class="currency-item" data-currency="KWD" data-flag-src="https://cdn.shopify.com/s/files/1/0737/2069/3009/files/KWD.png?v=1763453447"> 2590 <img class="item-flag-img" src="https://cdn.shopify.com/s/files/1/0737/2069/3009/files/KWD.png?v=1763453447" alt="KWD" width="36" height="36" /> 2591 <span class="currency-label"><span class="code">KWD</span> <span class="name">- Kuwaiti Dinar</span></span> 2592 </button> 2593 </div> 2594 <div class="currency-tile"> 2595 <button type="button" class="currency-item" data-currency="BHD" data-flag-src="https://cdn.shopify.com/s/files/1/0737/2069/3009/files/BHD.png?v=1763453605"> 2596 <img class="item-flag-img" src="https://cdn.shopify.com/s/files/1/0737/2069/3009/files/BHD.png?v=1763453605" alt="BHD" width="36" height="36" /> 2597 <span class="currency-label"><span class="code">BHD</span> <span class="name">- Bahraini Dinar</span></span> 2598 </button> 2599 </div> 2600 <div class="currency-tile"> 2601 <button type="button" class="currency-item" data-currency="SAR" data-flag-src="https://cdn.shopify.com/s/files/1/0737/2069/3009/files/KSA.png?v=1763453501"> 2602 <img class="item-flag-img" src="https://cdn.shopify.com/s/files/1/0737/2069/3009/files/KSA.png?v=1763453501" alt="SAR" width="36" height="36" /> 2603 <span class="currency-label"><span class="code">SAR</span> <span class="name">- Saudi Riyal</span></span> 2604 </button> 2605 </div> 2606 <div class="currency-tile"> 2607 <button type="button" class="currency-item" data-currency="OMR" data-flag-src="https://cdn.shopify.com/s/files/1/0737/2069/3009/files/OMR.png?v=1763453646"> 2608 <img class="item-flag-img" src="https://cdn.shopify.com/s/files/1/0737/2069/3009/files/OMR.png?v=1763453646" alt="OMR" width="36" height="36" /> 2609 <span class="currency-label"><span class="code">OMR</span> <span class="name">- Omani Rial</span></span> 2610 </button> 2611 </div> 2612 <div class="currency-tile"> 2613 <button type="button" class="currency-item" data-currency="QAR" data-flag-src="https://cdn.shopify.com/s/files/1/0737/2069/3009/files/QAR.png?v=1763453547"> 2614 <img class="item-flag-img" src="https://cdn.shopify.com/s/files/1/0737/2069/3009/files/QAR.png?v=1763453547" alt="QAR" width="36" height="36" /> 2615 <span class="currency-label"><span class="code">QAR</span> <span class="name">- Qatari Riyal</span></span> 2616 </button> 2617 </div> 2618 <div class="currency-tile"> 2619 <button type="button" class="currency-item" data-currency="USD" data-flag-src="https://cdn.shopify.com/s/files/1/0737/2069/3009/files/USD.png?v=1763453689"> 2620 <img class="item-flag-img" src="https://cdn.shopify.com/s/files/1/0737/2069/3009/files/USD.png?v=1763453689" alt="USD" width="36" height="36" /> 2621 <span class="currency-label"><span class="code">USD</span> <span class="name">- United States Dollar</span></span> 2622 </button> 2623 </div> 2624 <div class="currency-tile"> 2625 <button type="button" class="currency-item" data-currency="AED" data-flag-src="https://cdn.shopify.com/s/files/1/0737/2069/3009/files/AED.png?v=1763453585"> 2626 <img class="item-flag-img" src="https://cdn.shopify.com/s/files/1/0737/2069/3009/files/AED.png?v=1763453585" alt="AED" width="36" height="36" />
2627 <span class="currency-label"><span class="code">AED</span> <span class="name">- UAE Dirham</span></span> 2628 </button> 2629 </div> 2630 </div> 2631 </div> 2632 </div> 2633 </div></div> 2634 </div><header-sidebar-collapsible-panel class="header-sidebar__collapsible-panel" slot="collapsible-panel"> 2635 <div class="header-sidebar__scroller"><div id="header-panel-1" class="header-sidebar__sub-panel" hidden> 2636 <button type="button" class="header-sidebar__back-button link-faded is-divided text-with-icon h6 md:hidden" data-action="close-panel"><svg aria-hidden="true" focusable="false" fill="none" width="12" class="icon icon-chevron-left icon--direction-aware" viewBox="0 0 10 10"> 2637 <path d="M7 1 3 5l4 4" stroke="currentColor" stroke-linecap="square"/> 2638 </svg>Products</button> 2639 <ul class="header-sidebar__linklist divide-y unstyled-list" role="list"><li><a href="/collections/all-modest-workout-clothes" class="header-sidebar__linklist-button h6">All products</a></li><li><a href="/pages/gulf-cup-collection" class="header-sidebar__linklist-button h6">Gulf Cup</a></li><li><a href="/collections/sets" class="header-sidebar__linklist-button h6">Sets</a></li><li><a href="/collections/modest-workout-tops" class="header-sidebar__linklist-button h6">Tops</a></li><li><a href="/collections/modest-workout-bottoms" class="header-sidebar__linklist-button h6">Bottoms</a></li><li><a href="/collections/modest-workout-jackets" class="header-sidebar__linklist-button h6">Jackets</a></li></ul> 2640 </div><div id="header-panel-2" class="header-sidebar__sub-panel" hidden> 2641 <button type="button" class="header-sidebar__back-button link-faded is-divided text-with-icon h6 md:hidden" data-action="close-panel"><svg aria-hidden="true" focusable="false" fill="none" width="12" class="icon icon-chevron-left icon--direction-aware" viewBox="0 0 10 10"> 2642 <path d="M7 1 3 5l4 4" stroke="currentColor" stroke-linecap="square"/> 2643 </svg>QYNDA Values</button> 2644 <ul class="header-sidebar__linklist divide-y unstyled-list" role="list"><li><a href="/pages/beauty-in-modesty" class="header-sidebar__linklist-button h6">Beauty in Modesty</a></li><li><a href="/pages/inner-strength" class="header-sidebar__linklist-button h6">Inner Strengthâ</a></li><li><a href="/pages/culture-influence" class="header-sidebar__linklist-button h6">Culture Influenceâ</a></li></ul> 2645 </div></div> 2646 </header-sidebar-collapsible-panel></header-sidebar> 2647
2648<script> 2649 function handleSidebarLocaleToggle(event, wrapper) { 2650 event.preventDefault(); 2651 wrapper.classList.add('is-switching'); 2652 const form = wrapper.closest('form'); 2653 setTimeout(function() { 2654 form.submit(); 2655 }, 350); 2656 } 2657</script>
2657</x-header> 2658</height-observer> 2659
2660<script> 2661 document.documentElement.style.setProperty('--header-height', `${document.getElementById('shopify-section-sections--25613585285393__header').clientHeight.toFixed(2)}px`); 2662</script>
2662 2663 2664 2665<style> #shopify-section-sections--25613585285393__header .cart-count-badge, #shopify-section-sections--25613585285393__header #wishlist-count {font-size: 9px;} </style></header> 2666<!-- END sections: header-group --><!-- BEGIN sections: overlay-group --> 2667<section id="shopify-section-sections--25613585318161__cart-drawer" class="shopify-section shopify-section-group-overlay-group shopify-section--cart-drawer"> 2668<cart-drawer id="cart-drawer" class="cart-drawer drawer drawer--center-body color-scheme color-scheme--scheme-2" initial-focus="false" handle-editor-events data-clarity-unmask="true"> 2669 2670 <div class="drawer-header-left" slot="header"> 2671 <p class="h4 drawer-title">Your Cart</p></div> 2672 2673 <style> 2674 .gift-line-item .price { 2675 font-size: 0 !important; 2676 } 2677 2678.gift-line-item .price::after { 2679 content: 'FREE'; 2680 font-size: 14px; 2681 font-weight: 700; 2682 color: #358e2d; 2683} 2684.gift-line-item .li-actions-right { 2685 display: none !important; 2686} 2687.fs-msg strong { 2688 color: black; 2689} 2690 .drawer-header-left { 2691 display: flex; 2692 align-items: center; 2693 gap: 12px; 2694 } 2695 .drawer-header-left {gap: 5px !important;} 2696 .drawer-title { 2697 margin: 0; 2698 font-weight: 600; 2699 } 2700 .drawer::part(header) {padding-block-start: inherit !important;border-bottom: 1px solid #E1E1E1 !important; 2701} 2702 cart-drawer#cart-drawer p.h4 {font-size: 14px !important;font-weight: 550 !important;} 2703 .drawer-count-badge { 2704 background-color: #49002A; 2705 color: #ffffff; 2706 border-radius: 50%; 2707 width: 22px; 2708 height: 22px; 2709 display: flex; 2710 align-items: center; 2711 justify-content: center; 2712 font-size: 13px; 2713 font-weight: 600; 2714 line-height: 1; 2715 } 2716 .gift-line-item a { 2717 pointer-events: none !important; 2718 cursor: default !important; 2719 } 2720 cart-drawer p.h5.text-center { 2721 height: calc(100vh - 150px); 2722 display: flex; 2723 align-items: center; 2724 justify-content: center; 2725 margin: 0; 2726 } 2727 2728 </style><p class="h5 text-center">Your cart is empty</p></cart-drawer> 2729 2730 2731</section> 2732<!-- END sections: overlay-group --><div class="doubly-wrapper1"></div> 2733 <main id="main" class="anchor"> 2734 <section id="shopify-section-template--26542184333585__main" class="shopify-section shopify-section--main-product"><style> 2735 #shopify-section-template--26542184333585__main .variant-picker__option legend + span { 2736 display: none; 2737 } 2738 #shopify-section-template--26542184333585__main { 2739 --product-grid: "product-gallery" "product-info" / minmax(0, 1fr); 2740 } 2741 2742 @media screen and (min-width: 1000px) { 2743 #shopify-section-template--26542184333585__main {--product-grid: "product-gallery product-info" / minmax(0, 0.65fr) minmax(0, 0.35fr);} 2744 } 2745</style><div class="section-spacing section-spacing--tight color-scheme color-scheme--scheme-2 color-scheme--bg-54922f2e920ba8346f6dc0fba343d673"> 2746 <div class="container container--lg"> 2747 <product-rerender id="product-info-11184018325777-template--26542184333585__main" observe-form="product-form-main-11184018325777-template--26542184333585__main" allow-partial-rerender><div class="mobile-product-header md:hidden"> 2748 <h1 class="mobilepdptitle" style="text-align: left;">QYNDA GIFT Card</h1> 2749 </div> 2750 <style> 2751 @media screen and (min-width: 1000px) { 2752 .mobile-product-header { display: none !important; } 2753 } 2754 @media screen and (max-width: 999px) { 2755 .mobile-product-header { 2756 display: block !important; 2757 padding: 10px 15px; 2758 } 2759 .mobilepdptitle { 2760 font-size: 22px; 2761 font-weight: 600; 2762 line-height: 32px; 2763 font-family: 'Wallop'; 2764 } 2765 .product-info h1, 2766 .product-info .h1, 2767 .product-info .product-title { 2768 display: none !important; 2769 } 2770 .container .product { 2771 gap: 0px !important; 2772 } 2773 } 2774 .shopify-section--main-product price-list.price-list span.money { 2775 color: #232323; 2776 font-size: 22px !important; 2777 font-weight: 500 !important; 2778 } 2779 .shopify-section--main-product fieldset.variant-picker__option .variant-picker__option-info legend, .shopify-section--main-product fieldset.variant-picker__option .variant-picker__option-info span { 2780 font-size: 14px; 2781 color: #232323; 2782 } 2783 .shopify-section--main-product .variant-picker__option-values label.block-swatch { 2784 font-size: 14px !important; 2785 color: #232323; 2786 } 2787 @media screen and (min-width: 1000px) { 2788 .product-info__block-list { 2789 margin-top: 20px; 2790 margin-right: 10px; 2791 } 2792 } 2793 </style><div class="product gift-card-product gift-card-product--single">
2794<script> 2795(function() { 2796 const productHandle = "qynda-gift-card"; 2797 function getModelHeight(color) { 2798 if (!color) return "170cm"; 2799 const c = color.trim(); 2800 2801 switch (productHandle) { 2802 case 'ladina-2-o': 2803 case 'jog-2': 2804 return "177cm"; 2805 2806 case 'jade': 2807 if (c === 'Coffee') return "177cm"; 2808 if (['Maroon', 'Black', 'Olive'].includes(c)) return "168cm"; 2809 return "170cm"; 2810 2811 case 'rehal': 2812 return (['Navy', 'Maroon'].includes(c)) ? "168cm" : "170cm"; 2813 2814 case 'cantara': 2815 return (c === 'Navy') ? "168cm" : "170cm"; 2816 2817 case 'mak-light-parka': 2818 return (c === 'Olive') ? "168cm" : "170cm"; 2819 2820 case 'bada': 2821 return "168cm"; 2822 2823 default: 2824 return "170cm"; 2825 } 2826 } 2827 const variantMap = {"54370783428881": "$100","54370507161873": "$150","54370507194641": "$200","54370507227409": "$250","54392469586193": "$300"}; 2828 2829 function updateAllBadges() { 2830 const params = new URLSearchParams(window.location.search); 2831 const variantId = params.get('variant') || "54370783428881"; 2832 2833 const colorName = variantMap[variantId]; 2834 const height = getModelHeight(colorName); 2835 2836 const badges = document.querySelectorAll('.variant-model-badge'); 2837 badges.forEach(badge => { 2838 badge.textContent = `Model is ${height} wearing S`; 2839 badge.style.display = 'block'; 2840 }); 2841 } 2842 let lastVariantUrl = window.location.href; 2843 setInterval(() => { 2844 if (window.location.href !== lastVariantUrl) { 2845 lastVariantUrl = window.location.href; 2846 updateAllBadges(); 2847 } 2848 }, 500); 2849 updateAllBadges(); 2850})(); 2851</script>
2851 2852<style> 2853 button#zoomTriggerBtn { 2854 display: none; 2855} 2856 2857/* Ensure the container is ready for absolute elements */ 2858.product-gallery__media { 2859 position: relative !important; 2860} 2861 2862.variant-model-badge { 2863 background-color: #4F0030 !important; 2864 color: #ffffff !important; 2865 position: absolute !important; 2866 padding: 6px 12px; 2867 font-size: 12px; 2868 font-weight: 600; 2869 z-index: 2 !important; /* Forces it above videos */ 2870 line-height: 1; 2871 pointer-events: none; 2872 white-space: nowrap; 2873 bottom: 15px !important; 2874 right: 15px !important; /* Bottom Left corner */ 2875 top: auto !important; 2876 left: auto !important; 2877 width: min-content; 2878 margin-right: 20px; 2879} 2880 2881/* 2. Hide badge if the image/video container itself is hidden */ 2882.product-gallery__media[hidden] .variant-model-badge { 2883 display: none !important; 2884} 2885 2886@media screen and (min-width: 1000px) { 2887 /* Show badge on the FIRST visible image only */ 2888 .product-gallery__media:not([hidden]) .variant-model-badge { 2889 display: block !important; 2890 } 2891 2892 /* Hide it for the SECOND visible item and onwards */ 2893 .product-gallery__media:not([hidden]) ~ .product-gallery__media:not([hidden]) .variant-model-badge { 2894 display: none !important; 2895 } 2896 2897 .variant-model-badge { 2898 bottom: 20px !important; 2899 margin-right: 0px !important; 2900 font-size: 14px; 2901 } 2902} 2903 2904 2905 /* --- 1. FIXED: ACTIVE THUMBNAIL BORDER --- */ 2906 .product-gallery__thumbnail { 2907 border: 1px solid transparent !important; 2908 padding: 1px; 2909 border-radius: 0 !important; 2910 transition: border-color 0.2s ease; 2911 } 2912 .product-gallery__thumbnail[aria-current="true"] { 2913 border: 2.5px solid #BABABA !important; 2914 } 2915 2916 /* --- 2. MAKE IMAGE CLICKABLE (Visual Cue) --- */ 2917 .product-gallery__media[data-media-type="image"] { 2918 cursor: zoom-in; /* Change cursor to magnifying glass */ 2919 } 2920 2921 /* --- CUSTOM CSS FOR MOBILE ARROWS & TOP PAGINATION --- */ 2922 @media screen and (max-width: 999px) { 2923 2924 /* CUSTOM SIDE ARROWS */ 2925 .custom-mobile-arrow-btn { 2926 position: absolute !important; 2927 top: 42%; 2928 transform: translateY(-50%); 2929 z-index: 2; 2930 background: transparent !important; 2931 border: none !important; 2932 padding: 0 !important; 2933 width: 44px; 2934 height: 44px; 2935 display: flex; 2936 align-items: center; 2937 justify-content: center; 2938 visibility: visible !important; 2939 opacity: 1 !important; 2940 } 2941 .custom-arrow-prev { left: 10px; } 2942 .custom-arrow-next { right: 10px; } 2943 2944 .custom-arrow-icon { 2945 width: 32px; 2946 height: 32px; 2947 object-fit: contain; 2948 } 2949 2950 /* CUSTOM TOP PAGINATION */ 2951 .custom-pagination-top { 2952 position: absolute; 2953 top: 12px; 2954 left: 0; 2955 width: 100%; 2956 display: flex; 2957 padding: 0 12px; 2958 gap: 6px; 2959 z-index: 11; 2960 justify-content: center; 2961 } 2962 2963 .custom-pagination-top button { 2964 appearance: none; 2965 -webkit-appearance: none; 2966 background-color: rgba(255, 255, 255, 0.35); 2967 height: 4px; 2968 flex-grow: 1; 2969 border: none; 2970 border-radius: 2px; 2971 padding: 0; 2972 transition: background-color 0.2s ease; 2973 cursor: pointer; 2974 } 2975 2976 .custom-pagination-top button[aria-current="true"] { 2977 background-color: #ffffff; 2978 height: 4px; 2979 } 2980 .product-gallery { 2981 gap: 10px !important; 2982 } 2983 2984 /* ZOOM BUTTON POSITIONING */ 2985 .product-gallery__zoom-button { 2986 position: absolute !important; 2987 top: auto !important; 2988 bottom: 145px !important; 2989 right: 15px !important; 2990 left: auto !important; 2991 z-index: 2; 2992 } 2993 } 2994 2995 @media screen and (min-width: 1000px) { 2996 .custom-mobile-arrow-btn, .custom-pagination-top { 2997 display: none !important; 2998 } 2999 } 3000 /* --- END CUSTOM CSS --- */ 3001 3002 /* STANDARD THEME CSS PRESERVATION */@media screen and (min-width: 1000px) { 3003 #shopify-section-template--26542184333585__main {}} 3004</style> 3005 3006 3007 3008 3009<product-gallery class="product-gallery" form="product-form-main-11184018325777-template--26542184333585__main" filtered-indexes="[]" allow-zoom="3"><open-lightbox-button class="contents"> 3010 <button class="product-gallery__zoom-button circle-button circle-button--sm md:hidden" id="zoomTriggerBtn">
3011 <span class="sr-only">Zoom picture</span><svg aria-hidden="true" focusable="false" width="14" class="icon icon-zoom" viewBox="0 0 14 14"> 3012 <path d="M9.432 9.432a4.94 4.94 0 1 1-6.985-6.985 4.94 4.94 0 0 1 6.985 6.985Zm0 0L13 13" fill="none" stroke="currentColor" stroke-linecap="square"/> 3013 <path d="M6 3.5V6m0 2.5V6m0 0H3.5h5" fill="none" stroke="currentColor" /> 3014 </svg></button> 3015 </open-lightbox-button><div class="product-gallery__image-list"> 3016 3017 <div class="contents"><carousel-navigation class="custom-pagination-top sm:hidden" aria-controls="product-gallery-carousel-11184018325777-template--26542184333585__main"><button type="button" aria-current="true"> 3018 <span class="sr-only">Go to item 1</span> 3019 </button></carousel-navigation><carousel-prev-button aria-controls="product-gallery-carousel-11184018325777-template--26542184333585__main" class="contents"> 3020 <button type="button" class="custom-mobile-arrow-btn custom-arrow-prev sm:hidden"> 3021 <span class="sr-only">Previous</span> 3022 <img src="https://cdn.shopify.com/s/files/1/0737/2069/3009/files/arrow-left-circle_4_3.png?v=1764574754" alt="Previous" class="custom-arrow-icon" width="32" height="32"> 3023 </button> 3024 </carousel-prev-button> 3025 3026 <scroll-carousel adaptive-height id="product-gallery-carousel-11184018325777-template--26542184333585__main" class="product-gallery__carousel scroll-area full-bleed md:unbleed" role="region"><div class="product-gallery__media snap-center is-initial" data-media-type="image" data-media-id="44967510540561" role="group" aria-label="Item 1 of 1" ><img src="//qynda.com/cdn/shop/files/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353&width=1200" alt="QYNDA GIFT Card" srcset="//qynda.com/cdn/shop/files/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353&width=200 200w, //qynda.com/cdn/shop/files/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353&width=300 300w, //qynda.com/cdn/shop/files/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353&width=400 400w, //qynda.com/cdn/shop/files/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353&width=500 500w, //qynda.com/cdn/shop/files/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353&width=600 600w, //qynda.com/cdn/shop/files/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353&width=700 700w, //qynda.com/cdn/shop/files/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353&width=800 800w, //qynda.com/cdn/shop/files/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353&width=1000 1000w, //qynda.com/cdn/shop/files/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353&width=1200 1200w" width="1200" height="1200" loading="eager" fetchpriority="high" sizes="(max-width: 699px) calc(100vw - 40px), (max-width: 999px) calc(100vw - 64px), min(1100px, 819px - 96px)"></div></scroll-carousel><carousel-next-button aria-controls="product-gallery-carousel-11184018325777-template--26542184333585__main" class="contents"> 3027 <button type="button" class="custom-mobile-arrow-btn custom-arrow-next sm:hidden"> 3028 <span class="sr-only">Next</span> 3029 <img src="https://cdn.shopify.com/s/files/1/0737/2069/3009/files/arrow-left-circle_4_2.png?v=1764574754" alt="Next" class="custom-arrow-icon" width="32" height="32"> 3030 </button> 3031 </carousel-next-button> 3032 </div></div></product-gallery> 3033
3034<script> 3035document.addEventListener('DOMContentLoaded', function() { 3036 const carouselId = 'product-gallery-carousel-11184018325777-template--26542184333585__main'; 3037 const carousel = document.getElementById(carouselId); 3038 const zoomButton = document.getElementById('zoomTriggerBtn'); 3039 3040 if (!carousel) return; 3041 3042 const prevBtn = document.querySelector('.custom-arrow-prev'); 3043 const nextBtn = document.querySelector('.custom-arrow-next'); 3044 const paginationDots = document.querySelectorAll('.custom-pagination-top button'); 3045 const galleryItems = carousel.querySelectorAll('.product-gallery__media'); 3046 3047 // Detect RTL 3048 const isRTL = window.getComputedStyle(carousel).direction === 'rtl'; 3049 3050 // --- ARROW VISIBILITY LOGIC --- 3051 function toggleArrows() { 3052 const scrollLeft = Math.abs(carousel.scrollLeft); 3053 const maxScroll = carousel.scrollWidth - carousel.clientWidth; 3054 3055 // Threshold of 10px for safety 3056 const isAtStart = scrollLeft <= 10; 3057 const isAtEnd = scrollLeft >= maxScroll - 10; 3058 3059 if (prevBtn) { 3060 prevBtn.style.display = isAtStart ? 'none' : 'flex'; 3061 } 3062 if (nextBtn) { 3063 nextBtn.style.display = isAtEnd ? 'none' : 'flex'; 3064 } 3065 } 3066 3067 // --- ZOOM FUNCTIONALITY --- 3068 if (zoomButton && galleryItems.length > 0) { 3069 galleryItems.forEach(item => { 3070 item.addEventListener('click', function(e) { 3071 if(item.getAttribute('data-media-type') === 'image' && !item.hasAttribute('hidden')) { 3072 e.preventDefault(); 3073 zoomButton.click(); 3074 } 3075 }); 3076 }); 3077 } 3078 3079 // --- MOBILE GALLERY LOGIC --- 3080 if (window.innerWidth < 1000) { 3081 function updatePagination() { 3082 const scrollPos = Math.abs(carousel.scrollLeft); 3083 const visibleItems = Array.from(carousel.querySelectorAll('.product-gallery__media:not([hidden])')); 3084 if (visibleItems.length === 0) return; 3085 3086 const itemWidth = visibleItems[0].offsetWidth; 3087 const gap = 10; 3088 const currentIndex = Math.round(scrollPos / (itemWidth + gap)); 3089 3090 const visibleDots = Array.from(paginationDots).filter(dot => !dot.hasAttribute('hidden')); 3091 visibleDots.forEach((dot, index) => { 3092 dot.setAttribute('aria-current', index === currentIndex ? 'true' : 'false'); 3093 }); 3094 3095 toggleArrows(); 3096 } 3097 3098 function moveSlider(direction) { 3099 const visibleItems = Array.from(carousel.querySelectorAll('.product-gallery__media:not([hidden])')); 3100 if (visibleItems.length === 0) return; 3101 3102 const itemWidth = visibleItems[0].offsetWidth; 3103 const gap = 10; 3104 const totalStep = itemWidth + gap; 3105 3106 // Logic for RTL vs LTR 3107 let moveAmount; 3108 if (isRTL) { 3109 // In RTL, "next" goes deeper into negative (left), "prev" goes toward 0 (right) 3110 moveAmount = (direction === 'next') ? -totalStep : totalStep; 3111 } else { 3112 // In LTR, "next" goes positive (right), "prev" goes toward 0 (left) 3113 moveAmount = (direction === 'next') ? totalStep : -totalStep; 3114 } 3115 3116 carousel.scrollBy({ left: moveAmount, behavior: 'smooth' }); 3117 } 3118 3119 if (prevBtn) { 3120 prevBtn.addEventListener('click', (e) => { 3121 e.preventDefault(); 3122 e.stopPropagation(); 3123 moveSlider('prev'); 3124 }); 3125 } 3126 3127 if (nextBtn) { 3128 nextBtn.addEventListener('click', (e) => { 3129 e.preventDefault(); 3130 e.stopPropagation(); 3131 moveSlider('next'); 3132 }); 3133 } 3134 3135 paginationDots.forEach((dot) => { 3136 dot.addEventListener('click', () => { 3137 const visibleDots = Array.from(paginationDots).filter(d => !d.hasAttribute('hidden')); 3138 const dotIndex = visibleDots.indexOf(dot); 3139 const visibleItems = Array.from(carousel.querySelectorAll('.product-gallery__media:not([hidden])')); 3140 const targetItem = visibleItems[dotIndex]; 3141 3142 if (targetItem) { 3143 // Absolute position calculation for RTL/LTR 3144 const targetX = isRTL 3145 ? -(targetItem.offsetLeft - (carousel.offsetWidth - targetItem.offsetWidth)) 3146 : targetItem.offsetLeft - carousel.offsetLeft; 3147 3148 carousel.scrollTo({ left: targetX, behavior: 'smooth' }); 3149 } 3150 }); 3151 }); 3152 3153 carousel.addEventListener('scroll', updatePagination); 3154 3155 // Initial State Check 3156 setTimeout(() => { 3157 updatePagination(); 3158 toggleArrows(); 3159 }, 300); 3160 } 3161}); 3162</script>
3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172<safe-sticky class="product-info "> 3173 <div class="product-info__block-list"><div class="product-info__block-item" data-block-id="title" data-block-type="title" ><h1 class="product-title h3">QYNDA GIFT Card</h1></div><div class="product-info__block-item" data-block-id="variant_picker" data-block-type="variant-picker" > 3174<style> 3175 @media screen and (min-width: 770px) { 3176 .custom-size-modal-content { top: auto !important; } 3177 } 3178</style><variant-picker class="variant-picker v-stack gap-4" section-id="template--26542184333585__main" form-id="product-form-main-11184018325777-template--26542184333585__main" context="main_product" handle="qynda-gift-card" update-url > 3179 3180
3180<script data-variant type="application/json">{"id":54370783428881,"title":"$100","option1":"$100","option2":null,"option3":null,"sku":null,"requires_shipping":false,"taxable":false,"featured_image":null,"available":true,"name":"QYNDA GIFT Card - $100","public_title":"$100","options":["$100"],"price":10000,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}</script>
3180 3181 3182 3183 3184<fieldset class="variant-picker__option v-stack gap-2 fieldset-1"> 3185 3186 <div class="variant-picker__option-info h-stack justify-between gap-2" style="width: 100%;"> 3187 3188 <div class="h-stack gap-1" style="width: 100%; justify-content: space-between; align-items: center; display: flex;"> 3189 <legend class="form__label">Select Gift Card Value: $100 3190</legend></div></div><div class="variant-picker__option-values h-stack gap-2.5 wrap"><input class="sr-only" type="radio" name="product-form-main-11184018325777-template--26542184333585__main-option1" id="option-value-1-template--26542184333585__main-product-form-main-11184018325777-template--26542184333585__main-option1-12418951348497" value="12418951348497" form="product-form-main-11184018325777-template--26542184333585__main" checked="checked" data-option-position="1" ><label class="block-swatch " for="option-value-1-template--26542184333585__main-product-form-main-11184018325777-template--26542184333585__main-option1-12418951348497"><span>$100</span> 3191 </label><input class="sr-only" type="radio" name="product-form-main-11184018325777-template--26542184333585__main-option1" id="option-value-2-template--26542184333585__main-product-form-main-11184018325777-template--26542184333585__main-option1-12418606760209" value="12418606760209" form="product-form-main-11184018325777-template--26542184333585__main" data-option-position="1" ><label class="block-swatch " for="option-value-2-template--26542184333585__main-product-form-main-11184018325777-template--26542184333585__main-option1-12418606760209"><span>$150</span> 3192 </label><input class="sr-only" type="radio" name="product-form-main-11184018325777-template--26542184333585__main-option1" id="option-value-3-template--26542184333585__main-product-form-main-11184018325777-template--26542184333585__main-option1-12418606792977" value="12418606792977" form="product-form-main-11184018325777-template--26542184333585__main" data-option-position="1" ><label class="block-swatch " for="option-value-3-template--26542184333585__main-product-form-main-11184018325777-template--26542184333585__main-option1-12418606792977"><span>$200</span> 3193 </label><input class="sr-only" type="radio" name="product-form-main-11184018325777-template--26542184333585__main-option1" id="option-value-4-template--26542184333585__main-product-form-main-11184018325777-template--26542184333585__main-option1-12418606825745" value="12418606825745" form="product-form-main-11184018325777-template--26542184333585__main" data-option-position="1" ><label class="block-swatch " for="option-value-4-template--26542184333585__main-product-form-main-11184018325777-template--26542184333585__main-option1-12418606825745"><span>$250</span> 3194 </label><input class="sr-only" type="radio" name="product-form-main-11184018325777-template--26542184333585__main-option1" id="option-value-5-template--26542184333585__main-product-form-main-11184018325777-template--26542184333585__main-option1-12439646437649" value="12439646437649" form="product-form-main-11184018325777-template--26542184333585__main" data-option-position="1" ><label class="block-swatch " for="option-value-5-template--26542184333585__main-product-form-main-11184018325777-template--26542184333585__main-option1-12439646437649"><span>$300</span> 3195 </label></div></fieldset><noscript><div class="form-control" ><select id="select--template--26542184333585__main-product-form-main-11184018325777-template--26542184333585__main-id" class="select" name="id" form="product-form-main-11184018325777-template--26542184333585__main" 3196 3197 3198><option selected="selected" value="54370783428881">$100 - <span class=money>$100.00</span></option><option value="54370507161873">$150 - <span class=money>$150.00</span></option><option value="54370507194641">$200 - <span class=money>$200.00</span></option><option value="54370507227409">$250 - <span class=money>$250.00</span></option><option value="54392469586193">$300 - <span class=money>$300.00</span></option></select><svg aria-hidden="true" focusable="false" fill="none" width="10" class="icon icon-dropdown-chevron" viewB
3198ox="0 0 10 6"> 3199 <path d="m1 1 4 4 4-4" stroke="currentColor" stroke-linecap="square"/> 3200 </svg><label for="select--template--26542184333585__main-product-form-main-11184018325777-template--26542184333585__main-id" class="floating-label text-xs">Variant</label></div></noscript></variant-picker><style> 3201.size-chart-trigger-btn-custom { 3202 display: inline-flex !important; 3203 align-items: center !important; 3204 justify-content: center !important; 3205 padding: 6px 14px !important; 3206 cursor: pointer !important; 3207 border: 1px solid #1C1C1C !important; 3208 position: relative !important; 3209 overflow: hidden !important; 3210 z-index: 1 !important; 3211 color: #ffffff !important; 3212 background-color: rgb(var(--button-background)) !important; 3213 background-image: linear-gradient(#fff, #fff) !important; 3214 background-repeat: no-repeat !important; 3215 background-position: right !important; 3216 background-size: 0% 100% !important; 3217 transition: background-size 0.4s cubic-bezier(0.4, 0, 0.2, 1), color 0.3s ease !important; 3218} 3219 3220 3221@media screen and (pointer: fine) { 3222 .size-chart-trigger-btn-custom:hover { 3223 color: #1C1C1C !important; 3224 background-position: left !important; 3225 background-size: 100% 100% !important; 3226 } 3227} 3228 3229 3230.variant-picker__option-info .size-chart-trigger-btn-custom .size-btn-text { 3231 color: #ffffff !important; 3232 font-size: 12px !important; 3233 font-weight: normal !important; 3234 letter-spacing: 0.5px !important; 3235 text-transform: capitalize !important; 3236 position: relative !important; 3237 z-index: 2 !important; 3238 transition: color 0.3s ease !important; 3239} 3240 3241.size-chart-trigger-btn-custom:hover .size-btn-text { 3242 color: #1C1C1C !important; 3243} 3244 3245 3246.size-chart-trigger-btn-custom svg, 3247.size-chart-trigger-btn-custom .size-btn-icon, 3248.size-chart-trigger-btn-custom .size-btn-arrow { 3249 fill: #ffffff !important; 3250 transition: fill 0.3s ease !important; 3251 position: relative !important; 3252 z-index: 2 !important; 3253} 3254 3255.size-chart-trigger-btn-custom:hover svg { 3256 fill: #1C1C1C !important; 3257} 3258 3259 3260.size-btn-icon { 3261 width: 18px !important; 3262 height: 18px !important; 3263 margin-right: 5px !important; 3264} 3265 3266.size-btn-arrow { 3267 width: 14px !important; 3268 height: 14px !important; 3269 margin-left: 4px !important; 3270} 3271</style></div><div class="product-info__block-item" data-block-id="quantity_selector" data-block-type="quantity-selector" ><div class="v-stack gap-1 justify-items-start"><quantity-selector class="quantity-selector " ><button type="button" class="quantity-selector__button" disabled> 3272 <span class="sr-only">Decrease quantity</span><svg aria-hidden="true" focusable="false" fill="none" width="10" class="icon icon-minus" viewBox="0 0 12 12"> 3273 <path d="M0 6h12" stroke="currentColor" stroke-width="1.5"/> 3274 </svg></button><quantity-input class="quantity-selector__input-wrapper"> 3275 <input class="quantity-selector__input " type="number" value="1" name="quantity" inputmode="numeric" step="1" min="1" form="product-form-main-11184018325777-template--26542184333585__main" aria-label="Change quantity"></quantity-input><button type="button" class="quantity-selector__button" > 3276 <span class="sr-only">Increase quantity</span><svg aria-hidden="true" focusable="false" fill="none" width="10" class="icon icon-plus" viewBox="0 0 12 12"> 3277 <path d="M6 0v12M0 6h12" stroke="currentColor" stroke-width="1.5"/> 3278 </svg></button></quantity-selector></div></div><div class="product-info__block-item" data-block-id="buy_buttons" data-block-type="buy-buttons" ><product-form><form method="post" action="/cart/add" id="product-form-main-11184018325777-template--26542184333585__main" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /><input type="hidden" disabled name="id" value="54370783428881"> 3279 3280 3281 3282 <div class="v-stack gap-4"><buy-buttons class="buy-buttons " form="product-form-main-11184018325777-template--26542184333585__main"> 3283<button type="submit" class="button w-full" >Add to cart</button></buy-buttons> 3284 </div><input type="hidden" name="product-id" value="11184018325777" /><input type="hidden" name="section-id" value="template--26542184333585__main" /></form></product-form></div><div class="product-info__block-group accordion-group" data-group-type="accordion-group"><div class="product-info__block-item" data-block-id="accordion_rdkmB3" data-block-type="accordion" ><accordion-disclosure class="accordion " > 3285 <details class="accordion__disclosure group" aria-expanded="false"> 3286 <summary><span class="accordion__toggle h6"><span><strong>Description</strong></span><span class="animated-plus group-expanded:rotate" aria-hidden="true"></span></span> 3287 </summary> 3288 3289 <div class="accordion__content prose"><p><p>Give the gift of choice with a QYNDA Digital Gift Card. Whether it's for a birthday, celebration, thank you, or just because, let them discover something they'll truly love from our curated collection.</p> 3290<p>Your digital gift card will be delivered via email within a few hours of purchase. Simply forward the email to your recipient or print it for a personal touch.</p> 3291<ul> 3292<li>Delivered by email within a few hours</li> 3293<li>Redeemable online at QYNDA</li> 3294<li>No expiration date</li> 3295<li>Available in multiple options</li> 3296</ul></p></div> 3297 </details> 3298</accordion-disclosure></div><div class="product-info__block-item" data-block-id="accordion_N6LMCe" data-block-type="accordion" ><accordion-disclosure class="accordion " > 3299 <details class="accordion__disclosure group" aria-expanded="false"> 3300 <summary><span class="accordion__toggle h6"><span><strong>Returns</strong></span><span class="animated-plus group-expanded:rotate" aria-hidden="true"></span></span> 3301 </summary> 3302 3303 <div class="accordion__content prose"><p>Please note Gift Cards are final sale and cannot be returned or applied to a previous purchase.</p></div> 3304 </details> 3305</accordion-disclosure></div></div><style> 3306 .complete-look__items { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; } 3307 @media(max-width: 768px) { 3308 .complete-look__items { display: flex; width: 100%; overflow-x: auto; scrollbar-width: none; } 3309 .complete-look__items::-webkit-scrollbar { display: none; } 3310 .cl-item { position: relative; min-width: 115px; max-width: 150px; } 3311 } 3312 .cl-item { position: relative; cursor: pointer; } 3313 .cl-image { position: relative; display: block; border-radius: 4px; overflow: hidden; background: #f4f4f4;} 3314 .cl-image img { width: 100%; display: block; transition: opacity 0.2s; aspect-ratio: 0.8; object-fit: cover;} 3315 .cl-plus { 3316 position: absolute; bottom: 8px; right: 5px; width: 35px; height: 35px; 3317 display: flex; align-items: center; justify-content: center; 3318 background: white; border: none; padding: 0; z-index: 2; border-radius: 50%; 3319 } 3320 .cl-plus svg { width: 100%; height: 100%; fill: rgb(0, 0, 0); } 3321 .qc-overlay { 3322 position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; 3323 background: rgba(255,255,255,0.28); backdrop-filter: blur(1px); z-index: 30; 3324 } 3325 .qc-spinner { width: 40px; height: 40px; border-radius: 50%; position: relative; } 3326 .qc-spinner:before { 3327 content: ""; position: absolute; inset: 0; border-radius: 50%; 3328 border: 3px solid rgba(0,0,0,0.1); border-top-color: #000; animation: qc-spin 1s linear infinite; 3329 } 3330 @keyframes qc-spin { to { transform: rotate(360deg); } } 3331 .qc-hide { opacity: 0; transition: opacity .18s; } 3332 .qc-overlay ~ .cl-plus { opacity: 0; visibility: hidden; } 3333 .cl-sold-out { 3334 position: absolute; top: 10px; left: 10px; background: #000; color: #fff; 3335 font-size: 10px; padding: 4px 8px; text-transform: uppercase; font-weight: bold; 3336 z-index: 2; pointer-events: none; 3337 } 3338 .cl-image.sold-out-img { opacity: 0.7; } 3339 .complete-look__title { font-weight: 550; margin-bottom: 20px; font-size: 20px; text-transform: uppercase; } 3340 .cl-info p { margin: 8px 0 4px; font-size: 14px; font-weight: 600;} 3341 .cl-info .money { font-size: 13px; color: #666; } 3342</style><div class="complete-look" id="ctl-wrapper" style="display:none;" data-clarity-unmask="true"> 3343 <h3 class="complete-look__title">Complete the look</h3> 3344 <div class="complete-look__items" id="ctl-items"></div> 3345</div> 3346
3347<script> 3348(function () { 3349 3350 const BASE_PRODUCT = {"id":11184018325777,"title":"QYNDA GIFT Card","handle":"qynda-gift-card","description":"\u003cp\u003eGive the gift of choice with a QYNDA Digital Gift Card. Whether it's for a birthday, celebration, thank you, or just because, let them discover something they'll truly love from our curated collection.\u003c\/p\u003e\n\u003cp\u003eYour digital gift card will be delivered via email within a few hours of purchase. Simply forward the email to your recipient or print it for a personal touch.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eDelivered by email within a few hours\u003c\/li\u003e\n\u003cli\u003eRedeemable online at QYNDA\u003c\/li\u003e\n\u003cli\u003eNo expiration date\u003c\/li\u003e\n\u003cli\u003eAvailable in multiple options\u003c\/li\u003e\n\u003c\/ul\u003e","published_at":"2026-08-20T11:15:53+03:00","created_at":"2026-08-20T10:46:43+03:00","vendor":"QYNDA","type":"","tags":[],"price":10000,"price_min":10000,"price_max":30000,"available":true,"price_varies":true,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":54370783428881,"title":"$100","option1":"$100","option2":null,"option3":null,"sku":null,"requires_shipping":false,"taxable":false,"featured_image":null,"available":true,"name":"QYNDA GIFT Card - $100","public_title":"$100","options":["$100"],"price":10000,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":54370507161873,"title":"$150","option1":"$150","option2":null,"option3":null,"sku":null,"requires_shipping":false,"taxable":false,"featured_image":null,"available":true,"name":"QYNDA GIFT Card - $150","public_title":"$150","options":["$150"],"price":15000,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":54370507194641,"title":"$200","option1":"$200","option2":null,"option3":null,"sku":null,"requires_shipping":false,"taxable":false,"featured_image":null,"available":true,"name":"QYNDA GIFT Card - $200","public_title":"$200","options":["$200"],"price":20000,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":54370507227409,"title":"$250","option1":"$250","option2":null,"option3":null,"sku":null,"requires_shipping":false,"taxable":false,"featured_image":null,"available":true,"name":"QYNDA GIFT Card - $250","public_title":"$250","options":["$250"],"price":25000,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":54392469586193,"title":"$300","option1":"$300","option2":null,"option3":null,"sku":null,"requires_shipping":false,"taxable":false,"featured_image":null,"available":true,"name":"QYNDA GIFT Card - $300","public_title":"$300","options":["$300"],"price":30000,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/qynda.com\/cdn\/shop\/files\/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353"],"featured_image":"\/\/qynda.com\/cdn\/shop\/files\/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353","options":["Select Gift Card Value"],"media":[{"alt":null,"id":44967510540561,"position":1,"preview_image":{"aspect_ratio":1.0,"height":1200,"width":1200,"src":"\/\/qynda.com\/cdn\/shop\/files\/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353"},"aspect_ratio":1.0,"height":1200,"media_type":"image","src":"\/\/qynda.com\/cdn\/shop\/files\/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353","width":1200}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cp\u003eGive the gift of choice with a QYNDA Digital Gift Card. Whether it's for a birthday, celebration, thank you, or just because, let them discover something they'll truly love from our curated collection.\u003c\/p\u003e\n\u003cp\u003eYour digital gift card will be delivered via email within a few hours of purchase. Simply forward the email to your recipient or print it for a personal touch.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eDelivered by email within a few hours\u003c\/li\u003e\n\u003cli\u003eRedeemable online at QYNDA\u003c\/li\u003e\n\u003cli\u003eNo expiration date\u003c\/li\u003e\n\u003cli\u003eAvailable in multiple options\u003c\/li\u003e\n\u003c\/ul\u003e"};
3351 const PRELOADED_DATA = {};// SUPER FAST HANDLE LOOKUP 3352 const HANDLE_DB = { 3353 'SILA GYM SHIRT': 'sila', 3354 'RAYA LONG SLEEVE SPORT TOP': 'raya', 3355 'FLOW SHORT SLEEVE SPORT TOP': 'flow', 3356 'BARQ HALF ZIPPER TSHIRT': 'barq', 3357 'THABYA SQUAT PROOF LEGGINGS': 'thabya', 3358 'REHAL SWEATER': 'rehal', 3359 'THE EVERYDAY GRACE SET': 'the-everyday-grace-set', 3360 'THE ELITE COOLING SET': 'the-elite-cooling-set', 3361 'THE PEAK PERFORMANCE SET': 'the-peak-performance-set', 3362 'BREATHE 2.0 T-SHIRT': 'breathe-2-0', 3363 'CAPE JACKET': 'cape', 3364 'LADINA 2.O LEGGINGS': 'ladina-2-o', 3365 'MOD 2.0 LONG SLEEVE T-SHIRT': 'mod-2-0', 3366 'JADE JOGGER': 'jade', 3367 'JOG 2.0 JOGGER': 'jog-2', 3368 'ARMA LONG SLEEVE T-SHIRT': 'arma', 3369 'OFOQ LONG SLEEVE T-SHIRT': 'ofuq', 3370 'RUH TANK TOP': 'ruh', 3371 'CANTARA PANTS': 'cantara', 3372 'MAK LIGHT PARKA': 'mak-light-parka', 3373 'COOLDOWN COAT': 'cooldown-coat', 3374 'BADA TANK TOP': 'bada', 3375 'FUNUQ HOODIE': 'funuq', 3376 'JOG JOGGER': 'jog', 3377 'FLY 2.0 JACKET': 'fly-2-0', 3378 'BREATHE 2.0 - GULF CUP EDITION': 'breathe-2-0-gulf-cup-edition' 3379 }; 3380 3381 const HANDLE_TO_NAME = {}; 3382 for (let k in HANDLE_DB) HANDLE_TO_NAME[HANDLE_DB[k]] = k; 3383 3384 const COLOR_TRANSLATIONS = { 3385 'Ø£Ø³ÙØ¯': 'Black', 3386 'ÙØ±Ø¯Ù ÙØ§ØªØ': 'Baby Pink', 3387 'بÙÙ ÙØ§ÙÙÙ': 'Coffee', 3388 'Ø£Ø¨ÙØ¶': 'White', 3389 'أزر٠غا٠Ù': 'Infinity Blue', 3390 'Ø±Ù Ø§Ø¯Ù ÙØ§ØªØ': 'French Grey', 3391 'Ø¨ÙØ¬ ØØ¬Ø±Ù': 'Sphinx', 3392 'أزر٠جÙÙØ²': 'Denim Blue', 3393 'بÙ٠٠ارÙÙ': 'Maroon', 3394 'أزرÙ': 'Navy', 3395 'Ø£ÙÙ ÙØ§Ùت': 'Off White', 3396 'Ø²ÙØªÙ': 'Olive', 3397 'Ø²ÙØªÙ (ÙØ³Ø®Ù Ù ØØ¯Ùدة)': 'Olive (Limited Edition)', 3398 'Ø®ÙØ®Ù': 'Peach', 3399 'ر٠اد٠بÙÙØ±ÙتاÙ': 'Puritan Grey', 3400 'أخضر ÙØ§ØªØ': 'Sage', 3401 'ØØ¬Ø±Ù': 'Stone' 3402 }; 3403 3404 /* Arabic option values (esp. Gulf Cup nations) â English PAIRS_DB keys */ 3405 const NATION_TRANSLATIONS = { 3406 'اÙÙÙÙØª': 'Kuwait', 3407 'Ø§ÙØ³Ø¹ÙØ¯ÙØ©': 'KSA', 3408 'Ø³Ø¹ÙØ¯ÙØ©': 'KSA', 3409 'ع٠اÙ': 'Oman', 3410 'عÙ٠اÙ': 'Oman', 3411 'Ø§ÙØ¨ØØ±ÙÙ': 'Bahrain', 3412 'Ø§ÙØ§Ù ارات': 'UAE', 3413 'Ø§ÙØ¥Ù ارات': 'UAE', 3414 'Ø§ÙØ§Ù ارات Ø§ÙØ¹Ø±Ø¨ÙØ© اÙÙ ØªØØ¯Ø©': 'UAE', 3415 'Ø§ÙØ¥Ù ارات Ø§ÙØ¹Ø±Ø¨ÙØ© اÙÙ ØªØØ¯Ø©': 'UAE', 3416 'ÙØ·Ø±': 'Qatar' 3417 }; 3418 3419 const SOLD_OUT_TEXT = "Sold Out"; 3420 3421 const COLOR_TO_ARABIC = {}; 3422 for (let k in COLOR_TRANSLATIONS) COLOR_TO_ARABIC[COLOR_TRANSLATIONS[k]] = k; 3423 3424const PAIRS_DB = [ 3425 { base: "ARMA LONG SLEEVE T-SHIRT - Black", pairs: ["LADINA 2.O LEGGINGS - Black", "CAPE JACKET - Black"] }, 3426 { base: "ARMA LONG SLEEVE T-SHIRT - Denim Blue", pairs: ["LADINA 2.O LEGGINGS - Denim Blue", "MAK LIGHT PARKA - Denim Blue"] }, 3427 { base: "ARMA LONG SLEEVE T-SHIRT - Maroon", pairs: ["LADINA 2.O LEGGINGS - Maroon", "COOLDOWN COAT - Maroon"] }, 3428 { base: "ARMA LONG SLEEVE T-SHIRT - Olive", pairs: ["LADINA 2.O LEGGINGS - Olive", "COOLDOWN COAT - Olive"] }, 3429 { base: "BADA TANK TOP - Black", pairs: ["MAK LIGHT PARKA - Black", "LADINA 2.O LEGGINGS - Black"] }, 3430 { base: "BADA TANK TOP - Dark Denim", pairs: ["MAK LIGHT PARKA - Black", "LADINA 2.O LEGGINGS - Black"] }, 3431 { base: "BADA TANK TOP - Maroon", pairs: ["MAK LIGHT PARKA - Black", "LADINA 2.O LEGGINGS - Black"] }, 3432 { base: "BARQ HALF ZIPPER TSHIRT - Baby Pink", pairs: ["THABYA SQUAT PROOF LEGGINGS - Baby Pink", "SILA GYM SHIRT - Baby Pink"] }, 3433 { base: "BARQ HALF ZIPPER TSHIRT - Black", pairs: ["LADINA 2.O LEGGINGS - Black", "CAPE JACKET - Black"] }, 3434 { base: "BREATHE 2.0 T-SHIRT - Black", pairs: ["LADINA 2.O LEGGINGS - Black", "COOLDOWN COAT - Black"] }, 3435 { base: "BREATHE 2.0 T-SHIRT - Denim Blue", pairs: ["LADINA 2.O LEGGINGS - Denim Blue", "MAK LIGHT PARKA - Denim Blue"] }, 3436 { base: "BREATHE 2.0 T-SHIRT - Maroon", pairs: ["MAK LIGHT PARKA - Maroon", "THABYA SQUAT PROOF LEGGINGS - Maroon"] }, 3437 { base: "BREATHE 2.0 T-SHIRT - Olive", pairs: ["LADINA 2.O LEGGINGS - Olive", "SILA GYM SHIRT - Olive"] }, 3438 { base: "BREATHE 2.0 T-SHIRT - White", pairs: ["SILA GYM SHIRT - White", "LADINA 2.O LEGGINGS - Black"] }, 3439 { base: "BREATHE 2.0 T-SHIRT - Coffee", pairs: ["THABYA SQUAT PROOF LEGGINGS - Coffee", "COOLDOWN COAT - Coffee"] }, 3440 { base: "BREATHE 2.0 T-SHIRT - Peach", pairs: ["THABYA SQUAT PROOF LEGGINGS - Peach", "SILA GYM SHIRT - Peach"] }, 3441 { base: "CANTARA PANTS - Black", pairs: ["REHAL SWEATER - Black"] }, 3442 { base: "CANTARA PANTS - Maroon", pairs: ["REHAL SWEATER - Maroon"] }, 3443 { base: "CANTARA PANTS - Navy", pairs: ["REHAL SWEATER - Navy"] }, 3444 { base: "CANTARA PANTS - Off White", pairs: ["REHAL SWEATER - Off White"] }, 3445 { base: "CANTARA PANTS - Olive", pairs: ["REHAL SWEATER - Olive"] }, 3446 { base: "CAPE JACKET - Black", pairs: ["LADINA 2.O LEGGINGS - Black", "MOD 2.0 LONG SLEEVE T-SHIRT - Black"] }, 3447 { base: "CAPE JACKET - Stone", pairs: ["LADINA 2.O LEGGINGS - Black", "MOD 2.0 LONG SLEEVE T-SHIRT - Black"] }, 3448 { base: "COOLDOWN COAT - Black", pairs: ["LADINA 2.O LEGGINGS - Black", "OFOQ LONG SLEEVE T-SHIRT - Black"] }, 3449 { base: "COOLDOWN COAT - Coffee", pairs: ["THABYA SQUAT PROOF LEGGINGS - Coffee", "FLOW SHORT SLEEVE SPORT TOP - Coffee"] }, 3450 { base: "COOLDOWN COAT - Infinity Blue", pairs: ["LADINA 2.O LEGGINGS - Denim Blue", "BREATHE 2.0 T-SHIRT - Denim Blue"] }, 3451 { base: "COOLDOWN COAT - Maroon", pairs: ["LADINA 2.O LEGGINGS - Maroon", "OFOQ LONG SLEEVE T-SHIRT - Maroon"] }, 3452 { base: "COOLDOWN COAT - Olive", pairs: ["LADINA 2.O LEGGINGS - Olive", "ARMA LONG SLEEVE T-SHIRT - Olive"] }, 3453 { base: "COOLDOWN COAT - Puritan Grey", pairs: ["LADINA 2.O LEGGINGS - Puritan Grey", "MOD 2.0 LONG SLEEVE T-SHIRT - Puritan Grey"] }, 3454 { base: "FLOW SHORT SLEEVE SPORT TOP - Baby Pink", pairs: ["THABYA SQUAT PROOF LEGGINGS - Baby Pink", "SILA GYM SHIRT - Baby Pink"] }, 3455 { base: "FLOW SHORT SLEEVE SPORT TOP - Black", pairs: ["LADINA 2.O LEGGINGS - Black", "SILA GYM SHIRT - Black"] }, 3456 { base: "FLOW SHORT SLEEVE SPORT TOP - Coffee", pairs: ["THABYA SQUAT PROOF LEGGINGS - Coffee", "SILA GYM SHIRT - Coffee"] }, 3457 { base: "FLOW SHORT SLEEVE SPORT TOP - White", pairs: ["LADINA 2.O LEGGINGS - Black", "SILA GYM SHIRT - White"] }, 3458 { base: "FUNUQ HOODIE - Black", pairs: ["JOG JOGGER - Black"] }, 3459 { base: "FUNUQ HOODIE - French Grey", pairs: ["JOG 2.0 JOGGER - French Grey"] }, 3460 { base: "FUNUQ HOODIE - Sphinx", pairs: ["JOG 2.0 JOGGER - Sphinx"] }, 3461 { base: "JADE JOGGER - Black", pairs: ["MOD 2.0 LONG SLEEVE T-SHIRT - Black", "MAK LIGHT PARKA - Black"] }, 3462 { base: "JADE JOGGER - Maroon", pairs: ["MOD 2.0 LONG SLEEVE T-SHIRT - Maroon", "COOLDOWN COAT - Maroon"] }, 3463 { base: "JADE JOGGER - Olive", pairs: ["MOD 2.0 LONG SLEEVE T-SHIRT - Olive", "COOLDOWN COAT - Olive"] }, 3464 { base: "JADE JOGGER - Coffee", pairs: ["BREATHE 2.0 T-SHIRT - Coffee", "COOLDOWN COAT - Coffee"] }, 3465 { base: "JOG 2.0 JOGGER - French Grey", pairs: ["FUNUQ HOODIE - French Grey"] }, 3466 { base: "JOG 2.0 JOGGER - Sphinx", pairs: ["FUNUQ HOODIE - Sphinx"] }, 3467 { base: "JOG JOGGER - Black", pairs: ["FUNUQ HOODIE - Black"] }, 3468 { base: "JOG JOGGER - Sphinx", pairs: ["FUNUQ HOODIE - Sphinx"] }, 3469 { base: "LADINA 2.O LEGGINGS - Black", pairs: ["FLOW SHORT SLEEVE SPORT TOP - Black", "SILA GYM SHIRT - Black"] }, 3470 { base: "LADINA 2.O LEGGINGS - Denim Blue", pairs: ["ARMA LONG SLEEVE T-SHIRT - Denim Blue", "MAK LIGHT PARKA - Denim Blue"] }, 3471 { base: "LADINA 2.O LEGGINGS - Maroon", pairs: ["BADA TANK TOP - Maroon", "SILA GYM SHIRT - Maroon"] }, 3472 { base: "LADINA 2.O LEGGINGS - Olive", pairs: ["BREATHE 2.0 T-SHIRT - Olive", "SILA GYM SHIRT - Olive"] }, 3473 { base: "LADINA 2.O LEGGINGS - Puritan Grey", pairs: ["OFOQ
3473LONG SLEEVE T-SHIRT - Puritan Grey", "COOLDOWN COAT - Puritan Grey"] }, 3474 { base: "MAK LIGHT PARKA - Baby Pink", pairs: ["THABYA SQUAT PROOF LEGGINGS - Baby Pink", "FLOW SHORT SLEEVE SPORT TOP - Baby Pink"] }, 3475 { base: "MAK LIGHT PARKA - Black", pairs: ["BREATHE 2.0 T-SHIRT - Black", "LADINA 2.O LEGGINGS - Black"] }, 3476 { base: "MAK LIGHT PARKA - Coffee", pairs: ["THABYA SQUAT PROOF LEGGINGS - Coffee", "FLOW SHORT SLEEVE SPORT TOP - Coffee"] }, 3477 { base: "MAK LIGHT PARKA - Denim Blue", pairs: ["LADINA 2.O LEGGINGS - Denim Blue", "ARMA LONG SLEEVE T-SHIRT - Denim Blue"] }, 3478 { base: "MAK LIGHT PARKA - Maroon", pairs: ["THABYA SQUAT PROOF LEGGINGS - Maroon", "BREATHE 2.0 T-SHIRT - Maroon"] }, 3479 { base: "MAK LIGHT PARKA - Off White", pairs: ["BREATHE 2.0 T-SHIRT - White", "LADINA 2.O LEGGINGS - Black"] }, 3480 { base: "MAK LIGHT PARKA - Olive", pairs: ["BREATHE 2.0 T-SHIRT - Olive", "LADINA 2.O LEGGINGS - Olive"] }, 3481 { base: "MOD 2.0 LONG SLEEVE T-SHIRT - Black", pairs: ["LADINA 2.O LEGGINGS - Black", "COOLDOWN COAT - Black"] }, 3482 { base: "MOD 2.0 LONG SLEEVE T-SHIRT - Denim Blue", pairs: ["LADINA 2.O LEGGINGS - Denim Blue", "MAK LIGHT PARKA - Denim Blue"] }, 3483 { base: "MOD 2.0 LONG SLEEVE T-SHIRT - Maroon", pairs: ["LADINA 2.O LEGGINGS - Maroon", "COOLDOWN COAT - Maroon"] }, 3484 { base: "MOD 2.0 LONG SLEEVE T-SHIRT - Olive", pairs: ["LADINA 2.O LEGGINGS - Olive", "COOLDOWN COAT - Olive"] }, 3485 { base: "OFOQ LONG SLEEVE T-SHIRT - Black", pairs: ["LADINA 2.O LEGGINGS - Black", "COOLDOWN COAT - Black"] }, 3486 { base: "OFOQ LONG SLEEVE T-SHIRT - Maroon", pairs: ["LADINA 2.O LEGGINGS - Maroon", "COOLDOWN COAT - Maroon"] }, 3487 { base: "OFOQ LONG SLEEVE T-SHIRT - Olive", pairs: ["LADINA 2.O LEGGINGS - Olive", "COOLDOWN COAT - Olive"] }, 3488 { base: "OFOQ LONG SLEEVE T-SHIRT - Puritan Grey", pairs: ["LADINA 2.O LEGGINGS - Puritan Grey", "COOLDOWN COAT - Puritan Grey"] }, 3489 { base: "RAYA LONG SLEEVE SPORT TOP - Black", pairs: ["THABYA SQUAT PROOF LEGGINGS - Black", "CAPE JACKET - Black"] }, 3490 { base: "RAYA LONG SLEEVE SPORT TOP - Coffee", pairs: ["THABYA SQUAT PROOF LEGGINGS - Coffee", "MAK LIGHT PARKA - Coffee"] }, 3491 { base: "RAYA LONG SLEEVE SPORT TOP - Olive", pairs: ["LADINA 2.O LEGGINGS - Olive", "COOLDOWN COAT - Olive"] }, 3492 { base: "RAYA LONG SLEEVE SPORT TOP - Peach", pairs: ["THABYA SQUAT PROOF LEGGINGS - Peach", "SILA GYM SHIRT - Peach"] }, 3493 { base: "REHAL SWEATER - Black", pairs: ["CANTARA PANTS - Black"] }, 3494 { base: "REHAL SWEATER - Maroon", pairs: ["CANTARA PANTS - Maroon"] }, 3495 { base: "REHAL SWEATER - Navy", pairs: ["CANTARA PANTS - Navy"] }, 3496 { base: "REHAL SWEATER - Off White", pairs: ["CANTARA PANTS - Off White"] }, 3497 { base: "REHAL SWEATER - Olive", pairs: ["CANTARA PANTS - Olive"] }, 3498 { base: "RUH TANK TOP - Black", pairs: ["LADINA 2.O LEGGINGS - Black", "COOLDOWN COAT - Black"] }, 3499 { base: "RUH TANK TOP - Maroon", pairs: ["LADINA 2.O LEGGINGS - Maroon", "COOLDOWN COAT - Maroon"] }, 3500 { base: "RUH TANK TOP - Sage", pairs: ["LADINA 2.O LEGGINGS - Olive", "COOLDOWN COAT - Olive"] }, 3501 { base: "SILA GYM SHIRT - Baby Pink", pairs: ["THABYA SQUAT PROOF LEGGINGS - Baby Pink", "FLOW SHORT SLEEVE SPORT TOP - Baby Pink"] }, 3502 { base: "SILA GYM SHIRT - Black", pairs: ["LADINA 2.O LEGGINGS - Black", "BREATHE 2.0 T-SHIRT - Black"] }, 3503 { base: "SILA GYM SHIRT - Coffee", pairs: ["THABYA SQUAT PROOF LEGGINGS - Coffee", "FLOW SHORT SLEEVE SPORT TOP - Coffee"] }, 3504 { base: "SILA GYM SHIRT - Maroon", pairs: ["THABYA SQUAT PROOF LEGGINGS - Maroon", "BREATHE 2.0 T-SHIRT - Maroon"] }, 3505 { base: "SILA GYM SHIRT - Olive", pairs: ["LADINA 2.O LEGGINGS - Olive", "BREATHE 2.0 T-SHIRT - Olive"] }, 3506 { base: "SILA GYM SHIRT - Peach", pairs: ["THABYA SQUAT PROOF LEGGINGS - Peach", "RAYA LONG SLEEVE SPORT TOP - Peach"] }, 3507 { base: "SILA GYM SHIRT - White", pairs: ["LADINA 2.O LEGGINGS - Black", "BREATHE 2.0 T-SHIRT - White"] }, 3508 { base: "THABYA SQUAT PROOF LEGGINGS - Baby Pink", pairs: ["FLOW SHORT SLEEVE SPORT TOP - Baby Pink", "SILA GYM SHIRT - Baby Pink"] }, 3509 { base: "THABYA SQUAT PROOF LEGGINGS - Black", pairs: ["ARMA LONG SLEEVE T-SHIRT - Black", "COOLDOWN COAT - Black"] }, 3510 { base: "THABYA SQUAT PROOF LEGGINGS - Coffee", pairs: ["FLOW SHORT SLEEVE SPORT TOP - Coffee", "MAK LIGHT PARKA - Coffee"] }, 3511 { base: "THABYA SQUAT PROOF LEGGINGS - Maroon", pairs: ["ARMA LONG SLEEVE T-SHIRT - Maroon", "COOLDOWN COAT - Maroon"] }, 3512 { base: "THABYA SQUAT PROOF LEGGINGS - Peach", pairs: ["SILA GYM SHIRT - Peach", "RAYA LONG SLEEVE SPORT TOP - Peach"] }, 3513 { base: "FLY 2.0 JACKET - Black", pairs: ["THABYA SQUAT PROOF LEGGINGS - Black", "BREATHE 2.0 T-SHIRT - Black"] }, 3514 { base: "FLY 2.0 JACKET - Maroon", pairs: ["THABYA SQUAT PROOF LEGGINGS - Maroon", "BREATHE 2.0 T-SHIRT - Maroon"] }, 3515 { base: "FLY 2.0 JACKET - Coffee", pairs: ["JADE JOGGER - Coffee", "BREATHE 2.0 T-SHIRT - Coffee"] }, 3516 { base: "FLY 2.0 JACKET - Peach", pairs: ["THABYA SQUAT PROOF LEGGINGS - Peach", "BREATHE 2.0 T-SHIRT - Peach"] }, 3517 { base: "MOD 2.0 LONG SLEEVE T-SHIRT - Puritan Grey", pairs: ["COOLDOWN COAT - Puritan Grey", "LADINA 2.O LEGGINGS - Puritan Grey"] }, 3518 { base: "BREATHE 2.0 - GULF CUP EDITION - Kuwait", pairs: ["LADINA 2.O LEGGINGS - Denim Blue", "MOD 2.0 LONG SLEEVE T-SHIRT - Denim Blue"] }, 3519 { base: "BREATHE 2.0 - GULF CUP EDITION - Qatar", pairs: ["LADINA 2.O LEGGINGS - Maroon", "ARMA LONG SLEEVE T-SHIRT - Maroon"] }, 3520 { base: "BREATHE 2.0 - GULF CUP EDITION - Bahrain", pairs: ["LADINA 2.O LEGGINGS - Maroon", "ARMA LONG SLEEVE T-SHIRT - Maroon"] }, 3521 { base: "BREATHE 2.0 - GULF CUP EDITION - Oman", pairs: ["LADINA 2.O LEGGINGS - Maroon", "ARMA LONG SLEEVE T-SHIRT - Maroon"] }, 3522 { base: "BREATHE 2.0 - GULF CUP EDITION - KSA", pairs: ["LADINA 2.O LEGGINGS - Olive", "ARMA LONG SLEEVE T-SHIRT - Olive"] }, 3523 { base: "BREATHE 2.0 - GULF CUP EDITION - UAE", pairs: ["LADINA 2.O LEGGINGS - Black", "ARMA LONG SLEEVE T-SHIRT - Black"] } 3524 ]; 3525 const normalize = s => (s||'').toLowerCase().trim().replace(/\s+/g, ' ').replace(/2\.o/g, '2.0'); 3526 3527 function formatMoney(cents) { 3528 if (typeof Shopify !== 'undefined' && Shopify.formatMoney) return Shopify.formatMoney(cents, window.Shopify.money_format || '$'); 3529 return '$' + (cents / 100).toFixed(2); 3530 } 3531 3532 function getCurrentColor(product) { 3533 const gcId = document.getElementById('gc-variant-id'); 3534 if (gcId && gcId.value && product) { 3535 const gv = product.variants.find(x => String(x.id) === String(gcId.value)); 3536 if (gv) return gv.option1 || gv.option2; 3537 } 3538 const params = new URLSearchParams(window.location.search); 3539 const variantId = params.get('variant'); 3540 if(variantId && product) { 3541 const v = product.variants.find(x => x.id == variantId); 3542 if(v) return v.option1 || v.option2; 3543 } 3544 if(product && product.variants.length > 0) return product.variants[0].option1 || product.variants[0].option2; 3545 return ''; 3546 } 3547 3548 function nationAliasKeys(color) { 3549 const c = normalize(color);
3550 const keys = [c]; 3551 if (c === 'ksa' || c.indexOf('saudi') !== -1) keys.push('ksa', 'saudi arabia'); 3552 if (c === 'uae' || c.indexOf('emirates') !== -1 || c.indexOf('united arab') !== -1) { 3553 keys.push('uae', 'united arab emirates', 'emirates'); 3554 } 3555 return keys; 3556 } 3557 3558 function toEnglishOption(raw) { 3559 const value = String(raw == null ? '' : raw).trim(); 3560 if (!value) return ''; 3561 if (NATION_TRANSLATIONS[value]) return NATION_TRANSLATIONS[value]; 3562 if (COLOR_TRANSLATIONS[value]) return COLOR_TRANSLATIONS[value]; 3563 const lowered = value.toLowerCase(); 3564 for (const k in NATION_TRANSLATIONS) { 3565 if (k.toLowerCase() === lowered) return NATION_TRANSLATIONS[k]; 3566 } 3567 for (const k in COLOR_TRANSLATIONS) { 3568 if (k.toLowerCase() === lowered) return COLOR_TRANSLATIONS[k]; 3569 } 3570 return value; 3571 } 3572 3573 function findPairsMatch(englishName, optionValue) { 3574 const englishOption = toEnglishOption(optionValue); 3575 const constructedKey = englishName + ' - ' + englishOption; 3576 let match = PAIRS_DB.find(entry => normalize(entry.base) === normalize(constructedKey)); 3577 if (match) return match; 3578 const aliases = nationAliasKeys(englishOption); 3579 for (let i = 0; i < aliases.length; i++) { 3580 match = PAIRS_DB.find(entry => normalize(entry.base) === normalize(englishName + ' - ' + aliases[i])); 3581 if (match) return match; 3582 } 3583 return null; 3584 } 3585 3586 function parsePairString(str) { 3587 const lastDashIndex = str.lastIndexOf(' - '); 3588 if (lastDashIndex === -1) return { name: str, color: '' }; 3589 return { name: str.substring(0, lastDashIndex).trim(), color: str.substring(lastDashIndex + 3).trim() }; 3590 } 3591 3592 function openQuickView(handle, variantId) { 3593 const modalId = `ctl-modal-${handle}-${variantId}`; 3594 let modal = document.getElementById(modalId); 3595 if (!modal) { 3596 modal = document.createElement('quick-buy-modal'); 3597 modal.id = modalId; 3598 modal.className = 'quick-buy-modal modal'; 3599 modal.setAttribute('handle', `${handle}?variant=${variantId}`); 3600 document.body.appendChild(modal); 3601 } 3602 if (typeof modal.open === 'function') modal.open(); 3603 else if (typeof modal.show === 'function') modal.show(); 3604 else modal.setAttribute('open', ''); 3605 return modal; 3606 } 3607 3608 function buildCTLSynchronously() { 3609 const block = document.getElementById('ctl-wrapper'); 3610 const wrap = document.getElementById('ctl-items'); 3611 if (!block || !wrap || !BASE_PRODUCT) return; 3612 3613 const currentColor = getCurrentColor(BASE_PRODUCT); 3614 const englishName = HANDLE_TO_NAME[BASE_PRODUCT.handle] || BASE_PRODUCT.title; 3615 const match = findPairsMatch(englishName, currentColor); 3616 3617 if (!match) { 3618 block.style.display = 'none'; 3619 return; 3620 } 3621 3622 const results = []; 3623 3624 for (const pairStr of match.pairs) { 3625 const { name, color } = parsePairString(pairStr); 3626 const handle = HANDLE_DB[name.toUpperCase().replace(/\s+/g, ' ')]; 3627 if(!handle) continue; 3628 3629 const product = PRELOADED_DATA[handle]; 3630 if(!product) continue; 3631 3632 const arabicColor = COLOR_TO_ARABIC[color] || color; 3633 const variantsOfColor = product.variants.filter(v => 3634 v.options.some(opt => normalize(opt) === normalize(color) || normalize(opt) === normalize(arabicColor)) 3635 ); 3636 3637 if (variantsOfColor.length === 0) continue; 3638 3639 let targetVariant = variantsOfColor.find(v => v.available); 3640 let isSoldOut = false; 3641 3642 if (!targetVariant) { 3643 targetVariant = variantsOfColor[0]; 3644 isSoldOut = true; 3645 } 3646 3647 results.push({ 3648 handle: product.handle, title: product.title, price: targetVariant.price, 3649 image: targetVariant.featured_image?.src || product.featured_image, 3650 variantId: targetVariant.id, isSoldOut: isSoldOut 3651 }); 3652 } 3653 3654 results.sort((a, b) => a.isSoldOut - b.isSoldOut); 3655 3656 if (!results.length) { 3657 block.style.display = 'none'; 3658 return; 3659 } 3660 3661 wrap.innerHTML = results.map((p) => ` 3662 <div class="cl-item" data-handle="${p.handle}" data-variant="${p.variantId}"> 3663 <div class="cl-image ${p.isSoldOut ? 'sold-out-img' : ''}"> 3664 <img src="${p.image}" loading="lazy"> 3665 ${p.isSoldOut ? `<span class="cl-sold-out">${SOLD_OUT_TEXT}</span>` : ''} 3666 <div class="cl-plus"> 3667 <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 -960 960 960" fill="#000000"><path d="M440-440H200v-80h240v-240h80v240h240v80H520v240h-80v-240Z"/></svg> 3668 </div> 3669 </div> 3670 <div class="cl-info"> 3671 <p>${p.title}</p>
3672 <span class="money" data-price-cents="${p.price}">${formatMoney(p.price)}</span> 3673 </div> 3674 </div> 3675 `).join(''); 3676 3677 wrap.querySelectorAll('.cl-item').forEach(item => { 3678 item.addEventListener('click', (e) => { 3679 e.preventDefault(); e.stopPropagation(); 3680 if(window.clarity) window.clarity("event", "CTL_Click", { product_handle: item.dataset.handle }); 3681 3682 const figure = item.querySelector('.cl-image'); 3683 let ov = figure.querySelector('.qc-overlay'); 3684 if(!ov){ 3685 ov = document.createElement('div'); ov.className = 'qc-overlay'; ov.innerHTML = '<div class="qc-spinner"></div>'; 3686 figure.appendChild(ov); 3687 } else ov.classList.remove('qc-hide'); 3688 3689 const remove = () => { if(!ov) return; ov.classList.add('qc-hide'); setTimeout(() => ov && ov.remove(), 200); }; 3690 3691 setTimeout(() => { 3692 const modal = openQuickView(item.dataset.handle, item.dataset.variant); 3693 if(modal){ 3694 const mo = new MutationObserver(()=>{ 3695 const s = getComputedStyle(modal); 3696 if(modal.hasAttribute('open') || modal.getAttribute('aria-hidden')==='false' || /(open|is-open|visible)/i.test(modal.className) || (s.display!=='none' && s.visibility!=='hidden')){ 3697 mo.disconnect(); remove(); 3698 } 3699 }); 3700 mo.observe(modal,{attributes:true, attributeFilter:['class','o
3700pen','style','aria-hidden']}); 3701 setTimeout(()=>{ try{mo.disconnect()}catch{}; remove(); }, 6000); 3702 } else { setTimeout(remove, 6000); } 3703 }, 100); 3704 }); 3705 }); 3706 3707 block.style.display = 'block'; 3708 const parentExtra = block.closest('#product-extra-information'); 3709 if (parentExtra) parentExtra.classList.remove('empty:hidden'); 3710 } 3711 3712 buildCTLSynchronously(); 3713 let lastProcessedUrl = window.location.href; 3714 3715 const originalPush = history.pushState; 3716 history.pushState = function() { 3717 originalPush.apply(this, arguments); 3718 if (window.location.href !== lastProcessedUrl) { 3719 lastProcessedUrl = window.location.href; 3720 buildCTLSynchronously(); // Re-render instantly on change 3721 } 3722 }; 3723 3724 const originalReplace = history.replaceState; 3725 history.replaceState = function() { 3726 originalReplace.apply(this, arguments); 3727 if (window.location.href !== lastProcessedUrl) { 3728 lastProcessedUrl = window.location.href; 3729 buildCTLSynchronously(); // Re-render instantly on change 3730 } 3731 }; 3732 3733 window.addEventListener('popstate', () => { 3734 if (window.location.href !== lastProcessedUrl) { 3735 lastProcessedUrl = window.location.href; 3736 buildCTLSynchronously(); 3737 } 3738 }); 3739 3740 document.addEventListener('variant:change', function () { 3741 setTimeout(buildCTLSynchronously, 40); 3742 }); 3743 document.addEventListener('change', function (e) { 3744 const t = e.target; 3745 if (!t) return; 3746 if (t.id === 'gc-variant-id' || t.name === 'id') { 3747 setTimeout(buildCTLSynchronously, 40); 3748 } 3749 }, true); 3750 3751})(); 3752</script>
3752 3753 3754 3755 3756 3757 <style data-shopify>.qy-wall-wrapper { padding: 40px 0; background: #fff; position: relative; font-family: sans-serif; } 3758.qy-wall-title { font-size: 20px; font-weight: 550; text-align: left; margin-bottom: 20px; text-transform: uppercase; padding: 0 20px; } 3759 3760.qy-video-scroll-container { 3761 display: flex; 3762 gap: 12px; 3763 padding: 0 20px; 3764 overflow-x: auto; 3765 scrollbar-width: none; 3766 cursor: grab; 3767 user-select: none; 3768 -webkit-user-select: none; 3769} 3770.qy-video-scroll-container::-webkit-scrollbar { display: none; } 3771 3772.qy-video-scroll-container.qy-is-dragging { 3773 cursor: grabbing; 3774} 3775 3776.qy-video-item { flex: 0 0 220px; border-radius: 12px; background: #000; position: relative; overflow: hidden; height: 360px; } 3777.qy-play-hint-icon { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 2; width: 44px; height: 44px; background: rgba(255,255,255,0.4); backdrop-filter: blur(4px); border-radius: 50%; display: flex; align-items: center; justify-content: center; pointer-events: none; } 3778.qy-video-item[data-state="playing"] .qy-play-hint-icon { opacity: 0; visibility: hidden; } 3779.qy-custom-player { width: 100%; height: 100%; object-fit: cover; pointer-events: none; } 3780 3781/* Overlay - Optimized for Snapping */ 3782.qy-fullscreen-overlay { 3783 position: fixed !important; 3784 top: 0 !important; 3785 left: 0 !important; 3786 width: 100vw !important; 3787 height: 100dvh !important; 3788 background: #000; 3789 z-index: 2147483647 !important; 3790 visibility: hidden; 3791 opacity: 0; 3792 transition: opacity 0.3s ease; 3793 overflow: hidden; 3794 overscroll-behavior-y: contain; 3795} 3796.qy-fullscreen-overlay.qy-is-active { visibility: visible; opacity: 1; } 3797 3798.qy-fullscreen-scroll-container { 3799 height: 100%; 3800 width: 100%; 3801 overflow-y: scroll; 3802 scroll-snap-type: y mandatory; 3803 scrollbar-width: none; 3804 -webkit-overflow-scrolling: touch; 3805} 3806.qy-fullscreen-scroll-container::-webkit-scrollbar { display: none; } 3807 3808.qy-fullscreen-video-item { 3809 width: 100vw; 3810 height: 100dvh; 3811 scroll-snap-align: start; 3812 scroll-snap-stop: always; 3813 display: flex; 3814 align-items: center; 3815 justify-content: center; 3816 position: relative; 3817} 3818.qy-fullscreen-video-item video { width: 100%; height: 100%; object-fit: cover; } 3819 3820/* --- Mobile Product Tag Styles --- */ 3821.qy-mobile-product-tag { 3822 position: absolute; 3823 bottom: 30px; 3824 left: 15px; 3825 right: 15px; 3826 background: rgba(0, 0, 0, 0.55); 3827 backdrop-filter: blur(10px); 3828 -webkit-backdrop-filter: blur(10px); 3829 border-radius: 12px; 3830 padding: 10px; 3831 display: flex; 3832 align-items: center; 3833 gap: 15px; 3834 text-decoration: none; 3835 z-index: 2147483645; 3836 color: #ffffff; 3837 border: 1px solid rgba(255,255,255,0.2); 3838} 3839 3840.qy-tag-img-wrapper { 3841 width: 65px; 3842 height: 65px; 3843 flex-shrink: 0; 3844 border-radius: 8px; 3845 overflow: hidden; 3846 background: #fff; 3847} 3848 3849.qy-tag-img-wrapper img { 3850 width: 100%; 3851 height: 100%; 3852 object-fit: cover; 3853} 3854 3855.qy-tag-info { 3856 display: flex; 3857 flex-direction: column; 3858 gap: 6px; 3859 flex-grow: 1; 3860} 3861 3862.qy-tag-title { 3863 font-size: 14px; 3864 font-weight: 600; 3865 line-height: 1.2; 3866 display: -webkit-box; 3867 -webkit-line-clamp: 2; 3868 -webkit-box-orient: vertical; 3869 overflow: hidden; 3870} 3871 3872.qy-tag-btn { 3873 background: #ffffff; 3874 color: #000000; 3875 font-size: 12px; 3876 font-weight: 700; 3877 padding: 6px 14px; 3878 border-radius: 6px; 3879 align-self: flex-start; 3880 text-transform: uppercase; 3881 letter-spacing: 0.5px; 3882} 3883 3884.qy-close-fullscreen { 3885 position: absolute; 3886 top: 20px; 3887 right: 20px; 3888 z-index: 2147483647; 3889 width: 44px; 3890 height: 44px; 3891 background: rgba(0, 0, 0, 0.7); 3892 backdrop-filter: blur(10px); 3893 border-radius: 50%; 3894 display: flex; 3895 align-items: center; 3896 justify-content: center; 3897 color: #fff; 3898 font-size: 30px; 3899 cursor: pointer; 3900} 3901 3902.qy-video-progress-container { position: absolute; bottom: 0; left: 0; width: 100%; height: 6px; background: rgba(255,255,255,0.2); z-index: 2147483646; } 3903.qy-video-progress-bar { width: 0%; height: 100%; background: #fff; } 3904 3905.qy-bottom-arrow-hint { position: absolute; bottom: 120px; left: 50%; transform: translateX(-50%); z-index: 2147483646; animation: qyBounce 2s infinite; pointer-events: none; } 3906 3907@keyframes qyBounce { 3908 0%, 20%, 50%, 80%, 100% { transform: translate(-50%, 0); } 3909 40% { transform: translate(-50%, 10px); } 3910} 3911 3912@media screen and (min-width: 768px) { 3913 .qy-video-item { flex: 0 0 250px; height: 420px; } 3914 .qy-video-scroll-container { padding: 0 20px; gap: 15px; } 3915}</style><div class="qy-wall-wrapper"> 3916 <h2 class="qy-wall-title">Meet the QYNDA Community</h2> 3917 <video-community-wall-qy> 3918 <div class="qy-video-scroll-container"> 3919 3920 3921 3922 3923 3924 3925 <div class="qy-video-item" 3926 data-index="0" 3927 data-state="paused" 3928 data-src="https://cdn.shopify.com/videos/c/o/v/833d932614c4470d920d9e4a42369605.mp4" 3929 data-product-title="COOLDOWN COAT" 3930 data-product-url="/products/cooldown-coat" 3931 data-product-image="//qynda.com/cdn/shop/files/1_57c728c6-ab8d-4431-b905-5807741c0489.jpg?v=1770293201&width=150"> 3932 <div class="qy-play-hint-icon"> 3933 <svg width="24" height="24" viewBox="0 0 24 24" fill="white"><path d="M8 5v14l11-7z"/></svg> 3934 </div> 3935 <video class="qy-custom-player" playsinline loop muted autoplay preload="metadata"> 3936 <source src="https://cdn.shopify.com/videos/c/o/v/833d932614c4470d920d9e4a42369605.mp4" type="video/mp4"> 3937 </video> 3938 </div> 3939 3940 3941 3942 3943 3944 3945 <div class="qy-video-item" 3946 data-index="1" 3947 data-state="paused" 3948 data-src="https://cdn.shopify.com/videos/c/o/v/ced6baec46c346c1a9c33c8bf69ebc75.mp4" 3949 data-product-title="ARMA LONG SLEEVE T-SHIRT" 3950 data-product-url="/products/arma" 3951 data-product-image="//qynda.com/cdn/shop/files/ARMAMAROON.jpg?v=1770725834&width=150"> 3952 <div class="qy-play-hint-icon"> 3953 <svg width="24" height="24" viewBox="0 0 24 24" fill="white"><path d="M8 5v14l11-7z"/></svg> 3954 </div> 3955 <video class="qy-custom-player" playsinline loop muted autoplay preload="metadata"> 3956 <source src="https://cdn.shopify.com/videos/c/o/v/ced6baec46c346c1a9c33c8bf69ebc75.mp4" type="video/mp4"> 3957 </video> 3958 </div> 3959 3960 3961 3962 3963 3964 3965 <div class="qy-video-item" 3966 data-index="2" 3967 data-state="paused" 3968 data-src="https://cdn.shopify.com/videos/c/o/v/1a6d51502d56434089c0841095fc2a80.mp4" 3969 data-product-title="ARMA LONG SLEEVE T-SHIRT" 3970 data-product-url="/products/arma" 3971 data-product-image="//qynda.com/cdn/shop/files/ARMAMAROON.jpg?v=1770725834&width=150"> 3972 <div class="qy-play-hint-icon"> 3973 <svg width="24" height="24" viewBox="0 0 24 24" fill="white"><path d="M8 5v14l11-7z"/></svg> 3974 </div> 3975 <video class="qy-custom-player" playsinline loop muted autoplay preload="metadata"> 3976 <source src="https://cdn.shopify.com/videos/c/o/v/1a6d51502d56434089c0841095fc2a80.mp4" type="video/mp4"> 3977 </video> 3978 </div> 3979 3980 3981 3982 3983 3984 3985 <div class="qy-video-item" 3986 data-index="3" 3987 data-state="paused" 3988 data-src="https://cdn.shopify.com/videos/c/o/v/6645159b823d459980910a1cf0c37ea6.mp4" 3989 data-product-title="BREATHE 2.0 T-SHIRT" 3990 data-product-url="/products/breathe-2-0" 3991 data-product-image="//qynda.com/cdn/shop/files/BREATHE-PEACH.jpg?v=1770725740&width=150"> 3992 <div class="qy-play-hint-icon"> 3993 <svg width="24" height="24" viewBox="0 0 24 24" fill="white"><path d="M8 5v14l11-7z"/></svg> 3994 </div> 3995 <video class="qy-custom-player" playsinline loop muted autoplay preload="metadata"> 3996 <source src="https://cdn.shopify.com/videos/c/o/v/6645159b823d459980910a1cf0c37ea6.mp4" type="video/mp4"> 3997 </video> 3998 </div> 3999 4000 4001 4002 4003 4004 4005 <div class="qy-video-item" 4006 data-index="4" 4007 data-state="paused" 4008 data-src="https://cdn.shopify.com/videos/c/o/v/04d39aa30b6a44a8b131034a28a1d4dd.mp4" 4009 data-product-title="COOLDOWN COAT" 4010 data-product-url="/products/cooldown-coat" 4011 data-product-image="//qynda.com/cdn/shop/files/1_57c728c6-ab8d-4431-b905-5807741c0489.jpg?v=1770293201&width=150"> 4012 <div class="qy-play-hint-icon"> 4013 <svg width="24" height="24" viewBox="0 0 24 24" fill="white"><path d="M8 5v14l11-7z"/></svg> 4014 </div> 4015 <video class="qy-custom-player" playsinline loop muted autoplay preload="metadata"> 4016 <source src="https://cdn.shopify.com/videos/c/o/v/04d39aa30b6a44a8b131034a28a1d4dd.mp4" type="video/mp4"> 4017 </video> 4018 </div> 4019 4020 4021 4022 4023 4024 4025 <div class="qy-video-item" 4026 data-index="5" 4027 data-state="paused" 4028 data-src="https://cdn.shopify.com/videos/c/o/v/c70ef878a4484c009e4fa13ec46edf9d.mp4" 4029 data-product-title="MAK LIGHT PARKA" 4030 data-product-url="/products/mak-light-parka" 4031 data-product-image="//qynda.com/cdn/shop/files/OLIVE-2_d6bf84cf-b98c-4aac-86a4-7c6a8ce0d119.jpg?v=1770898061&width=150"> 4032 <div class="qy-play-hint-icon"> 4033 <svg width="24" height="24" viewBox="0 0 24 24" fill="white"><path d="M8 5v14l11-7z"/></svg> 4034 </div> 4035 <video class="qy-custom-player" playsinline loop muted autoplay preload="metadata"> 4036 <source src="https://cdn.shopify.com/videos/c/o/v/c70ef878a4484c009e4fa13ec46edf9d.mp4" type="video/mp4"> 4037 </video> 4038 </div> 4039 4040 </div> 4041 4042 <div class="qy-fullscreen-overlay" id="qyTikTokOverlay"> 4043 <div class="qy-close-fullscreen" id="qyCloseBtn"><svg width="30" height="30" viewbox="0 0 40 40"><path d="M 10,10 L 30,30 M 30,10 L 10,30" stroke="white" stroke-width="4" /></svg></div> 4044 <div class="qy-fullscreen-scroll-container" id="qyFullscreenInner"></div> 4045 </div> 4046 </video-community-wall-qy> 4047</div> 4048
4049<script> 4050if (!customElements.get('video-community-wall-qy')) { 4051 customElements.define('video-community-wall-qy', class extends HTMLElement { 4052 constructor() { 4053 super(); 4054 this.qyOverlay = this.querySelector('#qyTikTokOverlay'); 4055 this.qyInner = this.querySelector('#qyFullscreenInner'); 4056 this.qySlider = this.querySelector('.qy-video-scroll-container'); 4057 this.qyCloseBtn = this.querySelector('#qyCloseBtn'); 4058 4059 this.qyIsDown = false; 4060 this.qyStartX = 0; 4061 this.qyScrollLeft = 0; 4062 this.qyHasMoved = false; 4063 4064 this.init(); 4065 } 4066 4067 init() { 4068 this.qySlider.addEventListener('selectstart', (e) => e.preventDefault()); 4069 this.qySlider.addEventListener('dragstart', (e) => e.preventDefault()); 4070 4071 this.qySlider.addEventListener('mousedown', (e) => { 4072 this.qyIsDown = true; 4073 this.qyHasMoved = false; 4074 this.qySlider.classList.add('qy-is-dragging'); 4075 this.qyStartX = e.pageX - this.qySlider.offsetLeft; 4076 this.qyScrollLeft = this.qySlider.scrollLeft; 4077 }); 4078 4079 window.addEventListener('mouseup', () => { 4080 if (this.qyIsDown) { 4081 this.qyIsDown = false; 4082 this.qySlider.classList.remove('qy-is-dragging'); 4083 } 4084 }); 4085 4086 window.addEventListener('mousemove', (e) => { 4087 if (!this.qyIsDown) return; 4088 e.preventDefault(); 4089 const x = e.pageX - this.qySlider.offsetLeft; 4090 const walk = (x - this.qyStartX) * 1.5; 4091 if (Math.abs(walk) > 5) this.qyHasMoved = true; 4092 this.qySlider.scrollLeft = this.qyScrollLeft - walk; 4093 }); 4094 4095 this.querySelectorAll('.qy-video-item').forEach(item => { 4096 item.addEventListener('click', (e) => { 4097 if (this.qyHasMoved) { 4098 e.preventDefault(); 4099 return; 4100 } 4101 4102 if (window.innerWidth < 768) { 4103 this.openQyFullscreen(parseInt(item.dataset.index)); 4104 } else { 4105 this.toggleQyAudio(item); 4106 } 4107 }); 4108 }); 4109 4110 this.qyCloseBtn.addEventListener('click', (e) => { 4111 e.stopPropagation(); 4112 this.closeQyFullscreen(); 4113 }); 4114 } 4115 4116 toggleQyAudio(item) { 4117 const video = item.querySelector('video'); 4118 if (!video) return; 4119 video.muted = !video.muted; 4120 item.setAttribute('data-state', video.muted ? 'paused' : 'playing'); 4121 } 4122 4123 openQyFullscreen(index) { 4124 // Gather video AND product data 4125 const videoData = Array.from(this.querySelectorAll('.qy-video-item')).map(item => ({ 4126 src: item.dataset.src, 4127 pTitle: item.dataset.productTitle, 4128 pUrl: item.dataset.productUrl, 4129 pImage: item.dataset.productImage 4130 })); 4131 4132 const loopVideos = [...videoData, ...videoData, ...videoData]; 4133 4134 this.qyInner.innerHTML = loopVideos.map((v) => { 4135 let productHtml = ''; 4136 if (v.pTitle && v.pUrl) { 4137 productHtml = ` 4138 <a href="${v.pUrl}" class="qy-mobile-product-tag"> 4139 <div class="qy-tag-img-wrapper"> 4140 <img src="${v.pImage}" alt="${v.pTitle}"> 4141 </div> 4142 <div class="qy-tag-info"> 4143 <div class="qy-tag-title">${v.pTitle}</div> 4144 <div class="qy-tag-btn">Shop Now</div> 4145 </div> 4146 </a> 4147 `; 4148 } 4149 4150 return ` 4151 <div class="qy-fullscreen-video-item"> 4152 <video playsinline loop muted src="${v.src}"></video> 4153 ${productHtml} 4154 <div class="qy-video-progress-container"><div class="qy-video-progress-bar"></div></div> 4155 <div class="qy-bottom-arrow-hint"> 4156 <svg width="35" height="35" viewBox="0 0 24 24" fill="white"> 4157 <path d="M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"/> 4158 </svg> 4159 </div> 4160 </div> 4161 `}).join(''); 4162 4163 document.body.appendChild(this.qyOverlay); 4164 this.qyOverlay.classList.add('qy-is-active'); 4165 document.body.style.overflow = 'hidden'; 4166 4167 const items = this.qyInner.querySelectorAll('.qy-fullscreen-video-item'); 4168 setTimeout(() => { 4169 items[index + videoData.length].scrollIntoView({ behavior: 'auto', block: 'start' }); 4170 this.startQyObserver(); 4171 }, 60); 4172 } 4173 4174 startQyObserver() { 4175 const observer = new IntersectionObserver((entries) => {
4176 entries.forEach(entry => { 4177 const video = entry.target.querySelector('video'); 4178 const progressBar = entry.target.querySelector('.qy-video-progress-bar'); 4179 if (entry.isIntersecting) { 4180 video.play().catch(() => {}); 4181 video.muted = false; 4182 video.ontimeupdate = () => { 4183 if (video.duration) { 4184 const progress = (video.currentTime / video.duration) * 100; 4185 progressBar.style.width = progress + '%'; 4186 } 4187 }; 4188 } else { 4189 video.pause(); 4190 video.currentTime = 0; 4191 video.ontimeupdate = null; 4192 } 4193 }); 4194 }, { threshold: 0.7 }); 4195 4196 this.qyInner.querySelectorAll('.qy-fullscreen-video-item').forEach(item => observer.observe(item)); 4197 } 4198 4199 closeQyFullscreen() { 4200 this.qyOverlay.classList.remove('qy-is-active'); 4201 document.body.style.overflow = ''; 4202 this.qyInner.querySelectorAll('video').forEach(v => { 4203 v.pause(); 4204 v.ontimeupdate = null; 4205 }); 4206 setTimeout(() => { 4207 this.appendChild(this.qyOverlay); 4208 this.qyInner.innerHTML = ''; 4209 }, 400); 4210 } 4211 }); 4212} 4213</script>
4213 4214 4215 </div></safe-sticky></div> 4216 </product-rerender> 4217 </div> 4218</div><product-rerender id="product-form-main-11184018325777-template--26542184333585__main-sticky-bar" observe-form="product-form-main-11184018325777-template--26542184333585__main"> 4219 <product-sticky-bar form="product-form-main-11184018325777-template--26542184333585__main" class="product-sticky-bar"> 4220 <div class="product-sticky-bar__info sm-max:hidden"> 4221 <div class="h-stack gap-6"><img src="//qynda.com/cdn/shop/files/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353&width=1200" alt="QYNDA GIFT Card" srcset="//qynda.com/cdn/shop/files/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353&width=60 60w, //qynda.com/cdn/shop/files/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353&width=120 120w, //qynda.com/cdn/shop/files/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353&width=180 180w" width="1200" height="1200" loading="lazy" sizes="60px"><div class="v-stack"> 4222 <span class="h6">QYNDA GIFT Card</span>
4222<price-list class="price-list "><sale-price class="h6 text-subdued"> 4223 <span class="sr-only">Sale price</span><span class=money>$100.00</span></sale-price></price-list></div> 4224 </div> 4225 </div> 4226 4227 <buy-buttons class="buy-buttons" template="gift-card" form="product-form-main-11184018325777-template--26542184333585__main"> 4228<button type="submit" class="button" form="product-form-main-11184018325777-template--26542184333585__main" >Add to cart</button></buy-buttons> 4229 </product-sticky-bar> 4230 </product-rerender><template id="quick-buy-content"><p class="h5" slot="header">Choose options</p> 4231 <div class="quick-buy-modal__content"> 4232 <div class="quick-buy-modal__gallery-wrapper"><div class="qb-gallery-wrapper" id="qb-gallery-11184018325777"> 4233 <div class="qb-track"> 4234 4235 4236<div class="qb-slide" data-color="qynda gift card" data-media-id="44967510540561"> 4237 <img 4238 src="//qynda.com/cdn/shop/files/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353&width=1200" 4239 alt="QYNDA GIFT Card" 4240 loading="eager"> 4241 </div> 4242 4243 </div> 4244 4245 <button class="qb-nav-btn qb-prev" type="button"> 4246 <img src="https://cdn.shopify.com/s/files/1/0737/2069/3009/files/arrow-left-circle_4_3.png?v=1764574754" alt="Previous"> 4247 </button> 4248 <button class="qb-nav-btn qb-next" type="button"> 4249 <img src="https://cdn.shopify.com/s/files/1/0737/2069/3009/files/arrow-left-circle_4_2.png?v=1764574754" alt="Next"> 4250 </button> 4251 4252 <div class="qb-dots"></div> 4253 4254 <div class="qb-lightbox" aria-hidden="true"> 4255 <div class="qb-lightbox-inner"> 4256 <div class="qb-lightbox-main"></div> 4257 <div class="qb-lightbox-nav"> 4258 <button class="qb-lightbox-nav-btn qb-lightbox-prev hover:animate-icon-inline" type="button"> 4259 <svg aria-hidden="true" focusable="false" fill="none" viewBox="0 0 16 18"><path d="M11 1 3 9l8 8" stroke="currentColor" stroke-width="1" stroke-linecap="square"/></svg> 4260 </button> 4261 <button class="qb-lightbox-close hover:animate-icon-block" type="button"> 4262 <svg aria-hidden="true" focusable="false" fill="none" viewBox="0 0 16 16"><path d="m1 1 14 14M1 15 15 1" stroke="currentColor" stroke-width="1"/></svg> 4263 </button> 4264 <button class="qb-lightbox-nav-btn qb-lightbox-next hover:animate-icon-inline" type="button"> 4265 <svg aria-hidden="true" focusable="false" fill="none" viewBox="0 0 16 18"><path d="m5 17 8-8-8-8" stroke="currentColor" stroke-width="1" stroke-linecap="square"/></svg> 4266 </button> 4267 </div> 4268 </div> 4269 </div> 4270 </div> 4271
4272<script> 4273 window.__qbVariantNation = window.__qbVariantNation || {}; 4274 window.__qbVariantNation[11184018325777] = {}; 4275 4276</script>
vendor: 1 bytes, line 4276
4276
4277<script> 4278(function() { 4279 const PRODUCT_ID = 11184018325777; 4280 const wrapper = document.getElementById('qb-gallery-11184018325777'); 4281 if (!wrapper) return; 4282 4283 const track = wrapper.querySelector('.qb-track'); 4284 const prevBtn = wrapper.querySelector('.qb-prev'); 4285 const nextBtn = wrapper.querySelector('.qb-next'); 4286 const dotsContainer = wrapper.querySelector('.qb-dots'); 4287 const lightbox = wrapper.querySelector('.qb-lightbox'); 4288 const lightboxMain = lightbox ? lightbox.querySelector('.qb-lightbox-main') : null; 4289 4290 // Global store configuration 4291 window.__qbGallery = window.__qbGallery || {}; 4292 const store = window.__qbGallery[PRODUCT_ID] = window.__qbGallery[PRODUCT_ID] || {}; 4293 store.lastSelectedColor = store.lastSelectedColor || ''; 4294 4295 // --- OPTIMIZATION 1: Cache real DOM nodes --- 4296 if (!store.cachedSlidesData) { 4297 const originalNodes = Array.from(track.querySelectorAll('.qb-slide')); 4298 store.cachedSlidesData = originalNodes.map(node => { 4299 const colorAttr = node.getAttribute('data-color'); 4300 return { 4301 node: node, 4302 color: (colorAttr || '').toLowerCase().trim() 4303 }; 4304 }); 4305 track.innerHTML = ''; 4306 } 4307 4308 // --- LIGHTBOX LOGIC --- 4309 let lbItemsCount = 0; 4310 let lbIndex = 0; 4311 let lbTrack = null; 4312 let isDragging = false; 4313 let isPinching = false; 4314 let startX = 0; 4315 let startTranslate = 0; 4316 let isTransitioningLb = false; 4317 let scale = 1; 4318 let initialPinchDistance = 0; 4319 4320 function buildLightboxItems() { 4321 lightboxMain.innerHTML = ''; 4322 lbTrack = document.createElement('div'); 4323 lbTrack.className = 'qb-lb-track'; 4324 4325 const nodes = currentSlides.map(slide => { 4326 const media = slide.querySelector('img, video, iframe'); 4327 const container = document.createElement('div'); 4328 container.className = 'qb-lb-slide'; 4329 if (media) { 4330 const clone = media.cloneNode(true); 4331 if (clone.tagName === 'VIDEO') { 4332 clone.setAttribute('playsinline', ''); 4333 clone.muted = true; 4334 clone.autoplay = true; 4335 clone.loop = true; 4336 clone.controls = true; 4337 } 4338 container.appendChild(clone); 4339 } 4340 return container; 4341 }); 4342 4343 lbItemsCount = nodes.length; 4344 if (lbItemsCount > 1) { 4345 lbTrack.appendChild(nodes[lbItemsCount - 1].cloneNode(true)); 4346 nodes.forEach(node => lbTrack.appendChild(node)); 4347 lbTrack.appendChild(nodes[0].cloneNode(true)); 4348 } else if (lbItemsCount === 1) { 4349 lbTrack.appendChild(nodes[0]); 4350 } 4351 lightboxMain.appendChild(lbTrack); 4352 } 4353 4354 function updateLbPosition(animate = true) { 4355 if (!lbTrack) return; 4356 const width = lightboxMain.offsetWidth; 4357 const visualIndex = (lbItemsCount > 1) ? lbIndex + 1 : 0; 4358 4359 lbTrack.style.transition = animate ? 'transform 0.4s cubic-bezier(0.25, 1, 0.5, 1)' : 'none'; 4360 lbTrack.style.transform = `translateX(${-visualIndex * width}px)`; 4361 } 4362 4363 function moveLb(dir) { 4364 if (isTransitioningLb || scale > 1) return; 4365 lbIndex += dir; 4366 updateLbPosition(true); 4367 4368 if (lbItemsCount > 1) { 4369 isTransitioningLb = true; 4370 setTimeout(() => { 4371 isTransitioningLb = false; 4372 if (lbIndex === -1) { lbIndex = lbItemsCount - 1; updateLbPosition(false); } 4373 if (lbIndex === lbItemsCount) { lbIndex = 0; updateLbPosition(false); } 4374 }, 400); 4375 } 4376 } 4377 4378 lightboxMain.addEventListener('touchstart', (e) => { 4379 if (e.touches.length === 2) { 4380 isPinching = true; 4381 initialPinchDistance = Math.hypot(e.touches[0].pageX - e.touches[1].pageX, e.touches[0].pageY - e.touches[1].pageY); 4382 } else if (scale === 1) { 4383 isDragging = true; 4384 startX = e.touches[0].clientX; 4385 startTranslate = -((lbIndex + (lbItemsCount > 1 ? 1 : 0)) * lightboxMain.offsetWidth); 4386 lbTrack.style.transition = 'none'; 4387 } 4388 }, {passive: true}); 4389 4390 lightboxMain.addEventListener('touchmove', (e) => { 4391 if (e.touches.length === 2 && isPinching) { 4392 const currentDistance = Math.hypot(e.touches[0].pageX - e.touches[1].pageX, e.touches[0].pageY - e.touches[1].pageY); 4393 scale = Math.min(Math.max(1, scale * (currentDistance / initialPinchDistance)), 4); 4394 const activeMedia = lbTrack.children[lbItemsCount > 1 ? lbIndex + 1 : 0].querySelector('img, video'); 4395 if (activeMedia) activeMedia.style.transform = `scale(${scale})`; 4396 initialPinchDistance = currentDistance; 4397 } else if (isDragging && scale === 1) { 4398 lbTrack.style.transform = `translateX(${startTranslate + (e.touches[0].clientX - startX)}px)`; 4399 } 4400 }, {passive: true}); 4401 4402 lightboxMain.addEventListener('touchend', (e) => { 4403 if (e.touches.length < 2) isPinching = false;
4404 if (isDragging) { 4405 isDragging = false; 4406 const diff = e.changedTouches[0].clientX - startX; 4407 if (Math.abs(diff) > 50) moveLb(diff < 0 ? 1 : -1); 4408 else updateLbPosition(true); 4409 } 4410 if (scale < 1.1) { 4411 scale = 1; 4412 if(lbTrack) lbTrack.querySelectorAll('img, video').forEach(m => m.style.transform = 'scale(1)'); 4413 } 4414 }, {passive: true}); 4415 4416 track.addEventListener('click', (e) => { 4417 const s = e.target.closest('.qb-slide'); 4418 if (!s || s.classList.contains('is-clone')) return; 4419 buildLightboxItems(); 4420 lbIndex = parseInt(s.dataset.realIndex || '0', 10); 4421 scale = 1; 4422 lightbox.classList.add('is-open'); 4423 document.documentElement.classList.add('qb-lightbox-open'); 4424 requestAnimationFrame(() => updateLbPosition(false)); 4425 }); 4426 4427 const lbCloseBtn = wrapper.querySelector('.qb-lightbox-close'); 4428 const lbPrevBtn = wrapper.querySelector('.qb-lightbox-prev'); 4429 const lbNextBtn = wrapper.querySelector('.qb-lightbox-next'); 4430 4431 if(lbCloseBtn) lbCloseBtn.onclick = () => { 4432 lightbox.classList.remove('is-open'); 4433 document.documentElement.classList.remove('qb-lightbox-open'); 4434 lightboxMain.innerHTML = ''; 4435 }; 4436 if(lbPrevBtn) lbPrevBtn.onclick = () => moveLb(-1); 4437 if(lbNextBtn) lbNextBtn.onclick = () => moveLb(1); 4438 4439 // --- GALLERY LOGIC --- 4440 let currentSlides = []; 4441 let totalSlides = 0; 4442 let currentIndex = (typeof store.savedIndex === 'number') ? store.savedIndex : 0; 4443 let isTransitioning = false; 4444 4445 // FIX: Helper to find the correct container for inputs 4446 function getContainer() { 4447 return wrapper.closest('.quick-buy-modal__content') || wrapper.closest('.product-info') || document; 4448 } 4449 4450 4451 function foldAr(s) { 4452 return String(s || '') 4453 .replace(/[\u064B-\u065F\u0670]/g, '') 4454 .replace(/[أإآا]/g, 'ا') 4455 .replace(/Ù/g, 'Ù') 4456 .replace(/Ø©/g, 'Ù') 4457 .replace(/\s+/g, '') 4458 .toLowerCase(); 4459 } 4460 4461 function nationKey(s) { 4462 const t = String(s == null ? '' : s).trim(); 4463 const low = t.toLowerCase(); 4464 const ar = foldAr(t); 4465 if (ar.indexOf('ÙÙÙØª') !== -1 || low.indexOf('kuwait') !== -1) return 'kuwait'; 4466 if (ar.indexOf('Ø³Ø¹ÙØ¯') !== -1 || low === 'ksa' || low.indexOf('saudi') !== -1) return 'ksa'; 4467 if (ar.indexOf('ع٠اÙ') !== -1 || low.indexOf('oman') !== -1) return 'oman'; 4468 if (ar.indexOf('Ø¨ØØ±ÙÙ') !== -1 || low.indexOf('bahrain') !== -1) return 'bahrain'; 4469 if (ar.indexOf('ا٠ارات') !== -1 || low === 'uae' || low.indexOf('united arab') !== -1 || low.indexOf('emirates') !== -1) return 'uae'; 4470 if (ar.indexOf('ÙØ·Ø±') !== -1 || low.indexOf('qatar') !== -1) return 'qatar'; 4471 return low; 4472 } 4473 4474 function colorMatches(itemColor, selectedColor) { 4475 if (!selectedColor) return true; 4476 if (!itemColor) return true; 4477 if (itemColor === selectedColor) return true; 4478 const sel = nationKey(selectedColor); 4479 return String(itemColor).split('|').some((tok) => { 4480 const t = tok.trim(); 4481 return t === selectedColor || nationKey(t) === sel; 4482 }); 4483 } 4484 4485 function getSelectedColorFromUI() { 4486 const container = getContainer(); 4487 let selectedColor = ''; 4488 4489 // 1) Radio pills / swatches (color products) 4490 const checked = container.querySelector('input[type="radio"][data-option-position="1"]:checked'); 4491 if (checked) { 4492 if (checked.id) { 4493 const label = container.querySelector(`label[for="${checked.id}"]`); 4494 if (label) selectedColor = (label.getAttribute('data-color') || '').toLowerCase().trim(); 4495 } 4496 if (!selectedColor) selectedColor = (checked.value || '').toLowerCase().trim(); 4497 } 4498 4499 // 2) Select dropdown 4500 if (!selectedColor) { 4501 const select = container.querySelector('select[name*="option1"], select[name*="Color"], select[name*="color"]'); 4502 if (select && select.value) selectedColor = String(select.value).toLowerCase().trim(); 4503 } 4504 if (!selectedColor) { 4505 const gcChip = container.querySelector('[data-gc-qb] .gc-qb__chip[aria-checked="true"]'); 4506 if (gcChip) selectedColor = (gcChip.getAttribute('data-value') || gcChip.getAttribute('data-display') || '').toLowerCase().trim(); 4507 } 4508 if (!selectedColor) { 4509 const map = (window.__qbVariantNation && window.__qbVariantNation[PRODUCT_ID]) || {}; 4510 const form = container.querySelector('form[action*="/cart/add"]'); 4511 let vid = ''; 4512 const idInput = (form && form.querySelector('input[name="id"]')) || container.querySelector('input[name="id"]'); 4513 if (idInput && map[String(idInput.value).trim()]) vid = String(idInput.value).trim(); 4514 if (!vid) { 4515 const hit = [...container.querySelectorAll('input')].find(i => map[String(i.value).trim()]); 4516 if (hit) vid = String(hit.value).trim(); 4517 } 4518 if (vid) selectedColor = map[vid]; 4519 } 4520 4521 return selectedColor; 4522 } 4523 4524 function renderGallery(force = false) { 4525 const selectedColor = getSelectedColorFromUI() || ''; 4526 if (!force && store.lastSelectedColor === selectedColor) return; 4527 4528 // Filter using cached data 4529 const slidesToRenderData = store.cachedSlidesData.filter(item => { 4530 return selectedColor === '' || item.color === '' || colorMatches(item.color, selectedColor); 4531 }); 4532 4533 const finalData = slidesToRenderData.length ? slidesToRenderData : store.cachedSlidesData; 4534 4535 // DOM Build 4536 track.innerHTML = ''; 4537 dotsContainer.innerHTML = ''; 4538 currentSlides = []; 4539 4540 if (finalData.length > 1) { 4541 const cloneLast = finalData[finalData.length - 1].node.cloneNode(true); 4542 cloneLast.classList.add('is-clone'); 4543 cloneLast.dataset.realIndex = finalData.length - 1; 4544 track.appendChild(cloneLast); 4545 4546 finalData.forEach((item, i) => { 4547 const s = item.node.cloneNode(true); 4548 s.dataset.realIndex = i; 4549 track.appendChild(s); 4550 currentSlides.push(s); 4551 4552 const dot = document.createElement('div'); 4553 dot.className = 'qb-dot'; 4554 dot.onclick = () => { 4555 currentIndex = i; 4556 updatePosition(true); 4557 store.savedIndex = currentIndex; 4558 }; 4559 dotsContainer.appendChild(dot); 4560 }); 4561 4562 const cloneFirst = finalData[0].node.cloneNode(true); 4563 cloneFirst.classList.add('is-clone'); 4564 cloneFirst.dataset.realIndex = 0; 4565 track.appendChild(cloneFirst); 4566 } else { 4567 const s = finalData[0].node.cloneNode(true); 4568 s.dataset.realIndex = 0; 4569 track.appendChild(s); 4570 currentSlides.push(s); 4571 } 4572 4573 totalSlides = finalData.length; 4574 4575 // Reset index safely 4576 if (store.lastSelectedColor && store.lastSelectedColor === selectedColor) { 4577 currentIndex = (store.savedIndex < totalSlides) ? store.savedIndex : 0; 4578 } else { 4579 currentIndex = 0; 4580 } 4581 4582 store.lastSelectedColor = selectedColor; 4583 requestAnimationFrame(() => updatePosition(false)); 4584 } 4585 4586 function updatePosition(animate) { 4587 const firstSlide = track.querySelector('.qb-slide'); 4588 if(!firstSlide) return; 4589 4590 const visualIndex = (totalSlides > 1) ? currentIndex + 1 : 0; 4591 const width = firstSlide.offsetWidth; 4592 if(width === 0) return; 4593 4594 const gap = (window.innerWidth < 768) ? 10 : 0; 4595 const moveAmount = -(width * visualIndex) - (gap * visualIndex); 4596 const offset = (wrapper.offsetWidth / 2) - (width / 2); 4597 4598 track.style.transition = animate ? 'transform 0.4s cubic-bezier(0.25, 1, 0.5, 1)' : 'none'; 4599 track.style.transform = `translateX(${offset + moveAmount}px)`; 4600 4601 if (animate && totalSlides > 1) { 4602 isTransitioning = true; 4603 setTimeout(() => { 4604 isTransitioning = false;
4605 if (currentIndex === -1) { currentIndex = totalSlides - 1; updatePosition(false); } 4606 if (currentIndex === totalSlides) { currentIndex = 0; updatePosition(false); } 4607 store.savedIndex = currentIndex; 4608 }, 400); 4609 } 4610 4611 const dots = Array.from(dotsContainer.children); 4612 if(dots.length) { 4613 const safeIndex = (currentIndex < 0) ? totalSlides - 1 : (currentIndex >= totalSlides ? 0 : currentIndex); 4614 dots.forEach((d, i) => d.classList.toggle('active-dot', i === safeIndex)); 4615 } 4616 } 4617 4618 // --- MOBILE SWIPE --- 4619 let swipeStartX = 0; 4620 let swipeStartY = 0; 4621 let isSwiping = false; 4622 4623 track.addEventListener('touchstart', (e) => { 4624 if (e.touches.length !== 1) return; 4625 swipeStartX = e.touches[0].clientX; 4626 swipeStartY = e.touches[0].clientY; 4627 isSwiping = true; 4628 }, { passive: true }); 4629 4630 track.addEventListener('touchend', (e) => { 4631 if (!isSwiping) return; 4632 const diffX = e.changedTouches[0].clientX - swipeStartX; 4633 const diffY = e.changedTouches[0].clientY - swipeStartY; 4634 4635 if (Math.abs(diffX) < 40 || Math.abs(diffX) < Math.abs(diffY)) { 4636 isSwiping = false; 4637 return; 4638 } 4639 if (!isTransitioning) { 4640 if (diffX < 0) currentIndex++; 4641 else currentIndex--; 4642 updatePosition(true); 4643 store.savedIndex = currentIndex; 4644 } 4645 isSwiping = false; 4646 }, { passive: true }); 4647 4648 if(prevBtn) prevBtn.onclick = () => { if(!isTransitioning) { currentIndex--; updatePosition(true); store.savedIndex = currentIndex; } }; 4649 if(nextBtn) nextBtn.onclick = () => { if(!isTransitioning) { currentIndex++; updatePosition(true); store.savedIndex = currentIndex; } }; 4650 4651 // Use ResizeObserver for responsive updates 4652 const resizeObserver = new ResizeObserver(entries => { 4653 window.requestAnimationFrame(() => { 4654 updatePosition(false); 4655 updateLbPosition(false); 4656 }); 4657 }); 4658 resizeObserver.observe(wrapper); 4659 4660 // --- FIX: Event Listener Scope --- 4661 // Attach to the main container (modal content) so we can catch radio button clicks 4662 const container = getContainer(); 4663 if (container) { 4664 container.addEventListener('change', (e) => { 4665 const t = e.target; 4666 if (t.matches('input[data-option-position="1"]') || t.matches('select[name*="option1"]') || t.matches('input[name="id"]')) { 4667 if(window._qbRenderTimeout) clearTimeout(window._qbRenderTimeout); 4668 window._qbRenderTimeout = setTimeout(() => renderGallery(false), 50); 4669 } 4670 }, true); 4671 container.addEventListener('gc-qb:nation', () => { 4672 if(window._qbRenderTimeout) clearTimeout(window._qbRenderTimeout); 4673 window._qbRenderTimeout = setTimeout(() => renderGallery(true), 50); 4674 }); 4675 container.addEventListener('click', (e) => { 4676 if (!e.target.closest('[data-gc-qb] [data-value]')) return; 4677 if(window._qbRenderTimeout) clearTimeout(window._qbRenderTimeout); 4678 window._qbRenderTimeout = setTimeout(() => renderGallery(true), 80); 4679 }); 4680 } 4681 4682 setTimeout(() => renderGallery(true), 100); 4683 4684})(); 4685</script>
4685</div> 4686 4687 <product-rerender id="quick-buy-modal-content" observe-form="product-form-quick-buy-11184018325777-template--26542184333585__main"> 4688 <dialog-close-button class="contents"> 4689 <button type="button" class="quick-buy-modal__close-button sm-max:hidden"> 4690 <span class="sr-only">Close</span><svg aria-hidden="true" focusable="false" fill="none" width="16" class="icon icon-close" viewBox="0 0 16 16"> 4691 <path d="m1 1 14 14M1 15 15 1" stroke="currentColor" stroke-width="1.5"/> 4692 </svg> 4693 4694 </button> 4695 </dialog-close-button> 4696 4697 <div class="quick-buy-modal__info-wrapper"> 4698 <div class="qb-header-manual"> 4699 <a href="/products/qynda-gift-card?variant=54370783428881" class="product-title h4">QYNDA GIFT Card</a><price-list class="price-list "><sale-price class="h6 text-subdued"> 4700 <span class="sr-only">Sale price</span><span class=money>$100.00</span></sale-price></price-list></div><safe-sticky class="product-info "> 4701 <div class="product-info__block-list"><div class="product-info__block-item" data-block-id="title" data-block-type="title" ><h2 class="product-title h3"> 4702 <a href="/products/qynda-gift-card">QYNDA GIFT Card</a> 4703 </h2></div><div class="product-info__block-item" data-block-id="variant_picker" data-block-type="variant-picker" > 4704<style> 4705 @media screen and (min-width: 770px) { 4706 .custom-size-modal-content { top: auto !important; } 4707 } 4708</style><variant-picker class="variant-picker v-stack gap-4" section-id="template--26542184333585__main" form-id="product-form-quick-buy-11184018325777-template--26542184333585__main" context="quick_buy" handle="qynda-gift-card" > 4709 4710
4710<script data-variant type="application/json">{"id":54370783428881,"title":"$100","option1":"$100","option2":null,"option3":null,"sku":null,"requires_shipping":false,"taxable":false,"featured_image":null,"available":true,"name":"QYNDA GIFT Card - $100","public_title":"$100","options":["$100"],"price":10000,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}</script>
4710 4711 4712 4713 4714<fieldset class="variant-picker__option v-stack gap-2 fieldset-1"> 4715 4716 <div class="variant-picker__option-info h-stack justify-between gap-2" style="width: 100%;"> 4717 4718 <div class="h-stack gap-1" style="width: 100%; justify-content: space-between; align-items: center; display: flex;"> 4719 <legend class="form__label">Select Gift Card Value: $100 4720</legend></div></div><div class="variant-picker__option-values h-stack gap-2.5 wrap"><input class="sr-only" type="radio" name="product-form-quick-buy-11184018325777-template--26542184333585__main-option1" id="option-value-1-template--26542184333585__main-product-form-quick-buy-11184018325777-template--26542184333585__main-option1-12418951348497" value="12418951348497" form="product-form-quick-buy-11184018325777-template--26542184333585__main" checked="checked" data-option-position="1" ><label class="block-swatch " for="option-value-1-template--26542184333585__main-product-form-quick-buy-11184018325777-template--26542184333585__main-option1-12418951348497"><span>$100</span> 4721 </label><input class="sr-only" type="radio" name="product-form-quick-buy-11184018325777-template--26542184333585__main-option1" id="option-value-2-template--26542184333585__main-product-form-quick-buy-11184018325777-template--26542184333585__main-option1-12418606760209" value="12418606760209" form="product-form-quick-buy-11184018325777-template--26542184333585__main" data-option-position="1" ><label class="block-swatch " for="option-value-2-template--26542184333585__main-product-form-quick-buy-11184018325777-template--26542184333585__main-option1-12418606760209"><span>$150</span> 4722 </label><input class="sr-only" type="radio" name="product-form-quick-buy-11184018325777-template--26542184333585__main-option1" id="option-value-3-template--26542184333585__main-product-form-quick-buy-11184018325777-template--26542184333585__main-option1-12418606792977" value="12418606792977" form="product-form-quick-buy-11184018325777-template--26542184333585__main" data-option-position="1" ><label class="block-swatch " for="option-value-3-template--26542184333585__main-product-form-quick-buy-11184018325777-template--26542184333585__main-option1-12418606792977"><span>$200</span> 4723 </label><input class="sr-only" type="radio" name="product-form-quick-buy-11184018325777-template--26542184333585__main-option1" id="option-value-4-template--26542184333585__main-product-form-quick-buy-11184018325777-template--26542184333585__main-option1-12418606825745" value="12418606825745" form="product-form-quick-buy-11184018325777-template--26542184333585__main" data-option-position="1" ><label class="block-swatch " for="option-value-4-template--26542184333585__main-product-form-quick-buy-11184018325777-template--26542184333585__main-option1-12418606825745"><span>$250</span> 4724 </label><input class="sr-only" type="radio" name="product-form-quick-buy-11184018325777-template--26542184333585__main-option1" id="option-value-5-template--26542184333585__main-product-form-quick-buy-11184018325777-template--26542184333585__main-option1-12439646437649" value="12439646437649" form="product-form-quick-buy-11184018325777-template--26542184333585__main" data-option-position="1" ><label class="block-swatch " for="option-value-5-template--26542184333585__main-product-form-quick-buy-11184018325777-template--26542184333585__main-option1-12439646437649"><span>$300</span> 4725 </label></div></fieldset><noscript><div class="form-control" ><select id="select--template--26542184333585__main-product-form-quick-buy-11184018325777-template--26542184333585__main-id" class="select" name="id" form="product-form-quick-buy-11184018325777-template--26542184333585__main" 4726 4727 4728><option selected="selected" value="54370783428881">$100 - <span class=money>$100.00</span></option><option value="54370507161873">$150 - <span class=money>$150.00</span></option><option value="54370507194641">$200 - <span class=money>$200.00</span></option><option value="54370507227409">$250 - <span class=money>$250.00</span></option><option value="54392469586193">$300 - <span class=money>$300.00</span></option></select><svg aria-hidden="true" focusable="false" fill="none" width="10" class="icon icon-dropdown-chevron" viewB
4728ox="0 0 10 6"> 4729 <path d="m1 1 4 4 4-4" stroke="currentColor" stroke-linecap="square"/> 4730 </svg><label for="select--template--26542184333585__main-product-form-quick-buy-11184018325777-template--26542184333585__main-id" class="floating-label text-xs">Variant</label></div></noscript></variant-picker><style> 4731.size-chart-trigger-btn-custom { 4732 display: inline-flex !important; 4733 align-items: center !important; 4734 justify-content: center !important; 4735 padding: 6px 14px !important; 4736 cursor: pointer !important; 4737 border: 1px solid #1C1C1C !important; 4738 position: relative !important; 4739 overflow: hidden !important; 4740 z-index: 1 !important; 4741 color: #ffffff !important; 4742 background-color: rgb(var(--button-background)) !important; 4743 background-image: linear-gradient(#fff, #fff) !important; 4744 background-repeat: no-repeat !important; 4745 background-position: right !important; 4746 background-size: 0% 100% !important; 4747 transition: background-size 0.4s cubic-bezier(0.4, 0, 0.2, 1), color 0.3s ease !important; 4748} 4749 4750 4751@media screen and (pointer: fine) { 4752 .size-chart-trigger-btn-custom:hover { 4753 color: #1C1C1C !important; 4754 background-position: left !important; 4755 background-size: 100% 100% !important; 4756 } 4757} 4758 4759 4760.variant-picker__option-info .size-chart-trigger-btn-custom .size-btn-text { 4761 color: #ffffff !important; 4762 font-size: 12px !important; 4763 font-weight: normal !important; 4764 letter-spacing: 0.5px !important; 4765 text-transform: capitalize !important; 4766 position: relative !important; 4767 z-index: 2 !important; 4768 transition: color 0.3s ease !important; 4769} 4770 4771.size-chart-trigger-btn-custom:hover .size-btn-text { 4772 color: #1C1C1C !important; 4773} 4774 4775 4776.size-chart-trigger-btn-custom svg, 4777.size-chart-trigger-btn-custom .size-btn-icon, 4778.size-chart-trigger-btn-custom .size-btn-arrow { 4779 fill: #ffffff !important; 4780 transition: fill 0.3s ease !important; 4781 position: relative !important; 4782 z-index: 2 !important; 4783} 4784 4785.size-chart-trigger-btn-custom:hover svg { 4786 fill: #1C1C1C !important; 4787} 4788 4789 4790.size-btn-icon { 4791 width: 18px !important; 4792 height: 18px !important; 4793 margin-right: 5px !important; 4794} 4795 4796.size-btn-arrow { 4797 width: 14px !important; 4798 height: 14px !important; 4799 margin-left: 4px !important; 4800} 4801</style></div><div class="product-info__block-item" data-block-id="quantity_selector" data-block-type="quantity-selector" ><div class="v-stack gap-1 justify-items-start"><quantity-selector class="quantity-selector " ><button type="button" class="quantity-selector__button" disabled> 4802 <span class="sr-only">Decrease quantity</span><svg aria-hidden="true" focusable="false" fill="none" width="10" class="icon icon-minus" viewBox="0 0 12 12"> 4803 <path d="M0 6h12" stroke="currentColor" stroke-width="1.5"/> 4804 </svg></button><quantity-input class="quantity-selector__input-wrapper"> 4805 <input class="quantity-selector__input " type="number" value="1" name="quantity" inputmode="numeric" step="1" min="1" form="product-form-quick-buy-11184018325777-template--26542184333585__main" aria-label="Change quantity"></quantity-input><button type="button" class="quantity-selector__button" > 4806 <span class="sr-only">Increase quantity</span><svg aria-hidden="true" focusable="false" fill="none" width="10" class="icon icon-plus" viewBox="0 0 12 12"> 4807 <path d="M6 0v12M0 6h12" stroke="currentColor" stroke-width="1.5"/> 4808 </svg></button></quantity-selector></div></div><div class="product-info__block-item" data-block-id="buy_buttons" data-block-type="buy-buttons" ><product-form><form method="post" action="/cart/add" id="product-form-quick-buy-11184018325777-template--26542184333585__main" accept-charset="UTF-8" class="shopify-product-form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="product" /><input type="hidden" name="utf8" value="â" /><input type="hidden" disabled name="id" value="54370783428881"> 4809 4810 4811 4812 <div class="v-stack gap-4"><buy-buttons class="buy-buttons " form="product-form-quick-buy-11184018325777-template--26542184333585__main"> 4813<button type="submit" class="button w-full" >Add to cart</button></buy-buttons> 4814 </div><input type="hidden" name="product-id" value="11184018325777" /><input type="hidden" name="section-id" value="template--26542184333585__main" /></form></product-form></div></div></safe-sticky><div id="SizeDrawerBackdrop" class="size-drawer-backdrop"></div><div id="ProductSizeDrawer" class="size-drawer-container" role="dialog" aria-label="Size Information" aria-hidden="true" tabindex="-1"><div class="size-drawer-header"> 4815 <h3> Size Guide 4816 </h3> 4817 <h3 class="size-drawer-title">QYNDA GIFT Card </h3> 4818 <button class="size-drawer-close-btn" js-close-size-drawer aria-label="Close"> 4819 <svg class="icon icon--close" width="16" height="16" viewB
4819ox="0 0 35 35"> 4820 <polygon points="34.56 2.56 32.44 .44 17.5 15.38 2.56 .44 .44 2.56 15.38 17.5 .44 32.44 2.56 34.56 17.5 19.62 32.44 34.56 34.56 32.44 19.62 17.5 34.56 2.56"></polygon> 4821 </svg> 4822 </button> 4823 </div><div class="size-drawer-body"><div class="size-drawer-tabs-wrapper"> 4824 <button class="size-tab-btn active-tab" data-target="cm">CM 4825</button> 4826 <button class="size-tab-btn inactive-tab" data-target="inch">INCHES 4827</button> 4828 <button class="size-tab-btn inactive-tab" data-target="intl">INTL 4829</button> 4830 </div> 4831 <div id="panel-cm" class="size-panel block"><p class="size-drawer-empty-msg">CM data not available. 4832</p></div> 4833 4834 <div id="panel-inch" class="size-panel hidden"><p class="size-drawer-empty-msg">Inch data not available. 4835</p></div> 4836 4837 <div id="panel-intl" class="size-panel hidden"><p class="size-drawer-empty-msg">International data not available. 4838</p></div> 4839 4840 </div> 4841</div> 4842 4843<style> 4844 .size-drawer-backdrop { 4845 position: fixed; 4846 inset: 0; 4847 background: rgba(0,0,0,0.5); 4848 z-index: 2147483646; 4849 opacity: 0; 4850 visibility: hidden; 4851 transition: opacity 0.3s ease; 4852 backdrop-filter: blur(2px); 4853 } 4854 .size-drawer-backdrop.is-open { 4855 opacity: 1; 4856 visibility: visible; 4857 } 4858 4859 .size-drawer-container { 4860 position: fixed; 4861 top: 0; 4862 right: -100%; 4863 width: 100%; 4864 max-width: 500px; 4865 height: 100vh; 4866 background: #ffffff; 4867 z-index: 2147483647; 4868 transition: right 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94); 4869 box-shadow: -5px 0 25px rgba(0,0,0,0.1); 4870 } 4871 .size-drawer-container.is-open { 4872 right: 0; 4873 } 4874 .size-drawer-header { 4875 padding: 10px 20px; 4876 border-bottom: 1px solid #eaeaea; 4877 display: flex; 4878 justify-content: space-between; 4879 align-items: center; 4880 } 4881 .size-drawer-title { 4882 margin: 0; 4883 font-size: 18px; 4884 font-weight: 600; 4885 } 4886 .size-drawer-close-btn { 4887 background: none; 4888 border: none; 4889 cursor: pointer; 4890 padding: 5px; 4891 display: flex;
4892 align-items: center; 4893 justify-content: center; 4894 margin-bottom: 0 !important; 4895 } 4896 4897.size-drawer-tabs-wrapper { 4898 display: flex; 4899 justify-content: center; 4900 align-items: center; 4901 gap: 12px; 4902 margin-bottom: 20px; 4903 } 4904 .size-drawer-body { 4905 padding: 20px; 4906 height: 100%; 4907 overflow-y: auto; 4908 padding-bottom: 50px; 4909 } 4910 4911 .size-drawer-empty-msg { 4912 color: #666; 4913 text-align: center; 4914 margin-top: 20px; 4915 font-size: 14px; 4916 } 4917 4918 /* --- Tab Logic & Styling --- */ 4919 .size-panel.hidden { display: none !important; } 4920 .size-panel.block { display: block !important; } 4921 4922.size-tab-btn { 4923 font-size: 14px; 4924 font-weight: 700; 4925 letter-spacing: 0.5px; 4926 padding: 10px 24px !important; 4927 cursor: pointer; 4928 text-transform: uppercase; 4929 transition: all 0.2s ease; 4930 text-align: center; 4931 min-width: 90px; 4932 } 4933.size-tab-btn.active-tab { 4934 background-color: #4f0030 !important; 4935 color: #ffffff !important; 4936 border: 2px solid #4f0030 !important; 4937 box-shadow: inset 0 0 0 2px #ffffff !important; 4938 } 4939.size-tab-btn.inactive-tab { 4940 background-color: #ffffff !important; 4941 color: #4a5568 !important; 4942 border: 1px solid #cbd5e1 !important; 4943 box-shadow: 0 2px 4px rgba(0,0,0,0.05) !important; /* Slight drop shadow */ 4944 } 4945 4946 4947 /* --- Rendered Table Styling --- */ 4948.custom-size-content { 4949 padding-bottom: 50px; 4950} 4951 .custom-size-content table { 4952 width: 100% !important; 4953 border-collapse: collapse; 4954 margin-bottom: 20px; 4955 text-align: center; 4956 font-size: 13px; 4957 } 4958 .custom-size-content th, .custom-size-content td { 4959 padding: 12px 8px; 4960 border: 1px solid #eaeaea; 4961 } 4962 .custom-size-content img { 4963 max-width: 100%; 4964 height: auto; 4965 margin: 0px auto; 4966 display: block; 4967 } 4968 .custom-size-content p { 4969 margin-bottom: 10px; 4970 line-height: 1.5; 4971 font-size: 14px; 4972 text-align: left; 4973 } 4974 .custom-size-content th, .custom-size-content td { 4975 padding: 10px 14px !important; 4976 border: 1px solid #eaeaea !important; 4977 white-space: nowrap !important; 4978 overflow: visible !important; 4979 } 4980 .custom-size-content th { 4981 font-weight: 700 !important; 4982 font-size: 14px !important; 4983 background-color: #fafafa !important; 4984 color: black !important; 4985 letter-spacing: 0.5px !important; 4986 text-align: center !important; 4987 vertical-align: middle !important; 4988 } 4989 .custom-size-content td:first-child { 4990 font-weight: 600 !important; 4991 } 4992 #ProductSizeDrawer .custom-size-content th, 4993 #ProductSizeDrawer .custom-size-content th * { 4994 background-color: #fafafa !important; 4995 color: #000000 !important; 4996 -webkit-text-fill-color: #000000 !important; 4997 opacity: 1 !important; 4998 } 4999 @media screen and (max-width: 600px) { 5000 .custom-size-content th { 5001 font-size: 12px !important; 5002 } 5003 .size-drawer-title { 5004 font-size: 16px; 5005} 5006.custom-size-content > :nth-child(1) { 5007 display: flex; 5008 flex-direction: column; 5009 justify-content: center; 5010 align-items: center; 5011} 5012 .custom-size-content table { 5013 width: 90% !important; 5014 } 5015.custom-size-content th, .custom-size-content td { 5016 padding: 5px 10px !important; 5017 font-size: 13.5px; 5018} 5019.size-drawer-tabs-wrapper { 5020 display: flex; 5021 justify-content: center; 5022 align-items: center; 5023 gap: 14px; 5024 padding-right: 0; 5025} 5026#panel-intl th, 5027#panel-intl td { 5028 padding: 5px 20px !important; 5029} 5030.custom-size-content table { 5031 width: 90% !important; 5032 border-collapse: collapse !important; 5033 margin: 0 auto 20px auto !important; 5034 text-align: center !important; 5035 font-size: 13px !important; 5036} 5037.custom-size-content img { 5038 max-width: 90%; 5039} 5040.custom-size-content td:first-child { 5041 font-size: 12px; 5042} 5043} 5044 5045 5046 5047.table-wrapper-fix { 5048 width: 100%; 5049 overflow-x: auto; 5050 margin-bottom: 25px; 5051 -webkit-overflow-scrolling: touch; 5052} 5053 5054.table-wrapper-fix::-webkit-scrollbar { 5055 height: 8px; 5056} 5057 5058.table-wrapper-fix::-webkit-scrollbar-track { 5059 background: #f7f4f4 !important; 5060 border-radius: 10px; 5061 margin: 0 5px; 5062 border: 1px solid #e8e6e6; 5063} 5064 5065.table-wrapper-fix::-webkit-scrollbar-thumb { 5066 background: #c7c6c6 !important; 5067 border-radius: 10px; 5068 min-width: 40px; 5069} 5070 5071</style> 5072
5073<script> 5074(function() { 5075 // 1. Drawer Open/Close Logic 5076 function openDrawer() { 5077 const drawer = document.getElementById('ProductSizeDrawer'); 5078 const backdrop = document.getElementById('SizeDrawerBackdrop'); 5079 if (drawer && backdrop) { 5080 drawer.classList.add('is-open'); 5081 backdrop.classList.add('is-open'); 5082 document.body.style.overflow = 'hidden'; 5083 } 5084 } 5085 5086 function closeDrawer() { 5087 const drawer = document.getElementById('ProductSizeDrawer'); 5088 const backdrop = document.getElementById('SizeDrawerBackdrop'); 5089 if (drawer && backdrop) { 5090 drawer.classList.remove('is-open'); 5091 backdrop.classList.remove('is-open'); 5092 document.body.style.overflow = ''; 5093 } 5094 } 5095 5096 // Use a global flag to ensure we only attach the listener once per page 5097 if (!window.sizeDrawerInitialized) { 5098 document.addEventListener('click', (e) => { 5099 const openBtn = e.target.closest('[js-open-size-drawer]'); 5100 const closeBtn = e.target.closest('[js-close-size-drawer]'); 5101 const backdrop = document.getElementById('SizeDrawerBackdrop'); 5102 5103 if (openBtn) { 5104 e.preventDefault(); 5105 openDrawer(); 5106 } else if (closeBtn || e.target === backdrop) { 5107 e.preventDefault(); 5108 closeDrawer(); 5109 } 5110 5111 // Tab Switching Logic (Event Delegation) 5112 const tabBtn = e.target.closest('.size-tab-btn'); 5113 if (tabBtn) { 5114 e.preventDefault(); 5115 const container = tabBtn.closest('.size-drawer-container'); 5116 if (!container) return; 5117 5118 // Reset tabs in this container 5119 container.querySelectorAll('.size-tab-btn').forEach(b => { 5120 b.classList.remove('active-tab'); 5121 b.classList.add('inactive-tab'); 5122 }); 5123 // Activate clicked tab 5124 tabBtn.classList.remove('inactive-tab'); 5125 tabBtn.classList.add('active-tab'); 5126 5127 // Hide all panels 5128 container.querySelectorAll('.size-panel').forEach(p => { 5129 p.classList.remove('block'); 5130 p.classList.add('hidden'); 5131 }); 5132 5133 // Show target panel 5134 const targetId = 'panel-' + tabBtn.dataset.target; 5135 const panel = container.querySelector('#' + targetId); 5136 if (panel) { 5137 panel.classList.remove('hidden'); 5138 panel.classList.add('block'); 5139 } 5140 } 5141 }); 5142 5143 window.sizeDrawerInitialized = true; 5144 } 5145 5146 // Add a visual hint if the table is wide 5147 // This needs to run whenever the drawer is rendered or opened 5148 function wrapTables() { 5149 document.querySelectorAll('.custom-size-content table').forEach(table => { 5150 if (!table.parentElement.classList.contains('table-wrapper-fix')) { 5151 table.outerHTML = '<div class="table-wrapper-fix">' + table.outerHTML + '</div>'; 5152 } 5153 }); 5154 } 5155 5156 wrapTables(); 5157})(); 5158</script>
5158<style> 5159 .quick-buy-modal__info-wrapper .h-stack.gap-1 { 5160 width: auto !important; 5161 } 5162 .qb-gallery-wrapper { 5163 position: relative; 5164 width: 100%; 5165 overflow: hidden; 5166 padding-bottom: 25px; 5167 margin-bottom: 0px; 5168 display: block; 5169 user-select: none; 5170 -webkit-user-select: none; 5171 touch-action: manipulation; 5172 } 5173 5174 .qb-track { 5175 display: flex; 5176 will-change: transform; 5177 height: 100%; 5178 align-items: center; 5179 flex-wrap: nowrap; 5180 } 5181 5182 .qb-slide { 5183 display: flex; 5184 align-items: center; 5185 justify-content: center; 5186 flex-shrink: 0; 5187 } 5188 5189 .qb-slide { transition: opacity 0.3s ease; } 5190 .qb-slide.active-slide { opacity: 1; } 5191 5192 @media screen and (min-width: 768px) { 5193 .qb-track { gap: 0px; } 5194 .qb-slide { 5195 width: 100%; 5196 opacity: 1; 5197 } 5198 .qb-slide img, 5199 .qb-slide video, 5200 .qb-slide iframe { 5201 width: 100%; 5202 height: 424px; 5203 object-fit: contain; 5204 display: block; 5205 } 5206 .qb-slide img { cursor: zoom-in; } 5207 .qb-nav-btn { top: 45%; background: transparent; } 5208 .qb-prev { left: 10px; } 5209 .qb-next { right: 10px; } 5210 } 5211 5212 @media screen and (max-width: 767px) { 5213 .qb-gallery-wrapper { min-height: 230px; } 5214 .qb-track { gap: 10px; } 5215 .qb-slide { 5216 width: 42%; 5217 } 5218 .qb-slide img, 5219 .qb-slide video, 5220 .qb-slide iframe { 5221 width: 100%; 5222 height: 207px !important; 5223 object-fit: contain; 5224 display: block; 5225 } 5226 .qb-slide img { cursor: zoom-in; } 5227 .qb-nav-btn { top: 40%; } 5228 .qb-prev { left: 0px; } 5229 .qb-next { right: 0px; } 5230 } 5231 5232 .qb-nav-btn { 5233 position: absolute; 5234 transform: translateY(-50%); 5235 z-index: 1; 5236 border: none; 5237 cursor: pointer; 5238 display: flex; 5239 align-items: center; 5240 justify-content: center; 5241 padding: 0; 5242 background: transparent; 5243 } 5244 5245 .qb-nav-btn img { 5246 width: 40px; 5247 height: 40px; 5248 display: block; 5249 } 5250 5251 .qb-dots { 5252 display: flex; 5253 justify-content: center; 5254 gap: 8px; 5255 margin-top: 10px; 5256 position: absolute; 5257 bottom: 0; 5258 width: 100%; 5259 z-index: 1; 5260 } 5261 5262 .qb-dot { width: 8px; height: 8px; background-color: #CFCFCF; border-radius: 50%; cursor: pointer; transition: all 0.3s ease; } 5263 .qb-dot.hidden-dot { display: none; } 5264 .qb-dot.active-dot { background-color: #919191; width: 24px; border-radius: 10px; } 5265 5266 /* Lightbox Core */ 5267 .qb-lightbox { 5268 position: fixed; 5269 inset: 0; 5270 background: #ffffff; 5271 display: none; 5272 align-items: center; 5273 justify-content: center; 5274 z-index: 9999999; 5275 overflow: hidden; 5276 } 5277 5278 .qb-lightbox.is-open { display: flex; } 5279 5280 .qb-lightbox-inner { 5281 position: relative; 5282 width: 100%; 5283 height: 100%; 5284 display: flex; 5285 flex-direction: column; 5286 justify-content: center; 5287 align-items: center; 5288 overflow: hidden; 5289 background: #EFEFEF; 5290 } 5291 5292 .qb-lightbox-main { 5293 width: 100%; 5294 display: flex; 5295 align-items: center; 5296 justify-content: center; 5297 flex: 1 1 auto; 5298 overflow: hidden; 5299 position: relative; 5300 } 5301 5302 .qb-lb-track { 5303 display: flex; 5304 width: 100%; 5305 height: 100%; 5306 will-change: transform; 5307 flex-wrap: nowrap; 5308 align-items: center; 5309 } 5310 5311 .qb-lb-slide { 5312 flex: 0 0 100%; 5313 width: 100%; 5314 height: 100%; 5315 display: flex; 5316 align-items: center; 5317 justify-content: center; 5318 box-sizing: border-box; 5319 padding: 0 10px; 5320 touch-action: none; 5321 } 5322 5323 .qb-lb-slide img, 5324 .qb-lb-slide video, 5325 .qb-lb-slide iframe { 5326 max-width: 100%; 5327 max-height: 100%; 5328 object-fit: contain; 5329 display: block; 5330 will-change: transform; 5331 } 5332 5333 .qb-lightbox-nav { 5334 position: fixed; 5335 bottom: 30px; 5336 left: 50%; 5337 transform: translateX(-50%); 5338 display: flex; 5339 align-items: center; 5340 gap: 10px; 5341 z-index: 10000; 5342 background: transparent; 5343 pointer-events: auto; 5344 } 5345 5346 .qb-lightbox-nav-btn, 5347 .qb-lightbox-close { 5348 width: 44px; 5349 height: 44px; 5350 border-radius: 50%; 5351 background: #ffffff; 5352 color: #000000; 5353 font-size: 0; 5354 display: flex; 5355 align-items: center; 5356 justify-content: center; 5357 cursor: pointer; 5358 box-shadow: 0 .125rem .625rem rgba(0,0,0,0.1); 5359 transition: all 0.2s ease; 5360 border: none; 5361 } 5362 5363 .qb-lightbox-close { width: 50px !important; height: 50px !important; } 5364 .qb-lightbox-nav-btn svg { width: 12px; height: 12px; } 5365 .qb-lightbox-close svg { width: 16px !important; height: 16px; } 5366 5367 /* RE-INSTATED ANIMATIONS */ 5368 @keyframes animateIconInline { 5369 0% { opacity: 1; transform: translateX(0%); } 5370 50% { opacity: 0; transform: translateX(100%); } 5371 51% { opacity: 0; transform: translateX(-100%); } 5372 100% { opacity: 1; transform: translateX(0%); } 5373 } 5374 5375 @keyframes animateIconBlock { 5376 0% { opacity: 1; transform: translateY(0%); } 5377 50% { opacity: 0; transform: translateY(100%); } 5378 51% { opacity: 0; transform: translateY(-100%); } 5379 100% { opacity: 1; transform: translateY(0%); } 5380 } 5381 5382 @media (hover: hover) and (prefers-reduced-motion: no-preference) { 5383 .qb-lightbox-nav-btn.hover\:animate-icon-inline:hover svg { 5384 animation: 0.35s ease-in-out forwards animateIconInline; 5385 } 5386 .qb-lightbox-close.hover\:animate-icon-block:hover svg { 5387 animation: 0.35s ease-in-out forwards animateIconBlock; 5388 } 5389 } 5390 5391 @media screen and (max-width: 767px) { 5392 .qb-lightbox-main { max-height: calc(100vh - 120px); align-items: flex-start; margin-top: 30px; } 5393 .qb-lightbox-nav { bottom: 40px; gap: 10px; } 5394 .qb-lb-track {height: auto;} 5395 } 5396 .quick-buy-modal__info-wrapper .jdgm-widget { display: none; } 5397 .qb-header-manual {margin-bottom:20px;
5397display:block;} 5398 .qb-header-manual a {text-decoration:none;margin-bottom:5px;display:block;} 5399 @media (min-width:768px){ 5400 .qb-header-manual{display:none!important;} 5401 .qb-header-manual--gulf-cup{display:block!important;} 5402 .qb-header-manual--gulf-cup a.product-title { 5403 color: #474747; font-weight: 550; font-size: 16px; text-decoration: none; display: block; margin-bottom: 6px; 5404 } 5405 .qb-header-manual--gulf-cup span.money { color: black; font-size: 20px; } 5406 .quick-buy-modal__info-wrapper h2.product-title.h3 a { color: #474747; font-weight: 550; font-size: 16px; } 5407 .quick-buy-modal__info-wrapper span.money { color: black; font-size: 20px; } 5408 } 5409 .quick-buy-modal__info-wrapper svg.icon.icon-close { color: #000 !important; } 5410 .product-info__block-item hr { display: none !important; } 5411 .quick-buy-modal__info-wrapper .product-info__block-item [data-block-type="@app"] { display: none; } 5412 .quick-buy-modal__info-wrapper .quantity-selector { border: 1px solid; } 5413 .quick-buy-modal__info-wrapper sale-price.h6.text-subdued { font-size: 16px; color: #000000; } 5414 .quick-buy-modal__info-wrapper .quantity-selector__button { color: black; margin: 0; } 5415 .injected-size-btn { 5416 font-size: 12px; text-transform: capitalize; cursor: pointer; 5417 margin-left: auto; color: black; text-decoration: underline; 5418 font-family: 'Wallop'; text-underline-offset: 5px;flex: 0 0 auto; 5419 } 5420 .quick-buy-modal__info-wrapper .product-info__block-list { padding: 0; } 5421 .quick-buy-modal__info-wrapper { border-block-start-width: 0px !important; } 5422 .qb-header-manual a { margin-bottom: 5px; } 5423 @supports (height: 100dvh) { 5424 quick-buy-modal[open]::part(content) { max-height: 100dvh !important; } 5425 } 5426 .injected-size-btn:hover{ background:#000;color:#fff; } 5427 .injected-pdp-link { 5428 font-size: 12px; text-decoration: underline; white-space: nowrap; 5429 text-underline-offset: 5px; font-weight: 500; 5430 } 5431 .flex-qty-fix { 5432 display: flex !important; align-items: center !important; 5433 flex-wrap: wrap; justify-content: space-between; 5434 font-size: 12px; font-weight: 550; text-transform: capitalize; 5435 cursor: pointer; margin-left: auto; color: black; font-family: 'Wallop'; 5436 } 5437 @media screen and (max-width: 699px) { 5438 .quick-buy-modal::part(body) { padding-inline: 0; padding: 0; } 5439 quick-buy-modal[open], 5440 .quick-buy-modal[open] { 5441 z-index: 1000001 !important; 5442 } 5443 quick-buy-modal[open]::part(base), 5444 .quick-buy-modal[open]::part(base) { 5445 place-items: end center; 5446 align-items: end; 5447 padding: 0; 5448 } 5449 quick-buy-modal[open]::part(content), 5450 .quick-buy-modal[open]::part(content) { 5451 width: 100% !important; 5452 max-width: 100% !important; 5453 max-height: 100vh !important; 5454 border-radius: 0 !important; 5455 overflow: auto; 5456 -webkit-overflow-scrolling: touch; 5457 } 5458 @supports (height: 100dvh) { 5459 quick-buy-modal[open]::part(content), 5460 .quick-buy-modal[open]::part(content) { 5461 max-height: 100dvh !important; 5462 } 5463 } 5464 } 5465 .qb-header-manual { margin-bottom: 20px; display: block; color: #474747; font-size: 12px; font-weight: 550; } 5466 .quick-buy-modal__info-wrapper .buy-buttons button.loading { position: relative; color: transparent !important; pointer-events: none; } 5467 .quick-buy-modal__info-wrapper .buy-buttons button.loading::after { 5468 content: ""; position: absolute; top: 50%; left: 50%; width: 20px; height: 20px; 5469 margin-top: -10px; margin-left: -10px; border-radius: 50%; border: 2px solid #fff; 5470 border-top-color: transparent; animation: qb-spin .6s linear infinite; z-index: 10; 5471 } 5472 @keyframes qb-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } 5473 quick-buy-modal .buy-buttons button[type="submit"] { 5474 display: flex !important; 5475 justify-content: center; 5476 align-items: center; 5477 width: 100% !important; 5478 } 5479 </style> 5480
5481<script> 5482(function(){ 5483 var qbContent = document.querySelector('.quick-buy-modal__content'); 5484 var productUrlBase = "/products/qynda-gift-card"; 5485 5486 function lockScroll(lock) { 5487 var status = lock ? 'hidden' : ''; 5488 if (qbContent) qbContent.style.overflow = status; 5489 document.body.style.overflow = status; 5490 document.documentElement.style.overflow = status; 5491 } 5492 5493 // --- OPTIMIZED SCRIPT START --- 5494 5495 // Helper: Debounce to prevent CPU Overload 5496 function debounce(func, wait) { 5497 let timeout; 5498 return function(...args) { 5499 clearTimeout(timeout); 5500 timeout = setTimeout(() => func.apply(this, args), wait); 5501 }; 5502 } 5503 5504 // --- DYNAMIC LINKS & INJECTIONS --- 5505 function updateDynamicLinks() { 5506 var container = document.querySelector('.quick-buy-modal__content'); 5507 if (!container) return; 5508 5509 var form = container.querySelector('form[action*="/cart/add"]'); 5510 var currentId = null; 5511 if (form) { 5512 var input = form.querySelector('input[name="id"]'); 5513 if (input) currentId = input.value; 5514 } 5515 5516 if (!currentId) currentId = "54370783428881"; 5517 var fullUrl = productUrlBase + "?variant=" + currentId; 5518 5519 var pdpLink = container.querySelector('.injected-pdp-link'); 5520 if (pdpLink) pdpLink.href = fullUrl; 5521 5522 var titleLink = container.querySelector('.qb-header-manual a.product-title'); 5523 if (titleLink) titleLink.href = fullUrl; 5524 } 5525 5526 function runAllInjections(){ 5527 // FIX: Look in the broader container to find the drawer and variant picker 5528 var container = document.getElementById('quick-buy-modal-content') || document.querySelector('.quick-buy-modal__content'); 5529 if (!container) return; 5530 5531 // Inject Size Chart with Arabic Logic 5532 if (!container.querySelector('.size-chart-trigger-btn-custom')){ 5533 var legends = container.querySelectorAll('legend, .product-form__option-name'); 5534 for (var i = 0; i < legends.length; i++){ 5535 var text = legends[i].innerText; 5536 // FIX: Check for 'Size' OR 'Ù ÙØ§Ø³' (Arabic for Size) 5537 if (text && (text.indexOf('Size') !== -1 || text.indexOf('Ù ÙØ§Ø³') !== -1)){ 5538 var wrapper = legends[i].closest('.variant-picker__option-info'); 5539 if (wrapper){ 5540 wrapper.style.width = '100%'; 5541 wrapper.style.display = 'flex'; 5542 wrapper.style.justifyContent = 'space-between'; 5543 wrapper.style.alignItems = 'center'; 5544 5545 var btn = document.createElement('button'); 5546 btn.className = 'size-chart-trigger-btn-custom js-open-size-drawer'; 5547 btn.type = 'button'; 5548 5549 var btnText = 'SIZE GUIDE'; 5550 5551 // Inject the SVGs 5552 btn.innerHTML = ` 5553 <svg class="size-btn-icon" fill="#4f0030" version="1.1" viewBox="0 0 945.9 945.9" xml:space="preserve"><g><path d="M458.1,477.75h120.2v-85.3c-25.5,34.6-65.899,63.6-117.1,84.1C460.2,476.95,459.1,477.35,458.1,477.75z"></path><path d="M289.2,811.95h53.3v-61.5c0-15.2,12.3-27.5,27.5-27.5s27.5,12.3,27.5,27.5v61.5h51.7h7.3v-126c0-15.2,12.3-27.5,27.5-27.5 s27.5,12.3,27.5,27.5v126H545h25.5v-61.5c0-15.2,12.3-27.5,27.5-27.5s27.5,12.3,27.5,27.5v61.5h59v-126 c0-15.2,12.3-27.5,27.5-27.5s27.5,12.3,27.5,27.5v126h59v-61.5c0-15.2,12.3-27.5,27.5-27.5s27.5,12.3,27.5,27.5v61.5h52.4 c22.1,0,40-17.9,40-40v-221.8c0-22.101-17.9-40-40-40H309.2h-20h-20c-74.5-2.9-144.2-21.7-198.1-53.7 c-29.8-17.7-53.4-38.7-70.1-62.2c-0.3-0.4-0.6-0.8-0.9-1.2v175.8v71.2C0.1,734.95,129.5,811.95,289.2,811.95z"></path><path d="M276.8,477.55c4.101,0.101,8.2,0.2,12.4,0.2l0,0l0,0c119.1,0,221.399-42.8,265.6-104c15.101-20.8,23.4-43.8,23.4-67.9 c0-95-129.4-171.9-289.101-171.9c-159.7,0-289.1,77-289.1,171.9c0,24.1,8.4,47.1,23.4,67.9C66.3,432.75,163,474.65,276.8,477.55z M289.2,229.15c71.1,0,128.8,34.3,128.8,76.6c0,6.9-1.5,13.6-4.4,19.9c-1.6,3.6-3.6,7-6,
555310.3 C387.9,363.25,342.3,382.35,289.2,382.35c-4.2,0-8.3-0.1-12.4-0.399c-47.7-2.7-87.8-20.9-105.9-46c-6.7-9.3-10.4-19.5-10.4-30.3 C160.4,263.45,218,229.15,289.2,229.15z"></path></g></svg> 5554 <span class="size-btn-text">` + btnText + `</span> 5555 <svg class="size-btn-arrow" xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#4f0030"><path d="m321-80-71-71 329-329-329-329 71-71 400 400L321-80Z"/></svg> 5556 `; 5557 5558 // MANUAL TRIGGER: Since snippet scripts might not run in AJAX 5559 btn.onclick = function(e) { 5560 e.preventDefault(); 5561 var drawer = container.querySelector('.size-drawer-container'); 5562 var backdrop = container.querySelector('.size-drawer-backdrop'); 5563 if (drawer && backdrop) { 5564 drawer.classList.add('is-open'); 5565 backdrop.classList.add('is-open'); 5566 document.body.style.overflow = 'hidden'; 5567 } 5568 }; 5569 wrapper.appendChild(btn); 5570 break; 5571 } 5572 } 5573 } 5574 } 5575 // MANUAL CLOSE & TAB LOGIC for Quick Buy 5576 if (!container.dataset.drawerBound) { 5577 container.addEventListener('click', function(e) { 5578 var t = e.target; 5579 5580 // Close Logic 5581 if (t.closest('[js-close-size-drawer]') || t.classList.contains('size-drawer-backdrop')) { 5582 var drawer = container.querySelector('.size-drawer-container'); 5583 var backdrop = container.querySelector('.size-drawer-backdrop'); 5584 if (drawer && backdrop) { 5585 drawer.classList.remove('is-open'); 5586 backdrop.classList.remove('is-open'); 5587 document.body.style.overflow = ''; 5588 } 5589 } 5590 5591 // Tab Logic 5592 var tabBtn = t.closest('.size-tab-btn'); 5593 if (tabBtn) { 5594 e.preventDefault(); 5595 var drawer = container.querySelector('.size-drawer-container'); 5596 if (!drawer) return; 5597 5598 drawer.querySelectorAll('.size-tab-btn').forEach(b => { 5599 b.classList.remove('active-tab'); 5600 b.classList.add('inactive-tab'); 5601 }); 5602 tabBtn.classList.remove('inactive-tab'); 5603 tabBtn.classList.add('active-tab'); 5604 5605 drawer.querySelectorAll('.size-panel').forEach(p => { 5606 p.classList.remove('block'); 5607 p.classList.add('hidden'); 5608 }); 5609 var panel = drawer.querySelector('#panel-' + tabBtn.dataset.target); 5610 if (panel) { 5611 panel.classList.remove('hidden'); 5612 panel.classList.add('block'); 5613 } 5614 } 5615 }); 5616 container.dataset.drawerBound = 'true'; 5617 } 5618 5619 // Inject Product Details Link with Arabic Logic 5620 var qty = container.querySelector('quantity-selector'); 5621 if (qty){ 5622 var wrap = qty.closest('.v-stack') || qty.parentNode; 5623 if (wrap && !wrap.querySelector('.injected-pdp-link')){ 5624 wrap.classList.remove('v-stack'); 5625 wrap.classList.add('flex-qty-fix'); 5626 var link = document.createElement('a'); 5627 link.className = 'injected-pdp-link'; 5628 // FIX: Translate 'Product Details' link 5629 link.innerText = 'Product Details'; 5630 link.href = productUrlBase; 5631 wrap.appendChild(link); 5632 } 5633 } 5634 5635 var atcBtn = container.querySelector('.buy-buttons button[type="submit"]'); 5636 if(atcBtn && !atcBtn.hasAttribute('data-loading-bound')) { 5637 atcBtn.setAttribute('data-loading-bound', 'true'); 5638 atcBtn.addEventListener('click', function(){ 5639 if(!atcBtn.classList.contains('loading')) { 5640 atcBtn.classList.add('loading'); 5641 setTimeout(function(){ atcBtn.classList.remove('loading'); }, 3000); 5642 } 5643 }); 5644 } 5645 updateDynamicLinks(); 5646 } 5647 5648 // Run Once 5649 runAllInjections(); 5650 5651 var targetNode = document.getElementById('quick-buy-modal-content'); 5652 if (targetNode) { 5653 // Optimized Observer with Debounce 5654 var debouncedRun = debounce(function() { 5655 runAllInjections(); 5656 var form = targetNode.querySelector('form'); 5657 if(form && !form.dataset.bound) { 5658 form.dataset.bound = true; 5659 form.addEventListener('change', function(){ 5660 setTimeout(updateDynamicLinks, 50); 5661 }); 5662 } 5663 }, 100); 5664 5665 var observer = new MutationObserver(debouncedRun); 5666 observer.observe(targetNode, { childList: true, subtree: true }); 5667 } 5668})(); 5669</script>
5669 5670 </div> 5671 </product-rerender> 5672 </div> 5673</template>
5673<script> 5674 try { 5675 let recentlyViewedProducts = JSON.parse(localStorage.getItem('theme:recently-viewed-products') || '[]'); 5676 5677 recentlyViewedProducts = recentlyViewedProducts.filter(item => item !== 11184018325777); // Delete product to remove to the start 5678 recentlyViewedProducts.unshift(11184018325777); 5679 5680 localStorage.setItem('theme:recently-viewed-products', JSON.stringify(recentlyViewedProducts)); 5681 } catch (e) { 5682 } 5683</script>
5683 5684 5685<style> 5686 5687 @media screen and (max-width: 999px) { 5688 .product-info__block-list { 5689 flex-flow: row wrap !important; 5690 align-items: flex-end !important; 5691 gap: 10px !important; 5692 } 5693 .product-info__block-group.accordion-group { 5694 padding-top: 20px; 5695 } 5696 .product-info__block-item { 5697 width: 100% !important; 5698 margin-bottom: 0 !important; 5699 } 5700 .product-info__block-item[data-block-type="quantity-selector"], 5701 .product-info__block-item[data-block-id="quantity_selector"] { 5702 flex: 0 0 23% !important; 5703 } 5704 .product-info__block-item[data-block-type="buy-buttons"], 5705 .product-info__block-item[data-block-id="buy_buttons"] { 5706 width: auto !important; 5707 flex: 1 1 0% !important; 5708 } 5709 .buy-buttons button, 5710 .shopify-payment-button__button { 5711 width: 100% !important; 5712 margin-top: 0 !important; 5713 } 5714 .shopify-section--main-product .product-info__block-item[data-block-id=buy_buttons] button { 5715 padding-left: 10px; 5716 padding-right: 10px; 5717 margin-bottom: 0; 5718 } 5719 5720 } 5721 .shopify-section--main-product .variant-picker__option-values label.block-swatch { 5722 color: #232323; 5723 min-width: 60px; 5724} 5725</style> 5726 5727
5728<script> 5729(function() { 5730 const handleTitles = () => { 5731 const isMobile = window.innerWidth < 1000; 5732 const mobileHeader = document.querySelector('.mobile-product-header'); 5733 const desktopHeader = document.querySelector('.product-info [data-block-type="title"]') || document.querySelector('.product-info .product-title'); 5734 5735 if (isMobile) { 5736 if (desktopHeader) { 5737 desktopHeader.remove(); 5738 } 5739 } else { 5740 if (mobileHeader) { 5741 mobileHeader.remove(); 5742 } 5743 } 5744 }; 5745 if (document.readyState === 'loading') { 5746 document.addEventListener('DOMContentLoaded', handleTitles); 5747 } else { 5748 handleTitles(); 5749 } 5750 document.addEventListener('shopify:section:load', handleTitles); 5751})(); 5752</script>
5752 5753 5754 5755 5756 5757
5758<script> 5759(function(){ 5760 if (window.innerWidth > 999) return; // mobile only 5761 5762 const STICKY_SEL = 'product-sticky-bar, .product-sticky-bar'; 5763 const RADIOS_SEL = 'input[type="radio"][data-option-position="2"], input[type="radio"][name*="option2"]'; 5764 5765 // ---------------- styles (inject once) ---------------- 5766 if (!document.getElementById('sticky-size-dropup-styles')) { 5767 const css = ` 5768 .sticky-size-wrap{position:relative;display:inline-flex;align-items:center;flex:0 0 auto;z-index:100100} 5769 .sticky-size-trigger{background:#fff;color:#111;border:1px solid rgba(0,0,0,0.12);padding:8px 10px;font-size:14px;cursor:pointer;border-radius:0;display:inline-flex;align-items:center;gap:8px} 5770 .caret-icon{width:18px;height:18px;display:inline-block;transition:transform .18s ease} 5771 .sticky-size-wrap.caret-open .caret-icon{transform:rotate(180deg)} 5772 .sticky-size-list{position:absolute;bottom:calc(100% + 8px);left:0;min-width:120px;max-width:320px;background:#fff;box-shadow:0 10px 30px rgba(0,0,0,0.15);border-radius:0;overflow:auto;max-height:320px;display:none;color:#111;z-index:100102} 5773 .sticky-size-list button{display:block;width:100%;padding:10px 12px;background:transparent;border:0;text-align:left;color:#111;font-size:14px} 5774 .sticky-size-list button:active,.sticky-size-list button:focus{outline:none;background:rgba(0,0,0,0.04)} 5775 product-sticky-bar, .product-sticky-bar{align-items:center;display:flex;gap:8px} 5776 product-sticky-bar .buy-buttons, .product-sticky-bar .buy-buttons, product-sticky-bar buy-buttons { flex:1 1 auto; min-width:0 } 5777 product-sticky-bar .buy-buttons button, .product-sticky-bar .buy-buttons button { width:100% } 5778 5779 /* full-screen backdrop that appears beneath the sticky (darker page behind) */ 5780 #sticky-size-global-backdrop { 5781 position: fixed; 5782 inset: 0; 5783 background: rgba(0,0,0,0.45); 5784 display: none; 5785 -webkit-tap-highlight-color: transparent; 5786 } 5787 `; 5788 const s = document.createElement('style'); 5789 s.id = 'sticky-size-dropup-styles'; 5790 s.appendChild(document.createTextNode(css)); 5791 document.head.appendChild(s); 5792 } 5793 5794 // create global backdrop once (append to body) 5795 if (!document.getElementById('sticky-size-global-backdrop')) { 5796 const bd = document.createElement('div'); 5797 bd.id = 'sticky-size-global-backdrop'; 5798 bd.setAttribute('aria-hidden', 'true'); 5799 document.body.appendChild(bd); 5800 } 5801 const globalBackdrop = document.getElementById('sticky-size-global-backdrop'); 5802 5803 function $(sel, ctx=document){ return ctx.querySelector(sel); } 5804 function $all(sel, ctx=document){ return Array.from(ctx.querySelectorAll(sel)); } 5805 5806 // ---------------- core behavior ---------------- 5807 let suppressClose = false; // global lock to prevent outside handlers closing too soon 5808 let lastOpenTime = 0; 5809 let prevBodyOverflow = null; 5810 let prevHtmlOverflow = null; 5811 5812 function setSuppress(ms=600){ 5813 suppressClose = true; 5814 lastOpenTime = Date.now(); 5815 clearTimeout(setSuppress._t); 5816 setSuppress._t = setTimeout(()=> { suppressClose = false; }, ms); 5817 } 5818 5819 function saveAndLockScroll(){ 5820 try { 5821 prevBodyOverflow = document.body.style.overflow; 5822 prevHtmlOverflow = document.documentElement.style.overflow; 5823 document.body.style.overflow = 'hidden'; 5824 document.documentElement.style.overflow = 'hidden'; 5825 // also prevent overscroll on iOS 5826 document.body.style.position = 'relative'; 5827 } catch(e){} 5828 } 5829 function restoreScroll(){ 5830 try { 5831 document.body.style.overflow = prevBodyOverflow || ''; 5832 document.documentElement.style.overflow = prevHtmlOverflow || ''; 5833 document.body.style.position = ''; 5834 } catch(e){} 5835 } 5836 5837 // capture-phase protection for theme handlers while opening (do not block internal clicks inside dropdown) 5838 document.addEventListener('click', function(e){ 5839 try { 5840 if (!suppressClose) return; 5841 const t = e.target; 5842 if (!t) return; 5843 // if target is inside a sticky-size-list or the trigger we'll allow it 5844 if (t.closest && (t.closest('.sticky-size-list') || t.closest('.sticky-size-trigger'))) return; 5845 // if click is a size-chart trigger from theme, swallow it while suppressClose active to avoid duplicate open 5846 if (t.classList && t.classList.contains('size-chart-trigger-btn')) { 5847 e.stopPropagation(); 5848 e.preventDefault(); 5849 } else { 5850 const closest = t.closest && t.closest('.size-chart-trigger-btn'); 5851 if (closest) { 5852 e.stopPropagation(); 5853 e.preventDefault(); 5854 } 5855 } 5856 } catch (err) {} 5857 }, true); // capture 5858 5859 function buildAndInsert(sticky){ 5860 if (!sticky) return false;
5861 if (sticky.querySelector('.sticky-size-wrap')) return true; 5862 5863 const formId = sticky.getAttribute('form'); 5864 const picker = document.querySelector(`variant-picker[form-id="${formId}"]`) || document.querySelector('variant-picker'); 5865 const sizePos = (picker && picker.getAttribute('data-size-position')) || '2'; 5866 const radiosSel = `input[type="radio"][data-option-position="${sizePos}"][form="${formId}"], input[type="radio"][name*="option${sizePos}"][form="${formId}"]`; 5867 5868 function labelTextFor(r){ 5869 const lab = document.querySelector(`label[for="${r.id}"]`) || r.closest('label'); 5870 if (!lab) return r.value || ''; 5871 const sp = lab.querySelector('span'); 5872 return (sp ? sp.textContent.trim() : lab.textContent.trim()) || r.value || ''; 5873 } 5874 5875 // find radios; fallback to heuristics 5876 let radios = $all(radiosSel); 5877 if (!radios.length) { 5878 radios = $all(`input[type="radio"][data-option-position="${sizePos}"], input[type="radio"][name*="option${sizePos}"]`); 5879 } 5880 if (!radios.length){ 5881 radios = Array.from(document.querySelectorAll('input[type="radio"]')).filter(r=>{ 5882 const lab = document.querySelector(`label[for="${r.id}"]`); 5883 const txt = lab && lab.textContent ? lab.textContent.trim() : ''; 5884 return /^(xs|s|m|l|xl|xxl|\d+)$/i.test(txt.toLowerCase()); 5885 }); 5886 } 5887 5888 radios = radios.filter(r => labelTextFor(r).trim() !== ''); 5889 5890 if (!radios.length) return false; 5891 5892 const wrap = document.createElement('div'); 5893 wrap.className = 'sticky-size-wrap'; 5894 wrap.innerHTML = ` 5895 <button type="button" class="sticky-size-trigger" aria-expanded="false"> 5896 <span class="sticky-size-label">Size</span> 5897 <span class="caret" aria-hidden="true"> 5898 <svg class="caret-icon" xmlns="http://www.w3.org/2000/svg" height="18" viewBox="0 -960 960 960" width="18" fill="#000000"> 5899 <path d="M480-528 296-344l-56-56 240-240 240 240-56 56-184-184Z"/> 5900 </svg> 5901 </span> 5902 </button> 5903 <div class="sticky-size-list" aria-hidden="true" role="menu"></div> 5904 `; 5905 5906 // insert before buy-buttons (left of add-to-cart) 5907 const before = sticky.querySelector('buy-buttons, .buy-buttons, .product-sticky-bar__actions'); 5908 if (before) sticky.insertBefore(wrap, before); 5909 else sticky.insertBefore(wrap, sticky.firstElementChild || null); 5910 5911 const list = wrap.querySelector('.sticky-size-list'); 5912 const trigger = wrap.querySelector('.sticky-size-trigger'); 5913 const labelEl = wrap.querySelector('.sticky-size-label'); 5914 5915 function openDrop(){ 5916 list.style.setProperty('display', 'block', 'important'); 5917 trigger.setAttribute('aria-expanded','true'); 5918 wrap.classList.add('caret-open'); 5919 // show global backdrop and lock scroll 5920 if (globalBackdrop) globalBackdrop.style.display = 'block'; 5921 saveAndLockScroll(); 5922 setSuppress(800); // longer suppress after open to survive rogue handlers 5923 } 5924 function closeDrop(){ 5925 list.style.display = 'none'; 5926 trigger.setAttribute('aria-expanded','false'); 5927 wrap.classList.remove('caret-open'); 5928 // hide global backdrop and restore scroll 5929 if (globalBackdrop) globalBackdrop.style.display = 'none'; 5930 restoreScroll(); 5931 } 5932 5933 // backdrop click closes 5934 if (globalBackdrop) { 5935 globalBackdrop.addEventListener('click', function(e){ 5936 e.preventDefault(); 5937 e.stopPropagation(); 5938 closeDrop(); 5939 }, {passive:true}); 5940 } 5941 5942 // Add '--' option at the beginning of the list 5943 const defBtn = document.createElement('button'); 5944 defBtn.type = 'button'; 5945 defBtn.dataset.val = ''; 5946 defBtn.textContent = '--'; 5947 defBtn.addEventListener('click', function(e){ 5948 e.stopPropagation(); 5949 radios.forEach(x => { 5950 x.checked = false; 5951 }); 5952 if (radios[0]) { 5953 radios[0].dispatchEvent(new Event('change', { bubbles: true })); 5954 } 5955 const picker = document.querySelector('variant-picker'); 5956 if (picker) { 5957 picker.classList.remove('js-size-selected'); 5958 } 5959 const form = document.forms[sticky.getAttribute('form')]; 5960 if (form) { 5961 form.sizeSelected = false;
5962 } 5963 const modal = defBtn.closest('quick-buy-modal, .quick-buy-modal'); 5964 if (modal) { 5965 modal.sizeSelected = false; 5966 } 5967 if (typeof window.updateAddToCartButton === 'function') { 5968 window.updateAddToCartButton(form, false); 5969 } 5970 5971 const lang = document.documentElement.lang || 'en'; 5972 const sizeLabel = (lang.startsWith('ar') || document.querySelector('[lang="ar"]')) ? 'اÙÙ ÙØ§Ø³' : 'Size'; 5973 labelEl.textContent = sizeLabel; 5974 5975 closeDrop(); 5976 }, { passive: false }); 5977 defBtn.style.color = '#111'; 5978 list.appendChild(defBtn); 5979 5980 // populate unique items 5981 const seen = new Set(); 5982 radios.forEach(r=>{ 5983 if (seen.has(r.value)) return; seen.add(r.value); 5984 const btn = document.createElement('button'); 5985 btn.type = 'button'; 5986 btn.dataset.val = r.value; 5987 btn.textContent = labelTextFor(r); 5988 btn.addEventListener('click', function(e){ 5989 e.stopPropagation(); 5990 // choose matching radio (prefer one inside a form) 5991 const same = Array.from(document.querySelectorAll(`input[type="radio"][value="${this.dataset.val}"]`)); 5992 let chosen = same.find(x=>x.form) || same[0] || r; 5993 if (chosen){ chosen.checked = true; chosen.dispatchEvent(new Event('change',{bubbles:true})); } 5994 labelEl.textContent = this.textContent; 5995 closeDrop(); 5996 }, {passive:false}); 5997 btn.style.color = '#111'; 5998 list.appendChild(btn); 5999 }); 6000 6001 // initial label 6002 const checked = radios.find(x=>x.checked); 6003 const form = document.forms[sticky.getAttribute('form')]; 6004 const isSelected = form ? (form.sizeSelected === true) : false; 6005 6006 if (checked && isSelected) { 6007 labelEl.textContent = labelTextFor(checked); 6008 } else { 6009 const lang = document.documentElement.lang || 'en'; 6010 const sizeLabel = (lang.startsWith('ar') || document.querySelector('[lang="ar"]')) ? 'اÙÙ ÙØ§Ø³' : 'Size'; 6011 labelEl.textContent = sizeLabel; 6012 } 6013 6014 // --- pointerdown/up sequence to avoid race --- 6015 let pointerDown = false; 6016 trigger.addEventListener('pointerdown', function(e){ 6017 pointerDown = true; 6018 // set suppress early so capture handlers ignore 6019 setSuppress(400); 6020 }, {passive:true}); 6021 6022 trigger.addEventListener('pointerup', function(e){ 6023 if (!pointerDown) return; 6024 pointerDown = false; 6025 e.preventDefault(); 6026 e.stopPropagation(); 6027 try{ if (e.stopImmediatePropagation) e.stopImmediatePropagation(); }catch(err){} 6028 const open = trigger.getAttribute('aria-expanded') === 'true'; 6029 if (open) closeDrop(); else openDrop(); 6030 setSuppress(800); 6031 }); 6032 6033 // keyboard Open/Close 6034 trigger.addEventListener('keydown', function(e){ 6035 if (e.key === 'Enter' || e.key === ' ') { 6036 e.preventDefault(); e.stopPropagation(); 6037 const open = trigger.getAttribute('aria-expanded') === 'true'; 6038 if (open) closeDrop(); else openDrop(); 6039 setSuppress(800); 6040 } 6041 }); 6042 6043 // capture-phase document click: respects suppressClose but do NOT swallow clicks inside the wrap 6044 function docCapture(e){ 6045 // if click is inside this wrap, ignore (let handlers run) 6046 if (wrap.contains(e.target)) return; 6047 6048 // if suppress active, swallow to avoid other global handlers running immediately after open 6049 if (suppressClose) { 6050 e.stopPropagation(); 6051 return; 6052 } 6053 6054 // otherwise close this dropup if click is outside 6055 closeDrop(); 6056 } 6057 document.addEventListener('click', docCapture, true); 6058 6059 // keep list scroll/touch from being treated as outside 6060 list.addEventListener('touchstart', function(e){ e.stopPropagation(); }, {passive:true}); 6061 list.addEventListener('pointerdown', function(e){ e.stopPropagation(); }, {passive:true}); 6062 6063 // sync radio changes (update label) 6064 radios.forEach(r => r.addEventListener('change', function(){ 6065 if (this.checked){ 6066 labelEl.textContent = labelTextFor(this); 6067 } 6068 })); 6069 6070 // ensure buy-buttons area remains correct width 6071 try { 6072 const buy = sticky.querySelector('buy-buttons, .buy-buttons, .product-sticky-bar__actions'); 6073 if (buy){ buy.style.flex = '1 1 auto'; const btn = buy.querySelector('button, .button'); if (btn) btn.style.width = '100%'; } 6074 } catch(e){} 6075 6076 // re-inject logic: if sticky is removed right after opening, try a quick reinject 6077 const parent = sticky.parentElement; 6078 if (parent){ 6079 const localObserver = new MutationObserver(muts => { 6080 for(const m of muts){
6081 for(const n of m.removedNodes){ 6082 if (n === sticky){ 6083 setTimeout(()=> { 6084 const s2 = $(`product-sticky-bar, .product-sticky-bar`); 6085 if (s2 && !s2.querySelector('.sticky-size-wrap')) buildAndInsert(s2); 6086 }, 120); 6087 } 6088 } 6089 } 6090 }); 6091 localObserver.observe(parent, { childList:true }); 6092 setTimeout(()=> localObserver.disconnect(), 6000); 6093 } 6094 6095 return true; 6096 } // end buildAndInsert 6097 6098 function injectOnce(){ 6099 const sticky = $(`product-sticky-bar, .product-sticky-bar`); 6100 if (!sticky){ 6101 // watch for it to appear 6102 const mo = new MutationObserver(()=> { 6103 const s = $(`product-sticky-bar, .product-sticky-bar`); 6104 if (s){ mo.disconnect(); setTimeout(()=> buildAndInsert(s), 100); } 6105 }); 6106 mo.observe(document.body, { childList:true, subtree:true }); 6107 return; 6108 } 6109 // remove any old then build 6110 const old = sticky.querySelector('.sticky-size-wrap'); 6111 if (old) old.remove(); 6112 buildAndInsert(sticky) || setTimeout(()=>{ const s2 = $(`product-sticky-bar, .product-sticky-bar`); if (s2) buildAndInsert(s2); }, 200); 6113 } 6114 6115 // initial call
6116 setTimeout(injectOnce, 120); 6117 6118 // observe body additions (re-renders) and try rebuilds when sticky reappears 6119 const globalMo = new MutationObserver(muts => { 6120 let saw = false; 6121 for (const m of muts){ 6122 for (const n of m.addedNodes){ 6123 if (!(n instanceof Element)) continue; 6124 if (n.matches && n.matches(`product-sticky-bar, .product-sticky-bar`) ) saw = true; 6125 if (n.querySelector && n.querySelector(`product-sticky-bar, .product-sticky-bar`)) saw = true; 6126 } 6127 if (saw) break; 6128 } 6129 if (saw) setTimeout(injectOnce, 160); 6130 }); 6131 globalMo.observe(document.body, { childList:true, subtree:true }); 6132 6133 // Additional fallback: rebuild on product:rerender directly 6134 document.addEventListener('product:rerender', function() { 6135 setTimeout(injectOnce, 250); 6136 }); 6137 6138})(); 6139</script>
6139 6140 6141 6142 6143<div id="SizeDrawerBackdrop" class="size-drawer-backdrop"></div><div id="ProductSizeDrawer" class="size-drawer-container" role="dialog" aria-label="Size Information" aria-hidden="true" tabindex="-1"><div class="size-drawer-header"> 6144 <h3> Size Guide 6145 </h3> 6146 <h3 class="size-drawer-title">QYNDA GIFT Card </h3> 6147 <button class="size-drawer-close-btn" js-close-size-drawer aria-label="Close"> 6148 <svg class="icon icon--close" width="16" height="16" viewBox="0 0 35 35"> 6149 <polygon points="34.56 2.56 32.44 .44 17.5 15.38 2.56 .44 .44 2.56 15.38 17.5 .44 32.44 2.56 34.56 17.5 19.62 32.44 34.56 34.56 32.44 19.62 17.5 34.56 2.56"></polygon> 6150 </svg> 6151 </button> 6152 </div><div class="size-drawer-body"><div class="size-drawer-tabs-wrapper"> 6153 <button class="size-tab-btn active-tab" data-target="cm">CM 6154</button> 6155 <button class="size-tab-btn inactive-tab" data-target="inch">INCHES 6156</button> 6157 <button class="size-tab-btn inactive-tab" data-target="intl">INTL 6158</button> 6159 </div> 6160 <div id="panel-cm" class="size-panel block"><p class="size-drawer-empty-msg">CM data not available. 6161</p></div> 6162 6163 <div id="panel-inch" class="size-panel hidden"><p class="size-drawer-empty-msg">Inch data not available. 6164</p></div> 6165 6166 <div id="panel-intl" class="size-panel hidden"><p class="size-drawer-empty-msg">International data not available. 6167</p></div> 6168 6169 </div> 6170</div> 6171 6172<style> 6173 .size-drawer-backdrop { 6174 position: fixed; 6175 inset: 0; 6176 background: rgba(0,0,0,0.5); 6177 z-index: 2147483646; 6178 opacity: 0; 6179 visibility: hidden; 6180 transition: opacity 0.3s ease; 6181 backdrop-filter: blur(2px); 6182 } 6183 .size-drawer-backdrop.is-open { 6184 opacity: 1; 6185 visibility: visible; 6186 } 6187 6188 .size-drawer-container { 6189 position: fixed; 6190 top: 0; 6191 right: -100%; 6192 width: 100%; 6193 max-width: 500px; 6194 height: 100vh; 6195 background: #ffffff; 6196 z-index: 2147483647; 6197 transition: right 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94); 6198 box-shadow: -5px 0 25px rgba(0,0,0,0.1); 6199 } 6200 .size-drawer-container.is-open { 6201 right: 0; 6202 } 6203 .size-drawer-header { 6204 padding: 10px 20px; 6205 border-bottom: 1px solid #eaeaea; 6206 display: flex; 6207 justify-content: space-between; 6208 align-items: center; 6209 } 6210 .size-drawer-title { 6211 margin: 0; 6212 font-size: 18px; 6213 font-weight: 600; 6214 } 6215 .size-drawer-close-btn { 6216 background: none; 6217 border: none; 6218 cursor: pointer; 6219 padding: 5px; 6220 display: flex;
6221 align-items: center; 6222 justify-content: center; 6223 margin-bottom: 0 !important; 6224 } 6225 6226.size-drawer-tabs-wrapper { 6227 display: flex; 6228 justify-content: center; 6229 align-items: center; 6230 gap: 12px; 6231 margin-bottom: 20px; 6232 } 6233 .size-drawer-body { 6234 padding: 20px; 6235 height: 100%; 6236 overflow-y: auto; 6237 padding-bottom: 50px; 6238 } 6239 6240 .size-drawer-empty-msg { 6241 color: #666; 6242 text-align: center; 6243 margin-top: 20px; 6244 font-size: 14px; 6245 } 6246 6247 /* --- Tab Logic & Styling --- */ 6248 .size-panel.hidden { display: none !important; } 6249 .size-panel.block { display: block !important; } 6250 6251.size-tab-btn { 6252 font-size: 14px; 6253 font-weight: 700; 6254 letter-spacing: 0.5px; 6255 padding: 10px 24px !important; 6256 cursor: pointer; 6257 text-transform: uppercase; 6258 transition: all 0.2s ease; 6259 text-align: center; 6260 min-width: 90px; 6261 } 6262.size-tab-btn.active-tab { 6263 background-color: #4f0030 !important; 6264 color: #ffffff !important; 6265 border: 2px solid #4f0030 !important; 6266 box-shadow: inset 0 0 0 2px #ffffff !important; 6267 } 6268.size-tab-btn.inactive-tab { 6269 background-color: #ffffff !important; 6270 color: #4a5568 !important; 6271 border: 1px solid #cbd5e1 !important; 6272 box-shadow: 0 2px 4px rgba(0,0,0,0.05) !important; /* Slight drop shadow */ 6273 } 6274 6275 6276 /* --- Rendered Table Styling --- */ 6277.custom-size-content { 6278 padding-bottom: 50px; 6279} 6280 .custom-size-content table { 6281 width: 100% !important; 6282 border-collapse: collapse; 6283 margin-bottom: 20px; 6284 text-align: center; 6285 font-size: 13px; 6286 } 6287 .custom-size-content th, .custom-size-content td { 6288 padding: 12px 8px; 6289 border: 1px solid #eaeaea; 6290 } 6291 .custom-size-content img { 6292 max-width: 100%; 6293 height: auto; 6294 margin: 0px auto; 6295 display: block; 6296 } 6297 .custom-size-content p { 6298 margin-bottom: 10px; 6299 line-height: 1.5; 6300 font-size: 14px; 6301 text-align: left; 6302 } 6303 .custom-size-content th, .custom-size-content td { 6304 padding: 10px 14px !important; 6305 border: 1px solid #eaeaea !important; 6306 white-space: nowrap !important; 6307 overflow: visible !important; 6308 } 6309 .custom-size-content th { 6310 font-weight: 700 !important; 6311 font-size: 14px !important; 6312 background-color: #fafafa !important; 6313 color: black !important; 6314 letter-spacing: 0.5px !important; 6315 text-align: center !important; 6316 vertical-align: middle !important; 6317 } 6318 .custom-size-content td:first-child { 6319 font-weight: 600 !important; 6320 } 6321 #ProductSizeDrawer .custom-size-content th, 6322 #ProductSizeDrawer .custom-size-content th * { 6323 background-color: #fafafa !important; 6324 color: #000000 !important; 6325 -webkit-text-fill-color: #000000 !important; 6326 opacity: 1 !important; 6327 } 6328 @media screen and (max-width: 600px) { 6329 .custom-size-content th { 6330 font-size: 12px !important; 6331 } 6332 .size-drawer-title { 6333 font-size: 16px; 6334} 6335.custom-size-content > :nth-child(1) { 6336 display: flex; 6337 flex-direction: column; 6338 justify-content: center; 6339 align-items: center; 6340} 6341 .custom-size-content table { 6342 width: 90% !important; 6343 } 6344.custom-size-content th, .custom-size-content td { 6345 padding: 5px 10px !important; 6346 font-size: 13.5px; 6347} 6348.size-drawer-tabs-wrapper { 6349 display: flex; 6350 justify-content: center; 6351 align-items: center; 6352 gap: 14px; 6353 padding-right: 0; 6354} 6355#panel-intl th, 6356#panel-intl td { 6357 padding: 5px 20px !important; 6358} 6359.custom-size-content table { 6360 width: 90% !important; 6361 border-collapse: collapse !important; 6362 margin: 0 auto 20px auto !important; 6363 text-align: center !important; 6364 font-size: 13px !important; 6365} 6366.custom-size-content img { 6367 max-width: 90%; 6368} 6369.custom-size-content td:first-child { 6370 font-size: 12px; 6371} 6372} 6373 6374 6375 6376.table-wrapper-fix { 6377 width: 100%; 6378 overflow-x: auto; 6379 margin-bottom: 25px; 6380 -webkit-overflow-scrolling: touch; 6381} 6382 6383.table-wrapper-fix::-webkit-scrollbar { 6384 height: 8px; 6385} 6386 6387.table-wrapper-fix::-webkit-scrollbar-track { 6388 background: #f7f4f4 !important; 6389 border-radius: 10px; 6390 margin: 0 5px; 6391 border: 1px solid #e8e6e6; 6392} 6393 6394.table-wrapper-fix::-webkit-scrollbar-thumb { 6395 background: #c7c6c6 !important; 6396 border-radius: 10px; 6397 min-width: 40px; 6398} 6399 6400</style> 6401
6402<script> 6403(function() { 6404 // 1. Drawer Open/Close Logic 6405 function openDrawer() { 6406 const drawer = document.getElementById('ProductSizeDrawer'); 6407 const backdrop = document.getElementById('SizeDrawerBackdrop'); 6408 if (drawer && backdrop) { 6409 drawer.classList.add('is-open'); 6410 backdrop.classList.add('is-open'); 6411 document.body.style.overflow = 'hidden'; 6412 } 6413 } 6414 6415 function closeDrawer() { 6416 const drawer = document.getElementById('ProductSizeDrawer'); 6417 const backdrop = document.getElementById('SizeDrawerBackdrop'); 6418 if (drawer && backdrop) { 6419 drawer.classList.remove('is-open'); 6420 backdrop.classList.remove('is-open'); 6421 document.body.style.overflow = ''; 6422 } 6423 } 6424 6425 // Use a global flag to ensure we only attach the listener once per page 6426 if (!window.sizeDrawerInitialized) { 6427 document.addEventListener('click', (e) => { 6428 const openBtn = e.target.closest('[js-open-size-drawer]'); 6429 const closeBtn = e.target.closest('[js-close-size-drawer]'); 6430 const backdrop = document.getElementById('SizeDrawerBackdrop'); 6431 6432 if (openBtn) { 6433 e.preventDefault(); 6434 openDrawer(); 6435 } else if (closeBtn || e.target === backdrop) { 6436 e.preventDefault(); 6437 closeDrawer(); 6438 } 6439 6440 // Tab Switching Logic (Event Delegation) 6441 const tabBtn = e.target.closest('.size-tab-btn'); 6442 if (tabBtn) { 6443 e.preventDefault(); 6444 const container = tabBtn.closest('.size-drawer-container'); 6445 if (!container) return; 6446 6447 // Reset tabs in this container 6448 container.querySelectorAll('.size-tab-btn').forEach(b => { 6449 b.classList.remove('active-tab'); 6450 b.classList.add('inactive-tab'); 6451 }); 6452 // Activate clicked tab 6453 tabBtn.classList.remove('inactive-tab'); 6454 tabBtn.classList.add('active-tab'); 6455 6456 // Hide all panels 6457 container.querySelectorAll('.size-panel').forEach(p => { 6458 p.classList.remove('block'); 6459 p.classList.add('hidden'); 6460 }); 6461 6462 // Show target panel 6463 const targetId = 'panel-' + tabBtn.dataset.target; 6464 const panel = container.querySelector('#' + targetId); 6465 if (panel) { 6466 panel.classList.remove('hidden'); 6467 panel.classList.add('block'); 6468 } 6469 } 6470 }); 6471 6472 window.sizeDrawerInitialized = true; 6473 } 6474 6475 // Add a visual hint if the table is wide 6476 // This needs to run whenever the drawer is rendered or opened 6477 function wrapTables() { 6478 document.querySelectorAll('.custom-size-content table').forEach(table => { 6479 if (!table.parentElement.classList.contains('table-wrapper-fix')) { 6480 table.outerHTML = '<div class="table-wrapper-fix">' + table.outerHTML + '</div>'; 6481 } 6482 }); 6483 } 6484 6485 wrapTables(); 6486})(); 6487</script>
6487 6488 6489 6490 6491
6492<script> 6493 (function() { 6494 // 1. INJECT CSS 6495 const css = ` 6496 /* The Loading State */ 6497 .custom-loader-active { 6498 position: relative !important; 6499 color: transparent !important; 6500 pointer-events: none !important; 6501 } 6502 6503 /* The Spinner */ 6504 .custom-loader-active::after { 6505 content: ""; 6506 position: absolute; 6507 left: 50%; 6508 top: 50%; 6509 width: 20px; 6510 height: 20px; 6511 margin-left: -10px; /* Exact center offset */ 6512 margin-top: -10px; /* Exact center offset */ 6513 border: 2px solid #fff; 6514 border-top-color: transparent; 6515 border-radius: 50%; 6516 animation: custom-spin 0.6s linear infinite; 6517 z-index: 10; 6518 } 6519 6520 @keyframes custom-spin { 6521 to { transform: rotate(360deg); } 6522 } 6523 `; 6524 6525 if (!document.getElementById('custom-atc-loader-css')) { 6526 const style = document.createElement('style'); 6527 style.id = 'custom-atc-loader-css'; 6528 style.textContent = css; 6529 document.head.appendChild(style); 6530 } 6531 6532 // 2. UNIVERSAL EVENT LISTENER 6533 window.addEventListener('click', function(e) { 6534 6535 // A. Find the clicked submit button 6536 const btn = e.target.closest('button[type="submit"]'); 6537 if (!btn) return; 6538 6539 // B. Find the form associated with this button 6540 let form = btn.closest('form'); 6541 6542 // If not inside a form, check if it's linked via 'form' attribute (Sticky Bar Logic) 6543 if (!form && btn.hasAttribute('form')) { 6544 form = document.getElementById(btn.getAttribute('form')); 6545 } 6546 6547 // C. Verify it is an Add to Cart form 6548 if (form && form.action && form.action.includes('/cart/add')) { 6549 6550 // Prevent double loading 6551 if (btn.classList.contains('custom-loader-active')) return; 6552 6553 // Apply loading style 6554 btn.classList.add('custom-loader-active'); 6555 6556 // Failsafe: Remove spinner after 4 seconds 6557 setTimeout(() => { 6558 btn.classList.remove('custom-loader-active'); 6559 }, 4000); 6560 } 6561 6562 }, { capture: true }); // Capture ensures we run before theme scripts 6563 6564 })(); 6565</script>
6565 6566 6567 6568
6569<script> 6570 (function() { 6571 let lock = false, timer; 6572 const isTarget = el => lock && /MODAL|DRAWER/.test(el.tagName); 6573 document.addEventListener('pointerdown', e => { 6574 if (e.target.closest?.('quick-buy-modal, .quick-buy-modal') && e.target.closest?.('variant-picker, .variant-picker__option-values')) { 6575 lock = true; 6576 clearTimeout(timer); 6577 timer = setTimeout(() => lock = false, 1500); 6578 } 6579 }, { capture: true }); 6580 const ogClose = HTMLElement.prototype.close; 6581 if (ogClose) { 6582 HTMLElement.prototype.close = function() { 6583 if (!isTarget(this)) return ogClose.apply(this, arguments); 6584 }; 6585 } 6586 const ogRemove = Element.prototype.removeAttribute; 6587 Element.prototype.removeAttribute = function(attr) { 6588 if (!(attr === 'open' && isTarget(this))) return ogRemove.apply(this, arguments); 6589 }; 6590 const blockTouch = e => e.target.closest?.('variant-picker') && e.target.closest?.('quick-buy-modal') && e.stopPropagation(); 6591 ['touchmove', 'touchend'].forEach(evt => document.addEventListener(evt, blockTouch, { capture: true, passive: true })); 6592 })(); 6593</script>
6593 6594 6595 6596<style> #shopify-section-template--26542184333585__main .qy-wall-wrapper {display: none;} </style></section>
6597<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script>
6597<!-- BEGIN sections: footer-group --> 6598<footer id="shopify-section-sections--25613585252625__footer" class="shopify-section shopify-section-group-footer-group shopify-section--footer"><style> 6599 #shopify-section-sections--25613585252625__footer { 6600 --footer-content-justify-items: space-between; 6601 } 6602</style><div class="footer color-scheme color-scheme--scheme-c633763a-c3d1-4cb2-9a72-ca6a049f8979 color-scheme--bg-98d30b40cffc6df00173335fbb8abe84 "> 6603 <div class="container"> 6604 <div class="footer__inner"><div class="footer__block-list"><div class="footer__block footer__block--newsletter" ><div class="v-stack gap-4 sm:gap-5"><img src="//qynda.com/cdn/shop/files/Untitled-3_420x_e5c769ad-8b1b-4b7c-a3ae-2e333fdfa6ce.webp?v=1743804921" alt="Brand Logo"><p class="h6">Proactive Femininity</p><div class="prose text-subdued"><p>Subscribe To our newsletter</p></div><form method="post" action="/contact#newsletter-form-sections--25613585252625__footer" id="newsletter-form-sections--25613585252625__footer" accept-charset="UTF-8" class="form"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="contact[tags]" value="newsletter"><div class="form-control" ><input id="input--sections--25613585252625__footer--contactemail" class="input" type="email" dir="ltr" name="contact[email]" placeholder="E-mail" 6605 6606 6607 6608 6609 6610 autocomplete="email" 6611 6612 enterkeyhint="send" 6613 required 6614 6615 6616 6617><label for="input--sections--25613585252625__footer--contactemail" class="floating-label text-xs">E-mail</label></div><div class="align-self-start"> 6618<button type="submit" class="button" >Subscribe</button></div></form></div></div><div class="footer__block footer__block--links" ><div class="v-stack gap-4 sm:gap-5"><p class="h6">Quick Links</p><ul class="v-stack gap-2.5 unstyled-list" role="list"><li> 6619 <a href="/pages/faq" class="link-faded">FAQs</a> 6620 </li><li> 6621 <a href="/pages/shipping-policy" class="link-faded">Shipping and Delivery</a> 6622 </li><li> 6623 <a href="/pages/return-refund-policy" class="link-faded">Refund Policy</a> 6624 </li><li> 6625 <a href="/pages/about-us" class="link-faded">About Us</a> 6626 </li><li> 6627 <a href="/pages/contact" class="link-faded">Contact Us</a> 6628 </li><li> 6629 <a href="/pages/press" class="link-faded">Press</a> 6630 </li><li> 6631 <a href="/blogs/news" class="link-faded">Blog</a> 6632 </li><li> 6633 <a href="/pages/media-kit" class="link-faded">Media Kit</a> 6634 </li><li> 6635 <a href="/policies/privacy-policy" class="link-faded">Privacy Policy </a> 6636 </li></ul> 6637 </div></div><div class="footer__block footer__block--links" ><div class="v-stack gap-4 sm:gap-5"><p class="h6">QYNDA</p><ul class="v-stack gap-2.5 unstyled-list" role="list"><li> 6638 <a href="/pages/beauty-in-modesty" class="link-faded">Beauty in Modesty</a> 6639 </li><li> 6640 <a href="/pages/inner-strength" class="link-faded">Inner Strength</a> 6641 </li><li> 6642 <a href="/pages/culture-influence" class="link-faded">Culture Influence</a> 6643 </li><li> 6644 <a href="/pages/our-story" class="link-faded">Our Story</a> 6645 </li><li> 6646 <a href="/pages/qynda-crash-policy" class="link-faded">Crash Policy</a> 6647 </li><li> 6648 <a href="/pages/affiliate-program" class="link-faded">Become an Affiliate</a> 6649 </li><li> 6650 <a href="/pages/terms-of-service" class="link-faded">Terms of Service</a> 6651 </li><li> 6652 <a href="/pages/return-and-exchange" class="link-faded">Return & Exchange</a> 6653 </li></ul> 6654 </div></div></div><div class="footerBottom"> 6655 <div class="footer__aside"><!--p class="heading text-subdued text-xxs">© 2026 - QYNDA <a target="_blank" rel="nofollow" href="https://www.shopify.com?utm_campaign=p
6655oweredby&utm_medium=shopify&utm_source=onlinestore">Powered by Shopify</a></p--> 6656<p class="heading text-subdued text-xxs">© 2026 - QYNDA . All Rights Reserved. Privacy Policy. Terms and conditions</p></div><ul class="social-media social-media--list unstyled-list" role="list"><li class="social-media__item branding-colors--facebook"> 6657 <a href="https://www.facebook.com/qyndaofficial" class="tap-area" target="_blank" rel="nofollow" aria-label="Follow on Facebook"><svg aria-hidden="true" focusable="false" width="24" class="icon icon-facebook" viewBox="0 0 24 24"> 6658 <path fill-rule="evenodd" clip-rule="evenodd" d="M10.183 21.85v-8.868H7.2V9.526h2.983V6.982a4.17 4.17 0 0 1 4.44-4.572 22.33 22.33 0 0 1 2.667.144v3.084h-1.83a1.44 1.44 0 0 0-1.713 1.68v2.208h3.423l-.447 3.456h-2.97v8.868h-3.57Z" fill="currentColor"/> 6659 </svg></a> 6660 </li><li class="social-media__item branding-colors--twitter"> 6661 <a href="https://twitter.com/qyndaofficial" class="tap-area" target="_blank" rel="nofollow" aria-label="Follow on Twitter"><svg aria-hidden="true" focusable="false" width="24" class="icon icon-twitter" viewBox="0 0 24 24"> 6662 <path d="M16.94 4h2.715l-5.93 6.777L20.7 20h-5.462l-4.278-5.593L6.065 20H3.35l6.342-7.25L3 4h5.6l3.868 5.113L16.94 4Zm-.952 14.375h1.504L7.784 5.54H6.17l9.818 12.836Z" fill="currentColor"/> 6663 </svg></a> 6664 </li><li class="social-media__item branding-colors--instagram"> 6665 <a href="https://www.instagram.com/qyndaofficial" class="tap-area" target="_blank" rel="nofollow" aria-label="Follow on Instagram"><svg aria-hidden="true" focusable="false" width="24" class="icon icon-instagram" viewBox="0 0 24 24"> 6666 <path fill-rule="evenodd" clip-rule="evenodd" d="M12 2.4c-2.607 0-2.934.011-3.958.058-1.022.046-1.72.209-2.33.446a4.705 4.705 0 0 0-1.7 1.107 4.706 4.706 0 0 0-1.108 1.7c-.237.611-.4 1.31-.446 2.331C2.41 9.066 2.4 9.392 2.4 12c0 2.607.011 2.934.058 3.958.046 1.022.209 1.72.446 2.33a4.706 4.706 0 0 0 1.107 1.7c.534.535 1.07.863 1.7 1.108.611.237 1.309.4 2.33.446 1.025.047 1.352.058 3.959.058s2.934-.011 3.958-.058c1.022-.046 1.72-.209 2.33-.446a4.706 4.706 0 0 0 1.7-1.107 4.706 4.706 0 0 0 1.108-1.7c.237-.611.4-1.31.446-2.33.047-1.025.058-1.352.058-3.959s-.011-2.934-.058-3.958c-.047-1.022-.209-1.72-.446-2.33a4.706 4.706 0 0 0-1.107-1.7 4.705 4.705 0 0 0-1.7-1.108c-.611-.237-1.31-.4-2.331-.446C14.934 2.41 14.608 2.4 12 2.4Zm0 1.73c2.563 0 2.867.01 3.88.056.935.042 1.443.199 1.782.33.448.174.768.382 1.104.718.336.336.544.656.718 1.104.131.338.287.847.33 1.783.046 1.012.056 1.316.056 3.879 0 2.563-.01 2.867-.056 3.88-.043.935-.199 1.444-.33 1.782a2.974 2.974 0 0 1-.719 1.104 2.974 2.974 0 0 1-1.103.718c-.339.131-.847.288-1.783.33-1.012.046-1.316.056-3.88.056-2.563 0-2.866-.01-3.878-.056-.936-.042-1.445-.199-1.783-.33a2.974 2.974 0 0 1-1.104-.718 2.974 2.974 0 0 1-.718-1.104c-.131-.338-.288-.847-.33-1.783-.047-1.012-.056-1.316-.056-3.879 0-2.563.01-2.867.056-3.88.042-.935.199-1.443.33-1.782.174-.448.382-.768.718-1.104a2.974 2.974 0 0 1 1.104-.718c.338-.131.847-.288 1.783-.33C9.133 4.14 9.437 4.13 12 4.13Zm0 11.07a3.2 3.2 0 1 1 0-6.4 3.2 3.2 0 0 1 0 6.4Zm0-8.13a4.93 4.93 0 1 0 0 9.86 4.93 4.93 0 0 0 0-9.86Zm6.276-.194a1.152 1.152 0 1 1-2.304 0 1.152 1.152 0 0 1 2.304 0Z" fill="currentColor"/> 6667 </svg></a> 6668 </li><li class="social-media__item branding-colors--pinterest"> 6669 <a href="https://www.pinterest.com/qyndaofficial/" class="tap-area" target="_blank" rel="nofollow" aria-label="Follow on Pinterest"><svg aria-hidden="true" focusable="false" width="24" class="icon icon-pinterest" viewBox="0 0 24 24"> 6670 <path fill-rule="evenodd" clip-rule="evenodd" d="M11.765 2.401c3.59-.054 5.837 1.4 6.895 3.95.349.842.722 2.39.442 3.675-.112.512-.144 1.048-.295 1.53-.308.983-.708 1.853-1.238 2.603-.72 1.02-1.81 1.706-3.182 2.052-1.212.305-2.328-.152-2.976-.643-.206-.156-.483-.36-.56-.643h-.029c-.046.515-.244 1.062-.383 1.531-.193.65-.23 1.321-.472 1.929a12.345 12.345 0 0 1-.942 1.868c-.184.302-.692 1.335-1.061 1.347-.04-.078-.057-.108-.06-.245-.118-.19-.035-.508-.087-.766-.082-.4-.145-1.123-.06-1.53v-.643c.096-.442.092-.894.207-1.317.25-.92.39-1.895.648-2.848.249-.915.477-1.9
667016.678-2.847.045-.21-.21-.815-.265-1.041-.174-.713-.042-1.7.176-2.236.275-.674 1.08-1.703 2.122-1.439.838.212 1.371 1.118 1.09 2.266-.295 1.205-.677 2.284-.943 3.49-.068.311.05.641.118.827.248.672 1 1.324 2.004 1.072 1.52-.383 2.193-1.76 2.652-3.246.124-.402.109-.781.206-1.225.204-.935.118-2.331-.177-3.061-.472-1.17-1.353-1.92-2.563-2.328L12.707 4.3c-.56-.128-1.626.064-2.004.183-1.69.535-2.737 1.427-3.388 3.032-.222.546-.344 1.1-.383 1.868l-.03.276c.13.686.144 1.14.413 1.653.132.252.447.451.5.765.032.185-.104.464-.147.613-.065.224-.041.48-.147.673-.192.349-.714.087-.943-.061-1.192-.77-2.175-2.995-1.62-5.144.085-.332.09-.62.206-.919.723-1.844 1.802-2.978 3.359-3.95.583-.364 1.37-.544 2.092-.734l1.149-.154Z" fill="currentColor"/> 6671 </svg></a> 6672 </li><li class="social-media__item branding-colors--youtube"> 6673 <a href="https://youtube.com/@Qynda" class="tap-area" target="_blank" rel="nofollow" aria-label="Follow on YouTube"><svg aria-hidden="true" focusable="false" width="24" class="icon icon-youtube" viewBox="0 0 24 24"> 6674 <path fill-rule="evenodd" clip-rule="evenodd" d="M20.44 5.243c.929.244 1.66.963 1.909 1.876.451 1.654.451 5.106.451 5.106s0 3.452-.451 5.106a2.681 2.681 0 0 1-1.91 1.876c-1.684.443-8.439.443-8.439.443s-6.754 0-8.439-.443a2.682 2.682 0 0 1-1.91-1.876c-.45-1.654-.45-5.106-.45-5.106s0-3.452.45-5.106a2.681 2.681 0 0 1 1.91-1.876c1.685-.443 8.44-.443 8.44-.443s6.754 0 8.438.443Zm-5.004 6.982L9.792 15.36V9.091l5.646 3.134Z" fill="currentColor"/> 6675 </svg></a> 6676 </li><li class="social-media__item branding-colors--tiktok"> 6677 <a href="https://www.tiktok.com/@qyndaofficial" class="tap-area" target="_blank" rel="nofollow" aria-label="Follow on TikTok"><svg aria-hidden="true" focusable="false" width="24" class="icon icon-tiktok" viewBox="0 0 24 24"> 6678 <path d="M20.027 10.168a5.125 5.125 0 0 1-4.76-2.294v7.893a5.833 5.833 0 1 1-5.834-5.834c.122 0 .241.011.361.019v2.874c-.12-.014-.237-.036-.36-.036a2.977 2.977 0 0 0 0 5.954c1.644 0 3.096-1.295 3.096-2.94L12.56 2.4h2.75a5.122 5.122 0 0 0 4.72 4.573v3.195" fill="currentColor"/> 6679 </svg></a> 6680 </li></ul></div> 6681 6682 </div> 6683 </div> 6684</div> 6685 6686</footer> 6687<!-- END sections: footer-group --></main>
6688<script> 6689function showWishlistToast(message) { 6690 const toast = document.getElementById('wishlist-toast'); 6691 toast.textContent = message; 6692 toast.classList.add('show'); 6693 setTimeout(() => { 6694 toast.classList.remove('show'); 6695 }, 2500); 6696 } 6697 6698document.addEventListener('DOMContentLoaded', function () { 6699 const container = document.getElementById('wishlist-products'); 6700 const clearButton = document.getElementById('clear-wishlist'); 6701 6702 6703 if (!container) return; 6704 function renderWishlist() { 6705 const wishlist = JSON.parse(localStorage.getItem('wishlist')) || []; 6706 6707 container.innerHTML = ''; 6708 if (wishlist.length === 0) { 6709 container.innerHTML = '<p>Your wishlist is empty.</p>'; 6710 clearButton.style.display = 'none'; 6711 return; 6712 } 6713 clearButton.style.display = 'inline-block'; 6714 wishlist.forEach(handle => { 6715 fetch(`/search?q=${handle}`) 6716 .then(response => response.text()) 6717 .then(html => { 6718 const parser = new DOMParser(); 6719 const doc = parser.parseFromString(html, 'text/html'); 6720 const productCards = doc.querySelectorAll('product-card'); 6721 productCards.forEach(card => { 6722 container.appendChild(card.cloneNode(true)); 6723 }); 6724 }) 6725 .catch(error => { 6726 console.error('Error fetching product cards:', error); 6727 }); 6728 }); 6729 6730 6731 } 6732 6733 // Initial render 6734 renderWishlist(); 6735 6736 // Clear wishlist 6737 clearButton.addEventListener('click', () => { 6738 6739 localStorage.removeItem('wishlist'); 6740 renderWishlist(); 6741 document.getElementById('wishlist-count').textContent = 0; 6742 // showWishlistToast('Wishlist cleared!'); 6743 6744 6745 }); 6746 6747 6748}); 6749document.addEventListener('DOMContentLoaded', function () { 6750 const countElement = document.getElementById('wishlist-count'); 6751 function bindWishlistButtons() { 6752 document.querySelectorAll('.wishlist-button').forEach(button => { 6753 button.addEventListener('click', function (e) { 6754 e.preventDefault(); 6755 const handle = this.dataset.productHandle; 6756 if (!handle) return; 6757 let wishlist = JSON.parse(localStorage.getItem('wishlist')) || []; 6758 6759 const index = wishlist.indexOf(handle); 6760 6761 if (index === -1) { 6762 wishlist.push(handle); 6763 localStorage.setItem('wishlist', JSON.stringify(wishlist)); 6764 this.classList.add('active'); 6765 // showWishlistToast('Added to wishlist!'); 6766 } else { 6767 wishlist.splice(index, 1); 6768 localStorage.setItem('wishlist', JSON.stringify(wishlist)); 6769 this.classList.remove('active'); 6770 // showWishlistToast('Removed from wishlist!'); 6771 } 6772 if (countElement) { 6773 countElement.textContent = wishlist.length; 6774 } 6775 6776 6777 }); 6778 6779 // Auto-set active if already in wishlist 6780 const currentHandle = button.dataset.productHandle; 6781 const wishlist = JSON.parse(localStorage.getItem('wishlist')) || []; 6782 if (wishlist.includes(currentHandle)) { 6783 button.classList.add('active'); 6784 } 6785 }); 6786 } 6787 bindWishlistButtons(); 6788 6789 function updateWishlistCount(){ 6790 let wishlist = JSON.parse(localStorage.getItem('wishlist')) || []; 6791 if (countElement) { 6792 countElement.textContent = wishlist.length; 6793 } 6794 } 6795 updateWishlistCount(); 6796}); 6797</script>
6797<script> 6798 document.addEventListener('click', function (e) { 6799 if (window.innerWidth > 999) return; 6800 const swatch = e.target.closest('.color-swatch'); 6801 if (swatch) { 6802 const color = swatch.getAttribute('data-color').toLowerCase(); 6803 const videoButtons = document.querySelectorAll('button.product-gallery__thumbnail[data-media-type="video"]'); 6804 const videos = document.querySelectorAll('video-media video'); 6805 videos.forEach(video => { 6806 video.currentTime = 0; 6807 }); 6808 videoButtons.forEach(btn => { 6809 const img = btn.querySelector('img'); 6810 const alt = img?.getAttribute('alt')?.toLowerCase() || ''; 6811 if (alt.includes(`#color_${color}`)) { 6812 setTimeout(() => { 6813 const videoThumbnail = btn.querySelector('.object-contain'); 6814 if (videoThumbnail) { 6815 videoThumbnail.click(); 6816 } 6817 setTimeout(() => { 6818 const matchedVideo = document.querySelector(`video[aria-label="#color_${color}"]`); 6819 if (matchedVideo) { 6820 matchedVideo.currentTime = 0; 6821 matchedVideo.play(); 6822 } 6823 }, 1000); 6824 }, 200); 6825 } 6826 }); 6827 } 6828 }); 6829 // ===// 6830 window.addEventListener('DOMContentLoaded', function () { 6831 if (window.innerWidth < 1000) { 6832 const checkedInput = document.querySelector('input[type="radio"][data-option-position="1"]:checked'); 6833 if (checkedInput) { 6834 const colorSwatch = checkedInput.nextElementSibling; 6835 if (colorSwatch && colorSwatch.classList.contains('color-swatch')) { 6836 const color = colorSwatch.getAttribute('data-color').toLowerCase();; 6837 const videoButtons = document.querySelectorAll('button.product-gallery__thumbnail[data-media-type="video"]'); 6838 videoButtons.forEach(btn => { 6839 const img = btn.querySelector('img'); 6840 const alt = img?.getAttribute('alt')?.toLowerCase() || ''; 6841 if (alt.includes(`#color_${color}`)) { 6842 setTimeout(() => { 6843 const videoThumbnail = btn.querySelector('.object-contain'); 6844 if (videoThumbnail) { 6845 videoThumbnail.click(); 6846 } 6847 setTimeout(() => { 6848 const matchedVideo = document.querySelector(`video[aria-label="#color_${color}"]`); 6849 if (matchedVideo) { 6850 matchedVideo.currentTime = 0; 6851 matchedVideo.play(); 6852 } 6853 }, 1000); 6854 }, 200); 6855 } 6856 }); 6857 } 6858 } 6859 } 6860}); 6861</script>
6861 6862 6863 6864<style> 6865 6866li.discount-badge { 6867 background: rgb(79 0 48) !important; 6868} 6869 </style> 6870 6871
6871<script src="https://a.klaviyo.com/media/js/onsite/onsite.js"></script>
6871 6872
6872<script> 6873 var klaviyo = klaviyo || []; 6874 klaviyo.init({ 6875 account: "Skg2RQ", 6876 platform: "shopify" 6877 }); 6878 klaviyo.enable("backinstock",{ 6879 trigger: { 6880 product_page_text: "Notify Me When Available", 6881 product_page_class: "button", 6882 product_page_text_align: "center", 6883 product_page_margin: "0px", 6884 replace_anchor: false 6885 }, 6886 modal: { 6887 headline: "{product_name}", 6888 body_content: "Register to receive a notification when this item comes back in stock.", 6889 email_field_label: "Email", 6890 button_label: "Notify me when available", 6891 subscription_success_label: "You're in! We'll let you know when it's back.", 6892 footer_content: '', 6893 additional_styles: "@import url('https://fonts.googleapis.com/css?family=Helvetica+Neue');", 6894 drop_background_color: "#000", 6895 background_color: "#fff", 6896 text_color: "#222", 6897 button_text_color: "#fff", 6898 button_background_color: "#4f0030", 6899 close_button_color: "#ccc", 6900 error_background_color: "#fcd6d7", 6901 error_text_color: "#C72E2F", 6902 success_background_color: "#4f0030", 6903 font_family: "Wallop", 6904 success_text_color: "#fff" 6905 } 6906 }); 6907 </script>
6907 6908
6908<script src="//qynda.com/cdn/shop/t/116/assets/currency-switcher.js?v=150734420620663120641786449205" defer="defer"></script>
6908 6909 6910 6911 6912 6913 <div id="shopify-block-AVElYbHJnemxjbVVrN__10840395464443086010" class="shopify-block shopify-app-block"> 6914 6915
6916<script> 6917 console.log("[Alia app extension] v1.0.5"); 6918 6919 const BACKEND_URL = "https://backend.alia-prod.com"; 6920 6921 window.ALIA_SHOPIFY_EXTENSION_INFO = { 6922 customerID: "", 6923 country: "US", 6924 market: "0b7f4384-4c91-456d-a4cb-a6e67bd71956", 6925 language: "en" 6926 } 6927 6928 if (document.readyState !== "loading") { 6929 initAlia(); 6930 } else { 6931 document.addEventListener("DOMContentLoaded", () => initAlia(), { once: true }); 6932 } 6933 6934 async function initAlia() { 6935 const url = BACKEND_URL + "/public/launcher.js?shopifyUrl=qynda.myshopify.com"; 6936 const script = document.createElement("script"); 6937 script.src = url; 6938 script.async = true; 6939 document.head.appendChild(script); 6940 } 6941</script>
6941 6942 6943</div><div id="shopify-block-AaW53NVNIM3V6M3RCV__15393088698543645836" class="shopify-block shopify-app-block"> 6944 6945 6946<!-- BEGIN app snippet: vite-tag --> 6947 6948 6949
6949<script src="https://cdn.shopify.com/extensions/01a10bd8-dbcc-7d26-83bc-10565ea1ad97/essential-pre-order-presale-3668/assets/app-embed-BtHdBRKq.js" type="module" crossorigin="anonymous"></script>
6949 6950 <link rel="modulepreload" href="https://cdn.shopify.com/extensions/01a10bd8-dbcc-7d26-83bc-10565ea1ad97/essential-pre-order-presale-3668/assets/product-TypXe4rG.js" crossorigin="anonymous"> 6951 <link href="//cdn.shopify.com/extensions/01a10bd8-dbcc-7d26-83bc-10565ea1ad97/essential-pre-order-presale-3668/assets/product-CUhRl9qs.css" rel="stylesheet" type="text/css" media="all" /> 6952 <link rel="modulepreload" href="https://cdn.shopify.com/extensions/01a10bd8-dbcc-7d26-83bc-10565ea1ad97/essential-pre-order-presale-3668/assets/browse-C3QYL-lG.js" crossorigin="anonymous"> 6953 <link href="//cdn.shopify.com/extensions/01a10bd8-dbcc-7d26-83bc-10565ea1ad97/essential-pre-order-presale-3668/assets/app-embed-BQKD--QH.css" rel="stylesheet" type="text/css" media="all" /> 6954 6955<!-- END app snippet --> 6956 6957 6958 6959 6960 6961 6962 6963 6964 6965 6966 6967 6968
6969<script> 6970 window.essentialPreorderConfigs = { 6971 addToCartTexts: [ 6972 window.variantStrings?.addToCart, 6973 window.variantStrings?.soldOut, 6974 window.theme?.strings?.addToCart, 6975 window.theme?.strings?.soldOut, 6976 window.theme?.variantStrings?.addToCart, 6977 window.theme?.variantStrings?.soldOut, 6978 window.MinimogStrings?.addToCart, 6979 window.MinimogStrings?.soldOut, 6980 window.themeVariables?.strings?.productFormAddToCart, 6981 window.themeVariables?.strings?.productFormSoldOut, 6982 "Add to cart", 6983 "Sold out" 6984 ].filter(Boolean), 6985 selectedOrFirstAvailableVariantId: "54370783428881", 6986 permanentDomain: "qynda.myshopify.com", 6987 selectedLocale: "en", 6988 selectedCountry: "US", 6989 selectedMarketId: "50716344593", 6990 } 6991</script>
6991 6992 6993<essential-preorder-app-embed 6994 customer-email="" 6995 customer-phone="" 6996 cart="{"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"USD","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0}" 6997 cart-inventory-quantity-by-variant-id="{}" 6998 product="{"id":11184018325777,"title":"QYNDA GIFT Card","handle":"qynda-gift-card","description":"\u003cp\u003eGive the gift of choice with a QYNDA Digital Gift Card. Whether it's for a birthday, celebration, thank you, or just because, let them discover something they'll truly love from our curated collection.\u003c\/p\u003e\n\u003cp\u003eYour digital gift card will be delivered via email within a few hours of purchase. Simply forward the email to your recipient or print it for a personal touch.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eDelivered by email within a few hours\u003c\/li\u003e\n\u003cli\u003eRedeemable online at QYNDA\u003c\/li\u003e\n\u003cli\u003eNo expiration date\u003c\/li\u003e\n\u003cli\u003eAvailable in multiple options\u003c\/li\u003e\n\u003c\/ul\u003e","published_at":"2026-08-20T11:15:53+03:00","created_at":"2026-08-20T10:46:43+03:00","vendor":"QYNDA","type":"","tags":[],"price":10000,"price_min":10000,"price_max":30000,"available":true,"price_varies":true,"compare_at_price":null,"compare_at_price_min":0,"compare_at_price_max":0,"compare_at_price_varies":false,"variants":[{"id":54370783428881,"title":"$100","option1":"$100","option2":null,"option3":null,"sku":null,"requires_shipping":false,"taxable":false,"featured_image":null,"available":true,"name":"QYNDA GIFT Card - $100","public_title":"$100","options":["$100"],"price":10000,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":54370507161873,"title":"$150","option1":"$150","option2":null,"option3":null,"sku":null,"requires_shipping":false,"taxable":false,"featured_image":null,"available":true,"name":"QYNDA GIFT Card - $150","public_title":"$150","options":["$150"],"price":15000,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":54370507194641,"title":"$200","option1":"$200","option2":null,"option3":null,"sku":null,"requires_shipping":false,"taxable":false,"featured_image":null,"available":true,"name":"QYNDA GIFT Card - $200","public_title":"$200","options":["$200"],"price":20000,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":54370507227409,"title":"$250","option1":"$250","option2":null,"option3":null,"sku":null,"requires_shipping":false,"taxable":false,"featured_image":null,"available":true,"name":"QYNDA GIFT Card - $250","public_title":"$250","options":["$250"],"price":25000,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}},{"id":54392469586193,"title":"$300","option1":"$300","option2":null,"option3":null,"sku":null,"requires_shipping":false,"taxable":false,"featured_image":null,"available":true,"name":"QYNDA GIFT Card - $300","public_title":"$300","options":["$300"],"price":30000,"weight":0,"compare_at_price":null,"inventory_management":null,"barcode":null,"requires_selling_plan":false,"selling_plan_allocations":[],"quantity_rule":{"min":1,"max":null,"increment":1}}],"images":["\/\/qynda.com\/cdn\/shop\/files\/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353"],"featured_image":"\/\/qynda.com\/cdn\/shop\/files\/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353","options":["Select Gift Card Value"],"media":[{"alt":null,"id":44967510540561,"position":1,"preview_image":{"aspect_ratio":1.0,"height":1200,"width":1200,"src":"\/\/qynda.com\/cdn\/shop\/files\/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353"},"aspect_ratio":1.0,"height":1200,"media_type":"image","src":"\/\/qynda.com\/cdn\/shop\/files\/Qynda-Digital-Gift-Card-Design-02_jpg.jpg?v=1787564353","width":1200}],"requires_selling_plan":false,"selling_plan_groups":[],"content":"\u003cp\u003eGive the gift of choice with a QYNDA Digital Gift Card. Whether it's for a birthday, celebration, thank you, or just because, let them discover something they'll truly love from our curated collection.\u003c\/p\u003e\n\u003cp\u003eYour digital gift card will be delivered via email within a few hours of purchase. Simply forward the email to your recipient or print it for a personal touch.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003eDelivered by email within a few hours\u003c\/li\u003e\n\u003cli\u003eRedeemable online at QYNDA\u003c\/li\u003e\n\u003cli\u003eNo expiration date\u003c\/li\u003e\n\u003cli\u003eAvailable in multiple options\u003c\/li\u003e\n\u003c\/ul\u003e"}" 6999 preorder-app-data="{"preorderCampaigns":[],"preorderDisplay":{"featuredProductsEnabled":true,"listEnabled":true,"quickViewEnabled":true,"discountEnabled":true},"publicAccessToken":"c2d47db2960597785e5e94edee953714","isStaging":false}" 7000 preorder-app-data-back-in-stock="{"backInStockCampaigns":[],"bisDisplay":{"featuredProductsEnabled":false,"listEnabled":false,"quickViewEnabled":false}}" 7001 preorder-app-data-inventory-quantity-limits="[]" 7002 preorder-app-data-market-quantity="null" 7003 preorder-app-data-app-settings="{"paidFeatures":{"isCustomizeEmailDisabled":false,"isTranslationsDisabled":false,"isButtonInQuickAddModalDisabled":false,"isPreorderConfirmationEmailDisabled":false}}" 7004 product-collections="[]" 7005 inventory-quantity-by-variant-id="{ "54370783428881": 0, "54370507161873": -1, "54370507194641": 0, "54370507227409": 0, "54392469586193": 0}" 7006 money-format-by-settings="<span class=money>${{amount}}</span>" 7007 money-format="<span class=money>${{amount}}</span>" 7008 template="product.gift-card" 7009></essential-preorder-app-embed> 7010 7011 7012 7013</div><div id="shopify-block-ARjVicGFWZlR2eEcxc__8208493610395315515" class="shopify-block shopify-app-block"><div></div> 7014 7015 7016</div><div id="shopify-block-AK2cvU1YxM2RudVVoa__17368511000352060744" class="shopify-block shopify-app-block">
7016<script type="text/javascript"> 7017 window.gfp_customer = { 7018 id: "", 7019 email: "", 7020 first_name: "", 7021 last_name: "" 7022 } 7023 function gfpLoadWidgets() { 7024 if (!document.querySelector('script[src="https://widgets.goaffpro.app/main.js"]')) { 7025 var s = document.createElement('script'); 7026 s.type = 'module'; 7027 s.src = 'https://widgets.goaffpro.app/main.js'; 7028 document.head.appendChild(s); 7029 } 7030 } 7031</script>
7031 7032 7033
7033<script type="text/javascript" async="true" src="/a/goaffpro/loader.js"></script>
7033 7034 7035 7036 7037 7038 7039 7040 7041 7042</div>
7042<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
7042 7043</body> 7044</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.