<!doctype html>
<html class="no-js" lang="en">
  <head>
<meta name="google-site-verification" content="FBZtnK84IUS-ZK6uEslaMoNQKe8b-IeROSg91ctgDJY" />
    <meta charset="utf-8">
  

 <!-- default to true --><!-- pageTitleTemplate: %% page_title %% -->
  <!-- pageTitleToParse": Playthings Miami – Adult Toys, Costumes &amp; Bedroom Essentials -->
  <!-- pageTitleTruncateApplicable: true -->

  <!-- pluginseo_pageTitleTemplateApplyToAll: true -->
  <!-- pageTitleTruncateApplicable: true --><!-- Custom page title: Yes --><title>Playthings Miami – Adult Toys, Costumes &amp; Bedroom Essentials</title> <!-- default to true --><!-- metaDescriptionTemplate: %% page_description %% -->
  <!-- metaDescriptionToParse": Explore Miami’s top destination for premium adult toys, sexy Halloween and fantasy costumes, bondage gear, and bedroom essentials. Playthings has everything you need to spice up your night—discreet, fun, and open late. -->
  <!-- metaDescriptionTruncateApplicable: true -->

  <!-- pluginseo_metaDescriptionTemplateApplyToAll: true -->
  <!-- metaDescriptionTruncateApplicable: true --><!-- Yes --><meta name="description" content="Explore Miami’s top destination for premium adult toys, sexy Halloween and fantasy costumes, bondage gear, and bedroom essentials. Playthings has everything you need to s" /><script data-desc="seo-organization" type="application/ld+json">
  {
    "@context": "http://schema.org",
    "@type": "Organization",
    "@id": "https://playthingsmiami.com#organization",
    "name": "Playthings",
    "url": "https://playthingsmiami.com","sameAs": ["facebook.com/theplaythingsmiami","instagram.com/playthingsmiami"]
  }
</script><script data-desc="seo-website" type="application/ld+json">
  {
    "@context": "http://schema.org",
    "@type": "WebSite",
    "name": "Playthings",
    "url": "https://playthingsmiami.com",
    "potentialAction": {
      "@type": "SearchAction",
      "target": "https://playthingsmiami.com/search?q={search_term_string}",
      "query-input": "required name=search_term_string"
    }
  }
</script><meta name="pluginseo" content="Plug in SEO Plus" data-ptf="s-te_df" data-mdf="s-te_df-tr" />

    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <meta name="theme-color" content="">
    <link rel="canonical" href="https://playthingsmiami.com/">
    <link rel="preconnect" href="https://cdn.shopify.com" crossorigin><link rel="icon" type="image/png" href="//playthingsmiami.com/cdn/shop/files/Playthings_Logo_4cb78610-d43f-4495-9167-513818428546.jpg?crop=center&height=32&v=1681824627&width=32"><link rel="preconnect" href="https://fonts.shopifycdn.com" crossorigin>

<meta property="og:site_name" content="Playthings">
<meta property="og:url" content="https://playthingsmiami.com/">
<meta property="og:title" content="Playthings Miami – Adult Toys, Costumes &amp; Bedroom Essentials">
<meta property="og:type" content="website">
<meta property="og:description" content="Explore Miami’s top destination for premium adult toys, sexy Halloween and fantasy costumes, bondage gear, and bedroom essentials. Playthings has everything you need to spice up your night—discreet, fun, and open late."><meta property="og:image" content="http://playthingsmiami.com/cdn/shop/files/Playthings_Logo.jpg?v=1676958330">
  <meta property="og:image:secure_url" content="https://playthingsmiami.com/cdn/shop/files/Playthings_Logo.jpg?v=1676958330">
  <meta property="og:image:width" content="2414">
  <meta property="og:image:height" content="3156"><meta name="twitter:site" content="@playthingsmiami"><meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Playthings Miami – Adult Toys, Costumes &amp; Bedroom Essentials">
<meta name="twitter:description" content="Explore Miami’s top destination for premium adult toys, sexy Halloween and fantasy costumes, bondage gear, and bedroom essentials. Playthings has everything you need to spice up your night—discreet, fun, and open late.">


    <script src="//playthingsmiami.com/cdn/shop/t/14/assets/constants.js?v=95358004781563950421680629357" defer="defer"></script>
    <script src="//playthingsmiami.com/cdn/shop/t/14/assets/pubsub.js?v=2921868252632587581680629357" defer="defer"></script>
    <script src="//playthingsmiami.com/cdn/shop/t/14/assets/global.js?v=127210358271191040921680629357" defer="defer"></script>
    <script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script><meta name="google-site-verification" content="FBZtnK84IUS-ZK6uEslaMoNQKe8b-IeROSg91ctgDJY">
<meta name="facebook-domain-verification" content="a1isb149sdgeizinueo00yqlwevho7">
<meta name="facebook-domain-verification" content="42q36cu02ebkxzc0lk0fjtk6qk3vkr">
<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/10110032/digital_wallets/dialog">
<meta name="shopify-checkout-api-token" content="17ee04f70986500d08cd59a8f675f999">
<meta id="in-context-paypal-metadata" data-shop-id="10110032" data-venmo-supported="true" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD">
<script async="async" src="/checkouts/internal/preloads.js?locale=en-US"></script>
<script id="shopify-features" type="application/json">{"accessToken":"17ee04f70986500d08cd59a8f675f999","betas":["rich-media-storefront-analytics"],"domain":"playthingsmiami.com","predictiveSearch":true,"shopId":10110032,"locale":"en"}</script>
<script>var Shopify = Shopify || {};
Shopify.shop = "playthingsmiami.myshopify.com";
Shopify.locale = "en";
Shopify.currency = {"active":"USD","rate":"1.0"};
Shopify.country = "US";
Shopify.theme = {"name":"Dawn","id":136995176664,"schema_name":"Dawn","schema_version":"9.0.0","theme_store_id":887,"role":"main"};
Shopify.theme.handle = "null";
Shopify.theme.style = {"id":null,"handle":null};
Shopify.cdnHost = "playthingsmiami.com/cdn";
Shopify.routes = Shopify.routes || {};
Shopify.routes.root = "/";
Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js";
Shopify.SignInWithShop = Shopify.SignInWithShop || {};
Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {};
Shopify.SignInWithShop.User.recognized = false;</script>
<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
<script>
  window.Shopify = window.Shopify || {};
  window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {};
  window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.01 };
  window.Shopify.SignInWithShop.eligible = true;
</script>
<script id="shop-js-analytics" type="application/json">{"pageType":"index"}</script>
<script defer="defer" async type="module" src="//playthingsmiami.com/cdn/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"></script>
<script type="module">
  await import("//playthingsmiami.com/cdn/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js");

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

</script>
<script>
  window.Shopify = window.Shopify || {};
  if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {};
  window.Shopify.featureAssets['shop-js'] = {"shop-toast-manager":["modules/v2/loader.shop-toast-manager.en.esm.js"],"shop-cash-offers":["modules/v2/loader.shop-cash-offers.en.esm.js"],"listener":["modules/v2/loader.listener.en.esm.js"],"shop-button":["modules/v2/loader.shop-button.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"],"init-fed-cm":["modules/v2/loader.init-fed-cm.en.esm.js"],"init-shop-email-lookup-coordinator":["modules/v2/loader.init-shop-email-lookup-coordinator.en.esm.js"],"avatar":["modules/v2/loader.avatar.en.esm.js"],"init-shop-cart-sync":["modules/v2/loader.init-shop-cart-sync.en.esm.js"],"shop-login-button":["modules/v2/loader.shop-login-button.en.esm.js"],"shop-user-recognition":["modules/v2/loader.shop-user-recognition.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"],"pay-button":["modules/v2/loader.pay-button.en.esm.js"],"init-shop-for-new-customer-accounts":["modules/v2/loader.init-shop-for-new-customer-accounts.en.esm.js"],"shop-cart-sync":["modules/v2/loader.shop-cart-sync.en.esm.js"],"init-customer-accounts":["modules/v2/loader.init-customer-accounts.en.esm.js"],"shop-login":["modules/v2/loader.shop-login.en.esm.js"],"shop-follow-button":["modules/v2/loader.shop-follow-button.en.esm.js"],"lead-capture":["modules/v2/loader.lead-capture.en.esm.js"],"payment-terms":["modules/v2/loader.payment-terms.en.esm.js"]};
</script>
<script>(function() {
  var isLoaded = false;
  function asyncLoad() {
    if (isLoaded) return;
    isLoaded = true;
    var urls = ["\/\/www.powr.io\/powr.js?powr-token=playthingsmiami.myshopify.com\u0026external-type=shopify\u0026shop=playthingsmiami.myshopify.com","https:\/\/chimpstatic.com\/mcjs-connected\/js\/users\/a68cc624b5cd966a127c459d4\/6776ca047262d59997c4cbb45.js?shop=playthingsmiami.myshopify.com","\/\/static.zotabox.com\/3\/1\/311ef46bd0e91247dd478eb4b47ab0a9\/widgets.js?shop=playthingsmiami.myshopify.com","https:\/\/chimpstatic.com\/mcjs-connected\/js\/users\/a68cc624b5cd966a127c459d4\/f276a68946e241ce3865a8c3d.js?shop=playthingsmiami.myshopify.com","\/\/cdn.shopify.com\/proxy\/9fccb4a7ebc923435b2c182814896c63fd560685541c4e984cd499aadbb6bb9d\/dev.giftkart.app\/scripts.js?shop=playthingsmiami.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA","https:\/\/a.mailmunch.co\/widgets\/site-1010436-dc0d83bc6b81409a353c18ecdbb575346bde4b3b.js?shop=playthingsmiami.myshopify.com","https:\/\/storage.googleapis.com\/pdf-uploader-v2.appspot.com\/playthingsmiami\/script\/script10_14_2022_15_47_38.js?shop=playthingsmiami.myshopify.com","https:\/\/configs.carthike.com\/instamenu.js?shop=playthingsmiami.myshopify.com","https:\/\/cdn.nfcube.com\/instafeed-737bf69ad77639ad08234e0383d54054.js?shop=playthingsmiami.myshopify.com","https:\/\/www.googletagmanager.com\/gtag\/js?id=AW-974991164\u0026shop=playthingsmiami.myshopify.com","https:\/\/oneclick-scripts.s3.eu-west-1.amazonaws.com\/playthingsmiami.myshopify.com-1-gtagSessionScript.js?shop=playthingsmiami.myshopify.com"];
    for (var i = 0; i < urls.length; i++) {
      var s = document.createElement('script');
      s.type = 'text/javascript';
      s.async = true;
      s.src = urls[i];
      var x = document.getElementsByTagName('script')[0];
      x.parentNode.insertBefore(s, x);
    }
  };
  if(window.attachEvent) {
    window.attachEvent('onload', asyncLoad);
  } else {
    window.addEventListener('load', asyncLoad, false);
  }
})();</script>
<script id="__st">var __st={"a":10110032,"offset":-14400,"reqid":"e71e15af-d7b7-49be-a204-c461dd7c70b3-1781090778","pageurl":"playthingsmiami.com\/index.css","u":"8e36a48740db","p":"home"};</script>
<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.2.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>
<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//playthingsmiami.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
<script id="shopify-origin-trials" async="async" integrity="sha256-MrpR+SbfwphjsvuxKsSWA5xxY07P36eahsNLLXSgEwo=" src="//cdn.shopify.com/shopifycloud/storefront/assets/storefront/origin_trials-c173577b.js" crossorigin="anonymous" onload="window.__shopifyOriginTrialsDone = true" onerror="window.__shopifyOriginTrialsDone = true"></script>
<script data-source-attribution="shopify.dynamic_checkout.dynamic.init">var Shopify=Shopify||{};Shopify.PaymentButton=Shopify.PaymentButton||{isStorefrontPortableWallets:!0,init:function(){window.Shopify.PaymentButton.init=function(){};var t=document.createElement("script");t.src="https://playthingsmiami.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}};
</script>
<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
  function portableWalletsHideBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.add("hidden"),t.setAttribute("aria-hidden","true"),n.removeEventListener("click",e))}function portableWalletsShowBuyerConsent(e){var t=document.getElementById("shopify-buyer-consent"),n=document.getElementById("shopify-subscription-policy-button");t&&n&&(t.classList.remove("hidden"),t.removeAttribute("aria-hidden"),n.addEventListener("click",e))}window.Shopify?.PaymentButton&&(window.Shopify.PaymentButton.hideBuyerConsent=portableWalletsHideBuyerConsent,window.Shopify.PaymentButton.showBuyerConsent=portableWalletsShowBuyerConsent);
</script>
<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}}));
</script>
<script id='scb4127' type='text/javascript' async='' src='https://playthingsmiami.com/cdn/shopifycloud/privacy-banner/storefront-banner.js'></script><script integrity="sha256-cA6YAGRbT6smD/187TDD20LcE6ljHwdUNi68QataOL0=" data-source-attribution="shopify.remote_product_tracking" data-shopify-remote-tracking="{&quot;session_id&quot;:&quot;01KTRMGYWX3HQPWHZN4W7D04P4&quot;,&quot;publisher_shop_id&quot;:10110032,&quot;theme_id&quot;:136995176664,&quot;theme_published&quot;:true,&quot;theme_store_id&quot;:887,&quot;placement&quot;:&quot;collection&quot;,&quot;event_data&quot;:{&quot;handle&quot;:&quot;&quot;,&quot;page_type&quot;:&quot;home&quot;},&quot;recommendations_tracking_enabled&quot;:true}" defer="defer" src="//playthingsmiami.com/cdn/shopifycloud/storefront/assets/storefront/remote_product_tracking-e0c70457.js" crossorigin="anonymous"></script>
<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://playthingsmiami.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous">
<style id="shopify-accelerated-checkout-cart">
        #shopify-buyer-consent {
  margin-top: 1em;
  display: inline-block;
  width: 100%;
}

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

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

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

      </style>
<script id="sections-script" data-sections="header" defer="defer" src="//playthingsmiami.com/cdn/shop/t/14/compiled_assets/scripts.js?v=184325197989695213571748046211"></script>
<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>


    <style data-shopify>
      @font-face {
  font-family: Assistant;
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url("//playthingsmiami.com/cdn/fonts/assistant/assistant_n4.9120912a469cad1cc292572851508ca49d12e768.woff2") format("woff2"),
       url("//playthingsmiami.com/cdn/fonts/assistant/assistant_n4.6e9875ce64e0fefcd3f4446b7ec9036b3ddd2985.woff") format("woff");
}

      @font-face {
  font-family: Assistant;
  font-weight: 700;
  font-style: normal;
  font-display: swap;
  src: url("//playthingsmiami.com/cdn/fonts/assistant/assistant_n7.bf44452348ec8b8efa3aa3068825305886b1c83c.woff2") format("woff2"),
       url("//playthingsmiami.com/cdn/fonts/assistant/assistant_n7.0c887fee83f6b3bda822f1150b912c72da0f7b64.woff") format("woff");
}

      
      
      @font-face {
  font-family: Assistant;
  font-weight: 400;
  font-style: normal;
  font-display: swap;
  src: url("//playthingsmiami.com/cdn/fonts/assistant/assistant_n4.9120912a469cad1cc292572851508ca49d12e768.woff2") format("woff2"),
       url("//playthingsmiami.com/cdn/fonts/assistant/assistant_n4.6e9875ce64e0fefcd3f4446b7ec9036b3ddd2985.woff") format("woff");
}


      :root {
        --font-body-family: Assistant, sans-serif;
        --font-body-style: normal;
        --font-body-weight: 400;
        --font-body-weight-bold: 700;

        --font-heading-family: Assistant, sans-serif;
        --font-heading-style: normal;
        --font-heading-weight: 400;

        --font-body-scale: 1.0;
        --font-heading-scale: 1.0;

        --color-base-text: 18, 18, 18;
        --color-shadow: 18, 18, 18;
        --color-base-background-1: 255, 255, 255;
        --color-base-background-2: 243, 243, 243;
        --color-base-solid-button-labels: 255, 255, 255;
        --color-base-outline-button-labels: 18, 18, 18;
        --color-base-accent-1: 18, 18, 18;
        --color-base-accent-2: 51, 79, 180;
        --payment-terms-background-color: #ffffff;

        --gradient-base-background-1: #ffffff;
        --gradient-base-background-2: #f3f3f3;
        --gradient-base-accent-1: #121212;
        --gradient-base-accent-2: #334fb4;

        --media-padding: px;
        --media-border-opacity: 0.05;
        --media-border-width: 1px;
        --media-radius: 0px;
        --media-shadow-opacity: 0.0;
        --media-shadow-horizontal-offset: 0px;
        --media-shadow-vertical-offset: 4px;
        --media-shadow-blur-radius: 5px;
        --media-shadow-visible: 0;

        --page-width: 120rem;
        --page-width-margin: 0rem;

        --product-card-image-padding: 0.0rem;
        --product-card-corner-radius: 0.0rem;
        --product-card-text-alignment: center;
        --product-card-border-width: 0.0rem;
        --product-card-border-opacity: 0.1;
        --product-card-shadow-opacity: 0.0;
        --product-card-shadow-visible: 0;
        --product-card-shadow-horizontal-offset: 0.0rem;
        --product-card-shadow-vertical-offset: 0.4rem;
        --product-card-shadow-blur-radius: 0.5rem;

        --collection-card-image-padding: 0.0rem;
        --collection-card-corner-radius: 0.0rem;
        --collection-card-text-alignment: left;
        --collection-card-border-width: 0.0rem;
        --collection-card-border-opacity: 0.1;
        --collection-card-shadow-opacity: 0.0;
        --collection-card-shadow-visible: 0;
        --collection-card-shadow-horizontal-offset: 0.0rem;
        --collection-card-shadow-vertical-offset: 0.4rem;
        --collection-card-shadow-blur-radius: 0.5rem;

        --blog-card-image-padding: 0.0rem;
        --blog-card-corner-radius: 0.0rem;
        --blog-card-text-alignment: left;
        --blog-card-border-width: 0.0rem;
        --blog-card-border-opacity: 0.1;
        --blog-card-shadow-opacity: 0.0;
        --blog-card-shadow-visible: 0;
        --blog-card-shadow-horizontal-offset: 0.0rem;
        --blog-card-shadow-vertical-offset: 0.4rem;
        --blog-card-shadow-blur-radius: 0.5rem;

        --badge-corner-radius: 4.0rem;

        --popup-border-width: 1px;
        --popup-border-opacity: 0.1;
        --popup-corner-radius: 0px;
        --popup-shadow-opacity: 0.0;
        --popup-shadow-horizontal-offset: 0px;
        --popup-shadow-vertical-offset: 4px;
        --popup-shadow-blur-radius: 5px;

        --drawer-border-width: 1px;
        --drawer-border-opacity: 0.1;
        --drawer-shadow-opacity: 0.0;
        --drawer-shadow-horizontal-offset: 0px;
        --drawer-shadow-vertical-offset: 4px;
        --drawer-shadow-blur-radius: 5px;

        --spacing-sections-desktop: 0px;
        --spacing-sections-mobile: 0px;

        --grid-desktop-vertical-spacing: 8px;
        --grid-desktop-horizontal-spacing: 8px;
        --grid-mobile-vertical-spacing: 4px;
        --grid-mobile-horizontal-spacing: 4px;

        --text-boxes-border-opacity: 0.1;
        --text-boxes-border-width: 0px;
        --text-boxes-radius: 0px;
        --text-boxes-shadow-opacity: 0.0;
        --text-boxes-shadow-visible: 0;
        --text-boxes-shadow-horizontal-offset: 0px;
        --text-boxes-shadow-vertical-offset: 4px;
        --text-boxes-shadow-blur-radius: 5px;

        --buttons-radius: 0px;
        --buttons-radius-outset: 0px;
        --buttons-border-width: 1px;
        --buttons-border-opacity: 1.0;
        --buttons-shadow-opacity: 0.0;
        --buttons-shadow-visible: 0;
        --buttons-shadow-horizontal-offset: 0px;
        --buttons-shadow-vertical-offset: 4px;
        --buttons-shadow-blur-radius: 5px;
        --buttons-border-offset: 0px;

        --inputs-radius: 0px;
        --inputs-border-width: 1px;
        --inputs-border-opacity: 0.55;
        --inputs-shadow-opacity: 0.0;
        --inputs-shadow-horizontal-offset: 0px;
        --inputs-margin-offset: 0px;
        --inputs-shadow-vertical-offset: 4px;
        --inputs-shadow-blur-radius: 5px;
        --inputs-radius-outset: 0px;

        --variant-pills-radius: 40px;
        --variant-pills-border-width: 1px;
        --variant-pills-border-opacity: 0.55;
        --variant-pills-shadow-opacity: 0.0;
        --variant-pills-shadow-horizontal-offset: 0px;
        --variant-pills-shadow-vertical-offset: 4px;
        --variant-pills-shadow-blur-radius: 5px;
      }

      *,
      *::before,
      *::after {
        box-sizing: inherit;
      }

      html {
        box-sizing: border-box;
        font-size: calc(var(--font-body-scale) * 62.5%);
        height: 100%;
      }

      body {
        display: grid;
        grid-template-rows: auto auto 1fr auto;
        grid-template-columns: 100%;
        min-height: 100%;
        margin: 0;
        font-size: 1.5rem;
        letter-spacing: 0.06rem;
        line-height: calc(1 + 0.8 / var(--font-body-scale));
        font-family: var(--font-body-family);
        font-style: var(--font-body-style);
        font-weight: var(--font-body-weight);
      }

      @media screen and (min-width: 750px) {
        body {
          font-size: 1.6rem;
        }
      }
    </style>

    <link href="//playthingsmiami.com/cdn/shop/t/14/assets/base.css?v=140624990073879848751680629356" rel="stylesheet" type="text/css" media="all" />
<link rel="preload" as="font" href="//playthingsmiami.com/cdn/fonts/assistant/assistant_n4.9120912a469cad1cc292572851508ca49d12e768.woff2" type="font/woff2" crossorigin><link rel="preload" as="font" href="//playthingsmiami.com/cdn/fonts/assistant/assistant_n4.9120912a469cad1cc292572851508ca49d12e768.woff2" type="font/woff2" crossorigin><link rel="stylesheet" href="//playthingsmiami.com/cdn/shop/t/14/assets/component-predictive-search.css?v=85913294783299393391680629357" media="print" onload="this.media='all'"><script>document.documentElement.className = document.documentElement.className.replace('no-js', 'js');
    if (Shopify.designMode) {
      document.documentElement.classList.add('shopify-design-mode');
    }
    </script>
    

<!-- BEGIN app block: shopify://apps/essential-announcer/blocks/app-embed/93b5429f-c8d6-4c33-ae14-250fd84f361b --><script>
  
    window.essentialAnnouncementConfigs = [];
  
  window.essentialAnnouncementMeta = {
    productCollections: null,
    productData: null,
    templateName: "index",
    collectionId: null,
  };
  
</script>

 

<style>
  .essential_annoucement_bar_wrapper {display: none;}
</style>



<script src="https://cdn.shopify.com/extensions/019e7f13-389c-7211-887b-f12f0be5db9f/essential-announcement-bar-111/assets/announcement-bar-essential-apps.js" defer></script>


<!-- END app block --><!-- BEGIN app block: shopify://apps/instafeed/blocks/head-block/c447db20-095d-4a10-9725-b5977662c9d5 -->





<!-- END app block --><script src="https://cdn.shopify.com/extensions/019e8310-66a8-7c3b-8d6c-2998b0cd5adc/countdown-timer-30-85/assets/countdown_timer_essential_apps.min.js" type="text/javascript" defer="defer"></script>
<script src="https://cdn.shopify.com/extensions/af045542-4e40-4d51-9ec5-ee844b0835db/1.0.0/assets/instamenu.js" type="text/javascript" defer="defer"></script>
<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
<script>(function(){if ("sendBeacon" in navigator && "performance" in window) {try {var session_token_from_headers = performance.getEntriesByType('navigation')[0].serverTiming.find(x => x.name == '_s').description;} catch {var session_token_from_headers = undefined;}var session_cookie_matches = document.cookie.match(/_shopify_s=([^;]*)/);var session_token_from_cookie = session_cookie_matches && session_cookie_matches.length === 2 ? session_cookie_matches[1] : "";var session_token = session_token_from_headers || session_token_from_cookie || "";function handle_abandonment_event(e) {var entries = performance.getEntries().filter(function(entry) {return /monorail-edge.shopifysvc.com/.test(entry.name);});if (!window.abandonment_tracked && entries.length === 0) {window.abandonment_tracked = true;var currentMs = Date.now();var navigation_start = performance.timing.navigationStart;var payload = {shop_id: 10110032,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "index"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
<script>
  window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || [];
</script>
<script id="web-pixels-manager-setup">(function(){var wpmLoader=function(){"use strict";return function(e,d,r,n){var o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};if(!Boolean(null==(i=null==(a=window.Shopify)?void 0:a.analytics)?void 0:i.replayQueue)){var a,i;window.Shopify=window.Shopify||{};var t=window.Shopify;t.analytics=t.analytics||{};var s=t.analytics;s.replayQueue=[],s.publish=function(e,d,r){return s.replayQueue.push([e,d,r]),!0};try{self.performance.mark("wpm:start")}catch(e){}var l,u,c,m,p,f,h,g,y,w,v,b,S,P=(u=(l={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:?[ /-](13[3-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(13[5-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(13[3-9]|1[4-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:?[ /-](13[3-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(13[5-9]|1[4-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(13[3-9]|1[4-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,c=l.legacy,(m=navigator.userAgent).match(u)?"modern":m.match(c)?"legacy":"unknown"),C="modern"===P?"modern":"legacy",_=(null!=n?n:{modern:"",legacy:""})[C],O=[(p={baseUrl:d,hashVersion:r,buildTarget:C}).baseUrl,"/wpm","/b",p.hashVersion,"modern"===p.buildTarget?"m":"l",".js"].join(""),U=(f={version:r,bundleTarget:P,surface:e.surface,pageUrl:self.location.href,monorailEndpoint:e.monorailEndpoint},h=f.version,g=f.bundleTarget,y=f.surface,w=f.pageUrl,v=f.monorailEndpoint,{emit:function(e){var d=e.status,r=e.errorMsg,n=(new Date).getTime(),o=JSON.stringify({metadata:{event_sent_at_ms:n},events:[{schema_id:"web_pixels_manager_load/3.1",payload:{version:h,bundle_target:g,page_url:w,status:d,surface:y,error_msg:r},metadata:{event_created_at_ms:n}}]});if(!v)return console&&console.warn&&console.warn("[Web Pixels Manager] No Monorail endpoint provided, skipping logging."),!1;try{return self.navigator.sendBeacon.bind(self.navigator)(v,o)}catch(e){}var a=new XMLHttpRequest;try{return a.open("POST",v,!0),a.setRequestHeader("Content-Type","text/plain"),a.send(o),!0}catch(e){return console&&console.warn&&console.warn("[Web Pixels Manager] Got an unhandled error while logging to Monorail."),!1}}});try{o.browserTarget=P,function(e){var d=e.src,r=e.async,n=void 0===r||r,o=e.onload,a=e.onerror,i=e.sri,t=e.scriptDataAttributes,s=void 0===t?{}:t,l=document.createElement("script"),u=document.querySelector("head"),c=document.querySelector("body");if(l.async=n,l.src=d,i&&(l.integrity=i,l.crossOrigin="anonymous"),s)for(var m in s)if(Object.prototype.hasOwnProperty.call(s,m))try{l.dataset[m]=s[m]}catch(e){}if(o&&l.addEventListener("load",o),a&&l.addEventListener("error",a),u)u.appendChild(l);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(l)}}({src:O,async:!0,onload:function(){if(!function(){var e,d;return Boolean(null==(d=null==(e=window.Shopify)?void 0:e.analytics)?void 0:d.initialized)}()){var d=window.webPixelsManager.init(e)||void 0;if(d){var r=window.Shopify.analytics;r.replayQueue.forEach(function(e){var r=e[0],n=e[1],o=e[2];d.publishCustomEvent(r,n,o)}),r.replayQueue=[],r.publish=d.publishCustomEvent,r.visitor=d.visitor,r.initialized=!0}}},onerror:function(){return U.emit({status:"failed",errorMsg:"".concat(O," has failed to load")})},sri:(b=_,S=/^sha384-[A-Za-z0-9+/=]+$/,"string"==typeof b&&S.test(b)?_:""),scriptDataAttributes:o}),U.emit({status:"loading"})}catch(e){U.emit({status:"failed",errorMsg:(null==e?void 0:e.message)||"Unknown error"})}}}}();wpmLoader({shopId: 10110032,storefrontBaseUrl: "https://playthingsmiami.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://monorail-edge.shopifysvc.com/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["2dca8a86","d5bdd5d0","3209b71c","5acaffe6","86d76263","3b3c7daf","6faea013"],webPixelsConfigList: [{"id":"1927839960","configuration":"{\"mailchimp_store_id\":\"store_f7eirb3v6uyd7i7zqtx7\", \"mailchimp_user_id\":\"40150377\",\"mailchimp_list_id\":\"f6b9ff300a\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"e357a49eadeb6216a959d63fa3fb8f55","type":"APP","apiClientId":2585307,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"551780568","configuration":"{\"pixelCode\":\"CSQUU73C77U71GVBJHDG\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"22e92c2ad45662f435e4801458fb78cc","type":"APP","apiClientId":4383523,"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":"474939608","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-RJ2R1DRZS8\\\",\\\"AW-974991164\\\",\\\"GT-TX9G6S3\\\"],\\\"target_country\\\":\\\"US\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-RJ2R1DRZS8\\\",\\\"AW-974991164\\\/MSOMCN-Ds-MDELze9NAD\\\"]},{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-RJ2R1DRZS8\\\",\\\"AW-974991164\\\/CLmgCNqEs-MDELze9NAD\\\"]},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-RJ2R1DRZS8\\\",\\\"AW-974991164\\\/2GpGCNmDs-MDELze9NAD\\\",\\\"MC-D3QTD6LJ33\\\"]},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-RJ2R1DRZS8\\\",\\\"AW-974991164\\\/5QFkCNaDs-MDELze9NAD\\\",\\\"MC-D3QTD6LJ33\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-RJ2R1DRZS8\\\",\\\"AW-974991164\\\/zfUpCNODs-MDELze9NAD\\\",\\\"MC-D3QTD6LJ33\\\"]},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-RJ2R1DRZS8\\\",\\\"AW-974991164\\\/wqrZCN2Es-MDELze9NAD\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-RJ2R1DRZS8\\\",\\\"AW-974991164\\\/Qr9QCNyDs-MDELze9NAD\\\"]}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"f15305aac1e98c5c26a7c80e7bc37bde","type":"APP","apiClientId":1780363,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"219971800","configuration":"{\"pixel_id\":\"297782737952367\",\"pixel_type\":\"facebook_pixel\",\"metaapp_system_user_token\":\"-\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"abff2a8add143ccb04deb20f0ebd74a9","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"41877720","configuration":"{\"pageViewLabel\":\"AW-974991164\\\/zfUpCNODs-MDELze9NAD\",\"addToCartLabel\":\"AW-974991164\\\/Qr9QCNyDs-MDELze9NAD\",\"beginCheckoutLabel\":\"AW-974991164\\\/bh8jCMvW55MYELze9NAD\",\"purchaseLabels\":\"AW-974991164\\\/5QFkCNaDs-MDELze9NAD\",\"googleTagIds\":\"AW-974991164\",\"configUrls\":\"https:\\\/\\\/googleads.g.doubleclick.net\\\/pagead\\\/viewthroughconversion\\\/974991164\\\/?random=INPUT_TIMESTAMP\\u0026cv=11\\u0026fst=INPUT_TIMESTAMP\\u0026fmt=3\\u0026bg=ffffff\\u0026guid=ON\\u0026async=1\\u0026gtm=45be41t0\\u0026gcd=11l1l1l1l1\\u0026dma=0\\u0026u_w=INPUT_WIDTH\\u0026u_h=INPUT_HEIGHT\\u0026url=INPUT_PAGE_URL\\u0026hn=www.googleadservices.com\\u0026frm=0INPUT_AUID_KEY_VALUE_PAIR\\u0026pscdl=noapi\\u0026data=event%3Dgtag.config,https:\\\/\\\/googleads.g.doubleclick.net\\\/pagead\\\/viewthroughconversion\\\/974991164\\\/?random=INPUT_TIMESTAMP\\u0026cv=11\\u0026fst=INPUT_TIMESTAMP\\u0026fmt=3\\u0026bg=ffffff\\u0026guid=ON\\u0026async=1\\u0026gtm=45be41t0\\u0026gcd=11l1l1l1l1\\u0026dma=0\\u0026u_w=INPUT_WIDTH\\u0026u_h=INPUT_HEIGHT\\u0026url=INPUT_PAGE_URL\\u0026hn=www.googleadservices.com\\u0026frm=0INPUT_AUID_KEY_VALUE_PAIR\\u0026npa=0\\u0026pscdl=noapi\\u0026data=event%3Dgtag.config,https:\\\/\\\/googleads.g.doubleclick.net\\\/pagead\\\/viewthroughconversion\\\/974991164\\\/?random=INPUT_TIMESTAMP\\u0026cv=11\\u0026fst=INPUT_TIMESTAMP\\u0026fmt=3\\u0026bg=ffffff\\u0026guid=ON\\u0026async=1\\u0026gtm=45be41t0\\u0026gcd=11l1l1l1l1\\u0026dma=0\\u0026u_w=INPUT_WIDTH\\u0026u_h=INPUT_HEIGHT\\u0026url=INPUT_PAGE_URL\\u0026hn=www.googleadservices.com\\u0026frm=0INPUT_AUID_KEY_VALUE_PAIR\\u0026pscdl=noapi\\u0026data=event%3Dgtag.config,https:\\\/\\\/googleads.g.doubleclick.net\\\/pagead\\\/viewthroughconversion\\\/974991164\\\/?random=INPUT_TIMESTAMP\\u0026cv=11\\u0026fst=INPUT_TIMESTAMP\\u0026fmt=3\\u0026bg=ffffff\\u0026guid=ON\\u0026async=1\\u0026gtm=45be41t0\\u0026gcd=11l1l1l1l1\\u0026dma=0\\u0026u_w=INPUT_WIDTH\\u0026u_h=INPUT_HEIGHT\\u0026url=INPUT_PAGE_URL\\u0026hn=www.googleadservices.com\\u0026frm=0INPUT_AUID_KEY_VALUE_PAIR\\u0026pscdl=noapi\\u0026data=event%3Dgtag.config,https:\\\/\\\/googleads.g.doubleclick.net\\\/pagead\\\/viewthroughconversion\\\/974991164\\\/?random=INPUT_TIMESTAMP\\u0026cv=11\\u0026fst=INPUT_TIMESTAMP\\u0026fmt=3\\u0026bg=ffffff\\u0026guid=ON\\u0026async=1\\u0026gtm=45be41t0\\u0026gcd=11l1l1l1l1\\u0026dma=0\\u0026u_w=INPUT_WIDTH\\u0026u_h=INPUT_HEIGHT\\u0026url=INPUT_PAGE_URL\\u0026hn=www.googleadservices.com\\u0026frm=0INPUT_AUID_KEY_VALUE_PAIR\\u0026pscdl=noapi\\u0026data=event%3Dgtag.config\",\"purchaseUrls\":\"https:\\\/\\\/www.googleadservices.com\\\/pagead\\\/conversion\\\/974991164\\\/?random=INPUT_TIMESTAMP\\u0026cv=11\\u0026fst=INPUT_TIMESTAMP\\u0026fmt=3\\u0026bg=ffffff\\u0026guid=ON\\u0026async=1\\u0026gtm=45be41t0\\u0026gcd=11l1l1l1l1\\u0026dma=0\\u0026u_w=INPUT_WIDTH\\u0026u_h=INPUT_HEIGHT\\u0026url=INPUT_PAGE_URL\\u0026label=5QFkCNaDs-MDELze9NAD\\u0026hn=www.googleadservices.com\\u0026frm=0INPUT_AUID_KEY_VALUE_PAIR\\u0026oid=INPUT_TRANSACTION_ID\\u0026value=INPUT_VALUE\\u0026currency_code=INPUT_CURRENCY_CODE\\u0026gtm_ee=1\\u0026pscdl=noapi\\u0026data=event%3Dconversion,https:\\\/\\\/www.googleadservices.com\\\/pagead\\\/conversion\\\/974991164\\\/?random=INPUT_TIMESTAMP\\u0026cv=11\\u0026fst=INPUT_TIMESTAMP\\u0026fmt=3\\u0026bg=ffffff\\u0026guid=ON\\u0026async=1\\u0026gtm=45be41t0\\u0026gcd=11l1l1l1l1\\u0026dma=0\\u0026u_w=INPUT_WIDTH\\u0026u_h=INPUT_HEIGHT\\u0026url=INPUT_PAGE_URL\\u0026label=X3G5COb4_JMYELze9NAD\\u0026hn=www.googleadservices.com\\u0026frm=0INPUT_AUID_KEY_VALUE_PAIR\\u0026oid=INPUT_TRANSACTION_ID\\u0026value=INPUT_VALUE\\u0026currency_code=INPUT_CURRENCY_CODE\\u0026gtm_ee=1\\u0026npa=0\\u0026pscdl=noapi\\u0026data=event%3Dconversion,https:\\\/\\\/www.googleadservices.com\\\/pagead\\\/conversion\\\/974991164\\\/?random=INPUT_TIMESTAMP\\u0026cv=11\\u0026fst=INPUT_TIMESTAMP\\u0026fmt=3\\u0026bg=ffffff\\u0026guid=ON\\u0026async=1\\u0026gtm=45be41t0\\u0026gcd=11l1l1l1l1\\u0026dma=0\\u0026u_w=INPUT_WIDTH\\u0026u_h=INPUT_HEIGHT\\u0026url=INPUT_PAGE_URL\\u0026label=coTkCKz0kAUQvN700AM\\u0026hn=www.googleadservices.com\\u0026frm=0INPUT_AUID_KEY_VALUE_PAIR\\u0026oid=INPUT_TRANSACTION_ID\\u0026value=INPUT_VALUE\\u0026currency_code=INPUT_CURRENCY_CODE\\u0026gtm_ee=1\\u0026pscdl=noapi\\u0026data=event%3Dconversion,https:\\\/\\\/www.googleadservices.com\\\/pagead\\\/conversion\\\/974991164\\\/?random=INPUT_TIMESTAMP\\u0026cv=11\\u0026fst=INPUT_TIMESTAMP\\u0026fmt=3\\u0026bg=ffffff\\u0026guid=ON\\u0026async=1\\u0026gtm=45be41t0\\u0026gcd=11l1l1l1l1\\u0026dma=0\\u0026u_w=INPUT_WIDTH\\u0026u_h=INPUT_HEIGHT\\u0026url=INPUT_PAGE_URL\\u0026label=YxsECKzdggUQvN700AM\\u0026hn=www.googleadservices.com\\u0026frm=0INPUT_AUID_KEY_VALUE_PAIR\\u0026oid=INPUT_TRANSACTION_ID\\u0026value=INPUT_VALUE\\u0026currency_code=INPUT_CURRENCY_CODE\\u0026gtm_ee=1\\u0026pscdl=noapi\\u0026data=event%3Dconversion,https:\\\/\\\/www.googleadservices.com\\\/pagead\\\/conversion\\\/974991164\\\/?random=INPUT_TIMESTAMP\\u0026cv=11\\u0026fst=INPUT_TIMESTAMP\\u0026fmt=3\\u0026bg=ffffff\\u0026guid=ON\\u0026async=1\\u0026gtm=45be41t0\\u0026gcd=11l1l1l1l1\\u0026dma=0\\u0026u_w=INPUT_WIDTH\\u0026u_h=INPUT_HEIGHT\\u0026url=INPUT_PAGE_URL\\u0026label=knuRCOSHzwIQvN700AM\\u0026hn=www.googleadservices.com\\u0026frm=0INPUT_AUID_KEY_VALUE_PAIR\\u0026oid=INPUT_TRANSACTION_ID\\u0026value=INPUT_VALUE\\u0026currency_code=INPUT_CURRENCY_CODE\\u0026gtm_ee=1\\u0026pscdl=noapi\\u0026data=event%3Dconversion\",\"enhancedConversions\":\"false\",\"remarketing\":\"true\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"4ed8e6042ea88aa3847d2c6d23b07374","type":"APP","apiClientId":5046251,"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":"shopify-app-pixel","configuration":"{}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"0460","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0460","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"Playthings","paymentSettings":{"currencyCode":"USD"},"myshopifyDomain":"playthingsmiami.myshopify.com","countryCode":"US","storefrontUrl":"https:\/\/playthingsmiami.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":null,"purchasingCompany":null,"page":null},},"https://playthingsmiami.com/cdn","a9664f44w6a62cec8p04af10e4mb91e3447",{"modern":"","legacy":""},{"trekkieShim":true,"apiClientId":"580111","pageType":"home","shopId":"10110032","storefrontBaseUrl":"https:\/\/playthingsmiami.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"2dca8a86\", \"d5bdd5d0\", \"3209b71c\", \"5acaffe6\", \"86d76263\", \"3b3c7daf\", \"6faea013\"]","isMerchantRequest":"false","hashVersion":"a9664f44w6a62cec8p04af10e4mb91e3447","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script><script>
  window.ShopifyAnalytics = window.ShopifyAnalytics || {};
  window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
  window.ShopifyAnalytics.meta.currency = 'USD';
  var meta = {"page":{"pageType":"home","requestId":"e71e15af-d7b7-49be-a204-c461dd7c70b3-1781090778"}};
  for (var attr in meta) {
    window.ShopifyAnalytics.meta[attr] = meta[attr];
  }
</script>
<script class="analytics">
  (function () {
    var customDocumentWrite = function(content) {
      var jquery = null;

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

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

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

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

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

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

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

        } // XHR beacon

        var xhr = new XMLHttpRequest();

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

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

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

    };
    trekkie.load(
      {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":10110032,"isMerchantRequest":null,"themeId":136995176664,"themeCityHash":"5759514383555890990","contentLanguage":"en","currency":"USD","eventMetadataId":"288cec21-e86c-464a-88e7-532fd7a1e109"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["b5387b81","d5bdd5d0"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}}
    );

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

      window.ShopifyAnalytics.lib = window.trekkie;

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

      window.ShopifyAnalytics.lib.page(null,{"pageType":"home","requestId":"e71e15af-d7b7-49be-a204-c461dd7c70b3-1781090778","shopifyEmitted":true});

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

    var eventsListenerScript = document.createElement('script');
    eventsListenerScript.async = true;
    eventsListenerScript.src = "//playthingsmiami.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js";
    document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
})();</script>
  <script>
  if (!window.ga || (window.ga && typeof window.ga !== 'function')) {
    window.ga = function ga() {
      (window.ga.q = window.ga.q || []).push(arguments);
      if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
        window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"});
      }
      console.error("Shopify's Google Analytics stub called with:", Array.from(arguments), "\nSee https://help.shopify.com/manual/promoting-marketing/pixels/pixel-migration#google for more information.");
    };
    if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
      window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"});
    }
  }
</script>
<script
  defer
  src="https://playthingsmiami.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.5.0.min.js"
  data-application="storefront-renderer"
  data-shop-id="10110032"
  data-render-region="gcp-us-central1"
  data-page-type="index"
  data-theme-instance-id="136995176664"
  data-theme-name="Dawn"
  data-theme-version="9.0.0"
  data-monorail-region="shop_domain"
  data-resource-timing-sampling-rate="10"
  data-shs="true"
  data-shs-beacon="true"
  data-shs-export-with-fetch="true"
  data-shs-logs-sample-rate="1"
  data-shs-beacon-endpoint="https://playthingsmiami.com/api/collect"
></script>
</head>

  <body class="gradient">
    <a class="skip-to-content-link button visually-hidden" href="#MainContent">
      Skip to content
    </a><!-- BEGIN sections: header-group -->
<div id="shopify-section-sections--16799921242328__announcement-bar" class="shopify-section shopify-section-group-header-group announcement-bar-section"><div class="announcement-bar color-accent-1 gradient" role="region" aria-label="Announcement" ><div class="page-width">
                <p class="announcement-bar__message center h5">
                  <span>20% OFF Sitewide-No Code Needed</span></p>
              </div></div>
</div><div id="shopify-section-sections--16799921242328__header" class="shopify-section shopify-section-group-header-group section-header"><link rel="stylesheet" href="//playthingsmiami.com/cdn/shop/t/14/assets/component-list-menu.css?v=151968516119678728991680629356" media="print" onload="this.media='all'">
<link rel="stylesheet" href="//playthingsmiami.com/cdn/shop/t/14/assets/component-search.css?v=184225813856820874251680629357" media="print" onload="this.media='all'">
<link rel="stylesheet" href="//playthingsmiami.com/cdn/shop/t/14/assets/component-menu-drawer.css?v=94074963897493609391680629356" media="print" onload="this.media='all'">
<link rel="stylesheet" href="//playthingsmiami.com/cdn/shop/t/14/assets/component-cart-notification.css?v=108833082844665799571680629356" media="print" onload="this.media='all'">
<link rel="stylesheet" href="//playthingsmiami.com/cdn/shop/t/14/assets/component-cart-items.css?v=29412722223528841861680629356" media="print" onload="this.media='all'"><link rel="stylesheet" href="//playthingsmiami.com/cdn/shop/t/14/assets/component-price.css?v=65402837579211014041680629357" media="print" onload="this.media='all'">
  <link rel="stylesheet" href="//playthingsmiami.com/cdn/shop/t/14/assets/component-loading-overlay.css?v=167310470843593579841680629356" media="print" onload="this.media='all'"><link rel="stylesheet" href="//playthingsmiami.com/cdn/shop/t/14/assets/component-mega-menu.css?v=106454108107686398031680629356" media="print" onload="this.media='all'">
  <noscript><link href="//playthingsmiami.com/cdn/shop/t/14/assets/component-mega-menu.css?v=106454108107686398031680629356" rel="stylesheet" type="text/css" media="all" /></noscript><link href="//playthingsmiami.com/cdn/shop/t/14/assets/component-localization-form.css?v=173603692892863148811680629356" rel="stylesheet" type="text/css" media="all" />
<noscript><link href="//playthingsmiami.com/cdn/shop/t/14/assets/component-list-menu.css?v=151968516119678728991680629356" rel="stylesheet" type="text/css" media="all" /></noscript>
<noscript><link href="//playthingsmiami.com/cdn/shop/t/14/assets/component-search.css?v=184225813856820874251680629357" rel="stylesheet" type="text/css" media="all" /></noscript>
<noscript><link href="//playthingsmiami.com/cdn/shop/t/14/assets/component-menu-drawer.css?v=94074963897493609391680629356" rel="stylesheet" type="text/css" media="all" /></noscript>
<noscript><link href="//playthingsmiami.com/cdn/shop/t/14/assets/component-cart-notification.css?v=108833082844665799571680629356" rel="stylesheet" type="text/css" media="all" /></noscript>
<noscript><link href="//playthingsmiami.com/cdn/shop/t/14/assets/component-cart-items.css?v=29412722223528841861680629356" rel="stylesheet" type="text/css" media="all" /></noscript>

<style>
  header-drawer {
    justify-self: start;
    margin-left: -1.2rem;
  }@media screen and (min-width: 990px) {
      header-drawer {
        display: none;
      }
    }.menu-drawer-container {
    display: flex;
  }

  .list-menu {
    list-style: none;
    padding: 0;
    margin: 0;
  }

  .list-menu--inline {
    display: inline-flex;
    flex-wrap: wrap;
  }

  summary.list-menu__item {
    padding-right: 2.7rem;
  }

  .list-menu__item {
    display: flex;
    align-items: center;
    line-height: calc(1 + 0.3 / var(--font-body-scale));
  }

  .list-menu__item--link {
    text-decoration: none;
    padding-bottom: 1rem;
    padding-top: 1rem;
    line-height: calc(1 + 0.8 / var(--font-body-scale));
  }

  @media screen and (min-width: 750px) {
    .list-menu__item--link {
      padding-bottom: 0.5rem;
      padding-top: 0.5rem;
    }
  }
</style><style data-shopify>.header {
    padding-top: 10px;
    padding-bottom: 18px;
  }

  .section-header {
    position: sticky; /* This is for fixing a Safari z-index issue. PR #2147 */
    margin-bottom: 0px;
  }

  @media screen and (min-width: 750px) {
    .section-header {
      margin-bottom: 0px;
    }
  }

  @media screen and (min-width: 990px) {
    .header {
      padding-top: 20px;
      padding-bottom: 36px;
    }
  }</style><script src="//playthingsmiami.com/cdn/shop/t/14/assets/details-disclosure.js?v=153497636716254413831680629357" defer="defer"></script>
<script src="//playthingsmiami.com/cdn/shop/t/14/assets/details-modal.js?v=4511761896672669691680629357" defer="defer"></script>
<script src="//playthingsmiami.com/cdn/shop/t/14/assets/cart-notification.js?v=160453272920806432391680629356" defer="defer"></script>
<script src="//playthingsmiami.com/cdn/shop/t/14/assets/search-form.js?v=113639710312857635801680629357" defer="defer"></script><script src="//playthingsmiami.com/cdn/shop/t/14/assets/localization-form.js?v=131562513936691783521680629357" defer="defer"></script><svg xmlns="http://www.w3.org/2000/svg" class="hidden">
  <symbol id="icon-search" viewbox="0 0 18 19" fill="none">
    <path fill-rule="evenodd" clip-rule="evenodd" d="M11.03 11.68A5.784 5.784 0 112.85 3.5a5.784 5.784 0 018.18 8.18zm.26 1.12a6.78 6.78 0 11.72-.7l5.4 5.4a.5.5 0 11-.71.7l-5.41-5.4z" fill="currentColor"/>
  </symbol>

  <symbol id="icon-reset" class="icon icon-close"  fill="none" viewBox="0 0 18 18" stroke="currentColor">
    <circle r="8.5" cy="9" cx="9" stroke-opacity="0.2"/>
    <path d="M6.82972 6.82915L1.17193 1.17097" stroke-linecap="round" stroke-linejoin="round" transform="translate(5 5)"/>
    <path d="M1.22896 6.88502L6.77288 1.11523" stroke-linecap="round" stroke-linejoin="round" transform="translate(5 5)"/>
  </symbol>

  <symbol id="icon-close" class="icon icon-close" fill="none" viewBox="0 0 18 17">
    <path d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z" fill="currentColor">
  </symbol>
</svg><sticky-header data-sticky-type="always" class="header-wrapper color-background-1 gradient header-wrapper--border-bottom">
  <header class="header header--middle-left header--mobile-center page-width header--has-menu"><header-drawer data-breakpoint="tablet">
        <details id="Details-menu-drawer-container" class="menu-drawer-container">
          <summary class="header__icon header__icon--menu header__icon--summary link focus-inset" aria-label="Menu">
            <span>
              <svg
  xmlns="http://www.w3.org/2000/svg"
  aria-hidden="true"
  focusable="false"
  class="icon icon-hamburger"
  fill="none"
  viewBox="0 0 18 16"
>
  <path d="M1 .5a.5.5 0 100 1h15.71a.5.5 0 000-1H1zM.5 8a.5.5 0 01.5-.5h15.71a.5.5 0 010 1H1A.5.5 0 01.5 8zm0 7a.5.5 0 01.5-.5h15.71a.5.5 0 010 1H1a.5.5 0 01-.5-.5z" fill="currentColor">
</svg>

              <svg
  xmlns="http://www.w3.org/2000/svg"
  aria-hidden="true"
  focusable="false"
  class="icon icon-close"
  fill="none"
  viewBox="0 0 18 17"
>
  <path d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z" fill="currentColor">
</svg>

            </span>
          </summary>
          <div id="menu-drawer" class="gradient menu-drawer motion-reduce" tabindex="-1">
            <div class="menu-drawer__inner-container">
              <div class="menu-drawer__navigation-container">
                <nav class="menu-drawer__navigation">
                  <ul class="menu-drawer__menu has-submenu list-menu" role="list"><li><details id="Details-menu-drawer-menu-item-1">
                            <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
                              Toys
                              <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                              <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
</svg>

                            </summary>
                            <div id="link-toys" class="menu-drawer__submenu has-submenu gradient motion-reduce" tabindex="-1">
                              <div class="menu-drawer__inner-submenu">
                                <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
                                  <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                                  Toys
                                </button>
                                <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li><details id="Details-menu-drawer-submenu-1">
                                          <summary class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                            Toys For Her
                                            <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                                            <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
</svg>

                                          </summary>
                                          <div id="childlink-toys-for-her" class="menu-drawer__submenu has-submenu gradient motion-reduce">
                                            <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
                                              <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                                              Toys For Her
                                            </button>
                                            <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li>
                                                  <a href="/collections/top-picks-women-toys" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Top Picks
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/classic-vibrators" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Classic Vibrators
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/dildos-and-dongs" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Dildos &amp; Dongs
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/anal-toys" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Anal Toys
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/butt-plugs" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Butt Plugs
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/butterfly-vibrators" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Butterfly Vibrators
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/clit-lickers" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Clit Lickers
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/eggs-and-bullets" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Eggs &amp; Bullets
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/glass-toys" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Glass Toys
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/mini-stimulators" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Mini Stimulators
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/silicone-stimulators" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Silicone Stimulators
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/waterproof-stimulators" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Waterproof Stimulators
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/wands" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Wands
                                                  </a>
                                                </li></ul>
                                          </div>
                                        </details></li><li><details id="Details-menu-drawer-submenu-2">
                                          <summary class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                            Toys For Couples
                                            <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                                            <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
</svg>

                                          </summary>
                                          <div id="childlink-toys-for-couples" class="menu-drawer__submenu has-submenu gradient motion-reduce">
                                            <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
                                              <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                                              Toys For Couples
                                            </button>
                                            <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li>
                                                  <a href="/collections/cock-rings" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Cock Rings
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/couples-vibrators" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Couples Vibrators
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/bondage-kits" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Bondage Kits
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/sensual-gift-sets" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Sexy Kits
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/diy-sex-toys" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Clone-A-Willy Kits
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/nipple-and-clit-clamps" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Nipple &amp; Clit Toys
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/sex-furniture" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Sex Furniture
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/sex-swings" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Sex Swings
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/strap-ons" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Strap-Ons
                                                  </a>
                                                </li></ul>
                                          </div>
                                        </details></li><li><details id="Details-menu-drawer-submenu-3">
                                          <summary class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                            Toys For Him
                                            <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                                            <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
</svg>

                                          </summary>
                                          <div id="childlink-toys-for-him" class="menu-drawer__submenu has-submenu gradient motion-reduce">
                                            <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
                                              <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                                              Toys For Him
                                            </button>
                                            <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li>
                                                  <a href="/collections/ass-masturbators" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Ass Masturbators
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/celebrity-vaginas" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Celebrity Vaginas
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/cock-rings" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Cock Rings
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/mouth-mastubators" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Mouth Masturbators
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/pocket-pussy" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Pocket Pussy
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/realistic-vaginas" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Realistic Vaginas
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/sex-dolls" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Sex Dolls
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/strokers" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Strokers
                                                  </a>
                                                </li></ul>
                                          </div>
                                        </details></li><li><details id="Details-menu-drawer-submenu-4">
                                          <summary class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                            All Vibrators
                                            <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                                            <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
</svg>

                                          </summary>
                                          <div id="childlink-all-vibrators" class="menu-drawer__submenu has-submenu gradient motion-reduce">
                                            <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
                                              <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                                              All Vibrators
                                            </button>
                                            <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li>
                                                  <a href="/collections/finger-vibrators" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Finger Vibrators
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/flexible-vibrators" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Flexible Vibrators
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/g-spot-vibrators" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    G-Spot Vibrators
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/impulse-vibrators" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Impulse Vibrators
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/jelly-vibrators" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Jelly Vibrators
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/massage-mitts" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Massage Mitts
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/vibrators-with-sleeves-attachments" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Massager Attachments
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/massagers" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Massagers
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/multi-function-vibrators" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Multi Function Vibrators
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/multi-speed-vibrators" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Multi Speed Vibrators
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/rabbit-vibrators" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Rabbit Vibrators
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/silicone-vibrators" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Silicone Vibrators
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/tongue-vibes" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Tongue Vibes
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/waterproof-vibrators" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Waterproof Vibrators
                                                  </a>
                                                </li></ul>
                                          </div>
                                        </details></li></ul>
                              </div>
                            </div>
                          </details></li><li><a href="/collections/perfumes-and-colognes-pheromone-infused" class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
                            Pheromone Infused Perfumes
                          </a></li><li><details id="Details-menu-drawer-menu-item-3">
                            <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
                              Lubricants and Oils
                              <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                              <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
</svg>

                            </summary>
                            <div id="link-lubricants-and-oils" class="menu-drawer__submenu has-submenu gradient motion-reduce" tabindex="-1">
                              <div class="menu-drawer__inner-submenu">
                                <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
                                  <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                                  Lubricants and Oils
                                </button>
                                <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li><a href="/collections/lubrications" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          All Lubrications
                                        </a></li><li><a href="/collections/anal-lubricant" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Anal Lubes
                                        </a></li><li><a href="/collections/edible-lubricants-and-more" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Edible Lube
                                        </a></li><li><a href="/collections/gels" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Gels
                                        </a></li><li><a href="/collections/personal-lubricants" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Personal Lubricants
                                        </a></li><li><a href="/collections/silicone-lubricants" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Silicone Lubricant
                                        </a></li><li><a href="/collections/warming-lubricants" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Warming Lube
                                        </a></li><li><a href="/collections/water-based-lubricants" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Water Based Lubricant
                                        </a></li><li><a href="/collections/massage-lotions-and-oils" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Massage
                                        </a></li><li><a href="/collections/female-sexual-enhancers" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Stimulating Gels for Her
                                        </a></li><li><a href="/collections/male-sexual-enhancers" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Stimulating Gels for Him
                                        </a></li></ul>
                              </div>
                            </div>
                          </details></li><li><details id="Details-menu-drawer-menu-item-4">
                            <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
                              Bath &amp; Shower
                              <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                              <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
</svg>

                            </summary>
                            <div id="link-bath-shower" class="menu-drawer__submenu has-submenu gradient motion-reduce" tabindex="-1">
                              <div class="menu-drawer__inner-submenu">
                                <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
                                  <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                                  Bath &amp; Shower
                                </button>
                                <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li><a href="/collections/bath-and-shower" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          All Bath &amp; Shower
                                        </a></li><li><a href="/collections/bath-salts" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Bath Salts
                                        </a></li><li><a href="/collections/candles" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Candles
                                        </a></li><li><details id="Details-menu-drawer-submenu-4">
                                          <summary class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                            Condoms &amp; Safe Sex
                                            <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                                            <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
</svg>

                                          </summary>
                                          <div id="childlink-condoms-safe-sex" class="menu-drawer__submenu has-submenu gradient motion-reduce">
                                            <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
                                              <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                                              Condoms &amp; Safe Sex
                                            </button>
                                            <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li>
                                                  <a href="/collections/condoms" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    All Condoms
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/flavored-condoms" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Flavored Condoms
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/latex-condoms" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Latex Condoms
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/ribbed-condoms" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Ribbed Condoms
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/ultra-thin-condoms" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Ultra Thin Condoms
                                                  </a>
                                                </li></ul>
                                          </div>
                                        </details></li><li><details id="Details-menu-drawer-submenu-5">
                                          <summary class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                            Personal Hygiene
                                            <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                                            <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
</svg>

                                          </summary>
                                          <div id="childlink-personal-hygiene" class="menu-drawer__submenu has-submenu gradient motion-reduce">
                                            <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
                                              <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                                              Personal Hygiene
                                            </button>
                                            <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li>
                                                  <a href="/collections/enema-douche" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Enema &amp; Douche
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/adult-wet-wipes" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Wet Wipes
                                                  </a>
                                                </li></ul>
                                          </div>
                                        </details></li></ul>
                              </div>
                            </div>
                          </details></li><li><details id="Details-menu-drawer-menu-item-5">
                            <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
                              Dancers Boutique
                              <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                              <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
</svg>

                            </summary>
                            <div id="link-dancers-boutique" class="menu-drawer__submenu has-submenu gradient motion-reduce" tabindex="-1">
                              <div class="menu-drawer__inner-submenu">
                                <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
                                  <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                                  Dancers Boutique
                                </button>
                                <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li><a href="/collections/dance-poles" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Dance Poles
                                        </a></li><li><a href="/collections/club-wear" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Dancer Wear
                                        </a></li><li><details id="Details-menu-drawer-submenu-3">
                                          <summary class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                            Shoes
                                            <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                                            <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
</svg>

                                          </summary>
                                          <div id="childlink-shoes" class="menu-drawer__submenu has-submenu gradient motion-reduce">
                                            <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
                                              <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                                              Shoes
                                            </button>
                                            <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li>
                                                  <a href="/collections/shoes-heels-exotic-dancer/Boots" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Boots
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/stilletos/heel" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Stilletos
                                                  </a>
                                                </li></ul>
                                          </div>
                                        </details></li></ul>
                              </div>
                            </div>
                          </details></li><li><details id="Details-menu-drawer-menu-item-6">
                            <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
                              Bondage S&amp;M
                              <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                              <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
</svg>

                            </summary>
                            <div id="link-bondage-s-m" class="menu-drawer__submenu has-submenu gradient motion-reduce" tabindex="-1">
                              <div class="menu-drawer__inner-submenu">
                                <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
                                  <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                                  Bondage S&amp;M
                                </button>
                                <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li><a href="/collections/ankle-restraints" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Ankle Restraints
                                        </a></li><li><a href="/collections/ball-gags" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Ball Gags
                                        </a></li><li><a href="/collections/blindfolds" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Blindfolds
                                        </a></li><li><a href="/collections/bondage-collars-leashes" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Bondage Collars
                                        </a></li><li><a href="/collections/bondage-crops" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Bondage Crops
                                        </a></li><li><a href="/collections/bondage-rope-and-tape" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Bondage Ropes &amp; Tape
                                        </a></li><li><a href="/collections/chasity-belts" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Chastity Belts
                                        </a></li><li><a href="/collections/feather-ticklers" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Feather Ticklers
                                        </a></li><li><a href="/collections/handcuffs" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Handcuffs
                                        </a></li><li><a href="/collections/hoods-and-masks" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Hoods &amp; Masks
                                        </a></li><li><a href="/collections/leather-bondage" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Leather Bondage
                                        </a></li><li><a href="/collections/sex-position-straps" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Sex Position Straps
                                        </a></li><li><a href="/collections/slappers" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Slappers
                                        </a></li><li><a href="/collections/whips" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Whips
                                        </a></li><li><a href="/collections/nipple-and-clit-clamps" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Nipple &amp; Clit Clamps
                                        </a></li><li><a href="/collections/restraints" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Restraints
                                        </a></li></ul>
                              </div>
                            </div>
                          </details></li><li><details id="Details-menu-drawer-menu-item-7">
                            <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
                              Accessories
                              <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                              <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
</svg>

                            </summary>
                            <div id="link-accessories" class="menu-drawer__submenu has-submenu gradient motion-reduce" tabindex="-1">
                              <div class="menu-drawer__inner-submenu">
                                <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
                                  <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                                  Accessories
                                </button>
                                <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li><a href="/collections/accessories-costume-kits" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          All Accessories
                                        </a></li><li><a href="/collections/body-art-jewelry" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Body Art &amp; Jewelry
                                        </a></li><li><a href="/collections/gloves" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Gloves
                                        </a></li><li><a href="/collections/pasties" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Pasties
                                        </a></li><li><a href="/collections/stockings" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Stockings
                                        </a></li><li><a href="/collections/wigs" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Wigs
                                        </a></li></ul>
                              </div>
                            </div>
                          </details></li><li><details id="Details-menu-drawer-menu-item-8">
                            <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
                              Costumes
                              <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                              <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
</svg>

                            </summary>
                            <div id="link-costumes" class="menu-drawer__submenu has-submenu gradient motion-reduce" tabindex="-1">
                              <div class="menu-drawer__inner-submenu">
                                <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
                                  <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                                  Costumes
                                </button>
                                <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li><a href="/collections/exclusive-costumes-sexy" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Playthings&#39; Exclusive Costumes
                                        </a></li><li><a href="/collections/angels-fairies/Angels-&-Devils" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Angels &amp; Devils
                                        </a></li><li><a href="/collections/animals" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Animals
                                        </a></li><li><a href="/collections/astronauts-and-aliens" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Astronauts and Aliens
                                        </a></li><li><a href="/collections/beer-girl" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Beer Girl
                                        </a></li><li><a href="/collections/celebrities" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Celebrities
                                        </a></li><li><a href="/collections/circus" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Circus
                                        </a></li><li><a href="/collections/cops-robbers" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Cops &amp; Robbers
                                        </a></li><li><a href="/collections/cowgirls-native-americans" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Cowgirls &amp; Native Americans
                                        </a></li><li><a href="/collections/day-of-the-dead-and-skulls" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Day of the Dead and Skulls
                                        </a></li><li><a href="/collections/decades-time-periods" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Decades/Time Periods
                                        </a></li><li><a href="/collections/egyptian-costumes" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                           Egyptian
                                        </a></li><li><a href="/collections/fairies-and-butterflies" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Fairies and Butterflies
                                        </a></li><li><a href="/collections/fairy-tale-and-movies-characters" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Fairy Tales and Movie Charaters
                                        </a></li><li><a href="/collections/fire-fighters" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Fire Fighters
                                        </a></li><li><a href="/collections/horror-movies" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Horror Movies
                                        </a></li><li><a href="/collections/maids" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Maids
                                        </a></li><li><a href="/collections/mermaids-and-sea-creatures" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Mermaids and Sea Creatures
                                        </a></li><li><a href="/collections/military-and-armed-forces" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Military
                                        </a></li><li><a href="/collections/ninjas" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Ninjas
                                        </a></li><li><a href="/collections/nuns" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Nuns
                                        </a></li><li><a href="/collections/nurses-and-doctors-medical" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Nurse/Medical
                                        </a></li><li><a href="/collections/pirates" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Pirates
                                        </a></li><li><a href="/collections/school-girls" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          School Girls
                                        </a></li><li><a href="/collections/super-heroes-and-villains" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Super Heroes and Villains
                                        </a></li><li><a href="/collections/vampires" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Vampires
                                        </a></li><li><a href="/collections/witches" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Witches
                                        </a></li><li><a href="/collections/workers-uniforms-jobs" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Workers/Jobs
                                        </a></li><li><a href="/collections/mens-costumes" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Men&#39;s Costumes
                                        </a></li><li><a href="/collections/costumes" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          All Costumes
                                        </a></li><li><a href="/collections/plus-size-costumes" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Plus Size Costumes
                                        </a></li></ul>
                              </div>
                            </div>
                          </details></li><li><details id="Details-menu-drawer-menu-item-9">
                            <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
                              Clothing Boutique
                              <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                              <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
</svg>

                            </summary>
                            <div id="link-clothing-boutique" class="menu-drawer__submenu has-submenu gradient motion-reduce" tabindex="-1">
                              <div class="menu-drawer__inner-submenu">
                                <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
                                  <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                                  Clothing Boutique
                                </button>
                                <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li><a href="/collections/corsets-training" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Corsets
                                        </a></li><li><a href="/collections/clothing" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Clubwear
                                        </a></li><li><a href="/collections/ravewear" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Festival
                                        </a></li><li><details id="Details-menu-drawer-submenu-4">
                                          <summary class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                            Lingerie
                                            <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                                            <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
</svg>

                                          </summary>
                                          <div id="childlink-lingerie" class="menu-drawer__submenu has-submenu gradient motion-reduce">
                                            <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
                                              <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                                              Lingerie
                                            </button>
                                            <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li>
                                                  <a href="/collections/g-strings-and-panties" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    G-Strings &amp; Panties
                                                  </a>
                                                </li></ul>
                                          </div>
                                        </details></li></ul>
                              </div>
                            </div>
                          </details></li><li><details id="Details-menu-drawer-menu-item-10">
                            <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
                              Men&#39;s Clothing
                              <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                              <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
</svg>

                            </summary>
                            <div id="link-mens-clothing" class="menu-drawer__submenu has-submenu gradient motion-reduce" tabindex="-1">
                              <div class="menu-drawer__inner-submenu">
                                <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
                                  <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                                  Men&#39;s Clothing
                                </button>
                                <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li><a href="/collections/sexy-stuff-for-men" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Sexy Clothes for Men
                                        </a></li><li><a href="/collections/mens-festival-clothing" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Men&#39;s Festival Clothing
                                        </a></li></ul>
                              </div>
                            </div>
                          </details></li><li><a href="/collections/summer-collection-swimwear" class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
                            Swimwear
                          </a></li><li><details id="Details-menu-drawer-menu-item-12">
                            <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
                              Shoes
                              <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                              <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
</svg>

                            </summary>
                            <div id="link-shoes" class="menu-drawer__submenu has-submenu gradient motion-reduce" tabindex="-1">
                              <div class="menu-drawer__inner-submenu">
                                <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
                                  <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                                  Shoes
                                </button>
                                <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li><a href="/collections/boots" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Boots
                                        </a></li><li><a href="/collections/sexy-shoes" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Dancer Shoes
                                        </a></li><li><a href="/collections/festival-shoes" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Festival/Rave Shoes
                                        </a></li><li><a href="/collections/competition-shoes" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Fit Competition Shoes
                                        </a></li></ul>
                              </div>
                            </div>
                          </details></li><li><details id="Details-menu-drawer-menu-item-13">
                            <summary class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
                              Party &amp; Gifts
                              <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                              <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
</svg>

                            </summary>
                            <div id="link-party-gifts" class="menu-drawer__submenu has-submenu gradient motion-reduce" tabindex="-1">
                              <div class="menu-drawer__inner-submenu">
                                <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
                                  <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                                  Party &amp; Gifts
                                </button>
                                <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li><a href="/collections/bachelorette-party" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Bachelorette Party
                                        </a></li><li><a href="/collections/erotic-sex-candy" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Erotic Sex Candy
                                        </a></li><li><a href="/collections/gag-wear" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Gag Wear
                                        </a></li><li><a href="/collections/gift-bags" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Gift Bags
                                        </a></li><li><details id="Details-menu-drawer-submenu-5">
                                          <summary class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                            Holiday
                                            <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                                            <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
</svg>

                                          </summary>
                                          <div id="childlink-holiday" class="menu-drawer__submenu has-submenu gradient motion-reduce">
                                            <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true">
                                              <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                                              Holiday
                                            </button>
                                            <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li>
                                                  <a href="/collections/holiday-collection-dress" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    All Holiday
                                                  </a>
                                                </li><li>
                                                  <a href="/collections/christmas" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                                    Christmas
                                                  </a>
                                                </li></ul>
                                          </div>
                                        </details></li><li><a href="/collections/sensual-gift-sets" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Sensual Gift Sets
                                        </a></li><li><a href="/collections/sexy-gift-wrap" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Sexy Gift Wrap
                                        </a></li><li><a href="/collections/sexy-keychains" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Sexy Keychains
                                        </a></li><li><a href="/search" class="menu-drawer__menu-item link link--text list-menu__item focus-inset">
                                          Stimulants
                                        </a></li></ul>
                              </div>
                            </div>
                          </details></li><li><a href="https://playthingsmiami.com/blogs/naughty-us-sex-toys-blog" class="menu-drawer__menu-item list-menu__item link link--text focus-inset">
                            Blog
                          </a></li></ul>
                </nav>
                <div class="menu-drawer__utility-links"><a href="https://playthingsmiami.com/customer_authentication/redirect?locale=en&region_country=US" class="menu-drawer__account link focus-inset h5 medium-hide large-up-hide">
                      <svg
  xmlns="http://www.w3.org/2000/svg"
  aria-hidden="true"
  focusable="false"
  class="icon icon-account"
  fill="none"
  viewBox="0 0 18 19"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M6 4.5a3 3 0 116 0 3 3 0 01-6 0zm3-4a4 4 0 100 8 4 4 0 000-8zm5.58 12.15c1.12.82 1.83 2.24 1.91 4.85H1.51c.08-2.6.79-4.03 1.9-4.85C4.66 11.75 6.5 11.5 9 11.5s4.35.26 5.58 1.15zM9 10.5c-2.5 0-4.65.24-6.17 1.35C1.27 12.98.5 14.93.5 18v.5h17V18c0-3.07-.77-5.02-2.33-6.15-1.52-1.1-3.67-1.35-6.17-1.35z" fill="currentColor">
</svg>

Log in</a><div class="menu-drawer__localization header__localization">
</div><ul class="list list-social list-unstyled" role="list"><li class="list-social__item">
                        <a href="https://twitter.com/playthingsmiami" class="list-social__link link"><svg aria-hidden="true" focusable="false" class="icon icon-twitter" viewBox="0 0 18 15">
  <path fill="currentColor" d="M17.64 2.6a7.33 7.33 0 01-1.75 1.82c0 .05 0 .13.02.23l.02.23a9.97 9.97 0 01-1.69 5.54c-.57.85-1.24 1.62-2.02 2.28a9.09 9.09 0 01-2.82 1.6 10.23 10.23 0 01-8.9-.98c.34.02.61.04.83.04 1.64 0 3.1-.5 4.38-1.5a3.6 3.6 0 01-3.3-2.45A2.91 2.91 0 004 9.35a3.47 3.47 0 01-2.02-1.21 3.37 3.37 0 01-.8-2.22v-.03c.46.24.98.37 1.58.4a3.45 3.45 0 01-1.54-2.9c0-.61.14-1.2.45-1.79a9.68 9.68 0 003.2 2.6 10 10 0 004.08 1.07 3 3 0 01-.13-.8c0-.97.34-1.8 1.03-2.48A3.45 3.45 0 0112.4.96a3.49 3.49 0 012.54 1.1c.8-.15 1.54-.44 2.23-.85a3.4 3.4 0 01-1.54 1.94c.74-.1 1.4-.28 2.01-.54z">
</svg>
<span class="visually-hidden">Twitter</span>
                        </a>
                      </li><li class="list-social__item">
                        <a href="https://facebook.com/theplaythingsmiami" class="list-social__link link"><svg aria-hidden="true" focusable="false" class="icon icon-facebook" viewBox="0 0 18 18">
  <path fill="currentColor" d="M16.42.61c.27 0 .5.1.69.28.19.2.28.42.28.7v15.44c0 .27-.1.5-.28.69a.94.94 0 01-.7.28h-4.39v-6.7h2.25l.31-2.65h-2.56v-1.7c0-.4.1-.72.28-.93.18-.2.5-.32 1-.32h1.37V3.35c-.6-.06-1.27-.1-2.01-.1-1.01 0-1.83.3-2.45.9-.62.6-.93 1.44-.93 2.53v1.97H7.04v2.65h2.24V18H.98c-.28 0-.5-.1-.7-.28a.94.94 0 01-.28-.7V1.59c0-.27.1-.5.28-.69a.94.94 0 01.7-.28h15.44z">
</svg>
<span class="visually-hidden">Facebook</span>
                        </a>
                      </li><li class="list-social__item">
                        <a href="https://pinterest.com/playthingsmiami" class="list-social__link link"><svg aria-hidden="true" focusable="false" class="icon icon-pinterest" viewBox="0 0 17 18">
  <path fill="currentColor" d="M8.48.58a8.42 8.42 0 015.9 2.45 8.42 8.42 0 011.33 10.08 8.28 8.28 0 01-7.23 4.16 8.5 8.5 0 01-2.37-.32c.42-.68.7-1.29.85-1.8l.59-2.29c.14.28.41.52.8.73.4.2.8.31 1.24.31.87 0 1.65-.25 2.34-.75a4.87 4.87 0 001.6-2.05 7.3 7.3 0 00.56-2.93c0-1.3-.5-2.41-1.49-3.36a5.27 5.27 0 00-3.8-1.43c-.93 0-1.8.16-2.58.48A5.23 5.23 0 002.85 8.6c0 .75.14 1.41.43 1.98.28.56.7.96 1.27 1.2.1.04.19.04.26 0 .07-.03.12-.1.15-.2l.18-.68c.05-.15.02-.3-.11-.45a2.35 2.35 0 01-.57-1.63A3.96 3.96 0 018.6 4.8c1.09 0 1.94.3 2.54.89.61.6.92 1.37.92 2.32 0 .8-.11 1.54-.33 2.21a3.97 3.97 0 01-.93 1.62c-.4.4-.87.6-1.4.6-.43 0-.78-.15-1.06-.47-.27-.32-.36-.7-.26-1.13a111.14 111.14 0 01.47-1.6l.18-.73c.06-.26.09-.47.09-.65 0-.36-.1-.66-.28-.89-.2-.23-.47-.35-.83-.35-.45 0-.83.2-1.13.62-.3.41-.46.93-.46 1.56a4.1 4.1 0 00.18 1.15l.06.15c-.6 2.58-.95 4.1-1.08 4.54-.12.55-.16 1.2-.13 1.94a8.4 8.4 0 01-5-7.65c0-2.3.81-4.28 2.44-5.9A8.04 8.04 0 018.48.57z">
</svg>
<span class="visually-hidden">Pinterest</span>
                        </a>
                      </li><li class="list-social__item">
                        <a href="http://instagram.com/playthingsmiami" class="list-social__link link"><svg aria-hidden="true" focusable="false" class="icon icon-instagram" viewBox="0 0 18 18">
  <path fill="currentColor" d="M8.77 1.58c2.34 0 2.62.01 3.54.05.86.04 1.32.18 1.63.3.41.17.7.35 1.01.66.3.3.5.6.65 1 .12.32.27.78.3 1.64.05.92.06 1.2.06 3.54s-.01 2.62-.05 3.54a4.79 4.79 0 01-.3 1.63c-.17.41-.35.7-.66 1.01-.3.3-.6.5-1.01.66-.31.12-.77.26-1.63.3-.92.04-1.2.05-3.54.05s-2.62 0-3.55-.05a4.79 4.79 0 01-1.62-.3c-.42-.16-.7-.35-1.01-.66-.31-.3-.5-.6-.66-1a4.87 4.87 0 01-.3-1.64c-.04-.92-.05-1.2-.05-3.54s0-2.62.05-3.54c.04-.86.18-1.32.3-1.63.16-.41.35-.7.66-1.01.3-.3.6-.5 1-.65.32-.12.78-.27 1.63-.3.93-.05 1.2-.06 3.55-.06zm0-1.58C6.39 0 6.09.01 5.15.05c-.93.04-1.57.2-2.13.4-.57.23-1.06.54-1.55 1.02C1 1.96.7 2.45.46 3.02c-.22.56-.37 1.2-.4 2.13C0 6.1 0 6.4 0 8.77s.01 2.68.05 3.61c.04.94.2 1.57.4 2.13.23.58.54 1.07 1.02 1.56.49.48.98.78 1.55 1.01.56.22 1.2.37 2.13.4.94.05 1.24.06 3.62.06 2.39 0 2.68-.01 3.62-.05.93-.04 1.57-.2 2.13-.41a4.27 4.27 0 001.55-1.01c.49-.49.79-.98 1.01-1.56.22-.55.37-1.19.41-2.13.04-.93.05-1.23.05-3.61 0-2.39 0-2.68-.05-3.62a6.47 6.47 0 00-.4-2.13 4.27 4.27 0 00-1.02-1.55A4.35 4.35 0 0014.52.46a6.43 6.43 0 00-2.13-.41A69 69 0 008.77 0z"/>
  <path fill="currentColor" d="M8.8 4a4.5 4.5 0 100 9 4.5 4.5 0 000-9zm0 7.43a2.92 2.92 0 110-5.85 2.92 2.92 0 010 5.85zM13.43 5a1.05 1.05 0 100-2.1 1.05 1.05 0 000 2.1z">
</svg>
<span class="visually-hidden">Instagram</span>
                        </a>
                      </li></ul>
                </div>
              </div>
            </div>
          </div>
        </details>
      </header-drawer><h1 class="header__heading"><a href="/" class="header__heading-link link link--text focus-inset"><div class="header__heading-logo-wrapper">
                
                <img src="//playthingsmiami.com/cdn/shop/files/Playthings_Logo.jpg?v=1676958330&amp;width=600" alt="Playthings" srcset="//playthingsmiami.com/cdn/shop/files/Playthings_Logo.jpg?v=1676958330&amp;width=90 90w, //playthingsmiami.com/cdn/shop/files/Playthings_Logo.jpg?v=1676958330&amp;width=135 135w, //playthingsmiami.com/cdn/shop/files/Playthings_Logo.jpg?v=1676958330&amp;width=180 180w" width="90" height="117.6636288318144" loading="eager" class="header__heading-logo motion-reduce" sizes="(max-width: 180px) 50vw, 90px">
              </div></a></h1><nav class="header__inline-menu">
          <ul class="list-menu list-menu--inline" role="list"><li><header-menu>
                    <details id="Details-HeaderMenu-1" class="mega-menu">
                      <summary class="header__menu-item list-menu__item link focus-inset">
                        <span>Toys</span>
                        <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
</svg>

                      </summary>
                      <div id="MegaMenu-Content-1" class="mega-menu__content gradient motion-reduce global-settings-popup" tabindex="-1">
                        <ul class="mega-menu__list page-width" role="list"><li>
                              <a href="/collections/female-sex-toys" class="mega-menu__link mega-menu__link--level-2 link">
                                Toys For Her
                              </a><ul class="list-unstyled" role="list"><li>
                                      <a href="/collections/top-picks-women-toys" class="mega-menu__link link">
                                        Top Picks
                                      </a>
                                    </li><li>
                                      <a href="/collections/classic-vibrators" class="mega-menu__link link">
                                        Classic Vibrators
                                      </a>
                                    </li><li>
                                      <a href="/collections/dildos-and-dongs" class="mega-menu__link link">
                                        Dildos &amp; Dongs
                                      </a>
                                    </li><li>
                                      <a href="/collections/anal-toys" class="mega-menu__link link">
                                        Anal Toys
                                      </a>
                                    </li><li>
                                      <a href="/collections/butt-plugs" class="mega-menu__link link">
                                        Butt Plugs
                                      </a>
                                    </li><li>
                                      <a href="/collections/butterfly-vibrators" class="mega-menu__link link">
                                        Butterfly Vibrators
                                      </a>
                                    </li><li>
                                      <a href="/collections/clit-lickers" class="mega-menu__link link">
                                        Clit Lickers
                                      </a>
                                    </li><li>
                                      <a href="/collections/eggs-and-bullets" class="mega-menu__link link">
                                        Eggs &amp; Bullets
                                      </a>
                                    </li><li>
                                      <a href="/collections/glass-toys" class="mega-menu__link link">
                                        Glass Toys
                                      </a>
                                    </li><li>
                                      <a href="/collections/mini-stimulators" class="mega-menu__link link">
                                        Mini Stimulators
                                      </a>
                                    </li><li>
                                      <a href="/collections/silicone-stimulators" class="mega-menu__link link">
                                        Silicone Stimulators
                                      </a>
                                    </li><li>
                                      <a href="/collections/waterproof-stimulators" class="mega-menu__link link">
                                        Waterproof Stimulators
                                      </a>
                                    </li><li>
                                      <a href="/collections/wands" class="mega-menu__link link">
                                        Wands
                                      </a>
                                    </li></ul></li><li>
                              <a href="/collections/couples-vibrators" class="mega-menu__link mega-menu__link--level-2 link">
                                Toys For Couples
                              </a><ul class="list-unstyled" role="list"><li>
                                      <a href="/collections/cock-rings" class="mega-menu__link link">
                                        Cock Rings
                                      </a>
                                    </li><li>
                                      <a href="/collections/couples-vibrators" class="mega-menu__link link">
                                        Couples Vibrators
                                      </a>
                                    </li><li>
                                      <a href="/collections/bondage-kits" class="mega-menu__link link">
                                        Bondage Kits
                                      </a>
                                    </li><li>
                                      <a href="/collections/sensual-gift-sets" class="mega-menu__link link">
                                        Sexy Kits
                                      </a>
                                    </li><li>
                                      <a href="/collections/diy-sex-toys" class="mega-menu__link link">
                                        Clone-A-Willy Kits
                                      </a>
                                    </li><li>
                                      <a href="/collections/nipple-and-clit-clamps" class="mega-menu__link link">
                                        Nipple &amp; Clit Toys
                                      </a>
                                    </li><li>
                                      <a href="/collections/sex-furniture" class="mega-menu__link link">
                                        Sex Furniture
                                      </a>
                                    </li><li>
                                      <a href="/collections/sex-swings" class="mega-menu__link link">
                                        Sex Swings
                                      </a>
                                    </li><li>
                                      <a href="/collections/strap-ons" class="mega-menu__link link">
                                        Strap-Ons
                                      </a>
                                    </li></ul></li><li>
                              <a href="/collections/male-sex-toys" class="mega-menu__link mega-menu__link--level-2 link">
                                Toys For Him
                              </a><ul class="list-unstyled" role="list"><li>
                                      <a href="/collections/ass-masturbators" class="mega-menu__link link">
                                        Ass Masturbators
                                      </a>
                                    </li><li>
                                      <a href="/collections/celebrity-vaginas" class="mega-menu__link link">
                                        Celebrity Vaginas
                                      </a>
                                    </li><li>
                                      <a href="/collections/cock-rings" class="mega-menu__link link">
                                        Cock Rings
                                      </a>
                                    </li><li>
                                      <a href="/collections/mouth-mastubators" class="mega-menu__link link">
                                        Mouth Masturbators
                                      </a>
                                    </li><li>
                                      <a href="/collections/pocket-pussy" class="mega-menu__link link">
                                        Pocket Pussy
                                      </a>
                                    </li><li>
                                      <a href="/collections/realistic-vaginas" class="mega-menu__link link">
                                        Realistic Vaginas
                                      </a>
                                    </li><li>
                                      <a href="/collections/sex-dolls" class="mega-menu__link link">
                                        Sex Dolls
                                      </a>
                                    </li><li>
                                      <a href="/collections/strokers" class="mega-menu__link link">
                                        Strokers
                                      </a>
                                    </li></ul></li><li>
                              <a href="/collections/vibrators" class="mega-menu__link mega-menu__link--level-2 link">
                                All Vibrators
                              </a><ul class="list-unstyled" role="list"><li>
                                      <a href="/collections/finger-vibrators" class="mega-menu__link link">
                                        Finger Vibrators
                                      </a>
                                    </li><li>
                                      <a href="/collections/flexible-vibrators" class="mega-menu__link link">
                                        Flexible Vibrators
                                      </a>
                                    </li><li>
                                      <a href="/collections/g-spot-vibrators" class="mega-menu__link link">
                                        G-Spot Vibrators
                                      </a>
                                    </li><li>
                                      <a href="/collections/impulse-vibrators" class="mega-menu__link link">
                                        Impulse Vibrators
                                      </a>
                                    </li><li>
                                      <a href="/collections/jelly-vibrators" class="mega-menu__link link">
                                        Jelly Vibrators
                                      </a>
                                    </li><li>
                                      <a href="/collections/massage-mitts" class="mega-menu__link link">
                                        Massage Mitts
                                      </a>
                                    </li><li>
                                      <a href="/collections/vibrators-with-sleeves-attachments" class="mega-menu__link link">
                                        Massager Attachments
                                      </a>
                                    </li><li>
                                      <a href="/collections/massagers" class="mega-menu__link link">
                                        Massagers
                                      </a>
                                    </li><li>
                                      <a href="/collections/multi-function-vibrators" class="mega-menu__link link">
                                        Multi Function Vibrators
                                      </a>
                                    </li><li>
                                      <a href="/collections/multi-speed-vibrators" class="mega-menu__link link">
                                        Multi Speed Vibrators
                                      </a>
                                    </li><li>
                                      <a href="/collections/rabbit-vibrators" class="mega-menu__link link">
                                        Rabbit Vibrators
                                      </a>
                                    </li><li>
                                      <a href="/collections/silicone-vibrators" class="mega-menu__link link">
                                        Silicone Vibrators
                                      </a>
                                    </li><li>
                                      <a href="/collections/tongue-vibes" class="mega-menu__link link">
                                        Tongue Vibes
                                      </a>
                                    </li><li>
                                      <a href="/collections/waterproof-vibrators" class="mega-menu__link link">
                                        Waterproof Vibrators
                                      </a>
                                    </li></ul></li></ul>
                      </div>
                    </details>
                  </header-menu></li><li><a href="/collections/perfumes-and-colognes-pheromone-infused" class="header__menu-item list-menu__item link link--text focus-inset">
                    <span>Pheromone Infused Perfumes</span>
                  </a></li><li><header-menu>
                    <details id="Details-HeaderMenu-3" class="mega-menu">
                      <summary class="header__menu-item list-menu__item link focus-inset">
                        <span>Lubricants and Oils</span>
                        <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
</svg>

                      </summary>
                      <div id="MegaMenu-Content-3" class="mega-menu__content gradient motion-reduce global-settings-popup" tabindex="-1">
                        <ul class="mega-menu__list page-width mega-menu__list--condensed" role="list"><li>
                              <a href="/collections/lubrications" class="mega-menu__link mega-menu__link--level-2 link">
                                All Lubrications
                              </a></li><li>
                              <a href="/collections/anal-lubricant" class="mega-menu__link mega-menu__link--level-2 link">
                                Anal Lubes
                              </a></li><li>
                              <a href="/collections/edible-lubricants-and-more" class="mega-menu__link mega-menu__link--level-2 link">
                                Edible Lube
                              </a></li><li>
                              <a href="/collections/gels" class="mega-menu__link mega-menu__link--level-2 link">
                                Gels
                              </a></li><li>
                              <a href="/collections/personal-lubricants" class="mega-menu__link mega-menu__link--level-2 link">
                                Personal Lubricants
                              </a></li><li>
                              <a href="/collections/silicone-lubricants" class="mega-menu__link mega-menu__link--level-2 link">
                                Silicone Lubricant
                              </a></li><li>
                              <a href="/collections/warming-lubricants" class="mega-menu__link mega-menu__link--level-2 link">
                                Warming Lube
                              </a></li><li>
                              <a href="/collections/water-based-lubricants" class="mega-menu__link mega-menu__link--level-2 link">
                                Water Based Lubricant
                              </a></li><li>
                              <a href="/collections/massage-lotions-and-oils" class="mega-menu__link mega-menu__link--level-2 link">
                                Massage
                              </a></li><li>
                              <a href="/collections/female-sexual-enhancers" class="mega-menu__link mega-menu__link--level-2 link">
                                Stimulating Gels for Her
                              </a></li><li>
                              <a href="/collections/male-sexual-enhancers" class="mega-menu__link mega-menu__link--level-2 link">
                                Stimulating Gels for Him
                              </a></li></ul>
                      </div>
                    </details>
                  </header-menu></li><li><header-menu>
                    <details id="Details-HeaderMenu-4" class="mega-menu">
                      <summary class="header__menu-item list-menu__item link focus-inset">
                        <span>Bath &amp; Shower</span>
                        <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
</svg>

                      </summary>
                      <div id="MegaMenu-Content-4" class="mega-menu__content gradient motion-reduce global-settings-popup" tabindex="-1">
                        <ul class="mega-menu__list page-width" role="list"><li>
                              <a href="/collections/bath-and-shower" class="mega-menu__link mega-menu__link--level-2 link">
                                All Bath &amp; Shower
                              </a></li><li>
                              <a href="/collections/bath-salts" class="mega-menu__link mega-menu__link--level-2 link">
                                Bath Salts
                              </a></li><li>
                              <a href="/collections/candles" class="mega-menu__link mega-menu__link--level-2 link">
                                Candles
                              </a></li><li>
                              <a href="/collections/condoms" class="mega-menu__link mega-menu__link--level-2 link">
                                Condoms &amp; Safe Sex
                              </a><ul class="list-unstyled" role="list"><li>
                                      <a href="/collections/condoms" class="mega-menu__link link">
                                        All Condoms
                                      </a>
                                    </li><li>
                                      <a href="/collections/flavored-condoms" class="mega-menu__link link">
                                        Flavored Condoms
                                      </a>
                                    </li><li>
                                      <a href="/collections/latex-condoms" class="mega-menu__link link">
                                        Latex Condoms
                                      </a>
                                    </li><li>
                                      <a href="/collections/ribbed-condoms" class="mega-menu__link link">
                                        Ribbed Condoms
                                      </a>
                                    </li><li>
                                      <a href="/collections/ultra-thin-condoms" class="mega-menu__link link">
                                        Ultra Thin Condoms
                                      </a>
                                    </li></ul></li><li>
                              <a href="/collections/personal-hygiene" class="mega-menu__link mega-menu__link--level-2 link">
                                Personal Hygiene
                              </a><ul class="list-unstyled" role="list"><li>
                                      <a href="/collections/enema-douche" class="mega-menu__link link">
                                        Enema &amp; Douche
                                      </a>
                                    </li><li>
                                      <a href="/collections/adult-wet-wipes" class="mega-menu__link link">
                                        Wet Wipes
                                      </a>
                                    </li></ul></li></ul>
                      </div>
                    </details>
                  </header-menu></li><li><header-menu>
                    <details id="Details-HeaderMenu-5" class="mega-menu">
                      <summary class="header__menu-item list-menu__item link focus-inset">
                        <span>Dancers Boutique</span>
                        <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
</svg>

                      </summary>
                      <div id="MegaMenu-Content-5" class="mega-menu__content gradient motion-reduce global-settings-popup" tabindex="-1">
                        <ul class="mega-menu__list page-width" role="list"><li>
                              <a href="/collections/dance-poles" class="mega-menu__link mega-menu__link--level-2 link">
                                Dance Poles
                              </a></li><li>
                              <a href="/collections/club-wear" class="mega-menu__link mega-menu__link--level-2 link">
                                Dancer Wear
                              </a></li><li>
                              <a href="/collections/shoes-heels-exotic-dancer" class="mega-menu__link mega-menu__link--level-2 link">
                                Shoes
                              </a><ul class="list-unstyled" role="list"><li>
                                      <a href="/collections/shoes-heels-exotic-dancer/Boots" class="mega-menu__link link">
                                        Boots
                                      </a>
                                    </li><li>
                                      <a href="/collections/stilletos/heel" class="mega-menu__link link">
                                        Stilletos
                                      </a>
                                    </li></ul></li></ul>
                      </div>
                    </details>
                  </header-menu></li><li><header-menu>
                    <details id="Details-HeaderMenu-6" class="mega-menu">
                      <summary class="header__menu-item list-menu__item link focus-inset">
                        <span>Bondage S&amp;M</span>
                        <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
</svg>

                      </summary>
                      <div id="MegaMenu-Content-6" class="mega-menu__content gradient motion-reduce global-settings-popup" tabindex="-1">
                        <ul class="mega-menu__list page-width mega-menu__list--condensed" role="list"><li>
                              <a href="/collections/ankle-restraints" class="mega-menu__link mega-menu__link--level-2 link">
                                Ankle Restraints
                              </a></li><li>
                              <a href="/collections/ball-gags" class="mega-menu__link mega-menu__link--level-2 link">
                                Ball Gags
                              </a></li><li>
                              <a href="/collections/blindfolds" class="mega-menu__link mega-menu__link--level-2 link">
                                Blindfolds
                              </a></li><li>
                              <a href="/collections/bondage-collars-leashes" class="mega-menu__link mega-menu__link--level-2 link">
                                Bondage Collars
                              </a></li><li>
                              <a href="/collections/bondage-crops" class="mega-menu__link mega-menu__link--level-2 link">
                                Bondage Crops
                              </a></li><li>
                              <a href="/collections/bondage-rope-and-tape" class="mega-menu__link mega-menu__link--level-2 link">
                                Bondage Ropes &amp; Tape
                              </a></li><li>
                              <a href="/collections/chasity-belts" class="mega-menu__link mega-menu__link--level-2 link">
                                Chastity Belts
                              </a></li><li>
                              <a href="/collections/feather-ticklers" class="mega-menu__link mega-menu__link--level-2 link">
                                Feather Ticklers
                              </a></li><li>
                              <a href="/collections/handcuffs" class="mega-menu__link mega-menu__link--level-2 link">
                                Handcuffs
                              </a></li><li>
                              <a href="/collections/hoods-and-masks" class="mega-menu__link mega-menu__link--level-2 link">
                                Hoods &amp; Masks
                              </a></li><li>
                              <a href="/collections/leather-bondage" class="mega-menu__link mega-menu__link--level-2 link">
                                Leather Bondage
                              </a></li><li>
                              <a href="/collections/sex-position-straps" class="mega-menu__link mega-menu__link--level-2 link">
                                Sex Position Straps
                              </a></li><li>
                              <a href="/collections/slappers" class="mega-menu__link mega-menu__link--level-2 link">
                                Slappers
                              </a></li><li>
                              <a href="/collections/whips" class="mega-menu__link mega-menu__link--level-2 link">
                                Whips
                              </a></li><li>
                              <a href="/collections/nipple-and-clit-clamps" class="mega-menu__link mega-menu__link--level-2 link">
                                Nipple &amp; Clit Clamps
                              </a></li><li>
                              <a href="/collections/restraints" class="mega-menu__link mega-menu__link--level-2 link">
                                Restraints
                              </a></li></ul>
                      </div>
                    </details>
                  </header-menu></li><li><header-menu>
                    <details id="Details-HeaderMenu-7" class="mega-menu">
                      <summary class="header__menu-item list-menu__item link focus-inset">
                        <span>Accessories</span>
                        <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
</svg>

                      </summary>
                      <div id="MegaMenu-Content-7" class="mega-menu__content gradient motion-reduce global-settings-popup" tabindex="-1">
                        <ul class="mega-menu__list page-width mega-menu__list--condensed" role="list"><li>
                              <a href="/collections/accessories-costume-kits" class="mega-menu__link mega-menu__link--level-2 link">
                                All Accessories
                              </a></li><li>
                              <a href="/collections/body-art-jewelry" class="mega-menu__link mega-menu__link--level-2 link">
                                Body Art &amp; Jewelry
                              </a></li><li>
                              <a href="/collections/gloves" class="mega-menu__link mega-menu__link--level-2 link">
                                Gloves
                              </a></li><li>
                              <a href="/collections/pasties" class="mega-menu__link mega-menu__link--level-2 link">
                                Pasties
                              </a></li><li>
                              <a href="/collections/stockings" class="mega-menu__link mega-menu__link--level-2 link">
                                Stockings
                              </a></li><li>
                              <a href="/collections/wigs" class="mega-menu__link mega-menu__link--level-2 link">
                                Wigs
                              </a></li></ul>
                      </div>
                    </details>
                  </header-menu></li><li><header-menu>
                    <details id="Details-HeaderMenu-8" class="mega-menu">
                      <summary class="header__menu-item list-menu__item link focus-inset">
                        <span>Costumes</span>
                        <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
</svg>

                      </summary>
                      <div id="MegaMenu-Content-8" class="mega-menu__content gradient motion-reduce global-settings-popup" tabindex="-1">
                        <ul class="mega-menu__list page-width mega-menu__list--condensed" role="list"><li>
                              <a href="/collections/exclusive-costumes-sexy" class="mega-menu__link mega-menu__link--level-2 link">
                                Playthings&#39; Exclusive Costumes
                              </a></li><li>
                              <a href="/collections/angels-fairies/Angels-&-Devils" class="mega-menu__link mega-menu__link--level-2 link">
                                Angels &amp; Devils
                              </a></li><li>
                              <a href="/collections/animals" class="mega-menu__link mega-menu__link--level-2 link">
                                Animals
                              </a></li><li>
                              <a href="/collections/astronauts-and-aliens" class="mega-menu__link mega-menu__link--level-2 link">
                                Astronauts and Aliens
                              </a></li><li>
                              <a href="/collections/beer-girl" class="mega-menu__link mega-menu__link--level-2 link">
                                Beer Girl
                              </a></li><li>
                              <a href="/collections/celebrities" class="mega-menu__link mega-menu__link--level-2 link">
                                Celebrities
                              </a></li><li>
                              <a href="/collections/circus" class="mega-menu__link mega-menu__link--level-2 link">
                                Circus
                              </a></li><li>
                              <a href="/collections/cops-robbers" class="mega-menu__link mega-menu__link--level-2 link">
                                Cops &amp; Robbers
                              </a></li><li>
                              <a href="/collections/cowgirls-native-americans" class="mega-menu__link mega-menu__link--level-2 link">
                                Cowgirls &amp; Native Americans
                              </a></li><li>
                              <a href="/collections/day-of-the-dead-and-skulls" class="mega-menu__link mega-menu__link--level-2 link">
                                Day of the Dead and Skulls
                              </a></li><li>
                              <a href="/collections/decades-time-periods" class="mega-menu__link mega-menu__link--level-2 link">
                                Decades/Time Periods
                              </a></li><li>
                              <a href="/collections/egyptian-costumes" class="mega-menu__link mega-menu__link--level-2 link">
                                 Egyptian
                              </a></li><li>
                              <a href="/collections/fairies-and-butterflies" class="mega-menu__link mega-menu__link--level-2 link">
                                Fairies and Butterflies
                              </a></li><li>
                              <a href="/collections/fairy-tale-and-movies-characters" class="mega-menu__link mega-menu__link--level-2 link">
                                Fairy Tales and Movie Charaters
                              </a></li><li>
                              <a href="/collections/fire-fighters" class="mega-menu__link mega-menu__link--level-2 link">
                                Fire Fighters
                              </a></li><li>
                              <a href="/collections/horror-movies" class="mega-menu__link mega-menu__link--level-2 link">
                                Horror Movies
                              </a></li><li>
                              <a href="/collections/maids" class="mega-menu__link mega-menu__link--level-2 link">
                                Maids
                              </a></li><li>
                              <a href="/collections/mermaids-and-sea-creatures" class="mega-menu__link mega-menu__link--level-2 link">
                                Mermaids and Sea Creatures
                              </a></li><li>
                              <a href="/collections/military-and-armed-forces" class="mega-menu__link mega-menu__link--level-2 link">
                                Military
                              </a></li><li>
                              <a href="/collections/ninjas" class="mega-menu__link mega-menu__link--level-2 link">
                                Ninjas
                              </a></li><li>
                              <a href="/collections/nuns" class="mega-menu__link mega-menu__link--level-2 link">
                                Nuns
                              </a></li><li>
                              <a href="/collections/nurses-and-doctors-medical" class="mega-menu__link mega-menu__link--level-2 link">
                                Nurse/Medical
                              </a></li><li>
                              <a href="/collections/pirates" class="mega-menu__link mega-menu__link--level-2 link">
                                Pirates
                              </a></li><li>
                              <a href="/collections/school-girls" class="mega-menu__link mega-menu__link--level-2 link">
                                School Girls
                              </a></li><li>
                              <a href="/collections/super-heroes-and-villains" class="mega-menu__link mega-menu__link--level-2 link">
                                Super Heroes and Villains
                              </a></li><li>
                              <a href="/collections/vampires" class="mega-menu__link mega-menu__link--level-2 link">
                                Vampires
                              </a></li><li>
                              <a href="/collections/witches" class="mega-menu__link mega-menu__link--level-2 link">
                                Witches
                              </a></li><li>
                              <a href="/collections/workers-uniforms-jobs" class="mega-menu__link mega-menu__link--level-2 link">
                                Workers/Jobs
                              </a></li><li>
                              <a href="/collections/mens-costumes" class="mega-menu__link mega-menu__link--level-2 link">
                                Men&#39;s Costumes
                              </a></li><li>
                              <a href="/collections/costumes" class="mega-menu__link mega-menu__link--level-2 link">
                                All Costumes
                              </a></li><li>
                              <a href="/collections/plus-size-costumes" class="mega-menu__link mega-menu__link--level-2 link">
                                Plus Size Costumes
                              </a></li></ul>
                      </div>
                    </details>
                  </header-menu></li><li><header-menu>
                    <details id="Details-HeaderMenu-9" class="mega-menu">
                      <summary class="header__menu-item list-menu__item link focus-inset">
                        <span>Clothing Boutique</span>
                        <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
</svg>

                      </summary>
                      <div id="MegaMenu-Content-9" class="mega-menu__content gradient motion-reduce global-settings-popup" tabindex="-1">
                        <ul class="mega-menu__list page-width" role="list"><li>
                              <a href="/collections/corsets-training" class="mega-menu__link mega-menu__link--level-2 link">
                                Corsets
                              </a></li><li>
                              <a href="/collections/clothing" class="mega-menu__link mega-menu__link--level-2 link">
                                Clubwear
                              </a></li><li>
                              <a href="/collections/ravewear" class="mega-menu__link mega-menu__link--level-2 link">
                                Festival
                              </a></li><li>
                              <a href="/collections/lingerie/Lingerie" class="mega-menu__link mega-menu__link--level-2 link">
                                Lingerie
                              </a><ul class="list-unstyled" role="list"><li>
                                      <a href="/collections/g-strings-and-panties" class="mega-menu__link link">
                                        G-Strings &amp; Panties
                                      </a>
                                    </li></ul></li></ul>
                      </div>
                    </details>
                  </header-menu></li><li><header-menu>
                    <details id="Details-HeaderMenu-10" class="mega-menu">
                      <summary class="header__menu-item list-menu__item link focus-inset">
                        <span>Men&#39;s Clothing</span>
                        <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
</svg>

                      </summary>
                      <div id="MegaMenu-Content-10" class="mega-menu__content gradient motion-reduce global-settings-popup" tabindex="-1">
                        <ul class="mega-menu__list page-width mega-menu__list--condensed" role="list"><li>
                              <a href="/collections/sexy-stuff-for-men" class="mega-menu__link mega-menu__link--level-2 link">
                                Sexy Clothes for Men
                              </a></li><li>
                              <a href="/collections/mens-festival-clothing" class="mega-menu__link mega-menu__link--level-2 link">
                                Men&#39;s Festival Clothing
                              </a></li></ul>
                      </div>
                    </details>
                  </header-menu></li><li><a href="/collections/summer-collection-swimwear" class="header__menu-item list-menu__item link link--text focus-inset">
                    <span>Swimwear</span>
                  </a></li><li><header-menu>
                    <details id="Details-HeaderMenu-12" class="mega-menu">
                      <summary class="header__menu-item list-menu__item link focus-inset">
                        <span>Shoes</span>
                        <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
</svg>

                      </summary>
                      <div id="MegaMenu-Content-12" class="mega-menu__content gradient motion-reduce global-settings-popup" tabindex="-1">
                        <ul class="mega-menu__list page-width mega-menu__list--condensed" role="list"><li>
                              <a href="/collections/boots" class="mega-menu__link mega-menu__link--level-2 link">
                                Boots
                              </a></li><li>
                              <a href="/collections/sexy-shoes" class="mega-menu__link mega-menu__link--level-2 link">
                                Dancer Shoes
                              </a></li><li>
                              <a href="/collections/festival-shoes" class="mega-menu__link mega-menu__link--level-2 link">
                                Festival/Rave Shoes
                              </a></li><li>
                              <a href="/collections/competition-shoes" class="mega-menu__link mega-menu__link--level-2 link">
                                Fit Competition Shoes
                              </a></li></ul>
                      </div>
                    </details>
                  </header-menu></li><li><header-menu>
                    <details id="Details-HeaderMenu-13" class="mega-menu">
                      <summary class="header__menu-item list-menu__item link focus-inset">
                        <span>Party &amp; Gifts</span>
                        <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6">
  <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor">
</svg>

                      </summary>
                      <div id="MegaMenu-Content-13" class="mega-menu__content gradient motion-reduce global-settings-popup" tabindex="-1">
                        <ul class="mega-menu__list page-width" role="list"><li>
                              <a href="/collections/bachelorette-party" class="mega-menu__link mega-menu__link--level-2 link">
                                Bachelorette Party
                              </a></li><li>
                              <a href="/collections/erotic-sex-candy" class="mega-menu__link mega-menu__link--level-2 link">
                                Erotic Sex Candy
                              </a></li><li>
                              <a href="/collections/gag-wear" class="mega-menu__link mega-menu__link--level-2 link">
                                Gag Wear
                              </a></li><li>
                              <a href="/collections/gift-bags" class="mega-menu__link mega-menu__link--level-2 link">
                                Gift Bags
                              </a></li><li>
                              <a href="/collections/holiday-collection-dress" class="mega-menu__link mega-menu__link--level-2 link">
                                Holiday
                              </a><ul class="list-unstyled" role="list"><li>
                                      <a href="/collections/holiday-collection-dress" class="mega-menu__link link">
                                        All Holiday
                                      </a>
                                    </li><li>
                                      <a href="/collections/christmas" class="mega-menu__link link">
                                        Christmas
                                      </a>
                                    </li></ul></li><li>
                              <a href="/collections/sensual-gift-sets" class="mega-menu__link mega-menu__link--level-2 link">
                                Sensual Gift Sets
                              </a></li><li>
                              <a href="/collections/sexy-gift-wrap" class="mega-menu__link mega-menu__link--level-2 link">
                                Sexy Gift Wrap
                              </a></li><li>
                              <a href="/collections/sexy-keychains" class="mega-menu__link mega-menu__link--level-2 link">
                                Sexy Keychains
                              </a></li><li>
                              <a href="/search" class="mega-menu__link mega-menu__link--level-2 link">
                                Stimulants
                              </a></li></ul>
                      </div>
                    </details>
                  </header-menu></li><li><a href="https://playthingsmiami.com/blogs/naughty-us-sex-toys-blog" class="header__menu-item list-menu__item link link--text focus-inset">
                    <span>Blog</span>
                  </a></li></ul>
        </nav><div class="header__icons header__icons--localization header__localization">
      <div class="desktop-localization-wrapper">
</div>
      <details-modal class="header__search">
        <details>
          <summary class="header__icon header__icon--search header__icon--summary link focus-inset modal__toggle" aria-haspopup="dialog" aria-label="Search">
            <span>
              <svg class="modal__toggle-open icon icon-search" aria-hidden="true" focusable="false">
                <use href="#icon-search">
              </svg>
              <svg class="modal__toggle-close icon icon-close" aria-hidden="true" focusable="false">
                <use href="#icon-close">
              </svg>
            </span>
          </summary>
          <div class="search-modal modal__content gradient" role="dialog" aria-modal="true" aria-label="Search">
            <div class="modal-overlay"></div>
            <div class="search-modal__content search-modal__content-bottom" tabindex="-1"><predictive-search class="search-modal__form" data-loading-text="Loading..."><form action="/search" method="get" role="search" class="search search-modal__form">
                    <div class="field">
                      <input class="search__input field__input"
                        id="Search-In-Modal"
                        type="search"
                        name="q"
                        value=""
                        placeholder="Search"role="combobox"
                          aria-expanded="false"
                          aria-owns="predictive-search-results"
                          aria-controls="predictive-search-results"
                          aria-haspopup="listbox"
                          aria-autocomplete="list"
                          autocorrect="off"
                          autocomplete="off"
                          autocapitalize="off"
                          spellcheck="false">
                      <label class="field__label" for="Search-In-Modal">Search</label>
                      <input type="hidden" name="options[prefix]" value="last">
                      <button type="reset" class="reset__button field__button hidden" aria-label="Clear search term">
                        <svg class="icon icon-close" aria-hidden="true" focusable="false">
                          <use xlink:href="#icon-reset">
                        </svg>
                      </button>
                      <button class="search__button field__button" aria-label="Search">
                        <svg class="icon icon-search" aria-hidden="true" focusable="false">
                          <use href="#icon-search">
                        </svg>
                      </button>
                    </div><div class="predictive-search predictive-search--header" tabindex="-1" data-predictive-search>
                        <div class="predictive-search__loading-state">
                          <svg aria-hidden="true" focusable="false" class="spinner" viewBox="0 0 66 66" xmlns="http://www.w3.org/2000/svg">
                            <circle class="path" fill="none" stroke-width="6" cx="33" cy="33" r="30"></circle>
                          </svg>
                        </div>
                      </div>

                      <span class="predictive-search-status visually-hidden" role="status" aria-hidden="true"></span></form></predictive-search><button type="button" class="search-modal__close-button modal__close-button link link--text focus-inset" aria-label="Close">
                <svg class="icon icon-close" aria-hidden="true" focusable="false">
                  <use href="#icon-close">
                </svg>
              </button>
            </div>
          </div>
        </details>
      </details-modal><a href="https://playthingsmiami.com/customer_authentication/redirect?locale=en&region_country=US" class="header__icon header__icon--account link focus-inset small-hide">
          <svg
  xmlns="http://www.w3.org/2000/svg"
  aria-hidden="true"
  focusable="false"
  class="icon icon-account"
  fill="none"
  viewBox="0 0 18 19"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M6 4.5a3 3 0 116 0 3 3 0 01-6 0zm3-4a4 4 0 100 8 4 4 0 000-8zm5.58 12.15c1.12.82 1.83 2.24 1.91 4.85H1.51c.08-2.6.79-4.03 1.9-4.85C4.66 11.75 6.5 11.5 9 11.5s4.35.26 5.58 1.15zM9 10.5c-2.5 0-4.65.24-6.17 1.35C1.27 12.98.5 14.93.5 18v.5h17V18c0-3.07-.77-5.02-2.33-6.15-1.52-1.1-3.67-1.35-6.17-1.35z" fill="currentColor">
</svg>

          <span class="visually-hidden">Log in</span>
        </a><a href="/cart" class="header__icon header__icon--cart link focus-inset" id="cart-icon-bubble"><svg
  class="icon icon-cart-empty"
  aria-hidden="true"
  focusable="false"
  xmlns="http://www.w3.org/2000/svg"
  viewBox="0 0 40 40"
  fill="none"
>
  <path d="m15.75 11.8h-3.16l-.77 11.6a5 5 0 0 0 4.99 5.34h7.38a5 5 0 0 0 4.99-5.33l-.78-11.61zm0 1h-2.22l-.71 10.67a4 4 0 0 0 3.99 4.27h7.38a4 4 0 0 0 4-4.27l-.72-10.67h-2.22v.63a4.75 4.75 0 1 1 -9.5 0zm8.5 0h-7.5v.63a3.75 3.75 0 1 0 7.5 0z" fill="currentColor" fill-rule="evenodd"/>
</svg>
<span class="visually-hidden">Cart</span></a>
    </div>
  </header>
</sticky-header>

<cart-notification>
  <div class="cart-notification-wrapper page-width">
    <div
      id="cart-notification"
      class="cart-notification focus-inset color-background-1 gradient"
      aria-modal="true"
      aria-label="Item added to your cart"
      role="dialog"
      tabindex="-1"
    >
      <div class="cart-notification__header">
        <h2 class="cart-notification__heading caption-large text-body"><svg
  class="icon icon-checkmark color-foreground-text"
  aria-hidden="true"
  focusable="false"
  xmlns="http://www.w3.org/2000/svg"
  viewBox="0 0 12 9"
  fill="none"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M11.35.643a.5.5 0 01.006.707l-6.77 6.886a.5.5 0 01-.719-.006L.638 4.845a.5.5 0 11.724-.69l2.872 3.011 6.41-6.517a.5.5 0 01.707-.006h-.001z" fill="currentColor"/>
</svg>
Item added to your cart
        </h2>
        <button
          type="button"
          class="cart-notification__close modal__close-button link link--text focus-inset"
          aria-label="Close"
        >
          <svg class="icon icon-close" aria-hidden="true" focusable="false">
            <use href="#icon-close">
          </svg>
        </button>
      </div>
      <div id="cart-notification-product" class="cart-notification-product"></div>
      <div class="cart-notification__links">
        <a
          href="/cart"
          id="cart-notification-button"
          class="button button--secondary button--full-width"
        >View cart</a>
        <form action="/cart" method="post" id="cart-notification-form">
          <button class="button button--primary button--full-width" name="checkout">
            Check out
          </button>
        </form>
        <button type="button" class="link button-label">Continue shopping</button>
      </div>
    </div>
  </div>
</cart-notification>
<style data-shopify>
  .cart-notification {
    display: none;
  }
</style>


<script type="application/ld+json">
  {
    "@context": "http://schema.org",
    "@type": "Organization",
    "name": "Playthings",
    
      "logo": "https:\/\/playthingsmiami.com\/cdn\/shop\/files\/Playthings_Logo.jpg?v=1676958330\u0026width=500",
    
    "sameAs": [
      "https:\/\/twitter.com\/playthingsmiami",
      "https:\/\/facebook.com\/theplaythingsmiami",
      "https:\/\/pinterest.com\/playthingsmiami",
      "http:\/\/instagram.com\/playthingsmiami",
      "",
      "",
      "",
      "",
      ""
    ],
    "url": "https:\/\/playthingsmiami.com"
  }
</script>
  <script type="application/ld+json">
    {
      "@context": "http://schema.org",
      "@type": "WebSite",
      "name": "Playthings",
      "potentialAction": {
        "@type": "SearchAction",
        "target": "https:\/\/playthingsmiami.com\/search?q={search_term_string}",
        "query-input": "required name=search_term_string"
      },
      "url": "https:\/\/playthingsmiami.com"
    }
  </script>
</div>
<!-- END sections: header-group -->

    <main id="MainContent" class="content-for-layout focus-none" role="main" tabindex="-1">
      <div id="shopify-section-template--16799920750808__52530f4e-1586-4356-aaec-02a18123c551" class="shopify-section section"><link href="//playthingsmiami.com/cdn/shop/t/14/assets/component-image-with-text.css?v=137828147691215233621680629356" rel="stylesheet" type="text/css" media="all" />
<style data-shopify>.section-template--16799920750808__52530f4e-1586-4356-aaec-02a18123c551-padding {
    padding-top: 27px;
    padding-bottom: 27px;
  }

  @media screen and (min-width: 750px) {
    .section-template--16799920750808__52530f4e-1586-4356-aaec-02a18123c551-padding {
      padding-top: 36px;
      padding-bottom: 36px;
    }
  }</style><div class="multirow section-template--16799920750808__52530f4e-1586-4356-aaec-02a18123c551-padding gradient color-background-1">
  <div class="multirow__inner page-width"><div
        class="image-with-text isolate collapse-padding"
        
      >
        <div class="image-with-text__grid grid grid--gapless grid--1-col grid--2-col-tablet">
          <div class="image-with-text__media-item image-with-text__media-item--medium image-with-text__media-item--middle grid__item">
            <div
              class="image-with-text__media image-with-text__media--medium gradient color-background-1 global-media-settings media"
              
            ><img src="//playthingsmiami.com/cdn/shop/files/Volume_12_Mobile_Banner.jpg?v=1774971654&amp;width=1500" alt="" srcset="//playthingsmiami.com/cdn/shop/files/Volume_12_Mobile_Banner.jpg?v=1774971654&amp;width=165 165w, //playthingsmiami.com/cdn/shop/files/Volume_12_Mobile_Banner.jpg?v=1774971654&amp;width=360 360w, //playthingsmiami.com/cdn/shop/files/Volume_12_Mobile_Banner.jpg?v=1774971654&amp;width=535 535w, //playthingsmiami.com/cdn/shop/files/Volume_12_Mobile_Banner.jpg?v=1774971654&amp;width=750 750w, //playthingsmiami.com/cdn/shop/files/Volume_12_Mobile_Banner.jpg?v=1774971654&amp;width=1070 1070w, //playthingsmiami.com/cdn/shop/files/Volume_12_Mobile_Banner.jpg?v=1774971654&amp;width=1500 1500w" width="1500" height="1771" loading="lazy" sizes="(min-width: 1200px) 550px,
                  (min-width: 750px) calc((100vw - 130px) / 2), calc((100vw - 50px) / 2)">
</div>
          </div>
          <div class="image-with-text__text-item grid__item">
            <div class="image-with-text__content image-with-text__content--middle image-with-text__content--desktop-left image-with-text__content--mobile-left image-with-text__content--medium content-container"><p class="image-with-text__text image-with-text__text--caption caption-with-letter-spacing caption-with-letter-spacing--medium">
                  Festival Outfits
                </p><h2 class="image-with-text__heading h1 rte">
                  Rave
                </h2><div class="image-with-text__text rte body"><p>Unique collection of sexy festival clothing</p></div><a
                  
                    href="/collections/ravewear"
                  
                  class="button button--secondary"
                >
                  Shop Now
                </a></div>
          </div>
        </div>
      </div><div
        class="image-with-text isolate collapse-padding"
        
      >
        <div class="image-with-text__grid grid grid--gapless grid--1-col grid--2-col-tablet">
          <div class="image-with-text__media-item image-with-text__media-item--medium image-with-text__media-item--middle grid__item">
            <div
              class="image-with-text__media image-with-text__media--medium gradient color-background-1 global-media-settings media"
              
            ><img src="//playthingsmiami.com/cdn/shop/files/feature-wetforher-christmasguide.webp?v=1747311204&amp;width=1500" alt="" srcset="//playthingsmiami.com/cdn/shop/files/feature-wetforher-christmasguide.webp?v=1747311204&amp;width=165 165w, //playthingsmiami.com/cdn/shop/files/feature-wetforher-christmasguide.webp?v=1747311204&amp;width=360 360w, //playthingsmiami.com/cdn/shop/files/feature-wetforher-christmasguide.webp?v=1747311204&amp;width=535 535w, //playthingsmiami.com/cdn/shop/files/feature-wetforher-christmasguide.webp?v=1747311204&amp;width=750 750w, //playthingsmiami.com/cdn/shop/files/feature-wetforher-christmasguide.webp?v=1747311204&amp;width=1070 1070w, //playthingsmiami.com/cdn/shop/files/feature-wetforher-christmasguide.webp?v=1747311204&amp;width=1500 1500w" width="1500" height="844" loading="lazy" sizes="(min-width: 1200px) 550px,
                  (min-width: 750px) calc((100vw - 130px) / 2), calc((100vw - 50px) / 2)">
</div>
          </div>
          <div class="image-with-text__text-item grid__item">
            <div class="image-with-text__content image-with-text__content--middle image-with-text__content--desktop-left image-with-text__content--mobile-left image-with-text__content--medium content-container"><p class="image-with-text__text image-with-text__text--caption caption-with-letter-spacing caption-with-letter-spacing--medium">
                  Playtime Starts Here
                </p><h2 class="image-with-text__heading h1 rte">
                  Toys that Play Hard!
                </h2><div class="image-with-text__text rte body"></div><a
                  
                    href="/collections/adult-toys"
                  
                  class="button button--secondary"
                >
                  Shop Now
                </a></div>
          </div>
        </div>
      </div><div
        class="image-with-text isolate collapse-padding"
        
      >
        <div class="image-with-text__grid grid grid--gapless grid--1-col grid--2-col-tablet">
          <div class="image-with-text__media-item image-with-text__media-item--medium image-with-text__media-item--middle grid__item">
            <div
              class="image-with-text__media image-with-text__media--medium gradient color-background-1 global-media-settings media"
              
            ><img src="//playthingsmiami.com/cdn/shop/files/lube-lead-1564599387.png?v=1614301483&amp;width=1500" alt="" srcset="//playthingsmiami.com/cdn/shop/files/lube-lead-1564599387.png?v=1614301483&amp;width=165 165w, //playthingsmiami.com/cdn/shop/files/lube-lead-1564599387.png?v=1614301483&amp;width=360 360w, //playthingsmiami.com/cdn/shop/files/lube-lead-1564599387.png?v=1614301483&amp;width=535 535w, //playthingsmiami.com/cdn/shop/files/lube-lead-1564599387.png?v=1614301483&amp;width=750 750w, //playthingsmiami.com/cdn/shop/files/lube-lead-1564599387.png?v=1614301483&amp;width=1070 1070w, //playthingsmiami.com/cdn/shop/files/lube-lead-1564599387.png?v=1614301483&amp;width=1500 1500w" width="1500" height="750" loading="lazy" sizes="(min-width: 1200px) 550px,
                  (min-width: 750px) calc((100vw - 130px) / 2), calc((100vw - 50px) / 2)">
</div>
          </div>
          <div class="image-with-text__text-item grid__item">
            <div class="image-with-text__content image-with-text__content--middle image-with-text__content--desktop-left image-with-text__content--mobile-left image-with-text__content--medium content-container"><p class="image-with-text__text image-with-text__text--caption caption-with-letter-spacing caption-with-letter-spacing--medium">
                  Sensual
                </p><h2 class="image-with-text__heading h1 rte">
                  Lubricants
                </h2><div class="image-with-text__text rte body"><p>Enhance your Intimacy</p></div><a
                  
                    href="/collections/adult-supplements"
                  
                  class="button button--secondary"
                >
                  Shop Now
                </a></div>
          </div>
        </div>
      </div><div
        class="image-with-text isolate collapse-padding"
        
      >
        <div class="image-with-text__grid grid grid--gapless grid--1-col grid--2-col-tablet">
          <div class="image-with-text__media-item image-with-text__media-item--medium image-with-text__media-item--middle grid__item">
            <div
              class="image-with-text__media image-with-text__media--medium gradient color-background-1 global-media-settings media"
              
            ><img src="//playthingsmiami.com/cdn/shop/files/81Ad-VckuSL._AC_UF350_350_QL80.jpg?v=1747310727&amp;width=1500" alt="" srcset="//playthingsmiami.com/cdn/shop/files/81Ad-VckuSL._AC_UF350_350_QL80.jpg?v=1747310727&amp;width=165 165w, //playthingsmiami.com/cdn/shop/files/81Ad-VckuSL._AC_UF350_350_QL80.jpg?v=1747310727&amp;width=360 360w, //playthingsmiami.com/cdn/shop/files/81Ad-VckuSL._AC_UF350_350_QL80.jpg?v=1747310727&amp;width=535 535w, //playthingsmiami.com/cdn/shop/files/81Ad-VckuSL._AC_UF350_350_QL80.jpg?v=1747310727&amp;width=750 750w, //playthingsmiami.com/cdn/shop/files/81Ad-VckuSL._AC_UF350_350_QL80.jpg?v=1747310727&amp;width=1070 1070w, //playthingsmiami.com/cdn/shop/files/81Ad-VckuSL._AC_UF350_350_QL80.jpg?v=1747310727&amp;width=1500 1500w" width="1500" height="1500" loading="lazy" sizes="(min-width: 1200px) 550px,
                  (min-width: 750px) calc((100vw - 130px) / 2), calc((100vw - 50px) / 2)">
</div>
          </div>
          <div class="image-with-text__text-item grid__item">
            <div class="image-with-text__content image-with-text__content--middle image-with-text__content--desktop-left image-with-text__content--mobile-left image-with-text__content--medium content-container"><p class="image-with-text__text image-with-text__text--caption caption-with-letter-spacing caption-with-letter-spacing--medium">
                  Perfumes
                </p><h2 class="image-with-text__heading h1 rte">
                  Spray. Play. Repeat.
                </h2><div class="image-with-text__text rte body"><p>Let the Pheromone perfumes do the flirting for you!</p></div><a
                  
                    href="/collections/perfumes-and-colognes-pheromone-infused"
                  
                  class="button button--secondary"
                >
                  Shop Now
                </a></div>
          </div>
        </div>
      </div><div
        class="image-with-text isolate collapse-padding"
        
      >
        <div class="image-with-text__grid grid grid--gapless grid--1-col grid--2-col-tablet">
          <div class="image-with-text__media-item image-with-text__media-item--medium image-with-text__media-item--middle grid__item">
            <div
              class="image-with-text__media image-with-text__media--medium gradient color-background-1 global-media-settings media"
              
            ><img src="//playthingsmiami.com/cdn/shop/files/web_lingerie_4.png?v=1614278441&amp;width=1500" alt="" srcset="//playthingsmiami.com/cdn/shop/files/web_lingerie_4.png?v=1614278441&amp;width=165 165w, //playthingsmiami.com/cdn/shop/files/web_lingerie_4.png?v=1614278441&amp;width=360 360w, //playthingsmiami.com/cdn/shop/files/web_lingerie_4.png?v=1614278441&amp;width=535 535w, //playthingsmiami.com/cdn/shop/files/web_lingerie_4.png?v=1614278441&amp;width=750 750w, //playthingsmiami.com/cdn/shop/files/web_lingerie_4.png?v=1614278441&amp;width=1070 1070w, //playthingsmiami.com/cdn/shop/files/web_lingerie_4.png?v=1614278441&amp;width=1500 1500w" width="1500" height="1500" loading="lazy" sizes="(min-width: 1200px) 550px,
                  (min-width: 750px) calc((100vw - 130px) / 2), calc((100vw - 50px) / 2)">
</div>
          </div>
          <div class="image-with-text__text-item grid__item">
            <div class="image-with-text__content image-with-text__content--middle image-with-text__content--desktop-left image-with-text__content--mobile-left image-with-text__content--medium content-container"><p class="image-with-text__text image-with-text__text--caption caption-with-letter-spacing caption-with-letter-spacing--medium">
                  
                </p><h2 class="image-with-text__heading h1 rte">
                  Lingerie
                </h2><div class="image-with-text__text rte body"><p>Classy and Sexy Styles</p></div><a
                  
                    href="/collections/lingerie"
                  
                  class="button button--secondary"
                >
                  Shop Now
                </a></div>
          </div>
        </div>
      </div><div
        class="image-with-text isolate collapse-padding"
        
      >
        <div class="image-with-text__grid grid grid--gapless grid--1-col grid--2-col-tablet">
          <div class="image-with-text__media-item image-with-text__media-item--medium image-with-text__media-item--middle grid__item">
            <div
              class="image-with-text__media image-with-text__media--medium gradient color-background-1 global-media-settings media"
              
            ><img src="//playthingsmiami.com/cdn/shop/files/46DA1B97-0DE9-4D50-8D30-F45113A04BAE.webp?v=1748421411&amp;width=1500" alt="" srcset="//playthingsmiami.com/cdn/shop/files/46DA1B97-0DE9-4D50-8D30-F45113A04BAE.webp?v=1748421411&amp;width=165 165w, //playthingsmiami.com/cdn/shop/files/46DA1B97-0DE9-4D50-8D30-F45113A04BAE.webp?v=1748421411&amp;width=360 360w, //playthingsmiami.com/cdn/shop/files/46DA1B97-0DE9-4D50-8D30-F45113A04BAE.webp?v=1748421411&amp;width=535 535w, //playthingsmiami.com/cdn/shop/files/46DA1B97-0DE9-4D50-8D30-F45113A04BAE.webp?v=1748421411&amp;width=750 750w, //playthingsmiami.com/cdn/shop/files/46DA1B97-0DE9-4D50-8D30-F45113A04BAE.webp?v=1748421411&amp;width=1070 1070w, //playthingsmiami.com/cdn/shop/files/46DA1B97-0DE9-4D50-8D30-F45113A04BAE.webp?v=1748421411&amp;width=1500 1500w" width="1500" height="2249" loading="lazy" sizes="(min-width: 1200px) 550px,
                  (min-width: 750px) calc((100vw - 130px) / 2), calc((100vw - 50px) / 2)">
</div>
          </div>
          <div class="image-with-text__text-item grid__item">
            <div class="image-with-text__content image-with-text__content--middle image-with-text__content--desktop-left image-with-text__content--mobile-left image-with-text__content--medium content-container"><p class="image-with-text__text image-with-text__text--caption caption-with-letter-spacing caption-with-letter-spacing--medium">
                  Outfits
                </p><h2 class="image-with-text__heading h1 rte">
                  Clubwear
                </h2><div class="image-with-text__text rte body"><p>Dancer and Club Clothing</p></div><a
                  
                    href="/collections/club-wear"
                  
                  class="button button--secondary"
                >
                  Shop Now
                </a></div>
          </div>
        </div>
      </div><div
        class="image-with-text isolate collapse-padding"
        
      >
        <div class="image-with-text__grid grid grid--gapless grid--1-col grid--2-col-tablet">
          <div class="image-with-text__media-item image-with-text__media-item--medium image-with-text__media-item--middle grid__item">
            <div
              class="image-with-text__media image-with-text__media--medium gradient color-background-1 global-media-settings media"
              
            ><img src="//playthingsmiami.com/cdn/shop/files/AnkleBoots.jpg?v=1676930538&amp;width=1500" alt="" srcset="//playthingsmiami.com/cdn/shop/files/AnkleBoots.jpg?v=1676930538&amp;width=165 165w, //playthingsmiami.com/cdn/shop/files/AnkleBoots.jpg?v=1676930538&amp;width=360 360w, //playthingsmiami.com/cdn/shop/files/AnkleBoots.jpg?v=1676930538&amp;width=535 535w, //playthingsmiami.com/cdn/shop/files/AnkleBoots.jpg?v=1676930538&amp;width=750 750w, //playthingsmiami.com/cdn/shop/files/AnkleBoots.jpg?v=1676930538&amp;width=1070 1070w, //playthingsmiami.com/cdn/shop/files/AnkleBoots.jpg?v=1676930538&amp;width=1500 1500w" width="1500" height="1727" loading="lazy" sizes="(min-width: 1200px) 550px,
                  (min-width: 750px) calc((100vw - 130px) / 2), calc((100vw - 50px) / 2)" style="object-position:58.7644% 57.0%;">
</div>
          </div>
          <div class="image-with-text__text-item grid__item">
            <div class="image-with-text__content image-with-text__content--middle image-with-text__content--desktop-left image-with-text__content--mobile-left image-with-text__content--medium content-container"><p class="image-with-text__text image-with-text__text--caption caption-with-letter-spacing caption-with-letter-spacing--medium">
                  Dancer and rave
                </p><h2 class="image-with-text__heading h1 rte">
                  Shoes
                </h2><div class="image-with-text__text rte body"><p>Boots and Heels</p></div><a
                  
                    href="/collections/sexy-shoes"
                  
                  class="button button--secondary"
                >
                  Shop Now
                </a></div>
          </div>
        </div>
      </div><div
        class="image-with-text isolate collapse-padding"
        
      >
        <div class="image-with-text__grid grid grid--gapless grid--1-col grid--2-col-tablet">
          <div class="image-with-text__media-item image-with-text__media-item--medium image-with-text__media-item--middle grid__item">
            <div
              class="image-with-text__media image-with-text__media--medium gradient color-background-1 global-media-settings media"
              
            ><img src="//playthingsmiami.com/cdn/shop/files/image_d2fd4eb1-6e3c-4b00-8188-412eb0e057b1.jpg?v=1689433383&amp;width=1500" alt="" srcset="//playthingsmiami.com/cdn/shop/files/image_d2fd4eb1-6e3c-4b00-8188-412eb0e057b1.jpg?v=1689433383&amp;width=165 165w, //playthingsmiami.com/cdn/shop/files/image_d2fd4eb1-6e3c-4b00-8188-412eb0e057b1.jpg?v=1689433383&amp;width=360 360w, //playthingsmiami.com/cdn/shop/files/image_d2fd4eb1-6e3c-4b00-8188-412eb0e057b1.jpg?v=1689433383&amp;width=535 535w, //playthingsmiami.com/cdn/shop/files/image_d2fd4eb1-6e3c-4b00-8188-412eb0e057b1.jpg?v=1689433383&amp;width=750 750w, //playthingsmiami.com/cdn/shop/files/image_d2fd4eb1-6e3c-4b00-8188-412eb0e057b1.jpg?v=1689433383&amp;width=1070 1070w, //playthingsmiami.com/cdn/shop/files/image_d2fd4eb1-6e3c-4b00-8188-412eb0e057b1.jpg?v=1689433383&amp;width=1500 1500w" width="1500" height="1686" loading="lazy" sizes="(min-width: 1200px) 550px,
                  (min-width: 750px) calc((100vw - 130px) / 2), calc((100vw - 50px) / 2)">
</div>
          </div>
          <div class="image-with-text__text-item grid__item">
            <div class="image-with-text__content image-with-text__content--middle image-with-text__content--desktop-left image-with-text__content--mobile-left image-with-text__content--medium content-container"><p class="image-with-text__text image-with-text__text--caption caption-with-letter-spacing caption-with-letter-spacing--medium">
                  
                </p><h2 class="image-with-text__heading h1 rte">
                  Swimwear
                </h2><div class="image-with-text__text rte body"></div><a
                  
                    href="/collections/summer-collection-swimwear"
                  
                  class="button button--secondary"
                >
                  Shop Now
                </a></div>
          </div>
        </div>
      </div><div
        class="image-with-text isolate collapse-padding"
        
      >
        <div class="image-with-text__grid grid grid--gapless grid--1-col grid--2-col-tablet">
          <div class="image-with-text__media-item image-with-text__media-item--medium image-with-text__media-item--middle grid__item">
            <div
              class="image-with-text__media image-with-text__media--medium gradient color-background-1 global-media-settings media"
              
            ><img src="//playthingsmiami.com/cdn/shop/files/IMG-20211007-WA0033.jpg?v=1633677055&amp;width=1500" alt="" srcset="//playthingsmiami.com/cdn/shop/files/IMG-20211007-WA0033.jpg?v=1633677055&amp;width=165 165w, //playthingsmiami.com/cdn/shop/files/IMG-20211007-WA0033.jpg?v=1633677055&amp;width=360 360w, //playthingsmiami.com/cdn/shop/files/IMG-20211007-WA0033.jpg?v=1633677055&amp;width=535 535w, //playthingsmiami.com/cdn/shop/files/IMG-20211007-WA0033.jpg?v=1633677055&amp;width=750 750w, //playthingsmiami.com/cdn/shop/files/IMG-20211007-WA0033.jpg?v=1633677055&amp;width=1070 1070w, //playthingsmiami.com/cdn/shop/files/IMG-20211007-WA0033.jpg?v=1633677055&amp;width=1500 1500w" width="1500" height="1875" loading="lazy" sizes="(min-width: 1200px) 550px,
                  (min-width: 750px) calc((100vw - 130px) / 2), calc((100vw - 50px) / 2)">
</div>
          </div>
          <div class="image-with-text__text-item grid__item">
            <div class="image-with-text__content image-with-text__content--middle image-with-text__content--desktop-left image-with-text__content--mobile-left image-with-text__content--medium content-container"><p class="image-with-text__text image-with-text__text--caption caption-with-letter-spacing caption-with-letter-spacing--medium">
                  
                </p><h2 class="image-with-text__heading h1 rte">
                  Costumes
                </h2><div class="image-with-text__text rte body"><p>Best selection of sexy Halloween Costumes. </p></div><a
                  
                    href="/collections/costumes"
                  
                  class="button button--secondary"
                >
                  Shop Now
                </a></div>
          </div>
        </div>
      </div></div>
</div>


</div><section id="shopify-section-template--16799920750808__16821696992e23fc04" class="shopify-section section"><div class="page-width"><div id="shopify-block-AekxXV3ppZGNGQzBzb__cc89367a-969c-43c2-8674-40a7844b3f35" class="shopify-block shopify-app-block"><style>
</style>

<!-- BEGIN app snippet: instamenu --><div class="instamenu_collection">
        <div class="collection_list">
            <ul class="list_items"></ul>
        </div>
</div><!-- END app snippet -->

</div>
</div>


</section>
    </main>

    <!-- BEGIN sections: footer-group -->
<div id="shopify-section-sections--16799921209560__footer" class="shopify-section shopify-section-group-footer-group">
<link href="//playthingsmiami.com/cdn/shop/t/14/assets/section-footer.css?v=171161867995400310821680629358" rel="stylesheet" type="text/css" media="all" />
<link href="//playthingsmiami.com/cdn/shop/t/14/assets/component-newsletter.css?v=103472482056003053551680629356" rel="stylesheet" type="text/css" media="all" />
<link href="//playthingsmiami.com/cdn/shop/t/14/assets/component-list-menu.css?v=151968516119678728991680629356" rel="stylesheet" type="text/css" media="all" />
<link href="//playthingsmiami.com/cdn/shop/t/14/assets/component-list-payment.css?v=69253961410771838501680629356" rel="stylesheet" type="text/css" media="all" />
<link href="//playthingsmiami.com/cdn/shop/t/14/assets/component-list-social.css?v=52211663153726659061680629356" rel="stylesheet" type="text/css" media="all" />
<style data-shopify>.footer {
    margin-top: 27px;
  }

  .section-sections--16799921209560__footer-padding {
    padding-top: 27px;
    padding-bottom: 27px;
  }

  @media screen and (min-width: 750px) {
    .footer {
      margin-top: 36px;
    }

    .section-sections--16799921209560__footer-padding {
      padding-top: 36px;
      padding-bottom: 36px;
    }
  }</style><footer class="footer color-background-1 gradient section-sections--16799921209560__footer-padding"><div class="footer__content-top page-width"><div class="footer__blocks-wrapper grid grid--1-col grid--2-col grid--4-col-tablet "><div
                class="footer-block grid__item"
                
              ><div class="footer-block__details-content footer-block-image center"><div
                          class="footer-block__image-wrapper global-media-settings"
                          style="max-width: min(100%, 420px);"
                        >
                          <img
                            srcset="//playthingsmiami.com/cdn/shop/files/e5a4a987-2388-4c64-8d8e-b36026c22f7d.jpg?v=1748558542&width=420, //playthingsmiami.com/cdn/shop/files/e5a4a987-2388-4c64-8d8e-b36026c22f7d.jpg?v=1748558542&width=840 2x"
                            src="//playthingsmiami.com/cdn/shop/files/e5a4a987-2388-4c64-8d8e-b36026c22f7d.jpg?v=1748558542&width=760"
                            alt=""
                            loading="lazy"
                            width="1215"
                            height="1600"
                          >
                        </div></div></div></div><div class="footer-block--newsletter"><div class="footer-block__newsletter"><h2 class="footer-block__heading inline-richtext"><a href="http://eepurl.com/gCP8oD" target="_blank" title="Sign up to our e-mails">Subscribe to our emails</a></h2><form method="post" action="/contact#ContactFooter" id="ContactFooter" accept-charset="UTF-8" class="footer__newsletter newsletter-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="newsletter-form__field-wrapper">
                  <div class="field">
                    <input
                      id="NewsletterForm--sections--16799921209560__footer"
                      type="email"
                      name="contact[email]"
                      class="field__input"
                      value=""
                      aria-required="true"
                      autocorrect="off"
                      autocapitalize="off"
                      autocomplete="email"
                      
                      placeholder="Email"
                      required
                    >
                    <label class="field__label" for="NewsletterForm--sections--16799921209560__footer">
                      Email
                    </label>
                    <button
                      type="submit"
                      class="newsletter-form__button field__button"
                      name="commit"
                      id="Subscribe"
                      aria-label="Subscribe"
                    >
                      <svg
  viewBox="0 0 14 10"
  fill="none"
  aria-hidden="true"
  focusable="false"
  class="icon icon-arrow"
  xmlns="http://www.w3.org/2000/svg"
>
  <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor">
</svg>

                    </button>
                  </div></div></form></div><ul class="footer__list-social list-unstyled list-social"><li class="list-social__item">
      <a href="https://facebook.com/theplaythingsmiami" class="link list-social__link" ><svg aria-hidden="true" focusable="false" class="icon icon-facebook" viewBox="0 0 18 18">
  <path fill="currentColor" d="M16.42.61c.27 0 .5.1.69.28.19.2.28.42.28.7v15.44c0 .27-.1.5-.28.69a.94.94 0 01-.7.28h-4.39v-6.7h2.25l.31-2.65h-2.56v-1.7c0-.4.1-.72.28-.93.18-.2.5-.32 1-.32h1.37V3.35c-.6-.06-1.27-.1-2.01-.1-1.01 0-1.83.3-2.45.9-.62.6-.93 1.44-.93 2.53v1.97H7.04v2.65h2.24V18H.98c-.28 0-.5-.1-.7-.28a.94.94 0 01-.28-.7V1.59c0-.27.1-.5.28-.69a.94.94 0 01.7-.28h15.44z">
</svg>
<span class="visually-hidden">Facebook</span>
      </a>
    </li><li class="list-social__item">
      <a href="http://instagram.com/playthingsmiami" class="link list-social__link" ><svg aria-hidden="true" focusable="false" class="icon icon-instagram" viewBox="0 0 18 18">
  <path fill="currentColor" d="M8.77 1.58c2.34 0 2.62.01 3.54.05.86.04 1.32.18 1.63.3.41.17.7.35 1.01.66.3.3.5.6.65 1 .12.32.27.78.3 1.64.05.92.06 1.2.06 3.54s-.01 2.62-.05 3.54a4.79 4.79 0 01-.3 1.63c-.17.41-.35.7-.66 1.01-.3.3-.6.5-1.01.66-.31.12-.77.26-1.63.3-.92.04-1.2.05-3.54.05s-2.62 0-3.55-.05a4.79 4.79 0 01-1.62-.3c-.42-.16-.7-.35-1.01-.66-.31-.3-.5-.6-.66-1a4.87 4.87 0 01-.3-1.64c-.04-.92-.05-1.2-.05-3.54s0-2.62.05-3.54c.04-.86.18-1.32.3-1.63.16-.41.35-.7.66-1.01.3-.3.6-.5 1-.65.32-.12.78-.27 1.63-.3.93-.05 1.2-.06 3.55-.06zm0-1.58C6.39 0 6.09.01 5.15.05c-.93.04-1.57.2-2.13.4-.57.23-1.06.54-1.55 1.02C1 1.96.7 2.45.46 3.02c-.22.56-.37 1.2-.4 2.13C0 6.1 0 6.4 0 8.77s.01 2.68.05 3.61c.04.94.2 1.57.4 2.13.23.58.54 1.07 1.02 1.56.49.48.98.78 1.55 1.01.56.22 1.2.37 2.13.4.94.05 1.24.06 3.62.06 2.39 0 2.68-.01 3.62-.05.93-.04 1.57-.2 2.13-.41a4.27 4.27 0 001.55-1.01c.49-.49.79-.98 1.01-1.56.22-.55.37-1.19.41-2.13.04-.93.05-1.23.05-3.61 0-2.39 0-2.68-.05-3.62a6.47 6.47 0 00-.4-2.13 4.27 4.27 0 00-1.02-1.55A4.35 4.35 0 0014.52.46a6.43 6.43 0 00-2.13-.41A69 69 0 008.77 0z"/>
  <path fill="currentColor" d="M8.8 4a4.5 4.5 0 100 9 4.5 4.5 0 000-9zm0 7.43a2.92 2.92 0 110-5.85 2.92 2.92 0 010 5.85zM13.43 5a1.05 1.05 0 100-2.1 1.05 1.05 0 000 2.1z">
</svg>
<span class="visually-hidden">Instagram</span>
      </a>
    </li><li class="list-social__item">
      <a href="https://twitter.com/playthingsmiami" class="link list-social__link" ><svg aria-hidden="true" focusable="false" class="icon icon-twitter" viewBox="0 0 18 15">
  <path fill="currentColor" d="M17.64 2.6a7.33 7.33 0 01-1.75 1.82c0 .05 0 .13.02.23l.02.23a9.97 9.97 0 01-1.69 5.54c-.57.85-1.24 1.62-2.02 2.28a9.09 9.09 0 01-2.82 1.6 10.23 10.23 0 01-8.9-.98c.34.02.61.04.83.04 1.64 0 3.1-.5 4.38-1.5a3.6 3.6 0 01-3.3-2.45A2.91 2.91 0 004 9.35a3.47 3.47 0 01-2.02-1.21 3.37 3.37 0 01-.8-2.22v-.03c.46.24.98.37 1.58.4a3.45 3.45 0 01-1.54-2.9c0-.61.14-1.2.45-1.79a9.68 9.68 0 003.2 2.6 10 10 0 004.08 1.07 3 3 0 01-.13-.8c0-.97.34-1.8 1.03-2.48A3.45 3.45 0 0112.4.96a3.49 3.49 0 012.54 1.1c.8-.15 1.54-.44 2.23-.85a3.4 3.4 0 01-1.54 1.94c.74-.1 1.4-.28 2.01-.54z">
</svg>
<span class="visually-hidden">Twitter</span>
      </a>
    </li><li class="list-social__item">
      <a href="https://pinterest.com/playthingsmiami" class="link list-social__link" ><svg aria-hidden="true" focusable="false" class="icon icon-pinterest" viewBox="0 0 17 18">
  <path fill="currentColor" d="M8.48.58a8.42 8.42 0 015.9 2.45 8.42 8.42 0 011.33 10.08 8.28 8.28 0 01-7.23 4.16 8.5 8.5 0 01-2.37-.32c.42-.68.7-1.29.85-1.8l.59-2.29c.14.28.41.52.8.73.4.2.8.31 1.24.31.87 0 1.65-.25 2.34-.75a4.87 4.87 0 001.6-2.05 7.3 7.3 0 00.56-2.93c0-1.3-.5-2.41-1.49-3.36a5.27 5.27 0 00-3.8-1.43c-.93 0-1.8.16-2.58.48A5.23 5.23 0 002.85 8.6c0 .75.14 1.41.43 1.98.28.56.7.96 1.27 1.2.1.04.19.04.26 0 .07-.03.12-.1.15-.2l.18-.68c.05-.15.02-.3-.11-.45a2.35 2.35 0 01-.57-1.63A3.96 3.96 0 018.6 4.8c1.09 0 1.94.3 2.54.89.61.6.92 1.37.92 2.32 0 .8-.11 1.54-.33 2.21a3.97 3.97 0 01-.93 1.62c-.4.4-.87.6-1.4.6-.43 0-.78-.15-1.06-.47-.27-.32-.36-.7-.26-1.13a111.14 111.14 0 01.47-1.6l.18-.73c.06-.26.09-.47.09-.65 0-.36-.1-.66-.28-.89-.2-.23-.47-.35-.83-.35-.45 0-.83.2-1.13.62-.3.41-.46.93-.46 1.56a4.1 4.1 0 00.18 1.15l.06.15c-.6 2.58-.95 4.1-1.08 4.54-.12.55-.16 1.2-.13 1.94a8.4 8.4 0 01-5-7.65c0-2.3.81-4.28 2.44-5.9A8.04 8.04 0 018.48.57z">
</svg>
<span class="visually-hidden">Pinterest</span>
      </a>
    </li></ul></div>
      </div><div class="footer__content-bottom">
    <div class="footer__content-bottom-wrapper page-width">
      <div class="footer__column footer__localization isolate"></div>
      <div class="footer__column footer__column--info"><div class="footer__payment">
            <span class="visually-hidden">Payment methods</span>
            <ul class="list list-payment" role="list"><li class="list-payment__item">
                  <svg class="icon icon--full-color" xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="pi-american_express" viewBox="0 0 38 24" width="38" height="24"><title id="pi-american_express">American Express</title><path fill="#000" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3Z" opacity=".07"/><path fill="#006FCF" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32Z"/><path fill="#FFF" d="M22.012 19.936v-8.421L37 11.528v2.326l-1.732 1.852L37 17.573v2.375h-2.766l-1.47-1.622-1.46 1.628-9.292-.02Z"/><path fill="#006FCF" d="M23.013 19.012v-6.57h5.572v1.513h-3.768v1.028h3.678v1.488h-3.678v1.01h3.768v1.531h-5.572Z"/><path fill="#006FCF" d="m28.557 19.012 3.083-3.289-3.083-3.282h2.386l1.884 2.083 1.89-2.082H37v.051l-3.017 3.23L37 18.92v.093h-2.307l-1.917-2.103-1.898 2.104h-2.321Z"/><path fill="#FFF" d="M22.71 4.04h3.614l1.269 2.881V4.04h4.46l.77 2.159.771-2.159H37v8.421H19l3.71-8.421Z"/><path fill="#006FCF" d="m23.395 4.955-2.916 6.566h2l.55-1.315h2.98l.55 1.315h2.05l-2.904-6.566h-2.31Zm.25 3.777.875-2.09.873 2.09h-1.748Z"/><path fill="#006FCF" d="M28.581 11.52V4.953l2.811.01L32.84 9l1.456-4.046H37v6.565l-1.74.016v-4.51l-1.644 4.494h-1.59L30.35 7.01v4.51h-1.768Z"/></svg>

                </li><li class="list-payment__item">
                  <svg class="icon icon--full-color" viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" role="img" width="38" height="24" aria-labelledby="pi-diners_club"><title id="pi-diners_club">Diners Club</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path d="M12 12v3.7c0 .3-.2.3-.5.2-1.9-.8-3-3.3-2.3-5.4.4-1.1 1.2-2 2.3-2.4.4-.2.5-.1.5.2V12zm2 0V8.3c0-.3 0-.3.3-.2 2.1.8 3.2 3.3 2.4 5.4-.4 1.1-1.2 2-2.3 2.4-.4.2-.4.1-.4-.2V12zm7.2-7H13c3.8 0 6.8 3.1 6.8 7s-3 7-6.8 7h8.2c3.8 0 6.8-3.1 6.8-7s-3-7-6.8-7z" fill="#3086C8"/></svg>
                </li><li class="list-payment__item">
                  <svg class="icon icon--full-color" viewBox="0 0 38 24" width="38" height="24" role="img" aria-labelledby="pi-discover" fill="none" xmlns="http://www.w3.org/2000/svg"><title id="pi-discover">Discover</title><path fill="#000" opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32z" fill="#fff"/><path d="M3.57 7.16H2v5.5h1.57c.83 0 1.43-.2 1.96-.63.63-.52 1-1.3 1-2.11-.01-1.63-1.22-2.76-2.96-2.76zm1.26 4.14c-.34.3-.77.44-1.47.44h-.29V8.1h.29c.69 0 1.11.12 1.47.44.37.33.59.84.59 1.37 0 .53-.22 1.06-.59 1.39zm2.19-4.14h1.07v5.5H7.02v-5.5zm3.69 2.11c-.64-.24-.83-.4-.83-.69 0-.35.34-.61.8-.61.32 0 .59.13.86.45l.56-.73c-.46-.4-1.01-.61-1.62-.61-.97 0-1.72.68-1.72 1.58 0 .76.35 1.15 1.35 1.51.42.15.63.25.74.31.21.14.32.34.32.57 0 .45-.35.78-.83.78-.51 0-.92-.26-1.17-.73l-.69.67c.49.73 1.09 1.05 1.9 1.05 1.11 0 1.9-.74 1.9-1.81.02-.89-.35-1.29-1.57-1.74zm1.92.65c0 1.62 1.27 2.87 2.9 2.87.46 0 .86-.09 1.34-.32v-1.26c-.43.43-.81.6-1.29.6-1.08 0-1.85-.78-1.85-1.9 0-1.06.79-1.89 1.8-1.89.51 0 .9.18 1.34.62V7.38c-.47-.24-.86-.34-1.32-.34-1.61 0-2.92 1.28-2.92 2.88zm12.76.94l-1.47-3.7h-1.17l2.33 5.64h.58l2.37-5.64h-1.16l-1.48 3.7zm3.13 1.8h3.04v-.93h-1.97v-1.48h1.9v-.93h-1.9V8.1h1.97v-.94h-3.04v5.5zm7.29-3.87c0-1.03-.71-1.62-1.95-1.62h-1.59v5.5h1.07v-2.21h.14l1.48 2.21h1.32l-1.73-2.32c.81-.17 1.26-.72 1.26-1.56zm-2.16.91h-.31V8.03h.33c.67 0 1.03.28 1.03.82 0 .55-.36.85-1.05.85z" fill="#231F20"/><path d="M20.16 12.86a2.931 2.931 0 100-5.862 2.931 2.931 0 000 5.862z" fill="url(#pi-paint0_linear)"/><path opacity=".65" d="M20.16 12.86a2.931 2.931 0 100-5.862 2.931 2.931 0 000 5.862z" fill="url(#pi-paint1_linear)"/><path d="M36.57 7.506c0-.1-.07-.15-.18-.15h-.16v.48h.12v-.19l.14.19h.14l-.16-.2c.06-.01.1-.06.1-.13zm-.2.07h-.02v-.13h.02c.06 0 .09.02.09.06 0 .05-.03.07-.09.07z" fill="#231F20"/><path d="M36.41 7.176c-.23 0-.42.19-.42.42 0 .23.19.42.42.42.23 0 .42-.19.42-.42 0-.23-.19-.42-.42-.42zm0 .77c-.18 0-.34-.15-.34-.35 0-.19.15-.35.34-.35.18 0 .33.16.33.35 0 .19-.15.35-.33.35z" fill="#231F20"/><path d="M37 12.984S27.09 19.873 8.976 23h26.023a2 2 0 002-1.984l.024-3.02L37 12.985z" fill="#F48120"/><defs><linearGradient id="pi-paint0_linear" x1="21.657" y1="12.275" x2="19.632" y2="9.104" gradientUnits="userSpaceOnUse"><stop stop-color="#F89F20"/><stop offset=".25" stop-color="#F79A20"/><stop offset=".533" stop-color="#F68D20"/><stop offset=".62" stop-color="#F58720"/><stop offset=".723" stop-color="#F48120"/><stop offset="1" stop-color="#F37521"/></linearGradient><linearGradient id="pi-paint1_linear" x1="21.338" y1="12.232" x2="18.378" y2="6.446" gradientUnits="userSpaceOnUse"><stop stop-color="#F58720"/><stop offset=".359" stop-color="#E16F27"/><stop offset=".703" stop-color="#D4602C"/><stop offset=".982" stop-color="#D05B2E"/></linearGradient></defs></svg>
                </li><li class="list-payment__item">
                  <svg class="icon icon--full-color" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" aria-labelledby="pi-google_pay"><title id="pi-google_pay">Google Pay</title><path d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000" opacity=".07"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32" fill="#FFF"/><path d="M18.093 11.976v3.2h-1.018v-7.9h2.691a2.447 2.447 0 0 1 1.747.692 2.28 2.28 0 0 1 .11 3.224l-.11.116c-.47.447-1.098.69-1.747.674l-1.673-.006zm0-3.732v2.788h1.698c.377.012.741-.135 1.005-.404a1.391 1.391 0 0 0-1.005-2.354l-1.698-.03zm6.484 1.348c.65-.03 1.286.188 1.778.613.445.43.682 1.03.65 1.649v3.334h-.969v-.766h-.049a1.93 1.93 0 0 1-1.673.931 2.17 2.17 0 0 1-1.496-.533 1.667 1.667 0 0 1-.613-1.324 1.606 1.606 0 0 1 .613-1.336 2.746 2.746 0 0 1 1.698-.515c.517-.02 1.03.093 1.49.331v-.208a1.134 1.134 0 0 0-.417-.901 1.416 1.416 0 0 0-.98-.368 1.545 1.545 0 0 0-1.319.717l-.895-.564a2.488 2.488 0 0 1 2.182-1.06zM23.29 13.52a.79.79 0 0 0 .337.662c.223.176.5.269.785.263.429-.001.84-.17 1.146-.472.305-.286.478-.685.478-1.103a2.047 2.047 0 0 0-1.324-.374 1.716 1.716 0 0 0-1.03.294.883.883 0 0 0-.392.73zm9.286-3.75l-3.39 7.79h-1.048l1.281-2.728-2.224-5.062h1.103l1.612 3.885 1.569-3.885h1.097z" fill="#5F6368"/><path d="M13.986 11.284c0-.308-.024-.616-.073-.92h-4.29v1.747h2.451a2.096 2.096 0 0 1-.9 1.373v1.134h1.464a4.433 4.433 0 0 0 1.348-3.334z" fill="#4285F4"/><path d="M9.629 15.721a4.352 4.352 0 0 0 3.01-1.097l-1.466-1.14a2.752 2.752 0 0 1-4.094-1.44H5.577v1.17a4.53 4.53 0 0 0 4.052 2.507z" fill="#34A853"/><path d="M7.079 12.05a2.709 2.709 0 0 1 0-1.735v-1.17H5.577a4.505 4.505 0 0 0 0 4.075l1.502-1.17z" fill="#FBBC04"/><path d="M9.629 8.44a2.452 2.452 0 0 1 1.74.68l1.3-1.293a4.37 4.37 0 0 0-3.065-1.183 4.53 4.53 0 0 0-4.027 2.5l1.502 1.171a2.715 2.715 0 0 1 2.55-1.875z" fill="#EA4335"/></svg>

                </li><li class="list-payment__item">
                  <svg class="icon icon--full-color" width="38" height="24" role="img" aria-labelledby="pi-jcb" viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg"><title id="pi-jcb">JCB</title><g fill="none" fill-rule="evenodd"><g fill-rule="nonzero"><path d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z" fill="#000" opacity=".07"/><path d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32" fill="#FFF"/></g><path d="M11.5 5H15v11.5a2.5 2.5 0 0 1-2.5 2.5H9V7.5A2.5 2.5 0 0 1 11.5 5z" fill="#006EBC"/><path d="M18.5 5H22v11.5a2.5 2.5 0 0 1-2.5 2.5H16V7.5A2.5 2.5 0 0 1 18.5 5z" fill="#F00036"/><path d="M25.5 5H29v11.5a2.5 2.5 0 0 1-2.5 2.5H23V7.5A2.5 2.5 0 0 1 25.5 5z" fill="#2AB419"/><path d="M10.755 14.5c-1.06 0-2.122-.304-2.656-.987l.78-.676c.068 1.133 3.545 1.24 3.545-.19V9.5h1.802v3.147c0 .728-.574 1.322-1.573 1.632-.466.144-1.365.221-1.898.221zm8.116 0c-.674 0-1.388-.107-1.965-.366-.948-.425-1.312-1.206-1.3-2.199.012-1.014.436-1.782 1.468-2.165 1.319-.49 3.343-.261 3.926.27v.972c-.572-.521-1.958-.898-2.919-.46-.494.226-.737.917-.744 1.448-.006.56.245 1.252.744 1.497.953.467 2.39.04 2.919-.441v1.01c-.358.255-1.253.434-2.129.434zm8.679-2.587c.37-.235.582-.567.582-1.005 0-.438-.116-.687-.348-.939-.206-.207-.58-.469-1.238-.469H23v5h3.546c.696 0 1.097-.23 1.315-.415.283-.25.426-.53.426-.96 0-.431-.155-.908-.737-1.212zm-1.906-.281h-1.428v-1.444h1.495c.956 0 .944 1.444-.067 1.444zm.288 2.157h-1.716v-1.513h1.716c.986 0 1.083 1.513 0 1.513z" fill="#FFF" fill-rule="nonzero"/></g></svg>
                </li><li class="list-payment__item">
                  <svg class="icon icon--full-color" viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" role="img" width="38" height="24" aria-labelledby="pi-master"><title id="pi-master">Mastercard</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><circle fill="#EB001B" cx="15" cy="12" r="7"/><circle fill="#F79E1B" cx="23" cy="12" r="7"/><path fill="#FF5F00" d="M22 12c0-2.4-1.2-4.5-3-5.7-1.8 1.3-3 3.4-3 5.7s1.2 4.5 3 5.7c1.8-1.2 3-3.3 3-5.7z"/></svg>
                </li><li class="list-payment__item">
                  <svg class="icon icon--full-color" viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" width="38" height="24" role="img" aria-labelledby="pi-paypal"><title id="pi-paypal">PayPal</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path fill="#003087" d="M23.9 8.3c.2-1 0-1.7-.6-2.3-.6-.7-1.7-1-3.1-1h-4.1c-.3 0-.5.2-.6.5L14 15.6c0 .2.1.4.3.4H17l.4-3.4 1.8-2.2 4.7-2.1z"/><path fill="#3086C8" d="M23.9 8.3l-.2.2c-.5 2.8-2.2 3.8-4.6 3.8H18c-.3 0-.5.2-.6.5l-.6 3.9-.2 1c0 .2.1.4.3.4H19c.3 0 .5-.2.5-.4v-.1l.4-2.4v-.1c0-.2.3-.4.5-.4h.3c2.1 0 3.7-.8 4.1-3.2.2-1 .1-1.8-.4-2.4-.1-.5-.3-.7-.5-.8z"/><path fill="#012169" d="M23.3 8.1c-.1-.1-.2-.1-.3-.1-.1 0-.2 0-.3-.1-.3-.1-.7-.1-1.1-.1h-3c-.1 0-.2 0-.2.1-.2.1-.3.2-.3.4l-.7 4.4v.1c0-.3.3-.5.6-.5h1.3c2.5 0 4.1-1 4.6-3.8v-.2c-.1-.1-.3-.2-.5-.2h-.1z"/></svg>
                </li><li class="list-payment__item">
                  <svg class="icon icon--full-color" viewBox="0 0 38 24" width="38" height="24" xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="pi-venmo"><title id="pi-venmo">Venmo</title><g fill="none" fill-rule="evenodd"><rect fill-opacity=".07" fill="#000" width="38" height="24" rx="3"/><path fill="#3D95CE" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path d="M24.675 8.36c0 3.064-2.557 7.045-4.633 9.84h-4.74L13.4 6.57l4.151-.402 1.005 8.275c.94-1.566 2.099-4.025 2.099-5.702 0-.918-.154-1.543-.394-2.058l3.78-.783c.437.738.634 1.499.634 2.46z" fill="#FFF" fill-rule="nonzero"/></g></svg>

                </li><li class="list-payment__item">
                  <svg class="icon icon--full-color" viewBox="0 0 38 24" xmlns="http://www.w3.org/2000/svg" role="img" width="38" height="24" aria-labelledby="pi-visa"><title id="pi-visa">Visa</title><path opacity=".07" d="M35 0H3C1.3 0 0 1.3 0 3v18c0 1.7 1.4 3 3 3h32c1.7 0 3-1.3 3-3V3c0-1.7-1.4-3-3-3z"/><path fill="#fff" d="M35 1c1.1 0 2 .9 2 2v18c0 1.1-.9 2-2 2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h32"/><path d="M28.3 10.1H28c-.4 1-.7 1.5-1 3h1.9c-.3-1.5-.3-2.2-.6-3zm2.9 5.9h-1.7c-.1 0-.1 0-.2-.1l-.2-.9-.1-.2h-2.4c-.1 0-.2 0-.2.2l-.3.9c0 .1-.1.1-.1.1h-2.1l.2-.5L27 8.7c0-.5.3-.7.8-.7h1.5c.1 0 .2 0 .2.2l1.4 6.5c.1.4.2.7.2 1.1.1.1.1.1.1.2zm-13.4-.3l.4-1.8c.1 0 .2.1.2.1.7.3 1.4.5 2.1.4.2 0 .5-.1.7-.2.5-.2.5-.7.1-1.1-.2-.2-.5-.3-.8-.5-.4-.2-.8-.4-1.1-.7-1.2-1-.8-2.4-.1-3.1.6-.4.9-.8 1.7-.8 1.2 0 2.5 0 3.1.2h.1c-.1.6-.2 1.1-.4 1.7-.5-.2-1-.4-1.5-.4-.3 0-.6 0-.9.1-.2 0-.3.1-.4.2-.2.2-.2.5 0 .7l.5.4c.4.2.8.4 1.1.6.5.3 1 .8 1.1 1.4.2.9-.1 1.7-.9 2.3-.5.4-.7.6-1.4.6-1.4 0-2.5.1-3.4-.2-.1.2-.1.2-.2.1zm-3.5.3c.1-.7.1-.7.2-1 .5-2.2 1-4.5 1.4-6.7.1-.2.1-.3.3-.3H18c-.2 1.2-.4 2.1-.7 3.2-.3 1.5-.6 3-1 4.5 0 .2-.1.2-.3.2M5 8.2c0-.1.2-.2.3-.2h3.4c.5 0 .9.3 1 .8l.9 4.4c0 .1 0 .1.1.2 0-.1.1-.1.1-.1l2.1-5.1c-.1-.1 0-.2.1-.2h2.1c0 .1 0 .1-.1.2l-3.1 7.3c-.1.2-.1.3-.2.4-.1.1-.3 0-.5 0H9.7c-.1 0-.2 0-.2-.2L7.9 9.5c-.2-.2-.5-.5-.9-.6-.6-.3-1.7-.5-1.9-.5L5 8.2z" fill="#142688"/></svg>
                </li></ul>
          </div></div>
    </div>
    <div class="footer__content-bottom-wrapper page-width footer__content-bottom-wrapper--center">
      <div class="footer__copyright caption">
        <small class="copyright__content"
          >&copy; 2026, <a href="/" title="">Playthings</a></small>
        <small class="copyright__content"><a target="_blank" rel="nofollow" href="https://www.shopify.com?utm_campaign=poweredby&amp;utm_medium=shopify&amp;utm_source=onlinestore">Powered by Shopify</a></small><ul class="policies list-unstyled"><li>
                  <small class="copyright__content"
                    ><a href="/policies/refund-policy">Refund policy</a></small
                  >
                </li><li>
                  <small class="copyright__content"
                    ><a href="/policies/privacy-policy">Privacy policy</a></small
                  >
                </li><li>
                  <small class="copyright__content"
                    ><a href="/policies/terms-of-service">Terms of service</a></small
                  >
                </li><li>
                  <small class="copyright__content"
                    ><a href="/policies/shipping-policy">Shipping policy</a></small
                  >
                </li><li>
                  <small class="copyright__content"
                    ><a href="/policies/contact-information">Contact information</a></small
                  >
                </li></ul></div>
    </div>
  </div>
</footer>
</div>
<!-- END sections: footer-group -->

    <ul hidden>
      <li id="a11y-refresh-page-message">Choosing a selection results in a full page refresh.</li>
      <li id="a11y-new-window-message">Opens in a new window.</li>
    </ul>

    <script>
      window.shopUrl = 'https://playthingsmiami.com';
      window.routes = {
        cart_add_url: '/cart/add',
        cart_change_url: '/cart/change',
        cart_update_url: '/cart/update',
        cart_url: '/cart',
        predictive_search_url: '/search/suggest'
      };

      window.cartStrings = {
        error: `There was an error while updating your cart. Please try again.`,
        quantityError: `You can only add [quantity] of this item to your cart.`
      }

      window.variantStrings = {
        addToCart: `Add to cart`,
        soldOut: `Sold out`,
        unavailable: `Unavailable`,
        unavailable_with_option: `[value] - Unavailable`,
      }

      window.accessibilityStrings = {
        imageAvailable: `Image [index] is now available in gallery view`,
        shareSuccess: `Link copied to clipboard`,
        pauseSlideshow: `Pause slideshow`,
        playSlideshow: `Play slideshow`,
      }
    </script><script src="//playthingsmiami.com/cdn/shop/t/14/assets/predictive-search.js?v=16985596534672189881680629357" defer="defer"></script>

<style>.gktAccountWidgetModalWrapper {
  font-size: 16px;
}

.gktAccountWidgetModal {
  height: 600px;
  width: 75vw;
}

.gktAccountWidgetRewardBalance {
  display: grid;
  grid-gap: 5px;
  justify-content: start;
}


.gktRewardCode {
  display: grid;
  text-align: right;
  grid-gap: 5px;
}

.gktAccountWidgetRewardBalanceValue {
  place-self: start;
}

.gktAccountWidgetModalContent {
  display: grid;
  grid-gap: 10px;
  grid-template-rows: 1fr 0.6fr auto;
}

.gktAccountWidgetRewardDetails {
  display: grid;
  grid-template-columns: 1fr 1fr;
  /* grid-gap: 10px; */
  padding: 10px 0px;
  border-bottom: 1px solid #a2a2a2;
}

.gktAccountWidgetBodyTabActive {
  border-bottom: 1px solid black;
}



.gktAccountWidgetRewardSectionBodyListItem,
.gktAccountWidgetRewardSectionBodyListHeader {
  display: grid;
  /* grid-template-columns: 1fr 1fr 1fr; */
  grid-template-columns: 33% 33% 33%;
  padding: 10px 5px;
  text-align: start;
  place-items: start;
  align-items: center;
  border-bottom: 1px solid #efe4e4;
}



.gktAccountWidgetBuyWithRewardsButton {
  text-align: center;
  align-items: center;
  display: grid;
  gap: 10px;
  justify-content: center;
  padding: 15px;
  padding: 10px;
  align-items: center;
  background: #252525;
  border-radius: 5px;
  border-radius: 2px;
  color: white;
  cursor: pointer;
}

.gktAccountWidgetBuyWithRewardsButton:hover , .gktAccountWidgetGiftCardSectionBodyListItemForAddToAccountButton:hover {
    transform: scale(0.95);
}

.gktAccountWidgetActivator{
  text-align: center;
  display: grid;
  gap: 10px;
  justify-content: center;
  padding: 15px;
  padding: 10px;
  align-items: center;
  background: #252525;
  border-radius: 5px;
  border-radius: 2px;
  color: white;
}


.gktAccountWidgetRewardCodeValue {
  place-self: end;
  font-size: 20px;
}

.gktAccountWidgetRewardBalanceValue {
  font-size: 20px;
}

.gktAccountWidgetRewardCodeCopyBtn {
  display: none;
}

.gktAccountWidgetModalClose {
  display: grid;
  padding: 1px;
  align-self: baseline;
  justify-self: end;
  cursor: pointer;
  justify-content: end;
}

.gktAccountWidgetBodyTabRewards,
.gktAccountWidgetBodyTabGiftCards {
  padding: 10px;
}

.gktAccountWidgetRewardSectionBodyListHeader,
.gktAccountWidgetGiftCardSectionListHeader {
  color: #808080;
}

.gktAccountWidgetBodyTabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr;
  grid-gap: 10px;
  text-align: center;
  border-bottom: 1px solid #ebebeb;
  cursor: pointer;
}

.gktAccountWidgetRewardSectionBodyList::-webkit-scrollbar,
.gktAccountWidgetGiftCardSectionBodyList::-webkit-scrollbar {
  width: 5px;
}

/* Track */
.gktAccountWidgetRewardSectionBodyList::-webkit-scrollbar-track,
.gktAccountWidgetGiftCardSectionBodyList::-webkit-scrollbar-track {
  background: #f1f1f1;
}

/* Handle */
.gktAccountWidgetRewardSectionBodyList::-webkit-scrollbar-thumb,
.gktAccountWidgetGiftCardSectionBodyList::-webkit-scrollbar-thumb {
  background: #2c2c2c 0% 0% no-repeat padding-box;
}

/* Handle on hover */
.gktAccountWidgetRewardSectionBodyList::-webkit-scrollbar-thumb:hover,
.gktAccountWidgetGiftCardSectionBodyList::-webkit-scrollbar-thumb:hover {
  background: #000000 0% 0% no-repeat padding-box;
}

.gktAccountWidgetRewardSection,
.gktAccountWidgetGiftCardSection {
  display: none;
}

.gktAccountWidgetGiftCardSectionBodyList,
.gktAccountWidgetRewardSectionBodyList {
  font-size: 14px;
  padding-right: 10px;
  margin-top: 10px;
}

.gktAccountWidgetGiftCardSectionBodyListItem,
.gktAccountWidgetGiftCardSectionListHeader {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1.8fr;
  /* convert into percentages */
  grid-template-columns: 22% 22% 22% 30%;
  padding: 10px;
  grid-gap: 10px;
  text-align: start;
  place-items: start;
  align-items: center;
  border-bottom: 1px solid #efe4e4;
}

/* .gktAccountWidgetGiftCardSectionBodyListItem {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1.8fr;
  padding: 10px;
  grid-gap: 10px;
  align-items: center;
} */


.gktAccountWidgetGiftCardSectionBodyListItemForAddToAccount{
  width: 100%;
}

.gktAccountWidgetGiftCardSectionBodyListItemForAddToAccountButton {
  text-align: center;
  display: grid;
  gap: 10px;
  justify-content: center;
  padding: 10px 5px;
  align-items: center;
  background: #252525;
  border-radius: 5px;
  border-radius: 2px;
  color: white;
  place-self: center;
  cursor: pointer;
  width: 100%;
}
.gktAccountWidgetGiftCardSectionListHeaderForAction{
  text-align: center;
  place-self: center;
}

.gktAccountWidgetModalWrapper {
  display: none;
  width: 100%;
  height: 100vh;
  position: fixed;
  opacity: 1;
  background: #222;
  z-index: 999999999;
  top: 0;
  left: 0;
  overflow: hidden;
  animation-name: fadeIn_Container;
  animation-duration: 0.2s;
}

.gktAccountWidgetModalWrapper {
  background-color: #2229;
}
/* Modal Content */
.gktAccountWidgetModal {
  position: fixed;
  top: 25%;
  left: 50%;
  max-width: 700px;
  width: 65vw !important;
  margin: 10px auto;
  padding: 20px 30px 30px;
  margin-top: 20vh !important;
  background: #fefefe;
  animation-name: fadeIn_Modal;
  animation-duration: 0.2s;
  transform: translate(-50%, -50%);
  line-height: 16px;
  max-height: 90vh;
  overflow-y: auto;
  overflow-x: hidden;
  border-radius: 2px;
  color: black !important;
}

.gktDisabled {
  opacity: 0.5;
  pointer-events: none;
}


.gktPoweredByBanner {
  display: flex;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  justify-content: center;
  align-items: center;
  padding: 10px;
  padding: 6px;
  font-size: 14px;
  background: #efe9e9;
  cursor: pointer;
}

.gktLoading {
  display: grid;
  align-items: center;
  /* margin-top: 30%; */
  justify-content: center;
  /* height: 200px;
  margin: 50px auto; */
  text-align: -webkit-center;
}

.gktLoadingSpinner {
  display: block !important;
  border: 12px solid #f3f3f3;
  border-radius: 50%;
  border-top: 12px solid #cbcbcb;
  border-bottom: 12px solid #cbcbcb;
  width: 80px;
  height: 80px;
  -webkit-animation: spin 2s linear infinite;
  animation: spin 2s linear infinite;
}

@-webkit-keyframes spin {
  0% {
    -webkit-transform: rotate(0deg);
  }

  100% {
    -webkit-transform: rotate(360deg);
  }
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}

.gktAccountWidgetNoRewardDataFound,
.gktAccountWidgetNoGiftCardDataFound {
  text-align: center;
  display: grid;
  justify-content: center;
  margin: 50px 25px;
}

.gktAccountWidgetRewardSectionBodyListItemBalanceRemove{
    color: red;
}



@media screen and (max-width: 600px) {
  .gktAccountWidgetModal {
    top: 25%;
    left: 50%;
    min-width: 250px;
    width: 100vw !important;
    padding: 10px 20px;
    margin-top: 0 !important;
    top: 0;
    left: 0;
    transform: translate(0px, 0px);
    border-radius: 0px;
    height: 100vh !important;
    max-height: 100vh !important;
    min-width: 100%;
    min-width: -moz-available; /* WebKit-based browsers will ignore this. */
    min-width: -webkit-fill-available; /* Mozilla-based browsers will ignore this. */
    min-width: fill-available;
  }
  .gktAccountWidgetRewardSectionBodyList,
  .gktAccountWidgetGiftCardSectionBodyList {
    height: 550px;
    overflow-y: auto;
  }
  .gktLoading{
    height: 550px;
    align-items: baseline;
    margin-top: 22%;
  }
}

@media screen and (min-width: 764px) {
  .gktAccountWidgetRewardSectionBodyList,
  .gktAccountWidgetGiftCardSectionBodyList {
    height: 350px;
    overflow-y: auto;
  }
  .gktLoading{
    height: 350px;
  }
}



.gktComboContainer {
   display:  grid;
   grid-template-columns: 1fr;
   grid-template-rows: auto;

}
.gktPrevImage,.gktNextImage{
    margin-left:5px;
    font-size: 16px;
}
.gktComboSliderNavigatior{
    position: absolute;
    bottom: 5px;
    right:5px;
}
.gktComboItemContainer{
    display:  grid;
    grid-template-columns: 1fr 2fr;
    grid-template-rows: auto;
    padding: 3px 0px;
    margin: 3px 0px;
    border-radius: 3px;
    border: 1px solid #f1f2f3;
}

.gktComboItemContainerItem1{
    grid-row: 1 / 5;
    position:relative;
}

.gktComboItemContainerItem2{
    padding-left: 5px;
    text-align: left;
}

.gktComboItemContainerItem3{
    padding-left: 5px;
    text-align: left;
}

.gktComboItemContainerItem4{
    padding-left: 5px;
    text-align: left;
}


.gktComboItemContainerItem3CustomSelect{
    position: relative;
    width: fit-content;
  
}

.gktComboItemContainerItem3CustomSelect > select{
    box-shadow: 0;
    font-size: 16px;
    padding: 6px 10px;
    background-color: #fafafa;
    border: 1px solid #eee;
    min-width: 120px;
    margin: 0px;
    
}

.gktComboItemContainerItem3CustomSelect > select:focus{
    outline:none;

}

.gktComboItemContainerItem3CustomSelect > .gktComboItemContainerItem3SelectDropdownBtn {
    position: absolute;
    display: block;
    top:0;
    right: 0;
    background: #fafafa;
    height: 100%;
    width: 20px;
    pointer-events: none;

}
.gktComboItemContainerItem3CustomSelect > .gktComboItemContainerItem3SelectDropdownBtn::before,
.gktComboItemContainerItem3CustomSelect > .gktComboItemContainerItem3SelectDropdownBtn::after
 {
    content: "";
    position: absolute;
    width: 0;
    height: 0;
    left: 50%;
    transform: translate(-50%, -50%);

}

.gktComboItemContainerItem3CustomSelect > .gktComboItemContainerItem3SelectDropdownBtn::before
 {
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
    border-bottom: 8px solid #635959;
    top:30%

}

.gktComboItemContainerItem3CustomSelect > .gktComboItemContainerItem3SelectDropdownBtn::after
 {
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
    border-top: 8px solid #635959;
    top: 70%;
}



.gktComboModalWrapper {
   
   display: none;
   width: 100%;
   height: 100vh;
   position: fixed;
   opacity: 1;
   background: #222;
   z-index: 999999999;
   top: 0;
   left: 0;
   overflow: hidden;
   animation-name: fadeIn_Container;
   animation-duration: .2s
}

 /* Modal Content */
.gktComboModal {
   
   position: fixed;
   top: 25%;
   left: 50%;
   min-width: 250px;
   width: 50vw !important;
   margin: 10px auto;
   padding:10px;
   margin-top: 25vh !important;
   border-radius: 4px;
   background: #fefefe;
   box-shadow: 0 0 10px #000;
   animation-name: fadeIn_Modal;
   animation-duration: .2s;

   transform: translate(-50%, -50%);
 }
 
 

/* Header should be in one line*/
.gktComboModalHeader {
    display: grid;
    grid-template-columns: auto 25px;
}


.gktComboModalPopupHeading > p {
    margin: 0 !important;
}

.gktComboModalClose{
    fill: rgba(255,255,255,0.851);
    background: rgba(32,33,36,0.4);
    -webkit-border-radius: 50%;
    border-radius: 50%;
    width: 24px;
    height: 24px;
    padding: 1px;
    align-self: baseline;
    justify-self: end;
    margin-top: 3px;
    margin-right: 3px;
    cursor: pointer;
}

  
.gktComboModalClose:hover,
  .gktComboModalClose:focus {
    color: #000;
    text-decoration: none;
    cursor: pointer;
  }


.gktComboContent {
    display:grid;
    grid-template-rows: 1fr 3fr;
    grid-gap: 10px;
    padding: 5px 10px;
    margin:5px 10px;
    font-size: 30px;
}

.gktComboContentHeader{

}
.gktComboContentFooter{

}
.gktComboContentFooterBtn1{

}
.gktComboContentFooterBtn2{

}



.gktFreeGiftcardPopupModalWrapper {
    display: none;
    width: 100%;
    height: 100vh;
    position: fixed;
    opacity: 1;
    background: #e1d8d882;
    z-index: 999999999;
    top: 0;
    left: 0;
    overflow: hidden;
    animation-name: fadeIn_Container;
    animation-duration: .2s
    display: none;
 }
 .gktFreeGiftcardPopupConfirmationPageButtons{
     display:grid;
     grid-template-columns:1fr 1fr;
     grid-gap:10px;
 }
 .gktFreeGiftcardPopupButton, .gktFreeGiftcardPopupCheckoutButton, .gktFreeGiftcardPopupContinueShoppingButton{
    cursor: pointer;
    padding: 6px 12px;
    font-weight: 500;
    text-align: center;
    background-color: black;
    color: white;
    transition: transform .2s;
    font-size:16px; 
 }
 .gktFreeGiftcardPopupContinueShoppingButton{
    background-color: white;
    color: black;
 }
 .gktFreeGiftcardPopupConfirmationPageDescription{
    font-size: 16px;
    text-align: center;
    font-weight: 600;
    margin-bottom: 0;
    margin-top: 0;
    padding-top: 10px;
 }
 .gktFreeGiftcardPopupConfirmationPage{
 }
 .gktFreeGiftcardPopupModalClose{
    position:absolute;
    top:5px;
    right:5px;
    fill: rgba(255,255,255,0.851);
    background: rgba(32,33,36,0.4);
    -webkit-border-radius: 50%;
    border-radius: 50%;
    width: 24px;
    height: 24px;
    padding: 1px;
    align-self: baseline;
    justify-self: end;
    margin-top: 3px;
    margin-right: 3px;
    cursor: pointer;
 }
 .gktFreeGiftcardPopupConfirmationPageImage{
    width: 100%;
    height: 150px !important;
    object-fit: cover !important;
 }
 .gktFreeGiftcardPopupModalClose:focus,
 .gktFreeGiftcardPopupModalClose:hover{
    color: #000;
    text-decoration: none;
    cursor: pointer;
  }
.gktFreeGiftcardPopupButton:hover, .gktFreeGiftcardPopupModalWrapper button:hover {
    transform: scale(0.95);
}
 .gktFreeGiftcardPopupModal {
    position: fixed;
    top: 25%;
    left: 50%;
    max-width: 450px;
    width: 45vw !important;
    margin: 10px auto;
    padding:10px 20px;
    margin-top: 20vh !important;
    border-radius: 4px;
    background: #fefefe;
    box-shadow: 0 0 10px #000;
    animation-name: fadeIn_Modal;
    animation-duration: .2s;
    transform: translate(-50%, -50%);
    line-height: 16px;
    max-height: 90vh;
    overflow-y: auto;
    overflow-x: hidden;
    display: none;
  }

  img.gktFreeGiftcardPopupImage {
    width: 100%;
    height: 200px;
    object-fit: contain;
  }

  .gktFreeGiftcardPopupHeading{
    font-size: 20px;
    margin: 0 !important;
    padding: 8px !important;
    text-align:center;
  }
  .gktFreeGiftcardPopupInputFields{
      display:grid;
      grid-gap:5px;
      margin: 0 !important;

  }
  .gktFreeGiftcardPopupInputFields > input{
    display: block;
    width: 100%;
    margin: 0 !important;
    padding: 10px 20px !important;
    background-color: #f3f4f3 !important;
    border: 1px solid #f3f4f3 !important;
    border-radius: 0px !important;
    font-size: 14px !important;
}

.gktFreeGiftcardPopupModalBody{
    height:100%;
    width:100%;
    display:grid;
    grid-gap:5px;
}
textarea.gktFreeGiftcardPopupTextArea{
    display: block;
    width: 100%;
    margin-top: 10px;
    resize:none;
    padding: 10px 20px !important;
    background-color: #f3f4f3 !important;
    border: 1px solid #f3f4f3 !important;
    border-radius: 0px !important;
    font-size: 14px !important;
    margin: 0 !important;
    min-height: 90px !important;
}
.gktFreeGiftcardPopupButton{
    display: block;
    width: 100%;
    height: fit-content;
    margin-top: 0 !important;
    padding: 10px 20px;
}
.gktModalCheckoutButton:hover {
    transform: scale(0.95);
}
.gktModalCheckoutButton{
    cursor: pointer; 
}
.gktFreeGiftcardPopupInputFieldsEmailError{
    display: block;
    font-size: 12px;
    color: red;
    padding-top:2px;
}
@media only screen and (max-width: 600px) {
    .gktFreeGiftcardPopupModal {
        margin-top: 0 !important;
        top: 0;
        left: 0;
        transform: translate(0px, 0px);
        border-radius: 0px;
        height: 100vh !important;
        max-height: 100vh !important;
        min-width: 100%;
    }

}


.gktGiftCardWrapper{
    display: none;
}

.productPageGiftCardUi{
    display: grid;
    width: 100%;
    grid-gap: 10px;
    padding: 3px 0px;
    margin: 3px 0px;
}

.gktGiftCardModalWrapper {
    display: none;
    width: 100%;
    height: 100vh;
    position: fixed;
    opacity: 1;
    background: #222;
    z-index: 999999999;
    top: 0;
    left: 0;
    overflow: hidden;
    animation-name: fadeIn_Container;
    animation-duration: .2s
 }
 .gktGiftCardModalWrapper{
    background-color: #2229;
 }
  /* Modal Content */
 .gktGiftCardModal{
    position: fixed;
    top: 25%;
    left: 50%;
    max-width: 600px;
    width: 55vw !important;
    margin: 10px auto;
    padding:20px 30px 30px;
    margin-top: 20vh !important;
    border-radius: 4px;
    background: #fefefe;
    animation-name: fadeIn_Modal;
    animation-duration: .2s;
    transform: translate(-50%, -50%);
    line-height: 16px;
    max-height: 90vh;
    overflow-y: auto;
    overflow-x: hidden;
    color: black !important;
  }



.gktGiftCardInputFieldsDiv{
    display: grid;
}
 
 /* Header should be in one line*/
 .gktGiftCardModalHeader {
     display: grid;
     grid-template-columns: auto 25px;
 }
 
 
 .gktGiftCardModalPopupHeading > p {
     margin: 0 !important;
 }
 .gktGiftCardModalPopupHeading{
     font-size: 20px;
     
 }
 .gktGiftCardModalClose{
     -webkit-border-radius: 50%;
     border-radius: 50%;
     width: 24px;
     height: 24px;
     padding: 1px;
     align-self: baseline;
     justify-self: end;
     margin-top: 3px;
     margin-right: 3px;
     cursor: pointer;
 }
 
 
 .gktGiftCardContent hr{
     unset:all;
 }
   
 .gktGiftCardModalClose:hover,
   .gktGiftCardModalClose:focus {
     color: #000;
     text-decoration: none;
     cursor: pointer;
   }
 .gktGiftCardInputFieldsDiv > div {
     display: grid;
     padding-bottom:5px;
     margin-bottom:10px;
 }

 .gktGiftCardInputFieldsDiv  label{
        line-height: 1.2;
        margin-bottom:0px;
        font-size: 14px;
        color:black !important;
        padding-bottom:5px;
        text-transform:none !important;
        letter-spacing:0px !important;
 }

 .gktGiftCardModalCheckbox{
     display: block !important;
 }
.gktGiftCardModalCheckbox input[type="checkbox"]{
        display: inline-block;
        margin-right: 10px;
        margin-left: 0px;
        width: auto;
        height: max-content !important;
 }
 .gktGiftCardModalCheckbox .gktGiftCardModalCheckboxLabel{
        display: inline-block;
        margin-right: 10px;
        margin-left: 0px;
        width: auto;
 }


 .gktGiftCardContainer {
    height: 400px;
    border-top: 1px solid #A2A2A2 !important;
    display: grid;
    grid-template-rows: 1fr 9fr;
}

 .gktGiftCardDetailsContent  input, .productPageGiftCardUi  input{
    margin:0px;
    padding: 10px 18px;
    width: 100%;
    background-color: #ffffff;
    color: #000000;
    max-width: 100%;
    line-height: 1.2;
    border-radius: 2px;
    padding-bottom: 10px;
    border: 1px solid #A2A2A2;
    font-size:14px !important;
 }

 .productPageGiftCardUi  textarea{
    margin:0px;
    padding: 10px 18px;
    width: 100%;
    background-color: #ffffff;
    color: #000000;
    max-width: 100%;
    line-height: 1.2;
    border-radius: 2px;
    padding-bottom: 10px;
    border: 1px solid #A2A2A2;
    font-size:14px !important;
 }

 .gktGiftCardMessageInputFieldsDiv textarea {
    margin:0px;
    padding: 10px 18px;
    width: 100%;
    border: 1px solid #cccccc;
    background-color: #ffffff;
    color: #000000;
    max-width: 100%;
    line-height: 1.2;
    border-radius: 2px;
    padding-bottom: 10px;
    max-height: 70px !important;
    min-height:50px !important;
    border: 1px solid #A2A2A2;
    resize: none;
    width: 100%;
    height: 126px;
    padding: 10px;
}
  .greetingCardMainBody,.gktGiftCardDetailsContent,.gktGiftCardMessageContent{
    background: #F2F2F2 0% 0% no-repeat padding-box;
    padding:20px; 
    font-size:14px !important;
 }

 .greetingCardMainBody{
    padding:0px;
    // why are we declaring this here? 
    // because we dont want to have padding for scroll
 }
 .gktGiftCardMessageDivider{
    display: block !important;
    border: 1px solid #A2A2A2 !important;
    height: 0px;
    opacity: 0.5;
 }
.gktGiftCardMessageLabel{
    text-align: left;
    letter-spacing: 0px;
    display: block;
    color: #000000;
    padding-bottom: 10px;
    opacity: 1;
}



 .gktGiftCardDetailsContent {
    font-size: 16px;
    height: 400px;
    overflow-y: auto;
    text-align: start;
 }
 .gktGiftCardEmailValidation,.gktGiftCardDateValidation{
    color: red;
    margin: 0;
    padding: 0;
    font-size: 12px;
 }
  .gktGiftCardInputFieldsDiv label[required]::after, label[required]:after{
    content: '*';
    margin-right: 4px;
    color: red;
  }
  .gktGiftCardDateLabel{
    margin:0px !important;
    padding:0px !important;
  }
  .gktGiftCardInputRow5{
      padding:0px !important;
  }
 
 .gktGiftCardContentHeader{
 
 }
 .gktGiftCardContentFooter{
    margin: 10px auto;
    margin-bottom: 30px;
 }
 .gktGiftCardContentFooterBtn1{
    cursor: pointer;
    padding: 12px 12px;
    font-weight: 500;
    text-align: center;
    background-color: #A96668;
    color: white;
    transition: transform .2s;
    font-size:16px; 
 }
 .gktGiftCardContentFooterBtn1:hover {
    transform: scale(0.95);
}
 .gktGiftCardContentFooterBtn2{
 
 }



 .greetingCardMainBody {
    height: 100%;
    display: grid;
    grid-template-columns: 1fr;
    overflow-y: hidden;
}
.greetingCardCategoryListItemText{
    text-align: center;
    line-height: 30px;
    width: 100%;
    display: block;
    text-decoration: none;
    color: #008060;
    font-size: 16px;
}

.greetingCardImageList .greetingCardImageLabel{
}
// css class for the checked image
.greetingCardImageList .greetingCardLabel input:checked{
    border:2px solid #A96668;
    border-radius:5px;
}

.greetingCardImagePreview{
    width:100%;
    align-self:center;
    display:none;
}
.activeGreetingCardCategory a, .greetingCardCategoryListItem a:hover {
    color:black !important;
    cursor:pointer;
    border-bottom: 1px solid black;
}

.greetingCardImage:hover{
    transform: scale(1.05);
    transition: transform .3s;
    border-radius:5px;
}

OLD .greetingCardCategoryListItem{
    display:inline-block;
    font-size:16px;
    text-transform:capitalize;
    text-transform:uppercase;
    padding-right:10px;
}

.greetingCardCategoryList{
    text-align: left;
    list-style: none;
    display:grid;
    grid-template-columns: repeat(3,max-content);
    padding: 0;
    margin: 10px 0 15px;
    grid-gap:25px;
}

.greetingCardCategoryListItem{
    display: inline-block;
    text-align: center;
    height: auto;
    line-height: 2em;
    padding: 0;
    margin: 0;
}

.activeGreetingCard{
    border:2px solid black;  
    border-radius:5px;  
}

.greetingCardImageInput{
    position:absolute;
    top:0;
    left:0;
    width:100%;
    height:100%;
    visibility:hidden;
}

.greetingCardImageList{
    display:grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    overflow-x: hidden;
    overflow-y: auto;
    padding-right:5px;
    height:350px;
    padding:20px;
}

.gktVideoMsgCheckboxField,.gktVideoMessageFileInput{
    visibility:hidden;
}

.greetingCardImageList .greetingCardImageLabel img{
    /* max-width:100%; */
    padding:10px;
    width: 100%;
    width: -moz-available;          /* WebKit-based browsers will ignore this. */
    width: -webkit-fill-available;  /* Mozilla-based browsers will ignore this. */
    width: fill-available;
}

.greetingCardImageLabel{
    position:relative;
    cursor:pointer;
    display:inline-block;
    width:100%;
    align-self:center;

}

.gktGiftCardSendNowButton, .gktGiftCardSendLaterButton{
    background: inherit ;
}
.gktGiftCardSendNowButton:hover,.gktGiftCardSendLaterButton:hover{
    background: inherit;
}
.gktGiftCardSendNowButton, .gktGiftCardSendLaterButton{
    display: inline-block;
    justify-content: center;
    cursor: pointer;
    line-height: 30px;
    margin:0px;
    padding:6px;
    font-weight: 700;
    text-transform: uppercase;
    font-size: 12px;
    color: #585858;
    border: 1px solid #f3f3f3;
    border-top: 0 solid #f3f3f3;
    border-color: #f3f3f3!important;
    transition: transform .2s;
    font-family:inherit;
}

.gktGiftCardSendNowButton:hover, .gktGiftCardSendLaterButton:hover{

    transform: scale(0.95);

}

.activeDeliveryOption{
    border: 1px solid #A2A2A2 !important;
}

/*** Giftcard Modal Css ***/
.gktGiftCardModalPopupHeading{
    font-size:16px;
    margin:0;
    padding:10px;
}
.gktGiftCardModalSubText{
    font-size:16px;
    margin-bottom:10px;
}
.activeContent{
    font-weight:bold;
    color:black;
}
.gktGiftCardModalNavForMobile{
    display:none;
}
.gktDeliveryOptions{
    display:grid;
    grid-template-columns: 1fr 1fr;
    margin:10px 0px;
    grid-gap: 5px;
    text-align: center;
}

.gktGiftCardModalBackButton{
    cursor:pointer;
    font-size: 14px;
    position: absolute;
    color:black;
    top: 10px;
    padding-top: 10px;
    display: inline-grid;
    grid-auto-flow: column;
    justify-items: center;
    align-items: center;
    left: 30px;
    top: 10px;

}

.gktGiftCardModalNav{
    display: flex;
    flex-direction: row;
    gap: 10px;
    padding-bottom: 10px !important;
    padding-top:10px !important;
}

.gktGiftCardModalNav li{    
    display:inline-block;
    margin:0;
    padding:0 10px;
    list-style: none;
    color: grey;
}
.gktGiftCardModalNavListItem.activeNavItem{
    color: black;
}
.gktGiftCardModalNavListItem{
    font-size: 16px;
}
@media screen and (max-width: 600px) {
    .gktGiftCardModal  {
        top: 25%;
        left: 50%;
        min-width: 250px;
        /* width: 100vw !important; */
        padding: 10px 20px;
        margin-top: 0 !important;
        top: 0;
        left: 0;
        transform: translate(0px, 0px);
        border-radius: 0px;
        height: 100vh !important;
        max-height: 100vh !important;
        min-width: 100%;
        min-width: -moz-available;          /* WebKit-based browsers will ignore this. */
        min-width: -webkit-fill-available;  /* Mozilla-based browsers will ignore this. */
        min-width: fill-available;
    }
    .gktGiftCardContainer,.gktGiftCardDetailsContent {
        height: max-content;  
        grid-template-rows: auto auto;
    }
    .greetingCardMainBody{
        grid-template-columns: 1fr;
        height: fit-content;
        
    }
    .greetingCardImagePreview{
        display:none;
        width:0;
    }
    .greetingCardImageList{
        display:grid;
        grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
        height: fit-content;
        max-height: 65vh;
    }
    .greetingCardCategoryList{
        grid-template-columns: repeat(3,1fr);
    }    
    .gktDeliveryOptions{
        display:grid;
        grid-template-columns: 1fr 1fr;
        text-align: center;
    }
    .gktGiftCardModalNav{
        display:none;
    }
    .gktGiftCardModalNavForMobile{
            display:block;
            padding-top: 20px;
            padding-bottom:20px;
    }
    .gktGiftCardModalBackButton{
        left: 10px;
        top: 5px;
    }
   
 }


/**** Checkmark css ***/
.gkt_checkmark {
    display:inline-block;
    position:absolute;
    top:10px;
    left:10px;
    width: 22px;
    height:22px;
    -ms-transform: rotate(45deg); /* IE 9 */
    -webkit-transform: rotate(45deg); /* Chrome, Safari, Opera */
    transform: rotate(45deg);
}

.gkt_checkmark_circle {
    display:block !important;
    position: absolute;
    width:22px;
    height:22px;
    background-color: green;
    border-radius:11px;
    left:0;
    top:0;
    opacity:0.5;
}

.gkt_checkmark_stem {
    display:block !important;
    position: absolute;
    width:3px;
    height:9px;
    background-color:#fff;
    left:11px;
    top:6px;
}

.gkt_checkmark_kick {
    display:block !important;
    position: absolute;
    width:3px;
    height:3px;
    background-color:#fff;
    left:8px;
    top:12px;
}
.gktGiftCardMessageContent{
    margin:0 !important;
    display:grid;
    background: #F2F2F2 0% 0% no-repeat padding-box;
    grid-gap:20px;
    overflow-y: auto;
}


.gktVideoMessageCheckboxRow{
    display: grid;
    grid-auto-flow: column;

}
.gktVideoMsgCheckboxLabel{
    text-align: left;
    letter-spacing: 0px;
    color: #000000;
}
 .gktVideoMsgCheckboxWrapper {
    position: relative;
    display: inline-block;
    width: 44px;
    justify-self: end;
    height: 26px;
  }
  
.gktVideoMsgToggle input{ 
    opacity: 0;
    width: 0;
    height: 0;
  }
  
.gktVideoMsgSlider, .gktVideoMsgSlider_Mobile {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #fff;
    border: 1px solid black;    
    -webkit-transition: .4s;
    transition: .4s;
  }
  
 .gktVideoMsgSlider:before, .gktVideoMsgSlider_Mobile:before {
    position: absolute;
    content: "";
    height: 20px;
    width: 20px;
    left: 4px;
    bottom: 4px;
    top:2px;
    background-color: white;
    -webkit-transition: .4s;
    transition: .4s;
  }
  
   input:checked + .gktVideoMsgSlider ,
   input:checked + .gktVideoMsgSlider_Mobile{
    background-color: black;
  }
  
 input:checked + .gktVideoMsgSlider:before,
 input:checked + .gktVideoMsgSlider_Mobile:before {
    -webkit-transform: translateX(16px);
    -ms-transform: translateX(16px);
    
    transform: translateX(16px);
  }
  
  .gktGiftCardContent ::-webkit-scrollbar {
    width: 5px;
  }
  
  /* Track */
  .gktGiftCardContent  ::-webkit-scrollbar-track {
    background: #f1f1f1; 
  }
   
  /* Handle */
   .gktGiftCardContent  ::-webkit-scrollbar-thumb {
    background: #2c2c2c 0% 0% no-repeat padding-box;
  }
  
  /* Handle on hover */
  .gktGiftCardContent  ::-webkit-scrollbar-thumb:hover {
    background: #000000 0% 0% no-repeat padding-box;
  }
  /* Rounded sliders */
  .slider.round, .gktVideoMsgSlider,
  .slider.round, .gktVideoMsgSlider_Mobile {
    border-radius: 34px;
  }
  
  .slider.round:before, .gktVideoMsgSlider:before ,
  .slider.round:before, .gktVideoMsgSlider_Mobile:before {
    border-radius: 50%;
    border: 1px solid black;
  }

  .gktGiftCardModalNavListItemSpan{
    display: inline-grid;
    align-items: center;
  }

.gktGiftCardModal form {
    position: unset;
}

.gktVideoMessageFileInput{
    visibility: hidden;
}

/* The container */
.gktGiftCardModalCheckboxContainer{
    position: relative;
}


.gktGiftCardModalCheckbox {
  display: block;
  position: relative;
  padding-left: 25px;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}



/* Hide the browser's default checkbox */
.gktGiftCardModalCheckbox input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
  height: 0;
  width: 0;
}

/* Create a custom checkbox */

.gktCustomCheckboxCheckmarkSmall {
  position: absolute;
  top: 0px;
  left: 0px;
  height: 18px;
  width: 18px;
  border: 1px solid #a2a2a2;
  border-radius: 4px;
}

/* On mouse-over, add a grey background color */
.gktGiftCardModalCheckbox:hover input ~ .gktCustomCheckboxCheckmarkSmall {
  background-color: #ccc;
}

/* When the checkbox is checked, add a blue background 
.gktGiftCardModalCheckbox input:checked ~ .gktCustomCheckboxCheckmarkSmall {
  background-color: #2196F3;
} */

/* Create the gktCustomCheckboxCheckmarkSmall/indicator (hidden when not checked) */
.gktCustomCheckboxCheckmarkSmall:after {
  content: "";
  position: absolute;
  display: none;
}

/* Show the gktCustomCheckboxCheckmarkSmall when checked */
.gktGiftCardModalCheckbox input:checked ~ .gktCustomCheckboxCheckmarkSmall:after {
  display: block;
}

/* Style the gktCustomCheckboxCheckmarkSmall/indicator */
.gktGiftCardModalCheckbox .gktCustomCheckboxCheckmarkSmall:after {
  left: 5px;
  top: 1px;
  width: 6px;
  height: 10px;
  border: solid #009c00;
  border-width: 0 3px 3px 0;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}






  
  
  .gktGiftMessageContainer {
     display:  grid;
     grid-template-columns: 1fr;
     grid-template-rows: auto;
     padding: 5px 0px;
  }
  
  .gktGiftMessageItemContainer{
      display:  grid;
      grid-template-columns: 1fr;
      grid-template-rows: auto;
      padding: 3px 0px;
      margin: 3px 0px;
      border-radius: 3px;
      font-size: 14px;
  }
  
  .gktGiftMessageItemContainer label {
    margin-bottom: 0px
  }
  
  .gktGiftMessageItemContainerLabelText{
    align-self: center;
    font-size:14px;
    justify-self: left;
    text-align: left;
  }

  .gktGiftMessageItemContainerLabelText > p{
    padding: 0px;
    margin: 0px;
  }

  .gktGiftMessageImage{
     width: 40px;
      height: 40px;
      border: 1px solid #f1f2f3;
  }
  .gktGiftMessageItemContainerItem1{
      grid-row: 1 / 5;
  }
  
  .gktGiftMessageItemContainerItem2{
      
  }
  
  .gktGiftMessageItemContainerItem3{
      position: relative;
      display: flex;
      width: fit-content;
      height: 30px;
      border-radius: 4px;
      overflow: hidden;
  }
  
   label.gktCustomCheckboxMsgContainer {
      display: grid;
      grid-template-columns: 1fr;
      min-height: 30px;
      font-weight: 600;
  } 
  
  /* The container */
  .gktCustomCheckboxMsgContainer {
    display: block;
    position: relative;
    padding-left: 35px;
   
    cursor: pointer;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
  }
  
  /* Hide the browser's default checkbox */
  .gktCustomCheckboxMsgContainer input {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
  }
  
  /* Create a custom checkbox */
  .gktCustomMsgCheckboxCheckmark {
    position: absolute;
    top: 2px;
    left: 0;
    height: 25px;
    width: 25px;
    border: 1px solid #a2a2a2;
    border-radius: 4px;
  }
  
  /* On mouse-over, add a grey background color */
  .gktCustomCheckboxMsgContainer:hover input ~ .gktCustomMsgCheckboxCheckmark {
    background-color: #ccc;
  }
  
  /* When the checkbox is checked, add a blue background 
  .gktCustomCheckboxMsgContainer input:checked ~ .gktCustomMsgCheckboxCheckmark {
    background-color: #2196F3;
  } */
  
  /* Create the gktCustomMsgCheckboxCheckmark/indicator (hidden when not checked) */
  .gktCustomMsgCheckboxCheckmark:after {
    content: "";
    position: absolute;
    display: none;
  }
  
  /* Show the gktCustomMsgCheckboxCheckmark when checked */
  .gktCustomCheckboxMsgContainer input:checked ~ .gktCustomMsgCheckboxCheckmark:after {
    display: block;
  }
  
  /* Style the gktCustomMsgCheckboxCheckmark/indicator */
  .gktCustomCheckboxMsgContainer .gktCustomMsgCheckboxCheckmark:after {
    left: 8px;
    top: 1px;
    width: 8px;
    height: 16px;
    border: solid #009c00;
    border-width: 0 3px 3px 0;
    -webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);
  }
  
 
  textarea.gktGiftMessageTextArea {
        display: none;
        border: 1px solid #b9babb;
        height: 60px;
        margin-left: 1px;
        -webkit-transition: all 0.6s ease-in-out;
        transition: all 0.6s ease-in-out;
        font-size: 14px;
        
    }

  

    .openGiftKartModal {
        vertical-align: middle;
    }

    #other {
        text-align: right;
        width: 100%;
        max-width: 100%;
    }
    
    .header__inline h1,
    .header__inline h2,
    .header__inline h3,
    .header__inline h4,
    .header__inline h5,
    .header__inline h6,
    .header__inline p {
        display: inline;
    }


    .GiftKartModalbtn:hover,
    .gktModalSave:hover {
        transform: scale(0.95);
    }


    .GiftKartContainer {
        display: none;
        width: 100%;
        height: 100vh;
        position: fixed;
        opacity: 1;
        background: #222;
        z-index: 999999999;
        top: 0;
        left: 0;
        overflow: hidden;
        animation-name: fadeIn_Container;
        animation-duration: 1s
    }

    .GiftKartModal {
        display: none;
        top: 0;
        min-width: 250px;
        width: 50vw !important;
        margin: 0 auto;
        margin-top: 25vh !important;
        z-index: 9999999999;
        background: #fff;
        box-shadow: 0 0 10px #000;
        animation-name: fadeIn_Modal;
        animation-duration: .8s;
    }

    .GiftKartheader {
        padding: 5px 10px;
        width: 100%;
        height: 70px;
        border-radius: 10px 10px 0 0;
        border-bottom: 2px solid #ccc
    }

    .GiftKartheader a {
        text-decoration: none;
        float: right;
        line-height: 70px;
        margin-right: 20px;
        color: #aaa
    }

    .GiftKartcontent {
        width: 100%;
    }

    #first_label {
        padding-top: 30px
    }

    #second_label {
        padding-top: 25px
    }

    .GiftKartfooter,
    .gktModalFooter {
        padding: 13px 10px;
        text-align: right;
        width: 100%;

    }




    @media screen and (max-width: 900px) {
        .GiftKartModalContent-left {
            display: none;
        }

        .GiftKartModalContent {
            grid-template-columns: 1fr !important;
        }

        .GiftKartModalContent-right-giftingOptions {
            font-size: 15px !important;
        }
    }

    @keyframes fadeIn_Modal {
        from {
            opacity: 0
        }

        to {
            opacity: 1
        }
    }

    @keyframes fadeIn_Container {
        from {
            opacity: 0
        }

        to {
            opacity: .9
        }
    }

    #is-a-gift {
        margin: 0px;
        padding: 10px;
    }

    #giftnote,
    .gktMessageTextarea {
        color: #636363;
        border: 1px solid #ccc;
        width: 100%;
        border-radius: 5px;
        height: 200px;
        padding: 10px;
        margin-top: 5px;
        resize: none;
        font-size: 14px !important;
    }

    .giftnote-giftKart {
        border: 1px solid black !important;
        border-radius: 0px !important;
    }

    .giftnote-giftKart:focus {
        outline: 0;
    }

    .GiftKartModalContent {
        display: grid;
        grid-template-columns: 1fr 1fr;
        grid-template-rows: 1;
    }

    .GiftKartModalContent-right {
        display: grid;
        grid-template-columns: 1fr;
        grid-template-rows: 30px 50px;
    }

    .GiftKartModalContent-right-closeButton,
    .gktModalClose {
        fill: rgba(255, 255, 255, 0.851);
        background: rgba(32, 33, 36, 0.1);
        -webkit-border-radius: 50%;
        border-radius: 50%;
        width: 24px;
        height: 24px;
        padding: 1px;
        align-self: baseline;
        justify-self: end;
        margin-top: 3px;
        margin-right: 3px;
        cursor: pointer;
    }

    .GiftKartModalContent-right-header {
        align-self: center;
        justify-self: center;
        font-weight: 1000;
    }

    .GiftKartModalContent-right-giftingOptions {
        font-size: 20px;
        padding: 10px;
    }

    .GiftKartModalContent-right-footer {
        margin: 15px 20px;
        display: grid;
        align-items: center;
    }

    .GiftKartModalbtn,
    .gktModalSave {
        cursor: pointer;
        padding: 6px 12px;
        font-weight: 500;
        text-align: center;
        background-color: #A96668;
        color: white;
        transition: transform .2s;
        margin: 0 20%;
    }

    .ql-size-small {
        font-size: 11px;
    }

    .ql-size-large {
        font-size: 26px;
    }

    .ql-size-huge {
        font-size: 36px;
    }

    .gktModalWrapper {

        display: none;
        width: 100%;
        height: 100vh;
        position: fixed;
        opacity: 1;
        background: #222;
        z-index: 999999999;
        top: 0;
        left: 0;
        overflow: hidden;
        animation-name: fadeIn_Container;
        animation-duration: 1s
    }

    /* Modal Content */
    .gktModal {

        position: fixed;
        top: 25%;
        left: 50%;
        min-width: 250px;
        width: 50vw !important;
        margin: 10px auto;
        padding: 10px;
        margin-top: 25vh !important;
        border-radius: 2%;
        background: #fefefe;
        box-shadow: 0 0 10px #000;
        animation-name: fadeIn_Modal;
        animation-duration: .8s;

        transform: translate(-50%, -50%);
    }




    .gktModalClose:hover,
    .gktModalClose:focus {
        color: #000;
        text-decoration: none;
        cursor: pointer;
    }



    .gktPageWrapper {
        display: grid;
        grid-template-columns: 1fr;
        cursor: pointer !important;
        margin-bottom: 5px;
        /* padding: 0px 10px; */
    }


    .gktPageWrapperV2 {
        display: grid;
        grid-template-columns: 1fr;
        cursor: pointer !important;
      
    }

    .gktProductPageUpsellWrapper {
        display: none;
        width: 100%
    }

    .gktComboWrapper {
        display: none;
        ,
        width: 100%
    }

    .gktGiftMessageWrapper {
        display: none;
        width: 100%
    }

    .gktGiftMsgAndWrapWrapper {
        display: none;
        width: 100%
    }


    .gktCartUpsellWrapper {
        display: none;
        width: 100%
    }



    .gktCartGiftMessageWrapper {
        display: none;
        width: 100%
    }

    .gktCartGiftMsgAndWrapWrapper {
        display: none;
        width: 100%
    }

    .gktGiftMessageWrapper {
        display: none;
        width: 100%
    }

    .gktCartGiftMessageWrapper {
        display: none;
        width: 100%
    }


    .gktPageWrapper input {
        display: inline-block;
    }

    .gktPageWrapper label {
        margin-left: 1px;
    }

    .giftCartPageWrapper {
        display: grid;
        grid-template-columns: 25px 4fr;
        align-items: baseline;
        justify-items: start;
    }



    .gktModalHeader {
        padding: 10px;
    }

    .gktContentWrapper {
        display: grid;
    }

    .gktGridLayout {
        /* is attached dynamically to gktContentWrapper*/
        grid-template-columns: 1fr 1fr;
    }

    /*.gktLeftContent and gktRightContent */
    .gktContentWrapper>div {
        display: grid;
        grid-template-rows: 1fr 3fr;
        grid-gap: 10px;
        padding: 5px 10px;
        margin: 5px 10px;
        font-size: 30px;
    }

    .gktContentWrapper>div:empty {
        display: none;
    }

    .gktMessageCheckboxHeading,
    .gktWrapCheckboxHeading {
        font-size: 20px !important;
    }

    .gktModalFooter {
        text-align: center;
    }



    /* Header should be in one line*/
    .gktModalHeader {
        display: grid;
        grid-template-columns: auto 25px;
    }


    .gktProductPageWrapper {
        position: relative;
        justify-items: start;
        align-items: end;
    }

    .gktJustifyCenter {
        justify-self: center;
        align-self: center;
    }

    .gktGiftWrapImage {
        width: 200px;
        height: 200px;
        background-repeat: no-repeat;
        background-position: 50% 50%;
        justify-self: center;
        object-fit: cover;
    }


    .gktCartGiftMsgAndWrapHeader {
        display: grid;
        justify-items: left;
        padding: 3px 0px;
        margin: 3px 0px;

    }

    .gktGiftMsgAndWrapHeader {
        display: grid;
        justify-items: left;
        padding: 3px 0px;
        margin: 3px 0px;
    }

    .gktGiftMsgAndWrapWrapperInnerEle {
        display: grid !important;
        grid-template-columns: 25px auto;
        align-items: center;
        justify-items: center;
        user-select: none;
    }

    .gktGiftMsgAndWrapWrapperInnerEle p {
        margin: 0 !important;
        padding: 0 !important;
    }


    .gktGiftMsgAndWrapHeader>label {
        margin: 0 !important;
        padding: 0 !important;
    }

    .gktCartGiftMsgAndWrapHeader>label {
        margin: 0 !important;
        padding: 0 !important;
    }

    .gift-checkbox-giftKart {
        align-self: center;
        justify-self: center;
    }

    .gktCheckboxLayout {
        display: grid !important;
        grid-template-columns: 25px auto;
        font-size: 20px;
        align-items: center;
    }

    .gktMessageCheckboxHeading>p,
    .gktModalPopupHeading>p,
    .gktGiftWrapCheckboxHeading>p {
        margin: 0 !important;
    }

    .gktAlignCenter {
        align-self: center;
    }

    @media screen and (max-width: 900px) {
        .gktGridLayout {
            grid-template-columns: 1fr;
        }

        .gktContentWrapper>div {
            grid-template-rows: 1fr !important;
        }

        .gktLeftContent {
            grid-template-rows: 1fr 1fr !important;
        }

        .gktMessageTextarea {
            width: 100% !important;
            height: 100px !important;
        }

        .gktModal {
            top: 10% !important;

        }

        .gktDisplayWrapImageOnPhone {
            display: block !important;
        }

        .gktModal {
            width: 95vw !important;
        }

        .gktModalWrapper p,
        .gktModal p {
            font-size: 20px !important;
        }

    }

    .ql-font-arial {
        font-family: 'Arial';
    }

    .ql-font-times-new-roman {
        font-family: 'Times New Roman';
    }

    .ql-font-courier-new {
        font-family: 'Courier New';
    }

    .ql-font-comic-sans-ms {
        font-family: 'Comic Sans MS';
    }

    .ql-font-impact {
        font-family: 'Impact';
    }

    .ql-font-lucida-console {
        font-family: 'Lucida Console';
    }

    .ql-font-lucida-sans-unicode {
        font-family: 'Lucida Sans Unicode';
    }

    .ql-font-tahoma {
        font-family: 'Tahoma';
    }

    .ql-font-verdana {
        font-family: 'Verdana';
    }

    .ql-font-helvetica {
        font-family: 'Helvetica';
    }

    .ql-font-trebuchet-ms {
        font-family: 'Trebuchet MS';
    }

    .ql-font-georgia {
        font-family: 'Georgia';
    }

    .ql-font-garamond {
        font-family: 'Garamond';
    }

    .ql-font-brush-script-mt {
        font-family: 'Brush Script MT';
    }

    .loadingCheckoutPage{
        display:flex;
        align-items:center;
        justify-content: center;
        opacity:0.5;
        }

  
  
  .gktGiftMessageContainer {
     display:  grid;
     grid-template-columns: 1fr;
     grid-template-rows: auto;
     padding: 5px 0px;
  }
  
  .gktGiftMessageItemContainer{
      display:  grid;
      grid-template-columns: 1fr;
      grid-template-rows: auto;
      padding: 3px 0px;
      margin: 3px 0px;
      border-radius: 3px;
      font-size: 14px;
  }
  
  .gktGiftMessageItemContainer label {
    margin-bottom: 0px
  }
  
  .gktGiftMessageItemContainerLabelText{
    align-self: center;
    font-size:14px;
    justify-self: left;
    text-align: left;
  }
  .gktGiftMessageImage{
     width: 40px;
      height: 40px;
      border: 1px solid #f1f2f3;
  }
  .gktGiftMessageItemContainerItem1{
      grid-row: 1 / 5;
  }
  
  .gktGiftMessageItemContainerItem2{
      
  }
  
  .gktGiftMessageItemContainerItem3{
      position: relative;
      display: flex;
      width: fit-content;
      height: 30px;
      border-radius: 4px;
      overflow: hidden;
  }
  
   label.gktGiftMsgAndWrapWrapperInnerEle {
      display: grid;
      grid-template-columns: 1fr;
      min-height: 30px;
      font-weight: 600;
  } 
  
  /* The container */
  .gktGiftMsgAndWrapWrapperInnerEle {
    display: block;
    position: relative;
    padding-left: 35px;
   
    cursor: pointer;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
  }
  
  /* Hide the browser's default checkbox */
  .gktGiftMsgAndWrapWrapperInnerEle input {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
  }
  
  /* Create a custom checkbox */
  .gktCustomWrapCheckboxCheckmark {
    position: absolute;
    top: 2px;
    left: 0;
    height: 25px;
    width: 25px;
    border: 1px solid #a2a2a2;
    border-radius: 4px;
  }
  
  /* On mouse-over, add a grey background color */
  .gktGiftMsgAndWrapWrapperInnerEle:hover input ~ .gktCustomWrapCheckboxCheckmark {
    background-color: #ccc;
  }
  
  /* When the checkbox is checked, add a blue background 
  .gktGiftMsgAndWrapWrapperInnerEle input:checked ~ .gktCustomWrapCheckboxCheckmark {
    background-color: #2196F3;
  } */
  
  /* Create the gktCustomWrapCheckboxCheckmark/indicator (hidden when not checked) */
  .gktCustomWrapCheckboxCheckmark:after {
    content: "";
    position: absolute;
    display: none;
  }
  
  /* Show the gktCustomWrapCheckboxCheckmark when checked */
  .gktGiftMsgAndWrapWrapperInnerEle input:checked ~ .gktCustomWrapCheckboxCheckmark:after {
    display: block;
  }
  
  /* Style the gktCustomWrapCheckboxCheckmark/indicator */
  .gktGiftMsgAndWrapWrapperInnerEle .gktCustomWrapCheckboxCheckmark:after {
    left: 8px;
    top: 1px;
    width: 8px;
    height: 16px;
    border: solid #009c00;
    border-width: 0 3px 3px 0;
    -webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);
  }
  
 

  textarea.gktGiftMessageTextArea {
        display: none;
        border: 1px solid #b9babb;
        height: 60px;
        margin-left: 1px;
        -webkit-transition: all 0.6s ease-in-out;
        transition: all 0.6s ease-in-out;
        font-size: 14px;
    }

  


.gktNotificationWrapper{
    position:fixed;
    margin: 0 !important;
    padding: 0 !important;
    top: 40px;
    right: 5px;
    display: none;
    z-index: 99999999999999;
}

.gktNotificationItem{
    margin: 4px 0px;
    background: white;
    color: black;
    padding: 4px 8px;
    -moz-box-shadow: 10px 10px 16px #000000;
    -webkit-box-shadow: 10px 10px 16px #000000;
    box-shadow: 0px 15px 30px rgba(0,0,0,0.08);
    max-width: 250px;
    display:grid;
    grid-template-columns: 30px 1fr 20px;
    justify-items: center;
    align-items: center;
    border-left: 5px solid green;
    border-radius: 4px;
    transform: translateX(300px);
    transition: 0.3s;
}

.gktNotificationItemContent{
    padding-right: 10px;

}

.gktNotificationItemContent2{
    display: grid;
    justify-self: start;
    align-self: center;

}

.gktNotificationItemContent3{
    display: grid;
    font-size: 14px;
    justify-self: start;
}
.gktNotificationItemContent4{
    display: grid;
    justify-self: end;
}




.gktNotificationItemContent3SubText{
    font-size: 12px;
}






.gktOneClickUpsellContainer {
   display:  grid;
   grid-template-columns: 1fr;
   grid-template-rows: auto;
   padding: 5px 0px;
}

.gktOneClickUpsellItemContainer{
    display:  grid;
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    padding: 3px 0px;
    margin: 3px 0px;
    border-radius: 3px;
    font-size: 14px;
}

.gktOneClickUpsellItemContainer label {
  margin-bottom: 0px
}

.gktOneClickUpsellItemContainerLabelText{
  align-self: center;
  font-size:12px;
  justify-self: left;
  text-align: left;
}
.gktOneClickUpsellImage{
   width: 40px;
    height: 40px;
    border: 1px solid #f1f2f3;
}
.gktOneClickUpsellItemContainerItem1{
    grid-row: 1 / 5;
}

.gktOneClickUpsellItemContainerItem2{
    
}

.gktOneClickUpsellItemContainerItem3{
    position: relative;
    display: flex;
    width: fit-content;
    height: 30px;
    border-radius: 4px;
    overflow: hidden;
}

 label.gktCustomCheckboxContainer {
    display: grid;
    grid-template-columns: 5fr 1fr;
} 

/* The container */
.gktCustomCheckboxContainer {
  display: block;
  position: relative;
  padding-left: 35px;
 
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

/* Hide the browser's default checkbox */
.gktCustomCheckboxContainer input {
  position: absolute;
  opacity: 0;
  cursor: pointer;
  height: 0;
  width: 0;
}

/* Create a custom checkbox */
.gktCustomCheckboxCheckmark {
  position: absolute;
  top: 5px;
  left: 0;
  height: 25px;
  width: 25px;
  border: 1px solid #a2a2a2;
  border-radius: 4px;
}

/* On mouse-over, add a grey background color */
.gktCustomCheckboxContainer:hover input ~ .gktCustomCheckboxCheckmark {
  background-color: #ccc;
}

/* When the checkbox is checked, add a blue background 
.gktCustomCheckboxContainer input:checked ~ .gktCustomCheckboxCheckmark {
  background-color: #2196F3;
} */

/* Create the gktCustomCheckboxCheckmark/indicator (hidden when not checked) */
.gktCustomCheckboxCheckmark:after {
  content: "";
  position: absolute;
  display: none;
}

/* Show the gktCustomCheckboxCheckmark when checked */
.gktCustomCheckboxContainer input:checked ~ .gktCustomCheckboxCheckmark:after {
  display: block;
}

/* Style the gktCustomCheckboxCheckmark/indicator */
.gktCustomCheckboxContainer .gktCustomCheckboxCheckmark:after {
  left: 8px;
  top: 1px;
  width: 8px;
  height: 16px;
  border: solid #009c00;
  border-width: 0 3px 3px 0;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}

 .gktVideoPlayerHide {
    display: none !important;
  }

  .gktVideoMsgPlayerWrapper {
    /* height: 100vh; */
    z-index: 10000000000000;
    display: none;
    align-items: center;
    justify-items: center;
    width: 100%;
    /* position: fixed; */
    top: 30px;
    margin: 10px auto;
  }

  .gktRecorder {
    width: 100%;
    min-height: 250px;
    position: relative;
    border-radius: 2%;
    overflow: hidden;
  }

  .gktVideoPlayer,
  .gktVideoPlayerRecording {
    width: 100%;
    height: auto;
  }
 
  .gktRecorderCloseBtn {
    position: absolute;
    z-index: 1;
    left: 2%;
    top: 5%;
    background: transparent;
    border: none;
    display: none;
  }

  .gktRecorderCloseBtn img {
    height: 30px;
    width: 30px;
    filter: invert(90%);
    cursor: pointer;
  }

  .gktVideoPlayerStartBtn,
  .gktVideoPlayerStopBtn {
    position: absolute;
    bottom: 2%;
    left: 50%;
    transform: translateX(-50%);
    cursor: pointer;
    height: 60px;
    width: 60px;
    border-radius: 50%;
    border: none;
    background-color: transparent;
  }

  .gktVideoPlayerStartBtn {
    background-color: white;
  }

  .gktVideoPlayerStopBtn {
    background-color: red;
  }

  .gktVideoPlayerRedDot,
  .gktVideoPlayerRedSquare {
    height: 20px;
    width: 20px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
  }

  .gktVideoPlayerRedDot {
    background-color: red;
    border-radius: 50%;
  }

  .gktVideoPlayerRedSquare {
    background-color: white;
    border-radius: 10%;
  }

  .gktPermissionDenied {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: white;
    font-size: 16px;
  }

  .gktVideoPlayerTimeLeft {
    position: absolute;
    bottom: 4%;
    right: 4%;
    color: white;
    font-size: 12px;
    background: black;
    padding: 4px;
    color: white;
    opacity: 0.7;  
  }

  .gktVideoPlayerStatus {
    position: absolute;
    bottom: 4%;
    left: 4%;
    font-size: 12px;
    padding: 4px;
    background-color: black;
    color: white;
    opacity: 0.7;
  }

  

  .gktVideoPlayerControls {
    width: 100%;
    text-align: center;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    justify-content: space-evenly;
    align-items: center;
  }

  .gktLoadingHeading {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
    color: white;
    font-size: 20px;
  }

  .gktUploadingVideoHeading {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
    color: #e3dada;
    font-size: 16px;
    text-align: center;
    line-height: 40px;
  }

  .gktVideoPlayerControlsAcceptBtnDiv, 
  .gktVideoPlayerControlsPlayBtnDiv, 
  .gktVideoPlayerControlsReStartBtnDiv{
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
  }

  .gktVideoPlayerControlsBtnDivInfo{
    font-size: 12px;
    color: white;
    margin: 0 0 8px 0; 
  }

  .gktVideoPlayerControlsAcceptBtn,
  .gktVideoPlayerControlsPlayBtn,
  .gktVideoPlayerControlsReStartBtn {
    background-color: transparent;
    height: 90px;
    width: 90px;
    border-radius: 50%;
    cursor: pointer;
    border:0;
    /* margin-right: 20px; */
  }

  old.gktVideoPlayerControlsAcceptBtn {
    border: 5px solid #3ce669;
  }

  old.gktVideoPlayerControlsPlayBtn {
    border: 5px solid #d3d3d3;
  }

  old.gktVideoPlayerControlsReStartBtn {
    border: 5px solid #e03838;
  }

  .gktVideoPlayerControlsAcceptBtnImg,
  .gktVideoPlayerControlsPlayBtnImg,
  .gktVideoPlayerControlsReStartBtnImg {
    height: auto;
    width: 100%;
  }

  old.gktVideoPlayerControlsAcceptBtnImg {
    filter: invert(69%) sepia(59%) saturate(537%) hue-rotate(80deg) brightness(98%) contrast(93%);
  }

  old.gktVideoPlayerControlsPlayBtnImg {
    filter: invert(100%) sepia(0) saturate(7500%) hue-rotate(116deg) brightness(80%) contrast(109%);
  }

  old.gktVideoPlayerControlsReStartBtnImg {
    filter: invert(23%) sepia(77%) saturate(3858%) hue-rotate(348deg) brightness(98%) contrast(80%);
  }

  /* 500px and down */
  @media only screen and (max-width: 600px) {
    .gktVideoPlayerRecording {
      object-fit: cover;
      height: 100%;
    }
    .gktRecorder {
      min-height: 36vh;
    }
    .gktVideoPlayer,
  .gktVideoPlayerRecording{
    width: 100%;
    object-fit: cover;
    position: absolute;
    height: 100%;
  }
    /* .gktVideoPlayerControlsAcceptBtn,
    .gktVideoPlayerControlsPlayBtn,
    .gktVideoPlayerControlsReStartBtn {
      height: 50px;
      width: 50px;
    } */

    .gktVideoPlayerControlsAcceptBtnImg,
    .gktVideoPlayerControlsPlayBtnImg,
    .gktVideoPlayerControlsReStartBtnImg {
      height: 28px;
      width: 28px;
    }
  }

  /* 350px and down */
  @media only screen and (max-width: 600px) {



    
    .gktVideoPlayerStartBtn,
    .gktVideoPlayerStopBtn {
      height: 40px;
      width: 40px;
    }

    .gktVideoPlayerRedDot,
    .gktVideoPlayerRedSquare {
      width: 10px;
      height: 10px;
    }

  }
  .gktGiftCardMessageContent{
    overflow-y:auto;
  }
  .gktGiftCardMessageContent ::-webkit-scrollbar {
    width: 5px;
  }
  
  /* Track */
  .gktGiftCardMessageContent  ::-webkit-scrollbar-track {
    background: #f1f1f1; 
  }
   
  /* Handle */
   .gktGiftCardMessageContent  ::-webkit-scrollbar-thumb {
    background: #2c2c2c 0% 0% no-repeat padding-box;
  }
  
  /* Handle on hover */
  .gktGiftCardMessageContent  ::-webkit-scrollbar-thumb:hover {
    background: #000000 0% 0% no-repeat padding-box;
  }

  /* Extra small devices (phones, 600px and down) */
  /* @media only screen and (max-width: 800px) {
    .gktRecorder {
      width: 375px;
      height: 650px;
      background-color: black;
    }

    .gktVideoPlayer,
    .gktVideoPlayerRecording {
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
    }

    .gktVideoPlayerRecording {
      object-fit: contain;
    }

    .gktVideoPlayerControls {
      width: 80%;
    }

    .gktVideoPlayerControlsAcceptBtn,
    .gktVideoPlayerControlsPlayBtn,
    .gktVideoPlayerControlsReStartBtn {
      margin-right: 7px;
    }

    .gktVideoPlayerTimeLeft,
    .gktVideoPlayerStatus {
      font-size: 18px;
      background-color: rgba(0,0,0,0.2);
      padding: 2px 4px;
    }

  } */


  /* @media only screen and (max-width: 850px) {} */

  /* Small devices (portrait tablets and large phones, 600px and up) */
  /* @media only screen and (min-width: 600px) {} */

  /* Medium devices (landscape tablets, 768px and up) */
  /* @media only screen and (min-width: 768px) {} */

  /* Large devices (laptops/desktops, 992px and up) */
  @media only screen and (min-width: 900px) {
    .gktRecorder {
      min-height: 180px;
      height: 100%;
    }
    .gktRecord,.gktRecorded{
      height: 100%;
    }
    .gktVideoPlayer, .gktVideoPlayerRecording{
      width: 100%;
      object-fit: cover;
      height: 100%;
    }
    .gktVideoMsgPlayerWrapper{
      height: 300px;  
    }
   
    .gktGiftCardMessageContent{
      max-height: 350px;
    } 

  }

  /* Extra large devices (large laptops and desktops, 1200px and up) */
  /* @media only screen and (min-width: 1200px) {}  */
  </style>

<script async>
    // import a file from 
       let DEFAULT_addToCartBtnSelectors = 'input[name="add"], button[name="add"], form[action*="/cart/add"] input[type="submit"], form[action*="/cart/add"] button[type="submit"], form[action*="/cart/add"] button:not([type="button"]), form[action*="/cart/add"] .gkt__add-to-cart';
    let DEFAULT_checkoutBtnSelectors = 'button[name="checkout"], input[name="checkout"], form[action*="/cart"] a[href="/checkout"], a[href="/checkout"], form[action="/cart"] input[type="submit"][name="checkout"], form[action="/cart"] button[type="submit"][name="checkout"]';
    let DEFAULT_quantityBtnSelectors = '.ajaxcart__qty,quantity-input .quantity,.product-form__input, .product-form__quantity ';
    let DEFAULT_sideCartSelectors = '.cart-notification,cart-notification,.cart-notification-wrapper,#cart-notification, #CartDrawer, .drawer, .drawer-cover, .Drawer';
    let DEFAULT_buyNowBtn = '.shopify-payment-button__button, .shopify-payment-button__button--unbranded';
    let DEFAULT_cartForm = 'form[action="/cart"], form[action="/cart/"], form[action="cart"]';
    

    // window = this.window || {};

    //  the below code is liquid code that we are using in our theme.liquid file
    // how do i avoid compilation issues with js

    // let liquidValues = require('../snippets/shopify-liquid-values.liquid');

    //initialze liquid values 
    // check if window.shopifyLiquidValues EXISTS , if not then 
     
    if(!window.shopifyLiquidValues){
        let shopifyLiquidValues = {
            product: { handle: null },
            selected_or_first_available_variant: null,
            customer: {                     
                                            first_name: null,
                                            email: null,
                                            id: null,
                                            has_account: null,
                                            total_spent: null
                                          }
        }
    
        window.shopifyLiquidValues = shopifyLiquidValues;
    }

    // {liquidValues}
    // // liquidValues 
   
    var gktUtils = {
        f: {}
    }
    window.gktUtils = gktUtils;

    /*
    *fn(param1, param2) =>   
    *param1 is url of script that we suppose to load 
    *param2 is function that should be called after script is loaded 
    */
    gktUtils.f.loadScript = function (a, b) {
        var c = document.createElement("script");
        c.type = "text/javascript";
        c.src = a;
        document.getElementsByTagName("head")[0].appendChild(c)
        c.onload = function () { b() };
    };

    /*
    * we changed loadScript function - if else block for onload is removed as it was not making sense
    *fn(param1) =>  
    *param1 - represents function that should be executed once jquery is loaded 
    *https://www.w3schools.com/jquery/jquery_noconflict.asp
    */
    gktUtils.f.loadJquery = function (b) {
        console.log("does this work");
        let flag = false;
        if("undefined" === typeof jQuery || 1.9 > parseFloat(jQuery.fn.jquery)){
            flag = true;
        }
        if("undefined" != typeof jQuery && jQuery.post == undefined){
            flag = true;
        }

        if(flag){
            gktUtils.f.loadScript("https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js", function () {
                gktJquery = jQuery.noConflict(!0);
                b(gktJquery)
            })
        }else{
            b(jQuery);
        }
    };

    var gkt = {
        debug: [],
        version: 1.1,
        state: {
            submitted: "",
            product_added: "",
            page_type: "",
            insertWrapperOnPage: [],
            cartData: undefined,
            isOverWriteBuyNowBtnTriggered: false,
            timer: undefined,
            freeGiftcardPopupModalTriggered: false,
            freeGiftcardPopupModalCount : parseInt(sessionStorage.getItem("freeGiftcardPopupModalCount"))|| 0,
            freeGiftcardPopupModalMAXCount : 2,
            gktFreeGiftcardBuyMoreProductNotificationSubHeadingShown: false,
            sendGiftcardOnPageBtnClicked: false
        },
        constants: {
            themesIds: {
                DAWN_THEME: 887,
                VENTURE_THEME: 775,
                EXPRESS_THEME: 885,
                CRAVE_THEME: 1363,
                SENSE_THEME: 1356,
                CRAFT_THEME: 1368,
            }
        },
        cartInterval: "",
        productinterval: "",
        f: {

            bootstrap: function (settings) {
                console.log("bootstap?");
                gkt.f.initDOM(settings);
                gkt.f.initThemeCSS(settings);
                gkt.f.globalListener(settings)
                // gkt.gktGiftMsgAndWrap.init(settings);
                gkt.storage.loadValuesFromStorage(gkt.settings);
                gkt.themeSpecificCode.init(gkt.settings)
            },
            initDOM: function (settings) {
                console.log("initDOM?");
                // gkt.$ = jQuery;
                gkt.$(document).ready(function () {
                    gkt.f.initDOMElements(settings);
                    // gkt.f.initDOMEvents(settings);
                });
            },
            initDOMElements: function (settings) {
                //insert the string skeletonDOM as html
                const skeletonDOM = gkt.$.parseHTML('</div> <div class="gktModalWrapper" style="display:none;"> <div class="gktModal"> <div class="gktModalHeader"> <!-- <strong class="gktModalPopupHeading"> </strong> --> <!-- <div class="gktModalClose"> &times; </div> --> <div class="gktModalClose"> </div> </div> <div class="gktContentWrapper"> <div class="gktLeftContent"> <div class="gktJustifyCenter"> <label class="gktCheckboxLayout"> <input type="checkbox" checked="true" class="gktGiftMessageCheckbox"> <div class="gktMessageCheckboxHeading"> </div> </label> </div> <textarea class="gktMessageTextarea gktAlignCenter"> </textarea> </div> <div class="gktRightContent"> <div class="gktJustifyCenter"> <label class="gktCheckboxLayout"> <input type="checkbox" checked="true" class="gktGiftWrapCheckbox"> <div class="gktGiftWrapCheckboxHeading"> </div> </label> </div> <img class="gktGiftWrapImage gktAlignCenter" loading="lazy"> </div> </div> <div class="gktModalFooter"> <div class="gktModalSave"></div> </div> </div> </div> </div> <!-- modal for combo --> </div> <div class="gktComboModalWrapper"> <div class="gktComboModal"> <div class="gktComboModalHeader"> <strong class="gktComboModalPopupHeading"> </strong> <!-- <div class="gktModalClose"> &times; </div> --> <div class="gktComboModalClose"> </div> </div> <div class="gktComboContent"> <div class="gktComboContentHeader"></div> <div class="gktComboContentFooter"> <div class="gktComboContentFooterBtn1"></div> <div class="gktComboContentFooterBtn2"></div> </div> </div> </div> </div> </div> </div> <div class="gktGiftCardModalWrapper"> <div class="gktGiftCardModal">  <div class="gktGiftCardModalHeader"> <strong class="gktGiftCardModalPopupHeading"> </strong> <!-- <div class="gktModalClose"> &times; </div> --> <div class="gktGiftCardModalClose"> </div> </div> <div class="gktGiftCardContent"> <div class="gktGiftCardContentHeader"></div> <form> <div class="gktGiftCardGreetingCardContent"> </div> <div class="gktGiftCardDetailsContent"></div> <div class="gktGiftCardMessageContent"></div> </form> <div class="gktGiftCardContentFooter"> <div class="gktGiftCardContentFooterBtn1"></div> </div></div><div class="gktPoweredByBanner"></div> </div>  </div> <div class="gktFreeGiftcardPopupModalWrapper"> <div class="gktFreeGiftcardPopupModal"> </div> </div> </div> <div class="gktNotificationWrapper"></div> <!-- <div class="gktVideoMsgPlayerWrapper"></div> -->')
                gkt.$("body").append(skeletonDOM);
                // gkt.elements.productPageWrapperV2.append(skeletonDOM);
                // gkt.elements.cartPageWrapperV2.append(skeletonDOM);

                //attach a link to the body
                gkt.$("body").append('<link rel="stylesheet" href="https://cdn.quilljs.com/1.2.6/quill.snow.css">');
            },
            getSettings: async function () {
                    //promise
                    console.log("GET setting of giftkart fired")
                    return new Promise(function (resolve, reject) {

                        console.log("fetching from s3")
                        gkt.f.getSettingsFromS3().then(
                            success => {
                                resolve(success);
                            }
                        ).catch(error => {
                            fetch("/apps/gkt/getTmpCartSettings",{
                            method: 'GET',
                            }).then(
                                response => response.json() // if the response is a JSON object
                            ).then(
                                success => {
                                    if(success.responseCode == 200){
                                        console.log("success-data", success.data);
                                    }
                                    resolve(success.data);
                                }
                            ).catch(error => {
                                console.log(error) // Handle the error response object
                                reject(error)
                               
                            });
                    });
                });

                },
            setSelectors:  function(){
                    let settings =  gkt.settings
                    gkt.selectors = {
                        addToCart: settings.app.addToCartBtnSelectors,
                        checkoutBtn: settings.app.checkoutBtnSelectors,
                        sideCartSelectors: settings.app.sideCartSelectors,
                        buyNowBtn: settings.app.buyNowBtn,
                        cartForm: settings.app.cartForm,
                        productPageWrapperV2: '.gktProductPageWrapperV2',
                        cartPageWrapperV2: '.gktCartPageWrapperV2',
                        quantityBtnSelectors : settings.app.quantityBtnSelectors,
                    }
                },
            getSettingsFromS3: async function () {
                    //promise
                    let shopName = window.Shopify.shop
                    console.log("GET setting of giftlab pro fired")
                    return new Promise(function (resolve, reject) {
					    fetch("https://giftkart-staging.s3.us-east-2.amazonaws.com/tempCartSettings/"+shopName+`.json?nocache=${(new Date()).getTime()}`,{
                            method: 'GET',
                            }).then(
                                response => response.json() // if the response is a JSON object
                            ).then(
                                success => {
                                    if(success.responseCode == 200){
                                        console.log("success-data", success);
                                    }
                                    resolve(success);
                                }
                            ).catch(error => {
                                console.log(error) // Handle the error response object
                                reject(error)
                                })
                            })
            },
            getLoggedInCustomer: async function () {
                try{
                    if(shopifyLiquidValues && shopifyLiquidValues.customer && shopifyLiquidValues.customer.id){
                        let customerData =  await fetch(`/apps/gkt/getLoggedInCustomer?email=${shopifyLiquidValues.customer.email}`);
                        // await new Promise(resolve => setTimeout(resolve, 10000)); //sleep to check loading state
                        let customerDataJson = await customerData.json();
                        customerDataJson = customerDataJson.data;
                        gkt.settings.customer = customerDataJson;
                        return customerDataJson;
                    }
                }catch(e){
                    console.log("error in getLoggedIncustomer=",e)
                    console.log("Have you setup /apps/gkt proxy properly?")
                    return false;
                }
            },
            addGiftCardToRewardCodeAPI: async function (_id) {
                try{
                    if(shopifyLiquidValues && shopifyLiquidValues.customer && shopifyLiquidValues.customer.id){
                        let addToGiftCardAPI = await fetch(`/apps/gkt/addGiftcardToRewardCode?gktGiftcardId=${_id}`,{
                            method: 'POST',
                        });
                        let addToGiftCardAPIJson = await addToGiftCardAPI.json();
                        addToGiftCardAPIJson = addToGiftCardAPIJson.data;
                        gkt.settings.customer = addToGiftCardAPIJson;
                        return addToGiftCardAPIJson;
                    }
                }catch(e){
                    console.log("error in addGiftCardToRewardCodeAPI=",e)
                    console.log("Have you setup /apps/gkt proxy properly?")
                    return false;
                }
            },
            setSettings: function(tmpCartSettings){
                var cart_settings = {
                    giftWrapProduct: {
                        productId: tmpCartSettings.productId,
                        productVairantID: tmpCartSettings.productVariantId,
                        giftWrapPrice: tmpCartSettings.giftWrapPrice,
                        giftWrapProductImage: tmpCartSettings.giftWrapImgUrl,
                        giftWrapShopifyImgUrl: tmpCartSettings.giftWrapShopifyImgUrl,
                        giftWrapHandle: tmpCartSettings.giftWrapHandle,
                        isGiftWrapEnabled: tmpCartSettings.isGiftWrap,
                        isVisibleOnCart: tmpCartSettings.isVisibleOnCart,
                        isVisibleOnAllProductPages: tmpCartSettings.isVisibleOnAllProductPages,
                        isVisibleOnSpecificProductPages: tmpCartSettings.isVisibleOnSpecificProductPages,
                        visibleOnSpecificProductPages: tmpCartSettings.visibleOnSpecificProductPages
                    },
                    giftMessage: tmpCartSettings.giftMessage || {},
                    popup: {
                        popupHeadingText: tmpCartSettings.popupHeadingText,
                        messageCheckboxHeading: tmpCartSettings.messageCheckboxHeading,
                        giftWrapCheckboxHeading: tmpCartSettings.giftWrapCheckboxHeading,
                        messageBoxplaceholder: tmpCartSettings.messageBoxplaceholder,
                        saveButtonBackgroundColor: tmpCartSettings.saveButtonBackgroundColor,
                        saveButtonTextColor: tmpCartSettings.saveButtonTextColor,
                        saveButtonText: tmpCartSettings.saveButtonText,
                        cartPopupBackgroundColor: tmpCartSettings.cartPopupBackgroundColor,
                        reloadOnCancelClick: tmpCartSettings.reloadOnCancelClick
                    },
                    giftingOptions: {
                        isGiftWrapEnabled: tmpCartSettings.isGiftWrap,
                        isGiftMessageEnabled: tmpCartSettings.isGiftField,
                        enabledGifiting: tmpCartSettings.enabledGifiting,
                        shopifyPageinnerHTML: tmpCartSettings.cartPageText
                    },
                    videoMessage: tmpCartSettings.videoMessageData,
                    pageWrapper: { cartPageText: tmpCartSettings.cartPageText },

                    combos: tmpCartSettings.combos || [],
                    oneClickUpsells: tmpCartSettings.oneClickUpsells || [],
                    giftCards: tmpCartSettings.giftCards || [],
                    greetingCards : tmpCartSettings.greetingCardData,
                    rewardCampaigns: tmpCartSettings.rewardCampaignData,
                    app: {
                        disableApp: tmpCartSettings.userData.customSettings.disableApp || false,
                        disableSideCart: tmpCartSettings.userData.customSettings.disableSideCart || false,
                        refreshProductPageOnGiftWrap: tmpCartSettings.userData.customSettings.refreshProductPageOnGiftWrap || false,
                        addToCartBtnSelectors: tmpCartSettings.userData.customSettings.addToCartBtnSelectors || DEFAULT_addToCartBtnSelectors,
                        checkoutBtnSelectors: tmpCartSettings.userData.customSettings.checkoutBtnSelectors || DEFAULT_checkoutBtnSelectors,
                        quantityBtnSelectors: tmpCartSettings.userData.customSettings.quantityBtnSelectors || DEFAULT_quantityBtnSelectors,
                        sideCartSelectors: tmpCartSettings.userData.customSettings.sideCartSelectors || DEFAULT_sideCartSelectors,
                        // cartDrawerSelectors: tmpCartSettings.userData.customSettings.cartDrawerSelectors || DEFAULT_cartDrawerSelectors,
                        // sideCartDrawerOverlay: tmpCartSettings.userData.customSettings.sideCartDrawerOverlay || DEFAULT_sideCartDrawerOverlay,
                        themeBackgroundColor : tmpCartSettings.userData.customSettings.themeBackgroundColor || "",

                        themeFontFamily: tmpCartSettings.userData.customSettings.themeFontFamily || "",
                        themeFontColor: tmpCartSettings.userData.customSettings.themeFontColor || "",

                        themeButtonBackgroundColor: tmpCartSettings.userData.customSettings.themeButtonBackgroundColor || "",
                        themButtonTextColor: tmpCartSettings.userData.customSettings.themButtonTextColor || "",
                        themeButtonBorderColor: tmpCartSettings.userData.customSettings.themeButtonBorderColor || "",
                        themeButtonBoxShadow: tmpCartSettings.userData.customSettings.themeButtonBoxShadow || "",
                        //button font family
                        themeButtonFontFamily: tmpCartSettings.userData.customSettings.themeButtonFontFamily || "",

                        themeHeaderFontFamily: tmpCartSettings.userData.customSettings.themeHeaderFontFamily || "",
                        themeHeaderFontColor: tmpCartSettings.userData.customSettings.themeHeaderFontColor || "",

                        themeLabelFontColor: tmpCartSettings.userData.customSettings.themeLabelFontColor || "",
                        themeLabelFontFamily: tmpCartSettings.userData.customSettings.themeLabelFontFamily || "",
                        
                        hidePoweredByBanner: tmpCartSettings.userData.customSettings.hidePoweredByBanner || false,

                        buyNowBtn: tmpCartSettings.userData.customSettings.buyNowBtn || DEFAULT_buyNowBtn,
                        cartForm: tmpCartSettings.userData.customSettings.cartForm || DEFAULT_cartForm,
                        addAfterAddTocartBtn:tmpCartSettings.userData.customSettings.addAfterAddTocartBtn || false,
                        addAftercheckoutBtn: tmpCartSettings.userData.customSettings.addAftercheckoutBtn || false,
                        activeVariantCodes: tmpCartSettings.userData.customSettings.activeVariantCodes || "123456789",
                        customStyleForGiftcard: tmpCartSettings.userData.customSettings.customStyleForGiftcard || null,
                        redirectUrlForSendGiftcardBtn: tmpCartSettings.userData.customSettings.redirectUrlForSendGiftcardBtn ?  window.location.origin + tmpCartSettings.userData.customSettings.redirectUrlForSendGiftcardBtn :  window.location.origin +  "/cart/checkout" ,
                    },
                    accountWidget: tmpCartSettings.userData.accountWidget,
                    merchantInfo: tmpCartSettings.userData,
                    languageData: tmpCartSettings.languageData,
                    SERVER_URL: tmpCartSettings.SERVER_URL
                }

                gkt.settings = cart_settings;
                console.log("settings assigned")

            },

            preparePoweredByBannerUI: function () {
                try{
                    let brandingToBeShown = ['basic', 'plus', 'basic-alpha', 'plus-alpha', 'basic-beta', 'plus-beta', 'basic-gamma', 'premium-gamma', 'basic-sept8', 'pro-nov7', 'pro-jan16-free', 'pro-jan16-19']
                   
                    let showPoweredByBanner = false;

                    if(gkt.settings.app.hidePoweredByBanner == true){
                        showPoweredByBanner = false;
                    }else{
                        for(let i=0;i<brandingToBeShown.length;i++){
                            if(gkt.settings.merchantInfo.isSubscription == false || gkt.settings.merchantInfo.isSubscription.name == brandingToBeShown[i]){
                                showPoweredByBanner = true;
                                break;
                            }
                        }
                    }

                    

                    if(showPoweredByBanner){
                        let gktPoweredByBannerHTML = gkt.$("<div>").addClass("gktPoweredByBanner");
                        let gktPoweredByBannerPreImageText = gkt.$("<div>").addClass("gktPoweredByBannerPreImageText").html("Powered by &nbsp;&nbsp;");
                        let gktPoweredByBannerPostImageText = gkt.$("<div>").addClass("gktPoweredByBannerPostImageText").html("&nbsp;&nbsp;  GiftKart");
                        let gktPoweredByBannerLogo = gkt.$("<img>").addClass("gkt-branding-banner-logo");
                        gktPoweredByBannerLogo.attr("src","https://d3ks0ngva6go34.cloudfront.net/public/giftkart_logo.jpg");
                        gktPoweredByBannerLogo.attr("alt","GiftKart");
                        //very smol 
                        gktPoweredByBannerLogo.attr("width","22");
                        gktPoweredByBannerLogo.attr("height","22");
    
                        gktPoweredByBannerHTML.append(gktPoweredByBannerPreImageText);
                        gktPoweredByBannerHTML.append(gktPoweredByBannerLogo);
                        gktPoweredByBannerHTML.append(gktPoweredByBannerPostImageText);

                        gktPoweredByBannerHTML.on("click",function(){
                            window.open("https://apps.shopify.com/giftkart","_blank");
                        })
    
                        return gktPoweredByBannerHTML;
                    }else{
                        gkt.$(".gktPoweredByBanner").remove();
                    }
                    return;
             }catch(err){
                console.log("error in preparePoweredByBannerUI",err);
                return;
            }
            },
            initThemeCSS: function (){
                console.log("initThemeCSS?",gkt.selectors.addToCart);
                let  addToCartBtnEle =  gkt.$(document).find(gkt.selectors.addToCart)
                let checkoutBtnEle = gkt.$(document).find(gkt.selectors.checkoutBtn)

                let buttonToOverRide = gkt.$(addToCartBtnEle).length > 0 ?  addToCartBtnEle : checkoutBtnEle;

                if(gkt.settings.app.themeFontFamily == "" && gkt.$("body").length>0){
                    gkt.settings.app.themeFontFamily = gkt.$("body").css("font-family");
                }
                //find the font color of the theme
                if(gkt.settings.app.themeFontColor == "" && gkt.$("p").length > 0){
                    gkt.settings.app.themeFontColor = gkt.$("p").css("color");
                }
                //theme background color
                if(gkt.settings.app.themeBackgroundColor == "" && gkt.$("body").length > 0){
                    gkt.settings.app.themeBackgroundColor = gkt.$("body").css("background-color");
                }
                if(gkt.settings.app.themeLabelFontColor == "" && gkt.$("label").length > 0){
                    gkt.settings.app.themeLabelFontColor = gkt.$("label").css("color");
                }
                // themeLabelFontFamily
                if(gkt.settings.app.themeLabelFontFamily == "" && gkt.$("label").length > 0){
                    gkt.settings.app.themeLabelFontFamily = gkt.$("label").css("font-family");
                }
                if(gkt.settings.app.themeButtonBackgroundColor == "" && gkt.$(buttonToOverRide).length > 0 ){
                    gkt.settings.app.themeButtonBackgroundColor = gkt.$(buttonToOverRide).css("background-color");
                }
                if(gkt.settings.app.themButtonTextColor == "" && gkt.$(buttonToOverRide).length > 0){
                    gkt.settings.app.themButtonTextColor = gkt.$(buttonToOverRide).css("color");
                }
                if(gkt.settings.app.themeButtonBorderColor == "" && gkt.$(buttonToOverRide).length > 0){
                    gkt.settings.app.themeButtonBorderColor = gkt.$(buttonToOverRide).css("border-color");
                }
                //box shadow
                if(gkt.settings.app.themeButtonBoxShadow == "" && gkt.$(buttonToOverRide).length > 0){
                    gkt.settings.app.themeButtonBoxShadow = gkt.$(buttonToOverRide).css("box-shadow");
                }
                // button font family
                if(gkt.settings.app.themeButtonFontFamily == "" && gkt.$(buttonToOverRide).length > 0){
                    gkt.settings.app.themeButtonFontFamily = gkt.$(buttonToOverRide).css("font-family");
                }
                if(gkt.settings.app.themeHeaderFontFamily == "" && gkt.$("h1").length > 0){
                    gkt.settings.app.themeHeaderFontFamily = gkt.$("h1").css("font-family");
                }
                if(gkt.settings.app.themeHeaderFontColor == "" && gkt.$("h1").length > 0){
                    gkt.settings.app.themeHeaderFontColor = gkt.$("h1").css("color");
                }
                
            },
            getPageType: function () {
                var pageType = "";
                if (window.location.pathname.includes("/cart") && !window.location.pathname.includes("/products")) {
                    pageType = "cart";
                } else if (window.location.pathname.includes("/products")) {
                    pageType = "product";
                } else if (window.location.pathname.includes("/collections")) {
                    pageType = "COLLECTION";
                } else if (window.location.pathname.includes("/")) {
                    pageType = "HOME";
                } else if ("undefined" != typeof Shopify && "undefined" != typeof Shopify.Checkout) {
                    pageType = "CHECKOUT";
                } else {
                    pageType = "PAGE_NOT_FOUND";
                }
                return pageType;
            },
            getProductPageHandle: function () {
                if ("product" === gkt.state.page_type && shopifyLiquidValues.product.handle) {
                    // let pattern = /(?<=\\/products\\/)((?!\\?|\\$).)+/g
                    // if(window && window.location && window.location.href){
                    //     return window.location.href.match(pattern)[0]
                    // }
                    return shopifyLiquidValues.product.handle

                }
                return "undefined"

            },
            applyPopupCSS: function (element) {
                //gktGiftCardModal background-color 
                // gktGiftCardInputFieldsDiv color of the font
                gkt.$(element).css("background-color", gkt.settings.app.themeBackgroundColor);
            },
            applyButtonCSS : function(element){
                
                //apply gkt.settings.app.themButtonTextColor themeButtonBackgroundColor themeButtonBorderColor to the button
                if(gkt.settings.app.themButtonTextColor != ""){
                    element.css("color", gkt.settings.app.themButtonTextColor);
                }
                if(gkt.settings.app.themeButtonBackgroundColor != ""){
                    element.css("background-color", gkt.settings.app.themeButtonBackgroundColor);
                }
                if(gkt.settings.app.themeButtonBorderColor != ""){
                    element.css("border","1px solid")
                    element.css("border-color", gkt.settings.app.themeButtonBorderColor);
                }
                // box shadow
                if(gkt.settings.app.themeButtonBoxShadow != ""){
                    element.css("box-shadow", gkt.settings.app.themeButtonBoxShadow);
                }
                //themeButtonFontFamily
                if(gkt.settings.app.themeButtonFontFamily != ""){
                    element.css("font-family", gkt.settings.app.themeButtonFontFamily);
                }
                
              
            },
            resetButtonCSS: function (element){
                //reset the button css
                element.css("color","");
                element.css("background-color","");
                element.css("border","");
                element.css("border-color","");
                element.css("box-shadow","");
            },
            applyHeaderCSS: function (element){
                //apply gkt.settings.app.themeFontFamily themeFontColor to the header
                if(gkt.settings.app.themeHeaderFontFamily != ""){
                    element.css("font-family", gkt.settings.app.themeHeaderFontFamily);
                }
                if(gkt.settings.app.themeHeaderFontColor != ""){
                    element.css("color", gkt.settings.app.themeHeaderFontColor);
                }
            },
            applyLabelCSS: function (element){
                //apply gkt.settings.app.themeLabelFontColor to the label
                if(gkt.settings.app.themeLabelFontColor != ""){
                    element.css("color", gkt.settings.app.themeLabelFontColor);
                }
                element.css("font-family","inherit");
                if(gkt.settings.app.themeLabelFontFamily != ""){
                element.css("font-family", gkt.settings.app.themeLabelFontFamily);
                }
            },
            getSelectedVariant: function () {
                if ("product" === gkt.state.page_type) {

                    let activeCodes = gkt.settings.app.activeVariantCodes;  
                      
                    if(activeCodes.indexOf("1") >= 0){
                        const params = Object.fromEntries(new URLSearchParams(location.search))
                        if(params && params.variant){
                            return params.variant
                        }
                    }
                   
                    if(activeCodes.indexOf("2") >= 0){
                            if (ShopifyAnalytics && ShopifyAnalytics.meta && ShopifyAnalytics.meta.selectedVariantId) {
                            for(let i = 0; i < ShopifyAnalytics.meta.product.variants.length; i++){
                                if(ShopifyAnalytics.meta.product.variants[i].id == ShopifyAnalytics.meta.selectedVariantId){
                                    return ShopifyAnalytics.meta.selectedVariantId
                                }
                            }
                        }
                    }
                    if(activeCodes.indexOf("3") >= 0){
                        if (document.querySelector('[name="id"]') && document.querySelector('[name="id"]').value) {
                            return document.querySelector('[name="id"]').value
                        }
                    }
                    
                    if(activeCodes.indexOf("4") >= 0){
                        if (shopifyLiquidValues.selected_or_first_available_variant) {
                            return shopifyLiquidValues.selected_or_first_available_variant.id
                        }
                    }

                    return undefined
                }
            },

            getProductQuantity: function () {
                if (document.querySelector('[name="quantity"]') && document.querySelector('[name="quantity"]').value) {
                    if(Number(document.querySelector('[name="quantity"]').value) && Number(document.querySelector('[name="quantity"]').value) <= 10){
                        return Number(document.querySelector('[name="quantity"]').value)
                    }else{
                        return 1
                    }       
                }else {
                    return 1
                }
            },

            getElements: function (settings) {
                return {
                    gktGiftMsgAndWrapWrapperParent: gkt.$(gkt.$.parseHTML('<div class="gktGiftMsgAndWrapHeader"><div class="gktGiftMsgAndWrapHeaderItem"><label for="gift-wrapping" class="gktGiftMsgAndWrapWrapperInnerEle"><input id="gift-wrapping" class="gktGiftOptionsCheckbox" type="checkbox" name="addGiftOptions"><span class="gktCustomWrapCheckboxCheckmark"></span><div class="gktGiftMsgAndWrapWrapperInnerEleHeading"></div></label> </div></div>')),
                    gktCartGiftMsgAndWrapWrapperParent: gkt.$(gkt.$.parseHTML('<div class="gktCartGiftMsgAndWrapHeader"><div class="gktCartGiftMsgAndWrapHeaderItem"><label for="gift-wrapping" class="gktGiftMsgAndWrapWrapperInnerEle"><input id="gift-wrapping" class="gktGiftOptionsCheckbox" type="checkbox" name="addGiftOptions"><span class="gktCustomWrapCheckboxCheckmark"></span><div class="gktGiftMsgAndWrapWrapperInnerEleHeading"></div></label></div></div>')),
                    addToCartBtn: gkt.$(document).find(gkt.selectors.addToCart),
                    addToCartButtonCloned: undefined,
                    checkoutBtn: gkt.$(document).find(gkt.selectors.checkoutBtn),
                    cartForm: gkt.$(document).find(gkt.selectors.cartForm),
                    productPageWrapperV2: gkt.$(gkt.$.parseHTML('<div class="gktPageWrapper gktProductPageWrapperV2"> <div class="gktComboWrapper"></div> <div class="gktProductPageUpsellWrapper"></div>  <div class="gktGiftMsgAndWrapWrapper"></div> <div class="gktGiftMessageWrapper"></div> <div class="gktGiftCardWrapper"></div>  </div>')),
                    cartPageWrapperV2: gkt.$(gkt.$.parseHTML('<div class="gktPageWrapper gktCartPageWrapperV2"> <div class="gktCartUpsellWrapper"></div> <div class="gktCartGiftMsgAndWrapWrapper"></div><div class="gktCartGiftMessageWrapper"></div> <div class="gktAccountWidgetWrapper"></div></div>')),
                    buyNowBtn: gkt.$(document).find(gkt.selectors.buyNowBtn)
                }
            },

            initialize: async function (jQuery) {
                //  gkt.$.ajaxSetup({global: true});
                let tmpCartSettings =  await gkt.f.getSettings();
                gkt.f.setSettings(tmpCartSettings)
                gkt.f.setSelectors();
                gkt.state.page_type = gkt.f.getPageType();
                gkt.elements = gkt.f.getElements(gkt.settings);
                if ("" === gkt.state.page_type) return false;
                gkt.utility.setLanguageLocale();
                return gkt.f.bootstrap(gkt.settings);
            },
            globalListener: function (settings) {
                let isIntervalActive = false
                //if app is disabled reurn
                if (settings.app.disableApp) {
                    return
                } else {
                    if ("product" === gkt.state.page_type) {
                        gkt.productPage.init(settings)
                    }

                    if (settings.app.disableSideCart) {
                        if ("cart" === gkt.state.page_type) {
                            gkt.cartPage.init(settings)
                        }
                    } else {
                        gkt.cartPage.init(settings)

                    }
                }

                setInterval(async () => {
                    if (!isIntervalActive) {
                        // console.log("globalListener-active")

                        isIntervalActive = true

                        // insert productpage wrapper if productPage is initialized
                        if ("product" === gkt.state.page_type &&
                            gkt.elements.addToCartBtn.length > 0 &&
                            gkt.$(document).find(gkt.selectors.productPageWrapperV2).length == 0) {
                            console.log("productPage-insertWrapperIntoPage1")
                            gkt.productPage.f.insertWrapperIntoPage(settings)
                        }

                        let checkoutBtnEle = gkt.$(document).find(gkt.selectors.checkoutBtn)

                        // insert cartPage wrapper if cartPage is initialized 
                        if (checkoutBtnEle.length > 0 &&
                            gkt.$(document).find(gkt.selectors.cartPageWrapperV2).length == 0) {
                            console.log("cartPage-insertWrapperIntoPage")
                            await gkt.cartPage.f.insertWrapperIntoPage(settings)
                        }

                        // check if comboproduct overwrite buyNowButton 
                        if (false && gkt.gktCombo.state.comboHandle != "") {
                            gkt.gktCombo.f.comboBuyNowButtonOverwrite()
                        }

                        // check if giftCard overwrite buyNowButton 
                        if (gkt.gktGiftCard.state.giftCardData) {
                            if(!gkt.elements.addToCartBtn.is(':visible')){
                                gkt.elements.addToCartBtn = gkt.$(document).find(gkt.selectors.addToCart)
                                gkt.gktGiftCard.f.giftCardAddToCartButtonOverwrite(gkt.gktGiftCard.state.giftCardData.isEmbededOnPage)
                            }
                            gkt.gktGiftCard.f.giftCardBuyNowButtonOverwrite()
                            if(!gkt.state.sendGiftcardOnPageBtnClicked){
                                gkt.gktGiftCard.f.changeGiftCardAddToCartButtonText(gkt.utility.renderLanguageValue(gkt.settings.languageData.giftcardV2.purchasePageFields.addToCartButtonText))
                            }
                           
                        }

                        // check if giftwrap, message or oneclick upsell overwrite buyNowButton
                        if(gkt.state.isOverWriteBuyNowBtnTriggered && gkt.$(document).find(".gkt-overwrite-buy-now-btn").length  == 0){
                            gkt.utility.overWriteBuyNowBtn()
                        }
                        
                        if( (gkt.state.page_type == "cart" || "product" === gkt.state.page_type) && 
                            gkt.settings.rewardCampaigns &&
                            gkt.settings.rewardCampaigns.status == "ACTIVE" &&
                            gkt.settings.rewardCampaigns.campaignData &&
                            gkt.settings.rewardCampaigns.campaignData.freeGiftcardProduct &&
                            gkt.settings.rewardCampaigns.campaignData.freeGiftcardProduct.length &&
                            gkt.settings.rewardCampaigns.campaignData.freeGiftcardProduct.length > 0
                             ){ 

                               await gkt.gktFreeGiftCardPopup.f.addFreeGiftcardProduct()
                            }
                             

                        isIntervalActive = false

                    }
                }, 1000)
            }
        },
        utility: {
            getActiveCurrencyRate : function(){
                let currencyRate = 1;
                if(window.Shopify && window.Shopify.currency && window.Shopify.currency.rate){
                    currencyRate = window.Shopify.currency.rate;
                }
                return currencyRate;
            },
            getCookie: function (cookieName) {
                let name = cookieName + "=";
                let decodedCookie = decodeURIComponent(document.cookie);
                let ca = decodedCookie.split(";");
                for (let i = 0; i < ca.length; i++) {
                    let c = ca[i];
                    while (c.charAt(0) == " ") {
                        c = c.substring(1);
                    }
                    if (c.indexOf(name) == 0) {
                        return c.substring(name.length, c.length);
                    }
                }
                return null;
            },
            getLocale: function () {
                if (window.Shopify && window.Shopify.locale) {
                    return window.Shopify.locale
                }else{
                    return "en"
                } 
            },
            setLanguageLocale: function () {
                let locale = gkt.utility.getLocale()
                
                if(gkt.settings.languageData && gkt.settings.languageData.languageMode == "SINGLE"){
                    locale = "en"
                }

                if(!gkt.settings.languageData[locale]){
                    locale = "en"
                }
                gkt.settings.languageData = gkt.settings.languageData[locale]
            },
            setCookie: function (cookieName, cookieValue, expiryDays = 7) {
                const d = new Date();
                d.setTime(d.getTime() + expiryDays * 24 * 60 * 60 * 1000);
                let expires = "expires=" + d.toUTCString();
                document.cookie = cookieName + "=" + cookieValue + ";" + expires + ";path=/";
            },
            addToCart: async function (data) {

                try {
                    // if there is nothing to add in cart..just return true
                    if (!data.id) {
                        return true
                    }
                    let result = await gkt.$.ajax({
                        url: "/cart/add.js",
                        data: data,
                        type: "POST",
                        dataType: "json",
                    })
                    return true
                } catch (error) {
                    console.error("gkt-utility-addToCart");
                    console.error(error);
                    return false
                }
            },
            updateCart: async function (data) {
                try {
                    let result = await gkt.$.ajax({
                        type: "POST",
                        url: "/cart/update.js",
                        data: data,
                        dataType: "json",
                    });
                    return result
                } catch (error) {
                    console.error("gkt-utility-updateCart");
                    console.error(error);
                    return false
                }
            },
            changeCart: async function (data) {
                try {
                    let result = await gkt.$.ajax({
                        type: "POST",
                        url: "/cart/change.js",
                        data: data,
                        dataType: "json",
                    });
                    return true
                } catch (error) {
                    console.error("gkt-utility-changeCart");
                    console.error(error);
                    return false
                }
            },

            getProductData: async function (productName) {
                try {
                    let result = await gkt.$.ajax({
                        type: "GET",
                        url: "/products/" + productName,
                        // data: data,
                        dataType: "json",
                    });
                    return result;
                } catch (error) {
                    console.error("gkt-utility-updateCart");
                    console.error(error);
                    return false
                }
            },
            getProductDataV2: function (productName) {
                try {
                    return new Promise((res, rej) => {
                        gkt.$.getJSON("/products/" + productName + ".js", function (product) {
                            console.log("success-productName: ", productName)
                            res(product)
                        }).fail(function () { console.log("fail-productName: ", productName); res(false) })
                    })
                    return result;
                } catch (error) {
                    console.error("gkt-utility-getProductDataV2");
                    console.error(error);
                    return false
                }
            },
            addToCartV2: function (data) {
                try {
                    return new Promise((res, rej) => {
                        gkt.$.post('/cart/add.js', data)
                            .done(function () { console.log("success-/cart/add.js': "); res(true) })
                            .fail(function (e) { 
                                console.log("fail-/cart/add.js", e); 
                                res(false)
                             })
                    })
                    return result;
                } catch (error) {
                    console.error("gkt-utility-addToCartV2");
                    console.error(error);
                    return false
                }
            },
            clearCart: function (data) {
                try {
                    return new Promise((res, rej) => {
                        gkt.$.post('/cart/clear.js', data)
                            .done(function () { console.log("success-/cart/clear.js': "); res(true) })
                            .fail(function () { console.log("fail-/cart/clear.js"); res(false) })
                    })
                    return result;
                } catch (error) {
                    console.error("gkt-utility-clearCart");
                    console.error(error);
                    return false
                }
            },
            getCart: async function (data) {
                try {
                    let result = await gkt.$.ajax({
                        type: "GET",
                        url: "/cart.js",
                        dataType: "json",
                    });
                    return result
                } catch (error) {
                    console.error("gkt-utility-getCart");
                    console.error(error);
                    return false
                }
            },
            getCartTotalQuantity: async function () {
                try {
                    let total = 0
                    let cartData = await gkt.$.ajax({
                        type: "GET",
                        url: "/cart.js",
                        dataType: "json",
                    });
                    for (var item of cartData['items']) {
                        total += item["quantity"]
                    }
                    return total
                } catch (error) {
                    console.error("gkt-utility-getCart");
                    console.error(error);
                    return false
                }
            },
            checkIfItemPresentInCart: function (searchedVariantId) {
                if (gkt.state.cartData && gkt.state.cartData.items && gkt.state.cartData.items.length && gkt.state.cartData.items.length > 0) {
                    for (let i = 0; i < gkt.state.cartData.items.length; i++) {
                        let item = gkt.state.cartData.items[i]
                        if (item && item.variant_id && item.variant_id == searchedVariantId) {
                            return item
                        }
                    }
                    return false
                } else {
                    return false
                }
            },
            getNoteFromCart: function () {
                if (gkt.state.cartData && gkt.state.cartData.note && gkt.state.cartData.note != "") {

                    return gkt.state.cartData.note
                } else {
                    return false
                }
            },
            isCartTotalMoreThan: async function(value){
                gkt.state.cartData = await gkt.utility.getCart()

                if(gkt.state.cartData && gkt.state.cartData.total_price && ((gkt.state.cartData.total_price)/100 >= parseFloat(value))){
                    return true
                }else{
                    return false
                }
            },
            cloneAddToCartBtn: function () {
            
            },
            overWriteBuyNowBtn: function (){
                
                let buyNowBtnEle = gkt.$(document).find(gkt.selectors.buyNowBtn)   

                if(buyNowBtnEle && buyNowBtnEle.length > 0 && gkt.$(document).find(".gkt-overwrite-buy-now-btn").length  == 0){
                    // buyNowBtnEle.show()
                    buyNowBtnEle.unbind().unbind("click").off().off("click");
                    newBuyNowBtnEle = buyNowBtnEle.clone()
                    buyNowBtnEle.before(newBuyNowBtnEle)
                    // buyNowBtnEle.hide()
                    newBuyNowBtnEle.addClass("gkt-overwrite-buy-now-btn")

                    buyNowBtnEle.css("visibility", "hidden")
                    buyNowBtnEle.css("height", "0")
                    buyNowBtnEle.css("width", "0")
                    buyNowBtnEle.css("padding", "0")
                    buyNowBtnEle.css("margin", "0")
                    buyNowBtnEle.css("line-height", "0");
                    buyNowBtnEle.css("min-height", "0");
                   // clone add to cart behavior 
                    // newBuyNowBtnEle.on("click", async function (event) {    
                    //      gkt.$(this).attr("disabled", true);
                    //     setTimeout(() => { gkt.$(this).attr("disabled", false); }, 1000)
                    //     event.preventDefault();
                    //     event.stopPropagation();
                    //     let selectedVariantId = gkt.f.getSelectedVariant()
                    //     let resAddToCart = await gkt.utility.addToCartV2({   "items": [
                    //                                         {
                    //                                             "id": selectedVariantId,
                    //                                             "quantity": 1
                    //                                         }
                    //                                         ]})
                    
                    //     window.location.href = window.location.origin + "/cart/checkout"
                    //     return
                    // })


                    newBuyNowBtnEle.on("click", function (event) {
                        event.preventDefault();
                        event.stopPropagation();
                        gkt.$(this).attr("disabled", true);
                        newBuyNowBtnEle.text("loading checkout...");
                        setTimeout(() => { gkt.$(this).attr("disabled", false)}, 3000)
                        addToCartBtnEle =  gkt.$(document).find(gkt.selectors.addToCart)
                        sideCartEle = gkt.$(document).find(gkt.selectors.sideCartSelectors) 

                        // gkt.$(document).find("body").addClass("loadingCheckoutPage")
                        // gkt.$(document).find("body").text("loading checkout...")

                        if(sideCartEle && sideCartEle.length > 0){
                            sideCartEle.css("display", "none")
                        }
                        
                        if(addToCartBtnEle && addToCartBtnEle.length > 0){
                            addToCartBtnEle.trigger("click")
                        }
                        setTimeout(()=>{
                            window.location.href = gkt.settings.app.redirectUrlForSendGiftcardBtn
                        },1000)
                        
                    })
                    
                }
            },
            emailValidation: function (emailString) {
                    var atSymbol = emailString.indexOf("@");
                    if (atSymbol < 1) return false;

                    var dot = emailString.lastIndexOf(".");                    
                    if (dot <= atSymbol + 2) return false;

                    // check that the dot is not at the end
                    if (dot === emailString.length - 1) return false;

                    return true;
            },
            renderLanguageValue: function (parent) {
                if (parent){
                    return parent.value;
                }
                return;
            },

            slider: {
                state: {
                    slideIndex: 0,
                },
                plusSlides: function (selector, n) {
                    this.showSlides(selector, this.state.slideIndex += n);
                },
                //minusSlides
                minusSlides: function (selector, n) {
                    this.showSlides(selector, this.state.slideIndex -= n);
                },
                showSlides: function (selector, n) {
                    var i;
                    var slides = selector.find(".gktComboItemContainerItem1Img");
                    if (slides && slides.length) {
                        //     slides = JSON.parse(slides);
                        // }


                        if (n > slides.length) { this.state.slideIndex = 1 }
                        if (n < 1) { this.state.slideIndex = slides.length }
                        for (i = 0; i < slides.length; i++) {
                            slides[i].style.display = "none";
                        }
                        slides[this.state.slideIndex - 1].style.display = "block";
                        //   plusSlides(1)
                    }
                    // setTimeout(function () { plusSlides(n + 1) }, 2000);
                },
            },

            isMobileView: function () {
                if (window.innerWidth < 768) {
                    return true;
                } else {
                    return false;
                }
            },
            displayLoadingSpinner: function () {
                let loadingContainer =  gkt.$("<div>").addClass("gktLoading");
                let loadingSpinner =  gkt.$("<div>").addClass("gktLoadingSpinner");
                loadingContainer.append(loadingSpinner);
                return loadingContainer;
            },
            dynamicStylesForBranding: function () {
                let brandingColor = {
                    mainTextColor: gkt.settings.accountWidget.customization.mainTextColor,
                    subTextColor : gkt.settings.accountWidget.customization.subTextColor,
                }
                let style =
                    `<style>
                     .gktAccountWidgetBodyTabActive{
                        color: ${brandingColor.mainTextColor} !important;
                        border-bottom: 2px solid ${brandingColor.mainTextColor} !important;
                     }                    
                     .gktLoadingSpinner-not-used {
                        border-top: 16px solid ${gkt.settings.accountWidget.customization.buttonColor};
                        border-bottom: 16px solid ${gkt.settings.accountWidget.customization.buttonColor};
                    }
                        
                    </style>`
                gkt.$('html > head').append(style);
                return style;
            },
            getLocalDateIn_YYYY_MM_DD: function (date=new Date()) {
                const year = date.getFullYear();
                const month = ('0' + (date.getMonth() + 1)).slice(-2);
                const day = ('0' + date.getDate()).slice(-2)

                const dateInLocalTimeZone = `${year}-${month}-${day}`;
                return dateInLocalTimeZone;
            },
        },
        storage: {

            loadValuesFromStorage: function (settings) {
                var gktGiftMessageCheckbox = sessionStorage.getItem("gktGiftMessageCheckbox");
                var gktMessageTextarea = sessionStorage.getItem("gktMessageTextarea");
                var gktGiftWrapCheckbox = sessionStorage.getItem("gktGiftWrapCheckbox");
                var gktGiftOptionsCheckbox = sessionStorage.getItem("gktGiftOptionsCheckbox");
                gkt.$('.gktMessageTextarea').val(gktMessageTextarea);

                if (gktGiftMessageCheckbox === null) {
                    gkt.$('.gktGiftMessageCheckbox').prop('checked', true);
                } else {
                    gkt.$('.gktGiftMessageCheckbox').prop('checked', gktGiftMessageCheckbox === "true");
                }

                if (gktGiftWrapCheckbox === null) {
                    gkt.$('.gktGiftWrapCheckbox').prop('checked', true);
                } else {
                    gkt.$('.gktGiftWrapCheckbox').prop('checked', gktGiftWrapCheckbox === "true");
                }

                if (gktGiftOptionsCheckbox === null) {

                    gkt.elements.cartPageWrapperV2.find(".gktGiftOptionsCheckbox").prop('checked', false)
                    gkt.elements.productPageWrapperV2.find(".gktGiftOptionsCheckbox").prop('checked', false)
                    gkt.$(document).find(".gktGiftOptionsCheckbox").prop('checked', false)
                } else {
                    gkt.elements.cartPageWrapperV2.find(".gktGiftOptionsCheckbox").prop('checked', gktGiftOptionsCheckbox === "true")
                    gkt.elements.productPageWrapperV2.find(".gktGiftOptionsCheckbox").prop('checked', gktGiftOptionsCheckbox === "true")
                    gkt.$(document).find(".gktGiftOptionsCheckbox").prop('checked', gktGiftOptionsCheckbox === "true")

                }

            },
            setItem: function (field, value) {
                sessionStorage.setItem(field, value)
            },
            getItem: function (field) {
                return sessionStorage.getItem(field)
            }
        },
        drawerCart: {
            init: function (settings) {
                gkt.cartPage.init(settings)
            }
        },
        themeSpecificCode: {
            init: function (settings) {
                gkt.themeSpecificCode.f.ventureTheme(settings)
                gkt.themeSpecificCode.f.expressTheme(settings)
                gkt.themeSpecificCode.f.craveTheme(settings)
                gkt.themeSpecificCode.f.craftTheme(settings)
                gkt.themeSpecificCode.f.senseTheme(settings)


            },

            f: {
                ventureTheme: function () {
                    if (window.Shopify && window.Shopify.theme && window.Shopify.theme.theme_store_id && window.Shopify.theme.theme_store_id == gkt.constants.themesIds.VENTURE_THEME) {
                        // reload on save
                        gkt.selectors.sideCartDrawerOverlay = ""
                    }
                },
                expressTheme: function () {
                    if (window.Shopify && window.Shopify.theme && window.Shopify.theme.theme_store_id && window.Shopify.theme.theme_store_id == gkt.constants.themesIds.EXPRESS_THEME) {
                        // addd a css property of jusyify-items:cetner to cartpagewrapper
                        gkt.elements.cartPageWrapperV2.css("justify-items", "center")
                        if (window.location.pathname.includes("/cart")) {
                            gkt.selectors.checkoutBtn = ".cart__actions"
                        }
                    }
                },
                craveTheme: function () {
                    if (window.Shopify && window.Shopify.theme && window.Shopify.theme.theme_store_id && window.Shopify.theme.theme_store_id == gkt.constants.themesIds.CRAVE_THEME) {
                        // change css of cart__ctas in the document to block
                        gkt.$(document).find(".cart__ctas").css("display", "block")

                    }
                },
                craftTheme: function () {
                    if (window.Shopify && window.Shopify.theme && window.Shopify.theme.theme_store_id && window.Shopify.theme.theme_store_id == gkt.constants.themesIds.CRAFT_THEME) {
                        // change css of cart__ctas in the document to block
                        gkt.$(document).find(".cart__ctas").css("display", "block")

                    }
                },
                senseTheme: function () {
                    if (window.Shopify && window.Shopify.theme && window.Shopify.theme.theme_store_id && window.Shopify.theme.theme_store_id == gkt.constants.themesIds.SENSE_THEME) {
                        // change css of cart__ctas in the document to block
                        gkt.$(document).find(".cart__ctas").css("display", "block")

                    }
                },

            }
        },
        productPage: {
            init: async function (settings) {
                console.log("productPage-init")

                gkt.state.cartData = await gkt.utility.getCart()
                // gkt.state.insertWrapperOnPage.push("PRODUCT_PAGE")

                gkt.gktMessage.init(settings, "PRODUCT_PAGE")

                // gkt.gktCombo.init(settings)

                // gkt.gktGiftMsgAndWrap.init(settings, "PRODUCT_PAGE")

                gkt.gktOneClickUpsell.init(settings, "PRODUCT_PAGE")

                gkt.gktGiftCard.init(settings, "PRODUCT_PAGE")

                gkt.gktAccountWidget.init(settings,"CART_PAGE")

                gkt.gktNotification.init(settings, "CART_PAGE")
            },
            f: {
                insertWrapperIntoPage: function (settings) {

                    if ("undefined" != typeof gkt.elements.addToCartBtn) {
                        let addToCartBtnEle = gkt.$(document).find(gkt.elements.addToCartBtn)
                        addToCartBtnEle.each(function (index) {
                            if (gkt.$(this).is(":visible")) {
                                if(gkt.settings.app.addAfterAddTocartBtn){
                                    gkt.$(this).after(gkt.elements.productPageWrapperV2);
                                }else{
                                    gkt.$(this).before(gkt.elements.productPageWrapperV2);
                                }
                                
                            }

                        });
                    }
                },
            },
             
            actions: {
                insertUpsellModal: function () {
                    //   Gs.$("body").append(Gs.settings._modalHtml);
                    alert("popModal for upsell action")
                },
            },
        },
        cartPage: {
            init: async function (settings) {

                gkt.state.cartData = await gkt.utility.getCart()

                gkt.gktMessage.init(settings, "CART_PAGE")

                // gkt.gktGiftMsgAndWrap.init(settings, "CART_PAGE")

                gkt.gktOneClickUpsell.init(settings, "CART_PAGE")

                gkt.gktFreeGiftCardPopup.init(settings, "CART_PAGE")

                gkt.gktAccountWidget.init(settings,"CART_PAGE")

                gkt.gktNotification.init(settings, "CART_PAGE")

            },
            f: {
                insertWrapperIntoPage: function (settings) {
                    return new Promise((res, rej) => {
                        if ("undefined" != typeof gkt.elements.checkoutBtn) {
                            let checkoutBtnEle = gkt.$(document).find(gkt.selectors.checkoutBtn)
                            checkoutBtnEle.each(function (index) {
                                // console.log("index", index)
                                if (gkt.$(this).is(":visible")) {
                                    // check if theme ids matches otherwise add element to default position
                                    if (window.Shopify && window.Shopify.theme && window.Shopify.theme.theme_store_id && window.Shopify.theme.theme_store_id == gkt.constants.themesIds.DAWN_THEME) {
                                        gkt.$(this).parent().before(gkt.elements.cartPageWrapperV2);
                                    } else if(gkt.settings.app.addAftercheckoutBtn) {
                                        gkt.$(this).after(gkt.elements.cartPageWrapperV2);
                                    }else{
                                        gkt.$(this).before(gkt.elements.cartPageWrapperV2);
                                    }
                                }
                            });

                        }
                        res()
                    })
                },
            },
            events: {
                ajaxSuccess: function (cartSettings) {
                    console.log("register ajax success event")
                    gkt.$(document).ajaxSuccess(function (event, xhr, settings) {
                        console.log("ajaxSuccess", settings.url)
                        if (settings.url == "/change.js?line=1&quantity=0" || settings.url == "change.js?line=1&quantity=0" || settings.url == "change.js" || settings.url == "/change.js" || settings.url == "/cart.js" || settings.url == "cart.js" || settings.url == "cart" || settings.url == "/cart") {
                            setTimeout(function () {
                                console.log("ajaxSuccess")

                            }, 2000);
                        }
                    });
                }
            }
        },
        gktOneClickUpsell: {
            init: async function (settings, parent) {
                await gkt.gktOneClickUpsell.initialize(settings, parent)
                gkt.gktOneClickUpsell.f.registerEvents()
            },
            initialize: async function (settings, parent) {
                let productHandle = gkt.f.getProductPageHandle(settings)

                // write function which return two list 
                // oneClickUpsell products that need to be shown on this product page 
                // get the list of oneClickUpsellProducts that need to be shown on cart page 
                let { oneClickUpsellListForCartPage, oneClickUpsellListForProductPage } = gkt.gktOneClickUpsell.f.segregateOneClickUpsells(settings.oneClickUpsells, productHandle)

                if (parent == "PRODUCT_PAGE" && oneClickUpsellListForProductPage && oneClickUpsellListForProductPage.length && oneClickUpsellListForProductPage.length > 0) {
                    let variantListToBeShownOnProductPage = await gkt.gktOneClickUpsell.f.findVariantListToBeShown(oneClickUpsellListForProductPage)
                    let oneClickUpsellProductPageHTML = gkt.gktOneClickUpsell.f.prepareUI(settings, variantListToBeShownOnProductPage, parent)
                    gkt.gktOneClickUpsell.f.insertIntoProductPageWrapper(settings, oneClickUpsellProductPageHTML)
                    console.log("variantListToBeShownOnProductPage", variantListToBeShownOnProductPage)
                    gkt.utility.overWriteBuyNowBtn()
                    gkt.state.isOverWriteBuyNowBtnTriggered = true
                    console.log("PRODUCT_PAGE")
                }

                if (parent == "CART_PAGE" && oneClickUpsellListForCartPage && oneClickUpsellListForCartPage.length && oneClickUpsellListForCartPage.length > 0) {
                    let variantListToBeShownOnCartPage = await gkt.gktOneClickUpsell.f.findVariantListToBeShown(oneClickUpsellListForCartPage)
                    let oneClickUpsellCartPageHTML = gkt.gktOneClickUpsell.f.prepareUI(settings, variantListToBeShownOnCartPage, parent)
                    gkt.gktOneClickUpsell.f.insertIntoCartPageWrapper(settings, oneClickUpsellCartPageHTML)
                    console.log("variantListToBeShownOnCartPage", variantListToBeShownOnCartPage)
                    console.log("CART_PAGE")
                }

            },
            f: {

                segregateOneClickUpsells: function (oneClickUpsells, currProductHandle) {
                    let oneClickUpsellListForCartPage = []
                    let oneClickUpsellListForProductPage = []

                    for (let i = 0; i < oneClickUpsells.length; i++) {
                        let oneClickUpsell = oneClickUpsells[i]

                        // add products to cart page list
                        if (oneClickUpsell.isVisibleOnCart) {
                            oneClickUpsellListForCartPage.push(oneClickUpsell)
                        }

                        // add products to product page list 
                        if (oneClickUpsell.isVisibleOnAllProductPages) {

                            oneClickUpsellListForProductPage.push(oneClickUpsell)

                        } else if (oneClickUpsell.isVisibleOnSpecificProductPages &&
                            oneClickUpsell.visibleOnSpecificProductPages &&
                            oneClickUpsell.visibleOnSpecificProductPages.find(x => x.handle === currProductHandle)) {

                            oneClickUpsellListForProductPage.push(oneClickUpsell)
                        }

                    }

                    return {
                        oneClickUpsellListForCartPage: oneClickUpsellListForCartPage,
                        oneClickUpsellListForProductPage: oneClickUpsellListForProductPage
                    }
                },
                findVariantListToBeShown: async function (oneClickUpsellList) {
                    let responseData = []

                    let variantListSelectedByUser = []
                    let apiCalls = []

                    for (let i = 0; i < oneClickUpsellList.length; i++) {
                        let oneClickUpsell = oneClickUpsellList[i]

                        for (let j = 0; j < oneClickUpsell.upsellProducts.length; j++) {
                            let oneClickUpsellProduct = oneClickUpsell.upsellProducts[j]
                            apiCalls.push(gkt.utility.getProductDataV2(oneClickUpsellProduct.handle))

                            for (let k = 0; k < oneClickUpsellProduct.variants.length; k++) {
                                variantListSelectedByUser.push(parseInt(oneClickUpsellProduct.variants[k].variantId))
                            }
                        }

                    }

                    let oneClickUpsellProducts = await Promise.all(apiCalls)
                    // get required variants and return 
                    for (let i = 0; i < oneClickUpsellProducts.length; i++) {
                        let oneClickUpsellProduct = oneClickUpsellProducts[i]

                        if (!oneClickUpsellProduct) {
                            continue
                        }

                        for (let j = 0; j < oneClickUpsellProduct.variants.length; j++) {
                            let variant = oneClickUpsellProduct.variants[j]
                            //if variant.featured_image is null then take the onceClickUpsellProduct.featured_image
                            if (variant.featured_image) {
                                variant.featured_image = variant.featured_image.src
                            } else {
                                variant.featured_image = oneClickUpsellProduct.featured_image
                            }
                            //console.log("ashfaq");
                            // if variant is not available dont add it
                            if (!variant.available) {
                                continue
                            }

                            // if variant is not selected in admin ui, dont add it
                            if (variantListSelectedByUser.indexOf(variant.id) == -1) {
                                continue
                            }

                            responseData.push(variant)

                        }
                    }

                    return responseData

                },
                insertIntoProductPageWrapper: function (settings, oneClickUpsellHTML) {

                    gkt.elements.productPageWrapperV2.find(".gktProductPageUpsellWrapper").css("display", "block")

                    // // insert into parent element 
                    // gkt.elements.gktGiftMsgAndWrapWrapperParent.find(".gktGiftMsgAndWrapWrapperInnerEle").append(settings.giftingOptions.shopifyPageinnerHTML);    //cartPageText                 

                    // insert final  element into productPageWrapperV2
                    gkt.elements.productPageWrapperV2.find(".gktProductPageUpsellWrapper").append(oneClickUpsellHTML);

                },
                insertIntoCartPageWrapper: function (settings, oneClickUpsellHTML) {

                    gkt.elements.cartPageWrapperV2.find(".gktCartUpsellWrapper").css("display", "block")

                    // insert into parent element 
                    // gkt.elements.gktCartGiftMsgAndWrapWrapperParent.find(".gktGiftMsgAndWrapWrapperInnerEle").append(settings.giftingOptions.shopifyPageinnerHTML);    //cartPageText                 

                    // insert final  element into productPageWrapperV2
                    // gkt.elements.cartPageWrapperV2.find(".gktCartUpsellWrapper").append(gkt.elements.gktCartGiftMsgAndWrapWrapperParent);
                    gkt.elements.cartPageWrapperV2.find(".gktCartUpsellWrapper").append(oneClickUpsellHTML);

                },
                prepareUI: function (settings, variantListToBeShown, parent) {
                    let gktOneClickUpsellContainer = gkt.$("<div>").addClass('gktOneClickUpsellContainer')


                    for (let i = 0; i < variantListToBeShown.length; i++) {
                        let variant = variantListToBeShown[i]
                        let gktOneClickUpsellItemContainer = gkt.$("<div>").addClass('gktOneClickUpsellItemContainer')
                        let gktOneClickUpsellItemContainerCheckboxLable = gkt.$("<label>").addClass('gktCustomCheckboxContainer')
                        let inputCheckboxEle = gkt.$("<input>").addClass('gktOneClickUpsellInputCheckboxEle')
                            .attr("type", "checkbox")
                            .attr("data-variant", JSON.stringify(variant))
                            .attr("data-parent", JSON.stringify(parent))

                        if (gkt.utility.checkIfItemPresentInCart(variant.id)) {
                            inputCheckboxEle.attr("checked", true)
                        }
                        let gktOneClickUpsellImage = gkt.$("<img>").addClass('gktOneClickUpsellImage')
                            .attr("src", variant.featured_image)
                        gktOneClickUpsellImage.css("width", "40px")
                        gktOneClickUpsellImage.css("height", "40px")
                        gktOneClickUpsellImage.css("justify-self", "right")

                        gktOneClickUpsellItemContainerCheckboxLable.append(inputCheckboxEle)
                        gktOneClickUpsellItemContainerCheckboxLable.append(gkt.$("<span>").addClass("gktCustomCheckboxCheckmark"))


                        let appendString = "" + variant.name
                        let price = variant.price > 0 ? parseFloat(variant.price / 100) : variant.price
                        if (settings.merchantInfo && settings.merchantInfo.currencyInfo && settings.merchantInfo.currencyInfo.symbol) {
                            appendString = appendString + " + " + settings.merchantInfo.currencyInfo.symbol + price
                        }
                        //create a div with appendString 
                        let gktOneClickUpsellItemContainerLableText = gkt.$("<div>").addClass('gktOneClickUpsellItemContainerLabelText')
                            .text(appendString)
                        gktOneClickUpsellItemContainerCheckboxLable.append(gktOneClickUpsellItemContainerLableText)
                        gktOneClickUpsellItemContainer.append(gktOneClickUpsellItemContainerCheckboxLable)
                        gktOneClickUpsellItemContainerCheckboxLable.append(gktOneClickUpsellImage)
                        gktOneClickUpsellContainer.append(gktOneClickUpsellItemContainer)
                    }

                    return gktOneClickUpsellContainer
                },
                registerEvents: function () {
                    gkt.$(document).on("click", ".gktOneClickUpsellInputCheckboxEle", async function (event) {
                        await gkt.gktOneClickUpsell.actions.handleOneClickUpsellOnChangEvent(event);
                        //gktPage type is cartPage then reload page
                        if (gkt.state.page_type == "cart") {
                            window.location.reload()
                            //turn off click events till the page loads
                            gkt.$("body").css("pointer-events", "none")
                        }
                    })
                }
            },
            actions: {
                handleOneClickUpsellOnChangEvent: async function (cb) {
                    if (cb && cb.target) {
                        let variant = JSON.parse(cb.target.getAttribute("data-variant"))
                        let parent = cb.target.getAttribute("data-parent")

                        // if true 
                        if (cb.target.checked) {
                            await gkt.utility.updateCart({ updates: { [variant.id]: 1 }, attributes:{[variant.id]:"gktOneClickUpsellBuy"}})
                        }
                        else {
                            await gkt.utility.updateCart({ updates: { [variant.id]: 0 }, attributes:{[variant.id]:""} })
                        }

                    }

                }
            }

        },
        gktGiftCard: {
            init: async function (settings, parent) {
                await gkt.gktGiftCard.initialize(settings, parent)
                gkt.gktGiftCard.f.registerEvents()
            },
            state: {
                isGiftCardAddToCartButtonOverwrite: false,
                isGiftCardBuyNowButtonOverwrite: false,
                giftCardAddToCartButtonClone: "",
                giftCardData: undefined,
                giftCardDiv: undefined,
                greetingCardActiveImageSrc: undefined,
                greetingCardSelectedCategory: undefined,
                giftCardDeliveryOption: "sendNow",
                greetingCardImageListDiv: undefined,
                modalNavList : [],
            },
            initialize: async function (settings, parent) {
                let productHandle = gkt.f.getProductPageHandle()
                let giftCardProduct = gkt.gktGiftCard.f.checkIfGiftCardProduct(productHandle, settings.giftCards)

                if (giftCardProduct) {

                    
                    gkt.gktGiftCard.state.giftCardData = giftCardProduct
                    gkt.gktGiftCard.state.giftCardData.isEmbededOnPage  = gkt.gktGiftCard.state?.giftCardData?.isEmbededOnPage ? true : false;
                    gkt.gktGiftCard.f.giftCardAddToCartButtonOverwrite(gkt.gktGiftCard.state.giftCardData.isEmbededOnPage)
                    gkt.gktGiftCard.f.giftCardBuyNowButtonOverwrite()

                    gkt.gktGiftCard.f.changeGiftCardAddToCartButtonText(gkt.utility.renderLanguageValue(gkt.settings.languageData.giftcardV2.purchasePageFields.addToCartButtonText))
                    gkt.gktGiftCard.f.initializeModal()
                    
                    if(gkt.gktGiftCard.state.giftCardData.isEmbededOnPage){
                        let productpageUi = gkt.gktGiftCard.f.getProductPageGiftCardUi() 
                        gkt.gktGiftCard.f.insertIntoProductPageWrapper(productpageUi)
                    }
                    
                    gkt.gktGiftCard.f.setCustomStylingForGiftcard()

                    // initialize video messages 
                    gkt.gktVideoMsg.init(settings, parent)
                }
                console.log("gktGiftCard initialize")
                console.log("settings.giftCard")
            },
            f: {
                insertIntoProductPageWrapper: function  (productpageUi) {
                    gkt.elements.productPageWrapperV2.find(".gktGiftCardWrapper").css("display", "block")
                    gkt.elements.productPageWrapperV2.find(".gktGiftCardWrapper").append(productpageUi);
                    
                },
                getProductPageGiftCardUi: function () {
                    let { modalHeading, modalDescription, recipientName, recipientNamePlaceholder, recipientEmail, recipientEmailPlaceholder, senderName, senderNamePlaceholder, giftNote, giftNotePlaceholder, buyNowButtonText,backButtonText,deliveryDate,sendNowButtonText,sendLaterButtonText } = gkt.settings.languageData.giftcardV2.purchasePageFields;
                    let productPageGiftCardUi =   gkt.$("<div>").addClass("productPageGiftCardUi")
                    let gktGiftCardToInputField = gkt.$("<input>").attr("type", "text").attr("placeholder", gkt.utility.renderLanguageValue(recipientNamePlaceholder)).addClass("gktGiftCardToInputField");
                    let gktGiftCardEmailInputField = gkt.$("<input>").attr("type", "email").attr("placeholder",  gkt.utility.renderLanguageValue(recipientEmailPlaceholder)).addClass("gktGiftCardEmailInputField");
                    let gktGiftCardMessageInputField = gkt.$("<textarea>").addClass("gktGiftCardMessageInputField").attr("placeholder", gkt.utility.renderLanguageValue(gkt.settings.languageData.giftcardV2.purchasePageFields.giftNotePlaceholder))
                    let gktGiftCardEmailValidation = gkt.$("<p>", { class: "gktGiftCardEmailValidation" });

                    productPageGiftCardUi.append(gktGiftCardToInputField)
                    productPageGiftCardUi.append(gktGiftCardEmailInputField)
                    productPageGiftCardUi.append(gktGiftCardEmailValidation)
                    productPageGiftCardUi.append(gktGiftCardMessageInputField)
                    gkt.productPageGiftCardUi = productPageGiftCardUi;
                    return productPageGiftCardUi
                },
                setCustomStylingForGiftcard: function (){
                    let customStyleForGiftcard =  gkt.settings.app.customStyleForGiftcard
                    if(customStyleForGiftcard){
                        var styleSheet = document.createElement("style")
                        styleSheet.innerText = customStyleForGiftcard
                        document.body.appendChild(styleSheet)

                    }
                },
                checkIfGiftCardProduct: function (currProductHandle, giftCards) {
                    for (let i = 0; i < giftCards.length; i++) {
                        if (giftCards[i] && giftCards[i].shopifyData && giftCards[i].shopifyData.handle == currProductHandle) {
                            return giftCards[i]
                        }

                    }
                    return undefined
                },
                giftCardAddToCartButtonOverwrite: function (isEmbededOnPage) {

                    // set required states 
                    gkt.gktGiftCard.state.isGiftCardAddToCartButtonOverwrite = true
                    
                    gkt.elements.addToCartBtn.attr("type", "button")
                    gkt.elements.addToCartBtn.attr("disabled", false)
                    
                    gkt.elements.addToCartBtn.unbind().unbind("click").off().off("click");

                    if(isEmbededOnPage){
                        gkt.elements.addToCartBtn.on("click",  function (event) {
                            let formValid = gkt.gktGiftCard.f.performFormValidation();
                            if(!formValid){
                                return
                            }
                            gkt.$(this).attr("disabled", true);
                            setTimeout(() => { gkt.$(this).attr("disabled", false); }, 4000)
                            gkt.state.sendGiftcardOnPageBtnClicked = true
                            gkt.$(this).html(gkt.utility.renderLanguageValue(gkt.settings.languageData.giftcardV2.purchasePageFields.buyNowButtonTextLoading));
                            gkt.gktGiftCard.action.onMessageSubmit(event);
                            
                        })
                    }else{
                        gkt.elements.addToCartBtn.on("click", function (event) {
                            // gkt.$(this).attr("disabled", true);
                            // setTimeout(() => { gkt.$(this).attr("disabled", false); }, 1000)
                            gkt.gktGiftCard.action.giftCardAddToCartButton(event)
                        })

                    }

                },
                giftCardBuyNowButtonOverwrite: function () {
                    // set required states 
                    gkt.gktGiftCard.state.isGiftCardBuyNowButtonOverwrite = true

                    if (gkt.$(document).find(gkt.selectors.buyNowBtn)) {
                        // gkt.$(document).find(gkt.selectors.buyNowBtn).hide()
                        let buyNowBtnEle =  gkt.$(document).find(gkt.selectors.buyNowBtn)
                        buyNowBtnEle.css("visibility", "hidden")
                        buyNowBtnEle.css("height", "0")
                        buyNowBtnEle.css("width", "0")
                        buyNowBtnEle.css("padding", "0")
                        buyNowBtnEle.css("margin", "0")
                        buyNowBtnEle.css("line-height", "0");
                        buyNowBtnEle.css("min-height", "0");
                    }
                },
                changeGiftCardAddToCartButtonText: function (insideHtml) {
                    if (gkt.gktGiftCard.state.isGiftCardAddToCartButtonOverwrite) {
                        gkt.elements.addToCartBtn.html(insideHtml)
                    } else {
                        return false
                    }

                },
                openGiftCardModal: function () {
                    gkt.$('.gktGiftCardModalWrapper').css('display', 'block')
                    gkt.$('.gktGiftCardModal .gktPoweredByBanner').html(gkt.f.preparePoweredByBannerUI());
                },
                registerEvents: function () {
                    gkt.$(document).on("click", ".gktGiftCardModalClose", gkt.gktGiftCard.action.onModalClose)
                },
                initializeModal: function () {
                    const isGreetingCardEnabled = gkt.settings.greetingCards.isGreetingCardEnabled &&
                                                  gkt.settings.greetingCards.greetingCardImgs &&
                                                  gkt.settings.greetingCards.greetingCardImgs.length>0;


                    if(isGreetingCardEnabled ){
                        gkt.gktGiftCard.f.prepareGreetingCardUI()
                        gkt.gktGiftCard.f.populateModalNavList();
                        gkt.gktGiftCard.f.displayGreetingCardForm()
                    }
                    else{
                        gkt.$('.greetingCardImageList').remove()
                        gkt.gktGiftCard.f.populateModalNavList();
                        gkt.gktGiftCard.f.displayGiftCardDetailsForm()    
                    }
                    gkt.gktGiftCard.f.prepareGiftCardUI();
                    gkt.gktGiftCard.f.prepareGiftCardMessage();
                },
                renderGreetingCardImages:function(imageList){
                    if(imageList){
                    let greetingCardImageList = gkt.$("<div>").addClass("greetingCardImageList")
                    for (let i = 0; i < imageList.length; i++) {
                        let _img = imageList[i].src;
                        // add an input event listener to each image of radio type 
                        imageInput = gkt.$("<input>").attr("type", "radio").attr("name", "greetingCardImage").attr("value", imageList[i].src)
                        imageInput.addClass("greetingCardImageInput")
                        let imageLabel = gkt.$("<label>").addClass('greetingCardImageLabel')
                        let image = gkt.$("<img>").addClass('greetingCardImage')
                        
                        //on click set the current item to the preview image as active image
                        imageLabel.on("click", gkt.gktGiftCard.action.onGreetingCardImageClick)
                        
                        //if image is checked then attach activeGreetingCard css to it
                        if (gkt.gktGiftCard.state.greetingCardActiveImageSrc == imageList[i].src) {
                            imageInput.attr("checked", true)
                            imageLabel.addClass("activeGreetingCard")
                            gkt.gktGiftCard.action.addCheckMarkDivs(imageLabel);
                        }
                        image.attr("src", imageList[i].src)
                        imageLabel.append(imageInput)
                        imageLabel.append(image)
                        greetingCardImageList.append(imageLabel)
                      }
                    // if greetingCardImageList has no elements then return that there are no Images to display
                    if (greetingCardImageList.children().length == 0) {
                        return gkt.$("<div>").addClass('greetingCardImageList').html(gkt.utility.renderLanguageValue(gkt.settings.languageData.giftcardV2.purchasePageFields.noImagesAvailable))
                        }
                    return greetingCardImageList;
                    }

                 },    

                changeGreetingCardImageList: function(category){
                    let imageList = gkt.settings.greetingCards.greetingCardImgs
                    let imageListFiltered = gkt.gktGiftCard.f.filterGreetingCardImages(imageList,category)
                    let greetingCardImageList = gkt.gktGiftCard.f.renderGreetingCardImages(imageListFiltered)
                    // find the div with class greetingCardImageList and replace it with the new one
                    gkt.gktGiftCard.state.greetingCardImageListDiv = greetingCardImageList;

                    gkt.$(".greetingCardImageList").replaceWith(greetingCardImageList)
                    return greetingCardImageList;
                },
                filterGreetingCardImages: function(imageList,category){
                    let imageListFiltered = []
                    for (let i = 0; i < imageList.length; i++) {
                        if(imageList[i].categoryId == category.id){
                            imageListFiltered.push(imageList[i])
                        }
                    }
                    return imageListFiltered
                },
                prepareGreetingCardUI : async function (){
                    console.log("gktGiftCard.f.prepareGreetingCardUI")
                    const greetingCardFields = gkt.settings.languageData.giftcardV2.greetingCardFields
                    const continueButtonText = greetingCardFields.greetingCardContinueButtonText;
                    const greetingCardCategory = greetingCardFields.greetingCardCategory;
                    // This is where we have the greeting card categories, we need to render them in the modal as list items
                    const greetingCardCategories = [greetingCardFields.greetingCardCategory1,greetingCardFields.greetingCardCategory2,greetingCardFields.greetingCardCategory3]

                    let greetingCardContainer = gkt.$("<div>").addClass('gktGiftCardContainer')
                    let greetingCardMainBody = gkt.$("<div>").addClass('greetingCardMainBody')

                    
                    

                    // add a line of categories which the user can click on
                    let greetingCardCategoryList = gkt.$("<ul>").addClass('greetingCardCategoryList')
                    let greetingCardCategoryListItem = gkt.$("<li>").addClass('greetingCardCategoryListItem')
                    let greetingCardCategoryListItemText = gkt.$("<a>").addClass('greetingCardCategoryListItemText')
                    let imageInput = undefined;
                    let imageList =  gkt.settings.greetingCards.greetingCardImgs;

                    // add the image of the gift card as the first item in the list
                    //find the giftcard associated with this page handle

                    //find the giftcard associated with this page handle

                    
                    gkt.f.applyLabelCSS(greetingCardCategoryListItemText)
                    
                    let productHandle = gkt.f.getProductPageHandle(gkt.settings)
                    
                    //now get the giftcard associated with this page handle
                    // let  currGiftcardItem = gkt.settings.giftCards.find(giftcardItem => giftcardItem.shopifyData.handle == productHandle)
                    if(false){
                        let currGiftcardItem = await gkt.utility.getProductDataV2(productHandle);
                        let currGiftcardItemImage =  currGiftcardItem.images[0] || currGiftcardItem.featured_image
                        if(currGiftcardItemImage){
    
                            //add the image of the gift card as the first item in the list
                            //unshift is supprted by all browsers, checked on MDN
    
                            imageList.unshift({
                                category: "Occasion",
                                categoryId: "greetingCardCategory1",
                                id:0,                       
                                src:currGiftcardItemImage
                            })
                        }
    
                         // const getFirstImageFromGeneralCategory = imageList.find(x=>x.categoryId=="greetingCardCategory1");
                         let defaultGreetingCardSelection;
                         if(currGiftcardItemImage){
                            defaultGreetingCardSelection = imageList[0];
                         }
                        // const letsUseTheGiftCardImage = ;
                        if(currGiftcardItemImage){
                            gkt.gktGiftCard.state.greetingCardActiveImageSrc = defaultGreetingCardSelection.src
                        }
                    }
                    
                    gkt.gktGiftCard.state.greetingCardImageListDiv = gkt.gktGiftCard.f.renderGreetingCardImages(imageList)
                    
                    for (let i = 0; i < greetingCardCategories.length; i++) {
                        let greetingCardCategoryListItemClone = gkt.$(greetingCardCategoryListItem).clone()
                        let greetingCardCategoryListItemTextClone = gkt.$(greetingCardCategoryListItemText).clone()
                        greetingCardCategoryListItemTextClone.html(gkt.utility.renderLanguageValue(greetingCardCategories[i]))
                        
                        // Select the first category as default (General)
                        if(i == 0){
                            const _this =  greetingCardCategoryListItemClone[0];
                            gkt.gktGiftCard.state.greetingCardSelectedCategory = greetingCardCategories[0]
                            gkt.gktGiftCard.action.onGreetingCardCategoryClick.call(_this)
                        }
                        greetingCardCategoryListItemClone.on("click",function(){
                            gkt.gktGiftCard.state.greetingCardSelectedCategory=greetingCardCategories[i]
                            gkt.gktGiftCard.action.onGreetingCardCategoryClick.call(this)
                        })
                        greetingCardCategoryListItemClone.append(greetingCardCategoryListItemTextClone)
                        greetingCardCategoryList.append(greetingCardCategoryListItemClone)
                    }
                   
                    let imageListFiltered = gkt.gktGiftCard.f.filterGreetingCardImages(imageList,greetingCardCategories[0])
                    let greetingCardImageListHTML =  gkt.gktGiftCard.f.renderGreetingCardImages(imageListFiltered)
                    greetingCardMainBody.html(greetingCardImageListHTML)

                    greetingCardContainer.append(greetingCardCategoryList)
                    greetingCardContainer.append(greetingCardMainBody)

                    let gktGiftCardGreetingCardContent = gkt.$(".gktGiftCardGreetingCardContent")
                    gktGiftCardGreetingCardContent.append(greetingCardContainer)


                    gkt.$(".gktGiftCardContentFooterBtn1").html(gkt.utility.renderLanguageValue(continueButtonText));
                },
                prepareGiftCardUI: function () {
                    console.log("gktGiftCard.f.prepareGiftCardUI")
                    const inputFieldsHTML = gkt.gktGiftCard.f.renderInputFieldsForGiftCardDetails();                    
                    let gktGiftCardDetailsContent = gkt.$(".gktGiftCardDetailsContent")
                    //TODO prepareBackButton()
                    const isGreetingCardEnabled = gkt.settings.greetingCards.isGreetingCardEnabled 
                                                  && gkt.settings.greetingCards.greetingCardImgs
                                                  && gkt.settings.greetingCards.greetingCardImgs.length>0;
                    let gktGiftCardModalBackButton;
                     if(isGreetingCardEnabled){
                            gktGiftCardModalBackButton = gkt.gktGiftCard.f.prepareBackButton(gkt.gktGiftCard.f.displayGreetingCardForm);
                            gktGiftCardDetailsContent.append(gktGiftCardModalBackButton);
                        }
                    
                    gktGiftCardDetailsContent.append(inputFieldsHTML)
                    // gktGiftCardDetailsContent.append(gktVideoMsgButton)

                    // append close button 
                    gktGiftCardModalCloseDiv =  gkt.$(".gktGiftCardModalClose")
                    let closeButtonSvg = '<svg width="24px" height="24px" enable-background="new 0 0 587.91 587.91" version="1.1" viewBox="0 0 587.91 587.91" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><path d="m86.451 501.46c26.937 26.936 58.315 48.088 93.265 62.871 36.207 15.314 74.642 23.078 114.24 23.078 39.596 0 78.032-7.764 114.24-23.078 34.949-14.783 66.328-35.936 93.266-62.871 26.936-26.938 48.09-58.316 62.871-93.266 15.314-36.207 23.08-74.643 23.08-114.24 0-39.598-7.766-78.033-23.08-114.24-14.781-34.95-35.936-66.328-62.871-93.265-26.938-26.937-58.316-48.09-93.266-62.872-36.208-15.315-74.643-23.079-114.24-23.079-39.597 0-78.032 7.765-114.24 23.079-34.95 14.782-66.328 35.936-93.265 62.872s-48.09 58.315-62.873 93.264c-15.313 36.207-23.078 74.642-23.078 114.24 0 39.596 7.765 78.031 23.079 114.24 14.782 34.95 35.936 66.328 62.872 93.266zm207.5-458.12c138.41 0 250.61 112.2 250.61 250.62 0 138.41-112.2 250.61-250.61 250.61s-250.62-112.2-250.62-250.61c0-138.41 112.2-250.62 250.62-250.62z"/><path d="m293.96 587.91c-39.667 0-78.167-7.778-114.43-23.117-35.01-14.809-66.442-35.998-93.423-62.979-26.983-26.984-48.172-58.417-62.979-93.425-15.341-36.269-23.119-74.77-23.119-114.43 0-39.663 7.778-78.165 23.118-114.44 14.807-35.008 35.997-66.44 62.979-93.423s58.415-48.172 93.423-62.979c36.27-15.34 74.771-23.118 114.43-23.118 39.666 0 78.167 7.778 114.43 23.119 35.009 14.807 66.441 35.997 93.425 62.979 26.984 26.985 48.173 58.417 62.979 93.423 15.341 36.27 23.119 74.771 23.119 114.43 0 39.662-7.778 78.163-23.119 114.43-14.806 35.007-35.994 66.439-62.979 93.425-26.982 26.98-58.415 48.169-93.425 62.979-36.266 15.338-74.767 23.116-114.43 23.116zm0-586.91c-39.529 0-77.898 7.751-114.04 23.039-34.889 14.757-66.215 35.874-93.106 62.765-26.892 26.892-48.009 58.217-62.766 93.105-15.288 36.147-23.039 74.517-23.039 114.05 0 39.527 7.751 77.898 23.039 114.04 14.757 34.889 35.874 66.214 62.766 93.106 26.89 26.889 58.215 48.006 93.106 62.765 36.142 15.287 74.512 23.038 114.04 23.038s77.901-7.751 114.04-23.039c34.89-14.758 66.216-35.875 93.106-62.764 26.893-26.895 48.009-58.22 62.764-93.106 15.289-36.146 23.041-74.516 23.041-114.04 0-39.529-7.752-77.899-23.041-114.04-14.754-34.887-35.871-66.212-62.764-93.106-26.892-26.891-58.218-48.008-93.106-62.765-36.144-15.289-74.514-23.04-114.04-23.04zm0 544.07c-67.075 0-130.14-26.12-177.56-73.549-47.429-47.43-73.55-110.49-73.55-177.56s26.12-130.14 73.55-177.56c47.429-47.429 110.49-73.55 177.56-73.55s130.14 26.121 177.56 73.55c47.43 47.43 73.55 110.49 73.55 177.56s-26.12 130.14-73.55 177.56c-47.429 47.429-110.49 73.549-177.56 73.549zm0-501.23c-66.808 0-129.62 26.017-176.86 73.257-47.24 47.241-73.257 110.05-73.257 176.86s26.017 129.62 73.257 176.86c47.24 47.24 110.05 73.257 176.86 73.257s129.62-26.017 176.86-73.257c47.24-47.239 73.257-110.05 73.257-176.86 0-66.808-26.017-129.62-73.257-176.86-47.241-47.241-110.05-73.257-176.86-73.257z"/><path d="m184.92 402.99c4.183 4.184 9.664 6.275 15.146 6.275s10.964-2.092 15.146-6.275l78.742-78.742 78.743 78.742c4.182 4.184 9.664 6.275 15.146 6.275s10.963-2.092 15.146-6.275c8.365-8.363 8.365-21.926 0-30.291l-78.744-78.742 78.742-78.743c8.365-8.365 8.365-21.928 0-30.292-8.363-8.365-21.926-8.365-30.291 0l-78.743 78.743-78.742-78.743c-8.365-8.365-21.928-8.365-30.292 0-8.365 8.365-8.365 21.927 0 30.292l78.743 78.743-78.743 78.742c-8.364 8.365-8.364 21.928 1e-3 30.291z"/><path d="m387.84 409.76c-5.856 0-11.36-2.28-15.5-6.422l-78.389-78.389-78.388 78.389c-4.14 4.142-9.645 6.422-15.5 6.422s-11.36-2.28-15.5-6.422c-4.14-4.14-6.42-9.644-6.42-15.498 0-5.855 2.28-11.359 6.42-15.5l78.389-78.389-78.389-78.389c-8.546-8.547-8.546-22.453 0-31 4.14-4.14 9.644-6.42 15.5-6.42 5.855 0 11.36 2.28 15.5 6.42l78.389 78.389 78.389-78.389c4.141-4.14 9.645-6.42 15.5-6.42 5.854 0 11.358 2.28 15.498 6.42 4.141 4.14 6.42 9.645 6.42 15.5s-2.279 11.36-6.42 15.5l-78.389 78.389 78.391 78.389c4.141 4.141 6.421 9.645 6.421 15.5 0 5.854-2.28 11.358-6.421 15.498-4.143 4.141-9.647 6.422-15.501 6.422zm-93.889-86.225 79.096 79.096c3.95 3.952 9.204 6.129 14.793 6.129 5.587 0 10.841-2.177 14.793-6.129 3.951-3.95 6.128-9.203 6.128-14.791s-2.177-10.842-6.128-14.793l-79.098-79.096 79.096-79.096c3.951-3.951 6.127-9.205 6.127-14.793s-2.176-10.841-6.127-14.792c-3.95-3.951-9.203-6.127-14.791-6.127s-10.842 2.176-14.793 6.127l-79.096 79.096-79.096-79.096c-3.951-3.951-9.205-6.127-14.793-6.127s-10.841 2.176-14.792 6.127c-8.156 8.157-8.156 21.428 0 29.585l79.096 79.096-79.096 79.096c-3.951 3.951-6.127 9.205-6.127 14.793s2.176 10.841 6.127 14.791c3.952 3.952 9.205 6.129 14.793 6.129s10.841-2.177 14.793-6.129l79.095-79.096z"/></svg>'
                    gktGiftCardModalCloseDiv.append(closeButtonSvg)
                },
                prepareBackButton: function (callback){
                    let gktGiftCardModalBackButton = gkt.$("<div>").addClass("gktGiftCardModalBackButton")
                    let gktGiftCardModalBackButtonSVG = gkt.$("<div>").addClass("gktGiftCardModalBackButtonSVG")
                    gktGiftCardModalBackButtonSVG.append('<svg class="svg-icon" style="width: 16px; height: 16px;vertical-align: middle;fill: currentColor;overflow: hidden; transform: rotate(180deg);" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M682.666667 533.333333a21.333333 21.333333 0 0 1-15.146667-6.186666l-298.666667-298.666667a21.333333 21.333333 0 0 1 30.293334-30.293333l298.666666 298.666666a21.333333 21.333333 0 0 1 0 30.293334A21.333333 21.333333 0 0 1 682.666667 533.333333z" fill="#333333" /><path d="M384 832a21.333333 21.333333 0 0 1-15.146667-6.186667 21.333333 21.333333 0 0 1 0-30.293333l298.666667-298.666667a21.333333 21.333333 0 0 1 30.293333 30.293334l-298.666666 298.666666A21.333333 21.333333 0 0 1 384 832z" fill="#333333" /></svg>')
                    let gktGiftCardModalBackButtonText =  gkt.$("<div>").addClass("gktGiftCardModalBackButtonText").append(gkt.utility.renderLanguageValue(gkt.settings.languageData.giftcardV2.purchasePageFields.backButtonText))
                    gktGiftCardModalBackButton.append(gktGiftCardModalBackButtonSVG)
                    gktGiftCardModalBackButton.append(gktGiftCardModalBackButtonText)
                        gktGiftCardModalBackButton.on("click", function () {
                            callback()       
                        })
                    return gktGiftCardModalBackButton;
                },
                renderInputFieldsForGiftCardDetails: function(){
                    let { modalHeading, modalDescription, recipientName, recipientNamePlaceholder, recipientEmail, recipientEmailPlaceholder, senderName, senderNamePlaceholder, giftNote, giftNotePlaceholder, buyNowButtonText,backButtonText,deliveryDate,sendNowButtonText,sendLaterButtonText } = gkt.settings.languageData.giftcardV2.purchasePageFields;
                    
                    let gktGiftCardModalPopupHeading = gkt.$("gktGiftCardModalPopupHeading")
                    let gktGiftCardModalHeader = gkt.$(".gktGiftCardModalHeader")

                    let gktGiftCardToInputField = gkt.$("<input>").attr("type", "text").attr("placeholder", gkt.utility.renderLanguageValue(recipientNamePlaceholder)).addClass("gktGiftCardToInputField");
                    let gktGiftCardEmailInputField = gkt.$("<input>").attr("type", "email").attr("placeholder",  gkt.utility.renderLanguageValue(recipientEmailPlaceholder)).addClass("gktGiftCardEmailInputField");
                    let gktGiftCardFromInputField = gkt.$("<input>").attr("type", "text").attr("placeholder",  gkt.utility.renderLanguageValue(senderNamePlaceholder)).addClass("gktGiftCardFromInputField");

                    // attach a checkbox, 
                    let gktGiftCardModalCheckboxContainer = gkt.$("<div>").addClass("gktGiftCardModalCheckboxContainer")
                    let gktGiftCardModalCheckbox = gkt.$("<label>").addClass("gktGiftCardModalCheckbox")
                    let gktGiftCardInputCheckbox = gkt.$("<input>").attr("type","checkbox").addClass("gktGiftCardModalCheckboxInput").attr("name","gktGiftCardModalCheckbox")
                                                    .on("change",function(){
                                                        gkt.gktGiftCard.action.onSendSelfClick();
                                                    })
                                                    
                    let gktCustomCheckboxCheckmarkSmall = gkt.$("<span>").addClass("gktCustomCheckboxCheckmarkSmall").attr("for","gktGiftCardModalCheckbox")
                    let gktGiftCardModalCheckboxLabel = gkt.$("<span>").addClass("gktGiftCardModalCheckboxLabel").attr("for","gktGiftCardModalCheckbox")
                    gktGiftCardModalCheckboxContainer.append(gktGiftCardModalCheckbox)
                    
                    // a date picker 
                    let gktGiftCardDatePicker = gkt.$("<input>").attr("type", "date").addClass("gktGiftCardDatePicker"); 
                    //  todays date is the default value
                    // gktGiftCardDatePicker.attr("value", new Date().toISOString().slice(0, 10));  
                    gktGiftCardDatePicker.attr("value", gkt.utility.getLocalDateIn_YYYY_MM_DD());
                    let gktGiftCardMessageInputField = gkt.$("<textarea>").attr("type", "text").attr("placeholder", gkt.utility.renderLanguageValue(giftNotePlaceholder)).addClass("gktGiftCardMessageInputField").attr("rows", "4");


                    let gktGiftCardEmailValidation = gkt.$("<p>", { class: "gktGiftCardEmailValidation" });
                    let gktGiftCardDateValidation = gkt.$("<p>", { class: "gktGiftCardDateValidation" });
                    // add a label to all of these fields
                    let gktGiftCardToLabel = gkt.$("<label>").addClass("gktGiftCardToLabel").html(gkt.utility.renderLanguageValue(recipientName));
                    let gktGiftCardFromLabel = gkt.$("<label>").addClass("gktGiftCardFromLabel").html(gkt.utility.renderLanguageValue(senderName))
                    let gktGiftCardEmailLabel = gkt.$("<label>").addClass("gktGiftCardEmailLabel").html(gkt.utility.renderLanguageValue(recipientEmail))
                    // let gktGiftCardMessageLabel = gkt.$("<label>").addClass("gktGiftCardMessageLabel").html(giftNote.value)
                    let gktGiftCardDateLabel = gkt.$("<label>").addClass("gktGiftCardDateLabel").html(gkt.utility.renderLanguageValue(deliveryDate))
                        
                    // applyLabelCSS to all of these fields
                    gkt.f.applyLabelCSS(gktGiftCardToLabel)
                    gkt.f.applyLabelCSS(gktGiftCardFromLabel)
                    gkt.f.applyLabelCSS(gktGiftCardEmailLabel)
                    gkt.f.applyLabelCSS(gktGiftCardDateLabel)

                    // create two buttons, detailing Delivery Options
                    let gktDeliveryOptions = gkt.$("<div>").addClass("gktDeliveryOptions")
                    let gktGiftCardSendNowButton = gkt.$("<button>").addClass("gktGiftCardSendNowButton").html(gkt.utility.renderLanguageValue(sendNowButtonText));
                    let gktGiftCardSendLaterButton = gkt.$("<button>").addClass("gktGiftCardSendLaterButton").html(gkt.utility.renderLanguageValue(sendLaterButtonText));
                    
                    
                    // type as button else they autosubmit the form.
                    gktGiftCardSendNowButton.attr("type", "button");
                    
                    gktGiftCardSendLaterButton.attr("type", "button");
                    
                    gktDeliveryOptions.append(gktGiftCardSendNowButton)
                    gktDeliveryOptions.append(gktGiftCardSendLaterButton)
                    // add all of these to the gktGiftCardDateLabel
                    gktGiftCardDateLabel.append(gktDeliveryOptions)

                    gktGiftCardSendNowButton.addClass("activeDeliveryOption");

                    gktGiftCardSendNowButton.css("font-family", gkt.settings.app.themeButtonFontFamily);
                    gktGiftCardSendLaterButton.css("font-family", gkt.settings.app.themeButtonFontFamily);
                    gkt.f.applyButtonCSS(gktGiftCardSendNowButton)
 
                    //add onClickFunctionality to Send Later which opens up a date picker
                    gktGiftCardSendLaterButton.on("click", function () {
                        gktGiftCardDatePicker.css("display", "block");
                        gkt.f.applyButtonCSS(gktGiftCardSendLaterButton);
                        
                        gkt.f.resetButtonCSS(gktGiftCardSendNowButton)
                        gktGiftCardSendLaterButton.addClass("activeDeliveryOption");
                        gktGiftCardSendNowButton.removeClass("activeDeliveryOption");
                        gkt.gktGiftCard.state.giftCardDeliveryOption = "sendLater"
                        gktGiftCardDateLabel.append(gktGiftCardDatePicker).append(gktGiftCardDateValidation)
                    })

                    gktGiftCardSendNowButton.on("click", function () {
                        gktGiftCardDatePicker.css("display", "none");
                        gkt.f.applyButtonCSS(gktGiftCardSendNowButton)
                        //add activeDeliveryOption class to the button
                        gktGiftCardSendNowButton.addClass("activeDeliveryOption");
                        gkt.f.resetButtonCSS(gktGiftCardSendLaterButton)
                        gktGiftCardSendLaterButton.removeClass("activeDeliveryOption");
                        gkt.gktGiftCard.state.giftCardDeliveryOption = "sendNow"
                    })

                    gktGiftCardToLabel.attr("required", true)
                    gktGiftCardFromLabel.attr("required", true)
                    gktGiftCardEmailLabel.attr("required", true)
                    // gktGiftCardMessageLabel.attr("required", true)
                    // add todays date as default value
                    
                    // gktGiftCardDatePicker.attr("value", new Date().toISOString().slice(0, 10))
                    gktGiftCardDatePicker.attr("value", gkt.utility.getLocalDateIn_YYYY_MM_DD());
                    

                    //attach a date min and max value attr to the date picker
                    // gktGiftCardDatePicker.attr("min", new Date().toISOString().slice(0, 10));
                    gktGiftCardDatePicker.attr("min", gkt.utility.getLocalDateIn_YYYY_MM_DD());


                    // and max date is set to the 60 days after
                    // gktGiftCardDatePicker.attr("max", new Date(new Date().getTime() + 60 * 24 * 60 * 60 * 1000).toISOString().slice(0, 10));

                    const _maxDate = new Date(new Date().getTime() + 60 * 24 * 60 * 60 * 1000);
                    gktGiftCardDatePicker.attr("max", gkt.utility.getLocalDateIn_YYYY_MM_DD(_maxDate));

                    // add all of these fields to a div
                    let gktGiftCardInputFieldsDiv = gkt.$("<div>").addClass("gktGiftCardInputFieldsDiv")
                  
                    let gktGiftCardInputReceiverName = gkt.$("<div>").addClass("gktGiftCardInputReceiverName")
                    // let gktGiftCardInputRow1Div1 = gkt.$("<div>").addClass("gktGiftCardInputRow1Div1")
                    // let gktGiftCardInputRow1Div2 = gkt.$("<div>").addClass("gktGiftCardInputRow1Div2")
                    let gktGiftCardInputReceiverEmail = gkt.$("<div>").addClass("gktGiftCardInputReceiverEmail")
                    let gktGiftCardInputRow3Div1 = gkt.$("<div>").addClass("gktGiftCardInputRow3Div1")
                    let gktGiftCardInputSenderName = gkt.$("<div>").addClass("gktGiftCardInputSenderName")

                    let gktGiftCardInputRow5 = gkt.$("<div>").addClass("gktGiftCardInputRow5")

                    // gktGiftCardInputRow1.append(gktGiftCardInputRow1Div1).append(gktGiftCardInputRow1Div2)
                    gktGiftCardInputReceiverName.append(gktGiftCardToLabel).append(gktGiftCardToInputField)
                    gktGiftCardInputReceiverEmail.append(gktGiftCardEmailLabel).append(gktGiftCardEmailInputField).append(gktGiftCardEmailValidation)
                    // gktGiftCardInputRow3Div1.
                    gktGiftCardInputSenderName.append(gktGiftCardFromLabel).append(gktGiftCardFromInputField)
                    gktGiftCardInputRow5.append(gktGiftCardDateLabel)

                    gktGiftCardModalCheckboxLabel.html(gkt.utility.renderLanguageValue(gkt.settings.languageData.giftcardV2.purchasePageFields.sendToSelfText));
                    
                    gktGiftCardModalCheckbox.append(gktGiftCardInputCheckbox)
                    gktGiftCardModalCheckbox.append(gktCustomCheckboxCheckmarkSmall)
                    gktGiftCardModalCheckbox.append(gktGiftCardModalCheckboxLabel)

                    gktGiftCardInputFieldsDiv.append(gktGiftCardModalCheckboxContainer)
                    gktGiftCardInputFieldsDiv.append(gktGiftCardInputReceiverName)
                    gktGiftCardInputFieldsDiv.append(gktGiftCardInputReceiverEmail)
                    gktGiftCardInputFieldsDiv.append(gktGiftCardInputSenderName)
                    gktGiftCardInputFieldsDiv.append(gktGiftCardInputRow5)

                    return gktGiftCardInputFieldsDiv;
                },
                prepareGiftCardMessage : function (){
                    
                    let gktGiftCardMessage = gkt.$(".gktGiftCardMessageContent");
                    // a label field
                    let gktGiftCardMessageLabel = gkt.$("<label>").addClass("gktGiftCardMessageLabel").attr("for", "gktGiftCardMessage").text(gkt.utility.renderLanguageValue(gkt.settings.languageData.giftcardV2.purchasePageFields.giftNote));
                    let gktGiftCardMessageInputField = gkt.$("<textarea>").addClass("gktGiftCardMessageInputField").attr("placeholder", gkt.utility.renderLanguageValue(gkt.settings.languageData.giftcardV2.purchasePageFields.giftNotePlaceholder))
                    let gktVideoMsgButton;


                    gkt.f.applyLabelCSS(gktGiftCardMessageLabel)

                    // create an empty divider to separate the message and the video message button
                    let gktGiftCardMessageDivider = gkt.$("<div>").addClass("gktGiftCardMessageDivider")
                    let gktVideoMsgCheckboxWrapper;
                    let gktVideoMsgCheckboxLabel;
                    if(gkt.settings.videoMessage.isVideoMessagingEnabled ){
                           //gktVideoMsgButton  = gkt.$("<button>").addClass("gktVideoMsgButton").attr("type", "button").text(gkt.settings.languageData.videoMessage.sendVideoMessageText.value);
                            gktVideoMsgButton  = gkt.$("<button>").addClass("gktVideoMsgButton").attr("type", "button").text("Video Msg");
                            gktVideoMsgCheckboxLabel = gkt.$("<label>").addClass("gktVideoMsgCheckboxLabel").attr("for", "gktVideoMsgCheckbox").text(gkt.utility.renderLanguageValue(gkt.settings.languageData.videoMessage.recordVideoLabel));
                            // create a label with switch classname
                            
                            gkt.f.applyLabelCSS(gktVideoMsgCheckboxLabel)
                            
                            gktVideoMsgCheckboxWrapper = gkt.$("<label>").addClass("gktVideoMsgCheckboxWrapper").attr("for", "gktVideoMsg")

                            //input which is type of checkbox
                        
                            let gktVideoMsgCheckboxField;

                            // a span which is round and slider css
                            let gktVideoMsgSlider = gkt.$("<span>").addClass("gktVideoMsgSlider").attr("id", "gktVideoMsgSlider");
                            


                            if(gkt.utility.isMobileView()){
                                //create a checkbox and a dropzone to upload a video
                                gktVideoMsgSlider = gkt.$("<span>").addClass("gktVideoMsgSlider_Mobile").attr("id", "gktVideoMsgSlider_Mobile");
                                let gktVideoMessageFileInput = gkt.$("<input>").attr("type", "file").addClass("gktVideoMessageFileInput").attr("id", "gktVideoMessageFileInput").attr("capture", "user").attr("accept", "video/*");
                                // gktVideoMsgCheckboxField = gktVideoMessageFileInput;
                                gktVideoMsgCheckboxField = gkt.$("<input>").addClass("gktVideoMsgCheckboxField_Mobile").attr("type", "checkbox").attr("id", "gktVideoMsg_Mobile");

                                gktVideoMsgSlider.on("click", function(){
                                    gktVideoMsgCheckboxField.trigger("click")
                                    if(gktVideoMsgCheckboxField.is(":checked")){
                                        gktVideoMsgSlider.addClass("gktVideoMsgSliderActive")
                                        gktVideoMessageFileInput.click();
                                    }else{
                                        gktVideoMsgSlider.removeClass("gktVideoMsgSliderActive")
                                        gkt.gktVideoMsg.f.clickClose(event);
                                    }
                                })

                                gktVideoMessageFileInput.on("change", async function({target}){
                                    console.log("file input changed target", target)
                                    if (target.files && target.files.length) {
                                        try {
                                            gkt.gktVideoMsg.f.prepareVideoMsgPlayer()

                                            console.log("target.files[0]", target.files[0])
                                            gkt.gktVideoMsg.state.recordedBlob = target.files[0];
                                            gkt.gktVideoMsg.state.elements.gktVideoPlayerRecording.attr("src",URL.createObjectURL(gkt.gktVideoMsg.state.recordedBlob));
                                            gkt.gktVideoMsg.state.elements.gktVideoPlayerRecording[0].load();
                                            // await gkt.gktVideoMsg.f.covertBlobToBase64(target.files[0]); 
                                            //do something with above data string 
                                            gkt.$('.gktVideoMsgPlayerWrapper').css('display', 'grid')
                                        } catch(error) {
                                            //handle error
                                            console.log(error,"error occured while uploading file")
                                        }
                                        }else{
                                            gktVideoMsgSlider.removeClass("gktVideoMsgSliderActive")
                                            gkt.$('.gktVideoMsgPlayerWrapper').css('display', 'none')
                                        }
                                    })                               
                                //append gktVideoMessageFileInput to gktVideoMsgCheckboxWrapper
                                gktVideoMessageFileInput.css("display", "none");
                                gktVideoMsgCheckboxWrapper.append(gktVideoMessageFileInput);
                         }else{
                            gktVideoMsgCheckboxField = gkt.$("<input>").addClass("gktVideoMsgCheckboxField").attr("type", "checkbox").attr("id", "gktVideoMsg");
                            gktVideoMsgCheckboxField.on("change", function(event){
                                if(gktVideoMsgCheckboxField.is(":checked")){
                                    console.log("it is checked");
                                    gkt.gktVideoMsg.actions.gktVideoMsgButton(event);
                                }else{
                                    gktVideoMsgSlider.removeClass("gktVideoMsgSliderActive")
                                    gkt.gktVideoMsg.f.clickClose(event);
                                }
                            })
                        }
                        gktVideoMsgCheckboxWrapper.append(gktVideoMsgCheckboxField)
                        gktVideoMsgCheckboxWrapper.append(gktVideoMsgSlider)
                    }
                    // gktGiftCardMessageInputField and gktGiftCardMessageLabel are added to same parent div
                    let gktVideoMessageCheckboxRow = gkt.$("<div>").addClass("gktVideoMessageCheckboxRow")
                    gktVideoMessageCheckboxRow.append(gktVideoMsgCheckboxLabel).append(gktVideoMsgCheckboxWrapper)
                    let gktGiftCardMessageInputFieldsDiv = gkt.$("<div>").addClass("gktGiftCardMessageInputFieldsDiv")
                    gktGiftCardMessageInputFieldsDiv.append(gktGiftCardMessageLabel).append(gktGiftCardMessageInputField)
                    gktGiftCardModalBackButton = gkt.gktGiftCard.f.prepareBackButton(gkt.gktGiftCard.f.displayGiftCardDetailsForm);
                    gktGiftCardMessage.append(gktGiftCardModalBackButton);
                    gktGiftCardMessage.append(gktGiftCardMessageInputFieldsDiv)
                    gktGiftCardMessage.append(gktGiftCardMessageDivider)
                    // gktGiftCardMessage.append(gktVideoMsgButton)
                    gktGiftCardMessage.append(gktVideoMessageCheckboxRow)
                    //    gkt.$(".gktGiftCardModalPopupHeading").append(gktGiftCardModalBackButton)


                },
                populateModalNavList : function(){
                    let isGreetingCardEnabled = gkt.settings.greetingCards.isGreetingCardEnabled &&
                                                gkt.settings.greetingCards.greetingCardImgs &&
                                                gkt.settings.greetingCards.greetingCardImgs.length>0;
                    let isSendToSelfChecked =gkt.$(".gktGiftCardModalCheckbox").find("input").is(":checked");
                    if(isGreetingCardEnabled){
                       gkt.gktGiftCard.state.modalNavList.push({id:"GREETING_CARD", name:gkt.utility.renderLanguageValue(gkt.settings.languageData.giftcardV2.navigationFields.greetingCardNavItem), visited:false,active:false});
                    }
                    //("Gift Card Details");
                    gkt.gktGiftCard.state.modalNavList.push({id:"GIFT_CARD_DETAILS", name:gkt.utility.renderLanguageValue(gkt.settings.languageData.giftcardV2.navigationFields.giftCardDetailsNavItem), visited:false,active:false});
                    if(!isSendToSelfChecked){
                        gkt.gktGiftCard.state.modalNavList.push({id:"GIFT_MESSAGE", name:gkt.utility.renderLanguageValue(gkt.settings.languageData.giftcardV2.navigationFields.giftcardMessageNavItem), visited:false,active:false});
                    }
                    
                },
                renderGiftCardModalNav: function(){
                    console.log("rendering gift card modal nav");
                    let gktGiftCardModalNavHTML = gkt.$("<div>").addClass("gktGiftCardModalNav");
                    let gktGiftCardModalNavForMobileHTML = gkt.$("<div>").addClass("gktGiftCardModalNavForMobile");
                    const isGreetingCardEnabled = gkt.settings.greetingCards.isGreetingCardEnabled &&
                                                  gkt.settings.greetingCards.greetingCardImgs &&
                                                  gkt.settings.greetingCards.greetingCardImgs.length>0;
                   
                    if (gkt.gktGiftCard.state.modalNavList.length<1){
                        gkt.gktGiftCard.f.populateModalNavList();
                    }
                    
                    gktGiftCardModalNavList = gkt.gktGiftCard.state.modalNavList;

                    // now create the nav list and append it to the modal nav while attaching a span for ">"
                    for(let i=0; i<gktGiftCardModalNavList.length; i++){
                            let gktGiftCardModalNavListItem = gkt.$("<div>").addClass("gktGiftCardModalNavListItem").html(gktGiftCardModalNavList[i].name);
                            gkt.f.applyHeaderCSS(gktGiftCardModalNavListItem);

                            //if modal the item has visited true then set it as activeNavItem
                            if(gktGiftCardModalNavList[i].visited){
                                gktGiftCardModalNavListItem.addClass("activeNavItem");
                            }
                            
                            let gktGiftCardModalNavListItemSpan;
                            if(i < gktGiftCardModalNavList.length-1){
                                gktGiftCardModalNavListItemSpan  = gkt.$("<div>").addClass("gktGiftCardModalNavListItemSpan").html('<svg class="svg-icon" style="width: 16px; height: 16px;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M682.666667 533.333333a21.333333 21.333333 0 0 1-15.146667-6.186666l-298.666667-298.666667a21.333333 21.333333 0 0 1 30.293334-30.293333l298.666666 298.666666a21.333333 21.333333 0 0 1 0 30.293334A21.333333 21.333333 0 0 1 682.666667 533.333333z" fill="#333333" /><path d="M384 832a21.333333 21.333333 0 0 1-15.146667-6.186667 21.333333 21.333333 0 0 1 0-30.293333l298.666667-298.666667a21.333333 21.333333 0 0 1 30.293333 30.293334l-298.666666 298.666666A21.333333 21.333333 0 0 1 384 832z" fill="#333333" /></svg>');
                            }
                            if(gktGiftCardModalNavList[i].active){
                                gktGiftCardModalNavListItem.addClass("activeNavItem");
                                gktGiftCardModalNavForMobileHTML.html(gktGiftCardModalNavListItem.clone())
                            }                          
                        gktGiftCardModalNavHTML.append(gktGiftCardModalNavListItem)
                        gktGiftCardModalNavHTML.append(gktGiftCardModalNavListItemSpan)
                    }
                    // if gktGiftCardModalNav is not present in the DOM, then append it else replace it
                    if(gkt.$(".gktGiftCardModalNav").length){
                        gkt.$(".gktGiftCardModalNav").replaceWith(gktGiftCardModalNavHTML)
                    }
                    else{
                        gkt.$(".gktGiftCardModalHeader").append(gktGiftCardModalNavHTML)
                    }

                    if(gkt.$(".gktGiftCardModalNavForMobile").length){
                        gkt.$(".gktGiftCardModalNavForMobile").replaceWith(gktGiftCardModalNavForMobileHTML)
                    }
                    else{
                        gkt.$(".gktGiftCardModalHeader").append(gktGiftCardModalNavForMobileHTML)
                    }

                },
                attachEventsToDetailsForm: function () {
                    // cleanup the previous attached events
                    gkt.$(".gktGiftCardContentFooterBtn1").off("click");

                    gkt.$(".gktGiftCardContentFooterBtn1").html(gkt.utility.renderLanguageValue(gkt.settings.languageData.giftcardV2.purchasePageFields.giftcardDetailsButton));
                    gkt.f.applyButtonCSS(gkt.$(".gktGiftCardContentFooterBtn1"));
                    gkt.$(".gktGiftCardContentFooterBtn1").on("click", function (event) {
                        gkt.$(this).attr("disabled", true);
                        setTimeout(() => { gkt.$(this).attr("disabled", false); }, 4000)
                        gkt.gktGiftCard.action.onDetailsSubmit(event)
                    })
                    gkt.gktGiftCard.f.renderGiftCardModalNav();
                    gkt.$(".gktGiftCardContentFooter").append(gkt.gktGiftCard.state.giftCardAddToCartButtonClone)
                },
                attachEventsToGreetingCardForm : function(){
                    // cleanup the previous attached events
                    gkt.$(".gktGiftCardContentFooterBtn1").off("click");

                    gkt.$(".gktGiftCardContentFooterBtn1").html(gkt.utility.renderLanguageValue(gkt.settings.languageData.giftcardV2.greetingCardFields.greetingCardContinueButtonText));
                    gkt.f.applyButtonCSS(gkt.$(".gktGiftCardContentFooterBtn1"));
                    gkt.$(".gktGiftCardContentFooterBtn1").on("click", function (event) {
                        gkt.$(this).attr("disabled", true);
                        setTimeout(() => { gkt.$(this).attr("disabled", false); }, 4000)
                        gkt.gktGiftCard.action.onGreetingCardSubmit(event)
                    })
                    // set the first nav item as active
                    gkt.gktGiftCard.f.renderGiftCardModalNav();
                },
                attachEventsToMessageForm : function (){
                    // cleanup the previous attached events
                    gkt.$(".gktGiftCardContentFooterBtn1").off("click");
                    gkt.$(".gktGiftCardContentFooterBtn1").html(gkt.utility.renderLanguageValue(gkt.settings.languageData.giftcardV2.purchasePageFields.buyNowButtonText));
                    gkt.f.applyButtonCSS(gkt.$(".gktGiftCardContentFooterBtn1"));
                    gkt.$(".gktGiftCardContentFooterBtn1").on("click", function (event) {
                        gkt.$(this).attr("disabled", true);
                        setTimeout(() => { gkt.$(this).attr("disabled", false); }, 4000)
                        gkt.$(this).html(gkt.utility.renderLanguageValue(gkt.settings.languageData.giftcardV2.purchasePageFields.buyNowButtonTextLoading));
                        gkt.gktGiftCard.action.onMessageSubmit(event)
                    })
                    
                    gkt.gktGiftCard.f.renderGiftCardModalNav();
                },
                displayGreetingCardForm:function(){
                    gkt.gktGiftCard.action.hideGiftCardMessageBody();
                    gkt.gktGiftCard.action.hideGiftCardDetailsBody();
                   
                    gkt.gktGiftCard.state.modalNavList.find(function(item){
                        if(item.id == "GREETING_CARD"){
                            item.visited = true;
                            item.active = true;
                        }
                        else{
                            item.active = false;
                        }
                    })
                    gkt.gktGiftCard.action.showGreetingCardBody();
                    gkt.gktGiftCard.f.attachEventsToGreetingCardForm();
                },
                displayGiftCardDetailsForm : function (){
                    gkt.gktGiftCard.action.hideGreetingCardBody();
                    gkt.gktGiftCard.action.hideGiftCardMessageBody();
                    gkt.gktGiftCard.state.modalNavList.find(function(item){
                        if(item.id == "GIFT_CARD_DETAILS"){
                            item.visited = true;
                            item.active = true;
                        }
                        else{
                         item.active = false;
                        }
                    });
                    gkt.gktGiftCard.action.showGiftCardDetailsBody()
                    gkt.gktGiftCard.f.attachEventsToDetailsForm();
                },
                displayMessageForm: function(){
                        gkt.gktGiftCard.action.hideGreetingCardBody();
                        gkt.gktGiftCard.action.hideGiftCardDetailsBody();
                        gkt.gktGiftCard.state.modalNavList.find(function(item){
                            if(item.id == "GIFT_MESSAGE"){
                                item.visited = true;
                                item.active = true;
                            }else{
                                item.active = false;
                            }
                        });
                        //and all the other nav items are inactive

                        gkt.gktGiftCard.action.showGiftCardMessageBody();
                        gkt.gktGiftCard.f.attachEventsToMessageForm();
                },
                validateForm: function () {
                    let isValid = true
                    console.log("validateForm");
                    // run validation on all fields which are visible
                    gkt.$(".gktGiftCardInputFieldsDiv input").each(function () {
                        if(gkt.$(this).is(":visible")){
                            if (gkt.$(this).val().trim() == "") {
                                gkt.$(this).css("border", "1px solid red")
                                isValid = false
                            } else {
                                gkt.$(this).css("border", "1px solid #cccccc")
                            }
                        }
                    })
                    return isValid;
                },
                emailValidation: function (emailString) {
                    var atSymbol = emailString.indexOf("@");
                    if (atSymbol < 1) return false;

                    var dot = emailString.lastIndexOf(".");                    
                    if (dot <= atSymbol + 2) return false;

                    // check that the dot is not at the end
                    if (dot === emailString.length - 1) return false;

                    return true;
                },
                dateValidation : function (date){
                    // if deliveryOption is sendNow then send date should be today
                    if(gkt.gktGiftCard.state.giftCardDeliveryOption == "sendNow"){
                        date = new Date();
                    }
                    // let today = new Date().toISOString().slice(0, 10)
                    let today = gkt.utility.getLocalDateIn_YYYY_MM_DD();
                    // let dateToCompare = new Date(date).toISOString().slice(0, 10)
                    let dateToCompare = gkt.utility.getLocalDateIn_YYYY_MM_DD(new Date(date));
                    if (dateToCompare < today) {
                        return false
                    }
                    // else if (dateToCompare > new Date(new Date().getTime() + 60 * 24 * 60 * 60 * 1000).toISOString().slice(0, 10)) {
                    else if (dateToCompare > gkt.utility.getLocalDateIn_YYYY_MM_DD(new Date(new Date().getTime() + 60 * 24 * 60 * 60 * 1000))) {
                        return false
                    }
                    else {
                        return true
                    }
                },
                performFormValidation : function (e){
                    
                    // let gkGifttCardEmailValueIsValid = gkt.f.validateEmail(gkGifttCardEmailValue)
                    let gkGifttCardEmailValue = gkt.$(".gktGiftCardEmailInputField").val()
                    let gkGifttCardDateValue = gkt.$(".gktGiftCardDatePicker").val()
                    let emailValid = gkt.gktGiftCard.f.emailValidation(gkGifttCardEmailValue);
                    let isFormValid = gkt.gktGiftCard.f.validateForm();
                    let dateValid = gkt.gktGiftCard.f.dateValidation(gkGifttCardDateValue);
                    if (isFormValid && emailValid && dateValid) {
                        gkt.$(".gktGiftCardContentFooterBtn1").html(gkt.utility.renderLanguageValue(gkt.settings.languageData.giftcardV2.purchasePageFields.buyNowButtonTextLoading));
                        return true;
                    } else if (!emailValid) {
                        //TODO
                        gkt.$(".gktGiftCardEmailValidation").html(gkt.utility.renderLanguageValue(gkt.settings.languageData.giftcardV2.purchasePageFields.emailValidationError));
                        return;
                    }else if (!dateValid){
                        gkt.$(".gktGiftCardDateValidation").html(gkt.utility.renderLanguageValue(gkt.settings.languageData.giftcardV2.purchasePageFields.dateValidationError));
                        return;
                    }
                    else {
                       return;
                    }

                },
            },
            action: {
                giftCardAddToCartButton: async function (e) {
                    e.preventDefault();
                    e.stopPropagation();

                    gkt.gktGiftCard.f.openGiftCardModal()

                    console.log("giftCardAddToCartButton-clicked")
                },
                onModalClose: function (e) {
                    // hide the modal
                    gkt.$(".gktGiftCardModalWrapper").hide();
                },
                onModalBack:function(e){
                    gkt.gktGiftCard.action.showGreetingCardBody()
                    gkt.gktGiftCard.action.hideGiftCardDetailsBody()
                },
                removeCheckmarkDivsFromSiblings: function(element){
                    element.siblings().find(".gkt_checkmark").remove()
                    element.siblings().removeClass("activeGreetingCard")             
                },
                addCheckMarkDivs: function (element) {
                    let checkMarkDiv = gkt.$("<span>").addClass("gkt_checkmark")
                    checkMarkDiv.append(gkt.$("<div>").addClass("gkt_checkmark_circle"))
                    checkMarkDiv.append(gkt.$("<div>").addClass("gkt_checkmark_stem"))
                    checkMarkDiv.append(gkt.$("<div>").addClass("gkt_checkmark_kick"))
                    element.append(checkMarkDiv)
                },
                onGreetingCardImageClick : function(image){
                    // Pass either the image or just trigger this as a callback on Onclick
                    let imageSrc;
                    if (false) {
                        imageSrc = image
                        
                    } else {
                        imageSrc = gkt.$(this).find("img").attr("src")
                    }
                      console.log("onclick triggered")
                    // gkt.$('.greetingCardImagePreview').attr("src", imageSrc)
                    gkt.gktGiftCard.state.greetingCardActiveImageSrc = imageSrc

                    gkt.$(this).find("input").prop("checked", true)
                    gkt.$(this).addClass("activeGreetingCard")
                    // add an icon on top of it
                    gkt.gktGiftCard.action.addCheckMarkDivs(gkt.$(this))
                    gkt.gktGiftCard.action.removeCheckmarkDivsFromSiblings(gkt.$(this))

                },
                onGreetingCardCategoryClick : function(){
                    // empty the active state greeting card
                    console.log("onGreetingCardCategoryClick");
                    gkt.$(this).addClass("activeGreetingCardCategory")
                    // remove activeCategory class from other categories
                    gkt.$(this).siblings().removeClass("activeGreetingCardCategory")
                    gkt.gktGiftCard.f.changeGreetingCardImageList(gkt.gktGiftCard.state.greetingCardSelectedCategory);
                },
                onSendSelfClick : function(){
                    // todo
                    let isSendToSelfChecked =gkt.$(".gktGiftCardModalCheckbox").find("input").is(":checked");
                    if(!isSendToSelfChecked){
                        gkt.$(".gktGiftCardInputSenderName").show();
                        gkt.$(".gktGiftCardInputReceiverName").show();
                        //find id GIFT_MESSAGE if not found then push
                        if (gkt.gktGiftCard.state.modalNavList.indexOf("GIFT_MESSAGE") == -1) {
                            gkt.gktGiftCard.state.modalNavList.push({id:"GIFT_MESSAGE",name:gkt.utility.renderLanguageValue(gkt.settings.languageData.giftcardV2.navigationFields.giftcardMessageNavItem),visited:false,active:false})
                        }
                    }
                    else{
                        gkt.$(".gktGiftCardInputSenderName").hide();
                        gkt.$(".gktGiftCardInputReceiverName").hide();
                        gkt.gktGiftCard.state.modalNavList.find(function(element){
                        if(element.id == "GIFT_MESSAGE"){
                            gkt.gktGiftCard.state.modalNavList.splice(gkt.gktGiftCard.state.modalNavList.indexOf(element),1)
                        }
                    })
                    }
                    //remove array element assoicated with the id = GIFT_MESSAGE in gkt.gktgiftCard.state.modalNavList
                    
                    gkt.gktGiftCard.f.renderGiftCardModalNav();
                },
                onMessageSubmit: async function (e) {
                    e.preventDefault();
                    e.stopPropagation();
                    let greetingCardSelected = undefined;
                    let categorySelected = "";
                    if(gkt.settings.greetingCards.isGreetingCardEnabled){
                     greetingCardSelected = gkt.gktGiftCard.state.greetingCardActiveImageSrc;
                     categorySelected = gkt.gktGiftCard.state.greetingCardSelectedCategory;
                    }
                    // TODO: Do we need a validation for the form on the final page aswell?
                    let selectedVariantId = gkt.f.getSelectedVariant()
                    let quantity = gkt.f.getProductQuantity()
                    let gkGifttCardFromValue = gkt.$(".gktGiftCardFromInputField").val()
                    let gkGifttCardToValue = gkt.$(".gktGiftCardToInputField").val()
                    let gkGifttCardMessageValue = gkt.$(".gktGiftCardMessageInputField").val()
                    let gkGifttCardEmailValue = gkt.$(".gktGiftCardEmailInputField").val()
                    // if sendNow then set date to today
                    let gkGifttCardDateValue = gkt.$(".gktGiftCardDatePicker").val()
                    // check if deliveryOption is set to sendNow, if yes then reassign date to today
                    if (gkt.gktGiftCard.state.giftCardDeliveryOption == "sendNow") {
                        gkGifttCardDateValue = new Date().toISOString().slice(0, 10);
                    }

                    const isSendToSelfChecked = gkt.$(".gktGiftCardModalCheckbox").find("input").is(":checked");

                    if(isSendToSelfChecked){
                        gkGifttCardFromValue = null;
                        gkGifttCardToValue = null;
                    }
                    if(gkt.$(".gktVideoMsgCheckboxField").is(":checked")!=true && gkt.$(".gktVideoMsgCheckboxField_Mobile").is(":checked")!=true){
                        gkt.gktVideoMsg.state.uploadedVideoId = null;
                    }
                    //redirectUrlForSendGiftcardBtn includes cart keyword
                    if(gkt.settings.app.redirectUrlForSendGiftcardBtn.includes("checkout")){
                        let clearCart = await gkt.utility.clearCart()
                    }

                    let resAddToCart = await gkt.utility.addToCartV2({
                        "items": [
                            {
                                "id": selectedVariantId,
                                "quantity": quantity ? quantity : 1,
                                "properties": {
                                    "To": gkGifttCardToValue,
                                    "From": gkGifttCardFromValue,
                                    "Note": gkGifttCardMessageValue,
                                    "Recipient Email": gkGifttCardEmailValue,
                                    "Delivery Date": gkGifttCardDateValue,
                                    "_Greeting Card Image": greetingCardSelected,
                                    "Greeting Card Selected": greetingCardSelected? "yes" : null,
                                    "Video Recorded" : gkt.gktVideoMsg.state.uploadedVideoId ? "yes": null,
                                    "_Video Id": gkt.gktVideoMsg.state.uploadedVideoId,
                                    "_Send To Myself": isSendToSelfChecked

                                }
                            }
                        ],
                    })
                    


                    window.location.href = gkt.settings.app.redirectUrlForSendGiftcardBtn

                    console.log("onMessageSubmit-clicked")
                },
                onGreetingCardSubmit: async function (e){
                    e.preventDefault();
                    e.stopPropagation();
                    let greetingCardSelected = gkt.gktGiftCard.state.greetingCardActiveImageSrc;
                    let categorySelected = gkt.gktGiftCard.state.greetingCardSelectedCategory;

                    gkt.gktGiftCard.f.displayGiftCardDetailsForm();
                },
                onDetailsSubmit: async function (e){
                    e.preventDefault();
                    console.log("onDetailsSubmit-clicked")
                    let formValid = gkt.gktGiftCard.f.performFormValidation();
                    let isSendToSelfChecked = gkt.$(".gktGiftCardModalCheckbox").find("input").is(":checked");

                    if(formValid){
                        if(isSendToSelfChecked){
                            gkt.gktGiftCard.action.onMessageSubmit(e);
                            return;
                        }
                        gkt.gktGiftCard.f.displayMessageForm();
                    }
                    else return;
                },
                hideGreetingCardBody: function () {
                    gkt.$(".gktGiftCardGreetingCardContent").hide();

                },
                showGreetingCardBody: function () {
                    gkt.$(".gktGiftCardGreetingCardContent").show();
                },
                showGiftCardDetailsBody: function () {
                    gkt.$(".gktGiftCardDetailsContent").show();
                },
                hideGiftCardDetailsBody: function () {
                    gkt.$(".gktGiftCardDetailsContent").hide();
                },
                hideGiftCardMessageBody: function () {
                    gkt.$(".gktGiftCardMessageContent").hide();
                },
                showGiftCardMessageBody: function () {
                    gkt.$(".gktGiftCardMessageContent").show();
                },
            },
        },
        gktAccountWidget: {
            state: {
                isLoading: null,
            },
            init: function (settings, parent) {
                if(shopifyLiquidValues && shopifyLiquidValues.customer && shopifyLiquidValues.customer.id){
                    gkt.gktAccountWidget.initialize(settings, parent)
                }
            },
            initialize: function (settings, parent) {
                let {isEnabledOnCartPage} = gkt.gktAccountWidget.f.checkifAccountWidgetEnabled()
                if (parent == "CART_PAGE" && isEnabledOnCartPage){
                    let accountWidgetCartPageHTML = gkt.gktAccountWidget.f.prepareUI()
                    gkt.gktAccountWidget.f.insertIntoCartPageWrapper(settings, accountWidgetCartPageHTML)
                }
                gkt.utility.dynamicStylesForBranding();
            },
            f: {
                checkifAccountWidgetEnabled: function () {

                    let isEnabledOnCartPage = false;
                    //isEnabledOnCartPage is the only one that matters
                    if (gkt.settings.accountWidget.isEnabled){
                        isEnabledOnCartPage = true
                    }
                    return {isEnabledOnCartPage}
                    
                },
                prepareWidgetModal: function () {

                    let modalWrapper;
                    if(gkt.$(".gktAccountWidgetModal").length == 0){
                        modalWrapper = gkt.$("<div>").addClass("gktAccountWidgetModal")
                    }  else{
                        modalWrapper = gkt.$(".gktAccountWidgetModal")
                        modalWrapper.html(" ");
                    }

                    let modalContent = gkt.$("<div>").addClass("gktAccountWidgetModalContent")

                    let closeButtonSvg = '<svg width="16px" height="16px" enable-background="new 0 0 587.91 587.91" version="1.1" viewBox="0 0 587.91 587.91" xml:space="preserve" xmlns="http://www.w3.org/2000/svg"><path d="m86.451 501.46c26.937 26.936 58.315 48.088 93.265 62.871 36.207 15.314 74.642 23.078 114.24 23.078 39.596 0 78.032-7.764 114.24-23.078 34.949-14.783 66.328-35.936 93.266-62.871 26.936-26.938 48.09-58.316 62.871-93.266 15.314-36.207 23.08-74.643 23.08-114.24 0-39.598-7.766-78.033-23.08-114.24-14.781-34.95-35.936-66.328-62.871-93.265-26.938-26.937-58.316-48.09-93.266-62.872-36.208-15.315-74.643-23.079-114.24-23.079-39.597 0-78.032 7.765-114.24 23.079-34.95 14.782-66.328 35.936-93.265 62.872s-48.09 58.315-62.873 93.264c-15.313 36.207-23.078 74.642-23.078 114.24 0 39.596 7.765 78.031 23.079 114.24 14.782 34.95 35.936 66.328 62.872 93.266zm207.5-458.12c138.41 0 250.61 112.2 250.61 250.62 0 138.41-112.2 250.61-250.61 250.61s-250.62-112.2-250.62-250.61c0-138.41 112.2-250.62 250.62-250.62z"/><path d="m293.96 587.91c-39.667 0-78.167-7.778-114.43-23.117-35.01-14.809-66.442-35.998-93.423-62.979-26.983-26.984-48.172-58.417-62.979-93.425-15.341-36.269-23.119-74.77-23.119-114.43 0-39.663 7.778-78.165 23.118-114.44 14.807-35.008 35.997-66.44 62.979-93.423s58.415-48.172 93.423-62.979c36.27-15.34 74.771-23.118 114.43-23.118 39.666 0 78.167 7.778 114.43 23.119 35.009 14.807 66.441 35.997 93.425 62.979 26.984 26.985 48.173 58.417 62.979 93.423 15.341 36.27 23.119 74.771 23.119 114.43 0 39.662-7.778 78.163-23.119 114.43-14.806 35.007-35.994 66.439-62.979 93.425-26.982 26.98-58.415 48.169-93.425 62.979-36.266 15.338-74.767 23.116-114.43 23.116zm0-586.91c-39.529 0-77.898 7.751-114.04 23.039-34.889 14.757-66.215 35.874-93.106 62.765-26.892 26.892-48.009 58.217-62.766 93.105-15.288 36.147-23.039 74.517-23.039 114.05 0 39.527 7.751 77.898 23.039 114.04 14.757 34.889 35.874 66.214 62.766 93.106 26.89 26.889 58.215 48.006 93.106 62.765 36.142 15.287 74.512 23.038 114.04 23.038s77.901-7.751 114.04-23.039c34.89-14.758 66.216-35.875 93.106-62.764 26.893-26.895 48.009-58.22 62.764-93.106 15.289-36.146 23.041-74.516 23.041-114.04 0-39.529-7.752-77.899-23.041-114.04-14.754-34.887-35.871-66.212-62.764-93.106-26.892-26.891-58.218-48.008-93.106-62.765-36.144-15.289-74.514-23.04-114.04-23.04zm0 544.07c-67.075 0-130.14-26.12-177.56-73.549-47.429-47.43-73.55-110.49-73.55-177.56s26.12-130.14 73.55-177.56c47.429-47.429 110.49-73.55 177.56-73.55s130.14 26.121 177.56 73.55c47.43 47.43 73.55 110.49 73.55 177.56s-26.12 130.14-73.55 177.56c-47.429 47.429-110.49 73.549-177.56 73.549zm0-501.23c-66.808 0-129.62 26.017-176.86 73.257-47.24 47.241-73.257 110.05-73.257 176.86s26.017 129.62 73.257 176.86c47.24 47.24 110.05 73.257 176.86 73.257s129.62-26.017 176.86-73.257c47.24-47.239 73.257-110.05 73.257-176.86 0-66.808-26.017-129.62-73.257-176.86-47.241-47.241-110.05-73.257-176.86-73.257z"/><path d="m184.92 402.99c4.183 4.184 9.664 6.275 15.146 6.275s10.964-2.092 15.146-6.275l78.742-78.742 78.743 78.742c4.182 4.184 9.664 6.275 15.146 6.275s10.963-2.092 15.146-6.275c8.365-8.363 8.365-21.926 0-30.291l-78.744-78.742 78.742-78.743c8.365-8.365 8.365-21.928 0-30.292-8.363-8.365-21.926-8.365-30.291 0l-78.743 78.743-78.742-78.743c-8.365-8.365-21.928-8.365-30.292 0-8.365 8.365-8.365 21.927 0 30.292l78.743 78.743-78.743 78.742c-8.364 8.365-8.364 21.928 1e-3 30.291z"/><path d="m387.84 409.76c-5.856 0-11.36-2.28-15.5-6.422l-78.389-78.389-78.388 78.389c-4.14 4.142-9.645 6.422-15.5 6.422s-11.36-2.28-15.5-6.422c-4.14-4.14-6.42-9.644-6.42-15.498 0-5.855 2.28-11.359 6.42-15.5l78.389-78.389-78.389-78.389c-8.546-8.547-8.546-22.453 0-31 4.14-4.14 9.644-6.42 15.5-6.42 5.855 0 11.36 2.28 15.5 6.42l78.389 78.389 78.389-78.389c4.141-4.14 9.645-6.42 15.5-6.42 5.854 0 11.358 2.28 15.498 6.42 4.141 4.14 6.42 9.645 6.42 15.5s-2.279 11.36-6.42 15.5l-78.389 78.389 78.391 78.389c4.141 4.141 6.421 9.645 6.421 15.5 0 5.854-2.28 11.358-6.421 15.498-4.143 4.141-9.647 6.422-15.501 6.422zm-93.889-86.225 79.096 79.096c3.95 3.952 9.204 6.129 14.793 6.129 5.587 0 10.841-2.177 14.793-6.129 3.951-3.95 6.128-9.203 6.128-14.791s-2.177-10.842-6.128-14.793l-79.098-79.096 79.096-79.096c3.951-3.951 6.127-9.205 6.127-14.793s-2.176-10.841-6.127-14.792c-3.95-3.951-9.203-6.127-14.791-6.127s-10.842 2.176-14.793 6.127l-79.096 79.096-79.096-79.096c-3.951-3.951-9.205-6.127-14.793-6.127s-10.841 2.176-14.792 6.127c-8.156 8.157-8.156 21.428 0 29.585l79.096 79.096-79.096 79.096c-3.951 3.951-6.127 9.205-6.127 14.793s2.176 10.841 6.127 14.791c3.952 3.952 9.205 6.129 14.793 6.129s10.841-2.177 14.793-6.129l79.095-79.096z"/></svg>'
                    let modalCloseBtn = gkt.$("<div>").addClass("gktAccountWidgetModalClose").append(closeButtonSvg)


                    modalCloseBtn.on("click", gkt.gktAccountWidget.action.closeAccountWidgetModal)


                    let gktAccountWidgetRewardDetailsHTML  = gkt.gktAccountWidget.f.prepareRewardGiftCardDetails()

                    let gktAccountWidgetBuyWithRewardsButton = gkt.gktAccountWidget.f.prepareBuyWithRewardsButton()
                    
                    let gktAccountWidgetBody = gkt.$("<div>").addClass("gktAccountWidgetBody")

                    // let gktAccountWidgetTabs = two tabs - rewards and gift cards

                    let gktAccountWidgetBodyTabs = gkt.$("<div>").addClass("gktAccountWidgetBodyTabs")

                    let gktAccountWidgetBodyTabRewards = gkt.$("<div>").addClass("gktAccountWidgetBodyTabRewards").text(gkt.utility.renderLanguageValue(gkt.settings.languageData.accountWidget.rewardSection.rewardsTabText))

                    let gktAccountWidgetBodyTabGiftCards = gkt.$("<div>").addClass("gktAccountWidgetBodyTabGiftCards").html(gkt.utility.renderLanguageValue(gkt.settings.languageData.accountWidget.giftcardSection.giftCardsTabText))

                    gkt.gktAccountWidget.f.applySubTextColorCSS(gktAccountWidgetBodyTabs);


                    gktAccountWidgetBodyTabs.append(gktAccountWidgetBodyTabRewards)
                    gktAccountWidgetBodyTabs.append(gktAccountWidgetBodyTabGiftCards)

                    //gktAccountWidgetBodyTabs write css, add event listeners

                    gktAccountWidgetBodyTabRewards.on("click", gkt.gktAccountWidget.action.showRewardSection);
                    gktAccountWidgetBodyTabGiftCards.on("click", gkt.gktAccountWidget.action.showGiftCardSection);


                    gktAccountWidgetBody.append(gktAccountWidgetBodyTabs)

                    let gktAccountWidgetRewardSection = gkt.gktAccountWidget.f.prepareRewardSection()
                    let gktAccountWidgetGiftCardSection = gkt.gktAccountWidget.f.prepareGiftCardSection()

                    gktAccountWidgetBody.append(gktAccountWidgetRewardSection)
                    gktAccountWidgetBody.append(gktAccountWidgetGiftCardSection)

                    // gktAccountWidgetBody.append(gktAccountWidgetGiftCardSection)
                    // gktAccountWidgetRewardDetails.append(gktAccountWidgetBuyWithRewardsButton)
                    modalContent.append(gktAccountWidgetRewardDetailsHTML)
                    modalContent.append(gktAccountWidgetBuyWithRewardsButton)
                    modalContent.append(gktAccountWidgetBody)
                    modalWrapper.append(modalCloseBtn)
                    modalWrapper.append(modalContent)
                    modalWrapper.append(gkt.f.preparePoweredByBannerUI())
                    
                    return modalWrapper;
                },
                fetchLoggedInUserAndUpdateUI: async function () {
                    gkt.gktAccountWidget.state.isLoading = true;
                    
                    //this is to show loading spinner
                    gkt.gktAccountWidget.f.reRenderModalUI();

                    await gkt.f.getLoggedInCustomer();
                    gkt.gktAccountWidget.state.isLoading = false;
                    gkt.gktAccountWidget.f.reRenderModalUI();
                },
                prepareUI: function () {
                    //a div which is has properties of a button and on click, it opens a modal
                    let accountWidgetHTML = gkt.$("<div>");
                    let widgetActivator = gkt.$("<div>").addClass("gktAccountWidgetActivator");
                    gkt.gktAccountWidget.f.applyButtonCSS(widgetActivator);
                    widgetActivator.text(gkt.utility.renderLanguageValue(gkt.settings.languageData.accountWidget.generalSettings.accountWidgetDisplayText) || "Account Widget")
                    //css -> cursor: pointer
                    widgetActivator.css("cursor", "pointer");
                    widgetActivator.on("click", gkt.gktAccountWidget.action.openAccountWidgetModal)

                    let widgetModalWrapper = gkt.$("<div>").addClass("gktAccountWidgetModalWrapper")
                    widgetModalWrapper.append(gkt.gktAccountWidget.f.prepareWidgetModal())


                    accountWidgetHTML.append(widgetActivator)
                    console.log("prepare ui called")
                    gkt.$("body").append(widgetModalWrapper)


                    return accountWidgetHTML;
                },
                prepareRewardGiftCardDetails: function () {
                    let gktAccountWidgetRewardDetails;
                    if(gkt.$(".gktAccountWidgetRewardDetails").length > 0) {
                        gkt.$(".gktAccountWidgetRewardDetails").html(" ")
                        gktAccountWidgetRewardDetails = gkt.$(".gktAccountWidgetRewardDetails")
                    } else {
                         gktAccountWidgetRewardDetails  = gkt.$("<div>").addClass("gktAccountWidgetRewardDetails")
                    }
                    let generalSettingsLanguageData = gkt.settings.languageData.accountWidget.generalSettings;
                    let gktAccountWidgetRewardBalance = gkt.$("<div>").addClass("gktAccountWidgetRewardBalance").html( gkt.utility.renderLanguageValue(generalSettingsLanguageData.rewardBalanceLabel)|| "Reward Balance 1")

                    gkt.gktAccountWidget.f.applyMainTextColorCSS(gktAccountWidgetRewardBalance)
                    // now another span with value of the balance 
                    let gktAccountWidgetRewardBalanceValue = gkt.$("<span>").addClass("gktAccountWidgetRewardBalanceValue");

                    let rewardBalanceValue = `--`;
                    if(gkt.gktAccountWidget.state.isLoading == false){
                        if (gkt.settings.customer && gkt.settings.customer.rewardgiftcard && gkt.settings.customer.rewardgiftcard.balance) {
                            rewardBalanceValue = `${gkt.settings.merchantInfo.currencyInfo.code} ${gkt.settings.customer.rewardgiftcard.balance}`
                        }else {
                            rewardBalanceValue  =  `${gkt.settings.merchantInfo.currencyInfo.code} 0`
                        }
                    }


                    gkt.gktAccountWidget.f.applySubTextColorCSS(gktAccountWidgetRewardBalanceValue)

                    gktAccountWidgetRewardBalanceValue.text(rewardBalanceValue)

                    gktAccountWidgetRewardBalance.append(gktAccountWidgetRewardBalanceValue)

                    let gktRewardCode = gkt.$("<div>").addClass("gktRewardCode").text( gkt.utility.renderLanguageValue(generalSettingsLanguageData.rewardCodeLabel) || "Reward Code 1")

                    let gktAccountWidgetRewardCodeValue = gkt.$("<span>").addClass("gktAccountWidgetRewardCodeValue");

                    gkt.gktAccountWidget.f.applySubTextColorCSS(gktAccountWidgetRewardCodeValue)

                    
                    let rewardCodeValue  = "----";
                    
                    if(gkt.gktAccountWidget.state.isLoading == false &&  gkt.settings.customer && gkt.settings.customer.rewardgiftcard && gkt.settings.customer.rewardgiftcard.decryptCode){
                        rewardCodeValue = gkt.settings.customer.rewardgiftcard.decryptCode;
                    }

                    gkt.gktAccountWidget.f.applyMainTextColorCSS(gktRewardCode)

                    gktAccountWidgetRewardCodeValue.text(rewardCodeValue)

                    gktRewardCode.append(gktAccountWidgetRewardCodeValue)


                    // let gktAccountWidgetRewardCodeCopyBtn = gkt.$("<div>").addClass("gktAccountWidgetRewardCodeCopyBtn").html("Copy")
                    // gktAccountWidgetRewardCodeCopyBtn.on("click", gkt.gktAccountWidget.action.copyRewardCode)
                    // gktRewardCode.append(gktAccountWidgetRewardCodeCopyBtn)


                    gktAccountWidgetRewardDetails.append(gktAccountWidgetRewardBalance)
                    gktAccountWidgetRewardDetails.append(gktRewardCode)
                    return gktAccountWidgetRewardDetails;
                },
                prepareRewardSection: function () {

                    let gktAccountWidgetRewardSection;
                    if(gkt.$(".gktAccountWidgetRewardSection").length > 0){
                        gktAccountWidgetRewardSection = gkt.$(".gktAccountWidgetRewardSection");
                        gkt.$(".gktAccountWidgetRewardSection").html(" ")
                    }else{
                        gktAccountWidgetRewardSection = gkt.$("<div>").addClass("gktAccountWidgetRewardSection")
                    }

                    let gktAccountWidgetRewardSectionBody = gkt.$("<div>").addClass("gktAccountWidgetRewardSectionBody")

                    let rewardSectionLanguageData = gkt.settings.languageData.accountWidget.rewardSection;

                    let gktAccountWidgetRewardSectionBodyListHTML = gkt.$("<div>").addClass("gktAccountWidgetRewardSectionBodyList")
                    
                    if(gkt.gktAccountWidget.state.isLoading == false ){
                        let rewardTransactions =  gkt.settings.customer ? gkt.settings.customer.rewardgiftcardTransaction : [];
    
                        let gktAccountWidgetRewardSectionBodyListHeader = gkt.$("<div>").addClass("gktAccountWidgetRewardSectionBodyListHeader")
    
                        let gktAccountWidgetHeaderForCode =  gkt.$("<div>").addClass("gktAccountWidgetHeaderForCode").text(gkt.utility.renderLanguageValue(rewardSectionLanguageData.balanceHeaderLabel) || "Balance" )
                        let gktAccountWidgetHeaderForExpirationDate =  gkt.$("<div>").addClass("gktAccountWidgetHeaderForExpirationDate").text(gkt.utility.renderLanguageValue(rewardSectionLanguageData.expirationDateLabel)|| "Exp. Date1" )
                        let gktAccountWidgetHeaderForRemarks =  gkt.$("<div>").addClass("gktAccountWidgetHeaderForRemarks").text(gkt.utility.renderLanguageValue(rewardSectionLanguageData.remarksLabel) || "Remarks 1")
    
                        gktAccountWidgetRewardSectionBodyListHeader.append(gktAccountWidgetHeaderForCode)
                        gktAccountWidgetRewardSectionBodyListHeader.append(gktAccountWidgetHeaderForExpirationDate)
                        gktAccountWidgetRewardSectionBodyListHeader.append(gktAccountWidgetHeaderForRemarks)
    
                        
                        gktAccountWidgetRewardSectionBodyListHTML.append(gktAccountWidgetRewardSectionBodyListHeader)
                        


                        if(rewardTransactions.length > 0){
                            rewardTransactions.forEach(function (rewardTransaction) {
                                let expiryDateFormatted = ' - ';
                                if(rewardTransaction.expiryDate){
                                    expiryDateFormatted = rewardTransaction.expiryDate && rewardTransaction.expiryDate.length  > 10 ?  rewardTransaction.expiryDate.substring(0,10) : rewardTransaction.expiryDate;
                                }
                                let minusSymbol = rewardTransaction.action == "Remove"  ? " -" : " ";
                                let balanceFormatted = rewardTransaction.currency + minusSymbol + parseFloat(rewardTransaction.amount).toFixed(2);
                                let gktAccountWidgetRewardSectionBodyListItem = gkt.$("<div>").addClass("gktAccountWidgetRewardSectionBodyListItem")
                                let balanceFieldDiv = gkt.$("<div>").addClass("gktAccountWidgetRewardSectionBodyListItemBalance").html(balanceFormatted)
                                if(rewardTransaction.action == "Remove"){
                                    balanceFieldDiv.addClass("gktAccountWidgetRewardSectionBodyListItemBalanceRemove")
                                    expiryDateFormatted = " - "
                                }
                                gktAccountWidgetRewardSectionBodyListItem.append(balanceFieldDiv)
                                gktAccountWidgetRewardSectionBodyListItem.append(gkt.$("<div>").addClass("gktAccountWidgetRewardSectionBodyListItemExpirationDate").html(expiryDateFormatted || "-"))
                                gktAccountWidgetRewardSectionBodyListItem.append(gkt.$("<div>").addClass("gktAccountWidgetRewardSectionBodyListItemRemarks").html(rewardTransaction.note).text())
                                gktAccountWidgetRewardSectionBodyListHTML.append(gktAccountWidgetRewardSectionBodyListItem)
                                gkt.gktAccountWidget.f.applyMainTextColorCSS(gktAccountWidgetRewardSectionBodyListItem);
                            })
        
                            gkt.gktAccountWidget.f.applySubTextColorCSS(gktAccountWidgetRewardSectionBodyListHeader);
                        }else{
                            //handle empty state
                            let noRewardFound = gkt.gktAccountWidget.f.prepareEmptyStateForRewardSection();
                            gktAccountWidgetRewardSectionBodyListHTML.html(noRewardFound)
                        }
                        gktAccountWidgetRewardSectionBody.append(gktAccountWidgetRewardSectionBodyListHTML)
                    }else{
                        gktAccountWidgetRewardSectionBody.html(gkt.utility.displayLoadingSpinner())
                    }
                    
                    gktAccountWidgetRewardSection.append(gktAccountWidgetRewardSectionBody)

                    return gktAccountWidgetRewardSection

                },
                prepareGiftCardSection: function () {
                    let gktAccountWidgetGiftCardSection;

                    if(gkt.$(".gktAccountWidgetGiftCardSection").length > 0){
                        gktAccountWidgetGiftCardSection = gkt.$(".gktAccountWidgetGiftCardSection");
                        gkt.$(".gktAccountWidgetGiftCardSection").html(" ")
                    }else{
                        gktAccountWidgetGiftCardSection  = gkt.$("<div>").addClass("gktAccountWidgetGiftCardSection")
                    }

                    let giftcardSectionLanguageData = gkt.settings.languageData.accountWidget.giftcardSection;

                    let gktAccountWidgetGiftCardSectionBodyListHTML = gkt.$("<div>").addClass("gktAccountWidgetGiftCardSectionBodyList")
                    if(gkt.gktAccountWidget.state.isLoading == false){
                        const customerGiftCards = gkt.settings.customer.giftcards;

                        if(customerGiftCards.length > 0){
                            
                            gkt.gktAccountWidget.state.activeTabFn = gkt.gktAccountWidget.action.showGiftCardSection;
                            let gktAccountWidgetGiftCardSectionListHeader = gkt.$("<div>").addClass("gktAccountWidgetGiftCardSectionListHeader")
        
                            let gktAccountWidgetGiftCardSectionListHeaderForCode = gkt.$("<div>").addClass("gktAccountWidgetGiftCardSectionListHeaderForCode").html(gkt.utility.renderLanguageValue(giftcardSectionLanguageData.codeHeaderLabel)||"Code1" )
        
                            let gktAccountWidgetGiftCardSectionListHeaderForBalance = gkt.$("<div>").addClass("gktAccountWidgetGiftCardSectionListHeaderForBalance").html( gkt.utility.renderLanguageValue(giftcardSectionLanguageData.balanceHeaderLabel) || "Balance1")
        
                            let gktAccountWidgetGiftCardSectionListHeaderForExpirationDate = gkt.$("<div>").addClass("gktAccountWidgetGiftCardSectionListHeaderForExpirationDate").html(gkt.utility.renderLanguageValue(giftcardSectionLanguageData.expirationDateLabel)|| "Exp. Date1")
        
                            let gktAccountWidgetGiftCardSectionListHeaderForAction = gkt.$("<div>").addClass("gktAccountWidgetGiftCardSectionListHeaderForAction").html( gkt.utility.renderLanguageValue(giftcardSectionLanguageData.actionHeaderLabel)|| "Action1")
        
                            gktAccountWidgetGiftCardSectionListHeader.append(gktAccountWidgetGiftCardSectionListHeaderForCode)
                            gktAccountWidgetGiftCardSectionListHeader.append(gktAccountWidgetGiftCardSectionListHeaderForBalance)
                            gktAccountWidgetGiftCardSectionListHeader.append(gktAccountWidgetGiftCardSectionListHeaderForExpirationDate)
                            gktAccountWidgetGiftCardSectionListHeader.append(gktAccountWidgetGiftCardSectionListHeaderForAction)
        
                            gktAccountWidgetGiftCardSectionBodyListHTML.append(gktAccountWidgetGiftCardSectionListHeader)

                            customerGiftCards.forEach(function (customerGiftCard) {
                                let gktAccountWidgetGiftCardSectionBodyListItem = gkt.$("<div>").addClass("gktAccountWidgetGiftCardSectionBodyListItem")
                                let gktAccountWidgetGiftCardSectionBodyListItemForCode = gkt.$("<div>").addClass("gktAccountWidgetGiftCardSectionBodyListItemForCode").html("**" + customerGiftCard.code)
                                let gktAccountWidgetGiftCardSectionBodyListItemForBalance = gkt.$("<div>").addClass("gktAccountWidgetGiftCardSectionBodyListItemForBalance").html(`${gkt.settings.merchantInfo.currencyInfo.code} ${customerGiftCard.balance}`)
                                let gktAccountWidgetGiftCardSectionBodyListItemForExpirationDate = gkt.$("<div>").addClass("gktAccountWidgetGiftCardSectionBodyListItemForExpirationDate").html(customerGiftCard.expiresOn || "-" )
                                let gktAccountWidgetGiftCardSectionBodyListItemForAddToAccount = gkt.$("<div>").addClass("gktAccountWidgetGiftCardSectionBodyListItemForAddToAccount");
                               
                            

                                if(customerGiftCard.gktGiftcardId){
                                    let addToAccountButton = gkt.$("<div>").addClass("gktAccountWidgetGiftCardSectionBodyListItemForAddToAccountButton").html( gkt.utility.renderLanguageValue(giftcardSectionLanguageData.addToAccountButtonText)|| "Add To Account1");
                                    //attach data attribute to the button
                                    gktAccountWidgetGiftCardSectionBodyListItemForAddToAccount.append(addToAccountButton)
                                    gkt.gktAccountWidget.f.applyButtonCSS(addToAccountButton);

                                    gktAccountWidgetGiftCardSectionBodyListItemForAddToAccount.attr("data-giftcard-id", customerGiftCard.gktGiftcardId);
                                    gktAccountWidgetGiftCardSectionBodyListItemForAddToAccount.on("click", gkt.gktAccountWidget.action.addGiftCardToRewardCode)
                                }
                                gktAccountWidgetGiftCardSectionBodyListItem.append(gktAccountWidgetGiftCardSectionBodyListItemForCode)
                                gktAccountWidgetGiftCardSectionBodyListItem.append(gktAccountWidgetGiftCardSectionBodyListItemForBalance)
                                gktAccountWidgetGiftCardSectionBodyListItem.append(gktAccountWidgetGiftCardSectionBodyListItemForExpirationDate)
                                gktAccountWidgetGiftCardSectionBodyListItem.append(gktAccountWidgetGiftCardSectionBodyListItemForAddToAccount)
                                gktAccountWidgetGiftCardSectionBodyListHTML.append(gktAccountWidgetGiftCardSectionBodyListItem)
                            })

                            gkt.gktAccountWidget.f.applySubTextColorCSS(gktAccountWidgetGiftCardSectionListHeader);
                            gktAccountWidgetGiftCardSection.append(gktAccountWidgetGiftCardSectionBodyListHTML)

                        }else{
                            //empty state data
                            let noGiftcardFoundHTML = gkt.gktAccountWidget.f.prepareEmptyStateForGiftCardSection();
                            gktAccountWidgetGiftCardSectionBodyListHTML.html(noGiftcardFoundHTML)
                        }
                        gktAccountWidgetGiftCardSection.append(gktAccountWidgetGiftCardSectionBodyListHTML)
                    }else{
                        gktAccountWidgetGiftCardSection.html(gkt.utility.displayLoadingSpinner())
                    }
                    
                    return gktAccountWidgetGiftCardSection;

                },
                prepareEmptyStateForGiftCardSection: function () {
                    let giftcardSectionLanguageData = gkt.settings.languageData.accountWidget.giftcardSection;
                    let noGiftcardFoundHTML = gkt.$("<div>").addClass("gktAccountWidgetNoGiftCardDataFound")
                    let noDataFoundMainText = giftcardSectionLanguageData.noGiftcardFoundMainText.value || "No Gift Cards Found1";
                    let noDataFoundSubText = giftcardSectionLanguageData.noGiftcardFoundSubText.value || " ";
                    
                    let noGiftcardFoundMainTextHTML = gkt.$("<div>").addClass("gktAccountWidgetNoGiftCardDataFoundMainText").html(noDataFoundMainText)
                    let noGiftcardFoundSubTextHTML = gkt.$("<div>").addClass("gktAccountWidgetNoGiftCardDataFoundSubText").html(noDataFoundSubText)

                    gkt.gktAccountWidget.f.applyMainTextColorCSS(noGiftcardFoundMainTextHTML);
                    gkt.gktAccountWidget.f.applySubTextColorCSS(noGiftcardFoundSubTextHTML);
                    noGiftcardFoundHTML.append(noGiftcardFoundMainTextHTML).append("<br/>").append(noGiftcardFoundSubTextHTML);
                    return noGiftcardFoundHTML;
                },
                prepareEmptyStateForRewardSection: function () {
                    let rewardSectionLanguageData = gkt.settings.languageData.accountWidget.rewardSection;
                    let noRewardsFound = gkt.$("<div>").addClass("gktAccountWidgetNoRewardDataFound")
                    let noDataFoundMainText = rewardSectionLanguageData.noRewardFoundMainText.value || "No Rewards Found1";
                    let noDataFoundSubText = rewardSectionLanguageData.noRewardFoundSubText.value || " ";

                    let noRewardFoundMainTextHTML = gkt.$("<div>").addClass("gktAccountWidgetNoRewardDataFoundMainText").html(noDataFoundMainText)
                    let noRewardFoundSubTextHTML = gkt.$("<div>").addClass("gktAccountWidgetNoRewardDataFoundSubText").html(noDataFoundSubText)

                    gkt.gktAccountWidget.f.applyMainTextColorCSS(noRewardFoundMainTextHTML);
                    gkt.gktAccountWidget.f.applySubTextColorCSS(noRewardFoundSubTextHTML);
                    noRewardsFound.append(noRewardFoundMainTextHTML).append("<br/>").append(noRewardFoundSubTextHTML);
                    return noRewardsFound;
                },
                insertIntoCartPageWrapper: function (settings, accountWidgetCartPageHTML) {
                    gkt.elements.cartPageWrapperV2.find(".gktAccountWidgetWrapper").html(accountWidgetCartPageHTML) 
                },
                refreshRewardSection_and_RewardDetails: function () {
                    gkt.gktAccountWidget.f.prepareRewardSection()
                    gkt.gktAccountWidget.f.prepareRewardGiftCardDetails();
                    gkt.gktAccountWidget.f.prepareBuyWithRewardsButton();
                },
                applyMainTextColorCSS: function (element) {
                    if(gkt.settings.accountWidget && gkt.settings.accountWidget.customization && gkt.settings.accountWidget.customization.mainTextColor){
                        let mainTextColor  = gkt.settings.accountWidget.customization.mainTextColor;
                        element.css("color", mainTextColor)
                    }
                },
                applySubTextColorCSS: function (element) {
                    if(gkt.settings.accountWidget && gkt.settings.accountWidget.customization && gkt.settings.accountWidget.customization.subTextColor){
                        let subTextColor  = gkt.settings.accountWidget.customization.subTextColor;
                        element.css("color", subTextColor)
                    }
                },
                applyButtonCSS: function (element) {
                    if(gkt.settings.accountWidget && gkt.settings.accountWidget.customization && gkt.settings.accountWidget.customization.buttonColor){
                        let buttonColor  = gkt.settings.accountWidget.customization.buttonColor;
                        element.css("background-color", buttonColor)
                    } 
                   if(gkt.settings.accountWidget && gkt.settings.accountWidget.customization && gkt.settings.accountWidget.customization.buttonTextColor){
                        let buttonTextColor  = gkt.settings.accountWidget.customization.buttonTextColor;
                        element.css("color", buttonTextColor)
                    }
                },
                reRenderModalUI: function () {
                    gkt.gktAccountWidget.f.prepareWidgetModal();
                    if(gkt.gktAccountWidget.state.activeTabFn){
                        gkt.gktAccountWidget.state.activeTabFn();
                    }
                },
                prepareBuyWithRewardsButton: function () {

                    let generalSettingsLanguageData = gkt.settings.languageData.accountWidget.generalSettings;
                    let gktAccountWidgetBuyWithRewardsButton;
                    if(gkt.$(".gktAccountWidgetBuyWithRewardsButton").length > 0){
                        gktAccountWidgetBuyWithRewardsButton = gkt.$(".gktAccountWidgetBuyWithRewardsButton");
                        gktAccountWidgetBuyWithRewardsButton.html("");
                    }else{
                        gktAccountWidgetBuyWithRewardsButton = gkt.$("<div>").addClass("gktAccountWidgetBuyWithRewardsButton")
                    }
                    
                    gktAccountWidgetBuyWithRewardsButton.text(gkt.utility.renderLanguageValue(generalSettingsLanguageData.buyWithRewardsButtonText || "Buy with Rewards"))

                    if(gkt.settings.customer && gkt.settings.customer.rewardgiftcard && gkt.settings.customer.rewardgiftcard.balance > 0 && gkt.settings.customer.rewardgiftcard.decryptCode) {
                        gktAccountWidgetBuyWithRewardsButton.on("click", gkt.gktAccountWidget.action.buyWithRewardsClicked);
                        gktAccountWidgetBuyWithRewardsButton.removeClass("gktDisabled");
                    }else{
                        gktAccountWidgetBuyWithRewardsButton.addClass("gktDisabled");
                    }

                    gkt.gktAccountWidget.f.applyButtonCSS(gktAccountWidgetBuyWithRewardsButton);
                    return gktAccountWidgetBuyWithRewardsButton;
                },
                
            },
            action: {
                openAccountWidgetModal: function () {
                    gkt.gktAccountWidget.state.isLoading = true;
                    gkt.gktAccountWidget.f.fetchLoggedInUserAndUpdateUI();
                    // gkt.elements.cartPageWrapperV2.find(".gktAccountWidgetModalWrapper").css("display", "grid");
                    gkt.$(".gktAccountWidgetModalWrapper").css("display", "grid");
                    gkt.gktAccountWidget.action.showRewardSection();
                },
                closeAccountWidgetModal: function () {
                    // gkt.elements.cartPageWrapperV2.find(".gktAccountWidgetModalWrapper").css("display", "none")
                    gkt.$(".gktAccountWidgetModalWrapper").css("display", "none")
                },
                copyRewardCode: function () {
                    let rewardCode = gkt.$(this).parent().find(".gktRewardCode").html()
                    //use native javascript to copy to clipboard
                    let rewardCodeInput = gkt.$("<input>").val(rewardCode)
                    gkt.$("body").append(rewardCodeInput)
                    rewardCodeInput.select()
                    document.execCommand("copy")
                    rewardCodeInput.remove()
                    gkt.$(this).html("Copied")
                },
                showRewardSection: function () {
                    console.log("showRewardsTab");
                    gkt.$(".gktAccountWidgetRewardSection").css("display", "grid")
                    //hide other sections
                    gkt.$(".gktAccountWidgetGiftCardSection").css("display", "none")
                    gkt.$(".gktAccountWidgetBodyTabRewards").siblings().removeClass("gktAccountWidgetBodyTabActive")
                    gkt.$(".gktAccountWidgetBodyTabRewards").addClass("gktAccountWidgetBodyTabActive")
                    gkt.gktAccountWidget.state.activeTabFn = gkt.gktAccountWidget.action.showRewardSection;
                },
                showGiftCardSection: function () {
                    console.log("showGiftCardsTab")
                    gkt.$(".gktAccountWidgetGiftCardSection").css("display", "grid");
                    //hide other sections
                    gkt.$(".gktAccountWidgetRewardSection").css("display", "none")
                    // remove gktAccountWidgetBodyTabActive from other siblings
                    gkt.$(".gktAccountWidgetBodyTabGiftCards").siblings().removeClass("gktAccountWidgetBodyTabActive")
                    gkt.$(".gktAccountWidgetBodyTabGiftCards").addClass("gktAccountWidgetBodyTabActive")
                    gkt.gktAccountWidget.state.activeTabFn = gkt.gktAccountWidget.action.showGiftCardSection;

                },
                addGiftCardToRewardCode: async function () {
                   //read the giftcardID from the button data attribute
                    //read the attribute data-giftcard-id from the button or its parent
                    let giftCardId = gkt.$(this).attr("data-giftcard-id") || gkt.$(this).parent().attr("data-giftcard-id");
                    //get the reward code
                    console.log("giftCardId", giftCardId);

                    //when this button is clicked, we need to change this buttons text to loading... using renderLanguageValue
                    // and also disable this button for clicks
                    // by attaching gktDisabled class
                    gkt.$(this).children().text(gkt.utility.renderLanguageValue(gkt.settings.languageData.accountWidget.giftcardSection.addingCodeToRewardsText) || "adding...1")
                    gkt.$(this).addClass("gktDisabled")

                    //attachh the class to all other buttons in the list
                    gkt.$(this).parent().siblings().addClass("gktDisabled")

                    const addToReward =  await gkt.f.addGiftCardToRewardCodeAPI(giftCardId)


                    if(addToReward){
                        gkt.$(this).children().text(gkt.utility.renderLanguageValue(gkt.settings.languageData.accountWidget.giftcardSection.addedCodeToRewardText) || "Added1");
                        gkt.$(this).off("click")
                        //add opacity to the button of 0.6
                        gkt.$(this).css("opacity", "0.5")
                        gkt.$(this).children().css("border-radius", "2px")
                        gkt.gktAccountWidget.f.refreshRewardSection_and_RewardDetails()
                    }else{
                        gkt.$(this).children().text(gkt.utility.renderLanguageValue(gkt.settings.languageData.accountWidget.generalSettings.errorMessage) || "Error occured! Try again");
                        await new Promise(resolve => setTimeout(resolve, 1500));

                        gkt.$(this).on("click", gkt.gktAccountWidget.action.addGiftCardToRewardCode)
                         // setTimeout(function(){
                        gkt.$(this).children().text(gkt.utility.renderLanguageValue(gkt.settings.languageData.accountWidget.giftcardSection.addToAccountButtonText) || "Add To Account1");
                        // }, 100)
                    } 
                    
                    gkt.$(this).removeClass("gktDisabled")
                    gkt.$(this).parent().siblings().removeClass("gktDisabled")



                },
                buyWithRewardsClicked: async function () {
                            try{
                                gkt.$(this).addClass("gktDisabled")
                                gkt.$(this).html(gkt.utility.renderLanguageValue(gkt.settings.languageData.accountWidget.generalSettings.buyWithRewardsButtonLoadingText) || "Loading Checkout...1")
                                window.location.href = window.location.origin + "/cart/checkout?discount=" + gkt.settings.customer.rewardgiftcard.decryptCode
                            }catch(e){
                                console.log("error", e)
                                gkt.$(this).removeClass("gktDisabled")
                            }
                },

            },
        },
        gktMessage:{
            init: function (settings, parent) {
                gkt.gktMessage.initialize(settings, parent)
            },
            initialize: function (settings, parent) {
                let productHandle = gkt.f.getProductPageHandle(settings)
                let {isEnabledOnProductPage, isEnabledOnCartPage} = gkt.gktMessage.f.checkifGiftMessageEnabled(settings.giftMessage, productHandle, parent)

                if (parent == "PRODUCT_PAGE" && isEnabledOnProductPage){
                    // let oneClickUpsellProductPageHTML = gkt.gktOneClickUpsell.f.prepareUI(settings, variantListToBeShownOnProductPage, parent)
                    let giftMessageProductPageHTML = gkt.gktMessage.f.prepareUI(settings, productHandle, parent)
                    gkt.gktMessage.f.insertIntoProductPageWrapper(settings, giftMessageProductPageHTML)
                    gkt.utility.overWriteBuyNowBtn()
                    gkt.state.isOverWriteBuyNowBtnTriggered = true
                }

                if (parent == "CART_PAGE" && isEnabledOnCartPage && productHandle == "undefined"){
                    let giftMessageCartPageHTML = gkt.gktMessage.f.prepareUI(settings, productHandle, parent)
                    gkt.gktMessage.f.insertIntoCartPageWrapper(settings, giftMessageCartPageHTML)
                }

                
            },
            f: {
                checkifGiftMessageEnabled: function (giftMessage, currProductHandle, parent) {
                    let isEnabledOnProductPage = false
                    let isEnabledOnCartPage = false

                    if(!giftMessage.isGiftMessageEnabled){
                        return {isEnabledOnProductPage, isEnabledOnCartPage}
                    }

                    if (giftMessage.isVisibleOnCart) {
                        isEnabledOnCartPage = true
                    }

                    if (giftMessage.isVisibleOnAllProductPages) {
                        isEnabledOnProductPage = true
                    } else if (giftMessage.isVisibleOnSpecificProductPages &&
                            giftMessage.visibleOnSpecificProductPages &&
                            giftMessage.visibleOnSpecificProductPages.find(x => x.handle === currProductHandle)) {

                        isEnabledOnProductPage = true
                    }

                    return {isEnabledOnProductPage, isEnabledOnCartPage}
                },
                prepareUI:  function(settings, currProductHandle, parent){
                    let gktGiftMessageContainer = gkt.$("<div>").addClass('gktGiftMessageContainer')

                    let gktGiftMessageItemContainer = gkt.$("<div>").addClass('gktGiftMessageItemContainer')
                    let gktGiftMessageTextArea = gkt.$("<textarea>").addClass('gktGiftMessageTextArea')
                                                                    .attr("placeholder", settings.languageData.giftMessage.giftMessagePlaceholderText)
                                                                    

                    let gktGiftMessageItemContainerCheckboxLable = gkt.$("<label>").addClass('gktCustomCheckboxMsgContainer')
                    let inputCheckboxEle = gkt.$("<input>").addClass('gktGiftMessageInputCheckboxEle')
                        .attr("type", "checkbox")

                    if (gkt.utility.getNoteFromCart()) {
                        inputCheckboxEle.attr("checked", true)
                        let noteVal = gkt.utility.getNoteFromCart()
                        gktGiftMessageTextArea.val(noteVal)
                        // gktGiftMessageTextArea.css("display", "block")
                    }


                    gktGiftMessageItemContainerCheckboxLable.append(inputCheckboxEle)
                    gktGiftMessageItemContainerCheckboxLable.append(gkt.$("<span>").addClass("gktCustomMsgCheckboxCheckmark"))


                    //create a div with appendString 
                    let gktGiftMessageItemContainerLableText = gkt.$("<div>").addClass('gktGiftMessageItemContainerLabelText')
                                                                .html(settings.languageData.giftMessage.giftMessageHeadingLabel)
                    gktGiftMessageItemContainerCheckboxLable.append(gktGiftMessageItemContainerLableText)
                    gktGiftMessageItemContainer.append(gktGiftMessageItemContainerCheckboxLable)
                    gktGiftMessageContainer.append(gktGiftMessageItemContainer)


                    gktGiftMessageContainer.append(gktGiftMessageTextArea)

                    gkt.$(document).on("click", ".gktGiftMessageInputCheckboxEle",async (e)=>{
                        // window.eventCick = e
                        // let isChecked = gkt.$(e.currentTarget).find(".gktGiftMessageInputCheckboxEle").is(":checked")
                        // if(gkt.$(this).prop('checked') == true){
                        //     console.log("gktCustomCheckboxMsgContainer")
                        // }
                        if(!e.currentTarget.checked){
                            let updateCartData = {  }
                            updateCartData.note = null
                            updateCartData.attributes = {"gktGiftMessage": ""}
                            await gkt.utility.updateCart(updateCartData)
                            // if(gkt.$(".gktGiftMessageTextArea")){
                            //     gkt.$(".gktGiftMessageTextArea").val("")
                            // } 
                            
                        }else{
                            // if(gkt.$(".gktGiftMessageTextArea")){
                            //     let updateCartData = {  }
                            //     updateCartData.note = gkt.$(".gktGiftMessageTextArea").val()
                            //     await gkt.utility.updateCart(updateCartData)
                            // } 
                        }
                        gkt.$(document).find('.gktGiftMessageTextArea').css("display", "block")
                    })

                    gkt.$(document).on("keyup ", ".gktGiftMessageTextArea", ((event)=>{gkt.gktMessage.action.onGiftMessageTextAreakeyup(event,settings, parent)}))
                    
                    return gktGiftMessageContainer
                },
                insertIntoProductPageWrapper: function (settings, giftMessageHTML) {

                    gkt.elements.productPageWrapperV2.find(".gktGiftMessageWrapper").css("display", "block")

                    
                    gkt.elements.productPageWrapperV2.find(".gktGiftMessageWrapper").append(giftMessageHTML);

                },
                insertIntoCartPageWrapper: function (settings, giftMessageHTML) {

                    gkt.elements.cartPageWrapperV2.find(".gktCartGiftMessageWrapper").css("display", "block")

                    gkt.elements.cartPageWrapperV2.find(".gktCartGiftMessageWrapper").append(giftMessageHTML);

                },
            },
            action: {
                onGiftMessageTextAreakeyup: function (event,settings, parent){
                        let giftMessageValue = event.target.value
                        let updateCartData = {  }
                        updateCartData.note = giftMessageValue
                        updateCartData.attributes = {"gktGiftMessage": giftMessageValue}
                        if(gkt.state.timer){
                          clearTimeout(gkt.state.timer);
                          gkt.state.timer  = undefined
                        }
                        
                        gkt.state.timer = setTimeout(()=>{
                                           gkt.utility.updateCart(updateCartData).then((data) => {
                         									console.log("gift message updated")
                        								})
                                           },1000)

                        // gkt.utility.updateCart(updateCartData).then((data) => {
                        // //    console.log("gift message updated")
                        // })
                }
            }
            
        },
        gktVideoMsg: {
            init: function (settings, parent) {
                gkt.gktVideoMsg.initialize(settings, parent)
             
            },
            state: {
                elements: {},
                uploadedVideoId: null,
                recordingTimeMS: 60000,
                recordingTime: "1:00",
                recordedBlob: "",
                mediaRecorder: null,
                interval: undefined
            },
            initialize: function (settings, parent) {
                let productHandle = gkt.f.getProductPageHandle(settings)
                console.log("videoMesageInitialize");
                if(gkt.settings.videoMessage.isVideoMessagingEnabled){
                    gkt.gktVideoMsg.f.registerEvents()
                    gkt.gktVideoMsg.f.prepareVideoMsgPlayer()
                    // // let oneClickUpsellProductPageHTML = gkt.gktOneClickUpsell.f.prepareUI(settings, variantListToBeShownOnProductPage, parent)
                    // let giftMessageProductPageHTML = gkt.gktMessage.f.prepareUI(settings, productHandle, parent)
                    // gkt.gktMessage.f.insertIntoProductPageWrapper(settings, giftMessageProductPageHTML)
                    // gkt.utility.overWriteBuyNowBtn()
                    // gkt.state.isOverWriteBuyNowBtnTriggered = true
                }

            },
            f:{
                registerEvents: function () {
                    gkt.$(document).on("click", ".gktVideoMsgButton", gkt.gktVideoMsg.actions.gktVideoMsgButton)
                },
                prepareVideoMsgPlayer: function () {

                    let gktVideoMsgPlayerWrapper = gkt.$("<div>").addClass("gktVideoMsgPlayerWrapper");

                    let gktRecorder  =  gkt.$("<div>").addClass("gktRecorder")
                    console.log("prepareVideoMsgPlayer");
                    let gktRecorderCloseBtn  =  gkt.$("<button>").addClass("gktRecorderCloseBtn").on("click", function (e) { gkt.gktVideoMsg.f.clickClose(e) })
                    let gktRecorderCloseBtnImg =  gkt.$("<img>").attr("src", "https://db07ji0eqime4.cloudfront.net/public/videoMessage/close-video.svg")
                    gktRecorderCloseBtn.append(gktRecorderCloseBtnImg)


                    let gktRecord  =  gkt.$("<div>").addClass("gktRecord")
                    let gktVideoPlayer = gkt.$("<video>").addClass("gktVideoPlayer")
                                                        .attr("autoplay", true)
                                                        .prop("muted", true)
                                                        .attr("poster", "https://db07ji0eqime4.cloudfront.net/public/videoMessage/free-video.jpg")
                    let gktPermissionDenied = gkt.$("<div>").addClass("gktPermissionDenied gktVideoPlayerHide").text( gkt.utility.renderLanguageValue(gkt.settings.languageData.videoMessage.permissionDenied))
                    let gktVideoPlayerStatus = gkt.$("<div>").addClass("gktVideoPlayerStatus").html( gkt.utility.renderLanguageValue(gkt.settings.languageData.videoMessage.pressToRecord))



                    //let gktVideoPlayerEmptyPTag = gkt.$("<p>");

                    let gktVideoPlayerStartBtn = gkt.$("<button>").addClass("gktVideoPlayerStartBtn").on("click", function (e) { gkt.gktVideoMsg.f.clickStart(e) })
                    let gktVideoPlayerRedDot = gkt.$("<div><p></p></div>").addClass("gktVideoPlayerRedDot")
                    //gktVideoPlayerRedDot.append(gktVideoPlayerEmptyPTag);
                    gktVideoPlayerStartBtn.append(gktVideoPlayerRedDot)
                        
                    let gktVideoPlayerStopBtn = gkt.$("<button>").addClass("gktVideoPlayerStopBtn").on("click", function (e) { gkt.gktVideoMsg.f.clickStop(e) })
                    let gktVideoPlayerRedSquare = gkt.$("<div><p></p></div>").addClass("gktVideoPlayerRedSquare")
                    //gktVideoPlayerRedSquare.append(gktVideoPlayerEmptyPTag);
                    gktVideoPlayerStopBtn.append(gktVideoPlayerRedSquare)  
                     
                    
                    let gktVideoPlayerTimeLeft = gkt.$("<div>").addClass("gktVideoPlayerTimeLeft gktVideoPlayerHide") 
                    
                    gktRecord.append(gktVideoPlayer)
                    gktRecord.append(gktPermissionDenied)
                    gktRecord.append(gktVideoPlayerStatus)
                    gktRecord.append(gktVideoPlayerStartBtn)
                    gktRecord.append(gktVideoPlayerStopBtn)
                    gktRecord.append(gktVideoPlayerTimeLeft)
                    
                    
                    let gktRecorded  =  gkt.$("<div>").addClass("gktRecorded")

                    let gktVideoPlayerRecording = gkt.$("<video>").addClass("gktVideoPlayerRecording")
                                                        .attr("preload", "none")
                                                        .attr("poster", "https://db07ji0eqime4.cloudfront.net/public/videoMessage/free-video.jpg")
                    
                    let gktLoadingHeading = gkt.$("<div>").addClass("gktLoadingHeading gktVideoPlayerHide").html(gkt.utility.renderLanguageValue(gkt.settings.languageData.videoMessage.loading))
                    let gktUploadingVideoHeading = gkt.$("<div>").addClass("gktUploadingVideoHeading gktVideoPlayerHide").html( gkt.utility.renderLanguageValue(gkt.settings.languageData.videoMessage.uploading))
                    
                    let gktVideoPlayerControls = gkt.$("<div>").addClass("gktVideoPlayerControls")
              
                    let gktVideoPlayerControlsAcceptBtnDiv = gkt.$("<div>").addClass("gktVideoPlayerControlsAcceptBtnDiv");

                    let gktVideoPlayerControlsAcceptBtnDivInfo = gkt.$("<p>").addClass("gktVideoPlayerControlsBtnDivInfo").html(gkt.utility.renderLanguageValue(gkt.settings.languageData.videoMessage.startUploadText));

                    gktVideoPlayerControlsAcceptBtnDiv.append(gktVideoPlayerControlsAcceptBtnDivInfo);
                    
                    let gktVideoPlayerControlsAcceptBtn  =  gkt.$("<button>").addClass("gktVideoPlayerControlsAcceptBtn").on("click", function (e) { gkt.gktVideoMsg.f.clickAccept(e) })
                    let gktVideoPlayerControlsAcceptBtnImg =  gkt.$("<img>").addClass("gktVideoPlayerControlsAcceptBtnImg")
                                                                            .attr("src", "https://db07ji0eqime4.cloudfront.net/public/videoMessage/confirm-video.png")
                    gktVideoPlayerControlsAcceptBtn.append(gktVideoPlayerControlsAcceptBtnImg)
                    gktVideoPlayerControlsAcceptBtnDiv.append(gktVideoPlayerControlsAcceptBtn);

                   

                    let gktVideoPlayerControlsPlayBtnDiv = gkt.$("<div>").addClass("gktVideoPlayerControlsPlayBtnDiv");
                    
                    let gktVideoPlayerControlsPlayBtnDivInfo = gkt.$("<p>").addClass("gktVideoPlayerControlsBtnDivInfo").html(gkt.utility.renderLanguageValue(gkt.settings.languageData.videoMessage.playText));

                    gktVideoPlayerControlsPlayBtnDiv.append(gktVideoPlayerControlsPlayBtnDivInfo);

                    let gktVideoPlayerControlsPlayBtn  =  gkt.$("<button>").addClass("gktVideoPlayerControlsPlayBtn").on("click", function (e) { gkt.gktVideoMsg.f.clickPlay(e) })
                    let gktVideoPlayerControlsPlayBtnImg =  gkt.$("<img>").addClass("gktVideoPlayerControlsPlayBtnImg")
                                                                            .attr("src", "https://db07ji0eqime4.cloudfront.net/public/videoMessage/play-video.png")
                    gktVideoPlayerControlsPlayBtn.append(gktVideoPlayerControlsPlayBtnImg)
                    gktVideoPlayerControlsPlayBtnDiv.append(gktVideoPlayerControlsPlayBtn);


                    let gktVideoPlayerControlsReStartBtnDiv = gkt.$("<div>").addClass("gktVideoPlayerControlsReStartBtnDiv");

                    let gktVideoPlayerControlsReStartBtnDivInfo = gkt.$("<p>").addClass("gktVideoPlayerControlsBtnDivInfo").html(gkt.utility.renderLanguageValue(gkt.settings.languageData.videoMessage.reRecordVideoText));

                    gktVideoPlayerControlsReStartBtnDiv.append(gktVideoPlayerControlsReStartBtnDivInfo);

                    let gktVideoPlayerControlsReStartBtn  =  gkt.$("<button>").addClass("gktVideoPlayerControlsReStartBtn").on("click", function (e) { gkt.gktVideoMsg.f.clickReStart(e) })
                    let gktVideoPlayerControlsReStartBtnImg =  gkt.$("<img>").addClass("gktVideoPlayerControlsReStartBtnImg")
                                                                            .attr("src", "https://db07ji0eqime4.cloudfront.net/public/videoMessage/redo-video.png")
                    gktVideoPlayerControlsReStartBtn.append(gktVideoPlayerControlsReStartBtnImg)
                    gktVideoPlayerControlsReStartBtnDiv.append(gktVideoPlayerControlsReStartBtn);

                    gktVideoPlayerControls.append(gktVideoPlayerControlsReStartBtnDiv)
                    gktVideoPlayerControls.append(gktVideoPlayerControlsPlayBtnDiv)
                    gktVideoPlayerControls.append(gktVideoPlayerControlsAcceptBtnDiv)


                    gktRecorded.append(gktVideoPlayerRecording)
                    gktRecorded.append(gktLoadingHeading)
                    gktRecorded.append(gktUploadingVideoHeading)
                    gktRecorded.append(gktVideoPlayerControls)
                    
                    
                    gktRecorder.append(gktRecorderCloseBtn)
                    gktRecorder.append(gktRecord)
                    gktRecorder.append(gktRecorded)

                    if(gkt.$(".gktVideoMsgPlayerWrapper").length > 0){
                        gkt.$(".gktVideoMsgPlayerWrapper").remove();
                    }
                    if(gkt.$(".gktRecorder").length > 0){
                        gkt.$(".gktRecorder").remove();
                    }


                    gkt.$(".gktGiftCardMessageContent").append(gktVideoMsgPlayerWrapper);
                    gkt.$(".gktVideoMsgPlayerWrapper").append(gktRecorder)
                    gkt.gktVideoMsg.state.elements.gktRecorder = gktRecorder
                    gkt.gktVideoMsg.state.elements.gktRecord = gktRecord
                    gkt.gktVideoMsg.state.elements.gktRecorded = gktRecorded
                    gkt.gktVideoMsg.state.elements.gktVideoPlayer = gktVideoPlayer
                    gkt.gktVideoMsg.state.elements.gktVideoPlayerStartBtn = gktVideoPlayerStartBtn
                    gkt.gktVideoMsg.state.elements.gktVideoPlayerStopBtn = gktVideoPlayerStopBtn
                    gkt.gktVideoMsg.state.elements.gktVideoPlayerControlsReStartBtn = gktVideoPlayerControlsReStartBtn
                    gkt.gktVideoMsg.state.elements.gktVideoPlayerControlsPlayBtn = gktVideoPlayerControlsPlayBtn
                    gkt.gktVideoMsg.state.elements.gktVideoPlayerRecording = gktVideoPlayerRecording
                    gkt.gktVideoMsg.state.elements.gktRecorderCloseBtn = gktRecorderCloseBtn
                    gkt.gktVideoMsg.state.elements.gktVideoPlayerControlsAcceptBtn = gktVideoPlayerControlsAcceptBtn
                    gkt.gktVideoMsg.state.elements.gktVideoPlayerControls = gktVideoPlayerControls
                    gkt.gktVideoMsg.state.elements.gktLoadingHeading = gktLoadingHeading
                    gkt.gktVideoMsg.state.elements.gktVideoPlayerTimeLeft = gktVideoPlayerTimeLeft
                    gkt.gktVideoMsg.state.elements.gktVideoPlayerStatus = gktVideoPlayerStatus
                    gkt.gktVideoMsg.state.elements.gktPermissionDenied = gktPermissionDenied
                    gkt.gktVideoMsg.state.elements.gktUploadingVideoHeading = gktUploadingVideoHeading


                },
                createRecorder: function() {
                    gkt.gktVideoMsg.state.elements.gktRecorder.removeClass("gktVideoPlayerHide");
                    gkt.gktVideoMsg.state.elements.gktRecord.removeClass("gktVideoPlayerHide");
                    gkt.gktVideoMsg.state.elements.gktVideoPlayerStartBtn.removeClass("gktVideoPlayerHide");
                    gkt.gktVideoMsg.state.elements.gktVideoPlayerStatus.removeClass("gktVideoPlayerHide");
                    gkt.gktVideoMsg.state.elements.gktPermissionDenied.addClass("gktVideoPlayerHide");
                    gkt.gktVideoMsg.state.elements.gktRecorded.addClass("gktVideoPlayerHide");
                    gkt.gktVideoMsg.state.elements.gktVideoPlayerStopBtn.addClass("gktVideoPlayerHide");
                    gkt.gktVideoMsg.state.elements.gktVideoPlayerControls.addClass("gktVideoPlayerHide");
                    gkt.gktVideoMsg.state.elements.gktVideoPlayerTimeLeft.html(gkt.gktVideoMsg.state.recordingTime);
                    gkt.gktVideoMsg.state.elements.gktVideoPlayerStatus.html(gkt.utility.renderLanguageValue(gkt.settings.languageData.videoMessage.pressToRecord));
                    gkt.gktVideoMsg.state.recordingTime = "1:00";
                    gkt.gktVideoMsg.state.elements.gktUploadingVideoHeading.html(gkt.utility.renderLanguageValue(gkt.settings.languageData.videoMessage.uploading));
                    navigator.mediaDevices
                        .getUserMedia({
                        audio: true,
                        video: true,
                        })
                        .then((stream) => {
                            gkt.gktVideoMsg.state.elements.gktVideoPlayer[0].srcObject = stream;
                        })
                        .catch((error) => {
                            console.log("navigator", error)
                            console.log(error);
                            gkt.gktVideoMsg.state.elements.gktVideoPlayerStartBtn.addClass("gktVideoPlayerHide");
                            gkt.gktVideoMsg.state.elements.gktVideoPlayerStatus.addClass("gktVideoPlayerHide");
                            gkt.gktVideoMsg.state.elements.gktPermissionDenied.removeClass("gktVideoPlayerHide");
                        });
                },
                clickClose: function(e){
                    e.preventDefault();
                    gkt.$('.gktVideoMsgPlayerWrapper').css('display', 'none')
                    // gkt.gktVideoMsg.state.elements.gktRecorder.addClass("gktVideoPlayerHide");
                    if(gkt.gktVideoMsg.state.elements.gktVideoPlayer[0].srcObject){
                        gkt.gktVideoMsg.f.stopRecording(gkt.gktVideoMsg.state.elements.gktVideoPlayer[0].srcObject);
                    }
                    
                    gkt.gktVideoMsg.f.revokeObjectUrl();
                },
                stopRecording: function (stream) {
                    if(gkt.gktVideoMsg.state.interval) {
                        clearInterval(gkt.gktVideoMsg.state.interval);
                    }
                    if(gkt.gktVideoMsg.state.mediaRecorder && gkt.gktVideoMsg.state.mediaRecorder.state !== "inactive") {
                        gkt.gktVideoMsg.state.mediaRecorder.stop();
                    }
                    stream.getTracks().forEach(function (track) {
                        if (track.readyState == "live") {
                        console.log("hello - stop");
                        track.stop();
                        }
                    })
                },
                clearTracks: function (stream) {
                    stream.getTracks().forEach(function (track) {
                        if (track.readyState == "live") {
                        console.log("hello - stop");
                        track.stop();
                        }
                    })
                },
                revokeObjectUrl: function () {
                    URL.revokeObjectURL(gkt.gktVideoMsg.state.elements.gktVideoPlayerRecording.src);
                },
                clickStart: function async (e){
                    e.preventDefault();
                    gkt.gktVideoMsg.state.elements.gktVideoPlayerStartBtn.addClass("gktVideoPlayerHide");
                    gkt.gktVideoMsg.state.elements.gktRecorderCloseBtn.addClass("gktVideoPlayerHide");
                    gkt.gktVideoMsg.state.elements.gktVideoPlayerStopBtn.removeClass("gktVideoPlayerHide");
                    gkt.gktVideoMsg.state.elements.gktVideoPlayerTimeLeft.removeClass("gktVideoPlayerHide");
                    // the below field for the text 
                    //hide the toggle
                    //gktVideoMsgCheckboxWrapper

                    gkt.gktVideoMsg.f.clearTracks(gkt.gktVideoMsg.state.elements.gktVideoPlayer[0].srcObject);

                    gkt.gktVideoMsg.state.elements.gktVideoPlayerStatus.html(gkt.utility.renderLanguageValue(gkt.settings.languageData.videoMessage.recording));
                    navigator.mediaDevices
                        .getUserMedia({
                        video: true,
                        audio: true,
                        })
                        .then((stream) => {
                            console.log("1 - navigator");
                            gkt.gktVideoMsg.state.elements.gktVideoPlayer[0].srcObject = stream;
                            // gkt.gktVideoMsg.state.elements.gktVideoPlayer[0].captureStream = gkt.gktVideoMsg.state.elements.gktVideoPlayer[0].captureStream || gkt.gktVideoMsg.state.elements.gktVideoPlayer[0].mozCaptureStream ;
                            // use HTMLCanvasElement.captureStream() 
                            // gkt.gktVideoMsg.state.elements.gktVideoPlayer[0].captureStream = gkt.gktVideoMsg.state.elements.gktVideoPlayer[0].captureStream || gkt.gktVideoMsg.state.elements.gktVideoPlayer[0].mozCaptureStream ;
                            return new Promise((resolve) => (
                                gkt.gktVideoMsg.state.elements.gktVideoPlayer[0].onplaying = resolve
                            ));
                        })
                        .then(() => {
                            console.log("2 - onplaying");
                            return gkt.gktVideoMsg.f.startRecording(e, gkt.gktVideoMsg.state.elements.gktVideoPlayer[0].srcObject)
                        })
                        .then((recordedChunks) => {
                            console.log("3 - startRecording");
                            console.log(recordedChunks);

                            gkt.gktVideoMsg.state.elements.gktVideoPlayerControls.removeClass("gktVideoPlayerHide");
                            gkt.gktVideoMsg.state.elements.gktUploadingVideoHeading.addClass("gktVideoPlayerHide");
                            gkt.gktVideoMsg.state.elements.gktLoadingHeading.addClass("gktVideoPlayerHide");
                            gkt.gktVideoMsg.state.recordedBlob = new Blob(recordedChunks, { type: "video/mp4" });
                            gkt.gktVideoMsg.state.elements.gktVideoPlayerRecording.attr("src",URL.createObjectURL(gkt.gktVideoMsg.state.recordedBlob));
                            gkt.gktVideoMsg.state.elements.gktVideoPlayerRecording[0].load();
                        })
                        .catch(
                            (error) => 
                            console.log(error)
                        );
                },
                startRecording: function (e, stream) {
                    return new Promise ((resolve, reject) => {

                        let mediaRecorder = new MediaRecorder(stream);
                        gkt.gktVideoMsg.state.mediaRecorder = mediaRecorder;
                        let parts = [];
                        mediaRecorder.ondataavailable = (event) => {
                            parts.push(event.data);
                        };
                        mediaRecorder.start(1000);

                        mediaRecorder.onerror = (event) => reject(event.name); 

                        gkt.gktVideoMsg.f.wait(mediaRecorder);

                        mediaRecorder.onstop = function(){ 
                            console.log("mediaRecorder.onstop() func called");
                            resolve(parts);
                        }
                    })
                },
                clickStop: function (e) {
                    e.preventDefault();
                    gkt.gktVideoMsg.state.elements.gktRecord.addClass("gktVideoPlayerHide");
                    gkt.gktVideoMsg.state.elements.gktRecorded.removeClass("gktVideoPlayerHide");
                    gkt.gktVideoMsg.state.elements.gktVideoPlayerControls.addClass("gktVideoPlayerHide");
                    gkt.gktVideoMsg.state.elements.gktVideoPlayerTimeLeft.addClass("gktVideoPlayerHide");
                    gkt.gktVideoMsg.state.elements.gktVideoPlayerStatus.addClass("gktVideoPlayerHide");
                    gkt.gktVideoMsg.state.elements.gktRecorderCloseBtn.removeClass("gktVideoPlayerHide");
                    gkt.gktVideoMsg.state.elements.gktLoadingHeading.removeClass("gktVideoPlayerHide");
                    gkt.gktVideoMsg.f.stopRecording(gkt.gktVideoMsg.state.elements.gktVideoPlayer[0].srcObject);
                },
                covertBlobToBase64: async function (recordedBlob){

                    const reader = new FileReader();
                    reader.readAsDataURL(recordedBlob);

                    reader.onloadend = function () {
                    
                    var arrayBuffer = reader.result;

                    console.log(arrayBuffer);

                    var formData = new FormData();
                    // gkt.settings.SERVER_URL = "https://dev.api.giftkart.app"
                    formData.append("upload_data", recordedBlob, "video.txt");
                    formData.append("shopName", gkt.settings.merchantInfo.shopName);

                    console.time('Video upload Time');
                        fetch(gkt.settings.SERVER_URL+"/api/proxy/upload/video?shopName="+gkt.settings.merchantInfo.shopName,{
                            method: 'POST',
                            body: formData
                        }).then(
                            response => response.json() // if the response is a JSON object
                        ).then(
                            success => {
                                if(success.responseCode == 200){
                                    gkt.gktVideoMsg.state.uploadedVideoId = success.data.videoMsgId;
                                    console.log(success) // Handle the success response object
                                    console.timeEnd('Video upload Time');
                                    gkt.gktVideoMsg.state.elements.gktUploadingVideoHeading.html(gkt.utility.renderLanguageValue(gkt.settings.languageData.videoMessage.uploadConfirmation));
                                    gkt.$('.gktVideoMsgPlayerWrapper').css('display', 'grid')
                                    // Show feedback that it got uploaded
                                    // gkt.gktVideoMsg.state.elements.gktRecorder.addClass("gktVideoPlayerHide");
                                }
                                /*
                                * @Abhishek, the below if else condition is added to handle the
                                * condition where the api fails in sending over responseCode 200.
                                */ 
                                else{
                                    console.log(success) // Handle the error response object
                                    gkt.gktVideoMsg.state.elements.gktUploadingVideoHeading.html(gkt.utility.renderLanguageValue(gkt.settings.languageData.videoMessage.errorMessage));
                                }

                            }
                        ).catch(
                            error => {
                            console.log(error) // Handle the error response object
                            gkt.gktVideoMsg.state.elements.gktUploadingVideoHeading.html(gkt.utility.renderLanguageValue(gkt.settings.languageData.videoMessage.errorMessage));
                            }
                        );
                    }
                },
                clickAccept: function(e) {
                    e.preventDefault();
                    gkt.gktVideoMsg.state.elements.gktVideoPlayerControls.addClass("gktVideoPlayerHide")
                    gkt.gktVideoMsg.state.elements.gktUploadingVideoHeading.removeClass("gktVideoPlayerHide")
                    gkt.gktVideoMsg.f.covertBlobToBase64(gkt.gktVideoMsg.state.recordedBlob);
                },
                wait: function(mediaRecorder){
                    var now = new Date().getTime();
                    var deadline = new Date(now + gkt.gktVideoMsg.state.recordingTimeMS).getTime();
                    var interval = setInterval(() => {
                        now = new Date().getTime();
                        var t = deadline - now;
                        console.log(t);
                        var minutes = Math.floor((t % (1000 * 60 * 60)) / (1000 * 60));
                        var seconds = Math.floor((t % (1000 * 60)) / 1000);
                        if (t < 0) {
                            gkt.$('.gktVideoPlayerStopBtn').click();
                        }
                        gkt.gktVideoMsg.state.elements.gktVideoPlayerTimeLeft.html(minutes + " : " + seconds)
                    }, 1000);
                    gkt.gktVideoMsg.state.interval = interval;
                },
                clickReStart: function (e) {
                    e.preventDefault();
                    if(gkt.utility.isMobileView()){
                        // gktVideoMessageFileInput.click();
                        // find this class in the document and trigger a click
                        gkt.gktVideoMsg.f.revokeObjectUrl()
                        gkt.$('.gktVideoMessageFileInput').click();
                    }else{
                        gkt.gktVideoMsg.f.revokeObjectUrl()
                        gkt.gktVideoMsg.f.createRecorder();
                    }
                },
                clickPlay: async function(e) {
                    e.preventDefault();
                    try {
                        gkt.gktVideoMsg.state.elements.gktVideoPlayerControls.addClass("gktVideoPlayerHide");
                        gkt.gktVideoMsg.state.elements.gktVideoPlayerRecording[0].play();
                        let isEnded = new Promise((resolve, reject) => {
                            gkt.gktVideoMsg.state.elements.gktVideoPlayerRecording[0].onended = resolve;
                        });
                        await isEnded;
                        gkt.gktVideoMsg.state.elements.gktVideoPlayerRecording[0].load();
                        gkt.gktVideoMsg.state.elements.gktVideoPlayerControls.removeClass("gktVideoPlayerHide");
                        
                    } catch (error) {
                        console.log(error)
                    }                   
                },
                scrollToVideoDiv: function() {
                    // gkt.$(".gktGiftCardMessageContent").animate({scrollTop: 9999},1000);
                    gkt.$(".gktGiftCardMessageContent").animate({scrollTop: 200},2000, 'swing');
                },
            },
            actions: {
                gktVideoMsgButton: function(e){
                    e.preventDefault()
                    gkt.$('.gktVideoMsgPlayerWrapper').css('display', 'grid')
                    gkt.gktVideoMsg.f.createRecorder()
                    gkt.gktVideoMsg.f.scrollToVideoDiv()
                },
            },
            events: {

            },
            
        },
        gktFreeGiftCardPopup:{
            init:function(settings,parent){
                // gkt.gktFreeGiftCardPopup.initialize(settings,parent)
            },
            state:{
                gktFreeGiftcardName:null,
                gktFreeGiftcardEmail:null,
                gktFreeGiftcardMessage:null,
            },
            initialize: async function(settings,parent){
                // let productHandle = gkt.f.getProductPageHandle(settings)
                // gkt.gktFreeGiftCardPopup.f.showGiftCard(settings,parent)
            },
            f:{
                addFreeGiftcardProduct: async function(){
                    gkt.state.freeGiftcardVariantId = undefined
                    let currencySymbol = gkt.settings.merchantInfo?.currencyInfo?.symbol ? gkt.settings.merchantInfo.currencyInfo.symbol : ""
                    if(gkt.settings.rewardCampaigns.campaignData.freeGiftcardProduct[0]  && 
                        gkt.settings.rewardCampaigns.campaignData.freeGiftcardProduct[0].variants &&
                        gkt.settings.rewardCampaigns.campaignData.freeGiftcardProduct[0].variants.length > 0 && 
                        gkt.settings.rewardCampaigns.campaignData.freeGiftcardProduct[0].variants[0].variantId){
                        gkt.state.freeGiftcardVariantId = gkt.settings.rewardCampaigns.campaignData.freeGiftcardProduct[0].variants[0].variantId
                    }

                    if(gkt.state.freeGiftcardVariantId){
                        gkt.state.cartData = await gkt.utility.getCart()
                        let item  = gkt.utility.checkIfItemPresentInCart(gkt.state.freeGiftcardVariantId)
                        let cartValue = 0
                        if(gkt.state.cartData && gkt.state.cartData.total_price && ((gkt.state.cartData.total_price)/100)){
                            cartValue = (gkt.state.cartData.total_price)/100
                        }
                        let freeGiftcardValue =  gkt.gktFreeGiftCardPopup.f.getFreeGiftcardValue(cartValue, gkt.settings.rewardCampaigns.campaignData)
                        let isProductConditionMet = gkt.gktFreeGiftCardPopup.f.isFreeGiftcardProductConditionMet(gkt.state.cartData, gkt.settings.rewardCampaigns.campaignData);
                        // let isCustomerTagsConditionMet = gkt.gktFreeGiftCardPopup.f.isCustomerTagsConditionMet(gkt.settings.customer, gkt.settings.rewardCampaigns.campaignData);
                        
                        // if product conditions not met set free giftcard value to 0
                        if(!isProductConditionMet){
                            freeGiftcardValue = false
                        }

                        // remove giftcard from cart if freeGiftcardValue is zero
                        if(freeGiftcardValue == false && item){
                            await gkt.utility.updateCart({ updates: { [item.id]: 0 }})
                            return 
                        }

                        if(cartValue && freeGiftcardValue){
                            
                            let itemObj = {"items": [
                                                                {
                                                                    "id": gkt.state.freeGiftcardVariantId,
                                                                    "quantity": 1,
                                                                    "properties": {
                                                                        "Reward Value": freeGiftcardValue

                                                                    }
                                                                }
                                                            ]}
                            if(gkt.settings.rewardCampaigns.campaignData.giftcardMessageNote && gkt.settings.rewardCampaigns.campaignData.giftcardMessageNote != ""){
                                itemObj.items[0].properties["Message"] = gkt.settings.rewardCampaigns.campaignData.giftcardMessageNote
                            }
                            if(!item){
                                let resAddToCart = await gkt.utility.addToCartV2(itemObj)
                                
                            }else{
                                let rewardValue = freeGiftcardValue
                                if(item && item.properties && item.properties["Reward Value"] && item.properties["Reward Value"] != rewardValue){
                                    await gkt.utility.updateCart({ updates: { [item.id]: 0 }})
                                    let resAddToCart = await gkt.utility.addToCartV2(itemObj)

                                }
                            }
                        }
                    }

                },
                calculateFreeGiftCardValue: function(freeGiftcardValue, cartTotalPrice, freeGiftcardPopupData) {
                    try {
                        if(!freeGiftcardPopupData?.rewardMode ||  freeGiftcardPopupData.rewardMode == "FIXED") {
                            let currencySymbol = gkt.settings.merchantInfo?.currencyInfo?.symbol ? gkt.settings.merchantInfo.currencyInfo.symbol : ""
                            return currencySymbol + "" + freeGiftcardValue;
                        } else {
                            // let calculatedFreeGiftCardValue = (cartTotalPrice/100) * parseFloat(freeGiftcardValue);  // % of cartTotalWithoutDiscount;
                            // calculatedFreeGiftCardValue = parseFloat(parseFloat(calculatedFreeGiftCardValue).toFixed(2))
                            return freeGiftcardValue + "" + "%";
                        }
                    } catch(err) {
                        console.log(err);
                    }
                },
                getFreeGiftcardValue: function (cartTotalPrice, freeGiftcardPopupData){
                    try {
                        let resValue = false 
                        let activeCurrencyRate = gkt.utility.getActiveCurrencyRate(); 
                        if(freeGiftcardPopupData?.rules?.length && freeGiftcardPopupData?.rules?.length > 0){
                        for(let i = 0; i < freeGiftcardPopupData.rules.length; i++){
                            let rule = freeGiftcardPopupData.rules[i]
                            let cartValue = parseFloat(rule.cartValue * activeCurrencyRate).toFixed(2)
                            let freeGiftcardValue = rule.freeGiftcardValue
                            if(parseFloat(cartTotalPrice) >= parseFloat(cartValue) && parseFloat(freeGiftcardValue) > 0){
                                resValue = gkt.gktFreeGiftCardPopup.f.calculateFreeGiftCardValue(freeGiftcardValue, cartTotalPrice, freeGiftcardPopupData)
                            }
                        }
                        }
                        return resValue
                    } catch (error) {
                        console.log(error);
                        return false

                    }
                },
                isFreeGiftcardProductConditionMet: function (orderData, freeGiftcardPopupData) {
                    try {

                        let orderDataProducts =  orderData.items.map(item => item.product_id)
                        let validProductSet = new Set()
                        let excludeProductSet = new Set()
                        if(freeGiftcardPopupData?.products?.length && freeGiftcardPopupData?.products?.length > 0){
                            for(let i = 0; i < freeGiftcardPopupData.products.length; i++){
                                let product = freeGiftcardPopupData.products[i]
                                validProductSet.add(parseInt(product.productId))
                            }
                        }
                        if(freeGiftcardPopupData?.collectionsData?.length && freeGiftcardPopupData?.collectionsData?.length > 0){
                            for(let i = 0; i < freeGiftcardPopupData.collectionsData.length; i++){
                                let collectionProducts = freeGiftcardPopupData.collectionsData[i].productList
                                if(collectionProducts?.length && collectionProducts?.length > 0){
                                    collectionProducts.forEach(product => {
                                        validProductSet.add(product.productId)
                                    })
                                }
                            }
                        }

                        if(freeGiftcardPopupData?.excludeProducts?.length && freeGiftcardPopupData?.excludeProducts?.length > 0){
                            for(let i = 0; i < freeGiftcardPopupData.excludeProducts.length; i++){
                                let product = freeGiftcardPopupData.excludeProducts[i]
                                excludeProductSet.add(parseInt(product.productId))
                            }
                        }
                        
                        if(validProductSet.size == 0 && excludeProductSet.size == 0){
                            return true
                        }

                        
                        for(let i = 0; i < orderDataProducts.length; i++){
                            let product = orderDataProducts[i]
                            
                            if(excludeProductSet.has(product)){
                                return false
                            }
                            
                            if(validProductSet.has(product)){
                                return  true
                            }
                        }
                        
                        if(validProductSet.size == 0 ){
                            return true
                        }else{
                            return false
                        }

                    } catch (error) {
                        console.log(error);
                        return false
                    }
                },
                // isCustomerTagsConditionMet: function(customerData,freeGiftcardPopupData) {
                //     try{
                //         let excludeCustomerTags = freeGiftcardPopupData?.campaignData?.excludeCustomerTags || [];
                //         let currentCustomerTags = customerData?.tags?.split(","); //customer tags array
                
                //         for (let i = 0; i < currentCustomerTags.length; i++) {
                //         let currentTag = currentCustomerTags[i];
                //             if (currentTag.trim().length > 0 && excludeCustomerTags.includes(currentTag)) {
                //                 return false;
                //             }
                //         }
                //         return true;
                //     } catch(err) {
                //         console.log(err);
                //     }
                // },
                registerEvents: function(){
                    gkt.$(document).on("click", ".gktFreeGiftcardPopupModalClose", gkt.gktFreeGiftCardPopup.action.onModalClose)
                },
            },
            action:{
                onModalClose: function(){
                    gkt.$(".gktFreeGiftcardPopupModalWrapper").css("display", "none")
                },
            }
        },
        gktNotification:{
            init: function(){
                gkt.gktNotification.f.addNotificationWrapperToDOM()
                gkt.gktNotification.initialize()
            },
            state: {
                gktNotification: null,
                gktNotificationType: null,
                gktNotificationMessage: null,
                gktNotificationDuration: null,
                gktNotificationPosition: null,
            },
            initialize: function(){
                

                // notification examples
                // gkt.gktNotification.f.addNotificationItemType1("addNotificationItem-1","If your cart value is greater than 40$ you will get 10$ Free Gift Card.", 100)
                // gkt.gktNotification.f.addNotificationItemType1("addNotificationItem-2", "mayy")
                // gkt.gktNotification.f.addNotificationItemType1("addNotificationItem-3")
              
            },
            f: {
                addNotificationWrapperToDOM: function(){
                    if(gkt.$('.gktNotificationWrapper').length == 0){
                        let gktNotificationWrapper = gkt.$("<div>").addClass("gktNotificationWrapper")
                        gkt.$("body").append(gktNotificationWrapper)
                    }
                },

                addNotificationItemType1: function(itemHeading="",itemHeadingSubText="", closeAfterSec=10){
                    if(itemHeading == "" && itemHeadingSubText == "" ){
                        return
                    }
                    let gktNotificationWrapper = gkt.$(".gktNotificationWrapper")
                    let gktNotificationItem = gkt.$("<div>").addClass("gktNotificationItem")
                    let gktNotificationItemContent2 = gkt.$("<div>").addClass("gktNotificationItemContent2").html('<svg fill="#000000" xmlns="http://www.w3.org/2000/svg"  viewBox="0 0 32 32" width="24px" height="24px"><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 15 10 L 15 12 L 17 12 L 17 10 Z M 15 14 L 15 22 L 17 22 L 17 14 Z"/></svg>')
                    let gktNotificationItemContent3 = gkt.$("<div>").addClass("gktNotificationItemContent3")
                    let gktNotificationItemContent3Heading = gkt.$("<div>").addClass("gktNotificationItemContent3Heading").html(itemHeading)
                    let gktNotificationItemContent3SubText = gkt.$("<div>").addClass("gktNotificationItemContent3SubText").html(itemHeadingSubText)
                    gktNotificationItemContent3.append(gktNotificationItemContent3Heading)
                    gktNotificationItemContent3.append(gktNotificationItemContent3SubText)
                    let gktNotificationItemContent4 = gkt.$("<div>").addClass("gktNotificationItemContent4").html('<?xml version="1.0" encoding="utf-8"?><svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="12px" height="12px" viewBox="0 0 122.878 122.88" enable-background="new 0 0 122.878 122.88" xml:space="preserve"><g><path fill=#575050 d="M1.426,8.313c-1.901-1.901-1.901-4.984,0-6.886c1.901-1.902,4.984-1.902,6.886,0l53.127,53.127l53.127-53.127 c1.901-1.902,4.984-1.902,6.887,0c1.901,1.901,1.901,4.985,0,6.886L68.324,61.439l53.128,53.128c1.901,1.901,1.901,4.984,0,6.886 c-1.902,1.902-4.985,1.902-6.887,0L61.438,68.326L8.312,121.453c-1.901,1.902-4.984,1.902-6.886,0 c-1.901-1.901-1.901-4.984,0-6.886l53.127-53.128L1.426,8.313L1.426,8.313z"/></g></svg>')
                    gktNotificationItemContent4.on("click", function (event) {
                        gktNotificationItem.css("transform","translateX(300px)")
                        setTimeout(()=>{gktNotificationItem.remove()},1000)
                    })
                    
                    setTimeout(function(){
                        console.log("gktNotificationItem", gktNotificationItem)
                        if(gktNotificationItem){
                            gktNotificationItem.css("transform","translateX(300px)")
                            setTimeout(()=>{gktNotificationItem.remove()},1000)
                        }
                    },closeAfterSec*1000)
                    
                    gktNotificationItem.append(gktNotificationItemContent2)
                    gktNotificationItem.append(gktNotificationItemContent3)
                    gktNotificationItem.append(gktNotificationItemContent4)
                    
                    gktNotificationWrapper.css("display", "block")
                    gktNotificationWrapper.append(gktNotificationItem)

                    //slide in the notification
                    setTimeout(()=>{
                        gktNotificationItem.css("transform","translateX(0px)")
                    },100)

                    return gktNotificationItem
                },
                removeNotificationFromDOM: function(){
                    setTimeout(()=>{
                        gkt.$(".gktNotification").remove()
                    }, gkt.gktNotification.state.gktNotificationDuration)
                }
            }
        }
    }

    window.gkt = gkt;
    /*
    * start the program 
    */
    gktUtils.f.loadJquery(function (jqueryRefObj) {
        gkt.$ = jqueryRefObj;

        gkt.$(document).ready(function () {
            console.log("document ready", gkt.$);
            gkt.f.initialize(gkt.$);
        })
    })





</script>
<div id="shopify-block-AWFNNenlBR2N5d2ZuU__12657775114333427046" class="shopify-block shopify-app-block"><script>
  
    window.essentialCountdownTimerConfigs = [];
  
  const essentialCollectionId = null;
  window.essentialCountdownTimerMeta = {
    productData: null,
    productCollections: null,
  };
  window.essentialProductId = null
  window.essentialProductTags = null
  window.essentialCollectionId = null
  window.essentialCountdownTimerPageTemplate = "index"
  
</script>



<style>
  .essential-countdown-timer-img-reset {
    /* wipe common globals */
    box-sizing: content-box;
    display: inline;
    width: auto;
    height: auto;
    max-width: none;
    max-height: none;
    margin: 0;
    padding: 0;
    border: none;
    border-radius: 0;
    box-shadow: none;
    background: none;
    object-fit: fill;
    object-position: 50% 50%;
    filter: none;
    opacity: 1;
    position: static;
    float: none;
    clear: none;
    vertical-align: baseline;
    transform: none;
    transition: none;
    animation: none;
    /* typography sometimes leaks via universal selectors */
    font: inherit;
    line-height: normal;
    letter-spacing: normal;
    text-align: start;
  }
</style>


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