PageSourceSearch

https://spring-beautiful.myshopify.com/cart

html spring-beautiful.myshopify.com collected 2026-10-10 02:38:45 UTC 339,986 bytes, 4,443 lines download raw bytes

1<!doctype html>
2<html class="no-js" lang="en">
3<head>
4  <!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 64 bytes, lines 4-5
4
5<script async src="https://www.googletagmanager.com/gtag/js?id=
5G-20DTR3EY60
vendor: 12 bytes, line 5
5"></script>
6<script>
7  
vendor: 134 bytes, lines 7-11
7window.dataLayer = window.dataLayer || [];
8  function gtag(){dataLayer.push(arguments);}
9  gtag('js', new Date());
10
11  gtag('config', '
11G-20DTR3EY60
vendor: 4 bytes, line 11
11');
12</script>
12
13  
14  
15  <meta charset="utf-8">
16  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
17  <meta name="viewport" content="width=device-width,initial-scale=1">
18  <meta name="theme-color" content="#557b97">
19  <link rel="canonical" href="https://spring-beautiful.myshopify.com/cart"><title>Your Shopping Cart
20&ndash; Kawaii Presenter</title><!-- /snippets/social-meta-tags.liquid -->
21
22
23
24
25<meta property="og:site_name" content="Kawaii Presenter">
26<meta property="og:url" content="https://spring-beautiful.myshopify.com/cart">
27<meta property="og:title" content="Your Shopping Cart">
28<meta property="og:type" content="website">
29<meta property="og:description" content="Being born in Japan and traveled to over 45 countries, I have seen many beautiful handcrafts in different parts of the world. From my personal experience, I know that using favorite handmade coffee cup or using a handwoven scarfs or giving loved ones such crafts can make you and your loved ones life a little richer. ">
30
31<meta property="og:image" content="http://spring-beautiful.myshopify.com/cdn/shop/files/1_1200x1200.png?v=1685889299">
32<meta property="og:image:secure_url" content="https://spring-beautiful.myshopify.com/cdn/shop/files/1_1200x1200.png?v=1685889299">
33
34
35<meta name="twitter:card" content="summary_large_image">
36<meta name="twitter:title" content="Your Shopping Cart">
37<meta name="twitter:description" content="Being born in Japan and traveled to over 45 countries, I have seen many beautiful handcrafts in different parts of the world. From my personal experience, I know that using favorite handmade coffee cup or using a handwoven scarfs or giving loved ones such crafts can make you and your loved ones life a little richer. ">
38
39
40  <link href="//spring-beautiful.myshopify.com/cdn/shop/t/1/assets/theme.scss.css?v=102791964601954677891775823713" rel="stylesheet" type="text/css" media="all" />
41
42  
42<script>
43    var theme = {
44      breakpoints: {
45        medium: 750,
46        large: 990,
47        widescreen: 1400
48      },
49      strings: {
50        addToCart: "Add to cart",
51        soldOut: "Sold out",
52        unavailable: "Unavailable",
53        regularPrice: "Regular price",
54        salePrice: "Sale price",
55        sale: "Sale",
56        showMore: "Show More",
57        showLess: "Show Less",
58        addressError: "Error looking up that address",
59        addressNoResults: "No results for that address",
60        addressQueryLimit: "You have exceeded the Google API usage limit. Consider upgrading to a \u003ca href=\"https:\/\/developers.google.com\/maps\/premium\/usage-limits\"\u003ePremium Plan\u003c\/a\u003e.",
61        authError: "There was a problem authenticating your Google Maps account.",
62        newWindow: "Opens in a new window.",
63        external: "Opens external website.",
64        newWindowExternal: "Opens external website in a new window.",
65        removeLabel: "Remove [product]",
66        update: "Update",
67        quantity: "Quantity",
68        discountedTotal: "Discounted total",
69        regularTotal: "Regular total",
70        priceColumn: "See Price column for discount details.",
71        quantityMinimumMessage: "Quantity must be 1 or more",
72        cartError: "There was an error while updating your cart. Please try again.",
73        removedItemMessage: "Removed \u003cspan class=\"cart__removed-product-details\"\u003e([quantity]) [link]\u003c\/span\u003e from your cart.",
74        unitPrice: "Unit price",
75        unitPriceSeparator: "per",
76        oneCartCount: "1 item",
77        otherCartCount: "[count] items",
78        quantityLabel: "Quantity: [count]"
79      },
80      moneyFormat: "${{amount}}",
81      moneyFormatWithCurrency: "${{amount}} USD"
82    }
83
84    document.documentElement.className = document.documentElement.className.replace('no-js', 'js');
85  </script>
85<script src="//spring-beautiful.myshopify.com/cdn/shop/t/1/assets/lazysizes.js?v=94224023136283657951576435306" async="async"></script>
85
86  
86<script src="//spring-beautiful.myshopify.com/cdn/shop/t/1/assets/vendor.js?v=12001839194546984181576435308" defer="defer"></script>
86
87  
87<script src="//spring-beautiful.myshopify.com/cdn/shop/t/1/assets/theme.js?v=3190015394565850101576435307" defer="defer"></script>
87
88
89  
89<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
89<meta name="facebook-domain-verification" content="e5053vl3itu85ooamt8fh20kd12z32">
90<meta name="google-site-verification" content="jGBjRdD18jgb_6SmCWlA9Z-de0rpEi1JikHGM8Eds5Y">
91<meta name="facebook-domain-verification" content="e5053vl3itu85ooamt8fh20kd12z32">
92<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/27649998986/digital_wallets/dialog">
93<meta id="in-context-paypal-metadata" data-shop-id="27649998986" data-venmo-supported="false" data-environment="production" data-locale="en_US" data-paypal-v4="true" data-currency="USD">
94<link rel="ucp" href="/.well-known/ucp" version="2026-08-25"><link rel="alternate" hreflang="x-default" href="https://www.kawaii-presenter.com/cart">
95<link rel="alternate" hreflang="en" href="https://www.kawaii-presenter.com/cart">
96<link rel="alternate" hreflang="de" href="https://www.kawaii-presenter.com/de/cart">
97<link rel="alternate" hreflang="en-AD" href="https://spring-beautiful.myshopify.com/cart">
98<link rel="alternate" hreflang="ja-AD" href="https://spring-beautiful.myshopify.com/ja/cart">
99<link rel="alternate" hreflang="en-AL" href="https://spring-beautiful.myshopify.com/cart">
100<link rel="alternate" hreflang="ja-AL" href="https://spring-beautiful.myshopify.com/ja/cart">
101<link rel="alternate" hreflang="en-AM" href="https://spring-beautiful.myshopify.com/cart">
102<link rel="alternate" hreflang="ja-AM" href="https://spring-beautiful.myshopify.com/ja/cart">
103<link rel="alternate" hreflang="en-AU" href="https://spring-beautiful.myshopify.com/cart">
104<link rel="alternate" hreflang="ja-AU" href="https://spring-beautiful.myshopify.com/ja/cart">
105<link rel="alternate" hreflang="en-AX" href="https://spring-beautiful.myshopify.com/cart">
106<link rel="alternate" hreflang="ja-AX" href="https://spring-beautiful.myshopify.com/ja/cart">
107<link rel="alternate" hreflang="en-AZ" href="https://spring-beautiful.myshopify.com/cart">
108<link rel="alternate" hreflang="ja-AZ" href="https://spring-beautiful.myshopify.com/ja/cart">
109<link rel="alternate" hreflang="en-BA" href="https://www.kawaii-presenter.com/en-es/cart">
110<link rel="alternate" hreflang="fr-BA" href="https://www.kawaii-presenter.com/fr-es/cart">
111<link rel="alternate" hreflang="de-BA" href="https://www.kawaii-presenter.com/de-es/cart">
112<link rel="alternate" hreflang="es-BA" href="https://www.kawaii-presenter.com/es-es/cart">
113<link rel="alternate" hreflang="sv-BA" href="https://www.kawaii-presenter.com/sv-es/cart">
114<link rel="alternate" hreflang="it-BA" href="https://www.kawaii-presenter.com/it-es/cart">
115<link rel="alternate" hreflang="is-BA" href="https://www.kawaii-presenter.com/is-es/cart">
116<link rel="alternate" hreflang="nl-BA" href="https://www.kawaii-presenter.com/nl-es/cart">
117<link rel="alternate" hreflang="el-BA" href="https://www.kawaii-presenter.com/el-es/cart">
118<link rel="alternate" hreflang="da-BA" href="https://www.kawaii-presenter.com/da-es/cart">
119<link rel="alternate" hreflang="no-BA" href="https://www.kawaii-presenter.com/no-es/cart">
120<link rel="alternate" hreflang="fi-BA" href="https://www.kawaii-presenter.com/fi-es/cart">
121<link rel="alternate" hreflang="en-BY" href="https://spring-beautiful.myshopify.com/cart">
122<link rel="alternate" hreflang="ja-BY" href="https://spring-beautiful.myshopify.com/ja/cart">
123<link rel="alternate" hreflang="en-CA" href="https://spring-beautiful.myshopify.com/cart">
124<link rel="alternate" hreflang="ja-CA" href="https://spring-beautiful.myshopify.com/ja/cart">
125<link rel="alternate" hreflang="en-CH" href="https://spring-beautiful.myshopify.com/cart">
126<link rel="alternate" hreflang="ja-CH" href="https://spring-beautiful.myshopify.com/ja/cart">
127<link rel="alternate" hreflang="en-DZ" href="https://spring-beautiful.myshopify.com/cart">
128<link rel="alternate" hreflang="ja-DZ" href="https://spring-beautiful.myshopify.com/ja/cart">
129<link rel="alternate" hreflang="en-EG" href="https://spring-beautiful.myshopify.com/cart">
130<link rel="alternate" hreflang="ja-EG" href="https://spring-beautiful.myshopify.com/ja/cart">
131<link rel="alternate" hreflang="en-FO" href="https://spring-beautiful.myshopify.com/cart">
132<link rel="alternate" hreflang="ja-FO" href="https://spring-beautiful.myshopify.com/ja/cart">
133<link rel="alternate" hreflang="en-GB" href="https://spring-beautiful.myshopify.com/cart">
134<link rel="alternate" hreflang="ja-GB" href="https://spring-beautiful.myshopify.com/ja/cart">
135<link rel="alternate" hreflang="en-GE" href="https://spring-beautiful.myshopify.com/cart">
136<link rel="alternate" hreflang="ja-GE" href="https://spring-beautiful.myshopify.com/ja/cart">
137<link rel="alternate" hreflang="en-GI" href="https://spring-beautiful.myshopify.com/cart">
138<link rel="alternate" hreflang="ja-GI" href="https://spring-beautiful.myshopify.com/ja/cart">
139<link rel="alternate" hreflang="en-GL" href="https://spring-beautiful.myshopify.com/cart">
140<link rel="alternate" hreflang="ja-GL" href="https://spring-beautiful.myshopify.com/ja/cart">
141<link rel="alternate" hreflang="en-ID" href="https://spring-beautiful.myshopify.com/cart">
142<link rel="alternate" hreflang="ja-ID" href="https://spring-beautiful.myshopify.com/ja/cart">
143<link rel="alternate" hreflang="en-IL" href="https://spring-beautiful.myshopify.com/cart">
144<link rel="alternate" hreflang="ja-IL" href="https://spring-beautiful.myshopify.com/ja/cart">
145<link rel="alternate" hreflang="en-IN" href="https://spring-beautiful.myshopify.com/cart">
146<link rel="alternate" hreflang="ja-IN" href="https://spring-beautiful.myshopify.com/ja/cart">
147<link rel="alternate" hreflang="en-JO" href="https://spring-beautiful.myshopify.com/cart">
148<link rel="alternate" hreflang="ja-JO" href="https://spring-beautiful.myshopify.com/ja/cart">
149<link rel="alternate" hreflang="en-JP" href="https://spring-beautiful.myshopify.com/cart">
150<link rel="alternate" hreflang="ja-JP" href="https://spring-beautiful.myshopify.com/ja/cart">
151<link rel="alternate" hreflang="en-KH" href="https://spring-beautiful.myshopify.com/cart">
152<link rel="alternate" hreflang="ja-KH" href="https://spring-beautiful.myshopify.com/ja/cart">
153<link rel="alternate" hreflang="en-KR" href="https://spring-beautiful.myshopify.com/cart">
154<link rel="alternate" hreflang="ja-KR" href="https://spring-beautiful.myshopify.com/ja/cart">
155<link rel="alternate" hreflang="en-KZ" href="https://spring-beautiful.myshopify.com/cart">
156<link rel="alternate" hreflang="ja-KZ" href="https://spring-beautiful.myshopify.com/ja/cart">
157<link rel="alternate" hreflang="en-LA" href="https://spring-beautiful.myshopify.com/cart">
158<link rel="alternate" hreflang="ja-LA" href="https://spring-beautiful.myshopify.com/ja/cart">
159<link rel="alternate" hreflang="en-LB" href="https://spring-beautiful.myshopify.com/cart">
160<link rel="alternate" hreflang="ja-LB" href="https://spring-beautiful.myshopify.com/ja/cart">
161<link rel="alternate" hreflang="en-LI" href="https://www.kawaii-presenter.com/en-es/cart">
162<link rel="alternate" hreflang="fr-LI" href="https://www.kawaii-presenter.com/fr-es/cart">
163<link rel="alternate" hreflang="de-LI" href="https://www.kawaii-presenter.com/de-es/cart">
164<link rel="alternate" hreflang="es-LI" href="https://www.kawaii-presenter.com/es-es/cart">
165<link rel="alternate" hreflang="sv-LI" href="https://www.kawaii-presenter.com/sv-es/cart">
166<link rel="alternate" hreflang="it-LI" href="https://www.kawaii-presenter.com/it-es/cart">
167<link rel="alternate" hreflang="is-LI" href="https://www.kawaii-presenter.com/is-es/cart">
168<link rel="alternate" hreflang="nl-LI" href="https://www.kawaii-presenter.com/nl-es/cart">
169<link rel="alternate" hreflang="el-LI" href="https://www.kawaii-presenter.com/el-es/cart">
170<link rel="alternate" hreflang="da-LI" href="https://www.kawaii-presenter.com/da-es/cart">
171<link rel="alternate" hreflang="no-LI" href="https://www.kawaii-presenter.com/no-es/cart">
172<link rel="alternate" hreflang="fi-LI" href="https://www.kawaii-presenter.com/fi-es/cart">
173<link rel="alternate" hreflang="en-LK" href="https://spring-beautiful.myshopify.com/cart">
174<link rel="alternate" hreflang="ja-LK" href="https://spring-beautiful.myshopify.com/ja/cart">
175<link rel="alternate" hreflang="en-LY" href="https://spring-beautiful.myshopify.com/cart">
176<link rel="alternate" hreflang="ja-LY" href="https://spring-beautiful.myshopify.com/ja/cart">
177<link rel="alternate" hreflang="en-MA" href="https://spring-beautiful.myshopify.com/cart">
178<link rel="alternate" hreflang="ja-MA" href="https://spring-beautiful.myshopify.com/ja/cart">
179<link rel="alternate" hreflang="en-MC" href="https://www.kawaii-presenter.com/en-es/cart">
180<link rel="alternate" hreflang="fr-MC" href="https://www.kawaii-presenter.com/fr-es/cart">
181<link rel="alternate" hreflang="de-MC" href="https://www.kawaii-presenter.com/de-es/cart">
182<link rel="alternate" hreflang="es-MC" href="https://www.kawaii-presenter.com/es-es/cart">
183<link rel="alternate" hreflang="sv-MC" href="https://www.kawaii-presenter.com/sv-es/cart">
184<link rel="alternate" hreflang="it-MC" href="https://www.kawaii-presenter.com/it-es/cart">
185<link rel="alternate" hreflang="is-MC" href="https://www.kawaii-presenter.com/is-es/cart">
186<link rel="alternate" hreflang="nl-MC" href="https://www.kawaii-presenter.com/nl-es/cart">
187<link rel="alternate" hreflang="el-MC" href="https://www.kawaii-presenter.com/el-es/cart">
188<link rel="alternate" hreflang="da-MC" href="https://www.kawaii-presenter.com/da-es/cart">
189<link rel="alternate" hreflang="no-MC" href="https://www.kawaii-presenter.com/no-es/cart">
190<link rel="alternate" hreflang="fi-MC" href="https://www.kawaii-presenter.com/fi-es/cart">
191<link rel="alternate" hreflang="en-MD" href="https://www.kawaii-presenter.com/en-es/cart">
192<link rel="alternate" hreflang="fr-MD" href="https://www.kawaii-presenter.com/fr-es/cart">
193<link rel="alternate" hreflang="de-MD" href="https://www.kawaii-presenter.com/de-es/cart">
194<link rel="alternate" hreflang="es-MD" href="https://www.kawaii-presenter.com/es-es/cart">
195<link rel="alternate" hreflang="sv-MD" href="https://www.kawaii-presenter.com/sv-es/cart">
196<link rel="alternate" hreflang="it-MD" href="https://www.kawaii-presenter.com/it-es/cart">
197<link rel="alternate" hreflang="is-MD" href="https://www.kawaii-presenter.com/is-es/cart">
198<link rel="alternate" hreflang="nl-MD" href="https://www.kawaii-presenter.com/nl-es/cart">
199<link rel="alternate" hreflang="el-MD" href="https://www.kawaii-presenter.com/el-es/cart">
200<link rel="alternate" hreflang="da-MD" href="https://www.kawaii-presenter.com/da-es/cart">
201<link rel="alternate" hreflang="no-MD" href="https://www.kawaii-presenter.com/no-es/cart">
202<link rel="alternate" hreflang="fi-MD" href="https://www.kawaii-presenter.com/fi-es/cart">
203<link rel="alternate" hreflang="en-ME" href="https://www.kawaii-presenter.com/en-es/cart">
204<link rel="alternate" hreflang="fr-ME" href="https://www.kawaii-presenter.com/fr-es/cart">
205<link rel="alternate" hreflang="de-ME" href="https://www.kawaii-presenter.com/de-es/cart">
206<link rel="alternate" hreflang="es-ME" href="https://www.kawaii-presenter.com/es-es/cart">
207<link rel="alternate" hreflang="sv-ME" href="https://www.kawaii-presenter.com/sv-es/cart">
208<link rel="alternate" hreflang="it-ME" href="https://www.kawaii-presenter.com/it-es/cart">
209<link rel="alternate" hreflang="is-ME" href="https://www.kawaii-presenter.com/is-es/cart">
210<link rel="alternate" hreflang="nl-ME" href="https://www.kawaii-presenter.com/nl-es/cart">
211<link rel="alternate" hreflang="el-ME" href="https://www.kawaii-presenter.com/el-es/cart">
212<link rel="alternate" hreflang="da-ME" href="https://www.kawaii-presenter.com/da-es/cart">
213<link rel="alternate" hreflang="no-ME" href="https://www.kawaii-presenter.com/no-es/cart">
214<link rel="alternate" hreflang="fi-ME" href="https://www.kawaii-presenter.com/fi-es/cart">
215<link rel="alternate" hreflang="en-MK" href="https://www.kawaii-presenter.com/en-es/cart">
216<link rel="alternate" hreflang="fr-MK" href="https://www.kawaii-presenter.com/fr-es/cart">
217<link rel="alternate" hreflang="de-MK" href="https://www.kawaii-presenter.com/de-es/cart">
218<link rel="alternate" hreflang="es-MK" href="https://www.kawaii-presenter.com/es-es/cart">
219<link rel="alternate" hreflang="sv-MK" href="https://www.kawaii-presenter.com/sv-es/cart">
220<link rel="alternate" hreflang="it-MK" href="https://www.kawaii-presenter.com/it-es/cart">
221<link rel="alternate" hreflang="is-MK" href="https://www.kawaii-presenter.com/is-es/cart">
222<link rel="alternate" hreflang="nl-MK" href="https://www.kawaii-presenter.com/nl-es/cart">
223<link rel="alternate" hreflang="el-MK" href="https://www.kawaii-presenter.com/el-es/cart">
224<link rel="alternate" hreflang="da-MK" href="https://www.kawaii-presenter.com/da-es/cart">
225<link rel="alternate" hreflang="no-MK" href="https://www.kawaii-presenter.com/no-es/cart">
226<link rel="alternate" hreflang="fi-MK" href="https://www.kawaii-presenter.com/fi-es/cart">
227<link rel="alternate" hreflang="en-MM" href="https://spring-beautiful.myshopify.com/cart">
228<link rel="alternate" hreflang="ja-MM" href="https://spring-beautiful.myshopify.com/ja/cart">
229<link rel="alternate" hreflang="en-MY" href="https://spring-beautiful.myshopify.com/cart">
230<link rel="alternate" hreflang="ja-MY" href="https://spring-beautiful.myshopify.com/ja/cart">
231<link rel="alternate" hreflang="en-NZ" href="https://spring-beautiful.myshopify.com/cart">
232<link rel="alternate" hreflang="ja-NZ" href="https://spring-beautiful.myshopify.com/ja/cart">
233<link rel="alternate" hreflang="en-PS" href="https://spring-beautiful.myshopify.com/cart">
234<link rel="alternate" hreflang="ja-PS" href="https://spring-beautiful.myshopify.com/ja/cart">
235<link rel="alternate" hreflang="en-RS" href="https://spring-beautiful.myshopify.com/cart">
236<link rel="alternate" hreflang="ja-RS" href="https://spring-beautiful.myshopify.com/ja/cart">
237<link rel="alternate" hreflang="en-SG" href="https://spring-beautiful.myshopify.com/cart">
238<link rel="alternate" hreflang="ja-SG" href="https://spring-beautiful.myshopify.com/ja/cart">
239<link rel="alternate" hreflang="en-SM" href="https://spring-beautiful.myshopify.com/cart">
240<link rel="alternate" hreflang="ja-SM" href="https://spring-beautiful.myshopify.com/ja/cart">
241<link rel="alternate" hreflang="en-TH" href="https://spring-beautiful.myshopify.com/cart">
242<link rel="alternate" hreflang="ja-TH" href="https://spring-beautiful.myshopify.com/ja/cart">
243<link rel="alternate" hreflang="en-TN" href="https://spring-beautiful.myshopify.com/cart">
244<link rel="alternate" hreflang="ja-TN" href="https://spring-beautiful.myshopify.com/ja/cart">
245<link rel="alternate" hreflang="en-TR" href="https://spring-beautiful.myshopify.com/cart">
246<link rel="alternate" hreflang="ja-TR" href="https://spring-beautiful.myshopify.com/ja/cart">
247<link rel="alternate" hreflang="en-TW" href="https://spring-beautiful.myshopify.com/cart">
248<link rel="alternate" hreflang="ja-TW" href="https://spring-beautiful.myshopify.com/ja/cart">
249<link rel="alternate" hreflang="en-UA" href="https://spring-beautiful.myshopify.com/cart">
250<link rel="alternate" hreflang="ja-UA" href="https://spring-beautiful.myshopify.com/ja/cart">
251<link rel="alternate" hreflang="en-US" href="https://spring-beautiful.myshopify.com/cart">
252<link rel="alternate" hreflang="ja-US" href="https://spring-beautiful.myshopify.com/ja/cart">
253<link rel="alternate" hreflang="en-VA" href="https://www.kawaii-presenter.com/en-es/cart">
254<link rel="alternate" hreflang="fr-VA" href="https://www.kawaii-presenter.com/fr-es/cart">
255<link rel="alternate" hreflang="de-VA" href="https://www.kawaii-presenter.com/de-es/cart">
256<link rel="alternate" hreflang="es-VA" href="https://www.kawaii-presenter.com/es-es/cart">
257<link rel="alternate" hreflang="sv-VA" href="https://www.kawaii-presenter.com/sv-es/cart">
258<link rel="alternate" hreflang="it-VA" href="https://www.kawaii-presenter.com/it-es/cart">
259<link rel="alternate" hreflang="is-VA" href="https://www.kawaii-presenter.com/is-es/cart">
260<link rel="alternate" hreflang="nl-VA" href="https://www.kawaii-presenter.com/nl-es/cart">
261<link rel="alternate" hreflang="el-VA" href="https://www.kawaii-presenter.com/el-es/cart">
262<link rel="alternate" hreflang="da-VA" href="https://www.kawaii-presenter.com/da-es/cart">
263<link rel="alternate" hreflang="no-VA" href="https://www.kawaii-presenter.com/no-es/cart">
264<link rel="alternate" hreflang="fi-VA" href="https://www.kawaii-presenter.com/fi-es/cart">
265<link rel="alternate" hreflang="en-VN" href="https://spring-beautiful.myshopify.com/cart">
266<li
266nk rel="alternate" hreflang="ja-VN" href="https://spring-beautiful.myshopify.com/ja/cart">
267<link rel="alternate" hreflang="en-XK" href="https://www.kawaii-presenter.com/en-es/cart">
268<link rel="alternate" hreflang="fr-XK" href="https://www.kawaii-presenter.com/fr-es/cart">
269<link rel="alternate" hreflang="de-XK" href="https://www.kawaii-presenter.com/de-es/cart">
270<link rel="alternate" hreflang="es-XK" href="https://www.kawaii-presenter.com/es-es/cart">
271<link rel="alternate" hreflang="sv-XK" href="https://www.kawaii-presenter.com/sv-es/cart">
272<link rel="alternate" hreflang="it-XK" href="https://www.kawaii-presenter.com/it-es/cart">
273<link rel="alternate" hreflang="is-XK" href="https://www.kawaii-presenter.com/is-es/cart">
274<link rel="alternate" hreflang="nl-XK" href="https://www.kawaii-presenter.com/nl-es/cart">
275<link rel="alternate" hreflang="el-XK" href="https://www.kawaii-presenter.com/el-es/cart">
276<link rel="alternate" hreflang="da-XK" href="https://www.kawaii-presenter.com/da-es/cart">
277<link rel="alternate" hreflang="no-XK" href="https://www.kawaii-presenter.com/no-es/cart">
278<link rel="alternate" hreflang="fi-XK" href="https://www.kawaii-presenter.com/fi-es/cart">
279<link rel="alternate" hreflang="en-ES" href="https://www.kawaii-presenter.com/en-es/cart">
280<link rel="alternate" hreflang="fr-ES" href="https://www.kawaii-presenter.com/fr-es/cart">
281<link rel="alternate" hreflang="de-ES" href="https://www.kawaii-presenter.com/de-es/cart">
282<link rel="alternate" hreflang="es-ES" href="https://www.kawaii-presenter.com/es-es/cart">
283<link rel="alternate" hreflang="sv-ES" href="https://www.kawaii-presenter.com/sv-es/cart">
284<link rel="alternate" hreflang="it-ES" href="https://www.kawaii-presenter.com/it-es/cart">
285<link rel="alternate" hreflang="is-ES" href="https://www.kawaii-presenter.com/is-es/cart">
286<link rel="alternate" hreflang="nl-ES" href="https://www.kawaii-presenter.com/nl-es/cart">
287<link rel="alternate" hreflang="el-ES" href="https://www.kawaii-presenter.com/el-es/cart">
288<link rel="alternate" hreflang="da-ES" href="https://www.kawaii-presenter.com/da-es/cart">
289<link rel="alternate" hreflang="no-ES" href="https://www.kawaii-presenter.com/no-es/cart">
290<link rel="alternate" hreflang="fi-ES" href="https://www.kawaii-presenter.com/fi-es/cart">
291<link rel="alternate" hreflang="en-SE" href="https://www.kawaii-presenter.com/en-es/cart">
292<link rel="alternate" hreflang="fr-SE" href="https://www.kawaii-presenter.com/fr-es/cart">
293<link rel="alternate" hreflang="de-SE" href="https://www.kawaii-presenter.com/de-es/cart">
294<link rel="alternate" hreflang="es-SE" href="https://www.kawaii-presenter.com/es-es/cart">
295<link rel="alternate" hreflang="sv-SE" href="https://www.kawaii-presenter.com/sv-es/cart">
296<link rel="alternate" hreflang="it-SE" href="https://www.kawaii-presenter.com/it-es/cart">
297<link rel="alternate" hreflang="is-SE" href="https://www.kawaii-presenter.com/is-es/cart">
298<link rel="alternate" hreflang="nl-SE" href="https://www.kawaii-presenter.com/nl-es/cart">
299<link rel="alternate" hreflang="el-SE" href="https://www.kawaii-presenter.com/el-es/cart">
300<link rel="alternate" hreflang="da-SE" href="https://www.kawaii-presenter.com/da-es/cart">
301<link rel="alternate" hreflang="no-SE" href="https://www.kawaii-presenter.com/no-es/cart">
302<link rel="alternate" hreflang="fi-SE" href="https://www.kawaii-presenter.com/fi-es/cart">
303<link rel="alternate" hreflang="en-DK" href="https://www.kawaii-presenter.com/en-es/cart">
304<link rel="alternate" hreflang="fr-DK" href="https://www.kawaii-presenter.com/fr-es/cart">
305<link rel="alternate" hreflang="de-DK" href="https://www.kawaii-presenter.com/de-es/cart">
306<link rel="alternate" hreflang="es-DK" href="https://www.kawaii-presenter.com/es-es/cart">
307<link rel="alternate" hreflang="sv-DK" href="https://www.kawaii-presenter.com/sv-es/cart">
308<link rel="alternate" hreflang="it-DK" href="https://www.kawaii-presenter.com/it-es/cart">
309<link rel="alternate" hreflang="is-DK" href="https://www.kawaii-presenter.com/is-es/cart">
310<link rel="alternate" hreflang="nl-DK" href="https://www.kawaii-presenter.com/nl-es/cart">
311<link rel="alternate" hreflang="el-DK" href="https://www.kawaii-presenter.com/el-es/cart">
312<link rel="alternate" hreflang="da-DK" href="https://www.kawaii-presenter.com/da-es/cart">
313<link rel="alternate" hreflang="no-DK" href="https://www.kawaii-presenter.com/no-es/cart">
314<link rel="alternate" hreflang="fi-DK" href="https://www.kawaii-presenter.com/fi-es/cart">
315<link rel="alternate" hreflang="en-IT" href="https://www.kawaii-presenter.com/en-es/cart">
316<link rel="alternate" hreflang="fr-IT" href="https://www.kawaii-presenter.com/fr-es/cart">
317<link rel="alternate" hreflang="de-IT" href="https://www.kawaii-presenter.com/de-es/cart">
318<link rel="alternate" hreflang="es-IT" href="https://www.kawaii-presenter.com/es-es/cart">
319<link rel="alternate" hreflang="sv-IT" href="https://www.kawaii-presenter.com/sv-es/cart">
320<link rel="alternate" hreflang="it-IT" href="https://www.kawaii-presenter.com/it-es/cart">
321<link rel="alternate" hreflang="is-IT" href="https://www.kawaii-presenter.com/is-es/cart">
322<link rel="alternate" hreflang="nl-IT" href="https://www.kawaii-presenter.com/nl-es/cart">
323<link rel="alternate" hreflang="el-IT" href="https://www.kawaii-presenter.com/el-es/cart">
324<link rel="alternate" hreflang="da-IT" href="https://www.kawaii-presenter.com/da-es/cart">
325<link rel="alternate" hreflang="no-IT" href="https://www.kawaii-presenter.com/no-es/cart">
326<link rel="alternate" hreflang="fi-IT" href="https://www.kawaii-presenter.com/fi-es/cart">
327<link rel="alternate" hreflang="en-FI" href="https://www.kawaii-presenter.com/en-es/cart">
328<link rel="alternate" hreflang="fr-FI" href="https://www.kawaii-presenter.com/fr-es/cart">
329<link rel="alternate" hreflang="de-FI" href="https://www.kawaii-presenter.com/de-es/cart">
330<link rel="alternate" hreflang="es-FI" href="https://www.kawaii-presenter.com/es-es/cart">
331<link rel="alternate" hreflang="sv-FI" href="https://www.kawaii-presenter.com/sv-es/cart">
332<link rel="alternate" hreflang="it-FI" href="https://www.kawaii-presenter.com/it-es/cart">
333<link rel="alternate" hreflang="is-FI" href="https://www.kawaii-presenter.com/is-es/cart">
334<link rel="alternate" hreflang="nl-FI" href="https://www.kawaii-presenter.com/nl-es/cart">
335<link rel="alternate" hreflang="el-FI" href="https://www.kawaii-presenter.com/el-es/cart">
336<link rel="alternate" hreflang="da-FI" href="https://www.kawaii-presenter.com/da-es/cart">
337<link rel="alternate" hreflang="no-FI" href="https://www.kawaii-presenter.com/no-es/cart">
338<link rel="alternate" hreflang="fi-FI" href="https://www.kawaii-presenter.com/fi-es/cart">
339<link rel="alternate" hreflang="en-BE" href="https://www.kawaii-presenter.com/en-es/cart">
340<link rel="alternate" hreflang="fr-BE" href="https://www.kawaii-presenter.com/fr-es/cart">
341<link rel="alternate" hreflang="de-BE" href="https://www.kawaii-presenter.com/de-es/cart">
342<link rel="alternate" hreflang="es-BE" href="https://www.kawaii-presenter.com/es-es/cart">
343<link rel="alternate" hreflang="sv-BE" href="https://www.kawaii-presenter.com/sv-es/cart">
344<link rel="alternate" hreflang="it-BE" href="https://www.kawaii-presenter.com/it-es/cart">
345<link rel="alternate" hreflang="is-BE" href="https://www.kawaii-presenter.com/is-es/cart">
346<link rel="alternate" hreflang="nl-BE" href="https://www.kawaii-presenter.com/nl-es/cart">
347<link rel="alternate" hreflang="el-BE" href="https://www.kawaii-presenter.com/el-es/cart">
348<link rel="alternate" hreflang="da-BE" href="https://www.kawaii-presenter.com/da-es/cart">
349<link rel="alternate" hreflang="no-BE" href="https://www.kawaii-presenter.com/no-es/cart">
350<link rel="alternate" hreflang="fi-BE" href="https://www.kawaii-presenter.com/fi-es/cart">
351<link rel="alternate" hreflang="en-BG" href="https://www.kawaii-presenter.com/en-es/cart">
352<link rel="alternate" hreflang="fr-BG" href="https://www.kawaii-presenter.com/fr-es/cart">
353<link rel="alternate" hreflang="de-BG" href="https://www.kawaii-presenter.com/de-es/cart">
354<link rel="alternate" hreflang="es-BG" href="https://www.kawaii-presenter.com/es-es/cart">
355<link rel="alternate" hreflang="sv-BG" href="https://www.kawaii-presenter.com/sv-es/cart">
356<link rel="alternate" hreflang="it-BG" href="https://www.kawaii-presenter.com/it-es/cart">
357<link rel="alternate" hreflang="is-BG" href="https://www.kawaii-presenter.com/is-es/cart">
358<link rel="alternate" hreflang="nl-BG" href="https://www.kawaii-presenter.com/nl-es/cart">
359<link rel="alternate" hreflang="el-BG" href="https://www.kawaii-presenter.com/el-es/cart">
360<link rel="alternate" hreflang="da-BG" href="https://www.kawaii-presenter.com/da-es/cart">
361<link rel="alternate" hreflang="no-BG" href="https://www.kawaii-presenter.com/no-es/cart">
362<link rel="alternate" hreflang="fi-BG" href="https://www.kawaii-presenter.com/fi-es/cart">
363<link rel="alternate" hreflang="en-HR" href="https://www.kawaii-presenter.com/en-es/cart">
364<link rel="alternate" hreflang="fr-HR" href="https://www.kawaii-presenter.com/fr-es/cart">
365<link rel="alternate" hreflang="de-HR" href="https://www.kawaii-presenter.com/de-es/cart">
366<link rel="alternate" hreflang="es-HR" href="https://www.kawaii-presenter.com/es-es/cart">
367<link rel="alternate" hreflang="sv-HR" href="https://www.kawaii-presenter.com/sv-es/cart">
368<link rel="alternate" hreflang="it-HR" href="https://www.kawaii-presenter.com/it-es/cart">
369<link rel="alternate" hreflang="is-HR" href="https://www.kawaii-presenter.com/is-es/cart">
370<link rel="alternate" hreflang="nl-HR" href="https://www.kawaii-presenter.com/nl-es/cart">
371<link rel="alternate" hreflang="el-HR" href="https://www.kawaii-presenter.com/el-es/cart">
372<link rel="alternate" hreflang="da-HR" href="https://www.kawaii-presenter.com/da-es/cart">
373<link rel="alternate" hreflang="no-HR" href="https://www.kawaii-presenter.com/no-es/cart">
374<link rel="alternate" hreflang="fi-HR" href="https://www.kawaii-presenter.com/fi-es/cart">
375<link rel="alternate" hreflang="en-CZ" href="https://www.kawaii-presenter.com/en-es/cart">
376<link rel="alternate" hreflang="fr-CZ" href="https://www.kawaii-presenter.com/fr-es/cart">
377<link rel="alternate" hreflang="de-CZ" href="https://www.kawaii-presenter.com/de-es/cart">
378<link rel="alternate" hreflang="es-CZ" href="https://www.kawaii-presenter.com/es-es/cart">
379<link rel="alternate" hreflang="sv-CZ" href="https://www.kawaii-presenter.com/sv-es/cart">
380<link rel="alternate" hreflang="it-CZ" href="https://www.kawaii-presenter.com/it-es/cart">
381<link rel="alternate" hreflang="is-CZ" href="https://www.kawaii-presenter.com/is-es/cart">
382<link rel="alternate" hreflang="nl-CZ" href="https://www.kawaii-presenter.com/nl-es/cart">
383<link rel="alternate" hreflang="el-CZ" href="https://www.kawaii-presenter.com/el-es/cart">
384<link rel="alternate" hreflang="da-CZ" href="https://www.kawaii-presenter.com/da-es/cart">
385<link rel="alternate" hreflang="no-CZ" href="https://www.kawaii-presenter.com/no-es/cart">
386<link rel="alternate" hreflang="fi-CZ" href="https://www.kawaii-presenter.com/fi-es/cart">
387<link rel="alternate" hreflang="en-EE" href="https://www.kawaii-presenter.com/en-es/cart">
388<link rel="alternate" hreflang="fr-EE" href="https://www.kawaii-presenter.com/fr-es/cart">
389<link rel="alternate" hreflang="de-EE" href="https://www.kawaii-presenter.com/de-es/cart">
390<link rel="alternate" hreflang="es-EE" href="https://www.kawaii-presenter.com/es-es/cart">
391<link rel="alternate" hreflang="sv-EE" href="https://www.kawaii-presenter.com/sv-es/cart">
392<link rel="alternate" hreflang="it-EE" href="https://www.kawaii-presenter.com/it-es/cart">
393<link rel="alternate" hreflang="is-EE" href="https://www.kawaii-presenter.com/is-es/cart">
394<link rel="alternate" hreflang="nl-EE" href="https://www.kawaii-presenter.com/nl-es/cart">
395<link rel="alternate" hreflang="el-EE" href="https://www.kawaii-presenter.com/el-es/cart">
396<link rel="alternate" hreflang="da-EE" href="https://www.kawaii-presenter.com/da-es/cart">
397<link rel="alternate" hreflang="no-EE" href="https://www.kawaii-presenter.com/no-es/cart">
398<link rel="alternate" hreflang="fi-EE" href="https://www.kawaii-presenter.com/fi-es/cart">
399<link rel="alternate" hreflang="en-GR" href="https://www.kawaii-presenter.com/en-es/cart">
400<link rel="alternate" hreflang="fr-GR" href="https://www.kawaii-presenter.com/fr-es/cart">
401<link rel="alternate" hreflang="de-GR" href="https://www.kawaii-presenter.com/de-es/cart">
402<link rel="alternate" hreflang="es-GR" href="https://www.kawaii-presenter.com/es-es/cart">
403<link rel="alternate" hreflang="sv-GR" href="https://www.kawaii-presenter.com/sv-es/cart">
404<link rel="alternate" hreflang="it-GR" href="https://www.kawaii-presenter.com/it-es/cart">
405<link rel="alternate" hreflang="is-GR" href="https://www.kawaii-presenter.com/is-es/cart">
406<link rel="alternate" hreflang="nl-GR" href="https://www.kawaii-presenter.com/nl-es/cart">
407<link rel="alternate" hreflang="el-GR" href="https://www.kawaii-presenter.com/el-es/cart">
408<link rel="alternate" hreflang="da-GR" href="https://www.kawaii-presenter.com/da-es/cart">
409<link rel="alternate" hreflang="no-GR" href="https://www.kawaii-presenter.com/no-es/cart">
410<link rel="alternate" hreflang="fi-GR" href="https://www.kawaii-presenter.com/fi-es/cart">
411<link rel="alternate" hreflang="en-HU" href="https://www.kawaii-presenter.com/en-es/cart">
412<link rel="alternate" hreflang="fr-HU" href="https://www.kawaii-presenter.com/fr-es/cart">
413<link rel="alternate" hreflang="de-HU" href="https://www.kawaii-presenter.com/de-es/cart">
414<link rel="alternate" hreflang="es-HU" href="https://www.kawaii-presenter.com/es-es/cart">
415<link rel="alternate" hreflang="sv-HU" href="https://www.kawaii-presenter.com/sv-es/cart">
416<link rel="alternate" hreflang="it-HU" href="https://www.kawaii-presenter.com/it-es/cart">
417<link rel="alternate" hreflang="is-HU" href="https://www.kawaii-presenter.com/is-es/cart">
418<link rel="alternate" hreflang="nl-HU" href="https://www.kawaii-presenter.com/nl-es/cart">
419<link rel="alternate" hreflang="el-HU" href="https://www.kawaii-presenter.com/el-es/cart">
420<link rel="alternate" hreflang="da-HU" href="https://www.kawaii-presenter.com/da-es/cart">
421<link rel="alternate" hreflang="no-HU" href="https://www.kawaii-presenter.com/no-es/cart">
422<link rel="alternate" hreflang="fi-HU" href="https://www.kawaii-presenter.com/fi-es/cart">
423<link rel="alternate" hreflang="en-IE" href="https://www.kawaii-presenter.com/en-es/cart">
424<link rel="alternate" hreflang="fr-IE" href="https://www.kawaii-presenter.com/fr-es/cart">
425<link rel="alternate" hreflang="de-IE" href="https://www.kawaii-presenter.com/de-es/cart">
426<link rel="alternate" hreflang="es-IE" href="https://www.kawaii-presenter.com/es-es/cart">
427<link rel="alternate" hreflang="sv-IE" href="https://www.kawaii-presenter.com/sv-es/cart">
428<link rel="alternate" hreflang="it-IE" href="https://www.kawaii-presenter.com/it-es/cart">
429<link rel="alternate" hreflang="is-IE" href="https://www.kawaii-presenter.com/is-es/cart">
430<link rel="alternate" hreflang="nl-IE" href="https://www.kawaii-presenter.com/nl-es/cart">
431<link rel="alternate" hreflang="el-IE" href="https://www.kawaii-presenter.com/el-es/cart">
432<link rel="alternate" hreflang="da-IE" href="https://www.kawaii-presenter.com/da-es/cart">
433<link rel="alternate" hreflang="no-IE" href="https://www.kawaii-presenter.com/no-es/cart">
434<link rel="alternate" hreflang="fi-IE" href="https://www.kawaii-presenter.com/fi-es/cart">
435<link rel="alternate" hreflang="en-LV" href="https://www.kawaii-presenter.com/en-es/cart">
436<link rel="alternate" hreflang="fr-LV" href="https://www.kawaii-presenter.com/fr-es/cart">
437<link rel="alternate" hreflang="de-LV" href="https://www.kawaii-presenter.com/de-es/cart">
438<link rel="alternate" hreflang="es-LV" href="https://www.kawaii-presenter.com/es-es/cart">
439<link rel="alternate" hreflang="sv-LV" href="https://www.kawaii-presenter.com/sv-es/cart">
440<link rel="alternate" hreflang="it-LV" href="https://www.kawaii-presenter.com/it-es/cart">
441<link rel="alternate" hreflang="is-LV" href="https://www.kawaii-presenter.com/is-es/cart">
442<link rel="alternate" hreflang="nl-LV" href="https://www.kawaii-presenter.com/nl-es/cart">
443<link rel="alternate" hreflang="el-LV" href="https://www.kawaii-presenter.com/el-es/cart">
444<link rel="alternate" hreflang="da-LV" href="https://www.kawaii-presenter.com/da-es/cart">
445<link rel="alternate" hreflang="no-LV" href="https://www.kawaii-presenter.com/no-es/cart">
446<link rel="alternate" hreflang="fi-LV" href="https://www.kawaii-presenter.com/fi-es/cart">
447<link rel="alternate" hreflang="en-LT" href="https://www.kawaii-presenter.com/en-es/cart">
448<link rel="alternate" hreflang="fr-LT" href="https://www.kawaii-presenter.com/fr-es/cart">
449<link rel="alternate" hreflang="de-LT" href="https://www.kawaii-presenter.com/de-es/cart">
450<link rel="alternate" hreflang="es-LT" href="https://www.kawaii-presenter.com/es-es/cart">
451<link rel="alternate" hreflang="sv-LT" href="https://www.kawaii-presenter.com/sv-es/cart">
452<link rel="alternate" hreflang="it-LT" href="https://www.kawaii-presenter.com/it-es/cart">
453<link rel="alternate" hreflang="is-LT" href="https://www.kawaii-presenter.com/is-es/cart">
454<link rel="alternate" hreflang="nl-LT" href="https://www.kawaii-presenter.com/nl-es/cart">
455<link rel="alternate" hreflang="el-LT" href="https://www.kawaii-presenter.com/el-es/cart">
456<link rel="alternate" hreflang="da-LT" href="https://www.kawaii-presenter.com/da-es/cart">
457<link rel="alternate" hreflang="no-LT" href="https://www.kawaii-presenter.com/no-es/cart">
458<link rel="alternate" hreflang="fi-LT" href="https://www.kawaii-presenter.com/fi-es/cart">
459<link rel="alternate" hreflang="en-LU" href="https://www.kawaii-presenter.com/en-es/cart">
460<link rel="alternate" hreflang="fr-LU" href="https://www.kawaii-presenter.com/fr-es/cart">
461<link rel="alternate" hreflang="de-LU" href="https://www.kawaii-presenter.com/de-es/cart">
462<link rel="alternate" hreflang="es-LU" href="https://www.kawaii-presenter.com/es-es/cart">
463<link rel="alternate" hreflang="sv-LU" href="https://www.kawaii-presenter.com/sv-es/cart">
464<link rel="alternate" hreflang="it-LU" href="https://www.kawaii-presenter.com/it-es/cart">
465<link rel="alternate" hreflang="is-LU" href="https://www.kawaii-presenter.com/is-es/cart">
466<link rel="alternate" hreflang="nl-LU" href="https://www.kawaii-presenter.com/nl-es/cart">
467<link rel="alternate" hreflang="el-LU" href="https://www.kawaii-presenter.com/el-es/cart">
468<link rel="alternate" hreflang="da-LU" href="https://www.kawaii-presenter.com/da-es/cart">
469<link rel="alternate" hreflang="no-LU" href="https://www.kawaii-presenter.com/no-es/cart">
470<link rel="alternate" hreflang="fi-LU" href="https://www.kawaii-presenter.com/fi-es/cart">
471<link rel="alternate" hreflang="en-MT" href="https://www.kawaii-presenter.com/en-es/cart">
472<link rel="alternate" hreflang="fr-MT" href="https://www.kawaii-presenter.com/fr-es/cart">
473<link rel="alternate" hreflang="de-MT" href="https://www.kawaii-presenter.com/de-es/cart">
474<link rel="alternate" hreflang="es-MT" href="https://www.kawaii-presenter.com/es-es/cart">
475<link rel="alternate" hreflang="sv-MT" href="https://www.kawaii-presenter.com/sv-es/cart">
476<link rel="alternate" hreflang="it-MT" href="https://www.kawaii-presenter.com/it-es/cart">
477<link rel="alternate" hreflang="is-MT" href="https://www.kawaii-presenter.com/is-es/cart">
478<link rel="alternate" hreflang="nl-MT" href="https://www.kawaii-presenter.com/nl-es/cart">
479<link rel="alternate" hreflang="el-MT" href="https://www.kawaii-presenter.com/el-es/cart">
480<link rel="alternate" hreflang="da-MT" href="https://www.kawaii-presenter.com/da-es/cart">
481<link rel="alternate" hreflang="no-MT" href="https://www.kawaii-presenter.com/no-es/cart">
482<link rel="alternate" hreflang="fi-MT" href="https://www.kawaii-presenter.com/fi-es/cart">
483<link rel="alternate" hreflang="en-NL" href="https://www.kawaii-presenter.com/en-es/cart">
484<link rel="alternate" hreflang="fr-NL" href="https://www.kawaii-presenter.com/fr-es/cart">
485<link rel="alternate" hreflang="de-NL" href="https://www.kawaii-presenter.com/de-es/cart">
486<link rel="alternate" hreflang="es-NL" href="https://www.kawaii-presenter.com/es-es/cart">
487<link rel="alternate" hreflang="sv-NL" href="https://www.kawaii-presenter.com/sv-es/cart">
488<link rel="alternate" hreflang="it-NL" href="https://www.kawaii-presenter.com/it-es/cart">
489<link rel="alternate" hreflang="is-NL" href="https://www.kawaii-presenter.com/is-es/cart">
490<link rel="alternate" hreflang="nl-NL" href="https://www.kawaii-presenter.com/nl-es/cart">
491<link rel="alternate" hreflang="el-NL" href="https://www.kawaii-presenter.com/el-es/cart">
492<link rel="alternate" hreflang="da-NL" href="https://www.kawaii-presenter.com/da-es/cart">
493<link rel="alternate" hreflang="no-NL" href="https://www.kawaii-presenter.com/no-es/cart">
494<link rel="alternate" hreflang="fi-NL" href="https://www.kawaii-presenter.com/fi-es/cart">
495<link rel="alternate" hreflang="en-PL" href="https://www.kawaii-presenter.com/en-es/cart">
496<link rel="alternate" hreflang="fr-PL" href="https://www.kawaii-presenter.com/fr-es/cart">
497<link rel="alternate" hreflang="de-PL" href="https://www.kawaii-presenter.com/de-es/cart">
498<link rel="alternate" hreflang="es-PL" href="https://www.kawaii-presenter.com/es-es/cart">
499<link rel="alternate" hreflang="sv-PL" href="https://www.kawaii-presenter.com/sv-es/cart">
500<link rel="alternate" hreflang="it-PL" href="https://www.kawaii-presenter.com/it-es/cart">
501<link rel="alternate" hreflang="is-PL" href="https://www.kawaii-presenter.com/is-es/cart">
502<link rel="alternate" hreflang="nl-PL" href="https://www.kawaii-presenter.com/nl-es/cart">
503<link rel="alternate" hreflang="el-PL" href="https://www.kawaii-presenter.com/el-es/cart">
504<link rel="alternate" hreflang="da-PL" href="https://www.kawaii-presenter.com/da-es/cart">
505<link rel="alternate" hreflang="no-PL" href="https://www.kawaii-presenter.com/no-es/cart">
506<link rel="alternate" hreflang="fi-PL" href="https://www.kawaii-presenter.com/fi-es/cart">
507<link rel="alternate" hreflang="en-PT" href="https://www.kawaii-presenter.com/en-es/cart">
508<link rel="alternate" hreflang="fr-PT" href="https://www.kawaii-presenter.com/fr-es/cart">
509<link rel="alternate" hreflang="de-PT" href="https://www.kawaii-presenter.com/de-es/cart">
510<link rel="alternate" hreflang="es-PT" href="https://www.kawaii-presenter.com/es-es/cart">
511<link rel="alternate" hreflang="sv-PT" href="https://www.kawaii-presenter.com/sv-es/cart">
512<link rel="alternate" hreflang="it-PT" href="https://www.kawaii-presenter.com/it-es/cart">
513<link rel="alternate" hreflang="is-PT" href="https://www.kawaii-presenter.com/is-es/cart">
514<link rel="alternate" hreflang="nl-PT" href="https://www.kawaii-presenter.com/nl-es/cart">
515<link rel="alternate" hreflang="el-PT" href="https://www.kawaii-presenter.com/el-es/cart">
516<link rel="alternate" hreflang="da-PT" href="https://www.kawaii-presenter.com/da-es/cart">
517<link rel="alternate" hreflang="no-PT" href="https://www.kawaii-presenter.com/no-es/cart">
518<link rel="alternate" hreflang="fi-PT" href="https://www.kawaii-presenter.com/fi-es/cart">
519<link rel="alternate" hreflang="en-RO" href="https://www.kawaii-presenter.com/en-es/cart">
520<link rel="alternate" hreflang="fr-RO" href="https://www.kawaii-presenter.com/fr-es/cart">
521<link rel="alternate" hreflang="de-RO" href="https://www.kawaii-presenter.com/de-es/cart">
522<link rel="alternate" hreflang="es-RO" href="https://www.kawaii-presenter.com/es-es/cart">
523<link rel="alternate" hreflang="sv-RO" href="https://www.kawaii-presenter.com/sv-es/cart">
524<link rel="alternate" hreflang="it-RO" href="https://www.kawaii-presenter.com/it-es/cart">
525<link rel="alternate" hreflang="is-RO" href="https://www.kawaii-presenter.com/is-es/cart">
526<link rel="alternate" hreflang="nl-RO" href="https://www.kawaii-presenter.com/nl-es/cart">
527<link rel="alternate" hreflang="el-RO" href="https://www.kawaii-presenter.com/el-es/cart">
528<link rel="alternate" hreflang="da-RO" href="https://www.kawaii-presenter.com/da-es/cart">
529<link rel="alternate" hreflang="no-RO" href="https://www.kawaii-presenter.com/no-es/cart">
530<link rel="alternate" hreflang="fi-RO" href="https://www.kawaii-presenter.com/fi-es/cart">
531<link rel="alternate" hreflang="en-SK" href="https://www.kawaii-presenter.com/en-es/cart">
532<link rel="alternate" hreflang="fr-SK" href="https://www.kawaii-presenter.com/fr-es/cart">
533<link rel="alternate" hreflang="de-SK" href="https://www.kawaii-presenter.com/de-es/cart">
534<link rel="alternate" hreflang="es-SK" href="https://www.kawaii-presenter.com/es-es/cart">
535<link rel="alternate" hreflang="sv-SK" href="https://www.kawaii-presenter.com/sv-es/cart">
536<link rel="alternate" hreflang="it-SK" href="https://www.kawaii-presenter.com/it-es/cart">
537<link rel="alternate" hreflang="is-SK" href="https://www.kawaii-presenter.com/is-es/cart">
538<link rel="alternate" hreflang="nl-SK" href="https://www.kawaii-presenter.com/nl-es/cart">
539<link rel="alternate" hreflang="el-SK" href="https://www.kawaii-presenter.com/el-es/cart">
540<link rel="alternate" hreflang="da-SK" href="https://www.kawaii-presenter.com/da-es/cart">
541<link rel="alternate" hreflang="no-SK" href="https://www.kawaii-presenter.com/no-es/cart">
542<link rel="alternate" hreflang="fi-SK" href="https://www.kawaii-presenter.com/fi-es/cart">
543<link rel="alternate" hreflang="en-SI" href="https://www.kawaii-presenter.com/en-es/cart">
544<link rel="alternate" hreflang="fr-SI" href="https://www.kawaii-presenter.com/fr-es/cart">
545<link rel="alternate" hreflang="de-SI" href="https://www.kawaii-presenter.com/de-es/cart">
546<link rel="alternate" hreflang="es-SI" href="https://www.kawaii-presenter.com/es-es/cart">
547<link rel="alternate" hreflang="sv-SI" href="https://www.kawaii-presenter.com/sv-es/cart">
548<link rel="alternate" hreflang="it-SI" href="https://www.kawaii-presenter.com/it-es/cart">
549<lin
549k rel="alternate" hreflang="is-SI" href="https://www.kawaii-presenter.com/is-es/cart">
550<link rel="alternate" hreflang="nl-SI" href="https://www.kawaii-presenter.com/nl-es/cart">
551<link rel="alternate" hreflang="el-SI" href="https://www.kawaii-presenter.com/el-es/cart">
552<link rel="alternate" hreflang="da-SI" href="https://www.kawaii-presenter.com/da-es/cart">
553<link rel="alternate" hreflang="no-SI" href="https://www.kawaii-presenter.com/no-es/cart">
554<link rel="alternate" hreflang="fi-SI" href="https://www.kawaii-presenter.com/fi-es/cart">
555<link rel="alternate" hreflang="en-NO" href="https://www.kawaii-presenter.com/en-es/cart">
556<link rel="alternate" hreflang="fr-NO" href="https://www.kawaii-presenter.com/fr-es/cart">
557<link rel="alternate" hreflang="de-NO" href="https://www.kawaii-presenter.com/de-es/cart">
558<link rel="alternate" hreflang="es-NO" href="https://www.kawaii-presenter.com/es-es/cart">
559<link rel="alternate" hreflang="sv-NO" href="https://www.kawaii-presenter.com/sv-es/cart">
560<link rel="alternate" hreflang="it-NO" href="https://www.kawaii-presenter.com/it-es/cart">
561<link rel="alternate" hreflang="is-NO" href="https://www.kawaii-presenter.com/is-es/cart">
562<link rel="alternate" hreflang="nl-NO" href="https://www.kawaii-presenter.com/nl-es/cart">
563<link rel="alternate" hreflang="el-NO" href="https://www.kawaii-presenter.com/el-es/cart">
564<link rel="alternate" hreflang="da-NO" href="https://www.kawaii-presenter.com/da-es/cart">
565<link rel="alternate" hreflang="no-NO" href="https://www.kawaii-presenter.com/no-es/cart">
566<link rel="alternate" hreflang="fi-NO" href="https://www.kawaii-presenter.com/fi-es/cart">
567<link rel="alternate" hreflang="en-FR" href="https://www.kawaii-presenter.com/en-es/cart">
568<link rel="alternate" hreflang="fr-FR" href="https://www.kawaii-presenter.com/fr-es/cart">
569<link rel="alternate" hreflang="de-FR" href="https://www.kawaii-presenter.com/de-es/cart">
570<link rel="alternate" hreflang="es-FR" href="https://www.kawaii-presenter.com/es-es/cart">
571<link rel="alternate" hreflang="sv-FR" href="https://www.kawaii-presenter.com/sv-es/cart">
572<link rel="alternate" hreflang="it-FR" href="https://www.kawaii-presenter.com/it-es/cart">
573<link rel="alternate" hreflang="is-FR" href="https://www.kawaii-presenter.com/is-es/cart">
574<link rel="alternate" hreflang="nl-FR" href="https://www.kawaii-presenter.com/nl-es/cart">
575<link rel="alternate" hreflang="el-FR" href="https://www.kawaii-presenter.com/el-es/cart">
576<link rel="alternate" hreflang="da-FR" href="https://www.kawaii-presenter.com/da-es/cart">
577<link rel="alternate" hreflang="no-FR" href="https://www.kawaii-presenter.com/no-es/cart">
578<link rel="alternate" hreflang="fi-FR" href="https://www.kawaii-presenter.com/fi-es/cart">
579<link rel="alternate" hreflang="en-AT" href="https://www.kawaii-presenter.com/en-es/cart">
580<link rel="alternate" hreflang="fr-AT" href="https://www.kawaii-presenter.com/fr-es/cart">
581<link rel="alternate" hreflang="de-AT" href="https://www.kawaii-presenter.com/de-es/cart">
582<link rel="alternate" hreflang="es-AT" href="https://www.kawaii-presenter.com/es-es/cart">
583<link rel="alternate" hreflang="sv-AT" href="https://www.kawaii-presenter.com/sv-es/cart">
584<link rel="alternate" hreflang="it-AT" href="https://www.kawaii-presenter.com/it-es/cart">
585<link rel="alternate" hreflang="is-AT" href="https://www.kawaii-presenter.com/is-es/cart">
586<link rel="alternate" hreflang="nl-AT" href="https://www.kawaii-presenter.com/nl-es/cart">
587<link rel="alternate" hreflang="el-AT" href="https://www.kawaii-presenter.com/el-es/cart">
588<link rel="alternate" hreflang="da-AT" href="https://www.kawaii-presenter.com/da-es/cart">
589<link rel="alternate" hreflang="no-AT" href="https://www.kawaii-presenter.com/no-es/cart">
590<link rel="alternate" hreflang="fi-AT" href="https://www.kawaii-presenter.com/fi-es/cart">
591<link rel="alternate" hreflang="en-IS" href="https://www.kawaii-presenter.com/en-es/cart">
592<link rel="alternate" hreflang="fr-IS" href="https://www.kawaii-presenter.com/fr-es/cart">
593<link rel="alternate" hreflang="de-IS" href="https://www.kawaii-presenter.com/de-es/cart">
594<link rel="alternate" hreflang="es-IS" href="https://www.kawaii-presenter.com/es-es/cart">
595<link rel="alternate" hreflang="sv-IS" href="https://www.kawaii-presenter.com/sv-es/cart">
596<link rel="alternate" hreflang="it-IS" href="https://www.kawaii-presenter.com/it-es/cart">
597<link rel="alternate" hreflang="is-IS" href="https://www.kawaii-presenter.com/is-es/cart">
598<link rel="alternate" hreflang="nl-IS" href="https://www.kawaii-presenter.com/nl-es/cart">
599<link rel="alternate" hreflang="el-IS" href="https://www.kawaii-presenter.com/el-es/cart">
600<link rel="alternate" hreflang="da-IS" href="https://www.kawaii-presenter.com/da-es/cart">
601<link rel="alternate" hreflang="no-IS" href="https://www.kawaii-presenter.com/no-es/cart">
602<link rel="alternate" hreflang="fi-IS" href="https://www.kawaii-presenter.com/fi-es/cart">
603<script async="async" src="/checkouts/internal/preloads.js?locale=en-US"></script>
603
604<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
605<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=en-US&shop_id=27649998986" crossorigin="anonymous"></script>
vendor: 1 bytes, line 605
605
606<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":27649998986,"countryCode":"DE","currencyCode":"USD","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/27649998986","merchantName":"Kawaii Presenter","requiredBillingContactFields":["postalAddress","email"],"requiredShippingContactFields":["postalAddress","email"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","amex","maestro"],"total":{"type":"pending","label":"Kawaii Presenter","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 606
606
607<script id="shopify-features" type="application/json">{"accessToken":"43a67a320cdf20c9d0ca596e9903c36b","betas":["rich-media-storefront-analytics"],"domain":"spring-beautiful.myshopify.com","predictiveSearch":true,"shopId":27649998986,"locale":"en"}</script>
vendor: 1 bytes, line 607
607
608<script>var Shopify = Shopify || {};
609Shopify.shop = "spring-beautiful.myshopify.com";
610Shopify.locale = "en";
611Shopify.currency = {"active":"USD","rate":"1.1426754"};
612Shopify.country = "US";
613Shopify.theme = {"name":"Debut","id":80146268298,"schema_name":"Debut","schema_version":"14.4.0","theme_store_id":796,"role":"main"};
614Shopify.theme.handle = "null";
615Shopify.theme.style = {"id":null,"handle":null};
616Shopify.cdnHost = "spring-beautiful.myshopify.com/cdn";
617Shopify.routes = Shopify.routes || {};
618Shopify.routes.root = "/";
619Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js";
620Shopify.SignInWithShop = Shopify.SignInWithShop || {};
621Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {};
622Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 622
622
623<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 623
623
624<script>!function(o){function n(){var o=[];function n(){o.push(Array.prototype.slice.apply(arguments))}return n.q=o,n}var t=o.Shopify=o.Shopify||{};t.loadFeatures=n(),t.autoloadFeatures=n()}(window);</script>
vendor: 1 bytes, line 624
624
625<script>
626  window.ShopifyPay = window.ShopifyPay || {};
627  window.ShopifyPay.apiHost = "shop.app\/pay";
628  window.ShopifyPay.redirectState = null;
629</script>
vendor: 1 bytes, line 629
629
630<script>
631  window.Shopify = window.Shopify || {};
632  window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {};
633  window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 };
634  window.Shopify.SignInWithShop.eligible = true;
635</script>
vendor: 1 bytes, line 635
635
636<script id="shop-js-analytics" type="application/json">{"pageType":"cart"}</script>
vendor: 1 bytes, line 636
636
637<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js"></script>
vendor: 1 bytes, line 637
637
638<script type="module">
639  await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.en.esm.js");
640
641  window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true});
642
643</script>
vendor: 1 bytes, line 643
643
644<script>
645  window.Shopify = window.Shopify || {};
646  if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {};
647  window.Shopify.featureAssets['shop-js'] = {"avatar":["modules/v2/loader.avatar.en.esm.js"],"checkout-modal":["modules/v2/loader.checkout-modal.en.esm.js"],"init-customer-accounts-sign-up":["modules/v2/loader.init-customer-accounts-sign-up.en.esm.js"],"init-customer-accounts":["modules/v2/loader.init-customer-accounts.en.esm.js"],"init-fed-cm":["modules/v2/loader.init-fed-cm.en.esm.js"],"init-shop-cart-sync":["modules/v2/loader.init-shop-cart-sync.en.esm.js"],"init-shop-email-lookup-coordinator":["modules/v2/loader.init-shop-email-lookup-coordinator.en.esm.js"],"init-shop-for-new-customer-accounts":["modules/v2/loader.init-shop-for-new-customer-accounts.en.esm.js"],"init-shop-user-recognition":["modules/v2/loader.init-shop-user-recognition.en.esm.js"],"init-windoid":["modules/v2/loader.init-windoid.en.esm.js"],"lead-capture":["modules/v2/loader.lead-capture.en.esm.js"],"listener":["modules/v2/loader.listener.en.esm.js"],"pay-button":["modules/v2/loader.pay-button.en.esm.js"],"payment-terms":["modules/v2/loader.payment-terms.en.esm.js"],"shop-button":["modules/v2/loader.shop-button.en.esm.js"],"shop-cart-sync":["modules/v2/loader.shop-cart-sync.en.esm.js"],"shop-cash-offers":["modules/v2/loader.shop-cash-offers.en.esm.js"],"shop-follow-button":["modules/v2/loader.shop-follow-button.en.esm.js"],"shop-login-button":["modules/v2/loader.shop-login-button.en.esm.js"],"shop-login":["modules/v2/loader.shop-login.en.esm.js"],"shop-toast-manager":["modules/v2/loader.shop-toast-manager.en.esm.js"],"shop-user-recognition":["modules/v2/loader.shop-user-recognition.en.esm.js"]};
648</script>
vendor: 1 bytes, line 648
648
649<script id="__st">var __st={"a":27649998986,"offset":7200,"reqid":"db889716-56fb-46a8-aac7-f30157cbd676-1791599925","pageurl":"spring-beautiful.myshopify.com\/cart","u":"ff5895b880ce","p":"cart"};</script>
vendor: 1 bytes, line 649
649
650<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 650
650
651<script id="captcha-bootstrap">!function(){'use strict';const t='contact',e='account',n='new_comment',o=[[t,t],['blogs',n],['comments',n],[t,'customer']],c=[[e,'customer_login'],[e,'guest_login'],[e,'recover_customer_password'],[e,'create_customer']],r=t=>t.map((([t,e])=>`form[action*='/${t}']:not([data-nocaptcha='true']) input[name='form_type'][value='${e}']`)).join(','),a=t=>()=>t?[...document.querySelectorAll(t)].map((t=>t.form)):[];function s(){const t=[...o],e=r(t);return a(e)}const i='password',u='form_key',d=['recaptcha-v3-token','g-recaptcha-response','h-captcha-response',i],f=()=>{try{return window.sessionStorage}catch{return}},m='__shopify_v',_=t=>t.elements[u];function p(t,e,n=!1){try{const o=window.sessionStorage,c=JSON.parse(o.getItem(e)),{data:r}=function(t){const{data:e,action:n}=t;return t[m]||n?{data:e,action:n}:{data:t,action:n}}(c);for(const[e,n]of Object.entries(r))t.elements[e]&&(t.elements[e].value=n);n&&o.removeItem(e)}catch(o){console.error('form repopulation failed',{error:o})}}const l='form_type',E='cptcha';function T(t){t.dataset[E]=!0}const w=window,h=w.document,L='Shopify',v='ce_forms',y='captcha';let A=!1;((t,e)=>{const n=(g='f06e6c50-85a8-45c8-87d0-21a2b65856fe',I='https://cdn.shopify.com/shopifycloud/storefront-forms-hcaptcha/ce_storefront_forms_captcha_hcaptcha.v1.5.3.iife.js',D={infoText:'Protected by hCaptcha',privacyText:'Privacy',termsText:'Terms'},(t,e,n)=>{const o=w[L][v],c=o.bindForm;if(c)return c(t,g,e,D).then(n);var r;o.q.push([[t,g,e,D],n]),r=I,A||(h.body.append(Object.assign(h.createElement('script'),{id:'captcha-provider',async:!0,src:r})),A=!0)});var g,I,D;w[L]=w[L]||{},w[L][v]=w[L][v]||{},w[L][v].q=[],w[L][y]=w[L][y]||{},w[L][y].protect=function(t,e){n(t,void 0,e),T(t)},Object.freeze(w[L][y]),function(t,e,n,w,h,L){const[v,y,A,g]=function(t,e,n){const i=e?o:[],u=t?c:[],d=[...i,...u],f=r(d),m=r(i),_=r(d.filter((([t,e])=>n.includes(e))));return[a(f),a(m),a(_),s()]}(w,h,L),I=t=>{const e=t.target;return e instanceof HTMLFormElement?e:e&&e.form},D=t=>v().includes(t);t.addEventListener('submit',(t=>{const e=I(t);if(!e)return;const n=D(e)&&!e.dataset.hcaptchaBound&&!e.dataset.recaptchaBound,o=_(e),c=g().includes(e)&&(!o||!o.value);(n||c)&&t.preventDefault(),c&&!n&&(function(t){try{if(!f())return;!function(t){const e=f();if(!e)return;const n=_(t);if(!n)return;const o=n.value;o&&e.removeItem(o)}(t);const e=Array.from(Array(32),(()=>Math.random().toString(36)[2])).join('');!function(t,e){_(t)||t.append(Object.assign(document.createElement('input'),{type:'hidden',name:u})),t.elements[u].value=e}(t,e),function(t,e){const n=f();if(!n)return;const o=[...t.querySelectorAll(`input[type='${i}']`)].map((({name:t})=>t)),c=[...d,...o],r={};for(const[a,s]of new FormData(t).entries())c.includes(a)||(r[a]=s);n.setItem(e,JSON.stringify({[m]:1,action:t.action,data:r}))}(t,e)}catch(e){console.error('failed to persist form',e)}}(e),e.submit())}));const S=(t,e)=>{t&&!t.dataset[E]&&(n(t,e.some((e=>e===t))),T(t))};for(const o of['focusin','change'])t.addEventListener(o,(t=>{const e=I(t);D(e)&&S(e,y())}));const B=e.get('form_key'),M=e.get(l),P=B&&M;t.addEventListener('DOMContentLoaded',(()=>{const t=y();if(P)for(const e of t)e.elements[l].value===M&&p(e,B);[...new Set([...A(),...v().filter((t=>'true'===t.dataset.shopifyCaptcha))])].forEach((e=>S(e,t)))}))}(h,new URLSearchParams(w.location.search),n,t,e,['guest_login'])})(!0,!0)}();</script>
vendor: 1 bytes, line 651
651
652<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//spring-beautiful.myshopify.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 652
652
653<script>(function () {var userAgent = navigator.userAgent;var platform = navigator.platform;var maxTouchPoints = navigator.maxTouchPoints || 0;var isIOS = /iPad|iPhone|iPod/.test(platform) || (platform === 'MacIntel' && maxTouchPoints > 1);var isMacSafari = platform.indexOf('Mac') === 0 && /Safari/.test(userAgent) && !/Chrome|Chromium|CriOS|FxiOS|Edg|OPR|Android/.test(userAgent);var isAppleSafari = isIOS || isMacSafari;if (isAppleSafari) {fetch('/sf_private_access_tokens' + location.search).catch(function () {});}function browserMajorVersion(pattern) {var match = userAgent.match(pattern);return match ? parseInt(match[1], 10) : null;}function shouldLoadAutosizesPolyfill() {if (!window.PerformanceObserver?.supportedEntryTypes?.includes('paint')) {return false;}var chromeVersion = browserMajorVersion(/Chrome\/(\d+)/);if (chromeVersion !== null) {return chromeVersion < 126;}var firefoxVersion = browserMajorVersion(/Firefox\/(\d+)/);if (firefoxVersion !== null) {return firefoxVersion < 150;}var safariVersion = isAppleSafari ? browserMajorVersion(/Version\/(\d+).*Safari\//) : null;if (safariVersion !== null) {return safariVersion < 27;}return true;}if (shouldLoadAutosizesPolyfill()) {var autosizesScript = document.createElement('script');autosizesScript.async = true;autosizesScript.crossOrigin = 'anonymous';autosizesScript.src = "//spring-beautiful.myshopify.com/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
653<script crossorigin="anonymous" defer="defer" src="//spring-beautiful.myshopify.com/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-f0e26bdf.js?v=20250812"></script>
vendor: 1 bytes, line 653
653
654<script id="shopify-origin-trials" async="async" integrity="sha256-qJbe/jEZBHtr5W/BlA2cKAz3vkXu6vJQyLjgvgCC86g=" src="//cdn.shopify.com/shopifycloud/storefront/assets/storefront/origin_trials-318ab40a.js" crossorigin="anonymous" onload="window.__shopifyOriginTrialsDone = true" onerror="window.__shopifyOriginTrialsDone = true"></script>
vendor: 1 bytes, line 654
654
655<script>
656  window.Shopify = window.Shopify || {};
657  window.Shopify.MCP = window.Shopify.MCP || {};
658  window.Shopify.MCP.enabled = true;
659  window.Shopify.MCP.shop = "spring-beautiful.myshopify.com";
660  window.Shopify.MCP.mcpEndpoint = "https:\/\/spring-beautiful.myshopify.com\/api\/mcp";
661  window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n  - What is your return policy?\n  - What is your shipping policy?\n  - What is your phone number?\n  - What are your hours of operation?\"\nSet policy_types to also get the store's written policies (full text and URL).\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."},"policy_types":{"type":"array","items":{"type":"string","enum":["refund","shipping","privacy","terms_of_service","terms_of_sale","subscription","legal_notice","contact"]},"description":"Policy kinds to fetch, chosen from the user's question — e.g. [\"refund\"] for returns\/exchanges\/damaged items, [\"contact\"] for phone\/hours\/address. Include every kind the question touches. Omit it to get only FAQ answers."}},"required":["query"]}}];
662</script>
vendor: 1 bytes, line 662
662
663<script>(()=>{var d="shopify:webmcp_adapter_loaded",n=Symbol.for("shopify.webmcp_adapter_loading");function s(c,a,{win:r=window,doc:o=document}={}){function p(){try{return r.localStorage.getItem(d)==="true"}catch{return!1}}function l(){try{r.localStorage.setItem(d,"true")}catch{}}function u(){return typeof(o.modelContext||r.navigator?.modelContext)?.registerTool=="function"}function f(){if(r[n]||!u())return;let t=o.head||o.getElementsByTagName("head")[0];if(!t)return;let e=o.createElement("script");e.type="module",e.crossOrigin="anonymous",a&&(e.integrity=a),e.src=c,e.addEventListener("load",l,{once:!0}),e.addEventListener("error",()=>{r[n]=!1},{once:!0}),t.appendChild(e),r[n]=!0}function _(t){let e=o.getElementById("shopify-origin-trials");if(!e||r.__shopifyOriginTrialsDone){t();return}e.addEventListener("load",t,{once:!0}),e.addEventListener("error",t,{once:!0})}function i(){_(()=>r.setTimeout(f,0))}function m(){o.addEventListener("DOMContentLoaded",i,{once:!0})}p()?i():m()}s("\/\/spring-beautiful.myshopify.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-f427de6a.js","sha256-ypGF+5vIq4Psw4WG7nsVtdd\/TCfsJWnrNuACdqLCElY=");})();
664</script>
vendor: 1 bytes, line 664
664
665<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://spring-beautiful.myshopify.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js",t.type="module",document.head.appendChild(t)}};
666</script>
vendor: 1 bytes, line 666
666
667<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
668  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);
669</script>
vendor: 1 bytes, line 669
669
670<script>
671  function portableWalletsCleanup(e){e&&e.src&&console.error("Failed to load portable wallets script "+e.src);var t=document.querySelectorAll("shopify-accelerated-checkout .shopify-payment-button__skeleton, shopify-accelerated-checkout-cart .wallet-cart-button__skeleton"),e=document.getElementById("shopify-buyer-consent");for(let e=0;e<t.length;e++)t[e].remove();e&&e.remove()}function portableWalletsNotLoadedAsModule(e){e instanceof ErrorEvent&&"string"==typeof e.message&&e.message.includes("import.meta")&&"string"==typeof e.filename&&e.filename.includes("portable-wallets")&&(window.removeEventListener("error",portableWalletsNotLoadedAsModule),window.Shopify.PaymentButton.failedToLoad=e,"loading"===document.readyState?document.addEventListener("DOMContentLoaded",window.Shopify.PaymentButton.init):window.Shopify.PaymentButton.init())}window.addEventListener("error",portableWalletsNotLoadedAsModule);
672</script>
672
673
674<script type="module" src="https://spring-beautiful.myshopify.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.en.js" onError="portableWalletsCleanup(this)" crossorigin="anonymous"></script>
vendor: 1 bytes, line 674
674
675<script nomodule>
676  document.addEventListener("DOMContentLoaded", portableWalletsCleanup);
677</script>
677
678
679<script id='scb4127' type='text/javascript' async='' src='https://spring-beautiful.myshopify.com/cdn/shopifycloud/privacy-banner/storefront-banner.js'></script>
679<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://spring-beautiful.myshopify.com/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous">
680<style id="shopify-accelerated-checkout-cart">
681        #shopify-buyer-consent {
682  margin-top: 1em;
683  display: inline-block;
684  width: 100%;
685}
686
687#shopify-buyer-consent.hidden {
688  display: none;
689}
690
691#shopify-subscription-policy-button {
692  background: none;
693  border: none;
694  padding: 0;
695  text-decoration: underline;
696  font-size: inherit;
697  cursor: pointer;
698}
699
700#shopify-subscription-policy-button::before {
701  box-shadow: none;
702}
703
704      </style>
705
706<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
706
707<!-- BEGIN app block: shopify://apps/nospy/blocks/app-block/0ea824f6-5b8e-445c-b27f-1d4763c81aa3 -->
707<script>
708    
709    const noSpySettings = {"v":1,"activation_status":true,"protect_sales":true,"analytic_log":false,"access_token":"xSuolvBnVzxdyqyMPsRdUY4Vy7Cw4GJYvJprLo1Le9L9wDU2HFoy5EO5EXr2bEinODCLFzbKftxQc2YNzRwljOzR1US05SgK94G4b7yz1t3v744WZelBrWxSCpBXPgCLyQf25RCmWetLlIZvo","token_session_days":1,"settings":{"image_drag":false,"right_click":false,"text_selection":false,"copy_paste":false,"keys_shortcuts":false,"spy_extensions":1,"spy_extensions_block_mode":1,"spy_extensions_redirect_url":null,"inspect_elements":false,"web_page_print":false,"inspect_elements_message":"WARNING - This website is legally protected.  Our content is copyrighted and our trademark is registered.  🚫 Any copy is prohibited and may lead to legal action.","block_spam_bots":1,"proxy_vpn_block":1,"proxy_vpn_redirect_url":null,"tor_block":1,"redirect":0},"excludes":[],"allowed_bots":null};
710    
711
712    
713    const noSpyRedirects = {"v":1,"rules":[]};
714    
715
716    
717    const noSpyInternalPages = [];
718    
719
720    let my_shop = Shopify.shop;
721    const noSpyBaseUrl = "https://visitors.nospyapp.com/api";
722    const noSpyLegacyUrl = "https://app.nospyapp.com/api";
723
724    // Destinations are stored as bare hosts, but some legacy rows carry a scheme.
725    // Prepending unconditionally produced "https://https://example.com".
726    const toExternalUrl = (value) => {
727        const v = String(value ?? '').trim();
728        return /^https?:\/\//i.test(v) ? v : `https://${v}`;
729    };
730    let isNoSpyLogCreated = false;
731
732    window.NoSpyStore = {
733        ip: null,
734        geolocation: null,
735        sessionId: null,
736        sessionStart: null,
737        reached: null,
738    };
739    // ===========================================
740    // BROWSER/ALLOWED BOTS DETECTION
741    // ===========================================
742
743    const userAgent = navigator?.userAgent || 'unknown-user-agent';
744
745    const isLighthouseMode = /Lighthouse/i.test(userAgent);
746    const isGoogleBot = /Googlebot|Google-InspectionTool|Storebot-Google|AdsBot-Google|Lighthouse|GoogleOther|Google-CloudVertexBot|Google-Extended|APIs-Google|Mediapartners-Google|Google-Safety|DuplexWeb-Google|googleweblight|FeedFetcher-Google|GoogleProducer|Google-Read-Aloud|Google-Site-Verification/i.test(userAgent);
747    const isFacebookBot = /facebookexternalhit|facebookcatalog|meta-webindexer|meta-externalads|meta-externalagent|meta-externalfetcher|Facebot/i.test(userAgent);
748    const isBingBot = /bingbot|adidxbot/i.test(userAgent);
749    const isWhitelistBots = isLighthouseMode || isGoogleBot || isFacebookBot || isBingBot;
750
751    // Check Iframe
752    function isLoadedInIframe() {
753        try {
754            return window.self !== window.top;
755        } catch (e) {
756            return true;
757        }
758    }
759
760    const createHit = (data) => {
761        fetch(`${noSpyBaseUrl}/hit?shop=${Shopify.shop}`, {
762            method: "POST",
763            headers: {
764                "Content-Type": "application/json",
765            },
766            body: JSON.stringify(data),
767        });
768    };
769
770    const createBlockLog = (payload) => {
771        const data = JSON.stringify(payload);
772        if (navigator.sendBeacon) {
773            navigator.sendBeacon(`${noSpyBaseUrl}/block/log`, data);
774        } else {
775            fetch(`${noSpyBaseUrl}/block/log`, {
776                method: 'POST',
777                body: data,
778                headers: { 'Content-Type': 'application/json' }
779            });
780        }
781    }
782
783    class SessionService {
784        constructor() {
785            this.sessionKey = 'no_spy_session_id';
786            this.lastSeenKey = 'no_spy_last_seen_at';
787            this.timeout = 30 * 60 * 1000;
788        }
789
790        getSessionId() {
791            return sessionStorage.getItem(this.sessionKey);
792        }
793
794        init() {
795            const now = Date.now();
796            let sessionId = this.getSessionId();
797            let lastSeen = parseInt(localStorage.getItem(this.lastSeenKey) || "0");
798
799            if (!sessionId || (now - lastSeen) > this.timeout) {
800                sessionId = crypto.randomUUID();
801                sessionStorage.setItem(this.sessionKey, sessionId);
802            }
803
804            NoSpyStore.sessionId = sessionId;
805            NoSpyStore.sessionStart = now;
806            this.updateLastSeen();
807            this.attachListeners();
808        }
809
810        updateLastSeen() {
811            const now = Date.now();
812            const lastUpdated = parseInt(localStorage.getItem(this.lastSeenKey), 10) || 0;
813            if (now - lastUpdated > 5000) {
814                // Update local storage
815                localStorage.setItem(this.lastSeenKey, now.toString());
816            }
817        }
818
819        attachListeners() {
820            const update = this.updateLastSeen.bind(this);
821            document.addEventListener('visibilitychange', update);
822            document.addEventListener('mousemove', update);
823            document.addEventListener('keydown', update);
824        }
825
826        sendBeacon(ip) {
827            if (!ip) return;
828
829            const duration = Math.floor((Date.now() - NoSpyStore.sessionStart) / 1000);
830            const payload = JSON.stringify({
831                duration,
832                ip_address: ip,
833                session_id: NoSpyStore.sessionId
834            });
835
836            if (navigator.sendBeacon) {
837                navigator.sendBeacon(`${noSpyBaseUrl}/track-session`, payload);
838            } else {
839                fetch(`${noSpyBaseUrl}/track-session`, {
840                    method: 'POST',
841                    body: payload,
842                    headers: {
843                        'Content-Type': 'application/json'
844                    }
845                }).then();
846            }
847        }
848    };
849
850    class GeoService {
851        constructor() {
852            this.cacheKey = 'no-spy-geo-location';
853            this.reachedKey = 'no-spy-geo-reached';
854        }
855
856        loadFromCache() {
857            const cached = localStorage.getItem(this.cacheKey);
858            if (!cached) return null;
859
860            const { expireTime, value } = JSON.parse(cached);
861            if (Date.now() > expireTime) return null;
862
863            return value;
864        }
865
866        saveToCache(data, reached) {
867            localStorage.setItem(this.cacheKey, JSON.stringify({
868                expireTime: Date.now() + 10800 * 1000, // 3 hours
869                value: data
870            }));
871            localStorage.setItem(this.reachedKey, reached);
872            NoSpyStore.geolocation = data;
873            NoSpyStore.ip = data.ip;
874            NoSpyStore.reached = reached;
875        }
876
877        fetch() {
878            const cached = this.loadFromCache();
879            if (cached) {
880                NoSpyStore.geolocation = cached;
881                NoSpyStore.ip = cached.ip;
882                return cached;
883            }
884
885            // const res = await fetch(`${noSpyBaseUrl}/geolocation`, {
886            //     method: "POST",
887            //     headers: { "Content-Type": "application/json" },
888            //     body: JSON.stringify({ ip: this.requestIp, shop }),
889            // });
890
891            // const json = await res.json();
892            // if (json.status === 201) {
893            //     this.saveToCache(json.data, json.reached);
894            //     NoSpyStore.geolocation = json.data;
895            //     NoSpyStore.ip = json.data.ip;
896            //     NoSpyStore.reached = json.reached;
897            //     return this.loadFromCache();
898            // }
899            return null;
900        }
901    };
902
903    const IpUtils = {
904        isIPv4(ip) {
905            return /^(\d{1,3}\.){3}\d{1,3}$/.test(ip) &&
906                ip.split('.').every(n => parseInt(n) >= 0 && parseInt(n) <= 255);
907        },
908
909        isIPv6(ip) {
910            return /^[0-9a-fA-F:]+$/.test(ip) && ip.includes(':');
911        },
912
913        detectVersion(ip) {
914            if (this.isIPv4(ip)) return 'ipv4';
915            if (this.isIPv6(ip)) return 'ipv6';
916            return 'invalid';
917        },
918
919        ipv4ToLong(ip) {
920            const parts = ip.split('.').map(Number);
921            return ((parts[0] << 24) | (parts[1] << 16) | (parts[2] << 8) | parts[3]) >>> 0;
922        },
923
924        ipv6ToBigInt(ip) {
925            // Expand :: shorthand
926            let expanded = ip;
927            if (expanded.includes('::')) {
928                const halves = expanded.split('::');
929                const left = halves[0] ? halves[0].split(':') : [];
930                const right = halves[1] ? halves[1].split(':') : [];
931                const missing = 8 - left.length - right.length;
932                const middle = Array(missing).fill('0000');
933                expanded = [...left, ...middle, ...right].join(':');
934            }
935            const parts = expanded.split(':');
936            let result = BigInt(0);
937            for (const part of parts) {
938                result = (result << BigInt(16)) | BigInt(parseInt(part || '0', 16));
939            }
940            return result;
941        },
942
943        isInCidrRange(ip, cidr) {
944            if (!cidr.includes('/')) {
945                return ip.trim() === cidr.trim();
946            }
947            const [rangeIp, maskStr] = cidr.split('/');
948            const mask = parseInt(maskStr);
949            const ipVersion = this.detectVersion(ip);
950            const rangeVersion = this.detectVersion(rangeIp);
951            if (ipVersion !== rangeVersion || ipVersion === 'invalid') return false;
952
953            if (ipVersion === 'ipv4') {
954                const ipLong = this.ipv4ToLong(ip);
955                const rangeLong = this.ipv4ToLong(rangeIp);
956                const maskLong = mask === 0 ? 0 : (~0 << (32 - mask)) >>> 0;
957                return (ipLong & maskLong) === (rangeLong & maskLong);
958            } else {
959                const ipBig = this.ipv6ToBigInt(ip);
960                const rangeBig = this.ipv6ToBigInt(rangeIp);
961                const shift = BigInt(128 - mask);
962                return (ipBig >> shift) === (rangeBig >> shift);
963            }
964        },
965
966        isInRange(ip, startIp, endIp) {
967            const ipVersion = this.detectVersion(ip);
968            const startVersion = this.detectVersion(startIp);
969            const endVersion = this.detectVersion(endIp);
970            if (ipVersion !== startVersion || ipVersion !== endVersion || ipVersion === 'invalid') return false;
971
972            if (ipVersion === 'ipv4') {
973                const ipLong = this.ipv4ToLong(ip);
974                return ipLong >= this.ipv4ToLong(startIp) && ipLong <= this.ipv4ToLong(endIp);
975            } else {
976                const ipBig = this.ipv6ToBigInt(ip);
977                return ipBig >= this.ipv6ToBigInt(startIp) && ipBig <= this.ipv6ToBigInt(endIp);
978            }
979        }
980    };
981
982    function applyBlockingPage() {
983        const bt = noSpySettings?.blocking_template;
984        const landingEffect = bt?.landing_effect !== false;
985        const html = bt?.html;
986        const pageUrl = bt?.page_url;
987        if (html && landingEffect) {
988            try {
989                if (window.stop) window.stop();
990                document.head.innerHTML = '<meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Access Restricted</title>';
991                document.body.innerHTML = html;
992            } catch(e) {
993                document.body.innerHTML = html;
994            }
995        } else if (pageUrl) {
996            location.href = pageUrl;
997        } else {
998            const fallbackHtml = '<main style="min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;text-align:center;font-family:Arial,sans-serif;"><div><h1 style="margin:0 0 12px;font-size:32px;">Access Restricted</h1><p style="margin:0;font-size:16px;">This store is not available from your location.</p></div></main>';
999            try {
1000                if (window.stop) window.stop();
1001                document.head.innerHTML = '<meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Access Restricted</title>';
1002                document.body.innerHTML = fallbackHtml;
1003            } catch(e) {
1004                document.body.innerHTML = fallbackHtml;
1005            }
1006        }
1007    }
1008
1009    const RedirectMatcher = {
1010        evaluate(rules, geoData, pageHandle, referrer, ip, internetProvider) {
1011            if (!rules || !Array.isArray(rules) || rules.length === 0) return null;
1012
1013            const countryCode = geoData?.countryCode || '';
1014            const regionName = geoData?.regionName || '';
1015            const cityName = geoData?.cityName || '';
1016            const ispName = internetProvider || geoData?.isp_name || '';
1017
1018            const isRegionEmpty = !regionName || regionName === 'NULL';
1019            const isCityEmpty = !cityName || cityName === 'NULL';
1020
1021            // Empty value rule check
1022            if (isRegionEmpty || isCityEmpty) {
1023                for (const rule of rules) {
1024                    if (rule.condition !== 'empty_value') continue;
1025                    const payload = rule.payload;
1026                    if (!payload || payload.value === 'ALL' || payload.value === countryCode) {
1027                        return rule;
1028                    }
1029                }
1030            }
1031
1032            let matchedRules = [];
1033
1034            for (const rule of rules) {
1035                const redirectUrl = this._getRedirectUrl(rule);
1036
1037                if (!this._shouldRedirect(rule, ip, countryCode, pageHandle, regionName, cityName, ispName, redirectUrl, referrer)) {
1038                    continue;
1039                }
1040
1041                // Whitelist break
1042                if (rule.action === 'whitelist') {
1043                    break;
1044                }
1045
1046                matchedRules.push(rule);
1047            }
1048
1049            if (matchedRules.length === 0) return null;
1050
1051            // Prioritize internal/blocking_page redirects
1052            const internal = matchedRules.find(r => r.redirect_type === 'internal' || r.redirect_type === 'blocking_page');
1053            return internal || matchedRules[0];
1054        },
1055
1056        _getRedirectUrl(rule) {
1057            if (rule.redirect_type === 'blocking_page') {
1058                return noSpySettings?.blocking_template?.page_url || null;
1059            }
1060            let url = rule.redirect_url;
1061            if (rule.redirect_type === 'internal') {
1062                for (const prefix of ['/pages', '/collections', '/products']) {
1063                    if (url && url.startsWith(prefix)) {
1064                        url = url.replace(prefix, '');
1065                        break;
1066                    }
1067                }
1068            }
1069            return url;
1070        },
1071
1072        _shouldRedirect(rule, ip, countryCode, pageHandle, regionName, cityName, ispName, redirectUrl, referrer) {
1073            const condition = rule.condition;
1074            const payload = rule.payload;
1075            if (!payload) return false;
1076
1077            if (condition === 'ip' || condition === 'ip_range') {
1078                return this._matchIP(condition, ip, payload, redirectUrl, pageHandle);
1079            }
1080            if (condition === 'province') {
1081                return this._matchProvince(payload, countryCode, regionName, cityName, redirectUrl, pageHandle);
1082            }
1083            if (condition === 'country') {
1084                return this._matchCountry(payload, countryCode, redirectUrl, pageHandle);
1085            }
1086            if (condition === 'referrer_url') {
1087                return this._matchReferrer(payload, countryCode, redirectUrl, pageHandle, referrer);
1088            }
1089            if (condition === 'specific_pages' || condition === 'specific_collections') {
1090                return this._matchUrlPath(condition, payload, countryCode, redirectUrl, pageHandle);
1091            }
1092            if (condition === 'internet_provider') {
1093                return this._matchInternetProvider(payload, ispName, redirectUrl, pageHandle);
1094            }
1095            return false;
1096        },
1097
1098        _norm(handle) {
1099            return handle && !handle.startsWith('/') ? '/' + handle : (handle || '/');
1100        },
1101
1102        _matchIP(condition, customerIp, payload, redirectUrl, pageHandle) {
1103            customerIp = (customerIp || '').trim();
1104            pageHandle = this._norm(pageHandle);
1105
1106            if (condition === 'ip') {
1107                const payloadIp = (payload.ip || '').trim();
1108                return customerIp === payloadIp && redirectUrl !== pageHandle;
1109            }
1110
1111            if (condition === 'ip_range') {
1112                const ipBlock = payload.ip_block;
1113                if (ipBlock) {
1114                    return IpUtils.isInCidrRange(customerIp, ipBlock) && redirectUrl !== pageHandle;
1115                }
1116                const startIp = payload.ip_range_start;
1117                const endIp = payload.ip_range_end;
1118                if (startIp && endIp) {
1119                    return IpUtils.isInRange(customerIp, startIp, endIp) && redirectUrl !== pageHandle;
1120                }
1121            }
1122            return false;
1123        },
1124
1125        _matchCountry(payload, countryCode, redirectUrl, pageHandle) {
1126            const country = payload.country || payload;
1127            if (!country || !country.value) return false;
1128            pageHandle = this._norm(pageHandle);
1129            if (country.value === 'ALL') return redirectUrl !== pageHandle;
1130            return country.value === countryCode && redirectUrl !== pageHandle;
1131        },
1132
1133        _matchProvince(payload, countryCode, regionName, cityName, redirectUrl, pageHandle) {
1134            const country = payload.country;
1135            if (!country || !country.value) return false;
1136            if (country.value !== countryCode) return false;
1137
1138            pageHandle = this._norm(pageHandle);
1139            if (redirectUrl === pageHandle) return false;
1140
1141            const province = payload.province;
1142            if (!province || !province.label) return false;
1143            if (!regionName) return false;
1144
1145            if (!this._matchLocationName(province.label, regionName)) return false;
1146
1147            const city = payload.city;
1148            if (city && city.label) {
1149                if (!cityName) return false;
1150                return this._matchLocationName(city.label, cityName);
1151            }
1152            return true;
1153        },
1154
1155        _matchLocationName(storedName, visitorName) {
1156            const stored = (storedName || '').trim();
1157            const visitor = (visitorName || '').trim();
1158            if (stored.toLowerCase() === visitor.toLowerCase()) return true;
1159
1160            const suffixes = [' division', ' province', ' state', ' district', ' region', ' prefecture', ' oblast', ' territory'];
1161            let sLow = stored.toLowerCase();
1162            let vLow = visitor.toLowerCase();
1163            for (const suffix of suffixes) {
1164                if (sLow.endsWith(suffix)) sLow = sLow.slice(0, -suffix.length);
1165                if (vLow.endsWith(suffix)) vLow = vLow.slice(0, -suffix.length);
1166            }
1167            if (sLow === vLow) return true;
1168
1169            const sFirst = sLow.split(' ')[0];
1170            const vFirst = vLow.split(' ')[0];
1171            if (sFirst === vFirst && sFirst.length > 2) return true;
1172
1173            if (sLow.includes(vLow) || vLow.includes(sLow)) return true;
1174
1175            return false;
1176        },
1177
1178        _matchReferrer(payload, countryCode, redirectUrl, pageHandle, referrer) {
1179            if (!payload.referrer) return false;
1180            const country = payload.country;
1181            if (!country || !country.value) return false;
1182            pageHandle = this._norm(pageHandle);
1183
1184            // Check if referrer matches
1185            if (referrer && referrer.includes(payload.referrer)) {
1186                if (country.value === 'ALL' && redirectUrl !== pageHandle) return true;
1187                return country.value === countryCode && redirectUrl !== pageHandle;
1188            }
1189            return false;
1190        },
1191
1192        _matchUrlPath(condition, payload, countryCode, redirectUrl, pageHandle) {
1193            const country = payload.country;
1194            let keyValue;
1195            if (condition === 'specific_pages') {
1196                if (!payload.page) return false;
1197                keyValue = payload.page;
1198            } else {
1199                if (!payload.collection) return false;
1200                keyValue = payload.collection;
1201            }
1202            if (!country || !country.value) return false;
1203
1204            const handle = this._norm(keyValue.handle);
1205            pageHandle = this._norm(pageHandle);
1206
1207            if (country.value === 'ALL' && handle === pageHandle && redirectUrl !== pageHandle) return true;
1208
1209            return country.value === countryCode && handle === pageHandle && redirectUrl !== pageHandle;
1210        },
1211
1212        _matchInternetProvider(payload, internetProvider, redirectUrl, pageHandle) {
1213            const payloadProvider = (payload.internet_provider || '').trim();
1214            if (!payloadProvider || !internetProvider) return false;
1215            pageHandle = this._norm(pageHandle);
1216            return internetProvider.trim().toLowerCase() === payloadProvider.toLowerCase() && redirectUrl !== pageHandle;
1217        }
1218    };
1219
1220    class RedirectFeature {
1221        constructor(ip, geoData, botVerification = null) {
1222            if (isLoadedInIframe()) return;
1223
1224            this.ip = ip;
1225            this.geoData = geoData;
1226            this.bot_verification = botVerification;
1227            this.sessionService = new SessionService();
1228
1229            this.evaluateRedirects().catch(() => {});
1230        }
1231
1232        async init() {
1233            // kept for compatibility — not used in new flow
1234            this.evaluateRedirects();
1235        }
1236
1237        async evaluateRedirects() {
1238            const rules = noSpyRedirects ? (noSpyRedirects.rules || []) : [];
1239            isNoSpyLogCreated = true;
1240            if (rules.length === 0) return;
1241
1242            const isBot = this.bot_verification?.is_whitelisted_bot ?? false;
1243            if (isBot) return;
1244
1245            let pageHandle = location.pathname;
1246            if (pageHandle !== '/collections' && pageHandle !== '/collections/all' && pageHandle.startsWith('/collections/')) {
1247                pageHandle = pageHandle.replace('/collections/', '');
1248            } else if (pageHandle.startsWith('/pages/')) {
1249                pageHandle = pageHandle.replace('/pages/', '');
1250            }
1251
1252            const referrer = document.referrer || '';
1253            const ispName = this.geoData?.isp_name || '';
1254
1255            const matched = RedirectMatcher.evaluate(rules, this.geoData, pageHandle, referrer, this.ip, ispName);
1256
1257            isNoSpyLogCreated = true;
1258
1259            if (matched) {
1260                try {
1261                    await fetch(`${noSpyBaseUrl}/block/log`, {
1262                        method: 'POST',
1263                        headers: { 'Content-Type': 'application/json' },
1264                        body: JSON.stringify({
1265                            shop: Shopify.shop,
1266                            session_id: NoSpyStore.sessionId,
1267                            status: false,
1268                            action_type: 'redirect',
1269                            ...this.geoData,
1270                        }),
1271                    });
1272                } catch (e) {
1273                    // Log failed, redirect anyway
1274                }
1275                this.handleRedirect(matched);
1276            }
1277        }
1278
1279        handleRedirect(rule) {
1280            if (rule.redirect_type === 'blocking_page') {
1281                applyBlockingPage();
1282                return;
1283            }
1284            if (!rule.redirect_url) return;
1285
1286            if (rule.redirect_type === 'internal') {
1287                location.href = rule.redirect_url;
1288            } else {
1289                const url = toExternalUrl(rule.redirect_url);
1290                location.replace(url);
1291            }
1292        }
1293    };
1294
1295    class LegacyRedirectFeature {
1296        constructor(ip, bot_verification = null) {
1297            if (isLoadedInIframe()) return;
1298
1299            this.ip = ip;
1300            this.bot_verification = bot_verification;
1301
1302            this.geoService = new GeoService();
1303            this.sessionService = new SessionService();
1304
1305            this.init();
1306        }
1307
1308        async init() {
1309            this.geoService.fetch();
1310            this.sessionService.init();
1311
1312            this.fetchRedirect();
1313
1314            // Run on unload
1315            window.addEventListener("beforeunload", () => {
1316                this.sessionService.sendBeacon(this.ip);
1317            });
1318            // Run when page visibility changes (e.g., user closes tab or switches)
1319            document.addEventListener("visibilitychange", () => {
1320                console.log('NCG!');
1321                if (document.visibilityState === 'hidden') {
1322                    this.sessionService.sendBeacon(this.ip);
1323                }
1324            });
1325        }
1326
1327        async fetchRedirect() {
1328            const handle = location.pathname.replace('/pages/', '');
1329            const isBot = this.bot_verification?.is_whitelisted_bot ?? false;
1330
1331            const res = await fetch(`${noSpyLegacyUrl}/redirect-record`, {
1332                method: "POST",
1333                headers: { "Content-Type": "application/json" },
1334                body: JSON.stringify({
1335                    shop: Shopify.shop,
1336                    session_id: NoSpyStore.sessionId,
1337                    handle,
1338                    bot_verification: isBot,
1339                    reached: NoSpyStore.reached,
1340                    ...NoSpyStore.geolocation
1341                }),
1342            });
1343
1344            const json = await res.json();
1345            isNoSpyLogCreated = true;
1346            if (json?.data?.is_redirect && !isBot) {
1347                this.handleRedirect(json.data.rule);
1348            }
1349        }
1350
1351        handleRedirect(rule) {
1352            if (rule.redirect_type === 'blocking_page') {
1353                applyBlockingPage();
1354                return;
1355            }
1356            if (!rule.redirect_url) return;
1357
1358            if (rule.redirect_type === 'internal') {
1359                location.href = rule.redirect_url;
1360            } else {
1361                const url = toExternalUrl(rule.redirect_url);
1362                location.replace(url);
1363            }
1364        }
1365    };
1366
1367    class BlockSpamBotsFeature {
1368        constructor(options = {}) {
1369            this.threshold = options.threshold || 2.5;
1370            this.botScore = 0;
1371            this.mouseMoved = false;
1372            this.debug = options.debug || false;
1373            this.honeypotFieldName = "custom_field";
1374            this.honeypotFieldClass = "nsp-custom-field";
1375            this.botVerification = options.bot_verification;
1376            this.allowedBots = options.allowed_bots || {};
1377            this.geoService = new GeoService();
1378            this.sessionService = new SessionService();
1379            this.run(options.is_block).then();
1380        }
1381
1382        // Enhanced whitelist checking with multiple verification methods
1383        async isWhitelistedBot() {
1384            let checkFromFront = this.checkUserAgent();
1385            let isWhitelistedBot = this.botVerification?.is_whitelisted_bot ?? false;
1386            if (checkFromFront || isWhitelistedBot) return true;
1387            return false;
1388        }
1389
1390        checkUserAgent() {
1391            const ua = navigator.userAgent.toLowerCase();
1392
1393            const botPatterns = {
1394                'google_bot': ['googlebot', 'google-bot'],
1395                'facebook_bot': ['facebookexternalhit', 'facebookcatalog'],
1396                'bing_bot': ['bingbot', 'msnbot'],
1397                'apple_bot': ['applebot', 'apple-bot'],
1398                'ahref_bot': ['ahrefsbot', 'ahrefs-bot'],
1399                'lighthouse_bot': ['lighthouse', 'chrome-lighthouse'],
1400                'linkedin_bot': ['linkedinbot', 'linkedin-bot'],
1401                'pinterest_bot': ['pinterestbot', 'pinterest-bot'],
1402                'semrush_bot': ['semrushbot', 'semrush-bot'],
1403                'claude_bot': ['claudebot'],
1404                'meta_external_agent': ['meta-externalagent'],
1405                'amazon_bot': ['amazonbot'],
1406                'bytespider': ['bytespider'],
1407                'oai_search_bot': ['oai-searchbot'],
1408                'gpt_bot': ['gptbot'],
1409                'chatgpt_user': ['ChatGPT-User', 'openai.com/bot'],
1410                'perplexitybot': ['PerplexityBot']
1411            };
1412
1413            for (const [botName, isAllowed] of Object.entries(this.allowedBots)) {
1414                if (!isAllowed) continue;
1415
1416                const patterns = botPatterns[botName];
1417                if (patterns) {
1418                    for (const pattern of patterns) {
1419                        if (ua.includes(pattern.toLowerCase())) {
1420                            this.detectedBotType = botName;
1421                            return true;
1422                        }
1423                    }
1424                }
1425            }
1426
1427            return false;
1428        }
1429
1430        log(...args) {
1431            if (this.debug) console.log(...args);
1432        }
1433
1434        isHeadless() {
1435            const headless = (
1436                navigator.webdriver ||
1437                !navigator.plugins.length ||
1438                !navigator.languages ||
1439                /HeadlessChrome/.test(navigator.userAgent) ||
1440                /puppeteer/.test(navigator.userAgent)
1441            );
1442            if (headless) this.botScore += 1;
1443            return headless;
1444        }
1445
1446        detectMouseMovement() {
1447            const handler = () => (this.mouseMoved = true);
1448            window.addEventListener("mousemove", handler);
1449            setTimeout(() => {
1450                if (!this.mouseMoved) {
1451                    this.botScore += 1;
1452                    this.log("Mouse movement: ❌");
1453                } else {
1454                    this.log("Mouse movement: ✅");
1455                }
1456                window.removeEventListener("mousemove", handler);
1457            }, 3000);
1458        }
1459
1460        getCanvasFingerprint() {
1461            try {
1462                const canvas = document.createElement("canvas");
1463                const ctx = canvas.getContext("2d");
1464                ctx.textBaseline = "top";
1465                ctx.font = "14px Arial";
1466                ctx.fillStyle = "#f60";
1467                ctx.fillRect(125, 1, 62, 20);
1468                ctx.fillStyle = "#069";
1469                ctx.fillText("canvas-fingerprint", 2, 15);
1470                const fp = canvas.toDataURL();
1471                this.log("Canvas fingerprint:", fp.slice(0, 30) + "...");
1472                return fp;
1473            } catch {
1474                this.botScore += 0.5;
1475                return "blocked";
1476            }
1477        }
1478
1479        async getAudioFingerprint() {
1480            try {
1481                const ctx = new (window.OfflineAudioContext || window.webkitOfflineAudioContext)(1, 44100, 44100);
1482                const osc = ctx.createOscillator();
1483                const comp = ctx.createDynamicsCompressor();
1484                osc.type = "triangle";
1485                osc.frequency.value = 10000;
1486                osc.connect(comp);
1487                comp.connect(ctx.destination);
1488                osc.start(0);
1489                const buffer = await ctx.startRendering();
1490                let hash = 0;
1491                for (let i = 0; i < buffer.length; i++) {
1492                    hash += Math.abs(buffer.getChannelData(0)[i]);
1493                }
1494                this.log("Audio fingerprint hash:", hash.toFixed(2));
1495                return hash.toFixed(2);
1496            } catch {
1497                this.botScore += 0.5;
1498                return "blocked";
1499            }
1500        }
1501
1502        getWebGLFingerprint() {
1503            try {
1504                const canvas = document.createElement("canvas");
1505                const gl = canvas.getContext("webgl") || canvas.getContext("experimental-webgl");
1506                const debugInfo = gl.getExtension("WEBGL_debug_renderer_info");
1507                const vendor = gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL);
1508                const renderer = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL);
1509                this.log("WebGL vendor/renderer:", vendor, renderer);
1510                return `${vendor}~${renderer}`;
1511            } catch {
1512                this.botScore += 0.5;
1513                return "blocked";
1514            }
1515        }
1516
1517        detectTimingDrift() {
1518            const start = performance.now();
1519            for (let i = 0; i < 1000000; i++) {
1520                Math.sqrt(i);
1521            }
1522            const duration = performance.now() - start;
1523            if (duration < 10) this.botScore += 0.5;
1524            this.log("Timing drift:", duration.toFixed(2));
1525            return duration.toFixed(2);
1526        }
1527
1528        injectHoneypotIntoForms() {
1529            const style = document.createElement("style");
1530            style.textContent = `.${this.honeypotFieldClass} { display: none !important; }`;
1531            document.head.appendChild(style);
1532
1533            document.querySelectorAll("form").forEach((form) => {
1534                // Check if already injected
1535                if (form.querySelector(`input[name="${this.honeypotFieldName}"]`)) return;
1536
1537                const input = document.createElement("input");
1538                input.type = "text";
1539                input.name = this.honeypotFieldName;
1540                input.className = this.honeypotFieldClass;
1541                input.tabIndex = -1;
1542                form.appendChild(input);
1543
1544                form.addEventListener("submit", (e) => {
1545                    const honeypotValue = input.value;
1546                    if (honeypotValue.trim() !== "") {
1547                        e.preventDefault();
1548                        this.botScore += 2;
1549                        this.log("⚠️ Honeypot triggered! Value:", honeypotValue);
1550                        this.blockBotActions().then();
1551                    }
1552                });
1553            });
1554        }
1555
1556        async blockBotActions(is_block = true) {
1557            this.log("🚨 Bot Detected - Blocking interaction. Score:", this.botScore);
1558            alert("⚠️ Suspicious activity detected. Submission blocked.");
1559            document.body.innerHTML = "<h1>Access Denied</h1>";
1560            let actionType = is_block ? "block" : "threat";
1561            createHit({
1562                type: "spam_bot",
1563                name: "Spam Bot",
1564                pathname: window.location.pathname,
1565                action_type: actionType
1566            });
1567            if (actionType === 'block' && isNoSpyLogCreated) {
1568                let geoData = NoSpyStore.geolocation;
1569                if (geoData === null) {
1570                    geoData = this.geoService.fetch();
1571                }
1572                let sessionId = NoSpyStore.sessionId;
1573                if (sessionId === null) {
1574                    this.sessionService.init();
1575                    sessionId = this.sessionService.getSessionId();
1576                }
1577                createBlockLog({
1578                    shop: Shopify.shop,
1579                    session_id: sessionId,
1580                    status: false,
1581                    action_type: 'blocked',
1582                    ...geoData,
1583                });
1584            }
1585            throw new Error("Bot access denied");
1586        }
1587
1588        async runDetection(is_block = true) {
1589            // let isHeadless = this.isHeadless();
1590            // if (isHeadless) {
1591            //     let actionType = is_block ? "block" : "threat";
1592            //     createHit({
1593            //         type: "spam_bot",
1594            //         name: "Spam Bot",
1595            //         pathname: window.location.pathname,
1596            //         action_type: actionType
1597            //     });
1598            // }
1599            this.getCanvasFingerprint();
1600            await this.getAudioFingerprint();
1601            this.getWebGLFingerprint();
1602            this.detectTimingDrift();
1603
1604            if (this.botScore >= this.threshold) {
1605                this.blockBotActions(is_block).then();
1606            } else {
1607                this.log("✅ Human verified. Score:", this.botScore);
1608            }
1609            return false;
1610        }
1611
1612        async run(is_block) {
1613            // Check if current user agent is whitelisted BEFORE running detection
1614            if (document.readyState === "complete") {
1615                if (await this.isWhitelistedBot()) {
1616                    this.log("✅ Whitelisted bot - skipping detection");
1617                    return false;
1618                }
1619                this.detectMouseMovement();
1620                this.injectHoneypotIntoForms();
1621                this.runDetection(is_block).then();
1622            } else {
1623                window.addEventListener("load", async () => {
1624                    if (await this.isWhitelistedBot()) {
1625                        this.log("✅ Whitelisted bot - skipping detection");
1626                        return false;
1627                    }
1628                    this.detectMouseMovement();
1629                    this.injectHoneypotIntoForms();
1630                    this.runDetection(is_block).then();
1631                });
1632            }
1633        }
1634    };
1635
1636    class ProxyVpnTorBlockFeature {
1637        constructor(proxy_vpn_block = false, tor_block = false, proxy_vpn_redirect_url = null, blockingTemplateOptions = {}) {
1638            this.proxy_vpn_block = proxy_vpn_block;
1639            this.tor_block = tor_block;
1640            this.proxy_vpn_redirect_url = proxy_vpn_redirect_url;
1641            this.proxy_vpn_show_blocking_page = !!blockingTemplateOptions.proxy_vpn_show_blocking_page;
1642            this.tor_show_blocking_page = !!blockingTemplateOptions.tor_show_blocking_page;
1643            this.blocking_template_landing_effect = blockingTemplateOptions.blocking_template_landing_effect !== false;
1644            this.blocking_template_html = blockingTemplateOptions.blocking_template_html || null;
1645            this.blocking_template_page_url = blockingTemplateOptions.blocking_template_page_url || null;
1646            this.geoService = new GeoService();
1647            this.sessionService = new SessionService();
1648            if (this.proxy_vpn_block || this.tor_block) {
1649                this.run();
1650            }
1651        }
1652
1653        // Returns the action to take, or null when the merchant configured no
1654        // destination — the caller must not record a block it cannot enforce.
1655        resolveBlockingAction(reasonShowBlockingPage) {
1656            if (reasonShowBlockingPage && this.blocking_template_html && this.blocking_template_landing_effect) {
1657                return {type: 'template'};
1658            }
1659            if (reasonShowBlockingPage && !this.blocking_template_landing_effect && this.blocking_template_page_url) {
1660                return {type: 'page', url: this.blocking_template_page_url};
1661            }
1662            if (this.proxy_vpn_redirect_url) {
1663                return {type: 'redirect', url: toExternalUrl(this.proxy_vpn_redirect_url)};
1664            }
1665            return null;
1666        }
1667
1668        applyBlockingResponse(action) {
1669            if (!action) return;
1670            if (action.type === 'template') {
1671                try {
1672                    if (window.stop) window.stop();
1673                    document.head.innerHTML = '<meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Access Restricted</title>';
1674                    document.body.innerHTML = this.blocking_template_html;
1675                } catch (e) {
1676                    document.body.innerHTML = this.blocking_template_html;
1677                }
1678                return;
1679            }
1680            window.location.href = action.url;
1681        }
1682
1683        isUsingProxy(geoLocation) {
1684            if (geoLocation) {
1685                return geoLocation.is_proxy ?? false;
1686            }
1687            return false;
1688        }
1689
1690        isUsingVPN(geoLocation) {
1691            if (geoLocation) {
1692                return geoLocation.is_vpn ?? false;
1693            }
1694            return false;
1695        }
1696
1697        isUsingTor(geoLocation) {
1698            if (geoLocation) {
1699                return geoLocation.is_tor ?? false;
1700            }
1701            return false;
1702        }
1703
1704        async storeBlockLog(geoData) {
1705            let sessionId = NoSpyStore.sessionId;
1706            if (sessionId === null) {
1707                this.sessionService.init();
1708                sessionId = this.sessionService.getSessionId();
1709            }
1710            createBlockLog({
1711                shop: Shopify.shop,
1712                session_id: sessionId,
1713                status: false,
1714                action_type: 'blocked',
1715                ...geoData,
1716            });
1717            return true;
1718        }
1719
1720        async getGeoLocation() {
1721            let geoData = NoSpyStore.geolocation;
1722            if (geoData === null) {
1723                geoData = await this.geoService.fetch();
1724            }
1725            return geoData;
1726        }
1727
1728        run() {
1729            // Check until get the geo location from local storage use setInterval
1730            let interval = setInterval(async () => {
1731                if (isNoSpyLogCreated) {
1732                    this.getGeoLocation().then((geoLocation) => {
1733                        const proxyHit = (this.isUsingProxy(geoLocation) || this.isUsingVPN(geoLocation)) && this.proxy_vpn_block;
1734                        const torHit = this.isUsingTor(geoLocation) && this.tor_block;
1735                        if (proxyHit || torHit) {
1736                            clearInterval(interval);
1737                            const showBlockingPage = (proxyHit && this.proxy_vpn_show_blocking_page) || (torHit && this.tor_show_blocking_page);
1738                            const action = this.resolveBlockingAction(showBlockingPage);
1739                            if (!action) return;
1740                            this.storeBlockLog(geoLocation).then(() => {
1741                                this.applyBlockingResponse(action);
1742                            });
1743                        } else {
1744                            clearInterval(interval);
1745                        }
1746                    });
1747                }
1748            }, 500); // 0.5 second interval
1749        }
1750    };
1751
1752    const generateRandomString = (length) => {
1753        let result = "";
1754        const characters =
1755            "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
1756        const charactersLength = characters.length;
1757        for (let i = 0; i < length; i++) {
1758            result += characters.charAt(Math.floor(Math.random() * charactersLength));
1759        }
1760        return result;
1761    };
1762
1763    const handleOtherBug = () => {
1764        let isLastOperation = false;
1765        let intervalCount = 0;
1766        let interval = setInterval(function () {
1767            let getAllBodyChilds = document.body.children;
1768            Array.from(getAllBodyChilds).forEach((item) => {
1769                let smileUIFrame = item.querySelector("#smile-ui-container");
1770                if (smileUIFrame && smileUIFrame.style.zIndex == "2147483647") {
1771                    smileUIFrame.style.zIndex = "2147483646";
1772                    isLastOperation = true;
1773                }
1774
1775                let chat1 = item.querySelector("[class*='psmtc_']");
1776                if (chat1 && chat1.style.zIndex == "2147483647") {
1777                    chat1.style.zIndex = "2147483646";
1778                }
1779                let chat2 = item.querySelector("[class*='psmw_']");
1780                if (chat2 && chat2.style.zIndex == "2147483647") {
1781                    chat2.style.zIndex = "2147483646";
1782                }
1783
1784                let trustBadgeContainer = document.querySelector('*[id^="trustbadge-container"]');
1785                if (trustBadgeContainer && trustBadgeContainer.style.zIndex == "2147483647") {
1786                    trustBadgeContainer.style.zIndex = "2147483646";
1787                }
1788
1789                if (
1790                    item.hasAttribute("id") &&
1791                    item.getAttribute("id") === "smile-ui-lite-container"
1792                ) {
1793                    let getFrame = item.querySelector(
1794                        "#smile-ui-lite-launcher-frame-container"
1795                    );
1796                    if (getFrame) {
1797                        getFrame.style.width = "146px";
1798                    }
1799                    if (item.style.zIndex == "2147483647") {
1800                        item.style.zIndex = "2147483646";
1801                    }
1802                }
1803
1804                if (
1805                    !item.hasAttribute("id") &&
1806                    item.nodeName === "DIV" &&
1807                    item.style.zIndex
1808                ) {
1809                    if (item.style.zIndex == "2147483647") {
1810                        item.style.zIndex = "2147483646";
1811                        console.log("zIndex found!");
1812                    }
1813                }
1814
1815                if (
1816                    item.hasAttribute("id") &&
1817                    item.getAttribute("id") === "reve-chat-container-div"
1818                ) {
1819                    if (item.style.zIndex == "2147483647") {
1820                        item.style.zIndex = "2147483646";
1821                    }
1822                }
1823            });
1824            if (intervalCount >= 30 && isLastOperation) {
1825                clearInterval(interval);
1826            }
1827            intervalCount++;
1828        }, 1000);
1829    };
1830
1831    const handleCssData = () => {
1832        let intervalCount = 0;
1833        let cssId = generateRandomString(15);
1834        const cssExceptions = ':not(#pandectes-banner):not(.pd-cookie-banner-window)';
1835        let css =
1836            'div[style*="2147483647"]' + cssExceptions + ' {display: none !important;}.extension-container {display: none !important;}#shopify-raise-container {display: none !important;}.ppspy-container {display: none !important;}#shopify_app_wrapper {display: none !important;}html.shinecommerce-modal-open #shinecommerce-extension-div {display: none !important;}html.shinecommerce-modal-open, html.shinecommerce-modal-open body {overflow: auto !important;} .ixspy-tools {display: none !important;} #simplytrends-main-extension-root {display: none !important;} #my-extension-root {display: none !important;} plasmo-csui {display: none !important;} #shop-analysis-shadow-host {display: none !important;} #kins-kins-popup {display: none !important;} #ah-app {display: none !important;}';
1837        let head = document.head || document.getElementsByTagName("head")[0];
1838        let styles = document.createElement("style");
1839        head.appendChild(styles);
1840        styles.type = "text/css";
1841        styles.id = cssId;
1842        if (styles.styleSheet) {
1843            styles.styleSheet.cssText = css;
1844        } else {
1845            styles.appendChild(document.createTextNode(css));
1846        }
1847        const myCssInterval = setInterval(myCssTimer, 10);
1848        function myCssTimer() {
1849            let getStlye = document.getElementById(cssId);
1850            if (getStlye === null) {
1851                head.appendChild(styles);
1852            }
1853            if (intervalCount === 1000) {
1854                clearInterval(myCssInterval);
1855            }
1856            intervalCount += 1;
1857        }
1858    };
1859
1860    const handleTextSelection = (id, is_text, is_image) => {
1861        var css = document.createElement("style");
1862        var head = document.head;
1863        head.appendChild(css);
1864
1865        css.type = 'text/css';
1866        css.id = id;
1867
1868        css.innerText = '';
1869
1870        if (is_text) {
1871            css.innerText += `
1872            * {
1873                -webkit-user-select: none !important;
1874                -moz-user-select: none !important;
1875                -ms-user-select: none !important;
1876                user-select: none !important;
1877            }
1878            body {
1879                    -webkit-user-select: none !important;
1880                    -webkit-touch-callout: none !important;
1881                    -moz-user-select: none !important;
1882                    -ms-user-select: none !important;
1883                    user-select: none !important;
1884            }
1885            .no_spy_allowed_element, .no_spy_allowed_element * {
1886                    -webkit-user-select: text !important;
1887                    -webkit-touch-callout: text !important;
1888                    -moz-user-select: text !important;
1889                    -ms-user-select: text !important;
1890                    user-select: text !important;
1891            }
1892            .no_spy_allowed_element::selection, .no_spy_allowed_element *::selection {
1893                background: #CECECD;
1894            }`;
1895        }
1896        if (is_image) {
1897            css.innerText += `
1898            img {
1899                -webkit-user-drag: none !important;
1900                -khtml-user-drag: none !important;
1901                -moz-user-drag: none !important;
1902                -o-user-drag: none !important;
1903                user-drag: none !important;
1904                pointer-events: none !important;
1905            }`;
1906        }
1907
1908        var elements = document.querySelectorAll("*");
1909
1910        for (var i = 0; i < elements.length; i++) {
1911            if (elements[i].classList.contains('no_spy_allowed_element')) {
1912                continue;
1913            }
1914            if (elements[i].style.userSelect == 'auto') {
1915                elements[i].style.userSelect = 'none';
1916            }
1917            if (elements[i].style.userSelect == 'text') {
1918                elements[i].style.userSelect = 'none';
1919            }
1920        }
1921    }
1922
1923    const handleRightClick = () => {
1924        function init() {
1925            window.addEventListener('contextmenu', function handleEvent(event) {
1926                event.stopPropagation();
1927                event.stopImmediatePropagation();
1928                var handler = new EventHandler(event);
1929                window.removeEventListener(event.type, handleEvent, true);
1930                var EventsCallBback = new EventsCall(function() {});
1931                handler.fire();
1932                window.addEventListener(event.type, handleEvent, true);
1933                if (!handler.isCanceled && (!EventsCallBback.isCalled)) {
1934                    event.preventDefault();
1935                }
1936            }, true);
1937        }
1938        setInterval(init, 1000);
1939
1940        function EventsCall(callback) {
1941            this.events = ['DOMAttrModified', 'DOMNodeInserted', 'DOMNodeRemoved', 'DOMCharacterDataModified', 'DOMSubtreeModified'];
1942            this.bind();
1943        }
1944
1945        EventsCall.prototype.bind = function() {
1946            this.events.forEach(function(event) {
1947                document.addEventListener(event, this, true);
1948            }.bind(this));
1949        };
1950
1951        EventsCall.prototype.handleEvent = function() {
1952            this.isCalled = false;
1953        };
1954
1955        EventsCall.prototype.unbind = function() {
1956            this.events.forEach(function(event) {}.bind(this));
1957        };
1958
1959        function EventHandler(event) {
1960            this.event = event;
1961            this.contextmenuEvent = this.createEvent(this.event.type);
1962        }
1963
1964        EventHandler.prototype.createEvent = function(type) {
1965            var target = this.event.target;
1966            var event = target.ownerDocument.createEvent('MouseEvents');
1967            event.initMouseEvent(
1968                type, this.event.bubbles, this.event.cancelable,
1969                target.ownerDocument.defaultView, this.event.detail,
1970                this.event.screenX, this.event.screenY, this.event.clientX, this.event.clientY,
1971                this.event.ctrlKey, this.event.altKey, this.event.shiftKey, this.event.metaKey,
1972                this.event.button, this.event.relatedTarget
1973            );
1974            return event;
1975        };
1976
1977        EventHandler.prototype.fire = function() {
1978            var target = this.event.target;
1979            var contextmenuHandler = function(event) {
1980                event.preventDefault();
1981            }.bind(this);
1982            target.dispatchEvent(this.contextmenuEvent);
1983            this.contextmenuEvent.defaultPrevented;
1984            this.isCanceled = false;
1985        };
1986    };
1987
1988    const createAndPreviewMode = (expiresAt) => {
1989        // Create style
1990        const style = document.createElement('style');
1991        style.textContent = `
1992            .preview-bar {
1993            position: fixed;
1994            bottom: 0;
1995            left: 0;
1996            width: 100%;
1997            background-color: #1e293b;
1998            color: white;
1999            display: flex;
2000            justify-content: space-between;
2001            align-items: center;
2002            padding: 10px 20px;
2003            font-family: sans-serif;
2004            font-size: 14px;
2005            z-index: 2147483647;
2006            box-shadow: 0 2px 4px rgba(0,0,0,0.2);
2007            min-height: 55px;
2008            }
2009            .session-time {
2010            font-weight: bold;
2011            }
2012            iframe#PBarNextFrame {
2013                display: none !important;
2014            }
2015        `;
2016        document.head.appendChild(style);
2017
2018        // Calculate remaining time from expiresAt
2019        const now = new Date().getTime();
2020        const remainingTime = expiresAt - now;
2021
2022        const days = Math.floor(remainingTime / (1000 * 60 * 60 * 24));
2023        const hours = Math.floor((remainingTime % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
2024        const minutes = Math.floor((remainingTime % (1000 * 60 * 60)) / (1000 * 60));
2025        const seconds = Math.floor((remainingTime % (1000 * 60)) / 1000);
2026
2027        const formatted = `${String(days)}d ${String(hours).padStart(2, '0')}h ${String(minutes).padStart(2, '0')}m ${String(seconds).padStart(2, '0')}s`;
2028
2029        // Create preview bar HTML
2030        const bar = document.createElement('div');
2031        bar.className = 'preview-bar';
2032        bar.innerHTML = `
2033            <div class="session-time" id="sessionTimer">⏳ ${formatted} left</div>
2034            <div>🔓 NoSpy Unlocked Preview</div>
2035        `;
2036        document.body.prepend(bar);
2037
2038        // Timer logic
2039        let remainingTotalSeconds = Math.floor(remainingTime / 1000);
2040
2041        function formatTime(seconds) {
2042            const d = Math.floor(seconds / 86400); // 86400 = 24*60*60
2043            const h = Math.floor((seconds % 86400) / 3600).toString().padStart(2, '0');
2044            const m = Math.floor((seconds % 3600) / 60).toString().padStart(2, '0');
2045            const s = (seconds % 60).toString().padStart(2, '0');
2046            return `${d}
2046d ${h}h ${m}m ${s}s`;
2047        }
2048
2049        function updateTimer() {
2050            if (remainingTotalSeconds > 0) {
2051                remainingTotalSeconds--;
2052                document.getElementById('sessionTimer').textContent = `⏳ ${formatTime(remainingTotalSeconds)} left`;
2053            } else {
2054                document.getElementById('sessionTimer').textContent = `⏳ Session expired`;
2055                // reload the page and remove the preview bar
2056                setTimeout(() => document.querySelector('.preview-bar').remove(), 1000);
2057                setTimeout(() => window.location.href = '/', 3000);
2058                clearInterval(timerInterval);
2059            }
2060        }
2061
2062        const timerInterval = setInterval(updateTimer, 1000);
2063    }
2064
2065    const getNoSpyAccessToken = () => {
2066        const now = Date.now();
2067        // get no spy access token from URL params
2068        const urlParams = new URLSearchParams(window.location.search);
2069        let getNoSpyAccessTokenFromUrl = urlParams.get('nospy_access_token');
2070
2071        let noSpyAccessTokenFromLocalStorage = JSON.parse(localStorage.getItem('nospy_access_token'));
2072
2073        if (getNoSpyAccessTokenFromUrl != null) {
2074            return getNoSpyAccessTokenFromUrl;
2075        } else if (noSpyAccessTokenFromLocalStorage !== null) {
2076            // check if no spy access token is expired
2077            let expiresAtLocal = parseInt(noSpyAccessTokenFromLocalStorage.expiresAt, 10); // e.g., 1718801120000
2078            if (now > expiresAtLocal) {
2079                localStorage.removeItem('nospy_access_token');
2080                return null;
2081            }
2082            return noSpyAccessTokenFromLocalStorage.token;
2083        }
2084        return null;
2085    };
2086
2087    const storeNoSpyAccessToken = (token, expireDays = 1) => {
2088        const now = Date.now();
2089        const hours = expireDays * 24;
2090        const expiresAt = now + hours * 60 * 60 * 1000;
2091        let noSpyAccessTokenFromLocalStorage = JSON.parse(localStorage.getItem('nospy_access_token'));
2092        if (noSpyAccessTokenFromLocalStorage === null) {
2093            localStorage.setItem('nospy_access_token', JSON.stringify({
2094                token: token,
2095                expiresAt: expiresAt
2096            }));
2097        } else {
2098            return noSpyAccessTokenFromLocalStorage.expiresAt;
2099        }
2100        return expiresAt;
2101    }
2102
2103    const getPrivacyDataLegacy = async () => {
2104        if (noSpyInternalPages.length > 0) {
2105            const currentPath = window.location.pathname;
2106            const normalizedPath = currentPath.startsWith('/') ? currentPath : '/' + currentPath;
2107            const isInternalTarget = noSpyInternalPages.some(p => {
2108                const np = p.startsWith('/') ? p : '/' + p;
2109                return np === normalizedPath;
2110            });
2111            if (isInternalTarget) return;
2112        }
2113
2114        let activation_status = false;
2115        let is_exclude = false;
2116        let redirect = 1;
2117        let copy_paste = 1;
2118        let image_drag = 1;
2119        let right_click = 1;
2120        let keys_shortcuts = 1;
2121        let text_selection = 1;
2122        let web_page_print = 1;
2123        let spy_extensions = 1;
2124        let spy_extensions_block_mode = 1;
2125        let spy_extensions_redirect_url = null;
2126        let inspect_elements = 1;
2127        let inspect_elements_message = 1;
2128        let block_spam_bots = 1;
2129        let proxy_vpn_block = 1;
2130        let proxy_vpn_redirect_url = null;
2131        let tor_block = 1;
2132
2133        let no_spy_access_token = getNoSpyAccessToken();
2134        let geoLocation = new GeoService();
2135        let geoLocationData = geoLocation.fetch();
2136
2137        let url = `${noSpyLegacyUrl}/getSettings?shop=${Shopify.shop}${no_spy_access_token != null ? `&access_token=${no_spy_access_token}` : ''}`;
2138        if (geoLocationData) {
2139            url += `&asn=${geoLocationData.asn}`;
2140        } else {
2141            url += `&asn=0`;
2142        }
2143        let data = await fetch(url);
2144        let response = await data.json();
2145        if (response.status) {
2146            if (response.preview === true) {
2147                let expiresAt = 0;
2148                if (no_spy_access_token !== null && response.data.session_duration) {
2149                    expiresAt = storeNoSpyAccessToken(no_spy_access_token, response.data.session_duration);
2150                }
2151                createAndPreviewMode(expiresAt);
2152                return;
2153            }
2154            if (response.data[0].activation_status == 1) {
2155                activation_status = true;
2156                redirect = response.data[1].redirect;
2157                copy_paste = response.data[1].copy_paste;
2158                image_drag = response.data[1].image_drag;
2159                right_click = response.data[1].right_click;
2160                keys_shortcuts = response.data[1].keys_shortcuts;
2161                text_selection = response.data[1].text_selection;
2162                web_page_print = response.data[1].web_page_print;
2163                spy_extensions = response.data[1].spy_extensions;
2164                spy_extensions_block_mode = response.data[1].spy_extensions_block_mode;
2165                spy_extensions_redirect_url = response.data[1].spy_extensions_redirect_url;
2166                inspect_elements = response.data[1].inspect_elements;
2167                inspect_elements_message = response.data[1].inspect_elements_message;
2168                block_spam_bots = response.data[1].block_spam_bots;
2169                proxy_vpn_block = response.data[1].proxy_vpn_block;
2170                proxy_vpn_redirect_url = response.data[1].proxy_vpn_redirect_url;
2171                tor_block = response.data[1].tor_block;
2172            }
2173            // Check for exclude list
2174            if (response.data[2]) {
2175                const { collections, pages } = response.data[2];
2176                let pathname = window.location.pathname.split('/');
2177                if (pathname.length > 2) {
2178                    if (pages) {
2179                        if (pages.includes(pathname[2])) {
2180                            is_exclude = true;
2181                        } else if (pathname[1] === 'products' && pages.includes('/products/{handle}')) {
2182                            is_exclude = true;
2183                        } else if (pathname[1] === 'account') {
2184                            if (pages.includes(window.location.pathname)) {
2185                                is_exclude = true;
2186                            } else if (pathname[2] === 'orders' && pages.includes('/account/orders/{handle}')) {
2187                                is_exclude = true;
2188                            } else if (pathname[2] === 'login' && pages.includes('/account/login')) {
2189                                is_exclude = true;
2190                            } else if (pathname[2] === 'register' && pages.includes('/account/register')) {
2191                                is_exclude = true;
2192                            }
2193                        } else if (pages.includes(window.location.pathname)) {
2194                            is_exclude = true;
2195                        }
2196                    }
2197                    if (collections) {
2198                        if (pathname[1] === 'collections' && collections.includes(pathname[2])) {
2199                            is_exclude = true;
2200                        }
2201                    }
2202                } else {
2203                    // check '/' is existed inside pages array or not
2204                    if (pages && pages.includes(window.location.pathname)) {
2205                        is_exclude = true;
2206                    }
2207                }
2208            }
2209        }
2210
2211        // If geo location data is not null, then set the geo location data to the NoSpyStore
2212        if (response.geo_location && response.geo_location !== null) {
2213            geoLocation.saveToCache(response.geo_location, response.reached);
2214        }
2215        // If current user agent is not whitelisted and activation status is true, then run the detection
2216        if (!isWhitelistBots && activation_status) {
2217            const bot_verification = response.bot_verification;
2218            if (bot_verification && bot_verification.is_whitelisted_bot == true) {
2219                return false;
2220            }
2221
2222            if (redirect == 0) {
2223                new LegacyRedirectFeature(response.ip, bot_verification);
2224            }
2225
2226            if (proxy_vpn_block == 0 || tor_block == 0) {
2227                new ProxyVpnTorBlockFeature(proxy_vpn_block == 0, tor_block == 0, proxy_vpn_redirect_url, {
2228                    proxy_vpn_show_blocking_page: !!response.data[1].proxy_vpn_show_blocking_page,
2229                    tor_show_blocking_page: !!response.data[1].tor_show_blocking_page,
2230                    blocking_template_landing_effect: response.blocking_template?.landing_effect !== false,
2231                    blocking_template_html: response.blocking_template?.html || null,
2232                    blocking_template_page_url: response.blocking_template?.page_url || null,
2233                });
2234            }
2235
2236            if (block_spam_bots == 0) {
2237                new BlockSpamBotsFeature({
2238                    ip: response.ip,
2239                    threshold: 2.5,
2240                    debug: false,
2241                    is_block: true,
2242                    bot_verification: {...bot_verification, allowed_bots: response.allowed_bots},
2243                    allowed_bots: response.allowed_bots || {},
2244                });
2245            }
2246
2247            if (is_exclude) {
2248                return false;
2249            }
2250
2251            applyProtections({copy_paste, image_drag, right_click, keys_shortcuts, text_selection, web_page_print, spy_extensions, spy_extensions_block_mode, spy_extensions_redirect_url, inspect_elements, inspect_elements_message, inspect_elements_show_blocking_page: !!response.data[1].inspect_elements_show_blocking_page, blocking_template_html: response.blocking_template?.html || null, blocking_template_landing_effect: response.blocking_template?.landing_effect !== false, blocking_template_page_url: response.blocking_template?.page_url || null});
2252        } else {
2253            return false;
2254        }
2255    };
2256
2257    const applyProtections = (opts) => {
2258        const {copy_paste, image_drag, right_click, keys_shortcuts, text_selection, web_page_print, spy_extensions, spy_extensions_block_mode, spy_extensions_redirect_url, inspect_elements, inspect_elements_message, inspect_elements_show_blocking_page, blocking_template_html, blocking_template_landing_effect, blocking_template_page_url} = opts;
2259
2260        let devToolsBlocked = false;
2261        const handleDevToolsDetected = () => {
2262            if (devToolsBlocked) return;
2263            devToolsBlocked = true;
2264            if (inspect_elements_show_blocking_page && blocking_template_html && blocking_template_landing_effect) {
2265                try {
2266                    if (window.stop) window.stop();
2267                    document.head.innerHTML = '<meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Access Restricted</title>';
2268                    document.body.innerHTML = blocking_template_html;
2269                } catch (e) {
2270                    document.body.innerHTML = blocking_template_html;
2271                }
2272            } else if (inspect_elements_show_blocking_page && !blocking_template_landing_effect && blocking_template_page_url) {
2273                window.location.href = blocking_template_page_url;
2274            }
2275            // No blocking page configured: take no action. Never navigate the
2276            // visitor to a destination the merchant did not choose.
2277        };
2278
2279        const block = (type, bool, event) => {
2280            // createHit({'type': type, 'pathname': window.location.pathname});
2281            let allowed_events = ['text_selection', 'copy_paste'];
2282
2283            if (allowed_events.includes(type)) {
2284                let target = event.target;
2285                let parent = target.parentNode;
2286                let mother_Parent = parent.parentNode;
2287                let last_mother_Parent = mother_Parent.parentNode;
2288                let allowed_element = "no_spy_allowed_element";
2289
2290                if (target && target.classList && target.classList.contains(allowed_element)) {
2291                    return true;
2292                }
2293
2294                if (parent && parent.classList && parent.classList.contains(allowed_element)) {
2295                    return true;
2296                }
2297
2298                if (mother_Parent && mother_Parent.classList && mother_Parent.classList.contains(allowed_element)) {
2299                    return true;
2300                }
2301
2302                if (last_mother_Parent && last_mother_Parent.classList && last_mother_Parent.classList.contains(allowed_element)) {
2303                    return true;
2304                }
2305            }
2306            const allowed = Boolean(bool);
2307
2308            if (!allowed) {
2309                event.preventDefault();
2310                event.stopPropagation();
2311            }
2312
2313            return allowed;
2314        };
2315
2316        document.onselectstart = function (event) {
2317            return block("text_selection", text_selection, event);
2318        };
2319
2320        document.onpaste = function (event) {
2321            return block("copy_paste", copy_paste, event);
2322        };
2323
2324        document.oncopy = function (event) {
2325            return block("copy_paste", copy_paste, event);
2326        };
2327
2328        document.oncut = function (event) {
2329            return block("copy_paste", copy_paste, event);
2330        };
2331
2332        document.ondragstart = function (event) {
2333            return block("image_drag", image_drag, event);
2334        };
2335
2336        document.ondrag = function (event) {
2337            return block("image_drag", image_drag, event);
2338        };
2339
2340        document.ondrop = function (event) {
2341            return block("image_drag", image_drag, event);
2342        };
2343
2344        document.oncontextmenu = function (event) {
2345            return block("right_click", right_click, event);
2346        };
2347
2348        if (web_page_print == 0) {
2349            // Disable Print Command from Keyboard
2350            // let isPOkay = { cmd: false, p: false };
2351            // let keyPrints = ['Meta', 'Control', 'P', 'p'];
2352            // const undoPCommand = () => {
2353            //       isPOkay.cmd = false;
2354            //       isPOkay.p = false;
2355            // };
2356            // document.addEventListener("keydown", (event) => {
2357            //     let find = keyPrints.find((k) => k === event.key);
2358            //     if (find) {
2359            //         if (find === 'Meta' || find === 'Control') {
2360            //             isPOkay.cmd = true;
2361            //         }
2362            //         if (find === 'P' || find === 'p') {
2363            //             isPOkay.p = true;
2364            //         }
2365            //     } else {
2366            //         undoPCommand();
2367            //     }
2368            //     if (isPOkay.cmd === true && isPOkay.p === true) {
2369            //         event.preventDefault();
2370            //         return false;
2371            //     }
2372            // });
2373            // Empty Webpage
2374            let getBodyVar  = generateRandomString(32);
2375            window[getBodyVar] = null;
2376            window.addEventListener('beforeprint', function() {
2377                window[getBodyVar] = document.querySelector('body').innerHTML;
2378                document.querySelector('body').innerHTML = "<p><pretecting</p>";
2379            });
2380
2381            window.addEventListener('afterprint', function() {
2382                document.querySelector('body').innerHTML = window[getBodyVar];
2383                window[getBodyVar] = null;
2384            });
2385            // Print disable for extension
2386            function initDisablePrint() {
2387                let extension_1 = document.querySelector('iframe#pf-core');
2388                if (extension_1 !== null) {
2389                    let pf_div = document.querySelector('#pf-mask');
2390                    if (pf_div) pf_div.remove();
2391                    extension_1.remove();
2392                    let get_body = document.querySelector('body');
2393                    if (get_body) get_body.setAttribute('style', 'overflow: auto !important')
2394                }
2395            }
2396            setInterval(initDisablePrint, 100);
2397        }
2398
2399        if (right_click == 0) {
2400            handleRightClick();
2401        }
2402
2403        document.onkeydown = function (event) {
2404            if (event.keyCode == 123) {
2405                return block("keys_shortcuts", keys_shortcuts, event);
2406            }
2407            if (event.ctrlKey && event.keyCode == "U".charCodeAt(0)) {
2408                return block("keys_shortcuts", keys_shortcuts, event);
2409            }
2410
2411            if (event.ctrlKey && event.shiftKey && event.keyCode == "I".charCodeAt(0)) {
2412                return block("inspect_elements", inspect_elements, event);
2413            }
2414            if (event.ctrlKey && event.shiftKey && event.keyCode == "J".charCodeAt(0)) {
2415                return block("inspect_elements", inspect_elements, event);
2416            }
2417
2418            if (event.ctrlKey && event.shiftKey && event.keyCode == "C".charCodeAt(0)) {
2419                return block("inspect_elements", inspect_elements, event);
2420            }
2421        };
2422
2423        let is_image_drag = false;
2424        if (image_drag == 0) {
2425            is_image_drag = true;
2426        }
2427
2428        if (text_selection == 0) {
2429            let textSelectionId = generateRandomString(15);
2430            setInterval(textSelectionTimer, 1000);
2431            function textSelectionTimer() {
2432                let getStlye = document.getElementById(textSelectionId);
2433                if (getStlye !== null) {
2434                    getStlye.remove();
2435                }
2436                textSelectionId = generateRandomString(15);
2437                handleTextSelection(textSelectionId, true, is_image_drag);
2438            }
2439        }
2440
2441        // List of extensions to be blocked
2442        const handleExtensions = (is_block) => {
2443            let list_extensions = [
2444                {name: "Shopify raise", selector: "#shopify-raise-container", hit: true},
2445                {name: "Extension", selector: ".extension-container", hit: false},
2446                {name: "PPSpy", selector: ".ppspy-container", hit: true},
2447                {name: "Shopify Hunter", selector: "#shopify_app_wrapper", hit: true},
2448                {name: "Shine Commerce", selector: "#shinecommerce-extension-div", hit: true},
2449                {name: "Shopify Analyzer", selector: ".ixspy-tools", hit: true},
2450                {name: "Simply Trends", selector: "#simplytrends-main-extension-root", hit: true},
2451                {name: "My Extension", selector: "#my-extension-root", hit: false},
2452                {name: "Minea", selector: "plasmo-csui", hit: true},
2453                {name: "Koala", selector: "#kins-kins-popup", hit: true},
2454                {name: "AliHunter", selector: "#ah-app", hit: true},
2455            ];
2456            // Handle all script handlers
2457            let otherExtensionsCount = 0;
2458            let allExtensionsInterval = setInterval(function () {
2459                list_extensions.forEach(function (ext) {
2460                    // let actionType = is_block ? "block" : "threat";
2461                    let actionType = is_block ? ((spy_extensions_block_mode == 0 && spy_extensions_redirect_url) ? "redirect" : "block") : "threat";
2462                    let containerDom = document.querySelector(ext.selector);
2463                    if (containerDom) {
2464                        if (is_block) containerDom.remove();
2465                        if (ext.hit) {
2466                            createHit({
2467                                type: "spy_extensions",
2468                                name: ext.name,
2469                                pathname: window.location.pathname,
2470                                action_type: actionType
2471                            });
2472                            ext.hit = false;
2473                        }
2474                        if (actionType == "redirect") {
2475                            window.location.href = toExternalUrl(spy_extensions_redirect_url);
2476                        }
2477                    }
2478                });
2479                otherExtensionsCount++;
2480                if (otherExtensionsCount > 20) {
2481                    clearInterval(allExtensionsInterval);
2482                }
2483            }, 250);
2484
2485            let ppspyCreateHit = false;
2486            let extensionsInterval = setInterval(function () {
2487                // let actionType = is_block ? "block" : "threat";
2488                let actionType = is_block ? ((spy_extensions_block_mode == 0 && spy_extensions_redirect_url) ? "redirect" : "block") : "threat";
2489                let ppspyContainer = document.querySelector(".ppspy-exp-view-root");
2490                if (ppspyContainer) {
2491                    if (is_block) ppspyContainer.style.display = "none";
2492                    if (!ppspyCreateHit) {
2493                        createHit({
2494                            type: "spy_extensions",
2495                            name: "PPSpy",
2496                            pathname: window.location.pathname,
2497                            action_type: actionType
2498                        });
2499                        ppspyCreateHit = true;
2500                    }
2501                    if (actionType == "redirect") {
2502                        window.location.href = toExternalUrl(spy_extensions_redirect_url);
2503                    }
2504                    clearInterval(extensionsInterval);
2505                }
2506            }, 10);
2507        };
2508
2509        if (spy_extensions == 0) {
2510            // Handle CSS Part
2511            handleCssData();
2512            // Handle other issue bug
2513            handleOtherBug();
2514
2515            handleExtensions(true);
2516
2517            // FIRST SCRIPT
2518            var startTime = new Date().getTime();
2519            var interval = setInterval(function () {
2520                if (new Date().getTime() - startTime > 10000)
2521                    return clearInterval(interval), void 0;
2522
2523                var e = document.querySelectorAll("div");
2524
2525                for (i = 0; i < e.length; i++) {
2526                    var zIndex = document.querySelectorAll("div")[i].style.Zindex;
2527                    if (zIndex === "2147483647") {
2528                        createHit({
2529                            type: "spy_extensions",
2530                            name: "",
2531                            pathname: window.location.pathname,
2532                        });
2533                        document
2534                            .querySelectorAll("div")
2535                            [i].parentNode.parentNode.parentNode.remove();
2536                    }
2537                }
2538            }, 699);
2539
2540            // SECOND SCRIPT
2541            var facebook = [
2542                {
2543                    id: "kefmekfmfacbdefimlancoccpocmgmpb",
2544                    image: "icons/extension-icon-x16.png",
2545                },
2546                {
2547                    id: "lppbajkahdbbadheilijoeegnfndhlab",
2548                    image: "icons/extension-icon-x16.png",
2549                },
2550                {
2551                    id: "hjbfbllnfhppnhjdhhbmjabikmkfekgf",
2552                    image: "icons/extension-icon-x16.png",
2553                },
2554                {
2555                    id: "hdpfnbgfohonaplgnaahcefglgclmdpo",
2556                    image: "icons/extension-icon-x16.png",
2557                },
2558                {
2559                    id: "amolhiihcpdbkjimhlffamgieibhfapi",
2560                    image: "icons/extension-icon-x16.png",
2561                },
2562            ];
2563            const querySelectorAll = (node, selector) => {
2564                const nodes = [...node.querySelectorAll(selector)],
2565                    nodeIterator = document.createNodeIterator(node, Node.ELEMENT_NODE);
2566                let currentNode;
2567                while ((currentNode = nodeIterator.nextNode())) {
2568                    if (currentNode.shadowRoot) {
2569                        nodes.push(...querySelectorAll(currentNode.shadowRoot, selector));
2570                    }
2571                }
2572                return nodes;
2573            };
2574            const checkfacebook = (id, src, callback) => {
2575                let e = new Image();
2576                e.src = "chrome-extension://" + id + "/" + src;
2577                (e.onload = () => callback(1)), (e.onerror = () => callback(0));
2578            };
2579            window.addEventListener("load", function () {
2580                [...document.getElementsByClassName("extension-container")].forEac
2580h(
2581                    (e) => (e.style.display = "none")
2582                );
2583            });
2584            var blockCallback = function (items) {
2585                chrome.app.installState(function (e) {
2586                    if (e === "not_installed") {
2587                        return false;
2588                    }
2589                });
2590            };
2591            window.addEventListener("load", function () {
2592                var tags = querySelectorAll(document, "iframe");
2593                var ext = tags.filter((item) => {
2594                    return ![
2595                        "intercom-frame",
2596                        "admin-bar-iframe",
2597                        "preview-bar-iframe",
2598                        "^$",
2599                        "__JSBridgeIframe_SetResult_1.0__",
2600                        "__JSBridgeIframe__",
2601                        "__JSBridgeIframe_SetResult__",
2602                        "__JSBridgeIframe_1.0__",
2603                        "looxReviewsFram",
2604                        "looxReviewsFrame",
2605                        "^paypal-offers--iframe-(.*)-(.*)-(.*)-(.*)-(.*)$",
2606                        "^(.*)paypalLight(.*)$",
2607                        "^fb(.*)$",
2608                        "^snap(.*)$",
2609                        "^tiktok(.*)$",
2610                        "^bytedance(.*)$",
2611                    ].find((value) => new RegExp(value).test(item.id));
2612                });
2613                if (ext.length > 0) {
2614                    blockCallback(ext);
2615                } else {
2616                    facebook.forEach((element) => {
2617                        checkfacebook(element.id, element.image, (ok) => {
2618                            if (ok) {
2619                                blockCallback(element);
2620                            }
2621                        });
2622                    });
2623                }
2624            });
2625        } else {
2626            handleExtensions(false);
2627        }
2628
2629        if (inspect_elements == 0) {
2630            const devtools = {
2631                isOpen: false,
2632                orientation: undefined,
2633            };
2634
2635            /*
2636            const threshold = 160;
2637
2638            const emitEvent = (isOpen, orientation) => {
2639                globalThis.dispatchEvent(
2640                    new globalThis.CustomEvent("devtoolschange", {
2641                        detail: {
2642                            isOpen,
2643                            orientation,
2644                        },
2645                    })
2646                );
2647
2648                if (isOpen) {
2649                    // createHit({'type': 'inspect_elements', 'pathname': window.location.pathname})
2650                }
2651            };
2652
2653            const main = ({ emitEvents = true } = {}) => {
2654                const widthThreshold =
2655                    globalThis.outerWidth - globalThis.innerWidth > threshold;
2656                const heightThreshold =
2657                    globalThis.outerHeight - globalThis.innerHeight > threshold;
2658                const orientation = widthThreshold ? "vertical" : "horizontal";
2659
2660                if (
2661                    !(heightThreshold && widthThreshold) &&
2662                    ((globalThis.Firebug &&
2663                            globalThis.Firebug.chrome &&
2664                            globalThis.Firebug.chrome.isInitialized) ||
2665                        widthThreshold ||
2666                        heightThreshold)
2667                ) {
2668                    if (
2669                        (!devtools.isOpen || devtools.orientation !== orientation) &&
2670                        emitEvents
2671                    ) {
2672                        emitEvent(true, orientation);
2673                    }
2674
2675                    devtools.isOpen = true;
2676                    devtools.orientation = orientation;
2677                } else {
2678                    if (devtools.isOpen && emitEvents) {
2679                        emitEvent(false, undefined);
2680                    }
2681
2682                    devtools.isOpen = false;
2683                    devtools.orientation = undefined;
2684                }
2685            };
2686
2687            main({ emitEvents: false });
2688            setInterval(main, 500);
2689            */
2690
2691            window.addEventListener("devtoolschange", (event) => {
2692                if (
2693                    /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(
2694                        navigator.userAgent
2695                    )
2696                ) {
2697                } else {
2698                    if (event.detail.isOpen) {
2699                        // createHit({'type': 'inspect_elements', 'pathname': window.location.pathname})
2700                        console.log(`%c ${inspect_elements_message}`, "font-size:32px;");
2701                        handleDevToolsDetected();
2702                    }
2703                    // else {
2704                    //     window.localStorage.removeItem("is_inspect_open");
2705                    // }
2706                }
2707            });
2708
2709            // Check Iframe
2710            function isLoadedInIframeLocal() {
2711                try {
2712                    return window.self !== window.top;
2713                } catch (e) {
2714                    return true;
2715                }
2716            }
2717
2718
2719            // Second way for devtools check
2720            const devtools3 = {
2721                isOpen: false,
2722            };
2723
2724            // Check for keyboard shortcuts commonly used in developer tools
2725            function checkShortcuts() {
2726                if (
2727                    (window.outerWidth - window.innerWidth) > 160 ||
2728                    window.outerHeight - window.innerHeight > 160
2729                ) {
2730                    if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {
2731                        devtools3.isOpen = false;
2732                    } else {
2733                        if (window.innerWidth > 768) {
2734                            devtools3.isOpen = true;
2735                        }
2736                    }
2737                }
2738            }
2739
2740            // Check for console.log output
2741            function checkForConsole() {
2742                if (window.console && window.console.firebug) {
2743                    devtools3.isOpen = true;
2744                }
2745            }
2746
2747            // Check for changes in the user agent string
2748            function checkUserAgent() {
2749                if (navigator.userAgent.includes('Chrome')) {
2750                    devtools.isOpen = true;
2751                }
2752            }
2753
2754            // Check for other indicators of developer tools (customize as needed)
2755            function checkOtherIndicators() {
2756                if (
2757                    window.location.href.indexOf('debugger') > -1 ||
2758                    window.location.href.indexOf('inspect') > -1
2759                ) {
2760                    devtools3.isOpen = true;
2761                }
2762            }
2763
2764            // Combine checks
2765            function checkForDevTools() {
2766                checkShortcuts();
2767                checkForConsole();
2768                checkUserAgent();
2769                checkOtherIndicators();
2770            }
2771
2772            // Interval to check for developer tools
2773            if (!isLoadedInIframeLocal()) {
2774                setInterval(() => {
2775                    checkForDevTools();
2776                    if (devtools3.isOpen) {
2777                        handleDevToolsDetected();
2778                    }
2779                }, 1000);
2780            }
2781
2782            let isOkay = { cmd: false, option: false, i: false };
2783            const undoCommand = () => {
2784                isOkay.cmd = false;
2785                isOkay.option = false;
2786                isOkay.i = false;
2787            };
2788            let keyLists = [91, 18, 73];
2789            document.addEventListener("keydown", (event) => {
2790                let find = keyLists.find((k) => k === event.keyCode);
2791                if (find) {
2792                    if (find === 91) {
2793                        isOkay.cmd = true;
2794                    }
2795                    if (find === 18) {
2796                        isOkay.option = true;
2797                    }
2798                    if (find === 73) {
2799                        isOkay.i = true;
2800                        setTimeout(() => undoCommand(), 500);
2801                    }
2802                } else {
2803                    undoCommand();
2804                }
2805                if (isOkay.cmd === true && isOkay.option === true && isOkay.i === true) {
2806                    event.preventDefault();
2807                    return false;
2808                }
2809            });
2810            let is_prev_open_console = window.localStorage.getItem("is_inspect_open");
2811            if (is_prev_open_console !== null) {
2812                const obj = JSON.parse(is_prev_open_console);
2813                let currentTime = new Date().getTime();
2814                if (obj.timestamp > currentTime) {
2815                    handleDevToolsDetected();
2816                }
2817            }
2818        }
2819    };
2820
2821    const getPrivacyData = async () => {
2822        // When on the blocking template page, show the template as an overlay and stop
2823        const blockingPageUrl = noSpySettings?.blocking_template?.page_url;
2824        const _shopifyRoot = (window.Shopify && window.Shopify.routes && window.Shopify.routes.root) || '/';
2825        const _localePrefix = _shopifyRoot === '/' ? '' : _shopifyRoot.replace(/\/$/, '');
2826        if (blockingPageUrl && (window.location.pathname === blockingPageUrl || window.location.pathname === _localePrefix + blockingPageUrl)) {
2827            const html = noSpySettings.blocking_template?.html;
2828            if (html) {
2829                const applyOverlay = () => {
2830                    try {
2831                        if (window.stop) window.stop();
2832                        document.head.innerHTML = '<meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Access Restricted</title>';
2833                        document.body.innerHTML = html;
2834                    } catch (e) {
2835                        document.body.innerHTML = html;
2836                    }
2837                };
2838                if (document.body) {
2839                    applyOverlay();
2840                } else {
2841                    document.addEventListener('DOMContentLoaded', applyOverlay);
2842                }
2843            }
2844            return;
2845        }
2846
2847        // Check internal redirect pages
2848        if (noSpyInternalPages.length > 0) {
2849            const currentPath = window.location.pathname;
2850            const normalizedPath = currentPath.startsWith('/') ? currentPath : '/' + currentPath;
2851            const isInternalTarget = noSpyInternalPages.some(p => {
2852                const np = p.startsWith('/') ? p : '/' + p;
2853                return np === normalizedPath;
2854            });
2855            if (isInternalTarget) return;
2856        }
2857
2858        // No settings metafield — app not migrated yet, use legacy flow
2859        if (!noSpySettings) {
2860            return getPrivacyDataLegacy();
2861        }
2862
2863        // Check activation status
2864        if (!noSpySettings.activation_status) return;
2865
2866        const settings = noSpySettings.settings || {};
2867
2868        // Access token / preview mode check (client-side)
2869        let noSpyAccessToken = getNoSpyAccessToken();
2870        if (noSpyAccessToken && noSpySettings.access_token && noSpyAccessToken === noSpySettings.access_token) {
2871            const tokenSessionDays = noSpySettings.token_session_days || 1;
2872            const expiresAt = storeNoSpyAccessToken(noSpyAccessToken, tokenSessionDays);
2873            createAndPreviewMode(expiresAt);
2874            return;
2875        }
2876
2877        // Check excludes from metafield
2878        let is_exclude = false;
2879        const excludes = noSpySettings.excludes || {};
2880        const exPages = excludes.pages || [];
2881        const exCollections = excludes.collections || [];
2882
2883        if (exPages.length > 0 || exCollections.length > 0) {
2884            let pathname = window.location.pathname.split('/');
2885            if (pathname.length > 2) {
2886                if (exPages.length > 0) {
2887                    if (exPages.includes(pathname[2])) {
2888                        is_exclude = true;
2889                    } else if (pathname[1] === 'products' && exPages.includes('/products/{handle}')) {
2890                        is_exclude = true;
2891                    } else if (pathname[1] === 'account') {
2892                        if (exPages.includes(window.location.pathname)) {
2893                            is_exclude = true;
2894                        } else if (pathname[2] === 'orders' && exPages.includes('/account/orders/{handle}')) {
2895                            is_exclude = true;
2896                        } else if (pathname[2] === 'login' && exPages.includes('/account/login')) {
2897                            is_exclude = true;
2898                        } else if (pathname[2] === 'register' && exPages.includes('/account/register')) {
2899                            is_exclude = true;
2900                        }
2901                    } else if (exPages.includes(window.location.pathname)) {
2902                        is_exclude = true;
2903                    }
2904                }
2905                if (exCollections.length > 0) {
2906                    if (pathname[1] === 'collections' && exCollections.includes(pathname[2])) {
2907                        is_exclude = true;
2908                    }
2909                }
2910            } else {
2911                if (exPages.includes(window.location.pathname)) {
2912                    is_exclude = true;
2913                }
2914            }
2915        }
2916
2917        // Read settings values
2918        let redirect = settings.redirect ?? 1;
2919        let copy_paste = settings.copy_paste ?? 1;
2920        let image_drag = settings.image_drag ?? 1;
2921        let right_click = settings.right_click ?? 1;
2922        let keys_shortcuts = settings.keys_shortcuts ?? 1;
2923        let text_selection = settings.text_selection ?? 1;
2924        let web_page_print = settings.web_page_print ?? 1;
2925        let spy_extensions = settings.spy_extensions ?? 1;
2926        let spy_extensions_block_mode = settings.spy_extensions_block_mode ?? 1;
2927        let spy_extensions_redirect_url = settings.spy_extensions_redirect_url ?? null;
2928        // These flags are INVERTED: 0/false means the feature is ON, which is why
2929        // every check below reads `== 0`. The admin toggle matches (SettingsToggle
2930        // renders `!enabled ? on : off`), so a stored `true` displays as "Off".
2931        // The default of 1 here therefore means "off" for a shop with no settings.
2932        let inspect_elements = settings.inspect_elements ?? 1;
2933        let inspect_elements_message = settings.inspect_elements_message ?? '';
2934        let block_spam_bots = settings.block_spam_bots ?? 1;
2935        let proxy_vpn_block = settings.proxy_vpn_block ?? 1;
2936        let proxy_vpn_redirect_url = settings.proxy_vpn_redirect_url ?? null;
2937        let tor_block = settings.tor_block ?? 1;
2938
2939        // Single API call: verify-visitor (geo-location + bot verification)
2940        let geoService = new GeoService();
2941        let cachedGeo = geoService.fetch(); // returns null if expired or missing
2942
2943        let ip = null;
2944        let geoLocationData = cachedGeo; // use cache immediately for redirect matching
2945        let botVerification = null;
2946        let reached = cachedGeo ? (localStorage.getItem('no-spy-geo-reached') === 'true') : false;
2947
2948        // Always call verify-visitor for bot verification + IP resolution.
2949        // Pass cached ASN so server skips the geo lookup when we already have geo.
2950        const sessionService = new SessionService();
2951        sessionService.init();
2952        try {
2953            const verifyRes = await fetch(`${noSpyBaseUrl}/verify-visitor`, {
2954                method: 'POST',
2955                headers: { 'Content-Type': 'application/json' },
2956                body: JSON.stringify({
2957                    shop: Shopify.shop,
2958                    session_id: NoSpyStore.sessionId || crypto.randomUUID(),
2959                    handle: window.location.pathname,
2960                    asn: cachedGeo?.asn || 0,
2961                    reached: reached ? 'true' : 'false',
2962                    geo: cachedGeo || null,
2963                }),
2964            });
2965            const verifyJson = await verifyRes.json();
2966            ip = verifyJson.ip;
2967            botVerification = verifyJson.bot_verification;
2968
2969            if (verifyJson.geo_location) {
2970                // Fresh geo from server (cache was empty) — cache it and use it
2971                geoLocationData = verifyJson.geo_location;
2972                geoService.saveToCache(geoLocationData, verifyJson.reached);
2973                reached = verifyJson.reached;
2974            }
2975
2976            // Attach session beacon unconditionally so duration is tracked regardless of which
2977            // features are enabled. Must happen before any potential redirect below.
2978            if (ip) {
2979                let beaconSent = false;
2980                const sendOnce = () => {
2981                    if (beaconSent) return;
2982                    beaconSent = true;
2983                    sessionService.sendBeacon(ip);
2984                };
2985                window.addEventListener('beforeunload', sendOnce);
2986                document.addEventListener('visibilitychange', () => {
2987                    if (document.visibilityState === 'hidden') sendOnce();
2988                });
2989            }
2990
2991            // Server pre-matched a redirect rule — act on it immediately (log already has correct status)
2992            if (redirect == 0 && verifyJson.redirect_matched && verifyJson.redirect_rule) {
2993                const rule = verifyJson.redirect_rule;
2994                if (rule.redirect_type === 'blocking_page') {
2995                    applyBlockingPage();
2996                    return;
2997                }
2998                if (rule.redirect_url) {
2999                    if (rule.redirect_type === 'internal') {
3000                        location.href = rule.redirect_url;
3001                    } else {
3002                        location.replace(toExternalUrl(rule.redirect_url));
3003                    }
3004                    return;
3005                }
3006            }
3007        } catch (e) {
3008            // verify-visitor failed — continue with cached geo if available, skip bot check
3009        }
3010
3011        if (!isWhitelistBots) {
3012            // Check server-side bot verification
3013            if (botVerification && botVerification.is_whitelisted_bot === true) {
3014                return false;
3015            }
3016
3017            // Client-side redirect evaluation (fallback when server didn't match)
3018            if (redirect == 0) {
3019                new RedirectFeature(ip, geoLocationData, botVerification);
3020            }
3021
3022            if (proxy_vpn_block == 0 || tor_block == 0) {
3023                const blockingTemplate = noSpySettings.blocking_template || null;
3024                new ProxyVpnTorBlockFeature(proxy_vpn_block == 0, tor_block == 0, proxy_vpn_redirect_url, {
3025                    proxy_vpn_show_blocking_page: !!settings.proxy_vpn_show_blocking_page,
3026                    tor_show_blocking_page: !!settings.tor_show_blocking_page,
3027                    blocking_template_landing_effect: blockingTemplate ? blockingTemplate.landing_effect !== false : true,
3028                    blocking_template_html: blockingTemplate?.html || null,
3029                    blocking_template_page_url: blockingTemplate?.page_url || null,
3030                });
3031            }
3032
3033            if (block_spam_bots == 0) {
3034                const allowedBots = noSpySettings.allowed_bots || {};
3035                new BlockSpamBotsFeature({
3036                    ip: ip,
3037                    threshold: 2.5,
3038                    debug: false,
3039                    is_block: true,
3040                    bot_verification: botVerification || { is_whitelisted_bot: false },
3041                    allowed_bots: allowedBots,
3042                });
3043            }
3044
3045            if (is_exclude) {
3046                return false;
3047            }
3048
3049            const blockingTemplate = noSpySettings.blocking_template || null;
3050            applyProtections({copy_paste, image_drag, right_click, keys_shortcuts, text_selection, web_page_print, spy_extensions, spy_extensions_block_mode, spy_extensions_redirect_url, inspect_elements, inspect_elements_message, inspect_elements_show_blocking_page: !!settings.inspect_elements_show_blocking_page, blocking_template_html: blockingTemplate?.html || null, blocking_template_landing_effect: blockingTemplate ? blockingTemplate.landing_effect !== false : true, blocking_template_page_url: blockingTemplate?.page_url || null});
3051        } else {
3052            return false;
3053        }
3054    };
3055
3056    // Theme editor (Shopify.designMode === true): never redirect, block, or log — the merchant
3057    // must be able to design the page without NoSpy navigating away or hiding content.
3058    if (window.Shopify && window.Shopify.designMode) {
3059        // no-op in the theme editor
3060    } else if (noSpySettings) {
3061        getPrivacyData();
3062    } else {
3063        getPrivacyDataLegacy();
3064    }
3065
3066    if(window.Shopify && window.Shopify.currency && window.Shopify.currency.rate) {
3067        window.localStorage.setItem('nospyExchangeRate', window.Shopify.currency.rate);
3068    }
3069</script>
3069
3070
3071
3072<!-- END app block --><!-- BEGIN app block: shopify://apps/judge-me-reviews/blocks/judgeme_core/61ccd3b1-a9f2-4160-9fe9-4fec8413e5d8 --><!-- Start of Judge.me Core -->
3073
3074
3075
3076
3077
3078
3079
3080<link rel="dns-prefetch" href="https://cdn.judge.me">
3081<link rel="dns-prefetch" href="https://cdn1.judge.me">
3082<link rel="dns-prefetch" href="https://api.judge.me">
3083
3084<script data-cfasync='false' class='jdgm-settings-script'>window.jdgmSettings={"pagination":5,"disable_web_reviews":false,"badge_no_review_text":"No reviews","badge_n_reviews_text":"{{ n }} review/reviews","hide_badge_preview_if_no_reviews":true,"badge_hide_text":false,"enforce_center_preview_badge":false,"widget_title":"Customer Reviews","widget_open_form_text":"Write a review","widget_close_form_text":"Cancel review","widget_refresh_page_text":"Refresh page","widget_summary_text":"Based on {{ number_of_reviews }} review/reviews","widget_no_review_text":"Be the first to write a review","widget_name_field_text":"Display name","widget_verified_name_field_text":"Verified Name (public)","widget_name_placeholder_text":"Display name","widget_required_field_error_text":"This field is required.","widget_email_field_text":"Email address","widget_verified_email_field_text":"Verified Email (private, can not be edited)","widget_email_placeholder_text":"Your email address","widget_email_field_error_text":"Please enter a valid email address.","widget_rating_field_text":"Rating","widget_review_title_field_text":"Review Title","widget_review_title_placeholder_text":"Give your review a title","widget_review_body_field_text":"Review content","widget_review_body_placeholder_text":"Start writing here...","widget_pictures_field_text":"Picture/Video (optional)","widget_submit_review_text":"Submit Review","widget_submit_verified_review_text":"Submit Verified Review","widget_submit_success_msg_with_auto_publish":"Thank y
3084ou! Please refresh the page in a few moments to see your review. You can remove or edit your review by logging into \u003ca href='https://judge.me/login' target='_blank' rel='nofollow noopener'\u003eJudge.me\u003c/a\u003e","widget_submit_success_msg_no_auto_publish":"Thank you! Your review will be published as soon as it is approved by the shop admin. You can remove or edit your review by logging into \u003ca href='https://judge.me/login' target='_blank' rel='nofollow noopener'\u003eJudge.me\u003c/a\u003e","widget_show_default_reviews_out_of_total_text":"Showing {{ n_reviews_shown }} out of {{ n_reviews }} reviews.","widget_show_all_link_text":"Show all","widget_show_less_link_text":"Show less","widget_author_said_text":"{{ reviewer_name }} said:","widget_days_text":"{{ n }} days ago","widget_weeks_text":"{{ n }} week/weeks ago","widget_months_text":"{{ n }} month/months ago","widget_years_text":"{{ n }} year/years ago","widget_yesterday_text":"Yesterday","widget_today_text":"Today","widget_replied_text":"\u003e\u003e {{ shop_name }} replied:","widget_read_more_text":"Read more","widget_reviewer_name_as_initial":"","widget_rating_filter_color":"#fbcd0a","widget_rating_filter_see_all_text":"See all reviews","widget_sorting_most_recent_text":"Most Recent","widget_sorting_highest_rating_text":"Highest Rating","widget_sorting_lowest_rating_text":"Lowest Rating","widget_sorting_with_pictures_text":"Only Pictures","widget_sorting_most_helpful_text":"Most Helpful","widget_open_question_form_text":"Ask a question","widget_reviews_subtab_text":"Reviews","widget_questions_subtab_text":"Questions","widget_question_label_text":"Question","widget_answer_label_text":"Answer","widget_question_placeholder_text":"Write your question here","widget_submit_question_text":"Submit Question","widget_question_submit_success_text":"Thank you for your question! We will notify you once it gets answered.","verified_badge_text":"Verified","verified_badge_bg_color":"","verified_badge_text_color":"","verified_badge_placement":"left-of-reviewer-name","widget_review_max_height":"","widget_hide_border":false,"widget_social_share":false,"widget_thumb":false,"widget_review_location_show":false,"widget_location_format":"","all_reviews_include_out_of_store_products":true,"all_reviews_out_of_store_text":"(out of store)","all_reviews_pagination":100,"all_reviews_product_name_prefix_text":"about","enable_review_pictures":true,"enable_question_anwser":false,"widget_theme":"default","review_date_format":"mm/dd/yyyy","default_sort_method":"most-recent","widget_product_reviews_subtab_text":"Product Reviews","widget_shop_reviews_subtab_text":"Shop Reviews","widget_other_products_reviews_text":"Reviews for other products","widget_store_reviews_subtab_text":"Store reviews","widget_no_store_reviews_text":"This store hasn't received any reviews yet","widget_web_restriction_product_reviews_text":"This product hasn't received any reviews yet","widget_no_items_text":"No items found","widget_show_more_text":"Show more","widget_write_a_store_review_text":"Write a Store Review","widget_other_languages_heading":"Reviews in Other Languages","widget_translate_review_text":"Translate review to {{ language }}","widget_translating_review_text":"Translating...","widget_show_original_translation_text":"Show original ({{ language }})","widget_translate_review_failed_text":"Review couldn't be translated.","widget_translate_review_retry_text":"Retry","widget_translate_review_try_again_later_text":"Try again later","show_product_url_for_grouped_product":false,"widget_sorting_pictures_first_text":"Pictures First","show_pictures_on_all_rev_page_mobile":false,"show_pictures_on_all_rev_page_desktop":false,"floating_tab_hide_mobile_install_preference":false,"floating_tab_button_name":"★ Reviews","floating_tab_title":"Let customers speak for us","floating_tab_button_color":"","floating_tab_button_background_color":"","floating_tab_url":"","floating_tab_url_enabled":false,"floating_tab_tab_style":"text","all_reviews_text_badge_text":"Customers rate us {{ shop.metafields.judgeme.all_reviews_rating | round: 1 }}/5 based on {{ shop.metafields.judgeme.all_reviews_count }} reviews.","all_reviews_text_badge_text_branded_style":"{{ shop.metafields.judgeme.all_reviews_rating | round: 1 }} out of 5 stars based on {{ shop.metafields.judgeme.all_reviews_count }} reviews","is_all_reviews_text_badge_a_link":false,"show_stars_for_all_reviews_text_badge":false,"all_reviews_text_badge_url":"","all_reviews_text_style":"branded","all_reviews_text_color_style":"judgeme_brand_color","all_reviews_text_color":"#108474","all_reviews_text_show_jm_brand":true,"featured_carousel_show_header":true,"featured_carousel_title":"Let customers speak for us","testimonials_carousel_title":"Customers are saying","videos_carousel_title":"Real customer stories","cards_carousel_title":"Customers are saying","featured_carousel_count_text":"from {{ n }} reviews","featured_carousel_add_link_to_all_reviews_page":false,"featured_carousel_url":"","featured_carousel_show_images":true,"featured_carousel_autoslide_interval":5,"featured_carousel_arrows_on_the_sides":false,"featured_carousel_height":250,"featured_carousel_width":80,"featured_carousel_image_size":0,"featured_carousel_image_height":250,"featured_carousel_arrow_color":"#eeeeee","verified_count_badge_style":"branded","verified_count_badge_orientation":"horizontal","verified_count_badge_color_style":"judgeme_brand_color","verified_count_badge_color":"#108474","is_verified_count_badge_a_link":false,"verified_count_badge_url":"","verified_count_badge_show_jm_brand":true,"widget_rating_preset_default":5,"widget_first_sub_tab":"product-reviews","widget_show_histogram":true,"widget_histogram_use_custom_color":false,"widget_pagination_use_custom_color":false,"widget_star_use_custom_color":false,"widget_verified_badge_use_custom_color":false,"widget_write_review_use_custom_color":false,"picture_reminder_submit_button":"Upload Pictures","enable_review_videos":false,"mute_video_by_default":false,"widget_sorting_videos_first_text":"Videos First","widget_review_pending_text":"Pending","featured_carousel_items_for_large_screen":3,"social_share_options_order":"Facebook,Twitter","remove_microdata_snippet":false,"disable_json_ld":false,"enable_json_ld_products":false,"preview_badge_show_question_text":false,"preview_badge_no_question_text":"No questions","preview_badge_n_question_text":"{{ number_of_questions }} question/questions","qa_badge_show_icon":false,"qa_badge_position":"same-row","remove_judgeme_branding":false,"widget_add_search_bar":false,"widget_search_bar_placeholder":"Search","widget_sorting_verified_only_text":"Verified only","featured_carousel_theme":"default","featured_carousel_show_rating":true,"featured_carousel_show_title":true,"featured_carousel_show_body":true,"featured_carousel_show_date":false,"featured_carousel_show_reviewer":true,"featured_carousel_show_product":false,"featured_carousel_header_background_color":"#108474","featured_carousel_header_text_color":"#ffffff","featured_carousel_name_product_separator":"reviewed","featured_carousel_full_star_background":"#108474","featured_carousel_empty_star_background":"#dadada","featured_carousel_vertical_theme_background":"#f9fafb","featured_carousel_verified_badge_enable":true,"featured_carousel_verified_badge_color":"true","featured_carousel_border_style":"round","featured_carousel_review_line_length_limit":3,"featured_carousel_more_reviews_button_text":"Read more reviews","featured_carousel_view_product_button_text":"View product","all_reviews_page_load_reviews_on":"scroll","all_reviews_page_load_more_text":"Load More Reviews","disable_fb_tab_reviews":false,"enable_ajax_cdn_cache":false,"widget_advanced_speed_features":5,"widget_public_name_text":"displayed publicly like","default_reviewer_name":"John Smith","default_reviewer_name_has_non_latin":true,"widget_reviewer_anonymous":"Anonymous","medals_widget_title":"Judge.me Review Medals","medals_widget_background_color":"#f9fafb","medals_widget_position":"footer_all_pages","medals_widget_border_color":"#f9fafb","medals_widget_verified_text_position":"left","medals_widget_use_monochromatic_version":false,"medals_widget_elements_color":"#108474","show_reviewer_avatar":true,"widget_invalid_yt_video_url_error_text":"Not a YouTube video URL","widget_max_length_field_error_text":"Please enter no more than {0} characters.","widget_show_country_flag":false,"widget_show_collected_via_shop_app":true,"widget_verified_by_shop_badge_style":"light","widget_verified_by_shop_text":"Verified by Shop","widget_show_photo_gallery":false,"widget_load_with_code_splitting":true,"widget_ugc_install_preference":false,"widget_ugc_title":"Made by us, Shared by you","widget_ugc_subt
3084itle":"Tag us to see your picture featured in our page","widget_ugc_arrows_color":"#ffffff","widget_ugc_primary_button_text":"Buy Now","widget_ugc_primary_button_background_color":"#108474","widget_ugc_primary_button_text_color":"#ffffff","widget_ugc_primary_button_border_width":"0","widget_ugc_primary_button_border_style":"none","widget_ugc_primary_button_border_color":"#108474","widget_ugc_primary_button_border_radius":"25","widget_ugc_secondary_button_text":"Load More","widget_ugc_secondary_button_background_color":"#ffffff","widget_ugc_secondary_button_text_color":"#108474","widget_ugc_secondary_button_border_width":"2","widget_ugc_secondary_button_border_style":"solid","widget_ugc_secondary_button_border_color":"#108474","widget_ugc_secondary_button_border_radius":"25","widget_ugc_reviews_button_text":"View Reviews","widget_ugc_reviews_button_background_color":"#ffffff","widget_ugc_reviews_button_text_color":"#108474","widget_ugc_reviews_button_border_width":"2","widget_ugc_reviews_button_border_style":"solid","widget_ugc_reviews_button_border_color":"#108474","widget_ugc_reviews_button_border_radius":"25","widget_ugc_reviews_button_link_to":"judgeme-reviews-page","widget_ugc_show_post_date":true,"widget_ugc_max_width":"800","widget_rating_metafield_value_type":true,"widget_primary_color":"#108474","widget_enable_secondary_color":false,"widget_secondary_color":"#edf5f5","widget_summary_average_rating_text":"{{ average_rating }} out of 5","widget_media_grid_title":"Customer photos \u0026 videos","widget_media_grid_see_more_text":"See more","widget_round_style":false,"widget_show_product_medals":true,"widget_verified_by_judgeme_text":"Verified by Judge.me","widget_show_store_medals":true,"widget_verified_by_judgeme_text_in_store_medals":"Verified by Judge.me","widget_media_field_exceed_quantity_message":"Sorry, we can only accept {{ max_media }} for one review.","widget_media_field_exceed_limit_message":"{{ file_name }} is too large, please select a {{ media_type }} less than {{ size_limit }}MB.","widget_review_submitted_text":"Review Submitted!","widget_question_submitted_text":"Question Submitted!","widget_close_form_text_question":"Cancel","widget_write_your_answer_here_text":"Write your answer here","widget_enabled_branded_link":true,"widget_show_collected_by_judgeme":true,"widget_reviewer_name_color":"","widget_write_review_text_color":"","widget_write_review_bg_color":"","widget_collected_by_judgeme_text":"collected by Judge.me","widget_pagination_type":"standard","widget_load_more_text":"Load More","widget_load_more_color":"#108474","widget_full_review_text":"Full Review","widget_read_more_reviews_text":"Read More Reviews","widget_read_questions_text":"Read Questions","widget_questions_and_answers_text":"Questions \u0026 Answers","widget_verified_by_text":"Verified by","widget_verified_text":"Verified","widget_number_of_reviews_text":"{{ number_of_reviews }} reviews","widget_back_button_text":"Back","widget_next_button_text":"Next","widget_custom_forms_filter_button":"Filters","custom_forms_style":"horizontal","widget_show_review_information":false,"how_reviews_are_collected":"How reviews are collected?","widget_show_review_keywords":false,"widget_gdpr_statement":"How we use your data: We'll only contact you about the review you left, and only if necessary. By submitting your review, you agree to Judge.me's \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms\u003c/a\u003e, \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy\u003c/a\u003e and \u003ca href='https://judge.me/content-policy' target='_blank' rel='nofollow noopener'\u003econtent\u003c/a\u003e policies.","widget_multilingual_sorting_enabled":false,"widget_translate_review_content_enabled":false,"widget_translate_review_content_method":"manual","popup_widget_review_selection":"automatically_with_pictures","popup_widget_round_border_style":true,"popup_widget_show_title":true,"popup_widget_show_body":true,"popup_widget_show_reviewer":false,"popup_widget_show_product":true,"popup_widget_show_pictures":true,"popup_widget_use_review_picture":true,"popup_widget_show_on_home_page":true,"popup_widget_show_on_product_page":true,"popup_widget_show_on_collection_page":true,"popup_widget_show_on_cart_page":true,"popup_widget_position":"bottom_left","popup_widget_first_review_delay":5,"popup_widget_duration":5,"popup_widget_interval":5,"popup_widget_review_count":5,"popup_widget_hide_on_mobile":true,"review_snippet_widget_round_border_style":true,"review_snippet_widget_card_color":"#FFFFFF","review_snippet_widget_slider_arrows_background_color":"#FFFFFF","review_snippet_widget_slider_arrows_color":"#000000","review_snippet_widget_star_color":"#108474","show_product_variant":false,"all_reviews_product_variant_label_text":"Variant: ","widget_show_verified_branding":true,"widget_ai_summary_title":"Customers say","widget_ai_summary_disclaimer":"AI-powered review summary based on recent customer reviews","widget_show_ai_summary":false,"widget_show_ai_summary_bg":false,"widget_show_review_title_input":true,"redirect_reviewers_invited_via_email":"review_widget","request_store_review_after_product_review":false,"request_review_other_products_in_order":false,"review_form_color_scheme":"default","review_form_corner_style":"square","review_form_star_color":{},"review_form_text_color":"#333333","review_form_background_color":"#ffffff","review_form_field_background_color":"#fafafa","review_form_button_color":{},"review_form_button_text_color":"#ffffff","review_form_modal_overlay_color":"#000000","review_content_screen_title_text":"How would you rate this product?","review_content_introduction_text":"We would love it if you would share a bit about your experience.","store_review_form_title_text":"How would you rate this store?","store_review_form_introduction_text":"We would love it if you would share a bit about your experience.","show_review_guidance_text":true,"one_star_review_guidance_text":"Poor","five_star_review_guidance_text":"Great","customer_information_screen_title_text":"About you","customer_information_introduction_text":"Please tell us more about you.","custom_questions_screen_title_text":"Your experience in more detail","custom_questions_introduction_text":"Here are a few questions to help us understand more about your experience.","review_submitted_screen_title_text":"Thanks for your review!","review_submitted_screen_thank_you_text":"We are processing it and it will appear on the store soon.","review_submitted_screen_email_verification_text":"Please confirm your email by clicking the link we just sent you. This helps us keep reviews authentic.","review_submitted_request_store_review_text":"Would you like to share your experience of shopping with us?","review_submitted_review_other_products_text":"Would you like to review these products?","store_review_screen_title_text":"Would you like to share your experience of shopping with us?","store_review_introduction_text":"We value your feedback and use it to improve. Please share any thoughts or suggestions you have.","reviewer_media_screen_title_picture_text":"Share a picture","reviewer_media_introduction_picture_text":"Upload a photo to support your review.","reviewer_media_screen_title_video_text":"Share a video","reviewer_media_introduction_video_text":"Upload a video to support your review.","reviewer_media_screen_title_picture_or_video_text":"Share a picture or video","reviewer_media_introduction_picture_or_video_text":"Upload a photo or video to support your review.","reviewer_media_
3084youtube_url_text":"Paste your Youtube URL here","advanced_settings_next_step_button_text":"Next","advanced_settings_close_review_button_text":"Close","modal_write_review_flow":false,"write_review_flow_required_text":"Required","write_review_flow_privacy_message_text":"We respect your privacy.","write_review_flow_anonymous_text":"Post review as anonymous","write_review_flow_visibility_text":"This won't be visible to other customers.","write_review_flow_multiple_selection_help_text":"Select as many as you like","write_review_flow_single_selection_help_text":"Select one option","write_review_flow_required_field_error_text":"This field is required","write_review_flow_invalid_email_error_text":"Please enter a valid email address","write_review_flow_max_length_error_text":"Max. {{ max_length }} characters.","write_review_flow_media_upload_text":"\u003cb\u003eClick to upload\u003c/b\u003e or drag and drop","write_review_flow_gdpr_statement":"We'll only contact you about your review if necessary. By submitting your review, you agree to our \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms and conditions\u003c/a\u003e and \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy policy\u003c/a\u003e.","rating_only_reviews_enabled":false,"show_negative_reviews_help_screen":false,"new_review_flow_help_screen_rating_threshold":3,"negative_review_resolution_screen_title_text":"Tell us more","negative_review_resolution_text":"Your experience matters to us. If there were issues with your purchase, we're here to help. Feel free to reach out to us, we'd love the opportunity to make things right.","negative_review_resolution_button_text":"Contact us","negative_review_resolution_proceed_with_review_text":"Leave a review","negative_review_resolution_subject":"Issue with purchase from {{ shop_name }}.{{ order_name }}","preview_badge_collection_page_install_status":false,"widget_review_custom_css":"","preview_badge_custom_css":"","preview_badge_stars_count":"5-stars","featured_carousel_custom_css":"","floating_tab_custom_css":"","all_reviews_widget_custom_css":"","medals_widget_custom_css":"","verified_badge_custom_css":"","all_reviews_text_custom_css":"","transparency_badges_collected_via_store_invite":false,"transparency_badges_from_another_provider":false,"transparency_badges_collected_from_store_visitor":false,"transparency_badges_collected_by_verified_review_provider":false,"transparency_badges_earned_reward":false,"transparency_badges_collected_via_store_invite_text":"Review collected via store invitation","transparency_badges_from_another_provider_text":"Review collected from another provider","transparency_badges_collected_from_store_visitor_text":"Review collected from a store visitor","transparency_badges_written_in_google_text":"Review written in Google","transparency_badges_written_in_etsy_text":"Review written in Etsy","transparency_badges_written_in_shop_app_text":"Review written in Shop App","transparency_badges_earned_reward_text":"Review earned a reward for future purchase","product_review_widget_per_page":10,"widget_store_review_label_text":"Review about the store","checkout_comment_extension_title_on_product_page":"Customer Comments","checkout_comment_extension_num_latest_comment_show":5,"checkout_comment_extension_format":"name_and_timestamp","checkout_comment_customer_name":"last_initial","checkout_comment_comment_notification":true,"preview_badge_collection_page_install_preference":false,"preview_badge_home_page_install_preference":false,"preview_badge_product_page_install_preference":false,"review_widget_install_preference":"","review_carousel_install_preference":false,"floating_reviews_tab_install_preference":"none","verified_reviews_count_badge_install_preference":false,"all_reviews_text_install_preference":false,"review_widget_best_location":false,"judgeme_medals_install_preference":false,"review_widget_revamp_enabled":false,"review_widget_qna_enabled":false,"review_widget_header_theme":"minimal","review_widget_widget_title_enabled":true,"review_widget_header_text_size":"medium","review_widget_header_text_weight":"regular","review_widget_average_rating_style":"compact","review_widget_bar_chart_enabled":true,"review_widget_bar_chart_type":"numbers","review_widget_bar_chart_style":"standard","review_widget_expanded_media_gallery_enabled":false,"review_widget_reviews_section_theme":"standard","review_widget_image_style":"thumbnails","review_widget_review_image_ratio":"square","review_widget_stars_size":"medium","review_widget_verified_badge":"standard_text","review_widget_review_title_text_size":"medium","review_widget_review_text_size":"medium","review_widget_review_text_length":"medium","review_widget_number_of_columns_desktop":3,"review_widget_carousel_transition_speed":5,"review_widget_custom_questions_answers_display":"always","review_widget_button_text_color":"#FFFFFF","review_widget_text_color":"#000000","review_widget_lighter_text_color":"#7B7B7B","review_widget_corner_styling":"soft","review_widget_review_word_singular":"review","review_widget_review_word_plural"
3084:"reviews","review_widget_voting_label":"Helpful?","review_widget_shop_reply_label":"Reply from {{ shop_name }}:","review_widget_filters_title":"Filters","qna_widget_question_word_singular":"Question","qna_widget_question_word_plural":"Questions","qna_widget_answer_reply_label":"Answer from {{ answerer_name }}:","qna_content_screen_title_text":"Ask a question about this product","qna_widget_question_required_field_error_text":"Please enter your question.","qna_widget_flow_gdpr_statement":"We'll only contact you about your question if necessary. By submitting your question, you agree to our \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eterms and conditions\u003c/a\u003e and \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eprivacy policy\u003c/a\u003e.","qna_widget_question_submitted_text":"Thanks for your question!","qna_widget_close_form_text_question":"Close","qna_widget_question_submit_success_text":"We’ll notify you by email when your question is answered.","all_reviews_widget_v2025_enabled":false,"all_reviews_widget_v2025_header_theme":"default","all_reviews_widget_v2025_widget_title_enabled":true,"all_reviews_widget_v2025_header_text_size":"medium","all_reviews_widget_v2025_header_text_weight":"regular","all_reviews_widget_v2025_average_rating_style":"compact","all_reviews_widget_v2025_bar_chart_enabled":true,"all_reviews_widget_v2025_bar_chart_type":"numbers","all_reviews_widget_v2025_bar_chart_style":"standard","all_reviews_widget_v2025_expanded_media_gallery_enabled":false,"all_reviews_widget_v2025_show_store_medals":true,"all_reviews_widget_v2025_show_photo_gallery":true,"all_reviews_widget_v2025_show_review_keywords":false,"all_reviews_widget_v2025_show_ai_summary":false,"all_reviews_widget_v2025_show_ai_summary_bg":false,"all_reviews_widget_v2025_add_search_bar":false,"all_reviews_widget_v2025_default_sort_method":"most-recent","all_reviews_widget_v2025_reviews_per_page":10,"all_reviews_widget_v2025_reviews_section_theme":"default","all_reviews_widget_v2025_image_style":"thumbnails","all_reviews_widget_v2025_review_image_ratio":"square","all_reviews_widget_v2025_stars_size":"medium","all_reviews_widget_v2025_verified_badge":"bold_badge","all_reviews_widget_v2025_review_title_text_size":"medium","all_reviews_widget_v2025_review_text_size":"medium","all_reviews_widget_v2025_review_text_length":"medium","all_reviews_widget_v2025_number_of_columns_desktop":3,"all_reviews_widget_v2025_carousel_transition_speed":5,"all_reviews_widget_v2025_custom_questions_answers_display":"always","all_reviews_widget_v2025_show_product_variant":false,"all_reviews_widget_v2025_show_reviewer_avatar":true,"all_reviews_widget_v2025_reviewer_name_as_initial":"","all_reviews_widget_v2025_review_location_show":false,"all_reviews_widget_v2025_location_format":"","all_reviews_widget_v2025_show_country_flag":false,"all_reviews_widget_v2025_verified_by_shop_badge_style":"light","all_reviews_widget_v2025_social_share":false,"all_reviews_widget_v2025_social_share_options_order":"Facebook,Twitter,LinkedIn,Pinterest","all_reviews_widget_v2025_pagination_type":"standard","all_reviews_widget_v2025_button_text_color":"#FFFFFF","all_reviews_widget_v2025_text_color":"#000000","all_reviews_widget_v2025_lighter_text_color":"#7B7B7B","all_reviews_widget_v2025_corner_styling":"soft","all_reviews_widget_v2025_title":"Customer reviews","all_reviews_widget_v2025_ai_summary_title":"Customers say about this store","all_reviews_widget_v2025_no_review_text":"Be the first to write a review","platform":"shopify","branding_url":"https://app.judge.me/reviews","branding_text":"Powered by Judge.me","locale":"en","reply_name":"Kawaii Presenter","widget_version":"3.0","footer":true,"autopublish":true,"review_dates":true,"enable_custom_form":false,"shop_locale":"en","enable_multi_locales_translations":false,"show_review_title_input":true,"review_verification_email_status":"always","can_be_branded":false,"reply_name_text":"Kawaii Presenter"};</script>
3084 <style class='jdgm-settings-style'>.jdgm-xx{left:0}:root{--jdgm-primary-color: #108474;--jdgm-secondary-color: rgba(16,132,116,0.1);--jdgm-star-color: #108474;--jdgm-write-review-text-color: white;--jdgm-write-review-bg-color: #108474;--jdgm-paginate-color: #108474;--jdgm-border-radius: 0;--jdgm-reviewer-name-color: #108474}.jdgm-histogram__bar-content{background-color:#108474}.jdgm-rev[data-verified-buyer=true] .jdgm-rev__icon.jdgm-rev__icon:after,.jdgm-rev__buyer-badge.jdgm-rev__buyer-badge{color:white;background-color:#108474}.jdgm-review-widget--small .jdgm-gallery.jdgm-gallery .jdgm-gallery__thumbnail-link:nth-child(8) .jdgm-gallery__thumbnail-wrapper.jdgm-gallery__thumbnail-wrapper:before{content:"See more"}@media only screen and (min-width: 768px){.jdgm-gallery.jdgm-gallery .jdgm-gallery__thumbnail-link:nth-child(8) .jdgm-gallery__thumbnail-wrapper.jdgm-gallery__thumbnail-wrapper:before{content:"See more"}}.jdgm-prev-badge[data-average-rating='0.00']{display:none !important}.jdgm-author-all-initials{display:none !important}.jdgm-author-last-initial{display:none !important}.jdgm-rev-widg__title{visibility:hidden}.jdgm-rev-widg__summary-text{visibility:hidden}.jdgm-prev-badge__text{visibility:hidden}.jdgm-rev__prod-link-prefix:before{content:'about'}.jdgm-rev__variant-label:before{content:'Variant: '}.jdgm-rev__out-of-store-text:before{content:'(out of store)'}@media only screen and (min-width: 768px){.jdgm-rev__pics .jdgm-rev_all-rev-page-picture-separator,.jdgm-rev__pics .jdgm-rev__product-picture{display:none}}@media only screen and (max-width: 768px){.jdgm-rev__pics .jdgm-rev_all-rev-page-picture-separator,.jdgm-rev__pics .jdgm-rev__product-picture{display:none}}.jdgm-preview-badge[data-template="product"]{display:none !important}.jdgm-preview-badge[data-template="collection"]{display:none !important}.jdgm-preview-badge[data-template="index"]{display:none !important}.jdgm-review-widget[data-from-snippet="true"]{display:none !important}.jdgm-verified-count-badget[data-from-snippet="true"]{display:none !important}.jdgm-carousel-wrapper[data-from-snippet="true"]{display:none !important}.jdgm-all-reviews-text[data-from-snippet="true"]{display:none !important}.jdgm-medals-section[data-from-snippet="true"]{display:none !important}.jdgm-ugc-media-wrapper[data-from-snippet="true"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_via_store_invitation"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_from_another_provider"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_from_store_visitor"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_written_in_etsy"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_written_in_google_business"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_written_in_shop_app"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_earned_for_future_purchase"]{display:none !important}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__cards-container .jdgm-rev-snippet-card{border-radius:8px;background:#fff}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__cards-container .jdgm-rev-snippet-card__rev-rating .jdgm-star{color:#108474}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__prev-btn,.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__next-btn{border-radius:50%;background:#fff}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__prev-btn>svg,.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__next-btn>svg{fill:#000}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jm-mfp-content,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__icon,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__pic-img,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__reply{border-radius:8px}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev[data-verified-buyer="true"] .jdgm-full-rev__icon::after{border-radius:8px}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-rev__buyer-badge{border-radius:calc( 8px / 2 )}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-full-rev__replier::before{content:'Kawaii Presenter'}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-full-rev__product-button{border-radius:calc( 8px * 6 )}
3085</style> <style class='jdgm-settings-style'></style>
3086
3087  
3088  
3089  
3090  <style class='jdgm-miracle-styles'>
3091  @-webkit-keyframes jdgm-spin{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes jdgm-spin{0%{-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);-ms-transform:rotate(359deg);transform:rotate(359deg)}}@font-face{font-family:'JudgemeStar';src:url("data:application/x-font-woff;charset=utf-8;base64,d09GRgABAAAAAAScAA0AAAAABrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAEgAAAABoAAAAcbyQ+3kdERUYAAARgAAAAHgAAACAAMwAGT1MvMgAAAZgAAABGAAAAVi+vS9xjbWFwAAAB8AAAAEAAAAFKwBMjvmdhc3AAAARYAAAACAAAAAj//wADZ2x5ZgAAAkAAAAEJAAABdH33LXtoZWFkAAABMAAAAC0AAAA2BroQKWhoZWEAAAFgAAAAHAAAACQD5QHQaG10eAAAAeAAAAAPAAAAFAYAAABsb2NhAAACMAAAAA4AAAAOAO4AeG1heHAAAAF8AAAAHAAAACAASgAvbmFtZQAAA0wAAADeAAABkorWfVZwb3N0AAAELAAAACkAAABEp3ubLXgBY2BkYADhPPP4OfH8Nl8ZuJkYQODS2fRrCPr/aSYGxq1ALgcDWBoAO60LkwAAAHgBY2BkYGDc+v80gx4TAwgASaAICmABAFB+Arl4AWNgZGBgYGPQYWBiAAIwyQgWc2AAAwAHVQB6eAFjYGRiYJzAwMrAwejDmMbAwOAOpb8ySDK0MDAwMbByMsCBAAMCBKS5pjA4PGB4wMR44P8BBj3GrQymQGFGkBwAjtgK
3091/gAAeAFjYoAAEA1jAwAAZAAHAHgB3crBCcAwDEPRZydkih567CDdf4ZskmLwFBV8xBfCaC4BXkOUmx4sU0h2ngNb9V0vQCxaRKIAevT7fGWuBrEAAAAAAAAAAAA0AHgAugAAeAF9z79Kw1AUx/FzTm7un6QmJtwmQ5Bg1abgEGr/BAqlU6Gju+Cgg1MkQ/sA7Vj7BOnmO/gUvo2Lo14NqIO6/IazfD8HEODtmQCfoANwNsyp2/GJt3WKQrd1NLiYYWx2PBqOsmJMEOznPOTzfSCrhAtbbLdmeFLJV9eKd63WLrZcIcuaEVdssWCKM6pLCfTVOYbz/0pNSMSZKLIZpvh78sAUH6PlMrreTCabP9r+Z/puPZ2ur/RqpQHgh+MIegCnXeM4MRAPjYN//5tj4ZtTjkFqEdmeMShlEJ7tVAly2TAkx6R68Fl4E/aVvn8JqHFQ4JS1434gXKcuL31dDhzs3YbsEOAd/IU88gAAAHgBfY4xTgMxEEVfkk0AgRCioKFxQYd2ZRtpixxgRU2RfhU5q5VWseQ4JdfgAJyBlmNwAM7ABRhZQ0ORwp7nr+eZAa54YwYg9zm3ynPOeFRe8MCrciXOh/KSS76UV5L/iDmrLiS5AeU519wrL3jmSbkS5115yR2fyivJv9kx0ZMZ2RLZw27q87iNQi8EBo5FSPIMw3HqBboi5lKTGAGDp8FKXWP+t9TU01Lj5His1Ba6uM9dTEMwvrFmbf5GC/q2drW3ruXUhhsCiQOjznFlCzYhHUZp4xp76vsvQh89CQAAeAFjYGJABowM6IANLMrEyMTIzMjCXpyRWJBqZshWXJJYBKOMAFHFBucAAAAAAAAB//8AAngBY2BkYGDgA2IJBhBgAvKZGViBJAuYxwAABJsAOgAAeAFjYGBgZACCk535hiD60tn0azAaAEqpB6wAAA==") format("woff");font-weight:normal;font-style:normal}.jdgm-star{font-family:'JudgemeStar';display:inline !important;text-decoration:none !important;padding:0 4px 0 0 !important;margin:0 !important;font-weight:bold;opacity:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.jdgm-star:hover{opacity:1}.jdgm-star:last-of-type{padding:0 !important}.jdgm-star.jdgm--on:before{content:"\e000"}.jdgm-star.jdgm--off:before{content:"\e001"}.jdgm-star.jdgm--half:before{content:"\e002"}.jdgm-widget *{margin:0;line-height:1.4;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch}.jdgm-hidden{display:none !important;visibility:hidden !important}.jdgm-temp-hidden{display:none}.jdgm-spinner{width:40px;height:40px;margin:auto;border-radius:50%;border-top:2px solid #eee;border-right:2px solid #eee;border-bottom:2px solid #eee;border-left:2px solid #ccc;-webkit-animation:jdgm-spin 0.8s infinite linear;animation:jdgm-spin 0.8s infinite linear}.jdgm-prev-badge{display:block !important}
3092
3093</style>
3094
3095
3096  
3097  
3098   
3099
3100
3101
3102
3103<script data-cfasync='false' class='jdgm-script'>
3104!function(e){window.jdgm=window.jdgm||{};
3105/* INF-1976 */
3106var _jdgmBlocked=function(){var raw=(window.jdgmSettings||{}).hostname_allowlist;var list=(raw==null?"":""+raw).split(/[\s,]+/).map(function(h){return h.trim().toLowerCase().replace(/\.$/,"");}).filter(function(h){return h;});if(!list.length)return false;var host=(e.location.hostname||"").toLowerCase().replace(/\.$/,"");if(/(^|\.)shopifypreview\.com$/.test(host))return false;var bare=host.replace(/^www\./,"");for(var i=0;i<list.length;i++){var en=list[i];if(en.indexOf("*.")===0){var b=en.slice(2);if(host===b||host.slice(-(b.length+1))==="."+b)return false;}else if(bare===en.replace(/^www\./,""))return false;}return true;}();
3107if(_jdgmBlocked){jdgm._loaderExecuted=true;jdgm._blocked=true;var _jdgmS=e.createElement("style");_jdgmS.textContent='[class^="jdgm-"],[class*=" jdgm-"]{display:none !important}';(e.head||e.documentElement).appendChild(_jdgmS);return;}
3108jdgm.CDN_HOST="https://cdnwidget.judge.me/",jdgm.CDN_HOST_ALT="https://cdn2.judge.me/cdn/widget_frontend/",jdgm.API_HOST="https://api.judge.me/",jdgm.CDN_BASE_URL="https://cdn.shopify.com/extensions/01a11b30-98d5-7ae3-b2f4-f79b3c6f32c4/judgeme-775/assets/",jdgm.CDN_API_HOST="https://cdn.judge.me/",
3109jdgm.docReady=function(d){(e.attachEvent?"complete"===e.readyState:"loading"!==e.readyState)?
3110setTimeout(d,0):e.addEventListener("DOMContentLoaded",d)},jdgm.loadCSS=function(d,t,o,a){
3111!o&&jdgm.loadCSS.requestedUrls.indexOf(d)>=0||(jdgm.loadCSS.requestedUrls.push(d),
3112(a=e.createElement("link")).rel="stylesheet",a.class="jdgm-stylesheet",a.media="nope!",
3113a.href=d,a.onload=function(){this.media="all",t&&setTimeout(t)},e.body.appendChild(a))},
3114jdgm.loadCSS.requestedUrls=[],jdgm.loadJS=function(e,d){var t=new XMLHttpRequest;
3115t.onreadystatechange=function(){4===t.readyState&&t.status>=200&&t.status<300&&(Function(t.response)(),d&&d(t.response))},
3116t.open("GET",e),t.onerror=function(){if(e.indexOf(jdgm.CDN_HOST)===0&&jdgm.CDN_HOST_ALT!==jdgm.CDN_HOST){var f=e.replace(jdgm.CDN_HOST,jdgm.CDN_HOST_ALT);jdgm.loadJS(f,d)}},t.send()},jdgm.docReady((function(){(window.jdgmLoadCSS||e.querySelectorAll(
3117".jdgm-widget, .jdgm-all-reviews-page").length>0)&&(jdgmSettings.widget_load_with_code_splitting?
3118parseFloat(jdgmSettings.widget_version)>=3?jdgm.loadCSS(jdgm.CDN_BASE_URL+"widget_v3_base.css"):
3119jdgm.loadCSS(jdgm.CDN_BASE_URL+"widget_base.css"):jdgm.loadCSS(jdgm.CDN_BASE_URL+"shopify_v2.css")
3120)}))}(document);
3121</script>
3121
3122<noscript><link rel="stylesheet" type="text/css" media="all" href="https://cdn.shopify.com/extensions/01a11b30-98d5-7ae3-b2f4-f79b3c6f32c4/judgeme-775/assets/shopify_v2.css"></noscript>
3123
3124<!-- BEGIN app snippet: theme_fix_tags -->
3124<script>
3125  (function() {
3126    var jdgmThemeFixes = null;
3127    if (!jdgmThemeFixes) return;
3128
3129    // "All themes" fix: CSS and JS applied on every theme. CSS is injected
3130    // before the per-theme fix so the theme-specific CSS wins the cascade.
3131    // HTML is never applied globally (too risky).
3132    var allThemesFix = jdgmThemeFixes['all'];
3133    if (allThemesFix && allThemesFix.css) {
3134      var allStyleTag = document.createElement('style');
3135      allStyleTag.classList.add('jdgm-theme-fix-style-all');
3136      allStyleTag.innerHTML = allThemesFix.css;
3137      document.head.append(allStyleTag);
3138    };
3139
3140    if (allThemesFix && allThemesFix.js) {
3141      var allScriptTag = document.createElement('script');
3142      allScriptTag.classList.add('jdgm-theme-fix-script-all');
3143      allScriptTag.innerHTML = allThemesFix.js;
3144      document.head.append(allScriptTag);
3145    };
3146
3147    var thisThemeFix = jdgmThemeFixes[Shopify.theme.id];
3148    if (!thisThemeFix) return;
3149
3150    if (thisThemeFix.html) {
3151      document.addEventListener("DOMContentLoaded", function() {
3152        var htmlDiv = document.createElement('div');
3153        htmlDiv.classList.add('jdgm-theme-fix-html');
3154        htmlDiv.innerHTML = thisThemeFix.html;
3155        document.body.append(htmlDiv);
3156      });
3157    };
3158
3159    if (thisThemeFix.css) {
3160      var styleTag = document.createElement('style');
3161      styleTag.classList.add('jdgm-theme-fix-style');
3162      styleTag.innerHTML = thisThemeFix.css;
3163      document.head.append(styleTag);
3164    };
3165
3166    if (thisThemeFix.js) {
3167      var scriptTag = document.createElement('script');
3168      scriptTag.classList.add('jdgm-theme-fix-script');
3169      scriptTag.innerHTML = thisThemeFix.js;
3170      document.head.append(scriptTag);
3171    };
3172  })();
3173</script>
3173
3174<!-- END app snippet -->
3175<!-- End of Judge.me Core -->
3176
3177
3178
3179<!-- END app block -->
3179<script src="https://cdn.shopify.com/extensions/01a11b30-98d5-7ae3-b2f4-f79b3c6f32c4/judgeme-775/assets/loader.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 3179
3179
3180<script src="https://cdn.shopify.com/extensions/01a11b6a-2f99-7223-88fd-ab07e15ef29c/omnisend-58/assets/omnisend-in-shop.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 3180
3180
3181<script src="https://cdn.shopify.com/extensions/01a11f5e-ecd8-7271-a763-920f41042782/TMS-Prod-v-8abd617-64-1/assets/tms-translator.min.js" type="text/javascript" defer="defer"></script>
3181
3182<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
3183<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: 27649998986,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "cart"};window.navigator.sendBeacon("https://monorail-edge.shopifysvc.com/v1/produce", JSON.stringify({schema_id: "online_store_buyer_site_abandonment/1.1",payload: payload,metadata: {event_created_at_ms: currentMs,event_sent_at_ms: currentMs}}));}}window.addEventListener('pagehide', handle_abandonment_event);}}());</script>
vendor: 1 bytes, line 3183
3183
3184<script>
3185  window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || [];
3186</script>
vendor: 1 bytes, line 3186
3186
3187<script>(function(){var wpmLoader=function(){"use strict";var e=/Googlebot|Storebot-Google|bingbot|Baiduspider|YandexBot|DuckDuckBot|Slurp|facebookexternalhit|Twitterbot|LinkedInBot|Applebot|AdsBot-Google|Mediapartners-Google|APIs-Google|PetalBot|SemrushBot|AhrefsBot|MJ12bot|DotBot|Acunetix|PerplexityBot|Perplexity-User/i,t=/bytedance/i;function i(){try{var e=document.cookie;if(!e||"string"!=typeof e)return;for(var t=0,i=e.split(";");t<i.length;t++){var n=i[t],r=n.indexOf("=");if(-1!==r){var o=n.slice(0,r).trim();if(o){var a=void 0;try{a=decodeURIComponent(o)}catch(e){a=o}if("_shopify_s"===a){var d=n.slice(r+1).trim();try{return decodeURIComponent(d)}catch(e){return d}}}}}return}catch(e){return}}function n(e){try{"undefined"!=typeof console&&"function"==typeof console.warn&&console.warn(e)}catch(e){}}function r(e,t){return"string"==typeof e&&e.length>0&&e.length<=t?e:void 0}function o(e){var t;switch(null==(t=null==e?void 0:e.navigation)?void 0:t.type){case 0:return"navigate";case 1:return"reload";case 2:return"back_forward";default:return}}function a(){var e,t,i;try{var n=null==(i=null==(t=null==(e=self.ShopifyAnalytics)?void 0:e.lib)?void 0:t.trekkie)?void 0:i.state;return"awaiting-consent"===n||"initialized"===n?n:void 0}catch(e){return}}return function(d,s,u,l){var c=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{};try{var p=c.trekkieShim;!0!==p&&"true"!==p||null!=window.__TREKKIE_SHIM_QUEUE||(window.__TREKKIE_SHIM_QUEUE=[])}catch(e){}var f,v,h,y,g=(v=(f={modern:/Edge?\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Firefox\/(1{2}[4-9]|1[2-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Chrom(ium|e)\/(9{2}|\d{3,})\.\d+(\.\d+|)|(Maci|X1{2}).+ Version\/(15\.\d+|(1[6-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(9{2}|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(15[._]\d+|(1[6-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|SamsungBrowser\/([2-9]\d|\d{3,})\.\d+/,legacy:/Edge?\/(1[6-9]|[2-9]\d|\d{3,})\.\d+(\.\d+|)|Firefox\/(5[4-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)|Chrom(ium|e)\/(5[1-9]|[6-9]\d|\d{3,})\.\d+(\.\d+|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))|(Maci|X1{2}).+ Version\/(10\.\d+|(1[1-9]|[2-9]\d|\d{3,})\.\d+)([,.]\d+|)( \(\w+\)|)( Mobile\/\w+|) Safari\/|Chrome.+OPR\/(3[89]|[4-9]\d|\d{3,})\.\d+\.\d+|(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(10[._]\d+|(1[1-9]|[2-9]\d|\d{3,})[._]\d+)([._]\d+|)|Android:?[ /-](14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})(\.\d+|)(\.\d+|)|Mobile Safari.+OPR\/([89]\d|\d{3,})\.\d+\.\d+|Android.+Firefox\/(15\d|1[6-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+Chrom(ium|e)\/(14[89]|1[5-9]\d|[2-9]\d{2}|\d{4,})\.\d+(\.\d+|)|Android.+(UC? ?Browser|UCWEB|U3)[ /]?(15\.([5-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+)\.\d+|SamsungBrowser\/(5\.\d+|([6-9]|\d{2,})\.\d+)|Android.+MQ{2}Browser\/(14(\.(9|\d{2,})|)|(1[5-9]|[2-9]\d|\d{3,})(\.\d+|))(\.\d+|)|K[Aa][Ii]OS\/(3\.\d+|([4-9]|\d{2,})\.\d+)(\.\d+|)/}).modern,h=f.legacy,(y=navigator.userAgent).match(e)?"bot":y.match(v)?"modern":y.match(h)?"legacy":y.match(t)?"bot":"unknown"),m=function(e){var t,i,n=r(e,128);try{var a=window.performance,d=null==(t=null==a?void 0:a.getEntriesByType)?void 0:t.call(a,"navigation")[0];if(!d)return{requestId:n,navigationType:o(a)};var s="type"in d?r(d.type,64):void 0,u="serverTiming"in d&&Array.isArray(d.serverTiming)?d.serverTiming:[];return{requestId:null!=n?n:r(null==(i=u.find(function(e){return"requestID"===e.name}))?void 0:i.description,128),navigationType:s}}catch(e){return{requestId:n}}}(c.requestId),w=function(e){var t=e.version,r=e.browserTarget,o=e.surface,a=e.shopId,d=e.monorailEndpoint,s=window.location.href;return{emit:function(e){var u=e.status,l=e.errorMsg,c=e.failureReason,p=e.useKeepaliveFallback,f=void 0!==p&&p,v=e.navigationType,h=e.pagehidePersisted,y=e.requestId,g=e.trekkieState;if(d){var m,w;try{var b=(new Date).getTime();m=JSON.stringify({metadata:{event_sent_at_ms:b},events:[{schema_id:"web_pixels_manager_load/3.3",payload:{version:t,bundle_target:r,page_url:s,status:u,surface:o,error_msg:l,failure_reason:c,navigation_type:v,pagehide_persisted:h,request_id:y,trekkie_state:g,shop_id:a,visit_token:i()},metadata:{event_created_at_ms:b}}]})}catch(e){return}try{if("function"==typeof window.navigator.sendBeacon&&-1===(w=window.navigator.userAgent).indexOf("iPhone; CPU iPhone OS 12_")&&-1===w.indexOf("iPad; CPU OS 12_")&&-1===w.indexOf("iPod touch; CPU iPhone OS 12_")&&window.navigator.sendBeacon.bind(window.navigator)(d,m))return}catch(e){}if(f)try{"function"==typeof window.fetch&&window.fetch(d,{method:"POST",headers:{"Content-Type":"text/plain"},body:m,keepalive:!0}
3187).catch(function(){})}catch(e){}else try{var _=new XMLHttpRequest;_.open("POST",d,!0),_.setRequestHeader("Content-Type","text/plain"),_.send(m)}catch(e){n("[Web Pixels Manager] Got an unhandled error while logging to Monorail.")}}else n("[Web Pixels Manager] No Monorail endpoint provided, skipping logging.")}}}({version:u,browserTarget:g,surface:d.surface,shopId:d.shopId,monorailEndpoint:d.monorailEndpoint});if(Boolean(null==(_=null==(b=window.Shopify)?void 0:b.analytics)?void 0:_.replayQueue))w.emit({status:"setup-skipped",errorMsg:"replay queue already initialized."});else{var b,_;w.emit({status:"setup-started"}),window.Shopify=window.Shopify||{};var S=window.Shopify;S.analytics=S.analytics||{};var P=S.analytics;P.replayQueue=[],P.publish=function(e,t,i){return P.replayQueue.push([e,t,i]),!0};try{self.performance.mark("wpm:start")}catch(e){}var k,C="modern"===g?"modern":"legacy",E=(null!=l?l:{modern:"",legacy:""})[C],I=[(k={baseUrl:s,hashVersion:u,buildTarget:C}).baseUrl,"/wpm","/b",k.hashVersion,"modern"===k.buildTarget?"m":"l",".js"].join(""),O=!1,T=!1;try{c.browserTarget=g,function(){O=!0;try{window.addEventListener("pagehide",M)}catch(e){O=!1}}(),R(function(){try{R(x)}catch(e){D(e)}}),w.emit({status:"loading",requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()})}catch(e){D(e)}}function U(){var e;if(q(),!function(){var e,t;return Boolean(null==(t=null==(e=window.Shopify)?void 0:e.analytics)?void 0:t.initialized)}()){var t,i,n;try{if("function"!=typeof(null==(e=window.webPixelsManager)?void 0:e.init))return void A();if(!(null!==(n=i=t=window.webPixelsManager.init(d))&&"function"!=typeof n&&Object(n)===n&&"publish"in i&&"function"==typeof i.publish&&"publishCustomEvent"in i&&"function"==typeof i.publishCustomEvent&&"visitor"in i&&"function"==typeof i.visitor))return void A()}catch(e){return void A(e)}var r=window.Shopify.analytics;r.replayQueue.forEach(function(e){var i=e[0],n=e[1],r=e[2];t.publishCustomEvent(i,n,r)}),r.replayQueue=[],r.publish=t.publishCustomEvent,r.visitor=t.visitor,r.initialized=!0}}function A(e){B("manager_api_unavailable",void 0===e?void 0:Q(e))}function x(){B("script_load_failed","".concat(I," has failed to load"))}function B(e,t){T||(T=!0,q(),w.emit({status:"failed",errorMsg:t,failureReason:e,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function M(e){O&&(q(),w.emit({status:"pagehide-while-loading",useKeepaliveFallback:!0,pagehidePersisted:e.persisted,requestId:m.requestId,navigationType:m.navigationType,trekkieState:a()}))}function q(){O=!1;try{window.removeEventListener("pagehide",M)}catch(e){}}function R(e){var t;!function(e){var t=e.src,i=e.async,n=void 0===i||i,r=e.onload,o=e.onerror,a=e.sri,d=e.scriptDataAttributes,s=void 0===d?{}:d,u=document.createElement("script"),l=document.querySelector("head"),c=document.querySelector("body");if(u.async=n,u.src=t,a&&(u.integrity=a,u.crossOrigin="anonymous"),s)for(var p in s)if(Object.prototype.hasOwnProperty.call(s,p))try{u.dataset[p]=String(s[p])}catch(e){}if(r&&u.addEventListener("load",r),o&&u.addEventListener("error",o),l)l.appendChild(u);else{if(!c)throw new Error("Did not find a head or body element to append the script");c.appendChild(u)}}({src:I,async:!0,onload:U,onerror:e,sri:(t=E,"string"==typeof t&&/^sha384-[A-Za-z0-9+/=]+$/.test(t)?E:""),scriptDataAttributes:c})}function D(e){B("script_append_failed",Q(e))}function Q(e){return e instanceof Error?e.message:"Unknown error"}}}();wpmLoader({shopId: 27649998986,storefrontBaseUrl: "https://www.kawaii-presenter.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://spring-beautiful.myshopify.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab"],webPixelsConfigList: [{"id":"2195292427","configuration":"{\"webPixelName\":\"Judge.me\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"8acc938b1a30dc7624e304493ca567d7","type":"APP","apiClientId":683015,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]}
3187,"dataSharingState":"unrestricted"},{"id":"929399051","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-BVLMH2F6E7\\\",\\\"GT-TXZ6S97\\\",\\\"G-20DTR3EY60\\\"],\\\"target_country\\\":\\\"DE\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-BVLMH2F6E7\\\",\\\"G-20DTR3EY60\\\"]},{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-BVLMH2F6E7\\\",\\\"G-20DTR3EY60\\\"]},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-BVLMH2F6E7\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-BVLMH2F6E7\\\",\\\"MC-SZ14NGJ3TT\\\",\\\"G-20DTR3EY60\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-BVLMH2F6E7\\\"},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-BVLMH2F6E7\\\",\\\"MC-SZ14NGJ3TT\\\",\\\"G-20DTR3EY60\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-BVLMH2F6E7\\\",\\\"MC-SZ14NGJ3TT\\\",\\\"G-20DTR3EY60\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-BVLMH2F6E7\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-BVLMH2F6E7\\\",\\\"G-20DTR3EY60\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-BVLMH2F6E7\\\",\\\"G-20DTR3EY60\\\"]},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-BVLMH2F6E7\\\"}],\\\"enable_monitoring_mode\\\":false}\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"a3321ca85cf5aaf6b57585fcd8d67b3a","type":"APP","apiClientId":1780363,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"442073355","configuration":"{\"pixel_id\":\"372288827283242\",\"pixel_type\":\"facebook_pixel\",\"metaapp_system_user_token\":\"-\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"bd2f978c17a94bbb8a74d43de2165dc5","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":"130089227","configuration":"{\"tagID\":\"2613537740287\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"7ae565e198624b39e0856d352b9a6b4c","type":"APP","apiClientId":3009811,"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":"0530","apiClientId":"shopify-pixel","type":"APP","privacyPurposes":["ANALYTICS","MARKETING"]},{"id":"shopify-custom-pixel","eventPayloadVersion":"v1","runtimeContext":"LAX","scriptVersion":"0530","apiClientId":"shopify-pixel","type":"CUSTOM","privacyPurposes":["ANALYTICS","MARKETING"]}],isMerchantRequest: false,initData: {"shop":{"name":"Kawaii Presenter","paymentSettings":{"currencyCode":"EUR"},"myshopifyDomain":"spring-beautiful.myshopify.com","countryCode":"DE","storefrontUrl":"https:\/\/spring-beautiful.myshopify.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[],"purchasingCompany":null},},"https://spring-beautiful.myshopify.com/cdn","7ec887c8w14f9f074p854094e1m1370c602",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"80146268298","themeStoreId":"796","themePublished":"true","eventMetadataId":"72f1a518-e9f2-494a-8ac4-80c0d7aa96c2","pageType":"cart","shopId":"27649998986","storefrontBaseUrl":"https:\/\/www.kawaii-presenter.com","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\"]","isMerchantRequest":"false","hashVersion":"7ec887c8w14f9f074p854094e1m1370c602","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
3187<script>
3188  window.ShopifyAnalytics = window.ShopifyAnalytics || {};
3189  window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
3190  window.ShopifyAnalytics.meta.currency = 'USD';
3191  var meta = {"page":{"pageType":"cart","requestId":"db889716-56fb-46a8-aac7-f30157cbd676-1791599925"}};
3192  for (var attr in meta) {
3193    window.ShopifyAnalytics.meta[attr] = meta[attr];
3194  }
3195</script>
vendor: 1 bytes, line 3195
3195
3196<script class="analytics">
3197  (function () {
3198    var customDocumentWrite = function(content) {
3199      var jquery = null;
3200
3201      if (window.jQuery) {
3202        jquery = window.jQuery;
3203      } else if (window.Checkout && window.Checkout.$) {
3204        jquery = window.Checkout.$;
3205      }
3206
3207      if (jquery) {
3208        jquery('body').append(content);
3209      }
3210    };
3211
3212    var hasLoggedConversion = function(token) {
3213      if (token) {
3214        return document.cookie.indexOf('loggedConversion=' + token) !== -1;
3215      }
3216      return false;
3217    }
3218
3219    var setCookieIfConversion = function(token) {
3220      if (token) {
3221        var twoMonthsFromNow = new Date(Date.now());
3222        twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
3223
3224        document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
3225      }
3226    }
3227
3228    var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
3229    window.ShopifyAnalytics.lib.trekkie = window.trekkie;
3230    if (trekkie.integrations) {
3231      return;
3232    }
3233    trekkie.methods = [
3234      'identify',
3235      'page',
3236      'ready',
3237      'track',
3238      'trackForm',
3239      'trackLink'
3240    ];
3241    trekkie.factory = function(method) {
3242      return function() {
3243        var args = Array.prototype.slice.call(arguments);
3244        args.unshift(method);
3245        trekkie.push(args);
3246        if (method == 'track' || method == 'page') {
3247          var pageUrl;
3248          try {
3249            pageUrl = window.location.href;
3250          } catch (e) {}
3251          var pageReferrer;
3252          try {
3253            pageReferrer = document.referrer;
3254          } catch (e) {}
3255          try {
3256            if (window.__TREKKIE_SHIM_QUEUE == null) {
3257              window.__TREKKIE_SHIM_QUEUE = [];
3258            }
3259            window.__TREKKIE_SHIM_QUEUE.push({
3260              from: 'trekkie-stub',
3261              method: method,
3262              args: args.slice(1),
3263              pageContext: {
3264                url: pageUrl,
3265                referrer: pageReferrer
3266              }
3267            });
3268          } catch (e) {
3269            // no-op
3270          }
3271        }
3272        return trekkie;
3273      };
3274    };
3275    for (var i = 0; i < trekkie.methods.length; i++) {
3276      var key = trekkie.methods[i];
3277      trekkie[key] = trekkie.factory(key);
3278    }
3279    trekkie.load = function(config) {
3280      trekkie.config = config || {};
3281      trekkie.config.initialDocumentCookie = document.cookie;
3282      var first = document.getElementsByTagName('script')[0];
3283var script = document.createElement('script');
3284script.type = 'text/javascript';
3285script.onerror = function(e) {
3286  var scriptFallback = document.createElement('script');
3287  scriptFallback.type = 'text/javascript';
3288  scriptFallback.onerror = function(error) {
3289          var Monorail = {
3290      produce: function produce(monorailDomain, schemaId, payload) {
3291        var currentMs = new Date().getTime();
3292        var event = {
3293          schema_id: schemaId,
3294          payload: payload,
3295          metadata: {
3296            event_created_at_ms: currentMs,
3297            event_sent_at_ms: currentMs
3298          }
3299        };
3300        return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
3301      },
3302      sendRequest: function sendRequest(endpointUrl, payload) {
3303        // Try the sendBeacon API
3304        if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
3305          var blobData = new window.Blob([payload], {
3306            type: 'text/plain'
3307          });
3308
3309          if (window.navigator.sendBeacon(endpointUrl, blobData)) {
3310            return true;
3311          } // sendBeacon was not successful
3312
3313        } // XHR beacon
3314
3315        var xhr = new XMLHttpRequest();
3316
3317        try {
3318          xhr.open('POST', endpointUrl);
3319          xhr.setRequestHeader('Content-Type', 'text/plain');
3320          xhr.send(payload);
3321        } catch (e) {
3322          console.log(e);
3323        }
3324
3325        return false;
3326      },
3327      isIos12: function isIos12() {
3328        return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
3329      }
3330    };
3331    Monorail.produce('monorail-edge.shopifysvc.com',
3332      'trekkie_storefront_load_errors/1.1',
3333      {shop_id: 27649998986,
3334      theme_id: 80146268298,
3335      app_name: "storefront",
3336      context_url: window.location.href,
3337      source_url: "//spring-beautiful.myshopify.com/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js"});
3338
3339  };
3340  scriptFallback.async = true;
3341  scriptFallback.src = '//spring-beautiful.myshopify.com/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js';
3342  first.parentNode.insertBefore(scriptFallback, first);
3343};
3344script.async = true;
3345script.src = '//spring-beautiful.myshopify.com/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js';
3346first.parentNode.insertBefore(script, first);
3347
3348    };
3349    trekkie.load(
3350      {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":27649998986,"isMerchantRequest":null,"themeId":80146268298,"themeCityHash":"4836931372574331698","contentLanguage":"en","currency":"USD","eventMetadataId":"72f1a518-e9f2-494a-8ac4-80c0d7aa96c2"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}}
3351    );
3352
3353    var loaded = false;
3354    trekkie.ready(function() {
3355      if (loaded) return;
3356      loaded = true;
3357
3358      window.ShopifyAnalytics.lib = window.trekkie;
3359
3360      var originalDocumentWrite = document.write;
3361      document.write = customDocumentWrite;
3362      try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
3363      document.write = originalDocumentWrite;
3364
3365      var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
3366      var token = match? match[1]: undefined;
3367      if (!hasLoggedConversion(token)) {
3368        setCookieIfConversion(token);
3369        
3370      }
3371    });
3372
3373    window.ShopifyAnalytics.lib.page(null,{"pageType":"cart","requestId":"db889716-56fb-46a8-aac7-f30157cbd676-1791599925","shopifyEmitted":true});
3374
3375    var eventsListenerScript = document.createElement('script');
3376    eventsListenerScript.async = true;
3377    eventsListenerScript.src = "//spring-beautiful.myshopify.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js";
3378    document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
3379})();</script>
3379
3380  
3380<script>
3381  if (!window.ga || (window.ga && typeof window.ga !== 'function')) {
3382    window.ga = function ga() {
3383      (window.ga.q = window.ga.q || []).push(arguments);
3384      if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
3385        window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"});
3386      }
3387      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.");
3388    };
3389    if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') {
3390      window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"});
3391    }
3392  }
3393</script>
vendor: 1 bytes, line 3393
3393
3394<script
3395  defer
3396  src="https://spring-beautiful.myshopify.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.10.1.min.js"
3397  data-application="storefront-renderer"
3398  data-shop-id="27649998986"
3399  data-render-region="gcp-us-west1"
3400  data-page-type="cart"
3401  data-theme-instance-id="80146268298"
3402  data-theme-name="Debut"
3403  data-theme-version="14.4.0"
3404  data-monorail-region="shop_domain"
3405  data-resource-timing-sampling-rate="10"
3406  data-shs="true"
3407  data-shs-beacon="true"
3408  data-shs-export-with-fetch="true"
3409  data-shs-logs-sample-rate="1"
3410  data-shs-beacon-endpoint="https://spring-beautiful.myshopify.com/api/collect"
3411></script>
3411
3412<meta name="shopify-y" content="580d1940-86c4-443e-ab60-755519f5df80" data-expiration="1823157525000"><meta name="shopify-s" content="ac1e55b0-6ebf-4eda-930c-8b19bebd2bda" data-expiration="1791601725000">
3413</head>
3414
3415<body class="template-cart">
3416
3417  <a class="in-page-link visually-hidden skip-link" href="#MainContent">Skip to content</a>
3418
3419  <div id="SearchDrawer" class="search-bar drawer drawer--top" role="dialog" aria-modal="true" aria-label="Search">
3420    <div class="search-bar__table">
3421      <div class="search-bar__table-cell search-bar__form-wrapper">
3422        <form class="search search-bar__form" action="/search" method="get" role="search">
3423          <input class="search__input search-bar__input" type="search" name="q" value="" placeholder="Search" aria-label="Search">
3424          <button class="search-bar__submit search__submit btn--link" type="submit">
3425            <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-search" viewBox="0 0 37 40"><path d="M35.6 36l-9.8-9.8c4.1-5.4 3.6-13.2-1.3-18.1-5.4-5.4-14.2-5.4-19.7 0-5.4 5.4-5.4 14.2 0 19.7 2.6 2.6 6.1 4.1 9.8 4.1 3 0 5.9-1 8.3-2.8l9.8 9.8c.4.4.9.6 1.4.6s1-.2 1.4-.6c.9-.9.9-2.1.1-2.9zm-20.9-8.2c-2.6 0-5.1-1-7-2.9-3.9-3.9-3.9-10.1 0-14C9.6 9 12.2 8 14.7 8s5.1 1 7 2.9c3.9 3.9 3.9 10.1 0 14-1.9 1.9-4.4 2.9-7 2.9z"/></svg>
3426            <span class="icon__fallback-text">Submit</span>
3427          </button>
3428        </form>
3429      </div>
3430      <div class="search-bar__table-cell text-right">
3431        <button type="button" class="btn--link search-bar__close js-drawer-close">
3432          <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-close" viewBox="0 0 40 40"><path d="M23.868 20.015L39.117 4.78c1.11-1.108 1.11-2.77 0-3.877-1.109-1.108-2.773-1.108-3.882 0L19.986 16.137 4.737.904C3.628-.204 1.965-.204.856.904c-1.11 1.108-1.11 2.77 0 3.877l15.249 15.234L.855 35.248c-1.108 1.108-1.108 2.77 0 3.877.555.554 1.248.831 1.942.831s1.386-.277 1.94-.83l15.25-15.234 15.248 15.233c.555.554 1.248.831 1.941.831s1.387-.277 1.941-.83c1.11-1.109 1.11-2.77 0-3.878L23.868 20.015z" class="layer"/></svg>
3433          <span class="icon__fallback-text">Close search</span>
3434        </button>
3435      </div>
3436    </div>
3437  </div><style data-shopify>
3438
3439  .cart-popup {
3440    box-shadow: 1px 1px 10px 2px rgba(232, 233, 235, 0.5);
3441  }</style><div class="cart-popup-wrapper cart-popup-wrapper--hidden" role="dialog" aria-modal="true" aria-labelledby="CartPopupHeading" data-cart-popup-wrapper>
3442  <div class="cart-popup" data-cart-popup tabindex="-1">
3443    <h2 id="CartPopupHeading" class="cart-popup__heading">Just added to your cart</h2>
3444    <button class="cart-popup__close" aria-label="Close" data-cart-popup-close><svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-close" viewBox="0 0 40 40"><path d="M23.868 20.015L39.117 4.78c1.11-1.108 1.11-2.77 0-3.877-1.109-1.108-2.773-1.108-3.882 0L19.986 16.137 4.737.904C3.628-.204 1.965-.204.856.904c-1.11 1.108-1.11 2.77 0 3.877l15.249 15.234L.855 35.248c-1.108 1.108-1.108 2.77 0 3.877.555.554 1.248.831 1.942.831s1.386-.277 1.94-.83l15.25-15.234 15.248 15.233c.555.554 1.248.831 1.941.831s1.387-.277 1.941-.83c1.11-1.109 1.11-2.77 0-3.878L23.868 20.015z" class="layer"/></svg></button>
3445
3446    <div class="cart-popup-item">
3447      <div class="cart-popup-item__image-wrapper hide" data-cart-popup-image-wrapper>
3448        <div class="cart-popup-item__image cart-popup-item__image--placeholder" data-cart-popup-image-placeholder>
3449          <div data-placeholder-size></div>
3450          <div class="placeholder-background placeholder-background--animation"></div>
3451        </div>
3452      </div>
3453      <div class="cart-popup-item__description">
3454        <div>
3455          <div class="cart-popup-item__title" data-cart-popup-title></div>
3456          <ul class="product-details" aria-label="Product details" data-cart-popup-product-details></ul>
3457        </div>
3458        <div class="cart-popup-item__quantity">
3459          <span class="visually-hidden" data-cart-popup-quantity-label></span>
3460          <span aria-hidden="true">Qty:</span>
3461          <span aria-hidden="true" data-cart-popup-quantity></span>
3462        </div>
3463      </div>
3464    </div>
3465
3466    <a href="/cart" class="cart-popup__cta-link btn btn--secondary-accent">
3467      View cart (<span data-cart-popup-cart-quantity></span>)
3468    </a>
3469
3470    <div class="cart-popup__dismiss">
3471      <button class="cart-popup__dismiss-button text-link text-link--accent" data-cart-popup-dismiss>
3472        Continue shopping
3473      </button>
3474    </div>
3475  </div>
3476</div>
3477
3478<div id="shopify-section-header" class="shopify-section">
3479  <style>
3480    
3481      .site-header__logo-image {
3482        max-width: 250px;
3483      }
3484    
3485
3486    
3487  </style>
3488
3489
3490<div data-section-id="header" data-section-type="header-section">
3491  
3492    
3493  
3494
3495  <header class="site-header logo--center" role="banner">
3496    <div class="grid grid--no-gutters grid--table site-header__mobile-nav">
3497      
3498
3499      <div class="grid__item medium-up--one-third medium-up--push-one-third logo-align--center">
3500        
3501        
3502          <div class="h2 site-header__logo">
3503        
3504          
3505<a href="/" class="site-header__logo-image site-header__logo-image--centered">
3506              
3507              <img class="lazyload js"
3508                   src="//spring-beautiful.myshopify.com/cdn/shop/files/Handdrawn_Circle_Logo_1_300x300.png?v=1659106244"
3509                   data-src="//spring-beautiful.myshopify.com/cdn/shop/files/Handdrawn_Circle_Logo_1_{width}x.png?v=1659106244"
3510                   data-widths="[180, 360, 540, 720, 900, 1080, 1296, 1512, 1728, 2048]"
3511                   data-aspectratio="1.0"
3512                   data-sizes="auto"
3513                   alt="Kawaii Presenter"
3514                   style="max-width: 250px">
3515              <noscript>
3516                
3517                <img src="//spring-beautiful.myshopify.com/cdn/shop/files/Handdrawn_Circle_Logo_1_250x.png?v=1659106244"
3518                     srcset="//spring-beautiful.myshopify.com/cdn/shop/files/Handdrawn_Circle_Logo_1_250x.png?v=1659106244 1x, //spring-beautiful.myshopify.com/cdn/shop/files/[email protected]?v=1659106244 2x"
3519                     alt="Kawaii Presenter"
3520                     style="max-width: 250px;">
3521              </noscript>
3522            </a>
3523          
3524        
3525          </div>
3526        
3527      </div>
3528
3529      
3530
3531      <div class="grid__item medium-up--one-third medium-up--push-one-third text-right site-header__icons site-header__icons--plus">
3532        <div class="site-header__icons-wrapper">
3533          <div class="site-header__search site-header__icon">
3534            
3535<form action="/search" method="get" class="search-header search" role="search">
3536  <input class="search-header__input search__input"
3537    type="search"
3538    name="q"
3539    placeholder="Search"
3540    aria-label="Search">
3541  <button class="search-header__submit search__submit btn--link site-header__icon" type="submit">
3542    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-search" viewBox="0 0 37 40"><path d="M35.6 36l-9.8-9.8c4.1-5.4 3.6-13.2-1.3-18.1-5.4-5.4-14.2-5.4-19.7 0-5.4 5.4-5.4 14.2 0 19.7 2.6 2.6 6.1 4.1 9.8 4.1 3 0 5.9-1 8.3-2.8l9.8 9.8c.4.4.9.6 1.4.6s1-.2 1.4-.6c.9-.9.9-2.1.1-2.9zm-20.9-8.2c-2.6 0-5.1-1-7-2.9-3.9-3.9-3.9-10.1 0-14C9.6 9 12.2 8 14.7 8s5.1 1 7 2.9c3.9 3.9 3.9 10.1 0 14-1.9 1.9-4.4 2.9-7 2.9z"/></svg>
3543    <span class="icon__fallback-text">Submit</span>
3544  </button>
3545</form>
3546
3547          </div>
3548
3549          <button type="button" class="btn--link site-header__icon site-header__search-toggle js-drawer-open-top">
3550            <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-search" viewBox="0 0 37 40"><path d="M35.6 36l-9.8-9.8c4.1-5.4 3.6-13.2-1.3-18.1-5.4-5.4-14.2-5.4-19.7 0-5.4 5.4-5.4 14.2 0 19.7 2.6 2.6 6.1 4.1 9.8 4.1 3 0 5.9-1 8.3-2.8l9.8 9.8c.4.4.9.6 1.4.6s1-.2 1.4-.6c.9-.9.9-2.1.1-2.9zm-20.9-8.2c-2.6 0-5.1-1-7-2.9-3.9-3.9-3.9-10.1 0-14C9.6 9 12.2 8 14.7 8s5.1 1 7 2.9c3.9 3.9 3.9 10.1 0 14-1.9 1.9-4.4 2.9-7 2.9z"/></svg>
3551            <span class="icon__fallback-text">Search</span>
3552          </button>
3553
3554          
3555            
3556              <a href="https://spring-beautiful.myshopify.com/customer_authentication/redirect?locale=en&region_country=US" class="site-header__icon site-header__account">
3557                <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-login" viewBox="0 0 28.33 37.68"><path d="M14.17 14.9a7.45 7.45 0 1 0-7.5-7.45 7.46 7.46 0 0 0 7.5 7.45zm0-10.91a3.45 3.45 0 1 1-3.5 3.46A3.46 3.46 0 0 1 14.17 4zM14.17 16.47A14.18 14.18 0 0 0 0 30.68c0 1.41.66 4 5.11 5.66a27.17 27.17 0 0 0 9.06 1.34c6.54 0 14.17-1.84 14.17-7a14.18 14.18 0 0 0-14.17-14.21zm0 17.21c-6.3 0-10.17-1.77-10.17-3a10.17 10.17 0 1 1 20.33 0c.01 1.23-3.86 3-10.16 3z"/></svg>
3558                <span class="icon__fallback-text">Log in</span>
3559              </a>
3560            
3561          
3562
3563          <a href="/cart" class="site-header__icon site-header__cart">
3564            <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-cart" viewBox="0 0 37 40"><path d="M36.5 34.8L33.3 8h-5.9C26.7 3.9 23 .8 18.5.8S10.3 3.9 9.6 8H3.7L.5 34.8c-.2 1.5.4 2.4.9 3 .5.5 1.4 1.2 3.1 1.2h28c1.3 0 2.4-.4 3.1-1.3.7-.7 1-1.8.9-2.9zm-18-30c2.2 0 4.1 1.4 4.7 3.2h-9.5c.7-1.9 2.6-3.2 4.8-3.2zM4.5 35l2.8-23h2.2v3c0 1.1.9 2 2 2s2-.9 2-2v-3h10v3c0 1.1.9 2 2 2s2-.9 2-2v-3h2.2l2.8 23h-28z"/></svg>
3565            <span class="icon__fallback-text">Cart</span>
3566            <div id="CartCount" class="site-header__cart-count hide" data-cart-count-bubble>
3567              <span data-cart-count>0</span>
3568              <span class="icon__fallback-text medium-up--hide">items</span>
3569            </div>
3570          </a>
3571
3572          
3573            <form method="post" action="/cart/update" id="currency_form" accept-charset="UTF-8" class="currency-selector small--hide" enctype="multipart/form-data"><input type="hidden" name="form_type" value="currency" /><input type="hidden" name="utf8" value="✓" /><input type="hidden" name="return_to" value="/cart" />
3574              <label for="CurrencySelector" class="visually-hidden">Currency</label>
3575              <div class="currency-selector__input-wrapper select-group">
3576                <select name="currency" id="CurrencySelector" class="currency-selector__dropdown" aria-describedby="a11y-refresh-page-message a11y-selection-message" data-currency-selector>
3577                  
3578                    <option value="ALL">ALL</option>
3579                  
3580                    <option value="AMD">AMD</option>
3581                  
3582                    <option value="AUD">AUD</option>
3583                  
3584                    <option value="AZN">AZN</option>
3585                  
3586                    <option value="BAM">BAM</option>
3587                  
3588                    <option value="CAD">CAD</option>
3589                  
3590                    <option value="CHF">CHF</option>
3591                  
3592                    <option value="CZK">CZK</option>
3593                  
3594                    <option value="DKK">DKK</option>
3595                  
3596                    <option value="DZD">DZD</option>
3597                  
3598                    <option value="EGP">EGP</option>
3599                  
3600                    <option value="EUR">EUR</option>
3601                  
3602                    <option value="GBP">GBP</option>
3603                  
3604                    <option value="HUF">HUF</option>
3605                  
3606                    <option value="IDR">IDR</option>
3607                  
3608                    <option value="ILS">ILS</option>
3609                  
3610                    <option value="INR">INR</option>
3611                  
3612                    <option value="ISK">ISK</option>
3613                  
3614                    <option value="JPY">JPY</option>
3615                  
3616                    <option value="KHR">KHR</option>
3617                  
3618                    <option value="KRW">KRW</option>
3619                  
3620                    <option value="KZT">KZT</option>
3621                  
3622                    <option value="LAK">LAK</option>
3623                  
3624                    <option value="LBP">LBP</option>
3625                  
3626                    <option value="LKR">LKR</option>
3627                  
3628                    <option value="MAD">MAD</option>
3629                  
3630                    <option value="MDL">MDL</option>
3631                  
3632                    <option value="MKD">MKD</option>
3633                  
3634                    <option value="MMK">MMK</option>
3635                  
3636                    <option value="MYR">MYR</option>
3637                  
3638                    <option value="NZD">NZD</option>
3639                  
3640                    <option value="PLN">PLN</option>
3641                  
3642                    <option value="RON">RON</option>
3643                  
3644                    <option value="RSD">RSD</option>
3645                  
3646                    <option value="SEK">SEK</option>
3647                  
3648                    <option value="SGD">SGD</option>
3649                  
3650                    <option value="THB">THB</option>
3651                  
3652                    <option value="TWD">TWD</option>
3653                  
3654                    <option value="UAH">UAH</option>
3655                  
3656                    <option value="USD" selected="true">USD</option>
3657                  
3658                    <option value="VND">VND</option>
3659                  
3660                </select>
3661                <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon--wide icon-chevron-down" viewBox="0 0 498.98 284.49"><defs><style>.cls-1{fill:#231f20}</style></defs><path class="cls-1" d="M80.93 271.76A35 35 0 0 1 140.68 247l189.74 189.75L520.16 247a35 35 0 1 1 49.5 49.5L355.17 511a35 35 0 0 1-49.5 0L91.18 296.5a34.89 34.89 0 0 1-10.25-24.74z" transform="translate(-80.93 -236.76)"/></svg>
3662              </div>
3663            </form>
3664          
3665
3666          
3667            <button type="button" class="btn--link site-header__icon site-header__menu js-mobile-nav-toggle mobile-nav--open" aria-controls="MobileNav"  aria-expanded="false" aria-label="Menu">
3668              <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-hamburger" viewBox="0 0 37 40"><path d="M33.5 25h-30c-1.1 0-2-.9-2-2s.9-2 2-2h30c1.1 0 2 .9 2 2s-.9 2-2 2zm0-11.5h-30c-1.1 0-2-.9-2-2s.9-2 2-2h30c1.1 0 2 .9 2 2s-.9 2-2 2zm0 23h-30c-1.1 0-2-.9-2-2s.9-2 2-2h30c1.1 0 2 .9 2 2s-.9 2-2 2z"/></svg>
3669              <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-close" viewBox="0 0 40 40"><path d="M23.868 20.015L39.117 4.78c1.11-1.108 1.11-2.77 0-3.877-1.109-1.108-2.773
3669-1.108-3.882 0L19.986 16.137 4.737.904C3.628-.204 1.965-.204.856.904c-1.11 1.108-1.11 2.77 0 3.877l15.249 15.234L.855 35.248c-1.108 1.108-1.108 2.77 0 3.877.555.554 1.248.831 1.942.831s1.386-.277 1.94-.83l15.25-15.234 15.248 15.233c.555.554 1.248.831 1.941.831s1.387-.277 1.941-.83c1.11-1.109 1.11-2.77 0-3.878L23.868 20.015z" class="layer"/></svg>
3670            </button>
3671          
3672        </div>
3673
3674      </div>
3675    </div>
3676
3677    <nav class="mobile-nav-wrapper medium-up--hide" role="navigation">
3678      <ul id="MobileNav" class="mobile-nav">
3679        
3680<li class="mobile-nav__item border-bottom">
3681            
3682              
3683              <button type="button" class="btn--link js-toggle-submenu mobile-nav__link" data-target="catalog-1" data-level="1" aria-expanded="false">
3684                <span class="mobile-nav__label">Catalog</span>
3685                <div class="mobile-nav__icon">
3686                  <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-chevron-right" viewBox="0 0 7 11"><path d="M1.5 11A1.5 1.5 0 0 1 .44 8.44L3.38 5.5.44 2.56A1.5 1.5 0 0 1 2.56.44l4 4a1.5 1.5 0 0 1 0 2.12l-4 4A1.5 1.5 0 0 1 1.5 11z" fill="#fff"/></svg>
3687                </div>
3688              </button>
3689              <ul class="mobile-nav__dropdown" data-parent="catalog-1" data-level="2">
3690                <li class="visually-hidden" tabindex="-1" data-menu-title="2">Catalog Menu</li>
3691                <li class="mobile-nav__item border-bottom">
3692                  <div class="mobile-nav__table">
3693                    <div class="mobile-nav__table-cell mobile-nav__return">
3694                      <button class="btn--link js-toggle-submenu mobile-nav__return-btn" type="button" aria-expanded="true" aria-label="Catalog">
3695                        <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-chevron-left" viewBox="0 0 7 11"><path d="M5.5.037a1.5 1.5 0 0 1 1.06 2.56l-2.94 2.94 2.94 2.94a1.5 1.5 0 0 1-2.12 2.12l-4-4a1.5 1.5 0 0 1 0-2.12l4-4A1.5 1.5 0 0 1 5.5.037z" fill="#fff" class="layer"/></svg>
3696                      </button>
3697                    </div>
3698                    <span class="mobile-nav__sublist-link mobile-nav__sublist-header mobile-nav__sublist-header--main-nav-parent">
3699                      <span class="mobile-nav__label">Catalog</span>
3700                    </span>
3701                  </div>
3702                </li>
3703
3704                
3705                  <li class="mobile-nav__item border-bottom">
3706                    
3707                      <a href="/collections/products-from-japan/Made-in-Japan"
3708                        class="mobile-nav__sublist-link"
3709                        
3710                      >
3711                        <span class="mobile-nav__label">Japanese collection</span>
3712                      </a>
3713                    
3714                  </li>
3715                
3716                  <li class="mobile-nav__item border-bottom">
3717                    
3718                      <a href="/collections/products-from-uzbekistan"
3719                        class="mobile-nav__sublist-link"
3720                        
3721                      >
3722                        <span class="mobile-nav__label">Uzbekistan collection</span>
3723                      </a>
3724                    
3725                  </li>
3726                
3727                  <li class="mobile-nav__item border-bottom">
3728                    
3729                      <a href="/collections/kitchenware"
3730                        class="mobile-nav__sublist-link"
3731                        
3732                      >
3733                        <span class="mobile-nav__label">Kitchen &amp; Dining</span>
3734                      </a>
3735                    
3736                  </li>
3737                
3738                  <li class="mobile-nav__item border-bottom">
3739                    
3740                      <a href="/collections/accessories-earrings-hair-accessory"
3741                        class="mobile-nav__sublist-link"
3742                        
3743                      >
3744                        <span class="mobile-nav__label">Accessories (earrings, hair accessory)</span>
3745                      </a>
3746                    
3747                  </li>
3748                
3749                  <li class="mobile-nav__item border-bottom">
3750                    
3751                      <a href="/collections/home-decoration"
3752                        class="mobile-nav__sublist-link"
3753                        
3754                      >
3755                        <span class="mobile-nav__label">Home decoration</span>
3756                      </a>
3757                    
3758                  </li>
3759                
3760                  <li class="mobile-nav__item border-bottom">
3761                    
3762                      <a href="/collections/textiles"
3763                        class="mobile-nav__sublist-link"
3764                        
3765                      >
3766                        <span class="mobile-nav__label">Textiles</span>
3767                      </a>
3768                    
3769                  </li>
3770                
3771                  <li class="mobile-nav__item">
3772                    
3773                      <a href="/collections/pottery-porcelain-and-lacquerware"
3774                        class="mobile-nav__sublist-link"
3775                        
3776                      >
3777                        <span class="mobile-nav__label">Pottery, porcelain and lacquer-ware</span>
3778                      </a>
3779                    
3780                  </li>
3781                
3782              </ul>
3783            
3784          </li>
3785        
3786<li class="mobile-nav__item border-bottom">
3787            
3788              <a href="/blogs/news"
3789                class="mobile-nav__link"
3790                
3791              >
3792                <span class="mobile-nav__label">Blog</span>
3793              </a>
3794            
3795          </li>
3796        
3797<li class="mobile-nav__item border-bottom">
3798            
3799              <a href="/pages/contact"
3800                class="mobile-nav__link"
3801                
3802              >
3803                <span class="mobile-nav__label">Contact</span>
3804              </a>
3805            
3806          </li>
3807        
3808<li class="mobile-nav__item">
3809            
3810              <a href="/pages/about-us"
3811                class="mobile-nav__link"
3812                
3813              >
3814                <span class="mobile-nav__label">About us</span>
3815              </a>
3816            
3817          </li>
3818        
3819        
3820          <li class="mobile-nav__item border-top">
3821            <form method="post" action="/cart/update" id="currency_form" accept-charset="UTF-8" class="currency-selector" enctype="multipart/form-data"><input type="hidden" name="form_type" value="currency" /><input type="hidden" name="utf8" value="✓" /><input type="hidden" name="return_to" value="/cart" />
3822              <label for="CurrencySelectorMobile" class="currency-selector__label">Currency</label>
3823              <div class="currency-selector__input-wrapper select-group">
3824                <select name="currency" id="CurrencySelectorMobile" class="currency-selector__dropdown" aria-describedby="a11y-refresh-page-message a11y-selection-message" data-currency-selector>
3825                  
3826                    <option value="ALL">ALL</option>
3827                  
3828                    <option value="AMD">AMD</option>
3829                  
3830                    <option value="AUD">AUD</option>
3831                  
3832                    <option value="AZN">AZN</option>
3833                  
3834                    <option value="BAM">BAM</option>
3835                  
3836                    <option value="CAD">CAD</option>
3837                  
3838                    <option value="CHF">CHF</option>
3839                  
3840                    <option value="CZK">CZK</option>
3841                  
3842                    <option value="DKK">DKK</option>
3843                  
3844                    <option value="DZD">DZD</option>
3845                  
3846                    <option value="EGP">EGP</option>
3847                  
3848                    <option value="EUR">EUR</option>
3849                  
3850                    <option value="GBP">GBP</option>
3851                  
3852                    <option value="HUF">HUF</option>
3853                  
3854                    <option value="IDR">IDR</option>
3855                  
3856                    <option value="ILS">ILS</option>
3857                  
3858                    <option value="INR">INR</option>
3859                  
3860                    <option value="ISK">ISK</option>
3861                  
3862                    <option value="JPY">JPY</option>
3863                  
3864                    <option value="KHR">KHR</option>
3865                  
3866                    <option value="KRW">KRW</option>
3867                  
3868                    <option value="KZT">KZT</option>
3869                  
3870                    <option value="LAK">LAK</option>
3871                  
3872                    <option value="LBP">LBP</option>
3873                  
3874                    <option value="LKR">LKR</option>
3875                  
3876                    <option value="MAD">MAD</option>
3877                  
3878                    <option value="MDL">MDL</option>
3879                  
3880                    <option value="MKD">MKD</option>
3881                  
3882                    <option value="MMK">MMK</option>
3883                  
3884                    <option value="MYR">MYR</option>
3885                  
3886                    <option value="NZD">NZD</option>
3887                  
3888                    <option value="PLN">PLN</option>
3889                  
3890                    <option value="RON">RON</option>
3891                  
3892                    <option value="RSD">RSD</option>
3893                  
3894                    <option value="SEK">SEK</option>
3895                  
3896                    <option value="SGD">SGD</option>
3897                  
3898                    <option value="THB">THB</option>
3899                  
3900                    <option value="TWD">TWD</option>
3901                  
3902                    <option value="UAH">UAH</option>
3903                  
3904                    <option value="USD" selected="true">USD</option>
3905                  
3906                    <option value="VND">VND</option>
3907                  
3908                </select>
3909                <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon--wide icon-chevron-down" viewB
3909ox="0 0 498.98 284.49"><defs><style>.cls-1{fill:#231f20}</style></defs><path class="cls-1" d="M80.93 271.76A35 35 0 0 1 140.68 247l189.74 189.75L520.16 247a35 35 0 1 1 49.5 49.5L355.17 511a35 35 0 0 1-49.5 0L91.18 296.5a34.89 34.89 0 0 1-10.25-24.74z" transform="translate(-80.93 -236.76)"/></svg>
3910              </div>
3911            </form>
3912          </li>
3913        
3914      </ul>
3915    </nav>
3916  </header>
3917
3918  
3919  <nav class="small--hide border-bottom" id="AccessibleNav" role="navigation">
3920    
3921<ul class="site-nav list--inline site-nav--centered" id="SiteNav">
3922  
3923
3924
3925
3926    
3927      <li class="site-nav--has-dropdown" data-has-dropdowns>
3928        <button class="site-nav__link site-nav__link--main site-nav__link--button" type="button" aria-expanded="false" aria-controls="SiteNavLabel-catalog">
3929          <span class="site-nav__label">Catalog</span><svg aria-hidden="true" focusable="false" role="presentation" class="icon icon--wide icon-chevron-down" viewBox="0 0 498.98 284.49"><defs><style>.cls-1{fill:#231f20}</style></defs><path class="cls-1" d="M80.93 271.76A35 35 0 0 1 140.68 247l189.74 189.75L520.16 247a35 35 0 1 1 49.5 49.5L355.17 511a35 35 0 0 1-49.5 0L91.18 296.5a34.89 34.89 0 0 1-10.25-24.74z" transform="translate(-80.93 -236.76)"/></svg>
3930        </button>
3931
3932        <div class="site-nav__dropdown" id="SiteNavLabel-catalog">
3933          
3934            <ul>
3935              
3936                <li>
3937                  <a href="/collections/products-from-japan/Made-in-Japan"
3938                  class="site-nav__link site-nav__child-link"
3939                  
3940                >
3941                    <span class="site-nav__label">Japanese collection</span>
3942                  </a>
3943                </li>
3944              
3945                <li>
3946                  <a href="/collections/products-from-uzbekistan"
3947                  class="site-nav__link site-nav__child-link"
3948                  
3949                >
3950                    <span class="site-nav__label">Uzbekistan collection</span>
3951                  </a>
3952                </li>
3953              
3954                <li>
3955                  <a href="/collections/kitchenware"
3956                  class="site-nav__link site-nav__child-link"
3957                  
3958                >
3959                    <span class="site-nav__label">Kitchen &amp; Dining</span>
3960                  </a>
3961                </li>
3962              
3963                <li>
3964                  <a href="/collections/accessories-earrings-hair-accessory"
3965                  class="site-nav__link site-nav__child-link"
3966                  
3967                >
3968                    <span class="site-nav__label">Accessories (earrings, hair accessory)</span>
3969                  </a>
3970                </li>
3971              
3972                <li>
3973                  <a href="/collections/home-decoration"
3974                  class="site-nav__link site-nav__child-link"
3975                  
3976                >
3977                    <span class="site-nav__label">Home decoration</span>
3978                  </a>
3979                </li>
3980              
3981                <li>
3982                  <a href="/collections/textiles"
3983                  class="site-nav__link site-nav__child-link"
3984                  
3985                >
3986                    <span class="site-nav__label">Textiles</span>
3987                  </a>
3988                </li>
3989              
3990                <li>
3991                  <a href="/collections/pottery-porcelain-and-lacquerware"
3992                  class="site-nav__link site-nav__child-link site-nav__link--last"
3993                  
3994                >
3995                    <span class="site-nav__label">Pottery, porcelain and lacquer-ware</span>
3996                  </a>
3997                </li>
3998              
3999            </ul>
4000          
4001        </div>
4002      </li>
4003    
4004  
4005
4006
4007
4008    
4009      <li >
4010        <a href="/blogs/news"
4011          class="site-nav__link site-nav__link--main"
4012          
4013        >
4014          <span class="site-nav__label">Blog</span>
4015        </a>
4016      </li>
4017    
4018  
4019
4020
4021
4022    
4023      <li >
4024        <a href="/pages/contact"
4025          class="site-nav__link site-nav__link--main"
4026          
4027        >
4028          <span class="site-nav__label">Contact</span>
4029        </a>
4030      </li>
4031    
4032  
4033
4034
4035
4036    
4037      <li >
4038        <a href="/pages/about-us"
4039          class="site-nav__link site-nav__link--main"
4040          
4041        >
4042          <span class="site-nav__label">About us</span>
4043        </a>
4044      </li>
4045    
4046  
4047</ul>
4048
4049  </nav>
4050  
4051</div>
4052
4053
4054
4055<script type="application/ld+json">
4056{
4057  "@context": "http://schema.org",
4058  "@type": "Organization",
4059  "name": "Kawaii Presenter",
4060  
4061    
4062    "logo": "https:\/\/spring-beautiful.myshopify.com\/cdn\/shop\/files\/Handdrawn_Circle_Logo_1_1500x.png?v=1659106244",
4063  
4064  "sameAs": [
4065    "",
4066    "https:\/\/www.facebook.com\/SpringBeautiful-102335188043446",
4067    "https:\/\/www.pinterest.co.uk\/inakamura0602\/pins\/",
4068    "https:\/\/www.instagram.com\/kawaii_presenter0704",
4069    "",
4070    "",
4071    "",
4072    ""
4073  ],
4074  "url": "https:\/\/www.kawaii-presenter.com"
4075}
4076</script>
4076
4077
4078
4079
4080
4081</div>
4082
4083  <div class="page-container" id="PageContainer">
4084
4085    <main class="main-content js-focus-hidden" id="MainContent" role="main" tabindex="-1">
4086      
4087
4088<div id="shopify-section-cart-template" class="shopify-section"><div class="page-width" data-section-id="cart-template" data-section-type="cart-template" data-ajax-enabled="true">
4089
4090  <div class="hide" data-cart-wrapper>
4091    <div class="cart-header">
4092      <h1 class="cart-header__title">Your cart</h1>
4093      <a href="/collections/all" class="text-link text-link--accent">
4094        Continue shopping
4095      </a>
4096    </div>
4097
4098    <form action="/cart" method="post" novalidate class="cart">
4099      <table>
4100        <thead class="cart__row cart__row--heading">
4101          <th scope="col">Product</th>
4102          <th class="text-right" scope="col">Price</th>
4103          <th class="text-right small--hide" scope="col">Quantity</th>
4104          <th class="text-right small--hide" scope="col">Total</th>
4105        </thead>
4106        <tbody data-cart-line-items></tbody>
4107      </table>
4108
4109      <div class="cart__footer">
4110        <div class="grid"><div class="grid__item text-right small--text-center"><div class="hide" data-cart-discount-wrapper>
4111              <div class="order-discount-card-wrapper" data-cart-discount><span class="order-discount order-discount--title order-discount--cart">
4112                    <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-saletag"><path d="M10 3a1 1 0 1 1 0-2 1 1 0 0 1 0 2zm0-3H7a1 1 0 0 0-.71.29l-6 6a1 1 0 0 0 0 1.42l4 4a1 1 0 0 0 1.42 0c.19-.2 5.8-5.81 6-6A1 1 0 0 0 12 5V2a2 2 0 0 0-2-2z" fill="#231F20"/></svg><span class="visually-hidden">Discount:</span><span data-cart-discount-title></span>
4113                  </span>
4114                  <span class="order-discount order-discount--cart order-discount--cart-total">
4115                    -<span data-cart-discount-amount></span>
4116                  </span></div>
4117            </div>
4118
4119            <div class="cart-subtotal">
4120              <span class="cart-subtotal__title">Subtotal</span>
4121              <span class="cart-subtotal__price" data-cart-subtotal>$0.00 USD</span>
4122            </div><div class="cart__shipping rte">Tax included. <a href="/policies/shipping-policy">Shipping</a> calculated at checkout.
4123</div>
4124            <div class="cart__buttons-container">
4125              <div class="cart__submit-controls"><input type="submit" name="checkout"
4126                  class="cart__submit btn btn--small-wide"
4127                  value="Check out">
4128              </div>
4129
4130              <div class="cart__error-message-wrapper hide" role="alert" data-cart-error-message-wrapper>
4131                <span class="visually-hidden">Error </span>
4132                <svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-error" viewBox="0 0 14 14"><g fill="none" fill-rule="evenodd"><path d="M7 0a7 7 0 0 1 7 7 7 7 0 1 1-7-7z"/><path class="icon-error__symbol" d="M6.328 8.396l-.252-5.4h1.836l-.24 5.4H6.328zM6.04 10.16c0-.528.432-.972.96-.972s.972.444.972.972c0 .516-.444.96-.972.96a.97.97 0 0 1-.96-.96z" fill-rule="nonzero"/></g></svg>
4133                <span class="cart__error-message" data-cart-error-message></span>
4134              </div><div class="additional-checkout-buttons"><div class="dynamic-checkout__content" id="dynamic-checkout-cart" data-shopify="dynamic-checkout-cart"> <shopify-accelerated-checkout-cart wallet-configs="[{&quot;supports_subs&quot;:true,&quot;supports_def_opts&quot;:false,&quot;name&quot;:&quot;shop_pay&quot;,&quot;wallet_params&quot;:{&quot;shopId&quot;:27649998986,&quot;merchantName&quot;:&quot;Kawaii Presenter&quot;,&quot;personalized&quot;:true}},{&quot;supports_subs&quot;:false,&quot;supports_def_opts&quot;:false,&quot;name&quot;:&quot;paypal&quot;,&quot;wallet_params&quot;:{&quot;shopId&quot;:27649998986,&quot;countryCode&quot;:&quot;DE&quot;,&quot;merchantName&quot;:&quot;Kawaii Presenter&quot;,&quot;phoneRequired&quot;:false,&quot;companyRequired&quot;:false,&quot;shippingType&quot;:&quot;shipping&quot;,&quot;shopifyPaymentsEnabled&quot;:true,&quot;hasManagedSellingPlanState&quot;:null,&quot;requiresBillingAgreement&quot;:false,&quot;gatewayType&quot;:&quot;CONNECTED&quot;,&quot;merchantId&quot;:&quot;US469JD7PTR6U&quot;,&quot;sdkUrl&quot;:&quot;https://www.paypal.com/sdk/js?components=buttons\u0026commit=false\u0026currency=USD\u0026locale=en_US\u0026client-id=AexZEtAxk09Ncgj6FSWFFyGKbxxAZ_LTyJ2DPdJWl1YUlecinmc5AfIaRF2qYjWlusWahlzz6SVkY5Ci\u0026merchant-id=US469JD7PTR6U\u0026intent=authorize&quot;,&quot;serviceableCountryCodes&quot;:[&quot;DE&quot;]}}]" access-token="43a67a320cdf20c9d0ca596e9903c36b" buyer-country="US" buyer-locale="en" buyer-currency="USD" shop-id="27649998986" cart-id="a1c432370f58605909c6b9b3236c999d" enabled-flags="[&quot;1172c16a&quot;,&quot;a1d1f9a1&quot;,&quot;f5afabb3&quot;,&quot;370070f3&quot;]" > <div class="wallet-button-wrapper"> <ul class='wallet-cart-grid wallet-cart-grid--skeleton' role="list" data-shopify-buttoncontainer="true"> <li data-testid='grid-cell' class='wallet-cart-button-container'><div class='wallet-cart-button wallet-cart-button__skeleton' role='button' disabled aria-hidden='true'>&nbsp</div></li><li data-testid='grid-cell' class='wallet-cart-button-container'><div class='wallet-cart-button wallet-cart-button__skeleton' role='button' disabled aria-hidden='true'>&nbsp</div></li> </ul> </div> </shopify-accelerated-checkout-cart> </div></div></div>
4135          </div>
4136        </div>
4137      </div>
4138    </form>
4139
4140    <p class="visually-hidden" data-cart-status
4141      aria-live="polite"
4142      role="status"
4143    ></p>
4144  </div>
4145
4146  <div class="empty-page-content text-center" data-empty-page-content>
4147    <h1>Your cart</h1>
4148    <p class="cart--empty-message">Your cart is currently empty.</p>
4149    <div class="cookie-message">
4150      <p>Enable cookies to use the shopping cart</p>
4151    </div>
4152    <a href="/" class="btn btn--has-icon-after cart__continue-btn">Continue shopping<svg aria-hidden="true" focusable="false" role="presentation" class="icon icon--wide icon-arrow-right" viewBox="0 0 20 8"><path d="M15.186.445c.865.944 1.614 1.662 2.246 2.154.631.491 1.227.857 1.787 1.098v.44a9.933 9.933 0 0 0-1.875 1.196c-.606.485-1.328 1.196-2.168 2.134h-.752c.612-1.309 1.253-2.315 1.924-3.018H.77v-.986h15.577c-.495-.632-.84-1.1-1.035-1.406-.196-.306-.486-.843-.87-1.612h.743z" fill="#000" fill-rule="evenodd"/></svg></a>
4153  </div>
4154</div>
4155
4156
4157
4158
4159</div>
4160
4161
4162    </main>
4163
4164    <div id="shopify-section-footer" class="shopify-section">
4165<style>
4166  .site-footer__hr {
4167    border-bottom: 1px solid #dcdcdc;
4168  }
4169
4170  .site-footer p,
4171  .site-footer__linklist-item a,
4172  .site-footer__rte a,
4173  .site-footer h4,
4174  .site-footer small,
4175  .site-footer__copyright-content a,
4176  .site-footer__newsletter-error {
4177    color: #3d4246;
4178  }
4179
4180  .site-footer {
4181    color: #3d4246;
4182    background-color: #f5f5f5;
4183  }
4184
4185  .site-footer__rte a {
4186    border-bottom: 1px solid #3d4246;
4187  }
4188
4189  .site-footer__rte a:hover,
4190  .site-footer__linklist-item a:hover,
4191  .site-footer__copyright-content a:hover {
4192    color: #61696f;
4193    border-bottom: 1px solid #61696f;
4194  }
4195</style>
4196
4197<footer class="site-footer" role="contentinfo">
4198  <div class="page-width">
4199    <div class="site-footer__content"><div class="site-footer__item
4200                    
4201                    site-footer__item--one-half
4202                    "
4203             >
4204          <div class="site-footer__item-inner site-footer__item-inner--text"><p class="h4">About us</p><div class="site-footer__rte
4205                              ">
4206                      <p>This is an online select shop, where the owner collects beautiful handmade artifacts from different cultures around the world to be used in your daily life. It is based in Offenburg, Germany although there is no physical shop. We source the artifacts from local artisans and local partners that are ethically & environmentally friendly producing the crafts. </p>
4207                  </div></div>
4208        </div><div class="site-footer__item
4209                    
4210                    site-footer__item--one-half
4211                    "
4212             >
4213          <div class="site-footer__item-inner site-footer__item-inner--text"><p class="h4">Impressum</p><div class="site-footer__rte
4214                              ">
4215                      <p>Publisher: Izumi Nakamura</p><p>Address: </p><p>77652 Offenburg, Germany</p><p>Email: [email protected]</p>
4216                  </div></div>
4217        </div></div>
4218  </div>
4219
4220  <hr class="site-footer__hr"><div class="page-width">
4221    <div class="grid grid--no-gutters small--text-center">
4222      <div class="grid__item one-half small--one-whole"><ul class="list--inline site-footer__social-icons social-icons site-footer__icon-list"><li>
4223                  <a class="social-icons__link" href="https://www.facebook.com/SpringBeautiful-102335188043446" aria-describedby="a11y-external-message"><svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-facebook" viewBox="0 0 20 20"><path fill="#444" d="M18.05.811q.439 0 .744.305t.305.744v16.637q0 .439-.305.744t-.744.305h-4.732v-7.221h2.415l.342-2.854h-2.757v-1.83q0-.659.293-1t1.073-.342h1.488V3.762q-.976-.098-2.171-.098-1.634 0-2.635.964t-1 2.72V9.47H7.951v2.854h2.415v7.221H1.413q-.439 0-.744-.305t-.305-.744V1.859q0-.439.305-.744T1.413.81H18.05z"/></svg><span class="icon__fallback-text">Facebook</span>
4224                  </a>
4225                </li><li>
4226                  <a class="social-icons__link" href="https://www.pinterest.co.uk/inakamura0602/pins/" aria-describedby="a11y-external-message"><svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-pinterest" viewBox="0 0 20 20"><path fill="#444" d="M9.958.811q1.903 0 3.635.744t2.988 2 2 2.988.744 3.635q0 2.537-1.256 4.696t-3.415 3.415-4.696 1.256q-1.39 0-2.659-.366.707-1.147.951-2.025l.659-2.561q.244.463.903.817t1.39.354q1.464 0 2.622-.842t1.793-2.305.634-3.293q0-2.171-1.671-3.769t-4.257-1.598q-1.586 0-2.903.537T5.298 5.897 4.066 7.775t-.427 2.037q0 1.268.476 2.22t1.427 1.342q.171.073.293.012t.171-.232q.171-.61.195-.756.098-.268-.122-.512-.634-.707-.634-1.83 0-1.854 1.281-3.183t3.354-1.329q1.83 0 2.854 1t1.025 2.61q0 1.342-.366 2.476t-1.049 1.817-1.561.683q-.732 0-1.195-.537t-.293-1.269q.098-.342.256-.878t.268-.915.207-.817.098-.732q0-.61-.317-1t-.927-.39q-.756 0-1.269.695t-.512 1.744q0 .39.061.756t.134.537l.073.171q-1 4.342-1.22 5.098-.195.927-.146 2.171-2.513-1.122-4.062-3.44T.59 10.177q0-3.879 2.744-6.623T9.957.81z"/></svg><span class="icon__fallback-text">Pinterest</span>
4227                  </a>
4228                </li><li>
4229                  <a class="social-icons__link" href="https://www.instagram.com/kawaii_presenter0704" aria-describedby="a11y-external-message"><svg aria-hidden="true" focusable="false" role="presentation" class="icon icon-instagram" viewBox="0 0 512 512"><path d="M256 49.5c67.3 0 75.2.3 101.8 1.5 24.6 1.1 37.9 5.2 46.8 8.7 11.8 4.6 20.2 10 29 18.8s14.3 17.2 18.8 29c3.4 8.9 7.6 22.2 8.7 46.8 1.2 26.6 1.5 34.5 1.5 101.8s-.3 75.2-1.5 101.8c-1.1 24.6-5.2 37.9-8.7 46.8-4.6 11.8-10 20.2-18.8 29s-17.2 14.3-29 18.8c-8.9 3.4-22.2 7.6-46.8 8.7-26.6 1.2-34.5 1.5-101.8 1.5s-75.2-.3-101.8-1.5c-24.6-1.1-37.9-5.2-46.8-8.7-11.8-4.6-20.2-10-29-18.8s-14.3-17.2-18.8-29c-3.4-8.9-7.6-22.2-8.7-46.8-1.2-26.6-1.5-34.5-1.5-101.8s.3-75.2 1.5-101.8c1.1-24.6 5.2-37.9 8.7-46.8 4.6-11.8 10-20.2 
422918.8-29s17.2-14.3 29-18.8c8.9-3.4 22.2-7.6 46.8-8.7 26.6-1.3 34.5-1.5 101.8-1.5m0-45.4c-68.4 0-77 .3-103.9 1.5C125.3 6.8 107 11.1 91 17.3c-16.6 6.4-30.6 15.1-44.6 29.1-14 14-22.6 28.1-29.1 44.6-6.2 16-10.5 34.3-11.7 61.2C4.4 179 4.1 187.6 4.1 256s.3 77 1.5 103.9c1.2 26.8 5.5 45.1 11.7 61.2 6.4 16.6 15.1 30.6 29.1 44.6 14 14 28.1 22.6 44.6 29.1 16 6.2 34.3 10.5 61.2 11.7 26.9 1.2 35.4 1.5 103.9 1.5s77-.3 103.9-1.5c26.8-1.2 45.1-5.5 61.2-11.7 16.6-6.4 30.6-15.1 44.6-29.1 14-14 22.6-28.1 29.1-44.6 6.2-16 10.5-34.3 11.7-61.2 1.2-26.9 1.5-35.4 1.5-103.9s-.3-77-1.5-103.9c-1.2-26.8-5.5-45.1-11.7-61.2-6.4-16.6-15.1-30.6-29.1-44.6-14-14-28.1-22.6-44.6-29.1-16-6.2-34.3-10.5-61.2-11.7-27-1.1-35.6-1.4-104-1.4z"/><path d="M256 126.6c-71.4 0-129.4 57.9-129.4 129.4s58 129.4 129.4 129.4 129.4-58 129.4-129.4-58-129.4-129.4-129.4zm0 213.4c-46.4 0-84-37.6-84-84s37.6-84 84-84 84 37.6 84 84-37.6 84-84 84z"/><circle cx="390.5" cy="121.5" r="30.2"/></svg><span class="icon__fallback-text">Instagram</span>
4230                  </a>
4231                </li></ul></div>
4232
4233      <div class="grid__item one-half small--one-whole">
4234        
4235          <div class="grid__item site-footer__payment-icons">
4236            
4237              <span class="visually-hidden">Payment methods</span>
4238              <ul class="payment-icons list--inline site-footer__icon-list">
4239                
4240                  <li class="payment-icon">
4241                    <svg class="icon icon--full-color" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-american_express"><title id="pi-american_express">American Express</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#0071CE" style="fill:#0071CE;fill:color(display-p3 0.0000 0.4431 0.8078);fill-opacity:1;"/><path d="M3 0.5H35C36.3348 0.5 37.5 1.58692 37.5 3V21C37.5 22.4239 36.4239 23.5 35 23.5H3C1.66524 23.5 0.5 22.4131 0.5 21V3C0.5 1.57614 1.57614 0.5 3 0.5Z" stroke="black" stroke-opacity="0.07" style="stroke:black;stroke-opacity:0.07;"/><path d="M25.8662 6.33203V3H31L31.8662 5.5332L32.7334 3H37V14.2002H36.7998L34.8672 16.2656L36.7998 18.3594H37V21.2666H33.5996L31.9336 19.3994L30.2002 21.2666H19.4668V12.666H16L20.2666 3H24.4004L25.8662 6.33203ZM20.5996 20.2656H27V18.5322H22.666V17.3994H26.8662V15.666H22.666V14.5322H27V12.7988H20.5996V20.2656ZM30.5332 16.5322L27 20.2656H29.5996L31.8662 17.8662L34.0664 20.2656H36.7324L33.1992 16.4658L36.7324 12.7988H34.1328L31.8662 15.1992L29.7324 12.7988H27L30.5332 16.5322ZM17.666 11.7324H19.9326L20.5332 10.1992H23.999L24.666 11.7324H26.999L23.666 4.19922H20.999L17.666 11.7324ZM33.5996 4.19922L31.9326 8.86621L30.1992 4.19922H27V11.666H29.0664V6.39941L31 11.666H32.7998L34.7324 6.39941V11.666H36.7324V4.13281L33.5996 4.19922ZM23.2656 8.46582H21.2656L22.2656 5.99902L23.2656 8.46582Z" fill="white" style="fill:white;fill-opacity:1;"/></svg>
4242
4243                  </li>
4244                
4245                  <li class="payment-icon">
4246                    <svg class="icon icon--full-color" version="1.1" xmlns="http://www.w3.org/2000/svg" role="img" x="0" y="0" width="38" height="24" viewBox="0 0 165.521 105.965" xml:space="preserve" aria-labelledby="pi-apple_pay"><title id="pi-apple_pay">Apple Pay</title><path fill="#000" d="M150.698 0H14.823c-.566 0-1.133 0-1.698.003-.477.004-.953.009-1.43.022-1.039.028-2.087.09-3.113.274a10.51 10.51 0 0 0-2.958.975 9.932 9.932 0 0 0-4.35 4.35 10.463 10.463 0 0 0-.975 2.96C.113 9.611.052 10.658.024 11.696a70.22 70.22 0 0 0-.022 1.43C0 13.69 0 14.256 0 14.823v76.318c0 .567 0 1.132.002 1.699.003.476.009.953.022 1.43.028 1.036.09 2.084.275 3.11a10.46 10.46 0 0 0 .974 2.96 9.897 9.897 0 0 0 1.83 2.52 9.874 9.874 0 0 0 2.52 1.83c.947.483 1.917.79 2.96.977 1.025.183 2.073.245 3.112.273.477.011.953.017 1.43.02.565.004 1.132.004 1.698.004h135.875c.565 0 1.132 0 1.697-.004.476-.002.952-.009 1.431-.02 1.037-.028 2.085-.09 3.113-.273a10.478 10.478 0 0 0 2.958-.977 9.955 9.955 0 0 0 4.35-4.35c.483-.947.789-1.917.974-2.96.186-1.026.246-2.074.274-3.11.013-.477.02-.954.022-1.43.004-.567.004-1.132.004-1.699V14.824c0-.567 0-1.133-.004-1.699a63.067 63.067 0 0 0-.022-1.429c-.028-1.038-.088-2.085-.274-3.112a10.4 10.4 0 0 0-.974-2.96 9.94 9.94 0 0 0-4.35-4.35A10.52 10.52 0 0 0 156.939.3c-1.028-.185-2.076-.246-3.113-.274a71.417 71.417 0 0 0-1.431-.022C151.83 0 151.263 0 150.698 0z" /><path fill="#FFF" d="M150.698 3.532l1.672.003c.452.003.905.008 1.36.02.793.022 1.719.065 2.583.22.75.135 1.38.34 1.984.648a6.392 6.392 0 0 1 2.804 2.807c.306.6.51 1.226.645 1.983.154.854.197 1.783.218 2.58.013.45.019.9.02 1.36.005.557.005 1.113.005 1.671v76.318c0 .558 
42460 1.114-.004 1.682-.002.45-.008.9-.02 1.35-.022.796-.065 1.725-.221 2.589a6.855 6.855 0 0 1-.645 1.975 6.397 6.397 0 0 1-2.808 2.807c-.6.306-1.228.511-1.971.645-.881.157-1.847.2-2.574.22-.457.01-.912.017-1.379.019-.555.004-1.113.004-1.669.004H14.801c-.55 0-1.1 0-1.66-.004a74.993 74.993 0 0 1-1.35-.018c-.744-.02-1.71-.064-2.584-.22a6.938 6.938 0 0 1-1.986-.65 6.337 6.337 0 0 1-1.622-1.18 6.355 6.355 0 0 1-1.178-1.623 6.935 6.935 0 0 1-.646-1.985c-.156-.863-.2-1.788-.22-2.578a66.088 66.088 0 0 1-.02-1.355l-.003-1.327V14.474l.002-1.325a66.7 66.7 0 0 1 .02-1.357c.022-.792.065-1.717.222-2.587a6.924 6.924 0 0 1 .646-1.981c.304-.598.7-1.144 1.18-1.623a6.386 6.386 0 0 1 1.624-1.18 6.96 6.96 0 0 1 1.98-.646c.865-.155 1.792-.198 2.586-.22.452-.012.905-.017 1.354-.02l1.677-.003h135.875" /><g><g><path fill="#000" d="M43.508 35.77c1.404-1.755 2.356-4.112 2.105-6.52-2.054.102-4.56 1.355-6.012 3.112-1.303 1.504-2.456 3.959-2.156 6.266 2.306.2 4.61-1.152 6.063-2.858" /><path fill="#000" d="M45.587 39.079c-3.35-.2-6.196 1.9-7.795 1.9-1.6 0-4.049-1.8-6.698-1.751-3.447.05-6.645 2-8.395 5.1-3.598 6.2-.95 15.4 2.55 20.45 1.699 2.5 3.747 5.25 6.445 5.151 2.55-.1 3.549-1.65 6.647-1.65 3.097 0 3.997 1.65 6.696 1.6 2.798-.05 4.548-2.5 6.247-5 1.95-2.85 2.747-5.6 2.797-5.75-.05-.05-5.396-2.101-5.446-8.251-.05-5.15 4.198-7.6 4.398-7.751-2.399-3.548-6.147-3.948-7.447-4.048" /></g><g><path fill="#000" d="M78.973 32.11c7.278 0 12.347 5.017 12.347 12.321 0 7.33-5.173 12.373-12.529 12.373h-8.058V69.62h-5.822V32.11h14.062zm-8.24 19.807h6.68c5.07 0 7.954-2.729 7.954-7.46 0-4.73-2.885-7.434-7.928-7.434h-6.706v14.894z" /><path fill="#000" d="M92.764 61.847c0-4.809 3.665-7.564 10.423-7.98l7.252-.442v-2.08c0-3.04-2.001-4.704-5.562-4.704-2.938 0-5.07 1.507-5.51 3.82h-5.252c.157-4.86 4.731-8.395 10.918-8.395 6.654 0 10.995 3.483 10.995 8.89v18.663h-5.38v-4.497h-.13c-1.534 2.937-4.914 4.782-8.579 4.782-5.406 0-9.175-3.222-9.175-8.057zm17.675-2.417v-2.106l-6.472.416c-3.64.234-5.536 1.585-5.536 3.95 0 2.288 1.975 3.77 5.068 3.77 3.95 0 6.94-2.522 6.94-6.03z" /><path fill="#000" d="M120.975 79.652v-4.496c.364.051 1.247.103 1.715.103 2.573 0 4.029-1.09 4.913-3.899l.52-1.663-9.852-27.293h6.082l6.863 22.146h.13l6.862-22.146h5.927l-10.216 28.67c-2.34 6.577-5.017 8.735-10.683 8.735-.442 0-1.872-.052-2.261-.157z" /></g></g></svg>
4247
4248                  </li>
4249                
4250                  <li class="payment-icon">
4251                    <svg class="icon icon--full-color" xmlns="http://www.w3.org/2000/svg" aria-labelledby="pi-bancontact" role="img" viewBox="0 0 38 24" width="38" height="24"><title id="pi-bancontact">Bancontact</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 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="M4.703 3.077h28.594c.139 0 .276.023.405.068.128.045.244.11.343.194a.9.9 0 0 1 .229.29c.053.107.08.223.08.34V20.03a.829.829 0 0 1-.31.631 1.164 1.164 0 0 1-.747.262H4.703a1.23 1.23 0 0 1-.405-.068 1.09 1.09 0 0 1-.343-.194.9.9 0 0 1-.229-.29.773.773 0 0 1-.08-.34V3.97c0-.118.027-.234.08-.342a.899.899 0 0 1 .23-.29c.098-.082.214-.148.342-.193a1.23 1.23 0 0 1 .405-.068Z" fill="#fff"/><path d="M6.38 18.562v-3.077h1.125c.818 0 1.344.259 1.344.795 0 .304-.167.515-.401.638.338.132.536.387.536.734 0 .62-.536.91-1.37.91H6.38Zm.724-1.798h.537c.328 0 .468-.136.468-.387 0-.268-.255-.356-.599-.356h-.406v.743Zm0 1.262h.448c.438 0 .693-.093.693-.383 0-.286-.219-.404-.63-.404h-.51v.787Zm3.284.589c-.713 0-1.073-.295-1.073-.69 0-.436.422-.69 1.047-.695.156.002.31.014.464.035v-.105c0-.269-.183-.396-.531-.396a2.128 2.128 0 0 0-.688.105l-.13-.474a3.01 3.01 0 0 1 .9-.132c.767 0 1.147.343 1.147.936v1.222c-.214.093-.615.194-1.136.194Zm.438-.497v-.47a2.06 2.06 0 0 0-.37-.036c-.24 0-.427.08-.427.286 0 .185.156.281.432.281a.947.947 0 0 0 .365-.061Zm1.204.444v-2.106a3.699 3.699 0 0 1 1.177-.193c.76 0 1.198.316 1.198.9v1.399h-.719v-1.354c0-.303-.167-.444-.484-.444a1.267 1.267 0 0 0-.459.079v1.719h-.713Zm4.886-2.167-.135.479a1.834 1.834 0 0 0-.588-.11c-.422 0-.652.25-.652.664 0 .453.24.685.688.685.2-.004.397-.043.578-.114l.115.488a2.035 2.035 0 0 1-.75.128c-.865 0-1.365-.453-1.365-1.17 0-.712.495-1.182 1.323-1.182.27-.
4251001.538.043.787.132Zm1.553 2.22c-.802 0-1.302-.47-1.302-1.178 0-.704.5-1.174 1.302-1.174.807 0 1.297.47 1.297 1.173 0 .708-.49 1.179-1.297 1.179Zm0-.502c.37 0 .563-.259.563-.677 0-.413-.193-.672-.563-.672-.364 0-.568.26-.568.672 0 .418.204.677.568.677Zm1.713.449v-2.106a3.699 3.699 0 0 1 1.177-.193c.76 0 1.198.316 1.198.9v1.399h-.719v-1.354c0-.303-.166-.444-.484-.444a1.268 1.268 0 0 0-.459.079v1.719h-.713Zm3.996.053c-.62 0-.938-.286-.938-.866v-.95h-.354v-.484h.355v-.488l.718-.03v.518h.578v.484h-.578v.94c0 .256.125.374.36.374.093 0 .185-.008.276-.026l.036.488c-.149.028-.3.041-.453.04Zm1.814 0c-.713 0-1.073-.295-1.073-.69 0-.436.422-.69 1.047-.695.155.002.31.014.464.035v-.105c0-.269-.183-.396-.532-.396a2.128 2.128 0 0 0-.687.105l-.13-.474a3.01 3.01 0 0 1 .9-.132c.766 0 1.146.343 1.146.936v1.222c-.213.093-.614.194-1.135.194Zm.438-.497v-.47a2.06 2.06 0 0 0-.37-.036c-.24 0-.427.08-.427.286 0 .185.156.281.432.281a.946.946 0 0 0 .365-.061Zm3.157-1.723-.136.479a1.834 1.834 0 0 0-.588-.11c-.422 0-.651.25-.651.664 0 .453.24.685.687.685.2-.004.397-.043.578-.114l.115.488a2.035 2.035 0 0 1-.75.128c-.865 0-1.365-.453-1.365-1.17 0-.712.495-1.182 1.323-1.182.27-.001.538.043.787.132Zm1.58 2.22c-.62 0-.938-.286-.938-.866v-.95h-.354v-.484h.354v-.488l.72-.03v.518h.577v.484h-.578v.94c0 .256.125.374.36.374.092 0 .185-.008.276-.026l.036.488c-.149.028-.3.041-.453.04Z" fill="#1E3764"/><path d="M11.394 13.946c3.803 0 5.705-2.14 7.606-4.28H6.38v4.28h5.014Z" fill="url(#pi-bancontact-a)"/><path d="M26.607 5.385c-3.804 0-5.705 2.14-7.607 4.28h12.62v-4.28h-5.013Z" fill="url(#pi-bancontact-b)"/><defs><linearGradient id="pi-bancontact-a" x1="8.933" y1="12.003" x2="17.734" y2="8.13" gradientUnits="userSpaceOnUse"><stop stop-color="#005AB9"/><stop offset="1" stop-color="#1E3764"/></linearGradient><linearGradient id="pi-bancontact-b" x1="19.764" y1="10.037" x2="29.171" y2="6.235" gradientUnits="userSpaceOnUse"><stop stop-color="#FBA900"/><stop offset="1" stop-color="#FFD800"/></linearGradient></defs></svg>
4252                  </li>
4253                
4254                  <li class="payment-icon">
4255                    <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-blik"><title id="pi-blik">BLIK</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 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="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="url(#pi-blik-paint0_linear)"/><path d="M30.343 17.155l-2.785-3.639 2.563-3.236h-2.185l-2.456 3.138V6.78h-1.848v10.375h1.848v-3.532l2.456 3.532h2.407zM18.613 6.78h-1.848v10.366h1.848V6.78zm3.433 3.508h-1.848v6.867h1.848v-6.867z" fill="#fff"/><path d="M13.849 9.573a1.651 1.651 0 100-3.302 1.651 1.651 0 000 3.302z" fill="url(#pi-blik-paint1_radial)"/><path d="M12.041 10.206c-.574 0-1.138.144-1.642.419V6.82H8.534v6.9a3.516 3.516 0 103.507-3.515zm0 5.175a1.643 1.643 0 110-3.286 1.643 1.643 0 010 3.286z" fill="#fff"/><defs><radialGradient id="pi-blik-paint1_radial" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(12.51 6.18) scale(5.41297)"><stop stop-color="red"/><stop offset=".49" stop-color="#E83E49"/><stop offset="1" stop-color="#F0F"/></radialGradient><linearGradient id="pi-blik-paint0_linear" x1="19" y1="4.977" x2="19" y2="55.605" gradientUnits="userSpaceOnUse"><stop/><stop offset=".732" stop-color="#fff"/><stop offset="1" stop-color="#fff"/></linearGradient></defs></svg>
4256                  </li>
4257                
4258                  <li class="payment-icon">
4259                    <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.
425906zM23.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>
4260
4261                  </li>
4262                
4263                  <li class="payment-icon">
4264                    <svg class="icon icon--full-color" xmlns="http://www.w3.org/2000/svg" role="img" width="38" height="24" viewBox="0 0 38 24" aria-labelledby="pi-klarna" fill="none"><title id="pi-klarna">Klarna</title><rect width="38" height="24" rx="2" fill="#FFA8CD"/><rect x=".5" y=".5" width="37" height="23" rx="1.5" stroke="#000" stroke-opacity=".07"/><path d="M30.62 14.755c-.662 0-1.179-.554-1.179-1.226 0-.673.517-1.226 1.18-1.226.663 0 1.18.553 1.18 1.226 0 .672-.517 1.226-1.18 1.226zm-.33 1.295c.565 0 1.286-.217 1.686-1.068l.04.02c-.176.465-.176.742-.176.81v.11h1.423v-4.786H31.84v.109c0 .069 0 .346.175.81l-.039.02c-.4-.85-1.121-1.068-1.687-1.068-1.355 0-2.31 1.088-2.31 2.522 0 1.433.955 2.521 2.31 2.521zm-4.788-5.043c-.643 0-1.15.228-1.56 1.068l-.039-.02c.175-.464.175-.741.175-.81v-.11h-1.423v4.787h1.462V13.4c0-.662.38-1.078.995-1.078.614 0 .917.356.917 1.068v2.532h1.462v-3.046c0-1.088-.838-1.869-1.989-1.869zm-4.963 1.068l-.039-.02c.176-.464.176-.741.176-.81v-.11h-1.424v4.787h1.463l.01-2.304c0-.673.35-1.078.926-1.078.156 0 .282.02.429.06v-1.464c-.644-.139-1.22.109-1.54.94zm-4.65 2.68c-.664 0-1.18-.554-1.18-1.226 0-.673.516-1.226 1.18-1.226.662 0 1.179.553 1.179 1.226 0 .672-.517 1.226-1.18 1.226zm-.332 1.295c.565 0 1.287-.217 1.687-1.068l.038.02c-.175.465-.175.742-.175.81v.11h1.424v-4.786h-1.424v.109c0 .069 0 .346.175.81l-.038.02c-.4-.85-1.122-1.068-1.687-1.068-1.356 0-2.311 1.088-2.311 2.522 0 1.433.955 2.521 2.31 2.521zm-4.349-.128h1.463V9h-1.463v6.922zM10.136 9H8.644c0 1.236-.751 2.343-1.892 3.134l-.448.317V9h-1.55v6.922h1.55V12.49l2.564 3.43h1.892L8.293 12.64c1.121-.82 1.852-2.096 1.843-3.639z" fill="#0B051D"/></svg>
4265                  </li>
4266                
4267                  <li class="payment-icon">
4268                    <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-maestro"><title id="pi-maestro">Maestro</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="#00A2E5" cx="23" cy="12" r="7"/><path fill="#7375CF" 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>
4269                  </li>
4270                
4271                  <li class="payment-icon">
4272                    <svg class="icon icon--full-color" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-master"><title id="pi-master">Mastercard</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#1C1C1C" style="fill:#1C1C1C;fill:color(display-p3 0.1098 0.1098 0.1098);fill-opacity:1;"/><path d="M35 1C36.1 1 37 1.9 37 3V21C37 22.1 36.1 23 35 23H3C1.9 23 1 22.1 1 21V3C1 1.9 1.9 1 3 1H35Z" fill="#232323" style="fill:#232323;fill:color(display-p3 0.1373 0.1373 0.1373);fill-opacity:1;"/>
4272<path d="M14.6364 19.2727C18.8538 19.2727 22.2727 15.8538 22.2727 11.6364C22.2727 7.41892 18.8538 4 14.6364 4C10.4189 4 7 7.41892 7 11.6364C7 15.8538 10.4189 19.2727 14.6364 19.2727Z" fill="#EB001B" style="fill:#EB001B;fill:color(display-p3 0.9216 0.0000 0.1059);fill-opacity:1;"/><path d="M23.3637 19.2727C27.5811 19.2727 31 15.8538 31 11.6364C31 7.41892 27.5811 4 23.3637 4C19.1462 4 15.7273 7.41892 15.7273 11.6364C15.7273 15.8538 19.1462 19.2727 23.3637 19.2727Z" fill="#F79E1B" style="fill:#F79E1B;fill:color(display-p3 0.9686 0.6196 0.1059);fill-opacity:1;"/><path d="M22.2727 11.6362C22.2727 9.01797 20.9637 6.72706 19 5.41797C17.0364 6.83615 15.7273 9.12706 15.7273 11.6362C15.7273 14.1452 17.0364 16.5452 19 17.8543C20.9637 16.5452 22.2727 14.2543 22.2727 11.6362Z" fill="#FF5F00" style="fill:#FF5F00;fill:color(display-p3 1.0000 0.3725 0.0000);fill-opacity:1;"/></svg>
4273
4274                  </li>
4275                
4276                  <li class="payment-icon">
4277                    <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-mobilepay"><title id="pi-mobilepay">MobilePay</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 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-rule="evenodd" clip-rule="evenodd" d="M20.05 15.296s2.53-.771 4.282-.776c2.896-.007 4.857 1.15 4.857 1.15V10.06s-1.97-1.02-4.453-1.09c-2.481-.068-4.687 1.012-4.687 1.012v5.313z" fill="#5A78FF"/><path fill-rule="evenodd" clip-rule="evenodd" d="M17.308 9.19l2.082 4.957V9.396s1.646-.882 3.485-1.13c1.84-.249 4.181.08 4.181.08l-1.133-2.707s-2.461-.159-4.69.794c-2.228.952-3.925 2.756-3.925 2.756z" fill="#5A78FF"/><path d="M21.428 5.676l-.82-1.99a1.818 1.818 0 00-2.37-.996l-5.663 2.334a1.818 1.818 0 00-.98 2.376l5.46 13.247a1.818 1.818 0 002.37.995l5.662-2.334a1.817 1.817 0 00.98-2.376l-.677-1.642s-.462-.027-.676-.033c-.226-.006-.644-.001-.644-.001l.88 2.136a.606.606 0 01-.326.793l-5.663 2.333a.606.606 0 01-.79-.331L12.711 6.94a.606.606 0 01.327-.792L18.7 3.814a.606.606 0 01.79.332l.83 2.011s.383-.187.59-.27c.206-.082.518-.211.518-.211z" fill="#5A78FF"/></svg>
4278                  </li>
4279                
4280                  <li class="payment-icon">
4281                    <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 
42810-.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>
4282                  </li>
4283                
4284                  <li class="payment-icon">
4285                    <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-shopify_pay"><title id="pi-shopify_pay">Shop Pay</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" fill="#000"/><path d="M35.889 0C37.05 0 38 .982 38 2.182v19.636c0 1.2-.95 2.182-2.111 2.182H2.11C.95 24 0 23.018 0 21.818V2.182C0 .982.95 0 2.111 0H35.89z" fill="#5A31F4"/><path d="M9.35 11.368c-1.017-.223-1.47-.31-1.47-.705 0-.372.306-.558.92-.558.54 0 .934.238 1.225.704a.079.079 0 00.104.03l1.146-.584a.082.082 0 00.032-.114c-.475-.831-1.353-1.286-2.51-1.286-1.52 0-2.464.755-2.464 1.956 0 1.275 1.15 1.597 2.17 1.82 1.02.222 1.474.31 1.474.705 0 .396-.332.582-.993.582-.612 0-1.065-.282-1.34-.83a.08.08 0 00-.107-.035l-1.143.57a.083.083 0 00-.036.111c.454.92 1.384 1.437 2.627 1.437 1.583 0 2.539-.742 2.539-1.98s-1.155-1.598-2.173-1.82v-.003zM15.49 8.855c-.65 0-1.224.232-1.636.646a.04.04 0 01-.069-.03v-2.64a.08.08 0 00-.08-.081H12.27a.08.08 0 00-.08.082v8.194a.08.08 0 00.08.082h1.433a.08.08 0 00.081-.082v-3.594c0-.695.528-1.227 1.239-1.227.71 0 1.226.521 1.226 1.227v3.594a.08.08 0 00.081.082h1.433a.08.08 0 00.081-.082v-3.594c0-1.51-.981-2.577-2.355-2.577zM20.753 8.62c-.778 0-1.507.24-2.03.588a.082.082 0 00-.027.109l.632 1.088a.08.08 0 00.11.03 2.5 2.5 0 011.318-.366c1.25 0 2.17.891 2.17 2.068 0 1.003-.736 1.745-1.669 1.745-.76 0-1.288-.446-1.288-1.077 0-.361.152-.657.548-.866a.08.08 0 00.032-.113l-.596-1.018a.08.08 0 00-.098-.035c-.799.299-1.359 1.018-1.359 1.984 0 1.46 1.152 2.55 2.76 2.55 1.877 0 3.227-1.313 3.227-3.195 0-2.018-1.57-3.492-3.73-3.492zM28.675 8.843c-.724 0-1.373.27-1.845.746-.026.027-.069.007-.069-.029v-.572a.08.08 0 00-.08-.082h-1.397a.08.08 0 00-.08.082v8.182a.08.08 0 00.08.081h1.433a.08.08 0 00.081-.081v-2.683c0-.036.043-.054.069-.03a2.6 2.6 0 001.808.7c1.682 0 2.993-1.373 2.993-3.157s-1.313-3.157-2.993-3.157zm-.271 4.929c-.956 0-1.681-.768-1.681-1.783s.723-1.783 1.681-1.783c.958 0 1.68.755 1.68 1.783 0 1.027-.713 1.783-1.681 1.783h.001z" fill="#fff"/></svg>
4286
4287                  </li>
4288                
4289                  <li class="payment-icon">
4290                    <svg class="icon icon--full-color" viewBox="-36 25 38 24" xmlns="http://www.w3.org/2000/svg" width="38" height="24" role="img" aria-labelledby="pi-unionpay"><title id="pi-unionpay">Union Pay</title><path fill="#005B9A" d="M-36 46.8v.7-.7zM-18.3 25v24h-7.2c-1.3 0-2.1-1-1.8-2.3l4.4-19.4c.3-1.3 1.9-2.3 3.2-2.3h1.4zm12.6 0c-1.3 0-2.9 1-3.2 2.3l-4.5 19.4c-.3 1.3.5 2.3 1.8 2.3h-4.9V25h10.8z"/><path fill="#E9292D" d="M-19.7 25c-1.3 0-2.9 1.1-3.2 2.3l-4.4 19.4c-.3 1.3.5 2.3 1.8 2.3h-8.9c-.8 0-1.5-.6-1.5-1.4v-21c0-.8.7-1.6 1.5-1.6h14.7z"/><path fill="#0E73B9" d="M-5.7 25c-1.3 0-2.9 1.1-3.2 2.3l-4.4 19.4c-.3 1.3.5 2.3 1.8 2.3H-26h.5c-1.3 0-2.1-1-1.8-2.3l4.4-19.4c.3-1.3 1.9-2.3 3.2-2.3h14z"/><path fill="#059DA4" d="M2 26.6v21c0 .8-.6 1.4-1.5 1.4h-12.1c-1.3 0-2.1-1.1-1.8-2.3l4.5-19.4C-8.6 26-7 25-5.7 25H.5c.9 0 1.5.7 1.5 1.6z"/><path fill="#fff" d="M-21.122 38.645h.14c.14 0 .28-.07.28-.14l.42-.63h1.19l-.21.35h1.4l-.21.63h-1.68c-.21.28-.42.42-.7.42h-.84l.21-.63m-.21.91h3.01l-.21.7h-1.19l-.21.7h1.19l-.21.7h-1.19l-.28 1.05c-.07.14 0 .28.28.21h.98l-.21.7h-1.89c-.35 0-.49-.21-.35-.63l.35-1.33h-.77l.21-.7h.77l.21-.7h-.7l.21-.7zm4.83-1.75v.42s.56-.42 1.12-.42h1.96l-.77 2.66c-.07.28-.35.49-.77.49h-2.24l-.49 1.89c0 .07 0 .14.14.14h.42l-.14.56h-1.12c-.42 0-.56-.14-.49-.35l1.47-5.39h.91zm1.68.77h-1.75l-.21.7s.28-.21.77-.21h1.05l.14-.49zm-.63 1.68c.14 0 .21 0 .21-.14l.14-.35h-1.75l-.14.56 1.54-.07zm-1.19.84h.98v.42h.28c.14 0 .21-.07.21-.14l.07-.28h.84l-.14.49c-.07.35-.35.49-.77.56h-.56v.77c0 .14.07.21.35.21h.49l-.14.56h-1.19c-.35 0-.49-.14-.49-.49l.07-2.1zm4.2-2.45l.21-.84h1.19l-.07.28s.56-.28 1.05-.28h1.47l-.21.84h-.21l-1.12 3.85h.21l-.21.77h-.21l-.07.35h-1.19l.07-.35h-2.17l.21-.77h.21l1.12-3.85h-.28m1.26 0l-.28 1.05s.49-.21.91-.28c.07-.35.21-.77.21-.77h-.84zm-.49 1.54l-.28 1.12s.56-.28.98-.28c.14-.42.21-.77.21-.77l-.91-.07zm.21 2.31l.21-.77h-.84l-.21.77h.84zm2.87-4.69h1.12l.07.42c0 .07.07.14.21.14h.21l-.21.7h-.77c-.28 0-.49-.07-.49-.35l-.14-.91zm-.35 1.47h3.57l-.21.77h-1.19l-.21.7h1.12l-.21.77h-1.26l-.28.42h.63l.14.84c0 .07.07.14.21.14h.21l-.21.7h-.7c-.35 0-.56-.07-.56-.35l-.14-.77-.56.84c-.14.21-.35.35-.63.35h-1.05l.21-.7h.35c.14 0 .21-.07.35-.21l.84-1.26h-1.05l.21-.77h1.19l.21-.7h-1.19l.21-.77zm-19.74-5.04c-.14.7-.42 1.19-.91 1.54-.49.35-1.12.56-1.89.56-.7 0-1.26-.21-1.54-.56-.21-.28-.35-.56-.35-.98 0-.14 0-.35.07-.56l.84-3.92h1.19l-.77 3.92v.28c0 .21.07.35.14.49.14.21.35.28.7.28s.7-.07.91-.28c.21-.21.42-.42.49-.77l.77-3.92h1.19l-.84 3.92m1.12-1.54h.84l-.07.49.14-.14c.28-.28.63-.42 1.05-.42.35 0 .63.14.77.35.14.21.21.49.14.91l-.49 2.38h-.91l.42-2.17c.07-.28.07-.49 0-.56-.07-.14-.21-.14-.35-.14-.21 0-.42.07-.56.21-.14.14-.28.35-.28.63l-.42 2.03h-.91l.63-3.57m9.8 0h.84l-.07.49.14-.14c.28-.28.63-.42 1.05-.42.35 0 .63.14.77.35s.21.49.14.91l-.49 2.38h-.91l.42-2.24c.07-.21 0-.42-.07-.49-.07-.14-.21-.14-.35-.14-.21 0-.42.07-.56.21-.14.14-.28.35-.28.63l-.42 2.03h-.91l.7-3.57m-5.81 0h.98l-.77 3.5h-.98l.77-3.5m.35-1.33h.98l-.21.84h-.98l.21-.84zm1.4 4.55c-.21-.21-.35-.56-.35-.98v-.21c0-.07 0-.21.07-.28.14-.56.35-1.05.7-1.33.35-.35.84-.49 1.33-.49.42 0 .77.14 1.05.35.21.21.35.56.35.98v.21c0 .07 0 .21-.07.28-.14.56-.35.98-.7 1.33-.35.35-.84.49-1.33.49-.35 0-.7-.14-1.05-.35m1.89-.7c.14-.21.28-.49.35-.84v-.35c0-.21-.07-.35-.14-.49a.
4290635.635 0 0 0-.49-.21c-.28 0-.49.07-.63.28-.14.21-.28.49-.35.84v.28c0 .21.07.35.14.49.14.14.28.21.49.21.28.07.42 0 .63-.21m6.51-4.69h2.52c.49 0 .84.14 1.12.35.28.21.35.56.35.91v.28c0 .07 0 .21-.07.28-.07.49-.35.98-.7 1.26-.42.35-.84.49-1.4.49h-1.4l-.42 2.03h-1.19l1.19-5.6m.56 2.59h1.12c.28 0 .49-.07.7-.21.14-.14.28-.35.35-.63v-.28c0-.21-.07-.35-.21-.42-.14-.07-.35-.14-.7-.14h-.91l-.35 1.68zm8.68 3.71c-.35.77-.7 1.26-.91 1.47-.21.21-.63.7-1.61.7l.07-.63c.84-.28 1.26-1.4 1.54-1.96l-.28-3.78h1.19l.07 2.38.91-2.31h1.05l-2.03 4.13m-2.94-3.85l-.42.28c-.42-.35-.84-.56-1.54-.21-.98.49-1.89 4.13.91 2.94l.14.21h1.12l.7-3.29-.91.07m-.56 1.82c-.21.56-.56.84-.91.77-.28-.14-.35-.63-.21-1.19.21-.56.56-.84.91-.77.28.14.35.63.21 1.19"/></svg>
4291                  </li>
4292                
4293                  <li class="payment-icon">
4294                    <svg class="icon icon--full-color" xmlns="http://www.w3.org/2000/svg" role="img" viewBox="0 0 38 24" width="38" height="24" fill="none" aria-labelledby="pi-visa"><title id="pi-visa">Visa</title><rect x=".5" y=".5" width="37" height="23" rx="2.5" stroke="#000" stroke-opacity=".07" fill="none"/><path d="M35 0H3C1.3 0 0 1.3 0 3V21C0 22.7 1.4 24 3 24H35C36.7 24 38 22.7 38 21V3C38 1.3 36.6 0 35 0Z" fill="#142FBD" style="fill:#142FBD;fill:color(display-p3 0.0784 0.1843 0.7412);fill-opacity:1;"/><path d="M35 1C36.1 1 37 1.9 37 3V21C37 22.1 36.1 23 35 23H3C1.9 23 1 22.1 1 21V3C1 1.9 1.9 1 3 1H35Z" fill="#1532CB" style="fill:#1532CB;fill:color(display-p3 0.0824 0.1961 0.7961);fill-opacity:1;"/><path d="M29.5944 10.2167H29.2778C28.8556 11.2722 28.5389 11.8 28.2222 13.3833H30.2278C29.9111 11.8 29.9111 11.0611 29.5944 10.2167V10.2167ZM32.6556 16.4444H30.8611C30.7556 16.4444 30.7556 16.4444 30.65 16.3389L30.4389 15.3889L30.3333 15.1778H27.8C27.6944 15.1778 27.5889 15.1778 27.5889 15.3889L27.2722 16.3389C27.2722 16.4444 27.1667 16.4444 27.1667 16.4444H24.95L25.1611 15.9167L28.2222 8.73889C28.2222 8.21111 28.5389 8 29.0667 8H30.65C30.7556 8 30.8611 8 30.8611 8.21111L32.3389 15.0722C32.4444 15.4944 32.55 15.8111 32.55 16.2333C32.6556 16.3389 32.6556 16.3389 32.6556 16.4444V16.4444ZM18.5111 16.1278L18.9333 14.2278C19.0389 14.2278 19.1444 14.3333 19.1444 14.3333C19.8833 14.65 20.6222 14.8611 21.3611 14.7556C21.5722 14.7556 21.8889 14.65 22.1 14.5444C22.6278 14.3333 22.6278 13.8056 22.2056 13.3833C21.9944 13.1722 21.6778 13.0667 21.3611 12.8556C20.9389 12.6444 20.5167 12.4333 20.2 12.1167C18.9333 11.0611 19.3556 9.58333 20.0944 8.84444C20.7278 8.42222 21.0444 8 21.8889 8C23.1556 8 24.5278 8 25.1611 8.21111H25.2667C25.1611 8.84444 25.0556 9.37222 24.8444 10.0056C24.3167 9.79444 23.7889 9.58333 23.2611 9.58333C22.9444 9.58333 22.6278 9.58333 22.3111 9.68889C22.1 9.68889 21.9944 9.79444 21.8889 9.9C21.6778 10.1111 21.6778 10.4278 21.8889 10.6389L22.4167 11.0611C22.8389 11.2722 23.2611 11.4833 23.5778 11.6944C24.1056 12.0111 24.6333 12.5389 24.7389 13.1722C24.95 14.1222 24.6333 14.9667 23.7889 15.6C23.2611 16.0222 23.05 16.2333 22.3111 16.2333C20.8333 16.2333 19.6722 16.3389 18.7222 16.0222C18.6167 16.2333 18.6167 16.2333 18.5111 16.1278V16.1278ZM14.8167 16.4444C14.9222 15.7056 14.9222 15.7056 15.0278 15.3889C15.5556 13.0667 16.0833 10.6389 16.5056 8.31667C16.6111 8.10556 16.6111 8 16.8222 8H18.7222C18.5111 9.26667 18.3 10.2167 17.9833 11.3778C17.6667 12.9611 17.35 14.5444 16.9278 16.1278C16.9278 16.3389 16.8222 16.3389 16.6111 16.3389L14.8167 16.4444ZM5 8.21111C5 8.10556 5.21111 8 5.31667 8H8.90556C9.43333 8 9.85556 8.31667 9.96111 8.84444L10.9111 13.4889C10.9111 13.5944 10.9111 13.5944 11.0167 13.7C11.0167 13.5944 11.1222 13.5944 11.1222 13.5944L13.3389 8.21111C13.2333 8.10556 13.3389 8 13.4444 8H15.6611C15.6611 8.10556 15.6611 8.10556 15.5556 8.21111L12.2833 15.9167C12.1778 16.1278 12.1778 
429416.2333 12.0722 16.3389C11.9667 16.4444 11.7556 16.3389 11.5444 16.3389H9.96111C9.85556 16.3389 9.75 16.3389 9.75 16.1278L8.06111 9.58333C7.85 9.37222 7.53333 9.05556 7.11111 8.95C6.47778 8.63333 5.31667 8.42222 5.10556 8.42222L5 8.21111Z" fill="white" style="fill:white;fill-opacity:1;"/></svg>
4295
4296                  </li>
4297                
4298              </ul>
4299            
4300          </div>
4301        
4302      </div>
4303      <div class="grid__item">
4304        <small class="site-footer__copyright-content">&copy; 2026, <a href="/" title="">Kawaii Presenter</a></small>
4305        <small class="site-footer__copyright-content site-footer__copyright-content--powered-by"><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>
4306      </div>
4307    </div>
4308  </div>
4309</footer>
4310
4311
4312
4313
4314</div>
4315
4316    <div id="slideshow-info" class="visually-hidden" aria-hidden="true">Use left/right arrows to navigate the slideshow or swipe left/right if using a mobile device</div>
4317
4318  </div>
4319
4320  <ul hidden>
4321    <li id="a11y-refresh-page-message">Choosing a selection results in a full page refresh.</li>
4322    <li id="a11y-selection-message">Press the space key then arrow keys to make a selection.</li>
4323  </ul>
4324
4325<!-- **BEGIN** Hextom TMS Translator // Main Include - DO NOT MODIFY -->
4326    
4326<script src="//spring-beautiful.myshopify.com/cdn/shop/t/1/assets/tms-translator.js?v=40893480092279687071676689850" defer="defer"></script>
4326
4327    <!-- **END** Hextom TMS Translator // Main Include - DO NOT MODIFY -->
4328        
4329        
4330        
4331        
4332        
4333        
4334        
4335        
4336        
4337        
4338        
4339        
4340        
4341        
4342        
4343        
4344        
4345        
4346        
4347        
4348
4349<!-- **BEGIN** Hextom TMS Integration // Main Include - DO NOT MODIFY -->
4350    <!-- **BEGIN** Hextom TMS Integration // Dropdown - DO NOT MODIFY -->
4351<script>
4352  var hextom_tms = {
4353    selectorInsertType:  "float",
4354    regionType:  "region_name_currency_symbol",
4355    floatingPosition: "bottom_right",
4356    floatingPaddingHorizontal:  15,
4357    floatingPaddingVertical:  15,
4358    availableLocalesById: {},
4359    availableLocales: [],
4360    primaryLocaleById: {},
4361    merchantSelectedLocale: "shop_base",
4362    hasFlag: "yes",
4363    selectorFlagMap: {'es': 'es', 'de': 'de', 'en': 'en', 'fr': 'fr', 'ja': 'ja', 'da': 'da', 'sv': 'sv', 'fi': 'fi', 'it': 'it', 'no': 'no'},
4364    displayType: "language_name",
4365    fontColor: "#000000",
4366    backgroundColor: "#FFFFFF",
4367    backgroundOpacity: "1.0",
4368    buttonFontColor: "#FFFFFF",
4369    buttonBackgroundColor: "#000000",
4370    selectorType: "market_language",
4371    selectorStyle: "dropdown",
4372    hasFlagRegion: "yes",    
4373    defaultRegion: "shop_base",    
4374    primaryRegionById: {},    
4375    availableRegionsByCode: {},    
4376    availableRegions: [],
4377    primaryDomain: "",
4378    popupEnable: false,
4379    popupTextColor: "#000000",
4380    popupBgColor: "#FFFFFF",
4381    popupBtnTextColor: "#FFFFFF",
4382    popupBtnBgColor: "#000000",
4383    regions: [{"name": "Germany", "code": "DE", "currency": {"code": "EUR", "symbol": "\u20ac"}, "languages": {"English": {"name": "English", "native_name": "English", "code": "en", "default": true}, "\u65e5\u672c\u8a9e": {"name": "\u65e5\u672c\u8a9e (Japanese)", "native_name": "\u65e5\u672c\u8a9e", "code": "ja", "default": false}, "Espa\u00f1ol": {"name": "Espa\u00f1ol (Spanish)", "native_name": "Espa\u00f1ol", "code": "es", "default": false}, "Svenska": {"name": "Svenska (Swedish)", "native_name": "Svenska", "code": "sv", "default": false}, "Deutsch": {"name": "Deutsch (German)", "native_name": "Deutsch", "code": "de", "default": false}, "Fran\u00e7ais": {"name": "Fran\u00e7ais (French)", "native_name": "Fran\u00e7ais", "code": "fr", "default": false}, "Italiano": {"name": "Italiano (Italian)", "native_name": "Italiano", "code": "it", "default": false}}, "primary": true}],
4384  };
4385</script>
vendor: 1 bytes, line 4385
4385
4386<script src="//spring-beautiful.myshopify.com/cdn/shop/t/1/assets/tms.js?v=4363873873501317481662947133" defer="defer"></script>
4386
4387<!-- **END** Hextom TMS Integration // Dropdown - DO NOT MODIFY -->
4388    
4389    <!-- **END** Hextom TMS Integration // Main Include - DO NOT MODIFY -->
4390<script src="//cdn.shopify.com/s/files/1/0194/1736/6592/t/1/assets/booster-page-speed-optimizer.js?23" type="text/javascript"></script>
4390
4391<div id="shopify-block-AYkpjcWFINkF3RWlJV__1513253815146976218" class="shopify-block shopify-app-block">
4392</div><div id="shopify-block-ARGE2emF2THkrZnJLS__9670189827046205946" class="shopify-block shopify-app-block">
4392<script type="application/javascript">
4393
4394window.TMS_SHOPIFY_EXTENSION_CDN = 'https://cdn.shopify.com/extensions/01a11f5e-ecd8-7271-a763-920f41042782/TMS-Prod-v-8abd617-64-1/assets/';
4395var tmsOnPageMoneyFormat = "${{amount}}";
4396var tmsShopBaseCurrencyCode = "EUR";
4397</script>
vendor: 1 bytes, line 4397
4397
4398<script type="application/javascript"><!-- BEGIN app snippet: tms_data_mo -->
4399var tmsRegionData = {"SE":{"region_name":"Sweden","region_code":"SE","currency_code":"EUR","currency_symbol":"€","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":true},"DK":{"region_name":"Denmark","region_code":"DK","currency_code":"EUR","currency_symbol":"€","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":true},"IT":{"region_name":"Italy","region_code":"IT","currency_code":"EUR","currency_symbol":"€","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":true},"FI":{"region_name":"Finland","region_code":"FI","currency_code":"EUR","currency_symbol":"€","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":true},"BE":{"region_name":"Belgium","region_code":"BE","currency_code":"EUR","currency_symbol":"€","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":true},"BG":{"region_name":"Bulgaria","region_code":"BG","currency_code":"EUR","currency_symbol":"€","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":true},"DE":{"region_name":"Germany","region_code":"DE","currency_code":"EUR","currency_symbol":"€","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":true,"is_tms_managed":true},"AD":{"region_name":"Andorra","region_code":"AD","currency_code":"EUR","currency_symbol":"€","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":true},"AX":{"region_name":"Åland Islands","region_code":"AX","currency_code":"EUR","currency_symbol":"€","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":true},"BY":{"region_name":"Belarus","region_code":"BY","currency_code":"BYN","currency_symbol":"Br","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":true},"GE":{"region_name":"Georgia","region_code":"GE","currency_code":"GEL","currency_symbol":"","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount","primary":false,"is_tms_managed":true}
4399,"GI":{"region_name":"Gibraltar","region_code":"GI","currency_code":"GIP","currency_symbol":"£","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount","primary":false,"is_tms_managed":true},"JO":{"region_name":"Jordan","region_code":"JO","currency_code":"JOD","currency_symbol":"","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"after","currency_format":"amount","primary":false,"is_tms_managed":true},"LY":{"region_name":"Libya","region_code":"LY","currency_code":"LYD","currency_symbol":"LD","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":true},"MC":{"region_name":"Monaco","region_code":"MC","currency_code":"EUR","currency_symbol":"€","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":true},"ME":{"region_name":"Montenegro","region_code":"ME","currency_code":"EUR","currency_symbol":"€","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":true},"SM":{"region_name":"San Marino","region_code":"SM","currency_code":"EUR","currency_symbol":"€","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":true},"SY":{"region_name":"Syria","region_code":"SY","currency_code":"SYP","currency_symbol":"S£","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount","primary":false,"is_tms_managed":true},"TN":{"region_name":"Tunisia","region_code":"TN","currency_code":"TND","currency_symbol":"","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"after","currency_format":"amount","primary":false,"is_tms_managed":true},"TR":{"region_name":"Turkey","region_code":"TR","currency_code":"TRY","currency_symbol":"TL","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"after","currency_format":"amount","primary":false,"is_tms_managed":true},"VA":{"region_name":"Vatican City","region_code":"VA","currency_code":"EUR","currency_symbol":"€","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":true},"XK":{"region_name":"Kosovo","region_code":"XK","currency_code":"EUR","currency_symbol":"€","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":true},"NO":{"region_name":"Norway","region_code":"NO","currency_code":"NOK","currency_symbol":"kr","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"after","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":true},"ES":{"region_name":"Spain","region_code":"ES","currency_code":"EUR","currency_symbol":"€","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":true},"HR":{"region_name":"Croatia","region_code":"HR","currency_code":"EUR","currency_symbol":"€","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":true},"CY":{"region_name":"Cyprus","region_code":"CY","currency_code":"EUR","currency_symbol":"€","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":true},"CZ":{"region_name":"Czechia","region_code":"CZ","currency_code":"EUR","currency_symbol":"€","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":true},"EE":{"region_name":"Estonia","region_code":"EE","currency_code":"EUR","currency_symbol":"€","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":true},"GR":{"region_name":"Greece","region_code":"GR","currency_code":"EUR","currency_symbol":"€","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":true},"HU":{"region_name":"Hungary","region_code":"HU","currency_code":"EUR","currency_symbol":"€","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":true},"IE":{"region_name":"Ireland","region_code":"IE","currency_code":"EUR","currency_symbol":"€","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":true},"LV":{"region_name":"Latvia","region_code":"LV","currency_code":"EUR","currency_symbol":"€","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":true},"LT":{"region_name":"Lithuania","region_code":"LT","currency_code":"EUR","currency_symbol":"€","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":true},"LU":{"region_name":"Luxembourg","region_code":"LU","currency_code":"EUR","currency_symbol":"€","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":true},"MT":{"region_name":"Malta","region_code":"MT","currency_code":"EUR","currency_symbol":"€","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":true},"NL":{"region_name":"Netherlands","region_code":"NL","currency_code":"EUR","currency_symbol":"€","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":true},"PL":{"region_name":"Poland","region_code":"PL","currency_code":"EUR","currency_symbol":"€","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":true},"PT":{"region_name":"Portugal","region_code":"PT","currency_code":"EUR","currency_symbol":"€","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":true},"RO":{"region_name":"Romania","region_code":"RO","currency_code":"EUR","currency_symbol":"€","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":true},"SK":{"region_name":"Slovakia","region_code":"SK","currency_code":"EUR","currency_symbol":"€","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":true},"SI":{"region_name":"Slovenia","region_code":"SI","currency_code":"EUR","currency_symbol":"€","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":true},"FR":{"region_name":"France","region_code":"FR","currency_code":"EUR","currency_symbol":"€","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":true},"AT":{"region_name":"Austria","region_code":"AT","currency_code":"EUR","currency_symbol":"€","shopify_payment":false,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":true},"AL":{"region_name":"Albania","region_code":"AL","currency_code":"ALL","currency_symbol":"Lek","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount","primary":false,"is_tms_managed":false},"AM":{"region_name":"Armenia","region_code":"AM","currency_code":"AMD","currency_symbol":"","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount","primary":false,"is_tms_managed":false},"AU":{"region_name":"Australia","region_code":"AU","currency_code":"AUD","currency_symbol":"$","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount","primary":false,"is_tms_managed":false},"AZ":{"region_name":"Azerbaijan","region_code":"AZ","currency_code":"AZN","currency_symbol":"m.","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount","primary":false,"is_tms_managed":false},"BA":{"region_name":"Bosnia & Herzegovina","region_code":"BA","currency_code":"BAM","currency_symbol":"KM","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":false},"CA":{"region_name":"Canada","region_code":"CA","currency_code":"CAD","currency_symbol":"$","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount","primary":false,"is_tms_managed":false},"CH":{"region_name":"Switzerland","region_code":"CH","currency_code":"CHF","currency_symbol":"CHF","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount","primary":false,"is_tms_managed":false},"DZ":{"region_name":"Algeria","region_code":"DZ","currency_code":"DZD","currency_symbol":"DA","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount","primary":false,"is_tms_managed":false}
4399,"EG":{"region_name":"Egypt","region_code":"EG","currency_code":"EGP","currency_symbol":"LE","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount","primary":false,"is_tms_managed":false},"FO":{"region_name":"Faroe Islands","region_code":"FO","currency_code":"DKK","currency_symbol":"kr","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"after","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":false},"GB":{"region_name":"United Kingdom","region_code":"GB","currency_code":"GBP","currency_symbol":"£","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount","primary":false,"is_tms_managed":false},"GL":{"region_name":"Greenland","region_code":"GL","currency_code":"DKK","currency_symbol":"kr","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"after","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":false},"ID":{"region_name":"Indonesia","region_code":"ID","currency_code":"IDR","currency_symbol":"Rp","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_with_comma_separator","primary":false,"is_tms_managed":false},"IL":{"region_name":"Israel","region_code":"IL","currency_code":"ILS","currency_symbol":"NIS","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"after","currency_format":"amount","primary":false,"is_tms_managed":false},"IN":{"region_name":"India","region_code":"IN","currency_code":"INR","currency_symbol":"Rs.","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount","primary":false,"is_tms_managed":false},"JP":{"region_name":"Japan","region_code":"JP","currency_code":"JPY","currency_symbol":"¥","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_no_decimals","primary":false,"is_tms_managed":false},"KH":{"region_name":"Cambodia","region_code":"KH","currency_code":"KHR","currency_symbol":"KHR","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount","primary":false,"is_tms_managed":false},"KR":{"region_name":"South Korea","region_code":"KR","currency_code":"KRW","currency_symbol":"₩","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount_no_decimals","primary":false,"is_tms_managed":false},"KZ":{"region_name":"Kazakhstan","region_code":"KZ","currency_code":"KZT","currency_symbol":"","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount","primary":false,"is_tms_managed":false},"LA":{"region_name":"Laos","region_code":"LA","currency_code":"LAK","currency_symbol":"₭","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount","primary":false,"is_tms_managed":false},"LB":{"region_name":"Lebanon","region_code":"LB","currency_code":"LBP","currency_symbol":"L£","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount","primary":false,"is_tms_managed":false},"LI":{"region_name":"Liechtenstein","region_code":"LI","currency_code":"CHF","currency_symbol":"CHF","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount","primary":false,"is_tms_managed":false},"LK":{"region_name":"Sri Lanka","region_code":"LK","currency_code":"LKR","currency_symbol":"Rs","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount","primary":false,"is_tms_managed":false},"MA":{"region_name":"Morocco","region_code":"MA","currency_code":"MAD","currency_symbol":"Dh","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount","primary":false,"is_tms_managed":false},"MD":{"region_name":"Moldova","region_code":"MD","currency_code":"MDL","currency_symbol":"","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount","primary":false,"is_tms_managed":false},"MK":{"region_name":"North Macedonia","region_code":"MK","currency_code":"MKD","currency_symbol":"ден","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount","primary":false,"is_tms_managed":false},"MM":{"region_name":"Myanmar (Burma)","region_code":"MM","currency_code":"MMK","currency_symbol":"K","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount","primary":false,"is_tms_managed":false},"MY":{"region_name":"Malaysia","region_code":"MY","currency_code":"MYR","currency_symbol":"RM","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount","primary":false,"is_tms_managed":false},"NZ":{"region_name":"New Zealand","region_code":"NZ","currency_code":"NZD","currency_symbol":"$","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount","primary":false,"is_tms_managed":false},"PS":{"region_name":"Palestinian Territories","region_code":"PS","currency_code":"ILS","currency_symbol":"₪","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount","primary":false,"is_tms_managed":false},"RS":{"region_name":"Serbia","region_code":"RS","currency_code":"RSD","currency_symbol":"","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount","primary":false,"is_tms_managed":false}
4399,"SG":{"region_name":"Singapore","region_code":"SG","currency_code":"SGD","currency_symbol":"$","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount","primary":false,"is_tms_managed":false},"TH":{"region_name":"Thailand","region_code":"TH","currency_code":"THB","currency_symbol":"฿","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"after","currency_format":"amount","primary":false,"is_tms_managed":false},"TW":{"region_name":"Taiwan","region_code":"TW","currency_code":"TWD","currency_symbol":"$","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount","primary":false,"is_tms_managed":false},"UA":{"region_name":"Ukraine","region_code":"UA","currency_code":"UAH","currency_symbol":"₴","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount","primary":false,"is_tms_managed":false},"US":{"region_name":"United States","region_code":"US","currency_code":"USD","currency_symbol":"$","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"before","currency_format":"amount","primary":false,"is_tms_managed":false},"VN":{"region_name":"Vietnam","region_code":"VN","currency_code":"VND","currency_symbol":"₫","shopify_payment":true,"shopify_markets":true,"manual_exchange_rate_base_currency":"EUR","manual_exchange_rate":0.0,"rounding_rule":"no","rounding_decimal":"0","symbol_placement":"after","currency_format":"amount_no_decimals_with_comma_separator","primary":false,"is_tms_managed":false}};<!-- END app snippet -->
4400</script>
vendor: 1 bytes, line 4400
4400
4401<script type="application/javascript"><!-- BEGIN app snippet: tms_data_mf -->
4402var tmsFileTranslationData = [];<!-- END app snippet -->
4403</script>
vendor: 1 bytes, line 4403
4403
4404<script type="application/javascript"><!-- BEGIN app snippet: tms_file -->
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414<!-- END app snippet -->
4415</script>
vendor: 1 bytes, line 4415
4415
4416<script type="application/javascript"><!-- BEGIN app snippet: tms_data_mf -->
4417var tmsVETranslationData = [];<!-- END app snippet -->
4418</script>
vendor: 1 bytes, line 4418
4418
4419<script type="application/javascript"><!-- BEGIN app snippet: tms_ve -->
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429<!-- END app snippet -->
4430</script>
4430
4431
4432<script type="application/javascript">
4433var tmsAbsLinkData = "https:\/\/cdn3.hextom.com\/";
4434var tmsShopBaseLocaleCodeData = "en";
4435var tmsSelectorEnabledData = true;
4436var tmsCartNoteData = {"base_text":"We handle all orders in EUR. Although the content of your cart is currently shown in your selected or localized currency, you will proceed to checkout using EUR at the prevailing exchange rate.","trans_text_dict":{}};
4437var tmsBasicTransLanguageData = {"sv":false,"no":false,"nl":false,"it":false,"is":false,"fr":false,"fi":false,"es":false,"el":false,"da":false,"ja":false,"de":false};
4438var tmsAutoCoverageLanguageData = {"sv":false,"no":false,"nl":false,"it":false,"is":false,"fr":false,"fi":false,"es":false,"el":false,"da":false,"ja":false,"de":false};
4439var tmsRegionGroupMapping = {};
4440var tmsRegionLanguageDefaultsData = {};</script>
4440
4441</div>
4441<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
4441
4442</body>
4443</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.