PageSourceSearch

https://odiporo.de/search

html odiporo.de collected 2026-10-04 02:40:34 UTC 368,411 bytes, 4,672 lines download raw bytes

1<!doctype html><html class="no-js" lang="de" dir="ltr">
2<head>
3  <meta charset="utf-8">
4  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
5  <meta name="viewport" content="width=device-width,initial-scale=1">
6  <meta name="theme-color" content="#171717">
7  <link rel="canonical" href="https://odiporo.de/search">
8  <link rel="preconnect" href="https://cdn.shopify.com" crossorigin>
9  <link rel="preconnect" href="https://fonts.shopifycdn.com" crossorigin>
10  
11  <link rel="dns-prefetch" href="https://ajax.googleapis.com">
12  <link rel="dns-prefetch" href="https://maps.googleapis.com">
13  <link rel="dns-prefetch" href="https://maps.gstatic.com">
14  
15<link rel="shortcut icon" href="//odiporo.de/cdn/shop/files/O_Logo_White-01.png?crop=center&height=32&v=1752656128&width=32" type="image/png" /><!-- Google Tag Manager -->
16<script>
vendor: 327 bytes, lines 16-20
16(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
17new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
18j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
19'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
20})(window,document,'script','dataLayer','
20GTM-KX7KVKS
vendor: 3 bytes, line 20
20');
20</script>
20
21<!-- End Google Tag Manager -->
22  <title>Suchen &ndash; odiporo.de - Smarte Elektronik für jeden Anspruch</title><meta name="description" content="Als dynamisch wachsendes E Commerce-Unternehmen haben wir uns einer klaren Mission verschrieben: Wir bieten unseren Kunden erstklassige Technologie-Produkte mit einem hervorragenden Preis Leistungs-Verhältnis. Unser sorgfältig kuratiertes und wachsendes Sortiment reicht von zukunftsweisender Elektromobilität über intel"><meta property="og:site_name" content="odiporo.de - Smarte Elektronik für jeden Anspruch">
23<meta property="og:url" content="https://odiporo.de/search">
24<meta property="og:title" content="Suchen">
25<meta property="og:type" content="website">
26<meta property="og:description" content="Als dynamisch wachsendes E Commerce-Unternehmen haben wir uns einer klaren Mission verschrieben: Wir bieten unseren Kunden erstklassige Technologie-Produkte mit einem hervorragenden Preis Leistungs-Verhältnis. Unser sorgfältig kuratiertes und wachsendes Sortiment reicht von zukunftsweisender Elektromobilität über intel"><meta property="og:image" content="http://odiporo.de/cdn/shop/files/Odiporo.de_Logo_Insta_Profilbild_1080x1080_537f761d-70e6-49fb-87bf-7d698bf65e71.png?v=1787740204">
27  <meta property="og:image:secure_url" content="https://odiporo.de/cdn/shop/files/Odiporo.de_Logo_Insta_Profilbild_1080x1080_537f761d-70e6-49fb-87bf-7d698bf65e71.png?v=1787740204">
28  <meta property="og:image:width" content="1080">
29  <meta property="og:image:height" content="1080"><meta name="twitter:site" content="@">
30<meta name="twitter:card" content="summary_large_image">
31<meta name="twitter:title" content="Suchen">
32<meta name="twitter:description" content="Als dynamisch wachsendes E Commerce-Unternehmen haben wir uns einer klaren Mission verschrieben: Wir bieten unseren Kunden erstklassige Technologie-Produkte mit einem hervorragenden Preis Leistungs-Verhältnis. Unser sorgfältig kuratiertes und wachsendes Sortiment reicht von zukunftsweisender Elektromobilität über intel">
33<style>@font-face {
34  font-family: Roboto;
35  font-weight: 400;
36  font-style: normal;
37  font-display: swap;
38  src: url("//odiporo.de/cdn/fonts/roboto/roboto_n4.2019d890f07b1852f56ce63ba45b2db45d852cba.woff2") format("woff2"),
39       url("//odiporo.de/cdn/fonts/roboto/roboto_n4.238690e0007583582327135619c5f7971652fa9d.woff") format("woff");
40}
41@font-face {
42  font-family: Roboto;
43  font-weight: 500;
44  font-style: normal;
45  font-display: swap;
46  src: url("//odiporo.de/cdn/fonts/roboto/roboto_n5.250d51708d76acbac296b0e21ede8f81de4e37aa.woff2") format("woff2"),
47       url("//odiporo.de/cdn/fonts/roboto/roboto_n5.535e8c56f4cbbdea416167af50ab0ff1360a3949.woff") format("woff");
48}
49@font-face {
50  font-family: Roboto;
51  font-weight: 700;
52  font-style: normal;
53  font-display: swap;
54  src: url("//odiporo.de/cdn/fonts/roboto/roboto_n7.f38007a10afbbde8976c4056bfe890710d51dec2.woff2") format("woff2"),
55       url("//odiporo.de/cdn/fonts/roboto/roboto_n7.94bfdd3e80c7be00e128703d245c207769d763f9.woff") format("woff");
56}
57@font-face {
58  font-family: Roboto;
59  font-weight: 400;
60  font-style: italic;
61  font-display: swap;
62  src: url("//odiporo.de/cdn/fonts/roboto/roboto_i4.57ce898ccda22ee84f49e6b57ae302250655e2d4.woff2") format("woff2"),
63       url("//odiporo.de/cdn/fonts/roboto/roboto_i4.b21f3bd061cbcb83b824ae8c7671a82587b264bf.woff") format("woff");
64}
65@font-face {
66  font-family: Roboto;
67  font-weight: 700;
68  font-style: italic;
69  font-display: swap;
70  src: url("//odiporo.de/cdn/fonts/roboto/roboto_i7.7ccaf9410746f2c53340607c42c43f90a9005937.woff2") format("woff2"),
71       url("//odiporo.de/cdn/fonts/roboto/roboto_i7.49ec21cdd7148292bffea74c62c0df6e93551516.woff") format("woff");
72}
73:root {
74    /*! General */
75    --color-base-text: 23 23 23;
76    --color-base-highlight: 255 209 0;
77    --color-base-background: 255 255 255;
78    --color-base-button: 23 23 23;
79    --color-base-button-gradient: #171717;
80    --color-base-button-text: 255 255 255;
81    --color-keyboard-focus: 255 217 0;
82    --color-shadow: 23 23 23;
83    --color-price: 23 23 23;
84    --color-sale-price: 198 40 40;
85    --color-sale-tag: 255 209 0;
86    --color-sale-tag-text: 23 23 23;
87    --color-rating: 245 158 11;
88    --color-placeholder: 255 255 255;
89    --color-success-text: 46 125 50;
90    --color-success-background: 255 255 255;
91    --color-error-text: 198 40 40;
92    --color-error-background: 255 255 255;
93    --color-info-text: 21 101 192;
94    --color-info-background: 255 255 255;
95    
96    /*! Menu and drawers */
97    --color-drawer-text: 23 23 23;
98    --color-drawer-background: 255 255 255;
99    --color-drawer-button-background: 255 209 0;
100    --color-drawer-button-gradient: #ffd100;
101    --color-drawer-button-text: 23 23 23;
102    --color-drawer-overlay: 255 217 0;
103
104    /*! Product card */
105    --card-radius: var(--rounded-card);
106    --card-border-width: 0.0rem;
107    --card-border-opacity: 0.0;
108    --card-shadow-opacity: 0.1;
109    --card-shadow-horizontal-offset: 0.0rem;
110    --card-shadow-vertical-offset: 0.0rem;
111
112    /*! Buttons */
113    --buttons-radius: var(--rounded-button);
114    --buttons-border-width: 2px;
115    --buttons-border-opacity: 1.0;
116    --buttons-shadow-opacity: 0.0;
117    --buttons-shadow-horizontal-offset: 0px;
118    --buttons-shadow-vertical-offset: 0px;
119
120    /*! Inputs */
121    --inputs-radius: var(--rounded-input);
122    --inputs-border-width: 0px;
123    --inputs-border-opacity: 0.65;
124
125    /*! Spacing */
126    --sp-0d5: 0.125rem;
127    --sp-1: 0.25rem;
128    --sp-1d5: 0.375rem;
129    --sp-2: 0.5rem;
130    --sp-2d5: 0.625rem;
131    --sp-3: 0.75rem;
132    --sp-3d5: 0.875rem;
133    --sp-4: 1rem;
134    --sp-4d5: 1.125rem;
135    --sp-5: 1.25rem;
136    --sp-5d5: 1.375rem;
137    --sp-6: 1.5rem;
138    --sp-6d5: 1.625rem;
139    --sp-7: 1.75rem;
140    --sp-7d5: 1.875rem;
141    --sp-8: 2rem;
142    --sp-8d5: 2.125rem;
143    --sp-9: 2.25rem;
144    --sp-9d5: 2.375rem;
145    --sp-10: 2.5rem;
146    --sp-10d5: 2.625rem;
147    --sp-11: 2.75rem;
148    --sp-12: 3rem;
149    --sp-13: 3.25rem;
150    --sp-14: 3.5rem;
151    --sp-15: 3.875rem;
152    --sp-16: 4rem;
153    --sp-18: 4.5rem;
154    --sp-20: 5rem;
155    --sp-23: 5.625rem;
156    --sp-24: 6rem;
157    --sp-28: 7rem;
158    --sp-32: 8rem;
159    --sp-36: 9rem;
160    --sp-40: 10rem;
161    --sp-44: 11rem;
162    --sp-48: 12rem;
163    --sp-52: 13rem;
164    --sp-56: 14rem;
165    --sp-60: 15rem;
166    --sp-64: 16rem;
167    --sp-68: 17rem;
168    --sp-72: 18rem;
169    --sp-80: 20rem;
170    --sp-96: 24rem;
171    --sp-100: 32rem;
172
173    /*! Font family */
174    --font-heading-family: Roboto, sans-serif;
175    --font-heading-style: normal;
176    --font-heading-weight: 400;
177    --font-heading-line-height: 1.2;
178    --font-heading-letter-spacing: 0.0em;
179    
180
181    --font-body-family: Roboto, sans-serif;
182    --font-body-style: normal;
183    --font-body-weight: 400;
184    --font-body-line-height: 1.6;
185    --font-body-letter-spacing: 0.0em;
186
187    --font-navigation-family: var(--font-body-family);
188    --font-navigation-size: clamp(0.875rem, 0.748rem + 0.3174vw, 1.125rem);
189    --font-navigation-weight: 500;
190    
191
192    --font-button-family: var(--font-body-family);
193    --font-button-size: clamp(0.875rem, 0.8115rem + 0.1587vw, 1.0rem);
194    --font-button-weight: 500;
195    
196
197    --font-product-family: var(--font-body-family);
198    --font-product-size: clamp(1.0rem, 0.873rem + 0.3175vw, 1.25rem);
199    --font-product-weight: 500;
200    
201
202    /*! Font size */
203    --text-3xs: 0.625rem;
204    --text-2xs: 0.6875rem;
205    --text-xs: 0.75rem;
206    --text-2sm: 0.8125rem;
207    --text-sm: 0.875rem;
208    --text-base: 1.0rem;
209    --text-lg: 1.125rem;
210    --text-xl: 1.25rem;
211    --text-2xl: 1.5rem;
212    --text-3xl: 1.875rem;
213    --text-4xl: 2.25rem;
214    --text-5xl: 3.0rem;
215    --text-6xl: 3.75rem;
216    --text-7xl: 4.5rem;
217    --text-8xl: 6.0rem;
218
219    /*! Layout */
220    --page-width: 1900px;
221    --gap-padding: clamp(var(--sp-5), 2.526vw, var(--sp-12));
222    --grid-gap: clamp(40px, 20vw, 60px);
223    --page-padding: var(--sp-5);
224    --page-container: min(calc(100vw - var(--scrollbar-width, 0px) - var(--page-padding) * 2), var(--page-width));
225    --rounded-button: 0.75rem;
226    --rounded-input: 0.75rem;
227    --rounded-card: clamp(var(--sp-2d5), 1.053vw, var(--sp-5));
228    --rounded-block: clamp(var(--sp-2d5), 1.053vw, var(--sp-5));
229
230    /*! Other */
231    --icon-weight: 1.5px;
232  }
233
234  @media screen and (min-width: 1024px) {
235    :root {
236      --page-padding: var(--sp-9);
237    }
238  }
239
240  @media screen and (min-width: 1280px) {
241    :root {
242      --gap-padding: var(--sp-12);
243      --page-padding: var(--sp-12);
244      --page-container: min(calc(100vw - var(--scrollbar-width, 0px) - var(--page-padding) * 2), max(var(--page-width), 1280px));
245    }
246  }
247
248  @media screen and (min-width: 1536px) {
249    :root {
250      --page-padding: max(var(--sp-12), 50vw - var(--scrollbar-width, 0px)/2 - var(--page-width)/2);
251    }
252  }
253</style>
254  <link rel="preload" as="font" href="//odiporo.de/cdn/fonts/roboto/roboto_n4.2019d890f07b1852f56ce63ba45b2db45d852cba.woff2" type="font/woff2" crossorigin>
255  
256
257  <link rel="preload" as="font" href="//odiporo.de/cdn/fonts/roboto/roboto_n4.2019d890f07b1852f56ce63ba45b2db45d852cba.woff2" type="font/woff2" crossorigin>
258  
259<link href="//odiporo.de/cdn/shop/t/3/assets/theme.css?v=147535658888616814551767967621" rel="stylesheet" type="text/css" media="all" /><link rel="stylesheet" href="//odiporo.de/cdn/shop/t/3/assets/apps.css?v=181677850728302373271744817342" media="print" fetchpriority="low" onload="this.media='all'">
260
261  
261<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
261<meta name="google-site-verification" content="0nfOA03KB2llEYepo7ebUe5QZ-ZWgCEOHJt93iusFxE">
262<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/90810417531/digital_wallets/dialog">
263<meta id="in-context-paypal-metadata" data-shop-id="90810417531" data-venmo-supported="false" data-environment="production" data-locale="de_DE" data-paypal-v4="true" data-currency="EUR">
264<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
264<script async="async" src="/checkouts/internal/preloads.js?locale=de-DE"></script>
264
265<link rel="preconnect" href="https://shop.app" crossorigin="anonymous">
266<script async="async" src="https://shop.app/checkouts/internal/preloads.js?locale=de-DE&shop_id=90810417531" crossorigin="anonymous"></script>
vendor: 1 bytes, line 266
266
267<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":90810417531,"countryCode":"DE","currencyCode":"EUR","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/90810417531","merchantName":"odiporo.de - Smarte Elektronik für jeden Anspruch","requiredBillingContactFields":["postalAddress","email"],"requiredShippingContactFields":["postalAddress","email"],"shippingType":"shipping","supportedNetworks":["visa","maestro","masterCard","amex"],"total":{"type":"pending","label":"odiporo.de - Smarte Elektronik für jeden Anspruch","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 267
267
268<script id="shopify-features" type="application/json">{"accessToken":"c7fb4a2c810720620d03dbb82618158c","betas":["rich-media-storefront-analytics"],"domain":"odiporo.de","predictiveSearch":true,"shopId":90810417531,"locale":"de"}</script>
vendor: 1 bytes, line 268
268
269<script>var Shopify = Shopify || {};
270Shopify.shop = "v80rnh-af.myshopify.com";
271Shopify.locale = "de";
272Shopify.currency = {"active":"EUR","rate":"1.0"};
273Shopify.country = "DE";
274Shopify.theme = {"name":"Concept live","id":179096813947,"schema_name":"Concept","schema_version":"4.1.0","theme_store_id":2412,"role":"main"};
275Shopify.theme.handle = "null";
276Shopify.theme.style = {"id":null,"handle":null};
277Shopify.cdnHost = "odiporo.de/cdn";
278Shopify.routes = Shopify.routes || {};
279Shopify.routes.root = "/";
280Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js";
281Shopify.SignInWithShop = Shopify.SignInWithShop || {};
282Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {};
283Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 283
283
284<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 284
284
285<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 285
285
286<script>
287  window.ShopifyPay = window.ShopifyPay || {};
288  window.ShopifyPay.apiHost = "shop.app\/pay";
289  window.ShopifyPay.redirectState = null;
290</script>
vendor: 1 bytes, line 290
290
291<script>
292  window.Shopify = window.Shopify || {};
293  window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {};
294  window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 };
295  window.Shopify.SignInWithShop.eligible = true;
296</script>
vendor: 1 bytes, line 296
296
297<script id="shop-js-analytics" type="application/json">{"pageType":"search"}</script>
vendor: 1 bytes, line 297
297
298<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.de.esm.js"></script>
vendor: 1 bytes, line 298
298
299<script type="module">
300  await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.de.esm.js");
301
302  window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true});
303
304</script>
vendor: 1 bytes, line 304
304
305<script>
306  window.Shopify = window.Shopify || {};
307  if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {};
308  window.Shopify.featureAssets['shop-js'] = {"avatar":["modules/v2/loader.avatar.de.esm.js"],"checkout-modal":["modules/v2/loader.checkout-modal.de.esm.js"],"init-customer-accounts-sign-up":["modules/v2/loader.init-customer-accounts-sign-up.de.esm.js"],"init-customer-accounts":["modules/v2/loader.init-customer-accounts.de.esm.js"],"init-fed-cm":["modules/v2/loader.init-fed-cm.de.esm.js"],"init-shop-cart-sync":["modules/v2/loader.init-shop-cart-sync.de.esm.js"],"init-shop-email-lookup-coordinator":["modules/v2/loader.init-shop-email-lookup-coordinator.de.esm.js"],"init-shop-for-new-customer-accounts":["modules/v2/loader.init-shop-for-new-customer-accounts.de.esm.js"],"init-shop-user-recognition":["modules/v2/loader.init-shop-user-recognition.de.esm.js"],"init-windoid":["modules/v2/loader.init-windoid.de.esm.js"],"lead-capture":["modules/v2/loader.lead-capture.de.esm.js"],"listener":["modules/v2/loader.listener.de.esm.js"],"pay-button":["modules/v2/loader.pay-button.de.esm.js"],"payment-terms":["modules/v2/loader.payment-terms.de.esm.js"],"shop-button":["modules/v2/loader.shop-button.de.esm.js"],"shop-cart-sync":["modules/v2/loader.shop-cart-sync.de.esm.js"],"shop-cash-offers":["modules/v2/loader.shop-cash-offers.de.esm.js"],"shop-follow-button":["modules/v2/loader.shop-follow-button.de.esm.js"],"shop-login-button":["modules/v2/loader.shop-login-button.de.esm.js"],"shop-login":["modules/v2/loader.shop-login.de.esm.js"],"shop-toast-manager":["modules/v2/loader.shop-toast-manager.de.esm.js"],"shop-user-recognition":["modules/v2/loader.shop-user-recognition.de.esm.js"]};
309</script>
vendor: 1 bytes, line 309
309
310<script>(function() {
311  var isLoaded = false;
312  function asyncLoad() {
313    if (isLoaded) return;
314    isLoaded = true;
315    var urls = ["https:\/\/dr4qe3ddw9y32.cloudfront.net\/awin-shopify-integration-code.js?aid=32931\u0026v=shopifyApp_5.2.3\u0026ts=1753793870681\u0026shop=v80rnh-af.myshopify.com","https:\/\/widget.trustpilot.com\/bootstrap\/v5\/tp.widget.sync.bootstrap.min.js?shop=v80rnh-af.myshopify.com","https:\/\/ecommplugins-scripts.trustpilot.com\/v2.1\/js\/header.min.js?settings=eyJrZXkiOiI3S3RBeFRUeUJOeUxIcE9mIiwicyI6InNrdSJ9\u0026shop=v80rnh-af.myshopify.com","https:\/\/ecommplugins-scripts.trustpilot.com\/v2.1\/js\/success.min.js?settings=eyJrZXkiOiI3S3RBeFRUeUJOeUxIcE9mIiwicyI6InNrdSIsInQiOlsib3JkZXJzL2Z1bGZpbGxlZCJdLCJ2IjoiIiwiYSI6Ildvb0NvbW1lcmNlLTcuMi4wIn0=\u0026shop=v80rnh-af.myshopify.com","https:\/\/ecommplugins-trustboxsettings.trustpilot.com\/v80rnh-af.myshopify.com.js?settings=1749535109302\u0026shop=v80rnh-af.myshopify.com","https:\/\/tseish-app.connect.trustedshops.com\/esc.js?apiBaseUrl=aHR0cHM6Ly90c2Vpc2gtYXBwLmNvbm5lY3QudHJ1c3RlZHNob3BzLmNvbQ==\u0026instanceId=djgwcm5oLWFmLm15c2hvcGlmeS5jb20=\u0026shop=v80rnh-af.myshopify.com","https:\/\/searchanise-ef84.kxcdn.com\/widgets\/shopify\/init.js?a=1g7I4c8g3n\u0026shop=v80rnh-af.myshopify.com"];
316    for (var i = 0; i < urls.length; i++) {
317      var s = document.createElement('script');
318      s.type = 'text/javascript';
319      s.async = true;
320      s.src = urls[i];
321      var x = document.getElementsByTagName('script')[0];
322      x.parentNode.insertBefore(s, x);
323    }
324  };
325  if(window.attachEvent) {
326    window.attachEvent('onload', asyncLoad);
327  } else {
328    window.addEventListener('load', asyncLoad, false);
329  }
330})();</script>
vendor: 1 bytes, line 330
330
331<script id="__st">var __st={"a":90810417531,"offset":7200,"reqid":"8cbd1582-1c2a-4bd0-9c16-74a71321a35f-1791081633","pageurl":"odiporo.de\/search","u":"d21726736f12","p":"searchresults"};</script>
vendor: 1 bytes, line 331
331
332<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 332
332
333<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:'Durch hCaptcha geschützt',privacyText:'Datenschutz',termsText:'Allgemeine Geschäftsbedingungen'},(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 333
333
334<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//odiporo.de/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 334
334
335<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 = "//odiporo.de/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>
335<script crossorigin="anonymous" defer="defer" src="//odiporo.de/cdn/shopifycloud/storefront/assets/shopify_pay/storefront-616277c7.js?v=20250812"></script>
vendor: 1 bytes, line 335
335
336<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 336
336
337<script>
338  window.Shopify = window.Shopify || {};
339  window.Shopify.MCP = window.Shopify.MCP || {};
340  window.Shopify.MCP.enabled = true;
341  window.Shopify.MCP.shop = "v80rnh-af.myshopify.com";
342  window.Shopify.MCP.mcpEndpoint = "https:\/\/odiporo.de\/api\/mcp";
343  window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n  - What is your return policy?\n  - What is your shipping policy?\n  - What is your phone number?\n  - What are your hours of operation?\"\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."}},"required":["query"]}}];
344</script>
vendor: 1 bytes, line 344
344
345<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("\/\/odiporo.de\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})();
346</script>
vendor: 1 bytes, line 346
346
347<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://odiporo.de/cdn/shopifycloud/portable-wallets/latest/portable-wallets.de.js",t.type="module",document.head.appendChild(t)}};
348</script>
vendor: 1 bytes, line 348
348
349<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
350  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);
351</script>
vendor: 1 bytes, line 351
351
352<script data-source-attribution="shopify.dynamic_checkout.cart.bootstrap">document.addEventListener("DOMContentLoaded",(function(){function t(){return document.querySelector("shopify-accelerated-checkout-cart, shopify-accelerated-checkout")}if(t())Shopify.PaymentButton.init();else{new MutationObserver((function(e,n){t()&&(Shopify.PaymentButton.init(),n.disconnect())})).observe(document.body,{childList:!0,subtree:!0})}}));
353</script>
vendor: 1 bytes, line 353
353
354<script id='scb4127' type='text/javascript' async='' src='https://odiporo.de/cdn/shopifycloud/privacy-banner/storefront-banner.js'></script>
354<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://odiporo.de/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous">
355<style id="shopify-accelerated-checkout-cart">
356        #shopify-buyer-consent {
357  margin-top: 1em;
358  display: inline-block;
359  width: 100%;
360}
361
362#shopify-buyer-consent.hidden {
363  display: none;
364}
365
366#shopify-subscription-policy-button {
367  background: none;
368  border: none;
369  padding: 0;
370  text-decoration: underline;
371  font-size: inherit;
372  cursor: pointer;
373}
374
375#shopify-subscription-policy-button::before {
376  box-shadow: none;
377}
378
379      </style>
380
381<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
381
382
383  
383<script src="//odiporo.de/cdn/shop/t/3/assets/vendor.js?v=83836565987576270061744817342" defer="defer"></script>
383
384  
384<script src="//odiporo.de/cdn/shop/t/3/assets/theme.js?v=29274041475657875791757172179" defer="defer"></script>
384<script>
385  document.documentElement.classList.replace('no-js', 'js');
386
387  window.theme = window.theme || {};
388  theme.routes = {
389    shop_url: 'https://odiporo.de',
390    root_url: '/',
391    cart_url: '/cart',
392    cart_add_url: '/cart/add',
393    cart_change_url: '/cart/change',
394    cart_update_url: '/cart/update',
395    search_url: '/search',
396    predictive_search_url: '/search/suggest'
397  };
398
399  theme.variantStrings = {
400    preOrder: "Vorbestellung",
401    addToCart: "In den Einkaufswagen legen",
402    soldOut: "Ausverkauft",
403    unavailable: "Nicht verfügbar",
404    addToBundle: "Zum Bundle hinzufügen",
405    backInStock: "Benachrichtigen Sie mich, wenn es verfügbar ist"
406  };
407
408  theme.shippingCalculatorStrings = {
409    error: "Beim Abrufen der Versandtarife sind ein oder mehrere Fehler aufgetreten:",
410    notFound: "Wir liefern leider nicht an Ihre Adresse.",
411    oneResult: "Es gibt einen Versandtarif für Ihre Adresse:",
412    multipleResults: "Es gibt mehrere Versandtarife für Ihre Adresse:"
413  };
414
415  theme.recipientFormStrings = {
416    expanded: "Formular für den Empfänger des Geschenkgutscheins erweitert",
417    collapsed: "Formular für den Empfänger des Geschenkgutscheins minimiert"
418  };
419
420  theme.quickOrderListStrings = {
421    itemsAdded: "[quantity] Artikel hinzugefügt",
422    itemAdded: "[quantity] Artikel hinzugefügt",
423    itemsRemoved: "[quantity] Artikel entfernt",
424    itemRemoved: "[quantity] Artikel entfernt",
425    viewCart: "Warenkorb ansehen",
426    each: "[money]\/Stück",
427    minError: "Dieser Artikel hat ein Minimum von [min]",
428    maxError: "Dieser Artikel hat ein Maximum von [max]",
429    stepError: "Du kannst diesen Artikel nur in Abstufungen von [step] hinzufügen."
430  };
431
432  theme.cartStrings = {
433    error: `Beim Aktualisieren deines Warenkorbs ist ein Fehler aufgetreten. Bitte versuche es erneut.`,
434    quantityError: `Du kannst deinem Warenkorb nur [quantity] Stück dieses Artikels hinzufügen.`,
435  };
436
437  theme.dateStrings = {
438    d: "T",
439    day: "Tag",
440    days: "Tage",
441    h: "S",
442    hour: "Stunde",
443    hours: "Stunden",
444    m: "M",
445    minute: "Minute",
446    minutes: "Minuten",
447    s: "S",
448    second: "Sekunde",
449    seconds: "Sekunden"
450  };theme.strings = {
451    recentlyViewedEmpty: "Ihre zuletzt angesehenen Produkte sind leer.",
452    close: "Schließen",
453    next: "Vorwärts",
454    previous: "Zurück",
455    qrImageAlt: "QR-Code – Scannen, um Geschenkgutschein einzulösen"
456  };
457
458  theme.settings = {
459    moneyFormat: "€{{amount_with_comma_separator}}",
460    moneyWithCurrencyFormat: "€{{amount_with_comma_separator}} EUR",
461    currencyCodeEnabled: false,
462    externalLinksNewTab: false,
463    cartType: "drawer",
464    isCartTemplate: false,
465    pswpModule: "\/\/odiporo.de\/cdn\/shop\/t\/3\/assets\/photoswipe.min.js?v=41760041872977459911744817341",
466    themeName: 'Concept',
467    themeVersion: '4.1.0',
468    agencyId: ''
469  };</script>
469
470<meta name="google-site-verification" content="oXgyZf81eTvYPx2Im5JpetGnXQ6s1NhTnFvjBBLqmq8" />
471<!-- BEGIN app block: shopify://apps/kor-order-limit-quantity/blocks/app-embed/143c1e59-4c01-4de6-ad3e-90b86ada592d -->
472
473
474<!-- BEGIN app snippet: mc-checkout -->
474<script type="text/javascript">
475  
476  const mcLimitKORData1 = {"priority":{"default_priority":["VARIANT_LIMIT","PRODUCT_LIMIT","COLLECTION_MIN_MAX","PRODUCT_TAG_LIMIT","TAG_LIMIT","GLOBAL_LIMIT"],"cart_amount":["CART_LIMIT","AMOUNT_LIMIT","TAGS_AMOUNT_LIMIT","TOTAL_WEIGHT"]},"config":{"override_amount":null},"messages":{"upper_limit_msg":"Du kannst maximal \u003cstrong\u003e{%-limit-%}\u003c\/strong\u003e Stück von \u003cstrong\u003e{%-product_title-%}\u003c\/strong\u003e kaufen.","lower_limit_msg":"You Need to Purchase at least \u003cstrong\u003e{%-limit-%} \u003c\/strong\u003e Qty of \u003cstrong\u003e{%-product_title-%}\u003c\/strong\u003e.","increment_limit_msg":"You can buy  \u003cstrong\u003e{%-product_title-%}\u003c\/strong\u003e in multiples of \u003cstrong\u003e{%-limit-%}\u003c\/strong\u003e.","lifetime_limit_msg":"Du kannst maximal \u003cstrong\u003e{%-limit-%}\u003c\/strong\u003e Stück von \u003cstrong\u003e{%-product_title-%}\u003c\/strong\u003e kaufen."},"global":{"info":{"min_limit":1,"max_limit":5}},"products":{"info":[]}};
477  
478  
479  const mcLimitKORData2 = {"locale_messages":{"default":{"general_min_message":"You Need to Purchase at least \u003cstrong\u003e{%-limit-%} \u003c\/strong\u003e Qty of \u003cstrong\u003e{%-product_title-%}\u003c\/strong\u003e.","general_max_message":"Du kannst maximal \u003cstrong\u003e{%-limit-%}\u003c\/strong\u003e Stück von \u003cstrong\u003e{%-product_title-%}\u003c\/strong\u003e kaufen.","general_multiply_message":"You can buy  \u003cstrong\u003e{%-product_title-%}\u003c\/strong\u003e in multiples of \u003cstrong\u003e{%-limit-%}\u003c\/strong\u003e.","general_lifetime_message":"Du kannst maximal \u003cstrong\u003e{%-limit-%}\u003c\/strong\u003e Stück von \u003cstrong\u003e{%-product_title-%}\u003c\/strong\u003e kaufen.","order_amt_tag_min_message":"","order_amt_tag_max_message":"","weight_min_message":"","weight_max_message":"","product_tag_min_message":"Minimum quantity allowed for this product is \u003cstrong\u003e{%-limit-%}\u003c\/strong\u003e.","product_tag_max_message":"Maximum quantity allowed for this product is \u003cstrong\u003e{%-limit-%}\u003c\/strong\u003e.","product_tag_multiply_message":"Quantity must be a multiple of \u003cstrong\u003e{%-limit-%}\u003c\/strong\u003e.","product_tag_future_message":"Lifetime quantity limit for this product is \u003cstrong\u003e{%-limit-%}\u003c\/strong\u003e.","cart_min_message":"Total limit must be \u003cstrong\u003e{%-limit-%}\u003c\/strong\u003e to proceed with the checkout.","cart_max_message":"Pro Bestellung sind maximal 5 Stück möglich.","order_amt_min_message":"","order_amt_max_message":""}},"collections":{"info":[]},"tags":[],"modelDesign":"\u003cstyle\u003e.modal-content-custom{background-color:#fefefe;border:1px solid #888;color:#000000;font-size:15px;}\u003c\/style\u003e"};
480  
481  
482  const mcLimitKORData3 = {"collectionsProducts":{"info":[]},"variants":{"info":[]},"product_tags":{"info":[]},"cart":{"info":{"id":505,"min_limit":null,"max_limit":5,"min_limit_message":"Total limit must be \u003cstrong\u003e{%-limit-%}\u003c\/strong\u003e to proceed with the checkout.","max_limit_message":"Pro Bestellung sind maximal 5 Stück möglich."}},"amount":{"info":null},"weight":{"info":null,"message":{"min_weight_message":null,"max_weight_message":null,"product_tag_min_message":"Minimum quantity allowed for this product is \u003cstrong\u003e{%-limit-%}\u003c\/strong\u003e.","product_tag_max_message":"Maximum quantity allowed for this product is \u003cstrong\u003e{%-limit-%}\u003c\/strong\u003e.","product_tag_multiply_message":"Quantity must be a multiple of \u003cstrong\u003e{%-limit-%}\u003c\/strong\u003e.","product_tag_future_message":"Lifetime quantity limit for this product is \u003cstrong\u003e{%-limit-%}\u003c\/strong\u003e."}}};
483  
484  const mcLimitKORData = { ...mcLimitKORData1, ...mcLimitKORData2, ...mcLimitKORData3 };
485  
486  const mcKorAppSettings = {"plan":2,"hasFreeImpression":false,"disable_add_to_cart":false,"designType":"ALERT","lifetime_limit":{"life_span_type":0,"life_span_days":0,"end_date":null,"start_date":null,"interval":{"date":null,"interval":"custom","custom_days":1}},"pPage":[]};
487  
488  // For add to cart button Click
489  var template = "search";
490  function jqueryCode() {
491    if (template == 'product') {
492      document.addEventListener('DOMContentLoaded', () => {
493        $('button[name="add"], .btn-addtocart, .buy-buttons__buttons [data-component="button-action"], .add-to-cart, button[data-action="add-to-cart"], button[type="submit"][data-add-to-cart-text]').click(function (e, options) {
494          options = options || {};
495          if (!options.eventTrigger) {
496            e.preventDefault();
497            if (addToCartEventStopPropogation.includes(Shopify.shop)) {
498              e.stopImmediatePropagation();
499            }
500            CheckOnAddToCart().then(function (res) {
501              if (res.msg != '') {
502                showMessage(res.msg);
503              } else {
504                if (Shopify.shop == "urbanbaristas.myshopify.com") {
505                  $('form[action^="/cart/add"]').submit();
506                } else {
507                  $(e.target).trigger("click", { eventTrigger: true });
508                } updateNumberOfProductLimit(res.qty);
509              }
510            });
511          }
512        });
513        if (typeof mcKorAppSettings != "undefined" && (mcKorAppSettings?.pPage?.addToCart && mcKorAppSettings?.pPage?.addToCart != "")) {
514          $(mcKorAppSettings?.pPage?.addToCart).click(function (e, options) {
515            options = options || {};
516            if (!options.eventTrigger) {
517              e.preventDefault();
518              if (addToCartEventStopPropogation.includes(Shopify.shop)) {
519                e.stopImmediatePropagation();
520              }
521              CheckOnAddToCart().then(function (res) {
522                if (res.msg != '') {
523                  showMessage(res.msg);
524                } else {
525                  $(e.target).trigger("click", { eventTrigger: true });
526                  updateNumberOfProductLimit(res.qty);
527                }
528              });
529            }
530          });
531        }
532      });
533    }
534  }
535
536  function CheckOnAddToCart() {
537    return new Promise(function (resolve) {
538      jQuery.getJSON("/cart.js", function (cartItems) {
539
540        var res = window.mcproductresponse.data;
541        var msg = '';
542        var globalMsg = '';
543        let variantMsg = "";
544        var collectionMsg = '';
545        var tagMsg = '';
546        var is_global_limit = false,
547          is_product_limit = false,
548          is_number_collection_limit = false,
549          is_tag_limit = false,
550          is_variant_limit = false,
551          is_product_tag_limit = false;
552        var productMsg = '';
553        var productTagMsg = '';
554        //var productData = $('form[action^="/cart/add"], form[action$="/cart/add"]').serializeArray();
555        var productId = product_id,
556          variantId = '',
557          qty = '',
558          variantqty = '',
559          collectionqty = '';
560
561        var productData = $('form[action^="/cart/add"], form[action$="/cart/add"]').serializeArray();
562        if (mcKorAppSettings?.pPage?.fmSelecotor) {
563          productData = $(mcKorAppSettings?.pPage?.fmSelecotor).serializeArray();
564        }
565
566        // get variant id
567        const queryString = window.location.search;
568        const urlParams = new URLSearchParams(queryString);
569        const variant_id = urlParams.get('variant');
570
571        productData.map((product) => {
572          if (product.name == 'quantity') {
573            qty = variantqty = collectionqty = parseInt(product.value, 10);
574          } else if (product.name == 'id') {
575            variantId = product.value;
576          }
577        })
578
579        cartItems.items.map((item) => {
580          if (productId == item.product_id) {
581            qty = parseInt(item.quantity, 10) + qty;
582          }
583          if (variantId == item.id) {
584            variantqty = parseInt(item.quantity, 10) + variantqty;
585          }
586        })
587
588        if (res?.tag?.info) {
589          var tagMaxQty = res.tag.info.max_limit;
590          var tagMinQty = res.tag.info.min_limit;
591          if (tagMinQty != 0 && tagMinQty && tagMaxQty != 0 && tagMaxQty) {
592            is_tag_limit = true;
593            if (qty > tagMaxQty) {
594              tagMsg = res.tag.message.upper_limit_msg;
595            } else if (qty < tagMinQty) {
596              tagMsg = res.tag.message.lower_limit_msg;
597            }
598          }
599        }
600
601        if (res?.number_of_product_limit?.length > 0) {
602          is_number_collection_limit = true;
603          res.number_of_product_limit.map(collection => {
604            if (collectionqty > collection.remaining_max_qty) {
605              collectionMsg = collection.max_msg;
606            }
607          })
608        }
609
610
611        if (variantId && res?.variants?.length > 0) {
612          res.variants.forEach((variant) => {
613            if (variant.info.id == variantId) {
614              let min_qty = variant.info.lower_limit;
615              let max_qty = variant.info.purchase_limit;
616              if (max_qty != null && max_qty != 0 && max_qty && min_qty != null && min_qty != 0 && min_qty) {
617                is_variant_limit = true;
618                if (variantqty > max_qty) {
619                  variantMsg = variant.message.upper_limit_msg;
620                } else if (variantqty < min_qty) {
621                  variantMsg = variant.message.lower_limit_msg;
622                }
623              }
624            }
625          });
626        }
627
628        if (res?.product?.info) {
629          var maxQty = res.product.info.purchase_limit;
630          var minQty = res.product.info.min_purchase_limit;
631          // var lifetimeQty = res.product.info.life_time_limit || 0;
632
633          var lifetimeQty = res.product.info?.remainingQty;
634          var remainingQty = res.product.info?.remainingQty;
635
636          if (minQty != 0 && minQty && maxQty != 0 && maxQty) {
637            is_product_limit = true;
638            if (lifetimeQty != null && lifetimeQty != undefined && qty > remainingQty) {
639              productMsg = res.product.message.lifetime_limit_msg;
640            } else if (qty > maxQty) {
641              productMsg = res.product.message.upper_limit_msg;
642            } else if (qty < minQty) {
643              productMsg = res.product.message.lower_limit_msg;
644            }
645          }
646        }
647
648        if (res?.product_tag?.info) {
649          var maxQty = res.product_tag.info.max_limit;
650          var minQty = res.product_tag.info.min_limit;
651
652          var lifetimeQty = res.product_tag.info?.remainingQty;
653          var remainingQty = res.product_tag.info?.remainingQty;
654
655          if (minQty != 0 && minQty && maxQty != 0 && maxQty) {
656            is_product_tag_limit = true;
657            if (lifetimeQty != null && lifetimeQty != undefined && qty > remainingQty) {
658              productTagMsg = res.product_tag.message.future_limit_msg;
659            } else if (qty > maxQty) {
660              productTagMsg = res.product_tag.message.upper_limit_msg;
661            } else if (qty < minQty) {
662              productTagMsg = res.product_tag.message.lower_limit_msg;
663            }
664          }
665        }
666
667        if (res?.global?.info && Object.keys(res.global.message).length > 0) {
668          var globalMaxQty = res.global.info.global_limit;
669          var globalMinQty = res.global.info.min_global_limit;
670          // is_product_check = 1 -> check against product-level qty (this product across all its
671          // variants); 0/null/undefined -> existing variant-level qty (this variant only).
672          var globalQty = res.global.info.is_product_check ? qty : variantqty;
673
674          if (globalMaxQty != null && globalMinQty != null) {
675            is_global_limit = true;
676            if (globalQty > globalMaxQty) {
677              globalMsg = res.global.message.upper_limit_msg;
678            } else if (globalQty < globalMinQty) {
679              globalMsg = res.global.message.lower_limit_msg;
680            }
681          }
682        }
683
684        if (res?.priority) {
685          for (const [key, value] of Object.entries(res.priority)) {
686            if ((value == "COLLECTION_MIN_MAX" || value == "PRODUCT_LIMIT") && is_product_limit) {
687              msg = productMsg;
688              break;
689            }
690            if (value == "PRODUCT_TAG_LIMIT" && is_product_tag_limit) {
691              msg = productTagMsg;
692              break;
693            }
694            if (value == "VARIANT_LIMIT" && is_variant_limit) {
695              msg = variantMsg;
696              break;
697            }
698            if (value == "GLOBAL_LIMIT" && is_global_limit) {
699              msg = globalMsg;
700              break;
701            }
702            if (value == "TAG_LIMIT" && is_tag_limit) {
703              msg = tagMsg;
704              break;
705            }
706          }
707        }
708
709        if (is_number_collection_limit) {
710          if (msg) {
711            msg += "<br>" + collectionMsg;
712          } else {
713            msg = collectionMsg;
714          }
715        }
716
717        var response = {
718          msg: msg,
719          qty: collectionqty
720        }
721        resolve(response);
722      });
723    })
724  }
725
726  function updateNumberOfProductLimit(qty) {
727    qty = parseInt(qty, 10);
728    var res = window.mcproductresponse.data;
729    if (res?.number_of_product_limit.length > 0) {
730      res?.number_of_product_limit.map(collection => {
731        collection.remaining_max_qty = parseInt(collection.remaining_max_qty - qty, 10);
732      })
733    }
734    window.mcproductresponse.data = res;
735  }
736</script>
736<!-- END app snippet --><!-- BEGIN app snippet: mc-product -->
736<script>
737  function mcKorGetDateRangeFromLifeSpan(ctx) {
738    const now = new Date();
739
740    // Helpers scoped inside
741    function startOfDay(date) {
742      return new Date(date.getFullYear(), date.getMonth(), date.getDate());
743    }
744
745    function endOfDay(date) {
746      return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59, 999);
747    }
748
749    function startOfWeek(date) {
750      const d = new Date(date);
751      const day = d.getDay();
752      const diff = d.getDate() - day + (day === 0 ? -6 : 1); // Monday as start
753      return startOfDay(new Date(d.setDate(diff)));
754    }
755
756    function endOfWeek(date) {
757      const start = startOfWeek(date);
758      return endOfDay(new Date(start.getFullYear(), start.getMonth(), start.getDate() + 6));
759    }
760
761    function startOfMonth(date) {
762      return new Date(date.getFullYear(), date.getMonth(), 1);
763    }
764
765    function endOfMonth(date) {
766      return new Date(date.getFullYear(), date.getMonth() + 1, 0, 23, 59, 59, 999);
767    }
768
769    function startOfYear(date) {
770      return new Date(date.getFullYear(), 0, 1);
771    }
772
773    function endOfYear(date) {
774      return new Date(date.getFullYear(), 11, 31, 23, 59, 59, 999);
775    }
776
777    // Main logic
778    if (ctx.life_span_type === 2) {
779      const startDate = startOfDay(new Date(now.getFullYear(), now.getMonth(), now.getDate() - ctx.life_span_days));
780      const endDate = endOfDay(now);
781      return [startDate, endDate];
782    }
783
784    if (ctx.life_span_type === 4) {
785      const startDate = endOfDay(new Date(ctx.start_date));
786      const endDate = startOfDay(new Date(ctx.end_date));
787      const currentDate = now;
788
789      if (currentDate < startDate || currentDate > endDate) {
790        return [null, null];
791      }
792
793      return [startDate, endDate];
794    }
795
796    if (ctx.life_span_type === 5) {
797      const intervalSetting = ctx.user_interval;
798      if (!intervalSetting) return [null, null];
799
800      const interval = intervalSetting.interval;
801
802      if (interval === "day") {
803        return [startOfDay(now), endOfDay(now)];
804      }
805
806      if (interval === "week") {
807        return [startOfWeek(now), endOfWeek(now)];
808      }
809
810      if (interval === "month") {
811        return [startOfMonth(now), endOfMonth(now)];
812      }
813
814      if (interval === "year") {
815        return [startOfYear(now), endOfYear(now)];
816      }
817
818      if (["10", "20", "30", "custom"].includes(interval)) {
819        let days = 1;
820        let start = new Date();
821
822        if (intervalSetting.date) {
823          start = new Date(intervalSetting.date);
824        }
825
826        if (["10", "20", "30"].includes(interval)) {
827          days = parseInt(interval, 10);
828        } else if (interval === "custom") {
829          days = parseInt(intervalSetting.custom_days || 1, 10);
830        }
831
832        const now = new Date();
833        if (now < start) return [null, null];
834
835        const diffDays = Math.floor((now - start) / (1000 * 60 * 60 * 24));
836        const multiplier = Math.floor(diffDays / days);
837
838        if (multiplier >= 1) {
839          start.setDate(start.getDate() + multiplier * days);
840        }
841
842        const end = new Date(start);
843        end.setDate(start.getDate() + days);
844
845        return [startOfDay(start), endOfDay(end)];
846      }
847    }
848
849    return [null, null];
850  }
851
852  function mcKorAnalyzeOrdersByDateRange(orders, startDate, endDate) {
853        let total_order_amount = 0;
854        let order_product_data = {};
855        let order_variant_data = {};
856
857        orders.forEach(order => {
858            const orderDate = new Date(order.created_at);
859            if (startDate && endDate && orderDate >= startDate && orderDate <= endDate) {
860            total_order_amount += order.total_price;
861
862            order.line_items.forEach(item => {
863                // Count product quantity
864                if (!order_product_data[item.product_id]) {
865                    order_product_data[item.product_id] = 0;
866                }
867                order_product_data[item.product_id] += item.quantity;
868
869                // Count variant quantity
870                if (!order_variant_data[item.variant_id]) {
871                    order_variant_data[item.variant_id] = 0;
872                }
873                order_variant_data[item.variant_id] += item.quantity;
874            });
875            }
876        });
877
878        return {
879            total_order_amount,
880            order_product_data,
881            order_variant_data
882        };
883  }
884</script>
884
885
886
887<!-- END app snippet --><!-- BEGIN app snippet: mc-limit -->
887<script>
888    if (typeof jQuery == 'undefined') {
889        var headTag = document.getElementsByTagName("head")[0];
890        var jqTag = document.createElement('script');
891        jqTag.type = 'text/javascript';
892        jqTag.src = 'https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js';
893        jqTag.defer = 'defer';
894        headTag.appendChild(jqTag);
895    }
896</script>
vendor: 1 bytes, line 896
896
897<script src="https://magecomp.us/js/LimitQtyHelper.js" defer></script>
897
898
899<div>
900    
901    <style>
902        .close-custom {
903            color: #aaa;
904            float: right;
905            font-size: 28px;
906            font-weight: 700;
907            margin-right: 4px;
908            margin-top: -3px;
909            position: absolute;
910            top: 0;
911            right: 0;
912        }
913    </style>
914
915    
916
917    <style>
918        /*.d-none {
919            display: none !important;
920        }*/
921
922        .modal-custom {
923            display: none;
924            position: fixed;
925            z-index: 10000;
926            left: 0;
927            top: 0;
928            width: 100%;
929            height: 100%;
930            overflow: auto;
931            background-color: #000;
932            background-color: rgba(0, 0, 0, .4)
933        }
934
935
936        .modal-content-custom {
937            background-color: #fefefe;
938            margin: 15% auto;
939            padding: 25px;
940            border: 1px solid #888;
941            width: fit-content;
942            position: relative;
943        }
944
945
946        .close-custom:focus,
947        .close-custom:hover {
948            color: #000;
949            text-decoration: none;
950            cursor: pointer
951        }
952
953        #mc-loader {
954            display: none;
955            position: fixed;
956            left: 50%;
957            top: 50%;
958            z-index: 10000;
959            width: 150px;
960            height: 150px;
961            margin: -75px 0 0 -75px;
962            border: 16px solid #f3f3f3;
963            border-radius: 50%;
964            border-top: 16px solid #3498db;
965            width: 120px;
966            height: 120px;
967            -webkit-animation: spin 2s linear infinite;
968            animation: spin 2s linear infinite
969        }
970
971        @-webkit-keyframes spin {
972            0% {
973                -webkit-transform: rotate(0)
974            }
975
976            100% {
977                -webkit-transform: rotate(360deg)
978            }
979        }
980
981        @keyframes spin {
982            0% {
983                transform: rotate(0)
984            }
985
986            100% {
987                transform: rotate(360deg)
988            }
989        }
990
991        .animate-bottom {
992            position: relative;
993            -webkit-animation-name: animatebottom;
994            -webkit-animation-duration: 1s;
995            animation-name: animatebottom;
996            animation-duration: 1s
997        }
998
999        @-webkit-keyframes animatebottom {
1000            from {
1001                bottom: -100px;
1002                opacity: 0
1003            }
1004
1005            to {
1006                bottom: 0;
1007                opacity: 1
1008            }
1009        }
1010
1011        @keyframes animatebottom {
1012            from {
1013                bottom: -100px;
1014                opacity: 0
1015            }
1016
1017            to {
1018                bottom: 0;
1019                opacity: 1
1020            }
1021        }
1022
1023        @media only screen and (max-width: 768px) {
1024            .modal-content-custom {
1025                margin-top: 70%;
1026            }
1027        }
1028
1029        #purchase_limit_messages ul {
1030            list-style: none !important;
1031        }
1032
1033        .mc-disabled {
1034            pointer-events: none;
1035            opacity: 0.5;
1036        }
1037    </style>
1038    <div id="modelDesignId"></div>
1039    <div id="mc-loader"></div>
1040    <div id="myModal" class="modal-custom">
1041        <div class="modal-content-custom">
1042            <div id="purchase_limit_messages"></div><span class="close-custom">&times;</span>
1043        </div>
1044    </div>
1045    
1045<script id="kor-market-config" type="application/json">
1046        {
1047            "market_id": "96371376507",
1048            "market_handle": "de"
1049        }
1050    </script>
1050
1051    
1051<script type="text/javascript">
1052
1053        var template = "search";
1054        var customer_id = "";
1055        var product_id = "";
1056        var shopName = "v80rnh-af.myshopify.com";
1057        var defaultvariantId = ""; //get default variant id when page load
1058        window.mcproductresponse = {};
1059
1060        function cartSubmitAndCheckout(formElement) {
1061            var params = formElement.serializeArray();
1062            $.ajax({
1063                url: "/cart",
1064                type: "post",
1065                data: params,
1066                success: function (res) {
1067                    //window.location.replace('/checkout');
1068                    
1069            window.location.replace('/checkout');
1070            
1071        },
1072        error: function (err) {
1073            console.error(err.responseText);
1074        }
1075            });
1076        }
1077
1078        function checkLimitOne(e, click = false, trigger = null) {
1079            e.customer_id = customer_id;
1080            const marketElem = document.querySelector("#kor-market-config");
1081            const marketData = JSON.parse(marketElem?.textContent?.trim() || "{}");
1082            e.config = {
1083                locale: Shopify?.locale,
1084                currency: Shopify?.currency,
1085                country: Shopify?.country,
1086                market: marketData
1087            };
1088
1089            $.ajax({
1090                type: "POST",
1091                url: "/a/cart-update",
1092                dataType: "json",
1093                data: e,
1094                success: function (e) {
1095                    console.log("e...");
1096                    console.log(e);
1097                    if (1 == e.error) {
1098                        var t = "<ul>";
1099                        $.each(e.messages, function (e, n) {
1100                            t += "<li>" + n + "</li>"
1101                        }), t += "</ul>", $("#purchase_limit_messages").html(t), document.getElementById("myModal").style.display = "block"
1102                        $(".additional-checkout-buttons, .additional_checkout_buttons, .dynamic-checkout__content").addClass("mc-disabled");
1103                    } else if (click) {
1104                        //window.location.replace('/checkout');
1105                        
1106            window.location.replace('/checkout');
1107        
1108                    }
1109                    else {
1110            // $(".additional-checkout-buttons").removeClass("mc-disabled");
1111            $(".additional-checkout-buttons,.additional_checkout_buttons, .dynamic-checkout__content").removeClass("mc-disabled");
1112        }
1113        document.getElementById("mc-loader").style.display = "none"
1114                }
1115            });
1116        }
1117
1118        function myJQueryCode() {
1119            jqueryCode();
1120            if (template == 'login') {
1121                $(document).ready(function () {
1122                    $("input[name='checkout_url']").attr('value', '/cart');
1123                });
1124            }
1125
1126            var modal = document.getElementById("myModal"),
1127                span = document.getElementsByClassName("close-custom")[0];
1128
1129            function checkLimit(e, click = false) {
1130
1131                e.customer_id = customer_id;
1132                const marketElem = document.querySelector("#kor-market-config");
1133                const marketData = JSON.parse(marketElem?.textContent?.trim() || "{}");
1134                e.config = {
1135                    locale: Shopify?.locale,
1136                    currency: Shopify?.currency,
1137                    country: Shopify?.country,
1138                    market: marketData
1139                };
1140
1141                $.ajax({
1142                    type: "POST",
1143                    url: "/a/cart-update",
1144                    dataType: "json",
1145                    data: e,
1146                    success: function (e) {
1147                        console.log("e..k.");
1148                        console.log(e);
1149                        let cartUpdateRes = e;
1150                        var purchaseCartLimitMessages = document.getElementById('modelDesignId');
1151                        if (purchaseCartLimitMessages && cartUpdateRes?.modelDesign) {
1152                            purchaseCartLimitMessages.innerHTML = cartUpdateRes.modelDesign;
1153                        }
1154                        if (1 == e.error) {
1155                            var t = "<ul>";
1156                            $.each(e.messages, function (e, n) {
1157                                t += "<li>" + n + "</li>"
1158                            }), t += "</ul>", $("#purchase_limit_messages").html(t), document.getElementById("myModal").style.display = "block"
1159                            $(".additional-checkout-buttons, .dynamic-checkout__content").addClass("mc-disabled");
1160                        } else if (click) {
1161                            // window.location.replace('/checkout');
1162                            let submitFormEventShop = ["pro-image-sports-at-the-mall-of-america.myshopify.com", "distell-staff-sales.myshopify.com", "trevocorp.myshopify.com"];
1163                            if (submitFormEventShop.includes(Shopify.shop)) {
1164                                if (shopName == "distell-staff-sales.myshopify.com") {
1165                                    if (document.querySelector("#cart").reportValidity()) {
1166                                        let formElement = 'form[action="/cart"]';
1167                                        cartSubmitAndCheckout($(formElement));
1168                                    }
1169                                } else {
1170                                    let formElement = 'form[action="/cart"]';
1171                                    cartSubmitAndCheckout($(formElement));
1172                                }
1173
1174                            } else {
1175                                if (typeof preventDirectCheckout !== "undefined" && !preventDirectCheckout.includes(Shopify.shop)) {
1176                                    //window.location.replace('/checkout');
1177                                    
1178                                window.location.replace('/checkout');
1179                            
1180        }
1181                            }
1182                        }
1183        document.getElementById("mc-loader").style.display = "none"
1184                    }
1185                });
1186            }
1187
1188        document.getElementsByClassName("close-custom")[0].addEventListener("click", function () {
1189            document.getElementById("myModal").style.display = "none";
1190        });
1191
1192        if (Shopify.shop == 'nghia-nippers-corporation.myshopify.com') {
1193            $(document).ready(function () {
1194                $("a[href='/cart']").click(() => {
1195                    jQuery.getJSON("/cart.js", function (cartItems) {
1196                        checkLimitOne(cartItems);
1197                    });
1198                });
1199            });
1200        }
1201
1202        if (template == 'product') {
1203            var mcPlusName;
1204            var mcMinusName;
1205            var mcQtyInput;
1206            var mcPlusSelector = [".qty_plus", ".increase", ".plus-btn", ".plus_btn", ".quantity-plus", ".plus", ".qty-plus", ".js--add", ".qty-up", "button[name='plus']", "input[name='plus']", "a[data-quantity='up']", ".js-qty__adjust--plus", "[data-action='increase-quantity']", ".icon-plus", "button[data-action='increase-picker-quantity']", ".inc", ".quantity__button--plus", "[data-quantity-action='increase']", ".quantity-input-plus", ".shopify-product-form [data-update-quantity='plus']", ".product-form__quantity-add-item", ".icon--plus-big", '.qtyplus', '.quantity-selector__button--plus', '.plus_btn', '.quantity-wrapper [data-quantity="up"]', ".ProductForm__QuantitySelector [data-action='increase-quantity']", ".adjust-plus", "button[aria-label='Increase the quantity']", "[data-control
1206='-']", '[data-increase-qty]', '.t4s-quantity-selector is--plus', "button[aria-label='increment']", ".qty-adjuster__up", "button[aria-label='Add']"];
1207            var mcMinusSelector = [".qty_minus", ".reduced", ".minus-btn", ".minus", ".quantity-minus", ".qty-minus", ".js--minus", ".qty-down", "button[name='minus']", "input[name='minus']", "a[data-quantity='down']", ".js-qty__adjust--minus", "[data-action='decrease-quantity']", ".icon-minus", "button[data-action='decrease-picker-quantity']", ".dec", ".quantity__button--minus", "[data-quantity-action='decrease']", ".quantity-input-minus", ".shopify-product-form [data-update-quantity='minus']", ".product-form__quantity-subtract-item", ".icon--minus-big", '.qtyminus', '.quantity-selector__button--minus', '.minus_btn', '.quantity-wrapper [data-quantity="down"]', ".ProductForm__QuantitySelector [data-action='decrease-quantity']", ".adjust-minus", "button[aria-label='Reduce the quantity']", "[data-control='+']", '[data-decrease-qty]', '.t4s-quantity-selector is--minus', "button[aria-label='decrement']", ".qty-adjuster__down", "button[aria-label='Subtract']"];
1208            window.mcQtyInputSelector = [".js-qty__num", ".quantity__input", ".quantity", ".quantity-selector", "input[name='quantity']", "input[name='product-quantity']", "#quantity", ".QuantitySelector__CurrentQuantity", ".quantity-selector--product .quantity-selector__value", "input[name='quantity'][class='quantity__input']", ".quantity-input-field", ".shopify-product-form [name='quantity']", ".product-form__input--quantity", "#quantity-selector__input", ".product-form__input--quantity", ".QuantitySelector__CurrentQuantity[name='quantity']", ".quantity_selector quantity-input [name='quantity']", ".product-form .quantity-selector__input", "input[name='quantity'][class='quantity']"];
1209
1210            // jQuery.getJSON("/cart.js", function (cartItems) {
1211            //     productLimit(product_id, cartItems);
1212            // });
1213            mcKorSetProductLimit();
1214            const intMCval = setInterval(() => {
1215                if(typeof updateMcCartQtyFromCart == "function") {
1216                    updateMcCartQtyFromCart();
1217                    clearInterval(intMCval);
1218                }
1219            }, 1000);
1220
1221            setTimeout(() => {
1222                clearInterval(intMCval);
1223            }, 3000);
1224
1225            mcPlusSelector.forEach((plus) => {
1226                if ($(document).find(plus).length > 0) {
1227                    mcPlusName = $(plus);
1228                }
1229            })
1230
1231            mcMinusSelector.forEach((minus) => {
1232                if ($(document).find(minus).length > 0) {
1233                    mcMinusName = $(minus);
1234                }
1235            })
1236
1237            window.mcQtyInputSelector.forEach((input) => {
1238                if ($(document).find(input).length > 0) {
1239                    mcQtyInput = $(input);
1240                }
1241            })
1242            
1243            if (typeof mcKorAppSettings != "undefined" && (mcKorAppSettings?.pPage?.inputQty && mcKorAppSettings?.pPage?.inputQty != "")) {
1244                jQuery(document).on("change", mcKorAppSettings?.pPage?.inputQty, function (e) {
1245                    e.preventDefault();
1246                    e.stopImmediatePropagation();
1247                    limitOnProductSuccess();
1248                });
1249            } else {
1250                jQuery(document).on("change", mcQtyInput, function (e) {
1251                    e.preventDefault();
1252                    e.stopImmediatePropagation();
1253                    limitOnProductSuccess();
1254                });
1255            }
1256            // For shops 
1257            let shops = ["aarogyam-wellness-store.myshopify.com", "pharmacy-at-spar-midrand.myshopify.com", "cathrin-walk.myshopify.com", "buffchick.myshopify.com", "masicbeauty.myshopify.com", "trevocorp.myshopify.com", "tapes-tools.myshopify.com", "imprensa-nacional-casa-da-moeda-test.myshopify.com", "denikwholesale.myshopify.com", "gmoco-ohio.myshopify.com", "imprensa-nacional-casa-da-moeda-test.myshopify.com", "d48a1f.myshopify.com", "le-parastore.myshopify.com", "lswiring.myshopify.com", "turkishsouq-shop.myshopify.com", "jainsonslightsonline.myshopify.com", "enzo-pt.myshopify.co", "fcxsport.myshopify.com", "dprimerocol.myshopify.com", "nocelab.myshopify.com", "hybrid-supreme-filter-shop.myshopify.com", "loud-pizza.myshopify.com", "sa-stage.myshopify.com"];
1258            if (shops.includes(shopName)) {
1259                if (typeof mcKorAppSettings != "undefined" && (mcKorAppSettings?.pPage?.plusBtn && mcKorAppSettings?.pPage?.plusBtn != "")) {
1260                    jQuery(document).on("click", mcKorAppSettings?.pPage?.plusBtn, function (e) {
1261                        limitOnProductSuccess();
1262                    });
1263                } else {
1264                    jQuery(document).on("click", mcPlusName, function (e) {
1265                        limitOnProductSuccess();
1266                    });
1267                }
1268                if (typeof mcKorAppSettings != "undefined" && (mcKorAppSettings?.pPage?.minusBtn && mcKorAppSettings?.pPage?.minusBtn != "")) {
1269                    jQuery(document).on("click", mcKorAppSettings?.pPage?.minusBtn, function (e) {
1270                        limitOnProductSuccess();
1271                    });
1272                } else {
1273                    jQuery(document).on("click", mcMinusName, function (e) {
1274                        limitOnProductSuccess();
1275                    });
1276                }
1277            }
1278
1279            $(span).click(function (e) {
1280                modal.style.display = "none";
1281                e.preventDefault();
1282            });
1283        }
1284
1285        if (template == 'cart') {
1286
1287            jQuery.getJSON("/cart.js", function (e) {
1288                checkLimit(e)
1289            }), span.onclick = function () {
1290                modal.style.display = "none"
1291            }, window.onclick = function (e) {
1292                e.target == modal && (modal.style.display = "none")
1293            };
1294            jQuery(document).on("click", span, function (e) {
1295                modal.style.display = "none";
1296            });
1297        }
1298
1299        jQuery(document).on("click", "button[name='checkout']", function (e, options) {
1300            if (!options) {
1301                document.getElementById("mc-loader").style.display = "block";
1302                e.preventDefault();
1303                e.stopImmediatePropagation();
1304                jQuery.getJSON("/cart.js", function (cartItems) {
1305                    checkLimit(cartItems, true);
1306                });
1307            }
1308        });
1309
1310        jQuery(document).on("click", "input[name='checkout']", function (e, options) {
1311            if (!options) {
1312                document.getElementById("mc-loader").style.display = "block";
1313                e.preventDefault();
1314                e.stopImmediatePropagation();
1315                jQuery.getJSON("/cart.js", function (cartItems) {
1316                    checkLimit(cartItems, true);
1317                });
1318            }
1319        });
1320
1321        // jQuery(document).on("click", span, function (e) {
1322        //         modal.style.display = "none";
1323        //     });
1324
1325        jQuery(document).on("click", "a[href='/checkout']", function (e) {
1326            document.getElementById("mc-loader").style.display = "block";
1327            e.preventDefault();
1328            e.stopImmediatePropagation();
1329            jQuery.getJSON("/cart.js", function (cartItems) {
1330                checkLimit(cartItems, true);
1331            });
1332        });
1333
1334        jQuery(document).on("click", "input[name='checkouts']", function (e) {
1335            document.getElementById("mc-loader").style.display = "block";
1336            e.preventDefault();
1337            e.stopImmediatePropagation();
1338            jQuery.getJSON("/cart.js", function (cartItems) {
1339                checkLimit(cartItems, true);
1340            });
1341        });
1342
1343
1344        if (template == 'product') {
1345            if (shopName == 'shop-hamples.myshopify.com') {
1346                $(document).ready(function () {
1347                    var className = $(".btn-addtocart");
1348                    var t = className.clone();
1349                    t.removeClass("addtocart-js").attr("type", "button").attr('data-mc', "add-to-cart").css({
1350                        "background": "#a24e4e", "font-family": "'Sen-Bold', sans-serif", "border": "none",
1351                        "color": "#ffffff", "font-size": "14px", "line-height": "1.0", "font-weight": "400", "letter-spacing": "0.05em", "position": "relative",
1352                        "outline": "none", "padding": "6px 31px 4px", "display": "inline-flex", "justify-content": "center", "align-items": "center", "text-align": "center",
1353                    });
1354                    className.after(t);
1355                    className.hide();
1356                    t.on("click", () => {
1357                        CheckOnAddToCart().then(res => {
1358                            if (res.msg != '') {
1359                                showMessage(res.msg);
1360                            } else {
1361                                className.trigger("click", { eventTrigger: true });
1362                                updateNumberOfProductLimit(res.qty);
1363                            }
1364                        });
1365                    });
1366
1367                    var buttonName = $(".stickyaddtocart");
1368                    var clone = buttonName.clone();
1369                    clone.removeClass("btn").attr("type", "button").attr('data-mc', "add-to-cart").css({ "font-family": "'Sen-Bold', sans-serif", "border": "none", "color": "#ffffff", "line-height": "1.0", "letter-spacing": "0.05em", "position": "relative", "justify-content": "center", "align-items": "center", "text-align": "center", "background": "#a24e4e", "font- size": "14px", "padding": "6px 31px 4px", "height": "40px", });
1370                    buttonName.after(clone);
1371                    buttonName.hide();
1372                    clone.on("click", () => {
1373                        CheckOnAddToCart().then(res => {
1374                            if (res.msg != '') {
1375                                showMessage(res.msg);
1376                            } else {
1377                                buttonName.trigger("click", { eventTrigger: true });
1378                                updateNumberOfProductLimit(res.qty);
1379                            }
1380                        });
1381                    });
1382                });
1383            }
1384        }
1385
1386
1387        if (shopName == '0861banner.myshopify.com') {
1388            $(document).ready(function () {
1389                var clone = $('#add-to-cart').clone();
1390                clone.removeClass("add-to-cart").removeAttr('id').attr("type", "button").attr('data-mc', "add-to-cart").css("padding", '10px 40px').css("line-height", '30px').css("font-size", '14px').css("border-radius", '25px');
1391                $('#add-to-cart').after(clone);
1392                $('#add-to-cart').hide();
1393                clone.on("click", () => {
1394                    CheckOnAddToCart().then(res => {
1395                        if (res.msg != '') {
1396                            showMessage(res.msg);
1397                        } else {
1398                            $('#add-to-cart').trigger("click", { eventTrigger: true });
1399                            updateNumberOfProductLimit(res.qty);
1400                        }
1401                    });
1402                });
1403            });
1404        }
1405
1406        if (shopName == 'imprensa-nacional-casa-da-moeda-test.mysh
1406opify.com') {
1407            $(document).ready(function () {
1408                var clone = $('.single_add_to_cart_button').clone();
1409                var clone1 = clone.clone();
1410                clone1.attr("type", "button").attr('data-mc', "add-to-cart");
1411                clone.after(clone1);
1412                clone.hide();
1413                clone1.on("click", () => {
1414                    CheckOnAddToCart().then(res => {
1415                        if (res.msg != '') {
1416                            showMessage(res.msg);
1417                        } else {
1418                            $('.single_add_to_cart_button').trigger("click", { eventTrigger: true });
1419                            updateNumberOfProductLimit(res.qty);
1420                        }
1421                    });
1422                });
1423            });
1424        }
1425
1426        }
1427
1428        function productLimit(e, cartItems) {
1429            const config = {
1430                locale: Shopify?.locale,
1431                currency: Shopify?.currency,
1432                country: Shopify?.country,
1433            };
1434
1435            $.ajax({
1436                type: "POST",
1437                url: "/a/cart-update?page=product",
1438                dataType: "json",
1439                data: { product_id: e, cartItems: cartItems, config },
1440                success: function (e) {
1441                    console.log("e..l.");
1442                    console.log(e);
1443                    window.mcproductresponse = e;
1444                    if (window.mcproductresponse?.data?.modelDesign) {
1445                        var purchaseLimitMessages = document.getElementById('modelDesignId');
1446                        if (purchaseLimitMessages) {
1447                            purchaseLimitMessages.innerHTML = window.mcproductresponse?.data?.modelDesign;
1448                        }
1449                    }
1450                    limitOnProductSuccess(true);
1451                }
1452            });
1453        }
1454
1455        function ifCheckoutNotWorking(e) {
1456            document.getElementById("mc-loader").style.display = "block";
1457            e.preventDefault();
1458            e.stopImmediatePropagation();
1459            jQuery.getJSON("/cart.js", function (cartItems) {
1460                checkLimitOne(cartItems, true);
1461            });
1462        }
1463
1464        if (typeof jQuery == 'undefined') {
1465            var headTag = document.getElementsByTagName("head")[0];
1466            var jqTag = document.createElement('script');
1467            jqTag.type = 'text/javascript';
1468            jqTag.src = 'https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js';
1469            jqTag.onload = myJQueryCode;
1470            headTag.appendChild(jqTag);
1471        } else {
1472            myJQueryCode();
1473        }
1474    </script>
1474
1475</div><!-- END app snippet -->
1476
1477<!-- END app block --><!-- BEGIN app block: shopify://apps/judge-me-reviews/blocks/judgeme_core/61ccd3b1-a9f2-4160-9fe9-4fec8413e5d8 --><!-- Start of Judge.me Core -->
1478
1479
1480
1481
1482
1483
1484
1485<link rel="dns-prefetch" href="https://cdn.judge.me">
1486<link rel="dns-prefetch" href="https://cdn1.judge.me">
1487<link rel="dns-prefetch" href="https://api.judge.me">
1488
1489<script data-cfasync='false' class='jdgm-settings-script'>window.jdgmSettings={"pagination":5,"disable_web_reviews":false,"coupon_receiving_condition":"any_review","coupon_value_type":"percentage","coupon_value_percentage":10,"coupon_value_fixed_amount":0,"coupon_discount_type":"single","coupon_tier_text_enabled":false,"coupon_tier_text_percentage":10,"coupon_tier_text_fixed_amount":0,"coupon_tier_photo_enabled":false,"coupon_tier_photo_percentage":10,"coupon_tier_photo_fixed_amount":0,"coupon_tier_video_enabled":false,"coupon_tier_video_percentage":10,"coupon_tier_video_fixed_amount":0,"enable_coupons":false,"badge_no_review_text":"Keine Bewertungen","badge_n_reviews_text":"{{ n }} Bewertung/Bewertungen","hide_badge_preview_if_no_reviews":true,"badge_hide_text":false,"enforce_center_preview_badge":false,"widget_title":"Kundenbewertungen","widget_open_form_text":"Bewertung schreiben","widget_close_form_text":"Bewertung abbrechen","widget_refresh_page_text":"Seite aktualisieren","widget_summary_text":"Basierend auf {{ number_of_reviews }} Bewertung/Bewertungen","widget_no_review_text":"Schreiben Sie die erste Bewertung","widget_name_field_text":"Anzeigename","widget_verified_name_field_text":"Verifizierter Name (öffentlich)","widget_name_placeholder_text":"Anzeigename","widget_required_field_error_text":"Dieses Feld ist erforderlich.","widget_email_field_text":"E-Mail-Adresse","widget_verified_email_field_text":"Verifizierte E-Mail (privat, kann nicht bearbeitet werden)","widget_email_placeholder_text":"Ihre E-Mail-Adresse","widget_email_field_error_text":"Bitte geben Sie eine gültige E-Mail-Adresse ein.","widget_rating_field_text":"Bewertung","widget_review_title_field_text":"Bewertungstitel","widget_review_title_placeholder_text":"Geben Sie Ihrer Bewertung einen Titel","widget_review_body_field_text":"Bewertungsinhalt","widget_review_body_placeholder_text":"Beginnen Sie hier zu schreiben...","widget_pictures_field_text":"Bild/Video (optional)","widget_submit_review_text":"Bewertung abschicken","widget_submit_verified_review_text":"Verifizierte Bewertung abschicken","widget_submit_success_msg_with_auto_publish":"Vielen Dank! Bitte aktualisieren Sie die Seite in wenigen Momenten, um Ihre Bewertung zu sehen. Sie können Ihre Bewertung entfernen oder bearbeiten, indem Sie sich bei \u003ca href='https://judge.me/login' target='_blank' rel='nofollow noopener'\u003eJudge.me\u003c/a\u003e anmelden","widget_submit_success_msg_no_auto_publish":"Vielen Dank! Ihre Bewertung wird veröffentlicht, sobald sie vom Shop-Administrator genehmigt wurde. Sie können Ihre Bewertung entfernen oder bearbeiten, indem Sie sich bei \u003ca href='https://judge.me/login' target='_blank' rel='nofollow noopener'\u003eJudge.me\u003c/a\u003e anmelden","widget_show_default_reviews_out_of_total_text":"Es werden {{ n_reviews_shown }} von {{ n_reviews }} Bewertungen angezeigt.","widget_show_all_link_text":"Alle anzeigen","widget_show_less_link_text":"Weniger anzeigen","widget_author_said_text":"{{ reviewer_name }} sagte:","widget_days_text":"vor {{ n }} Tag/Tagen","widget_weeks_text":"vor {{ n }} Woche/Wochen","widget_months_text":"vor {{ n }} Monat/Monaten","widget_years_text":"vor {{ n }} Jahr/Jahren","widget_yesterday_text":"Gestern","widget_today_text":"Heute","widget_replied_text":"\u003e\u003e {{ shop_name }} antwortete:","widget_read_more_text":"Mehr lesen","widget_reviewer_name_as_initial":"","widget_rating_filter_color":"#fbcd0a","widget_rating_filter_see_all_text":"Alle Bewertungen anzeigen","widget_sorting_most_recent_text":"Neueste","widget_sorting_highest_rating_text":"Höchste Bewertung","widget_sorting_lowest_rating_text":"Niedrigste Bewertung","widget_sorting_with_pictures_text":"Nur Bilder","widget_sorting_most_helpful_text":"Hilfreichste","widget_open_question_form_text":"Eine Frage stellen","widget_reviews_subtab_text":"Bewertungen","widget_questions_subtab_text":"Fragen","widget_question_label_text":"Frage","widget_answer_label_text":"Antwort","widget_question_placeholder_text":"Schreiben Sie hier Ihre Frage","widget_submit_question_text":"Frage absenden","widget_question_submit_success_text":"Vielen Dank für Ihre Frage! Wir werden Sie benachrichtigen, sobald sie beantwortet wird.","verified_badge_text":"Verifiziert","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":"(außerhalb des Shops)","all_reviews_pagination":100,"all_reviews_product_name_prefix_text":"über","enable_review_pictures":true,"enable_question_anwser":false,"widget_theme":"default","review_date_format":"mm/dd/yyyy","default_sort_method":"most-recent","enable_ai_review_visibility":true,"widget_product_reviews_subtab_text":"Produktbewertungen","widget_shop_reviews_subtab_text":"Shop-Bewertungen","widget_other_products_reviews_text":"Be
1489wertungen für andere Produkte","widget_store_reviews_subtab_text":"Shop-Bewertungen","widget_product_variant_reference_text":"Bewertung für","widget_no_store_reviews_text":"Dieser Shop hat noch keine Bewertungen erhalten","widget_web_restriction_product_reviews_text":"Dieses Produkt hat noch keine Bewertungen erhalten","widget_no_items_text":"Keine Elemente gefunden","widget_show_more_text":"Mehr anzeigen","widget_write_a_store_review_text":"Shop-Bewertung schreiben","widget_product_and_store_reviews_text":"Produkt- und Shop-Bewertungen","widget_reviews_in_collection_text":"Bewertungen in dieser Kollektion","widget_other_languages_heading":"Bewertungen in anderen Sprachen","widget_translate_review_text":"Bewertung übersetzen nach {{ language }}","widget_translating_review_text":"Übersetzung läuft...","widget_show_original_translation_text":"Original anzeigen ({{ language }})","widget_translate_review_failed_text":"Bewertung konnte nicht übersetzt werden.","widget_translate_review_retry_text":"Erneut versuchen","widget_translate_review_try_again_later_text":"Versuchen Sie es später noc
1489h einmal","show_product_url_for_grouped_product":false,"widget_sorting_pictures_first_text":"Bilder zuerst","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":"★ Bewertungen","floating_tab_title":"Lassen Sie Kunden für uns sprechen","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":"Kunden bewerten uns mit {{ shop.metafields.judgeme.all_reviews_rating | round: 1 }}/5 basierend auf {{ shop.metafields.judgeme.all_reviews_count }} Bewertungen.","all_reviews_text_badge_text_branded_style":"{{ shop.metafields.judgeme.all_reviews_rating | round: 1 }} von 5 Sternen basierend auf {{ shop.metafields.judgeme.all_reviews_count }} Bewertungen","is_all_reviews_text_badge_a_link":false,"show_stars_for_all_reviews_text_badge":false,"all_reviews_text_badge_url":"","all_reviews_text_style":"branded","all_reviews_text_color_style":"judgeme_brand_color","all_reviews_text_color":"#108474","all_reviews_text_show_jm_brand":false,"featured_carousel_show_header":true,"featured_carousel_title":"Lassen Sie Kunden für uns sprechen","testimonials_carousel_title":"Kunden sagen uns","videos_carousel_title":"Echte Kunden-Geschichten","cards_carousel_title":"Kunden sagen uns","featured_carousel_count_text":"aus {{ n }} Bewertungen","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 zuerst","widget_review_pending_text":"Ausstehend","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":"Keine Fragen","preview_badge_n_question_text":"{{ number_of_questions }} Frage/Fragen","qa_badge_show_icon":false,"qa_badge_position":"same-row","remove_judgeme_branding":false,"widget_add_search_bar":false,"widget_search_bar_placeholder":"Suchen","widget_sorting_verified_only_text":"Nur verifizierte","widget_sorting_most_relevant_text":"Relevanteste","featured_carousel_theme":"default","featured_carousel_show_rating":true,"featured_carousel_show_title":true,"featured_carousel_show_body":true,"featured_carousel_show_date":false,"featured_carousel_show_reviewer":true,"featured_carousel_show_product":false,"featured_carousel_header_background_color":"#108474","featured_carousel_header_text_color":"#ffffff","featured_carousel_name_product_separator":"reviewed","featured_carousel_full_star_background":"#108474","featured_carousel_empty_star_background":"#dadada","featured_carousel_vertical_theme_background":"#f9fafb","featured_carousel_verified_badge_enable":true,"featured_carousel_verified_badge_color":"#108474","featured_carousel_border_style":"round","featured_carousel_review_line_length_limit":3,"featured_carousel_more_reviews_button_text":"Mehr Bewertungen lesen","featured_carousel_view_product_button_text":"Produkt ansehen","all_reviews_page_load_reviews_on":"scroll","all_reviews_page_load_more_text":"Mehr Bewertungen laden","disable_fb_tab_reviews":false,"enable_ajax_cdn_cache":false,"widget_advanced_speed_features":5,"widget_public_name_text":"wird öffentlich angezeigt wie","default_reviewer_name":"John Smith","default_reviewer_name_has_non_latin":true,"widget_reviewer_anonymous":"Anonym","medals_widget_title":"Judge.me Bewertungsmedaillen","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":"Keine YouTube-Video-URL","widget_max_length_field_error_text":"Bitte geben Sie nicht mehr als {0} Zeichen ein.","widget_show_country_flag":false,"widget_show_collected_via_shop_app":true,"widget_verified_by_shop_badge_style":"light","widget_verified_by_shop_text":"Verifiziert vom Shop","widget_show_photo_gallery":false,"widget_load_with_code_splitting":true,"widget_ugc_install_preference":false,"widget_ugc_title":"Von uns hergestellt, von Ihnen geteilt","widget_ugc_subt
1489itle":"Markieren Sie uns, um Ihr Bild auf unserer Seite zu sehen","widget_ugc_arrows_color":"#ffffff","widget_ugc_primary_button_text":"Jetzt kaufen","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":"Mehr laden","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":"Bewertungen ansehen","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 }} von 5","widget_media_grid_title":"Kundenfotos \u0026 -videos","widget_media_grid_see_more_text":"Mehr sehen","widget_round_style":false,"widget_show_product_medals":true,"widget_verified_by_judgeme_text":"Verifiziert von Judge.me","widget_show_store_medals":true,"widget_verified_by_judgeme_text_in_store_medals":"Verifiziert von Judge.me","widget_media_field_exceed_quantity_message":"Entschuldigung, wir können nur {{ max_media }} für eine Bewertung akzeptieren.","widget_media_field_exceed_limit_message":"{{ file_name }} ist zu groß, bitte wählen Sie ein {{ media_type }} kleiner als {{ size_limit }}MB.","widget_review_submitted_text":"Bewertung abgesendet!","widget_question_submitted_text":"Frage abgesendet!","widget_close_form_text_question":"Abbrechen","widget_write_your_answer_here_text":"Schreiben Sie hier Ihre Antwort","widget_enabled_branded_link":true,"widget_show_collected_by_judgeme":false,"widget_reviewer_name_color":"","widget_write_review_text_color":"","widget_write_review_bg_color":"","widget_collected_by_judgeme_text":"gesammelt von Judge.me","widget_pagination_type":"standard","widget_load_more_text":"Mehr laden","widget_load_more_color":"#108474","widget_full_review_text":"Vollständige Bewertung","widget_read_more_reviews_text":"Mehr Bewertungen lesen","widget_read_questions_text":"Fragen lesen","widget_questions_and_answers_text":"Fragen \u0026 Antworten","widget_verified_by_text":"Verifiziert von","widget_verified_text":"Verifiziert","widget_number_of_reviews_text":"{{ number_of_reviews }} Bewertungen","widget_back_button_text":"Zurück","widget_next_button_text":"Weiter","widget_custom_forms_filter_button":"Filter","custom_forms_style":"horizontal","widget_show_review_information":false,"how_reviews_are_collected":"Wie werden Bewertungen gesammelt?","widget_show_review_keywords":false,"widget_gdpr_statement":"Wie wir Ihre Daten verwenden: Wir kontaktieren Sie nur bezüglich der von Ihnen abgegebenen Bewertung und nur, wenn nötig. Durch das Absenden Ihrer Bewertung stimmen Sie den \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eNutzungsbedingungen\u003c/a\u003e, der \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eDatenschutzrichtlinie\u003c/a\u003e und den \u003ca href='https://judge.me/content-policy' target='_blank' rel='nofollow noopener'\u003eInhaltsrichtlinien\u003c/a\u003e von Judge.me zu.","widget_multilingual_sorting_enabled":false,"widget_translate_review_content_enabled":false,"widget_translate_review_content_method":"manual","popup_widget_review_selection":"automatically_with_pictures","popup_widget_round_border_style":true,"popup_widget_show_title":true,"popup_widget_show_body":true,"popup_widget_show_reviewer":false,"popup_widget_show_product":true,"popup_widget_show_pictures":true,"popup_widget_use_review_picture":true,"popup_widget_show_on_home_page":true,"popup_widget_show_on_product_page":true,"popup_widget_show_on_collection_page":true,"popup_widget_show_on_cart_page":true,"popup_widget_position":"bottom_left","popup_widget_first_review_delay":5,"popup_widget_duration":5,"popup_widget_interval":5,"popup_widget_review_count":5,"popup_widget_hide_on_mobile":true,"review_snippet_widget_round_border_style":true,"review_snippet_widget_card_color":"#FFFFFF","review_snippet_widget_text_color":"#000000","review_snippet_widget_lighter_text_color":"#7B7B7B","review_snippet_widget_slider_arrows_background_color":"#FFFFFF","review_snippet_widget_slider_arrows_color":"#000000","review_snippet_widget_star_color":"#108474","show_product_variant":false,"all_reviews_product_variant_label_text":"Variante: ","widget_show_verified_branding":true,"widget_ai_summary_title":"Kunden sagen","widget_ai_summary_disclaimer":"KI-gestützte Bewertungszusammenfassung basierend auf aktuellen Kundenbewertungen","widget_show_ai_summary":false,"widget_show_ai_summary_bg":false,"write_review_button_visibility":"everyone","store_summary_widget_heading":"Kunden bewerten die
1489sen Shop","store_summary_widget_button_text":"Kundenbewertungen ansehen","store_summary_widget_button_theme_text":"KI-Bewertungszusammenfassung ansehen","widget_show_review_title_input":false,"widget_autofill_review_title":true,"redirect_reviewers_invited_via_email":"external_form","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":"#108474","review_form_text_color":"#333333","review_form_background_color":"#ffffff","review_form_field_background_color":"#fafafa","review_form_button_color":"#108474","review_form_button_text_color":"#ffffff","review_form_modal_overlay_color":"#000000","review_form_theme":"multi_step","review_form_location":"in_store_popup","review_form_external_page_background_color":"#C5F7F0","review_content_screen_title_text":"Wie würden Sie dieses Produkt bewerten?","review_content_introduction_text":"Wir würden uns freuen, wenn Sie etwas über Ihre Erfahrung teilen würden.","store_review_form_title_text":"Wie würden Sie diesen Shop bewerten?","store_review_form_introduction_text":"Wir würden uns freuen, wenn Sie etwas über Ihre Erfahrung teilen würden.","show_review_guidance_text":true,"one_star_review_guidance_text":"Schlecht","five_star_review_guidance_text":"Großartig","customer_information_screen_title_text":"Über Sie","customer_information_introduction_text":"Bitte teilen Sie uns mehr über sich mit.","custom_questions_screen_title_text":"Ihre Erfahrung im Detail","custom_questions_introduction_text":"Hier sind einige Fragen, die uns helfen, mehr über Ihre Erfahrung zu verstehen.","review_submitted_screen_title_text":"Vielen Dank für Ihre Bewertung!","review_submitted_screen_thank_you_text":"Wir verarbeiten sie und sie wird bald im Shop erscheinen.","review_submitted_screen_email_verification_text":"Bitte bestätigen Sie Ihre E-Mail-Adresse, indem Sie auf den Link klicken, den wir Ihnen gerade gesendet haben. Dies hilft uns, die Bewertungen authentisch zu halten.","confirm_email_screen_title_text":"Bestätigen Sie Ihre E-Mail","confirm_email_screen_message_text":"Um Bewertungen authentisch zu halten, senden wir Ihnen einen sicheren Link zum Weiterschreiben Ihrer Bewertung. Es dauert nur einen Moment.","check_email_screen_title_text":"Überprüfen Sie Ihre E-Mail","check_email_screen_message_text":"Wir haben Ihnen eine E-Mail an {{ email }} gesendet. Klicken Sie auf die Schaltfläche in der E-Mail, um fortzufahren.","check_email_screen_resend_message_text":"E-Mail erneut gesendet!","check_email_resend_hint_text":"E-Mail nicht erhalten? Überprüfen Sie Ihren Spam-Ordner oder [senden Sie die E-Mail erneut].","verification_email_rate_limit_error_text":"Sie haben das Limit für Bewertungsversuche für dieses Produkt erreicht. Bitte überprüfen Sie Ihren Posteingang oder versuchen Sie es später erneut.","review_submitted_request_store_review_text":"Möchten Sie Ihre Erfahrung beim Einkaufen bei uns teilen?","review_submitted_review_other_products_text":"Möchten Sie diese Produkte bewerten?","store_review_screen_title_text":"Möchten Sie Ihre Erfahrung mit uns teilen?","store_review_introduction_text":"Wir würden uns freuen, wenn Sie etwas über Ihre Erfahrung teilen würden.","reviewer_media_screen_title_picture_text":"Bild teilen","reviewer_media_introduction_picture_text":"Laden Sie ein Foto hoch, um Ihre Bewertung zu unterstützen.","reviewer_media_screen_title_video_text":"Video teilen","reviewer_media_introduction_video_text":"Laden Sie ein Video hoch, um Ihre Bewertung zu unterstützen.","reviewer_media_screen_title_picture_or_video_text":"Bild oder Video teilen","reviewer_media_introduction_picture_or_video_text":"Laden Sie ein Foto oder Video hoch, um Ihre Bewertung zu unterstützen.","reviewer_media_youtube_url_text":"Fügen Sie hier Ihre Youtube-URL ein","advanced_settings_next_step_button_text":"Weiter","advanced_settings_close_review_button_text":"Schließen","modal_write_review_flow":true,"write_review_flow_required_text":"Erforderlich","write_review_flow_privacy_message_text":"Wir respektieren Ihre Privatsphäre.","write_review_flow_anonymous_text":"Be
1489wertung als anonym","write_review_flow_visibility_text":"Dies wird nicht für andere Kunden sichtbar sein.","write_review_flow_multiple_selection_help_text":"Wählen Sie so viele aus, wie Sie möchten","write_review_flow_single_selection_help_text":"Wählen Sie eine Option","write_review_flow_required_field_error_text":"Dieses Feld ist erforderlich","write_review_flow_invalid_email_error_text":"Bitte geben Sie eine gültige E-Mail-Adresse ein","write_review_flow_max_length_error_text":"Max. {{ max_length }} Zeichen.","write_review_flow_media_upload_text":"\u003cb\u003eZum Hochladen klicken\u003c/b\u003e oder ziehen und ablegen","write_review_flow_gdpr_statement":"Wir kontaktieren Sie nur bei Bedarf bezüglich Ihrer Bewertung. Mit dem Absenden Ihrer Bewertung stimmen Sie unseren \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eGeschäftsbedingungen\u003c/a\u003e und unserer \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eDatenschutzrichtlinie\u003c/a\u003e zu.","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":"Erzählen Sie uns mehr","negative_review_resolution_text":"Ihre Erfahrung ist uns wichtig. Falls es Probleme mit Ihrem Kauf gab, sind wir hier, um zu helfen. Zögern Sie nicht, uns zu kontaktieren, wir würden gerne die Gelegenheit haben, die Dinge zu korrigieren.","negative_review_resolution_button_text":"Kontaktieren Sie uns","negative_review_resolution_proceed_with_review_text":"Hinterlassen Sie eine Bewertung","negative_review_resolution_subject":"Problem mit dem Kauf von {{ shop_name }}.{{ order_name }}","coupon_promo_intro_any_review_text":"Schreiben Sie eine Bewertung und erhalten Sie einen Gutschein über {{ amount }} Rabatt auf Ihren nächsten Einkauf","coupon_promo_intro_with_photo_text":"Schreiben Sie eine Bewertung und fügen Sie ein Foto oder Video hinzu, um einen Gutschein über {{ amount }} Rabatt auf Ihren nächsten Einkauf zu erhalten","coupon_promo_intro_with_video_text":"Schreiben Sie eine Bewertung und fügen Sie ein Video hinzu, um einen Gutschein über {{ amount }} Rabatt auf Ihren nächsten Einkauf zu erhalten","coupon_promo_intro_up_to_any_review_text":"Schreiben Sie eine Bewertung und erhalten Sie einen Gutschein über bis zu {{ amount }} Rabatt auf Ihren nächsten Einkauf","coupon_promo_intro_up_to_with_photo_text":"Schreiben Sie eine Bewertung und fügen Sie ein Foto oder Video hinzu, um einen Gutschein über bis zu {{ amount }} Rabatt auf Ihren nächsten Einkauf zu erhalten","coupon_promo_intro_external_text":"Schreiben Sie eine Bewertung und erhalten Sie eine Belohnung für Ihren nächsten Einkauf","coupon_promo_intro_external_with_photo_text":"Schreiben Sie eine Bewertung und fügen Sie ein Foto oder Video hinzu, um eine Belohnung für Ihren nächsten Einkauf zu erhalten","coupon_promo_intro_external_with_video_text":"Schreiben Sie eine Bewertung und fügen Sie ein Video hinzu, um eine Belohnung für Ihren nächsten Einkauf zu erhalten","coupon_promo_media_photo_text":"Fügen Sie ein Foto oder Video hinzu und erhalten Sie einen Gutschein über {{ amount }} Rabatt auf Ihren nächsten Einkauf","coupon_promo_media_photo_only_text":"Fügen Sie ein Foto hinzu und erhalten Sie einen Gutschein über {{ amount }} Rabatt auf Ihren nächsten Einkauf","coupon_promo_media_video_text":"Fügen Sie ein Video hinzu und erhalten Sie einen Gutschein über {{ amount }} Rabatt auf Ihren nächsten Einkauf","coupon_promo_media_external_photo_text":"Fügen Sie ein Foto oder Video hinzu und erhalten Sie eine Belohnung für Ihren nächsten Einkauf","coupon_promo_media_external_photo_only_text":"Fügen Sie ein Foto hinzu und erhalten Sie eine Belohnung für Ihren nächsten Einkauf","coupon_promo_media_external_video_text":"Fügen Sie ein Video hinzu und erhalten Sie eine Belohnung für Ihren nächsten Einkauf","coupon_promo_success_text":"Sie haben einen Gutschein für Ihren nächsten Einkauf bei {{ shop_name }} erhalten!","coupon_promo_success_subtext":"Sie erhalten Ihre Gutschein-E-Mail innerhalb einer Stunde.","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":true,"transparency_badges_earned_reward":false,"transparency_badges_collected_via_store_invite_text":"Be
1489wertung gesammelt durch eine Einladung zum Shop","transparency_badges_from_another_provider_text":"Bewertung gesammelt von einem anderen Anbieter","transparency_badges_collected_from_store_visitor_text":"Bewertung gesammelt von einem Shop-Besucher","transparency_badges_written_in_google_text":"Bewertung in Google geschrieben","transparency_badges_written_in_etsy_text":"Bewertung in Etsy geschrieben","transparency_badges_written_in_shop_app_text":"Bewertung in Shop App geschrieben","transparency_badges_earned_reward_text":"Bewertung erhielt eine Belohnung für zukünftige Bestellungen","product_review_widget_per_page":10,"widget_other_languages_reviews_per_page":3,"widget_store_review_label_text":"Shop-Bewertung","widget_cart_mode_aggregate_heading_text":"Kunden bewerten diesen Shop","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_show_review_highlights":false,"review_widget_show_review_keywords_in_gray":false,"review_widget_reviews_section_theme":"standard","review_widget_image_style":"thumbnails","review_widget_review_image_ratio":"square","review_widget_stars_size":"medium","review_widget_verified_badge":"standard_text","review_widget_review_title_text_size":"medium","review_widget_review_text_size":"medium","review_widget_review_text_length":"medium","review_widget_number_of_columns_desktop":3,"review_widget_carousel_transition_speed":5,"review_widget_custom_questions_answers_display":"always","review_widget_card_section_size":"small","review_widget_button_text_color":"#FFFFFF","review_widget_text_color":"#000000","review_widget_lighter_text_color":"#7B7B7B","review_widget_corner_styling":"soft","review_widget_review_word_singular":"Bewertung","review_widget_review_word_plural":"Bewertungen","review_widget_voting_label":"Hilfreich?","review_widget_shop_reply_label":"Antwort von {{ shop_name }}:","review_widget_filters_title":"Filter","review_widget_filter_rating_title":"Bewertung","review_widget_filter_keyword_title":"Stichwort","review_widget_clear_filters_text":"Filter löschen","review_widget_expand_more_text":"Mehr","review_widget_review_highlights_title":"Bewertungs-Highlights","qna_widget_question_word_singular":"Frage","qna_widget_question_word_plural":"Fragen","qna_widget_answer_reply_label":"Antwort von {{ answerer_name }}:","qna_content_screen_title_text":"Frage dieses Produkts stellen","qna_widget_question_required_field_error_text":"Bitte geben Sie Ihre Frage ein.","qna_widget_flow_gdpr_statement":"Wir kontaktieren Sie nur bei Bedarf bezüglich Ihrer Frage. Mit dem Absenden Ihrer Frage stimmen Sie unseren \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003eGeschäftsbedingungen\u003c/a\u003e und unserer \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eDatenschutzrichtlinie\u003c/a\u003e zu.","qna_widget_question_submitted_text":"Danke für Ihre Frage!","qna_widget_close_form_text_question":"Schließen","qna_widget_question_submit_success_text":"Wir werden Ihnen per E-Mail informieren, wenn wir Ihre Frage beantworten.","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_show_review_highlights":false,"all_reviews_widget_v2025_show_review_keywords_in_gray":false,"all_reviews_widget_v2025_add_search_bar":false,"all_reviews_widget_v2025_default_sort_method":"most-recent","all_reviews_widget_v2025_reviews_per_page":10,"all_reviews_widget_v2025_reviews_section_theme":"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":"standard_text","all_reviews_widget_v2025_review_title_text_size":"medium","all_reviews_widget_v2025_review_text_size":"medium","all_reviews_widget_v2025_review_text_length":"medium","all_reviews_widget_v2025_
1489number_of_columns_desktop":3,"all_reviews_widget_v2025_carousel_transition_speed":5,"all_reviews_widget_v2025_custom_questions_answers_display":"always","all_reviews_widget_v2025_review_dates":false,"all_reviews_widget_v2025_card_section_size":"small","all_reviews_widget_v2025_show_product_variant":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_widget_thumb":false,"all_reviews_widget_v2025_verified_by_shop_badge_style":"light","all_reviews_widget_v2025_social_share":false,"all_reviews_widget_v2025_social_share_options_order":"Facebook,Twitter,LinkedIn,Pinterest","all_reviews_widget_v2025_pagination_type":"standard","all_reviews_widget_v2025_button_text_color":"#FFFFFF","all_reviews_widget_v2025_text_color":"#000000","all_reviews_widget_v2025_lighter_text_color":"#7B7B7B","all_reviews_widget_v2025_corner_styling":"soft","all_reviews_widget_v2025_title":"Kundenbewertungen","all_reviews_widget_v2025_ai_summary_title":"Kunden sagen über diesen Shop","all_reviews_widget_v2025_no_review_text":"Schreiben Sie die erste Bewertung","all_reviews_widget_v2025_review_highlights_title":"Bewertungs-Highlights","reviews_grid_widget_show_sample_reviews":false,"reviews_grid_widget_review_selection":"all","reviews_grid_widget_select_products":[],"reviews_grid_widget_show_media_only":false,"reviews_grid_widget_display_order":"media_first","reviews_grid_widget_card_grouping":"per_media","reviews_grid_widget_columns_desktop":3,"reviews_grid_widget_rows_desktop":3,"reviews_grid_widget_columns_mobile":2,"reviews_grid_widget_rows_mobile":6,"reviews_grid_widget_show_stars":true,"reviews_grid_widget_show_reviewer_name":true,"reviews_grid_widget_show_review_title_on_hover_desktop":true,"reviews_grid_widget_corner_styling":"soft","reviews_grid_widget_card_spacing":"medium","reviews_grid_widget_header_text_color":"#000000","reviews_grid_widget_star_and_reviewer_name_color":"#F9F9F9","reviews_grid_widget_overlay_and_background_color":"#000000","reviews_grid_widget_content_color":"#F9F9F9","reviews_grid_widget_header_text":"Von unseren Kunden","reviews_grid_widget_show_average_rating":true,"trust_badge_enabled":false,"trust_badge_structure":"outline","trust_badge_color":"black","trust_badge_star":"black","trust_badge_rating_display_default":"show_avg_text","platform":"shopify","branding_url":"https://app.judge.me/reviews","branding_text":"Unterstützt von Judge.me","locale":"en","reply_name":"odiporo.de - Smarte Elektronik für jeden Anspruch","shop_currency":"EUR","widget_version":"3.0","footer":true,"autopublish":false,"review_dates":true,"enable_custom_form":false,"shop_locale":"de","enable_multi_locales_translations":false,"show_review_title_input":false,"autofill_review_title":true,"review_verification_email_status":"always","require_verification_before_submit":false,"sign_in_with_shop_enabled":false,"customer_account_validation_enabled":true,"most_relevant_sort_enabled":false,"coupon_promo_invited_eligible":true,"coupon_promo_web_eligible":false,"uses_coupon_integration":false,"uses_external_coupon":false,"can_be_branded":false,"rtl_stars_enabled_ar":true,"rtl_stars_enabled_he":true,"reply_name_text":"odiporo.de - Smarte Elektronik für jeden Anspruch"};</script>
1489 <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:"Mehr sehen"}@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:"Mehr sehen"}}.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:'über'}.jdgm-rev__variant-label:before{content:'Variante: '}.jdgm-rev__out-of-store-text:before{content:'(außerhalb des Shops)'}@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_earned_for_future_purchase"]{display:none !important}.jdgm-review-snippet-widget{--jdgm-snippet-card-color: #fff;--jdgm-snippet-text-color: #000;--jdgm-snippet-lighter-text-color: #7B7B7B;--jdgm-snippet-star-color: #108474;--jdgm-snippet-border-radius: 8px;--jdgm-snippet-arrows-bg-color: #fff;--jdgm-snippet-arrows-color: #000}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__cards-container .jdgm-rev-snippet-card{border-radius:8px;background:#fff}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__cards-container .jdgm-rev-snippet-card__rev-rating .jdgm-star{color:#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:'odiporo.de - Smarte Elektronik für jeden Anspruch'}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-full-rev__product-button{border-radius:calc( 8px * 6 )}
1490</style> <style class='jdgm-settings-style'></style>
1491
1492  
1493  
1494  
1495  <style class='jdgm-miracle-styles'>
1496  @-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
1496/gAAeAFjYoAAEA1jAwAAZAAHAHgB3crBCcAwDEPRZydkih567CDdf4ZskmLwFBV8xBfCaC4BXkOUmx4sU0h2ngNb9V0vQCxaRKIAevT7fGWuBrEAAAAAAAAAAAA0AHgAugAAeAF9z79Kw1AUx/FzTm7un6QmJtwmQ5Bg1abgEGr/BAqlU6Gju+Cgg1MkQ/sA7Vj7BOnmO/gUvo2Lo14NqIO6/IazfD8HEODtmQCfoANwNsyp2/GJt3WKQrd1NLiYYWx2PBqOsmJMEOznPOTzfSCrhAtbbLdmeFLJV9eKd63WLrZcIcuaEVdssWCKM6pLCfTVOYbz/0pNSMSZKLIZpvh78sAUH6PlMrreTCabP9r+Z/puPZ2ur/RqpQHgh+MIegCnXeM4MRAPjYN//5tj4ZtTjkFqEdmeMShlEJ7tVAly2TAkx6R68Fl4E/aVvn8JqHFQ4JS1434gXKcuL31dDhzs3YbsEOAd/IU88gAAAHgBfY4xTgMxEEVfkk0AgRCioKFxQYd2ZRtpixxgRU2RfhU5q5VWseQ4JdfgAJyBlmNwAM7ABRhZQ0ORwp7nr+eZAa54YwYg9zm3ynPOeFRe8MCrciXOh/KSS76UV5L/iDmrLiS5AeU519wrL3jmSbkS5115yR2fyivJv9kx0ZMZ2RLZw27q87iNQi8EBo5FSPIMw3HqBboi5lKTGAGDp8FKXWP+t9TU01Lj5His1Ba6uM9dTEMwvrFmbf5GC/q2drW3ruXUhhsCiQOjznFlCzYhHUZp4xp76vsvQh89CQAAeAFjYGJABowM6IANLMrEyMTIzMjCXpyRWJBqZshWXJJYBKOMAFHFBucAAAAAAAAB//8AAngBY2BkYGDgA2IJBhBgAvKZGViBJAuYxwAABJsAOgAAeAFjYGBgZACCk535hiD60tn0azAaAEqpB6wAAA==") format("woff");font-weight:normal;font-style:normal}.jdgm-star{font-family:'JudgemeStar';display:inline !important;text-decoration:none !important;padding:0 4px 0 0 !important;margin:0 !important;font-weight:bold;opacity:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.jdgm-star:hover{opacity:1}.jdgm-star:last-of-type{padding:0 !important}.jdgm-star.jdgm--on:before{content:"\e000"}.jdgm-star.jdgm--off:before{content:"\e001"}.jdgm-star.jdgm--half:before{content:"\e002"}.jdgm-widget *{margin:0;line-height:1.4;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch}.jdgm-hidden{display:none !important;visibility:hidden !important}.jdgm-temp-hidden{display:none}.jdgm-spinner{width:40px;height:40px;margin:auto;border-radius:50%;border-top:2px solid #eee;border-right:2px solid #eee;border-bottom:2px solid #eee;border-left:2px solid #ccc;-webkit-animation:jdgm-spin 0.8s infinite linear;animation:jdgm-spin 0.8s infinite linear}.jdgm-spinner:empty{display:block}.jdgm-prev-badge{display:block !important}
1497
1498</style>
1499
1500
1501  
1502  
1503   
1504
1505
1506
1507
1508<script data-cfasync='false' class='jdgm-script'>
1509!function(e){window.jdgm=window.jdgm||{};
1510/* INF-1976 */
1511var _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;}();
1512if(_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;}
1513jdgm.CDN_HOST="https://cdnwidget.judge.me/",jdgm.CDN_HOST_ALT="https://cdn2.judge.me/cdn/widget_frontend/",jdgm.API_HOST="https://api.judge.me/",jdgm.CDN_BASE_URL="https://cdn.shopify.com/extensions/01a0fd03-c455-7b82-9766-74101e55572c/judgeme-771/assets/",jdgm.CDN_API_HOST="https://cdn.judge.me/",
1514jdgm.docReady=function(d){(e.attachEvent?"complete"===e.readyState:"loading"!==e.readyState)?
1515setTimeout(d,0):e.addEventListener("DOMContentLoaded",d)},jdgm.loadCSS=function(d,t,o,a){
1516!o&&jdgm.loadCSS.requestedUrls.indexOf(d)>=0||(jdgm.loadCSS.requestedUrls.push(d),
1517(a=e.createElement("link")).rel="stylesheet",a.class="jdgm-stylesheet",a.media="nope!",
1518a.href=d,a.onload=function(){this.media="all",t&&setTimeout(t)},e.body.appendChild(a))},
1519jdgm.loadCSS.requestedUrls=[],jdgm.loadJS=function(e,d){var t=new XMLHttpRequest;
1520t.onreadystatechange=function(){4===t.readyState&&t.status>=200&&t.status<300&&(Function(t.response)(),d&&d(t.response))},
1521t.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(
1522".jdgm-widget, .jdgm-all-reviews-page").length>0)&&(jdgmSettings.widget_load_with_code_splitting?
1523parseFloat(jdgmSettings.widget_version)>=3?jdgm.loadCSS(jdgm.CDN_BASE_URL+"widget_v3_base.css"):
1524jdgm.loadCSS(jdgm.CDN_BASE_URL+"widget_base.css"):jdgm.loadCSS(jdgm.CDN_BASE_URL+"shopify_v2.css")
1525)}))}(document);
1526</script>
1526
1527<noscript><link rel="stylesheet" type="text/css" media="all" href="https://cdn.shopify.com/extensions/01a0fd03-c455-7b82-9766-74101e55572c/judgeme-771/assets/shopify_v2.css"></noscript>
1528
1529<!-- BEGIN app snippet: theme_fix_tags -->
1529<script>
1530  (function() {
1531    var jdgmThemeFixes = null;
1532    if (!jdgmThemeFixes) return;
1533
1534    // "All themes" fix: CSS and JS applied on every theme. CSS is injected
1535    // before the per-theme fix so the theme-specific CSS wins the cascade.
1536    // HTML is never applied globally (too risky).
1537    var allThemesFix = jdgmThemeFixes['all'];
1538    if (allThemesFix && allThemesFix.css) {
1539      var allStyleTag = document.createElement('style');
1540      allStyleTag.classList.add('jdgm-theme-fix-style-all');
1541      allStyleTag.innerHTML = allThemesFix.css;
1542      document.head.append(allStyleTag);
1543    };
1544
1545    if (allThemesFix && allThemesFix.js) {
1546      var allScriptTag = document.createElement('script');
1547      allScriptTag.classList.add('jdgm-theme-fix-script-all');
1548      allScriptTag.innerHTML = allThemesFix.js;
1549      document.head.append(allScriptTag);
1550    };
1551
1552    var thisThemeFix = jdgmThemeFixes[Shopify.theme.id];
1553    if (!thisThemeFix) return;
1554
1555    if (thisThemeFix.html) {
1556      document.addEventListener("DOMContentLoaded", function() {
1557        var htmlDiv = document.createElement('div');
1558        htmlDiv.classList.add('jdgm-theme-fix-html');
1559        htmlDiv.innerHTML = thisThemeFix.html;
1560        document.body.append(htmlDiv);
1561      });
1562    };
1563
1564    if (thisThemeFix.css) {
1565      var styleTag = document.createElement('style');
1566      styleTag.classList.add('jdgm-theme-fix-style');
1567      styleTag.innerHTML = thisThemeFix.css;
1568      document.head.append(styleTag);
1569    };
1570
1571    if (thisThemeFix.js) {
1572      var scriptTag = document.createElement('script');
1573      scriptTag.classList.add('jdgm-theme-fix-script');
1574      scriptTag.innerHTML = thisThemeFix.js;
1575      document.head.append(scriptTag);
1576    };
1577  })();
1578</script>
1578
1579<!-- END app snippet -->
1580<!-- End of Judge.me Core -->
1581
1582
1583
1584<!-- END app block --><!-- BEGIN app block: shopify://apps/amazon-reviews/blocks/product-rating-snippet-embed/88ab28f3-a438-4eb3-a83e-f1a9c62c5069 -->
1585
1586
1587
1588<!-- END app block --><!-- BEGIN app block: shopify://apps/adcell-tracking-remarketing/blocks/theme_extension/578397e0-3e42-4c27-add7-dfc15023b09b -->
1588<script>
1589    (function () {
1590        var PROXY = '/apps/adcell/bid';
1591
1592        function readCookie(name) {
1593            var m = document.cookie.match('(?:^|; )' + name + '=([^;]*)');
1594            return m ? decodeURIComponent(m[1]) : null;
1595        }
1596        function writeCookie(name, value, maxAge) {
1597            document.cookie = name + '=' + encodeURIComponent(value) + '; Path=/; Max-Age=' + maxAge + '; Secure; SameSite=Lax';
1598        }
1599        function lsGet(name) { try { return window.localStorage.getItem(name); } catch (e) { return null; } }
1600        function lsSet(name, value) { try { window.localStorage.setItem(name, value); } catch (e) {} }
1601        function fetchCart() {
1602            return fetch('/cart.js', { credentials: 'same-origin' })
1603                .then(function (r) { return r.json(); })
1604                .catch(function () { return null; });
1605        }
1606        function stampCart(cart, bid) {
1607            var token = (cart && cart.token) ? cart.token : '';
1608            if (!bid || !token) { return; }
1609            if (((cart && cart.attributes) || {})['_adcell_bid'] === bid) { return; }
1610            var guard = token + ':' + bid;
1611            if (sessionStorage.getItem('adcellCartStamped') === guard) { return; }
1612            fetch('/cart/update.js', {
1613                method: 'POST',
1614                credentials: 'same-origin',
1615                headers: { 'Content-Type': 'application/json' },
1616                body: JSON.stringify({ attributes: { _adcell_bid: bid } })
1617            }).then(function () {
1618                sessionStorage.setItem('adcellCartStamped', guard);
1619            }).catch(function () {});
1620        }
1621
1622        var syTries = 0;
1623        function syncServer(bid, vc) {
1624            fetchCart().then(function (cart) {
1625                var token = (cart && cart.token) ? cart.token : '';
1626                var sy = readCookie('_shopify_y') || '';
1627                stampCart(cart, bid);
1628                if (!sy && syTries < 2) {
1629                    syTries++;
1630                    setTimeout(function () {
1631                        if (readCookie('_shopify_y')) { syncServer(bid, vc); }
1632                    }, 2000);
1633                }
1634                var guard = token + ':' + (bid || '') + ':' + (vc || '') + ':' + sy;
1635                if (sessionStorage.getItem('adcellBidSynced') === guard) { return; }
1636                var body = '';
1637                if (bid) { body += 'bid=' + encodeURIComponent(bid); }
1638                if (vc) { body += (body ? '&' : '') + 'vc=' + encodeURIComponent(vc); }
1639                if (token) { body += (body ? '&' : '') + 'cart_token=' + encodeURIComponent(token); }
1640                if (sy) { body += (body ? '&' : '') + 'sy=' + encodeURIComponent(sy); }
1641                if (!body) { return; }
1642                fetch(PROXY, {
1643                    method: 'POST',
1644                    credentials: 'same-origin',
1645                    headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
1646                    body: body
1647                }).then(function () {
1648                    sessionStorage.setItem('adcellBidSynced', guard);
1649                }).catch(function () {});
1650            });
1651        }
1652
1653        var urlBid = new URLSearchParams(window.location.search).get('bid');
1654        var jsBid = readCookie('adcell');
1655        var vc = readCookie('adcell_vc');
1656
1657        if (!urlBid && !jsBid) {
1658            jsBid = lsGet('adcell');
1659            if (jsBid) { writeCookie('adcell', jsBid, 90 * 24 * 3600); }
1660        }
1661        if (urlBid || jsBid) { lsSet('adcell', urlBid || jsBid); }
1662
1663        if (urlBid || jsBid) {
1664            syncServer(urlBid || jsBid, vc);
1665        } else {
1666            fetchCart().then(function (cart) {
1667                var sy = readCookie('_shopify_y');
1668                var token = cart && cart.token;
1669                if (!sy && !token) {
1670                    if (vc) { syncServer(null, vc); }
1671                    return;
1672                }
1673                var qs = [];
1674                if (sy) { qs.push('sy=' + encodeURIComponent(sy)); }
1675                if (token) { qs.push('cart_token=' + encodeURIComponent(token)); }
1676                fetch(PROXY + '?' + qs.join('&'), { credentials: 'same-origin' })
1677                    .then(function (r) { return r.json(); })
1678                    .then(function (data) {
1679                        var bid = (data && data.bid) || null;
1680                        var view = vc || (data && data.vc) || null;
1681                        if (bid) { writeCookie('adcell', bid, 90 * 24 * 3600); lsSet('adcell', bid); }
1682                        if (!vc && data && data.vc) { writeCookie('adcell_vc', data.vc, 24 * 3600); }
1683                        if (!bid && !view) { return; }
1684                        syncServer(bid, view);
1685                    })
1686                    .catch(function () {
1687                        if (vc) { syncServer(null, vc); }
1688                    });
1689            });
1690        }
1691    })();
1692</script>
1692
1693
1694<script id="trad-js" type="text/javascript" src="https://t.adcell.com/js/trad.js?s=shopify&v=1.2.6&pid=11079" async="async"></script>
vendor: 1 bytes, line 1694
1694
1695<script>
1696    var script = document.querySelector("#trad-js");
1697    script.addEventListener('load', function() {
1698        Adcell.Tracking.track();
1699    });
1700</script>
1700
1701
1702<!-- END app block --><!-- BEGIN app block: shopify://apps/hulk-form-builder/blocks/app-embed/b6b8dd14-356b-4725-a4ed-77232212b3c3 --><!-- BEGIN app snippet: hulkapps-formbuilder-theme-ext -->
1702<script type="text/javascript">
1703  
1704  if (typeof window.formbuilder_customer != "object") {
1705        window.formbuilder_customer = {}
1706  }
1707
1708  
1709
1710  window.hulkFormBuilder = {
1711    form_data: {"form_64N2MOqnj6GawputCWCQwA":{"uuid":"64N2MOqnj6GawputCWCQwA","form_name":"My Form","form_data":{"div_back_gradient_1":"#fff","div_back_gradient_2":"#fff","back_color":"#d8d1d1","form_title":"\u003ch2 style=\"text-align: center;\"\u003e\u003cstrong\u003eOrder Cancellation Form\u003c\/strong\u003e\u003c\/h2\u003e\n\u003cquillbot-extension-portal\u003e\u003c\/quillbot-extension-portal\u003e\u003cquillbot-extension-portal\u003e\u003c\/quillbot-extension-portal\u003e\u003cquillbot-extension-portal\u003e\u003c\/quillbot-extension-portal\u003e","form_submit":"Submit Cancellation Form","after_submit":"hideAndmessage","after_submit_msg":"","captcha_enable":"no","label_style":"inlineLabels","input_border_radius":"2","back_type":"color","input_back_color":"#fff","input_back_color_hover":"#fff","back_shadow":"none","label_font_clr":"#333333","input_font_clr":"#333333","button_align":"fullBtn","button_clr":"#fff","button_back_clr":"#333333","button_border_radius":"2","form_width":"600px","form_border_size":"2","form_border_clr":"#c7c7c7","form_border_radius":"1","label_font_size":"14","input_font_size":"12","button_font_size":"16","form_padding":"35","input_border_color":"#ccc","input_border_color_hover":"#ccc","btn_border_clr":"#333333","btn_border_size":"1","form_name":"My Form","form_description":"\u003cp style=\"text-align: center;\"\u003ePlease fill out the fields below to cancel your order.\u003c\/p\u003e\n\u003cquillbot-extension-portal\u003e\u003c\/quillbot-extension-portal\u003e\u003cquillbot-extension-portal\u003e\u003c\/quillbot-extension-portal\u003e\u003cquillbot-extension-portal\u003e\u003c\/quillbot-extension-portal\u003e","form_access_message":"\u
1711003cp\u003ePlease login to access the form\u003cbr\u003eDo not have an account? Create account\u003c\/p\u003e","formElements":[{"Conditions":{},"type":"text","position":0,"label":"Order Number\/ID","page_number":1},{"Conditions":{},"type":"text","position":1,"label":"First Name","required":"yes","halfwidth":"yes","page_number":1},{"Conditions":{},"type":"text","position":2,"label":"Last Name","required":"yes","halfwidth":"yes","page_number":1},{"Conditions":{},"type":"email","position":3,"required":"yes","email_confirm":"yes","label":"Email Address","halfwidth":"no","page_number":1},{"Conditions":{},"type":"address","position":4,"label":"Address","page_number":1},{"Conditions":{},"type":"textarea","position":5,"label":"What is your reason for canceling? ","page_number":1}]},"is_spam_form":false,"shop_uuid":"3V4DRpazYs-jm-3e98wLgA","shop_timezone":"Europe\/Berlin","shop_id":138025,"shop_is_after_submit_enabled":false,"shop_shopify_plan":"Grow","shop_shopify_domain":"v80rnh-af.myshopify.com","popup_settings":{},"form_is_active":true},"form_72wWVIobEOG7TER4ZbeVqA":{"uuid":"72wWVIobEOG7TER4ZbeVqA","form_name":"Ihre Anfrage – wir beraten Sie persönlich","form_data":{"div_back_gradient_1":"#fff","div_back_gradient_2":"#fff","back_color":"#fff","form_title":"\u003ch2\u003eGesch\u0026auml;ftskundenanfrage\u003c\/h2\u003e\n","form_submit":"Absenden","after_submit":"hideAndmessage","after_submit_msg":"\u003cp\u003e\u003cstrong data-end=\"111\" data-start=\"95\"\u003eVielen Dank!\u003c\/strong\u003e\u003cbr data-end=\"114\" data-start=\"111\" \/\u003e\nWir haben deine Anfrage erhalten und melden uns in K\u0026uuml;rze bei dir.\u003c\/p\u003e\n","captcha_enable":"yes","label_style":"blockLabels","input_border_radius":"10","back_type":"transparent","input_back_color":"#fff","input_back_color_hover":"#fff","back_shadow":"none","label_font_clr":"#333333","input_font_clr":"#333333","button_align":"fullBtn","button_clr":"#fff","button_back_clr":"#333333","button_border_radius":"30","form_width":"100%","form_border_size":"1","form_border_clr":"#c7c7c7","form_border_radius":"20","label_font_size":"14","input_font_size":"12","button_font_size":"16","form_padding":"35","input_border_color":"#ccc","input_border_color_hover":"#ccc","btn_border_clr":"#333333","btn_border_size":"1","form_name":"Ihre Anfrage – wir beraten Sie persönlich","form_access_message":"\u
1711003cp\u003ePlease login to access the form\u003cbr\u003eDo not have an account? Create account\u003c\/p\u003e","captcha_honeypot":"no","captcha_align":"left","captcha_lang":"de","captcha_version_3_enable":"no","input_fonts_type":"Google Fonts","formElements":[{"Conditions":{},"type":"text","position":0,"label":"Firma","halfwidth":"yes","page_number":1},{"Conditions":{},"type":"text","position":1,"label":"Name","halfwidth":"yes","required":"yes","page_number":1},{"type":"email","position":2,"label":"Email","required":"yes","email_confirm":"yes","Conditions":{},"page_number":1,"centerfield":"no","email_validate_field":"no"},{"Conditions":{},"type":"phone","position":3,"label":"Telefonummer","default_country_code":"Germany +49","phone_validate_field":"no","page_number":1},{"Conditions":{},"type":"multipleCheckbox","position":4,"label":"Produktinteresse","values":"TV - Fernseher\nMonitore\nE-Scooter\nLaufbänder\nSaugroboter\nSonstiges","elementCost":{},"align":"horizontal","required":"yes","other_for_multi_value":"yes","other_multi_checkbox_label":"Sonstige","page_number":1},{"Conditions":{},"type":"select","position":5,"label":"Bestimmtes Produkt","values":"aeco HARMONY HDX1 Hochgeschwindigkeits-Ionen-Haartrockner\naeco AirX - Flow 100 Ventilator\naeco AirX - SPIN Turmventilator\naeco DUO Doppelkammer AirFryer 9 Liter\naeco Touch Airfryer 5,7 Liter\naeco Compact Airfryer 4,3 Liter\naeco VacuBot X3\naeco VacuBot X5\naeco VacuBot X5 Plus\naeco Cube 2.0 Airfryer 2 Liter\nEufy S1 Pro\nEufy S1 Saug\/Wischroboter Mit All-in-One Station\nDyon Enter 32 Pro X2\nDyon Enter 40 PRO X2 FHD\nDyon Enter 24 Pro X2\nDyon Smart 24 VX HD\nDyon Smart 43 VX FHD\nDyon Movie Smart 32 VX\nDyon Movie Smart 40 VX-2\nDyon Movie Smart 24 VX\nDyon Enter 22 Pro X2\nDyon SMART 50 VX\nDyon Movie Smart 55 VX\nDyon Ultimax 32F-TI\nDyon Ultimax 43F-TI\nDyon Ultimax 50U-TI\nDyon Ultimax 55U-TI\nDyon Ultimax 24F-TI\nDyon Ultimax 24H-TI-W HD\nDyon Ultimax 32H-TI-W HD\nDYON Movie Smart 22 VX\nDYON ENTER 24 PRO-X-V\nDYON SMART 24 VX-V\nDYON nexGo 24H\nDYON Smart 32 VX\nDYON Movie Smart 32 VX-S\nDYON nexGo 32H\nDYON Ultimax 32H-TI-WS\nDYON Smart 40 VX-2\nDYON Ultimax 40F-TI\nDYON nexGo 40F\nDYON Movie Smart 43 VX\nDYON nexGo 43F\nDYON Movie Smart 50 VX\nDYON Movie Smart 50 VX-S\nDYON Smart 55 VX\nDYON Movie Smart 55 VX-2\nEureka NERE10S – 2-in-1 Saug-\u0026 Wischroboter Schwarz\nEureka J20 - 3in1 Saug\/ Wischroboter\nEureka E10S – 2-in-1 Saug-\u0026 Wischroboter Weiß\nEureka J12 Ultra Saug\/Wischroboter Schwarz\nEureka J12 Ultra Saug\/Wischroboter Weiß\nEureka J20 - 3in1 Saug\/ Wischroboter Weiß\nEureka E20 PLUS weiß - 2 in 1 Saug\/Wischroboter mit Zyklon Absaugstation\nEureka E20 PLUS schwarz - 2 in 1 Saug\/Wischroboter mit Zyklon Absaugstation\nEureka J15 Pro Ultra Saug\/Wischroboter\nHUTT W8 Fensterputzroboter\nHUTT W9 Fensterputzroboter\nHUTT A1 Fensterputzroboter\nHUTT C7 Fensterputzroboter\nHUTT E+Universal 5000 mAh Akku für W8\/W9\/A1\nKingsmith Rutschfeste WalkingPad Laufband-Bodenmatte (Version II)\nKingsmith Neck Massage Kingsmith\nKingsmith WalkingPad C1 Klappbares Laufband\nKingsmith WalkingPad C2 Klappbares Laufband - weiß\nKingsmith WalkingPad C2 Klappbares Laufband - schwarz\nKingsmith WalkingPad P1 Klappbares Laufband für Schreibtisch\nKingsmith WalkingPad Z1 Klappbares Laufband für Schreibtisch\nKingsmith WalkingPad Z3 Hybrid+ Klappbares Laufband\nKingsmith WalkingPad A1 Pro Klappbares Laufband\nKingsmith WalkingPad R1 Pro\nKingsmith WalkingPad R1H\nKingsmith WalkingPad R2\nKingsmith WalkingPad R2H\nKingsmith WalkingPad MC11 Klappbares Laufband\nKingsmith WalkingPad MC21\nKingsmith WalkingPad X23\/MX16 Klappbares Laufband\nKingsmith WalkingPad X218 Klappbares Laufband\nKingsmith Klappbare Trainingsbank Multifunktion\nKEYi Premium Petbot mit Ladestation\nMolly\u0026Cody SPRING Water Fountain\nMolly\u0026Cody BALOU Futtermaschine\nMolly\u0026Cody LUCKY Futtermaschine\nMolly\u0026Cody SAMSON Tierhaarschneidemaschine\n1More ColorBuds 2 Bluetooth In-Ear Kopfhörer Weiß\nRoborock ZEO One - weiß \/2in1 Wash \u0026 Dryer\nSharp Core S3 E-Scooter\nSharp Core S4 E-Scooter\nEureka J12 Ultra Saug\/Wischroboter\nEureka NERE10S – 2-in-1 Saug-\u0026 Wischroboter\nNIU KQi1 Pro E-Scooter\nNIU KQi2 Pro E-Scooter\nNIU KQi3 Pro E-Scooter\nNIU KQi3 Sport E-Scooter\nKingsmith WalkingPad C2 Klappbares Laufband\nKingsmith WalkingPad R1H\/R1 Pro 2IN1 Klappbares Laufband\nKingsmith WalkingPad R2\/R2H Walk\u0026Run 2IN1 Faltbares Laufband\nKingsmith WalkingPad G1 Klappbares Laufband mit Handläufen\nODYS i25-F-144\nODYS Q27-X\nODYS i27-F-144\nODYS XE34-UWQ-120\nOdys XP32 32 Zoll Curved Monitor WQHD\nOdys i27 27 Zoll Office \u0026 Gam
1711ing Monitor\nOdys XP32-X 32 Zoll  Curved Gaming Monitor\nOdys XP32 PRO-X 32 Zoll Curved Gaming Monitor\nOdys XP34 PRO-X 34 Zoll Curved Gaming Monitor\nOdys Q27 PRO-X 27 Zoll Curved Monitor WQHD\nOdys i27-Q-100 27 Zoll Flat Monitor WQHD\nOdys i27-Q-180 27 Zoll Flat Monitor WQHD\nOdys XP27-F-180 27 Zoll Curved Monitor\nOdys NEO e100 E-Scooter\nOdys PAX E-Scooter\nOdys ALPHA X5 PRO - E-Scooter\nOdys ALPHA X5 E Scooter\nOdys Phi X30 - E-Scooter\nOdys ULTRON i75 E-Scooter\nOdys FlexPump - Mobiler Mini Kompressor\nNIU KQi3 Pro Gold E-Scooter\nNIU KQi3 Pro Schwarz E-Scooter\nNIU KQi3 Sport Schwarz E-Scooter\nNIU KQi3 Sport Blau E-Scooter\nNIU KQi3 Sport Rot E-Scooter\nNIU KQi3 Sport Weiß E-Scooter\nNIU KQi2 Pro Grau E-Scooter\nNIU KQi2 Pro Weiß E-Scooter\nNIU KQi3 Max E-Scooter\nNIU KQi1 Pro Anthrazit E-Scooter\nNIU KQi1 Pro White E-Scooter\nNIU KQi 300X DE-BG E-Scooter\nNIU KQi 300P DE-BK E-Scooter\nNIU KQi 300P DE-WT E-Scooter\nNIU KQi100P Anthrazit E-Scooter\nNIU KQi100F Schwarz E-Scooter\nXiaomi Electric Scooter Storage Bag\nXiaomi Electric Scooter 4 Ultra\nXiaomi Electric Scooter 4 Lite Gen 2\nXiaomi Electric Scooter 5 MAX DE AX\nXiaomi Electric Scooter 5 PRO\nXiaomi Electric Scooter 5 DE AX\nXiaomi Electric Scooter Elite DE AX\nXiaomi Smart Doorbell 3\nXiaomi 12V Max Brushless Cordless Drill EU\nXiaomi Sports Fanny Pack\nXiaomi A27i Monitor 27 Zoll\nSonstiges","elementCost":{},"other_value":"yes","other_value_label":"Sonstiges","page_number":1},{"Conditions":{},"type":"textarea","position":6,"label":"Frage oder Nachricht","inputHeight":"100","page_number":1,"required":"yes"},{"Conditions":{},"type":"terms_conditions","position":7,"label":"Datenverarbeitung akzeptiert","checked":"no","infoMessage":"Mit dem Absenden meiner Anfrage erkläre ich mich damit einverstanden, dass meine oben angegebenen Daten von der odiporo GmbH an autorisierte Vertriebspartner weitergegeben werden dürfen. Diese dürfen mich per Post, Telefon und\/oder E-Mail kontaktieren, um mein Interesse an Produkten und Dienstleistungen der odiporo GmbH zu besprechen. Die Verarbeitung meiner Daten erfolgt gemäß den geltenden Datenschutzbestimmungen. Weitere Informationen findest du in unserer Datenschutzerklärung.","required":"yes","halfwidth":"no","page_number":1}]},"is_spam_form":false,"shop_uuid":"3V4DRpazYs-jm-3e98wLgA","shop_timezone":"Europe\/Berlin","shop_id":138025,"shop_is_after_submit_enabled":false,"shop_shopify_plan":"Grow","shop_shopify_domain":"v80rnh-af.myshopify.com","popup_settings":{},"form_is_active":true},"form_cfjl7Hus5DHEv6-DyZL3lQ":{"uuid":"cfjl7Hus5DHEv6-DyZL3lQ","form_name":"B2B-Anfrage","form_data":{"div_back_gradient_1":"#fff","div_back_gradient_2":"#fff","back_color":"#fff","form_title":"\u003ch3\u003eB2B \/\u003cbr \/\u003e\nGesch\u0026auml;ftskunden Anfrage\u003c\/h3\u003e\n","form_submit":"Senden","after_submit":"hideAndmessage","after_submit_msg":"\u003cp\u003eVielen Dank. Die Anfrage wurde erfolgreich \u0026uuml;bermittelt.\u003c\/p\u003e\n","captcha_enable":"yes","label_style":"blockLabels","input_border_radius":"10","back_type":"transparent","input_back_color":"#fff","input_back_color_hover":"#fff","back_shadow":"none","label_font_clr":"#333333","input_font_clr":"#333333","button_align":"fullBtn","button_clr":"#fff","button_back_clr":"#000000","button_border_radius":"30","form_width":"100%","form_border_size":0,"form_border_clr":"#000000","form_border_radius":"30","label_font_size":"15","input_font_size":"12","button_font_size":"16","form_padding":"10","input_border_color":"#ccc","input_border_color_hover":"#ccc","btn_border_clr":"#000000","btn_border_size":"1","form_name":"B2B-Anfrage","form_access_message":"\u
1711003cp\u003ePlease login to access the form\u003cbr\u003eDo not have an account? Create account\u003c\/p\u003e","captcha_honeypot":"no","captcha_version_3_enable":"no","input_fonts_type":"System Fonts","label_fonts_type":"System Fonts","logged_in_users":"no","captcha_align":"left","captcha_lang":"de","formElements":[{"Conditions":{},"type":"text","position":0,"label":"Produktname","required":"yes","page_number":1},{"Conditions":{},"type":"number","position":1,"label":"Menge","minNumber":"1","required":"yes","page_number":1},{"type":"text","position":2,"label":"Name \/ Firma","customClass":"","halfwidth":"no","Conditions":{},"centerfield":"no","required":"yes","page_number":1},{"type":"email","position":3,"label":"Email","required":"yes","email_confirm":"yes","Conditions":{},"page_number":1},{"type":"textarea","position":4,"label":"Nachricht","required":"no","Conditions":{},"page_number":1,"inputHeight":"200"}]},"is_spam_form":false,"shop_uuid":"3V4DRpazYs-jm-3e98wLgA","shop_timezone":"Europe\/Berlin","shop_id":138025,"shop_is_after_submit_enabled":false,"shop_shopify_plan":"Grow","shop_shopify_domain":"v80rnh-af.myshopify.com","popup_settings":{},"form_is_active":true},"form_E5Os6jaNVGwNKNJbXL34IA":{"uuid":"E5Os6jaNVGwNKNJbXL34IA","form_name":"Geschäftskundenanfrage (B2B)","form_data":{"div_back_gradient_1":"#fff","div_back_gradient_2":"#fff","back_color":"#fff","form_title":"\u003ch2\u003e\u003cspan style=\"font-family:Arial;\"\u003eIhre Anfrage - wir beraten Sie gerne pers\u0026ouml;nlich.\u003c\/span\u003e\u003c\/h2\u003e\n","form_submit":"Jetzt beraten lassen","after_submit":"hideAndmessage","after_submit_msg":"\u003cp data-path-to-node=\"8\"\u003eVielen Dank f\u0026uuml;r Ihre Nachricht und Ihr Interesse an odiporo.de. Wir freuen uns, dass Sie den Weg zu uns gefunden haben.\u003c\/p\u003e\n\n\u003cp data-path-to-node=\"9\"\u003eOb smarte Elektronik f\u0026uuml;r Ihr Zuhause oder L\u0026ouml;sungen f\u0026uuml;r Ihr Unternehmen, Ihr Anliegen ist bei uns eingegangen und wird bereits bearbeitet.\u003c\/p\u003e\n\n\u003cp data-path-to-node=\"11\"\u003e\u003cb data-index-in-node=\"0\" data-path-to-node=\"11\"\u003eWie es weitergeht:\u003c\/b\u003e Wir pr\u0026uuml;fen Ihre Anfrage individuell. Sollten Sie spezifische Unterlagen, technische Datenbl\u0026auml;tter oder Unterst\u0026uuml;tzung bei der Ger\u0026auml;teauswahl ben\u0026ouml;tigen, bereiten unsere Produktspezialisten diese bereits f\u0026uuml;r Sie vor.\u003c\/p\u003e\n\n\u003cp data-path-to-node=\"12\"\u003eGewerbliche Projektanfragen aus dem B2B-Bereich leiten wir direkt an unsere pers\u0026ouml;nliche Fachbetreuung weiter, um Ihnen eine optimale und unkomplizierte Abwicklung zu garantieren.\u003c\/p\u003e\n\n\u003cp data-path-to-node=\"13\"\u003eWir melden uns in K\u0026uuml;rze bei Ihnen.\u003c\/p\u003e\n\n\u003cp data-path-to-node=\"14\"\u003eMit freundlichen Gr\u0026uuml;\u0026szlig;en\u003c\/p\u003e\n\n\u003cp data-path-to-node=\"15\"\u003e\u003cb data-index-in-node=\"0\" data-path-to-node=\"15\"\u003eIhr Team von odiporo.de\u003c\/b\u003e\u003c\/p\u003e\n","captcha_enable":"yes","label_style":"blockLabels","input_border_radius":"10","back_type":"transparent","input_back_color":"#fff","input_back_color_hover":"#fff","back_shadow":"none","label_font_clr":"#333333","input_font_clr":"#333333","button_align":"centerBtn","button_clr":"#fff","button_back_clr":"#333333","button_border_radius":"30","form_width":"100%","form_border_size":"1","form_border_clr":"#c7c7c7","form_border_radius":"20","label_font_size":"14","input_font_size":"12","button_font_size":"16","form_padding":"35","input_border_color":"#ccc","input_border_color_hover":"#ccc","btn_border_clr":"#333333","btn_border_size":"1","form_name":"Geschäftskundenanfrage (B2B)","form_access_message":"\u
1711003cp\u003ePlease login to access the form\u003cbr\u003eDo not have an account? Create account\u003c\/p\u003e","captcha_honeypot":"no","captcha_align":"left","captcha_lang":"de","captcha_version_3_enable":"no","input_fonts_type":"Google Fonts","formElements":[{"Conditions":{},"type":"text","position":0,"label":"Firmenname","halfwidth":"yes","page_number":1,"required":"yes"},{"Conditions":{},"type":"text","position":1,"label":"Umsatzsteuer-ID (USt.-ID.)","page_number":1},{"Conditions":{},"type":"text","position":2,"label":"Ansprechpartner","halfwidth":"yes","required":"yes","page_number":1},{"type":"email","position":3,"label":"E-Mail Adresse","required":"yes","email_confirm":"yes","Conditions":{},"page_number":1,"centerfield":"no","email_validate_field":"no","halfwidth":"no"},{"Conditions":{},"type":"phone","position":4,"label":"Telefonummer (optional)","default_country_code":"Germany +49","phone_validate_field":"no","page_number":1,"required":"no"},{"Conditions":{},"type":"select","position":5,"label":"Ihre Branche (optional)","values":"Hotel \u0026 Tourismus\nBüro \u0026 Verwaltung\nIndustrie\nGastronomie\nFitnessstudio\nWiederverkäufer\nSonstiges","elementCost":{},"page_number":1},{"Conditions":{},"type":"select","position":6,"label":"Produktinteresse","required":"yes","values":"Fernseher\nMonitore\nFitness\nE-Scooter\nSaugroboter\nAir Fryer\nLuftreiniger\nHeizlüfter\nGPS-Tier-Tracker\nSonstiges","elementCost":{},"page_number":1},{"Conditions":{},"type":"textarea","position":7,"label":"Frage oder Nachricht","required":"yes","page_number":1},{"Conditions":{},"type":"terms_conditions","position":8,"label":"Datenverarbeitung akzeptiert","checked":"no","required":"yes","halfwidth":"no","page_number":1,"infoMessage":"Ich bin damit einverstanden, dass die odiporo GmbH meine Daten an autorisierte Vertriebspartner weitergibt, die mich per Post, Telefon oder E-Mail zu Produkten und Dienstleistungen kontaktieren dürfen. Weitere Informationen unter: https:\/\/odiporo.de\/policies\/privacy-policy"}]},"is_spam_form":false,"shop_uuid":"3V4DRpazYs-jm-3e98wLgA","shop_timezone":"Europe\/Berlin","shop_id":138025,"shop_is_after_submit_enabled":false,"shop_shopify_plan":"Grow","shop_shopify_domain":"v80rnh-af.myshopify.com","popup_settings":{},"form_is_active":true}},
1712    shop_data: {"shop_3V4DRpazYs-jm-3e98wLgA":{"shop_uuid":"3V4DRpazYs-jm-3e98wLgA","shop_timezone":"Europe\/Berlin","shop_id":138025,"shop_is_after_submit_enabled":false,"shop_shopify_plan":"Grow","shop_shopify_domain":"v80rnh-af.myshopify.com","shop_created_at":"2025-05-27T23:26:22.258Z","is_skip_metafield":false,"shop_deleted":false,"shop_disabled":false}},
1713    settings_data: {"shop_settings":{"shop_customise_msgs":[],"default_customise_msgs":{"is_required":"is required","thank_you":"Thank you! The form was submitted successfully.","processing":"Processing...","valid_data":"Please provide valid data","valid_email":"Provide valid email format","valid_tags":"HTML Tags are not allowed","valid_phone":"Provide valid phone number","valid_captcha":"Please provide a valid CAPTCHA response.","valid_url":"Provide valid URL","only_number_alloud":"Provide valid number in","number_less":"must be less than","number_more":"must be more than","image_must_less":"Image must be less than 20MB","image_number":"Images allowed","image_extension":"Invalid extension! Please provide image file","error_image_upload":"Error in image upload. Please try again.","error_file_upload":"Error in file upload. Please try again.","your_response":"Your response","error_form_submit":"Error occur.Please try again after sometime.","email_submitted":"Form with this email is already submitted","invalid_email_by_zerobounce":"The email address you entered appears to be invalid. Please check it and try again.","download_file":"Download file","card_details_invalid":"Your card details are invalid","card_details":"Card details","please_enter_card_details":"Please enter card details","card_number":"Card number","exp_mm":"Exp MM","exp_yy":"Exp YY","crd_cvc":"CVV","payment_value":"Payment amount","please_enter_payment_amount":"Please enter a payment amount.","address1":"Address line 1","address2":"Address line 2","city":"City","province":"Province","zipcode":"Zip code","country":"Country","blocked_domain":"This form does not accept addresses from","file_must_less":"File must be less than 20MB","file_extension":"Invalid extension! Please provide file","only_file_number_alloud":"files allowed","previous":"Previous","next":"Next","must_have_a_input":"Please enter at least one field.","please_enter_required_data":"Please enter required data","atleast_one_special_char":"Include at least one special character","atleast_one_lowercase_char":"Include at least one lowercase character","atleast_one_uppercase_char":"Include at least one uppercase character","atleast_one_number":"Include at least one number","must_have_8_chars":"Must have 8 characters long","be_between_8_and_12_chars":"Be between 8 and 12 characters long","please_select":"Please Select","phone_submitted":"Form with this phone number is already submitted","user_res_parse_error":"Error while submitting the form","valid_same_values":"values must be the same","product_choice_clear_selection":"Clear Selection","picture_choice_clear_selection":"Clear Selection","remove_all_for_file_image_upload":"Remove All","invali
1713d_file_type_for_image_upload":"You can't upload files of this type.","invalid_file_type_for_signature_upload":"You can't upload files of this type.","max_files_exceeded_for_file_upload":"You can not upload any more files.","max_files_exceeded_for_image_upload":"You can not upload any more files.","file_already_exist":"File already uploaded","max_limit_exceed":"You have added the maximum number of text fields.","cancel_upload_for_file_upload":"Cancel upload","cancel_upload_for_image_upload":"Cancel upload","cancel_upload_for_signature_upload":"Cancel upload"}}},
1714    features_data: {"shop_plan_features":{"shop_plan_features":["unlimited-forms","full-design-customization","export-form-submissions","multiple-recipients-for-form-submissions","multiple-admin-notifications","enable-captcha","unlimited-file-uploads","save-submitted-form-data","set-auto-response-message","conditional-logic","form-banner","save-as-draft-facility","include-user-response-in-admin-email","disable-form-submission","mail-platform-integration","stripe-payment-integration","pre-built-templates","create-customer-account-on-shopify","google-analytics-3-by-tracking-id","facebook-pixel-id","bing-uet-pixel-id","advanced-js","advanced-css","api-available","customize-form-message","hidden-field","restrict-from-submissions-per-one-user","utm-tracking","ratings","privacy-notices","heading","paragraph","shopify-flow-trigger","domain-setup","block-domain","address","html-code","form-schedule","after-submit-script","customize-form-scrolling","on-form-submission-record-the-referrer-url","password","duplicate-the-forms","include-user-response-in-auto-responder-email","elements-add-ons","admin-and-auto-responder-email-with-tokens","email-export","premium-support","google-analytics-4-by-measurement-id","google-ads-for-tracking-conversion","validation-field","load_form_as_popup","advanced_conditional_logic","forms-limit","submissions-visibility-limit","approve-or-decline-submission","product-choice","ticket-system","emoji-feedback","multi-line-text","iamge-choice","image-display","file-upload","slack-integration","google-sheets-integration","multi-page-form","access-only-for-logged-in-users","zapier-integration","add-tags-for-existing-customers","restrict-from-submissions-per-phone-number","multi-column-text","booking","zerobounce-integration","form-layout-image"]}},
1715    shop: null,
1716    shop_id: null,
1717    plan_features: null,
1718    validateDoubleQuotes: false,
1719    assets: {
1720      searchableDropdown: "https://cdn.shopify.com/extensions/01a08a53-1431-71a3-8d75-dd04d3c69aa4/form-builder-by-hulkapps-74/assets/searchable-dropdown.js",
1721      extraFunctions: "https://cdn.shopify.com/extensions/01a08a53-1431-71a3-8d75-dd04d3c69aa4/form-builder-by-hulkapps-74/assets/extra-functions.js",
1722      extraStyles: "https://cdn.shopify.com/extensions/01a08a53-1431-71a3-8d75-dd04d3c69aa4/form-builder-by-hulkapps-74/assets/extra-styles.css",
1723      bootstrapStyles: "https://cdn.shopify.com/extensions/01a08a53-1431-71a3-8d75-dd04d3c69aa4/form-builder-by-hulkapps-74/assets/theme-app-extension-bootstrap.css",
1724    },
1725    translations: {
1726      htmlTagNotAllowed: "HTML Tags are not allowed",
1727      sqlQueryNotAllowed: "SQL Queries are not allowed",
1728      doubleQuoteNotAllowed: "Double quotes are not allowed",
1729      
1730      maxTextFieldsReached: "You have added the maximum number of text fields.",
1731      
1732
1733      
1734      zerobounceApiErrorMsg: "We couldn\u0026#39;t verify your email due to a technical issue. Please try again later.",
1735    }
1736
1737  }
1738
1739  
1740
1741  window.FbThemeAppExtSettingsHash = {}
1742  
1743</script>
1743<!-- END app snippet --><!-- END app block --><!-- BEGIN app block: shopify://apps/ta-labels-badges/blocks/bss-pl-config-data/91bfe765-b604-49a1-805e-3599fa600b24 -->
1743<script
1744    id='bss-pl-config-data'
1745	data-nosnippet
1746>
1747	let TAE_StoreId = "66168";
1748	if (typeof BSS_PL == 'undefined' || TAE_StoreId !== "") {
1749  		var BSS_PL = {};
1750		BSS_PL.storeId = 66168;
1751		BSS_PL.currentPlan = "free";
1752		BSS_PL.apiServerProduction = "https://product-labels.tech-arms.io";
1753		BSS_PL.publicAccessToken = "69fb7e281c40886d881224d0ab04299c";
1754		BSS_PL.customerTags = "null";
1755		BSS_PL.customerId = "null";
1756		BSS_PL.storeIdCustomOld = 10678;
1757		BSS_PL.storeIdOldWIthPriority = 12200;
1758		BSS_PL.storeIdOptimizeAppendLabel = 59637
1759		BSS_PL.optimizeCodeIds = null; 
1760		BSS_PL.extendedFeatureIds = null;
1761		BSS_PL.watermarkRemoved = null;
1762		BSS_PL.watermarkGoliveConfigId = 747;
1763		BSS_PL.watermarkUrl = "https://cdn.shopify.com/extensions/01a0fb6d-171d-712b-8764-40c957e243dd/version_06d0a5c3-2026-10-02_14h03m/assets/bss-pl-watermark.png";
1764		BSS_PL.integration = {"laiReview":{"status":0,"config":[]}} || {};
1765		BSS_PL.settingsData  = {} || {};
1766		BSS_PL.configProductMetafields = [] || [];
1767		BSS_PL.configVariantMetafields = [] || [];
1768		
1769		BSS_PL.configData = [].concat();
1770
1771		
1772		BSS_PL.configDataBanner = [].concat();
1773
1774		
1775		BSS_PL.configDataPopup = [].concat();
1776
1777		
1778		BSS_PL.configDataLabelGroup = [].concat();
1779		
1780		
1781		BSS_PL.collectionID = ``;
1782		BSS_PL.collectionHandle = ``;
1783		BSS_PL.collectionTitle = ``;
1784
1785		
1786		BSS_PL.conditionConfigData = [].concat();
1787	}
1788</script>
1788
1789
1790
1791
1792    
1792<script id='fixBugForStore66168' data-nosnippet>
1793		
1794function bssFixSupportProductParent($, page, parents, itemHandle) {
1795    return parents.filter(function () {
1796        return !(
1797            // $(this).is(".card-grid .card .product-card__media") ||
1798            $(this).is(".product__thumbnail") ||
1799            $(this).is("figure.media.media--transparent") ||
1800            $(this).is(".product-sticky-form__variant .media") ||
1801            $(this).is(".dynamic-image-wrapper picture") ||
1802            $(this).is(".rte") ||
1803            $(this).is(".rte .brand-logo-snippet > a") ||
1804            $(this).is(".product-form-wrapper ~ .flex.justify-between.items-center .items-center") ||
1805            $(this).is(".footer__logo > a") ||
1806            $(this).is("cart-drawer .horizontal-product__media")
1807        );
1808    });    
1809}
1810
1811function bssFixSupportAppendHtmlLabel($, BSS_PL, parent, page, htmlLabel) {
1812  let appended = false;
1813  if($(parent).is(".product__media-container .product__media")){
1814      $(parent).css("position", "relative").append(htmlLabel);
1815      appended = true;
1816  }
1817
1818  if($(parent).is(".snize-product")){
1819      $(parent).find(".snize-thumbnail").css("position", "relative").append(htmlLabel);
1820      appended = true;
1821  }
1822  if ($(parent).is(".horizontal-products .horizontal-product")) {
1823    $(parent).find(".horizontal-product__media").append(htmlLabel); 
1824    appended = true; 
1825  }
1826
1827  if ($(parent).is(".product-card__details .horizontal-product")) {
1828    $(parent).find(".horizontal-product__media").append(htmlLabel); 
1829    appended = true; 
1830  }
1831  return appended;
1832}
1833
1834function bssFixSupportElementImage($, img, parent, page) {
1835  // Write code here
1836  if($(parent).is(".product__media-container .product__media")){
1837      img = $(parent);
1838  }
1839
1840  if($(parent).is(".snize-product")){
1841      img = $(parent).find(".snize-thumbnail img");
1842  }
1843
1844  if ($(parent).is(".horizontal-products .horizontal-product")) {
1845    img = $(parent).find(".horizontal-product__media"); 
1846  }
1847  
1848  return img;
1849}
1850
1851function bssFixSupportReInitLabel($, BSS_PL, firstLoadProduct, checkPageFly, initCollectionLabel, initBadge) {
1852  // Write code here
1853  const input = document.querySelector("search-drawer .search__form .search__field > input");
1854  let idTimeOut = null;
1855
1856  function observeSearchResults() {
1857    const target = document.querySelector("#snize-instant-search-results .snize-ac-results-singlecolumn-list");
1858    // if (!target) return console.warn("Chưa thấy danh sách kết quả.");
1859  
1860    const observer = new MutationObserver(() => {
1861        const preOrderItem = target.querySelector(".snize-product");
1862        // console.log("preOrderItem", preOrderItem)
1863        if (preOrderItem) {
1864          if (idTimeOut) clearTimeout(idTimeOut);
1865          idTimeOut = setTimeout(() => {
1866            BSS_PL.firstLoad = true;
1867            BSS_PL.init();
1868          }, 888);
1869        }
1870      });
1871    
1872      observer.observe(target, {
1873        childList: true,
1874        subtree: true,
1875      });
1876    }
1877  
1878  if (input) {
1879    input.addEventListener("input", (e) => {
1880        observeSearchResults();
1881    });
1882  } else {
1883    // console.warn("Không tìm thấy input.");
1884  }
1885
1886  $(document).on('click', '.cart-drawer-button', function() {
1887    let resizeTimeout;
1888    clearTimeout(resizeTimeout);
1889    resizeTimeout = setTimeout(() => {
1890      document.querySelectorAll('.horizontal-products .bss_pl_img').forEach(el => el.remove());
1891      document.querySelectorAll('.horizontal-products [data-bss-pl="active"]').forEach(el => {
1892        el.setAttribute('data-bss-pl', 'none');
1893      });  
1894      if (typeof BSS_PL !== 'undefined') {
1895        BSS_PL.firstLoad = true;
1896        BSS_PL.init();
1897      }
1898    }, 100);
1899  });
1900
1901
1902  return { firstLoadProduct, checkPageFly };
1903}
1904
1905function bssFixSupportTurnOffAutoAppendLabel() {
1906    return false;
1907}
1908
1909    </script>
1909
1910
1911
1912<style>
1913    
1914    
1915
1916</style>
1917
1918<script data-nosnippet>
1919    function bssLoadScripts(src, callback, isDefer = false) {
1920        const scriptTag = document.createElement('script');
1921        document.head.appendChild(scriptTag);
1922        scriptTag.src = src;
1923        if (isDefer) {
1924            scriptTag.defer = true;
1925        } else {
1926            scriptTag.async = true;
1927        }
1928        if (callback) {
1929            scriptTag.addEventListener('load', function () {
1930                callback();
1931            });
1932        }
1933    }
1934    const scriptUrls = [
1935        "https://cdn.shopify.com/extensions/01a0fb6d-171d-712b-8764-40c957e243dd/version_06d0a5c3-2026-10-02_14h03m/assets/bss-pl-init-helper.js",
1936        "https://cdn.shopify.com/extensions/01a0fb6d-171d-712b-8764-40c957e243dd/version_06d0a5c3-2026-10-02_14h03m/assets/bss-pl-init-config-run-scripts.js",
1937    ];
1938    Promise.all(scriptUrls.map((script) => new Promise((resolve) => bssLoadScripts(script, resolve)))).then((res) => {
1939        console.log('BSS scripts loaded');
1940        window.bssScriptsLoaded = true;
1941    });
1942
1943	function bssInitScripts() {
1944		if (BSS_PL.configData.length) {
1945			const enabledFeature = [
1946				{ type: 1, script: "https://cdn.shopify.com/extensions/01a0fb6d-171d-712b-8764-40c957e243dd/version_06d0a5c3-2026-10-02_14h03m/assets/bss-pl-init-for-label.js" },
1947				{ type: 2, badge: [0, 7, 8], script: "https://cdn.shopify.com/extensions/01a0fb6d-171d-712b-8764-40c957e243dd/version_06d0a5c3-2026-10-02_14h03m/assets/bss-pl-init-for-badge-product-name.js" },
1948				{ type: 2, badge: [1, 11], script: "https://cdn.shopify.com/extensions/01a0fb6d-171d-712b-8764-40c957e243dd/version_06d0a5c3-2026-10-02_14h03m/assets/bss-pl-init-for-badge-product-image.js" },
1949				{ type: 2, badge: 2, script: "https://cdn.shopify.com/extensions/01a0fb6d-171d-712b-8764-40c957e243dd/version_06d0a5c3-2026-10-02_14h03m/assets/bss-pl-init-for-badge-custom-selector.js" },
1950				{ type: 2, badge: [3, 9, 10], script: "https://cdn.shopify.com/extensions/01a0fb6d-171d-712b-8764-40c957e243dd/version_06d0a5c3-2026-10-02_14h03m/assets/bss-pl-init-for-badge-price.js" },
1951				{ type: 2, badge: 4, script: "https://cdn.shopify.com/extensions/01a0fb6d-171d-712b-8764-40c957e243dd/version_06d0a5c3-2026-10-02_14h03m/assets/bss-pl-init-for-badge-add-to-cart-btn.js" },
1952				{ type: 2, badge: 5, script: "https://cdn.shopify.com/extensions/01a0fb6d-171d-712b-8764-40c957e243dd/version_06d0a5c3-2026-10-02_14h03m/assets/bss-pl-init-for-badge-quantity-box.js" },
1953				{ type: 2, badge: 6, script: "https://cdn.shopify.com/extensions/01a0fb6d-171d-712b-8764-40c957e243dd/version_06d0a5c3-2026-10-02_14h03m/assets/bss-pl-init-for-badge-buy-it-now-btn.js" }
1954			]
1955				.filter(({ type, badge }) => BSS_PL.configData.some(item => item.label_type === type && (badge === undefined || (Array.isArray(badge) ? badge.includes(item.badge_type) : item.badge_type === badge))) || (BSS_PL.configDataLabelGroup && BSS_PL.configDataLabelGroup.length))
1956				.map(({ script }) => script);
1957				
1958            enabledFeature.forEach((src) => bssLoadScripts(src));
1959
1960            if (enabledFeature.length) {
1961                const src = "https://cdn.shopify.com/extensions/01a0fb6d-171d-712b-8764-40c957e243dd/version_06d0a5c3-2026-10-02_14h03m/assets/bss-product-label-js.js";
1962                bssLoadScripts(src);
1963            }
1964        }
1965
1966        if (BSS_PL.configDataBanner && BSS_PL.configDataBanner.length) {
1967            const src = "https://cdn.shopify.com/extensions/01a0fb6d-171d-712b-8764-40c957e243dd/version_06d0a5c3-2026-10-02_14h03m/assets/bss-product-label-banner.js";
1968            bssLoadScripts(src);
1969        }
1970
1971        if (BSS_PL.configDataPopup && BSS_PL.configDataPopup.length) {
1972            const src = "https://cdn.shopify.com/extensions/01a0fb6d-171d-712b-8764-40c957e243dd/version_06d0a5c3-2026-10-02_14h03m/assets/bss-product-label-popup.js";
1973            bssLoadScripts(src);
1974        }
1975
1976        if (window.location.search.includes('bss-pl-custom-selector')) {
1977            const src = "https://cdn.shopify.com/extensions/01a0fb6d-171d-712b-8764-40c957e243dd/version_06d0a5c3-2026-10-02_14h03m/assets/bss-product-label-custom-position.js";
1978            bssLoadScripts(src, null, true);
1979        }
1980    }
1981    bssInitScripts();
1982</script>
1982
1983
1984
1985<!-- END app block -->
1985<script src="https://cdn.shopify.com/extensions/01a0ae26-3791-7e3e-a78c-3496db49db55/purchase-limit-84/assets/limit-qty.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 1985
1985
1986<script src="https://cdn.shopify.com/extensions/01a0fd03-c455-7b82-9766-74101e55572c/judgeme-771/assets/loader.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 1986
1986
1987<script src="https://cdn.shopify.com/extensions/01a08a53-1431-71a3-8d75-dd04d3c69aa4/form-builder-by-hulkapps-74/assets/form-builder-script.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 1987
1987
1988<script src="https://cdn.shopify.com/extensions/01a0eecd-e3cf-72d9-81f3-f3f881b5b528/checkout-regeln-grosse-warenkoerbe-2026-09-29/assets/widerruf-button.js" type="text/javascript" defer="defer"></script>
1988
1989<link href="https://cdn.shopify.com/extensions/01a0fb6d-171d-712b-8764-40c957e243dd/version_06d0a5c3-2026-10-02_14h03m/assets/bss-pl-style.min.css" rel="stylesheet" type="text/css" media="all">
1990<script src="https://cdn.shopify.com/extensions/01a09f84-d46f-7905-a8c6-a2d9ec0b62c1/koala-upsell-gift-368/assets/gifts-embed.js" type="text/javascript" defer="defer"></script>
1990
1991<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
1992<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: 90810417531,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "search"};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 1992
1992
1993<script>
1994  window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || [];
1995</script>
vendor: 1 bytes, line 1995
1995
1996<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}
1996).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: 90810417531,storefrontBaseUrl: "https://odiporo.de",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://odiporo.de/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b","7ee89bf1"],webPixelsConfigList: [{"id":"1981874555","configuration":"{\"pixel_id\":\"24670573312611090\",\"pixel_type\":\"facebook_pixel\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"96420dbe9ea96c426a1b7f364f977719","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"]}
1996,{"id":"1936589179","configuration":"{\"webPixelName\":\"Judge.me\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"8acc938b1a30dc7624e304493ca567d7","type":"APP","apiClientId":683015,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1888813435","configuration":"{\"pixelCode\":\"D1JRB3RC77U8NM2EQM60\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"22e92c2ad45662f435e4801458fb78cc","type":"APP","apiClientId":4383523,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":[]},"dataSharingState":"optimized"},{"id":"1850147195","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-KQW87QQ8C6\\\",\\\"GT-PLVXLZN9\\\",\\\"GT-PJWWR3DB\\\"],\\\"target_country\\\":\\\"ZZ\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-KQW87QQ8C6\\\",\\\"AW-10820734941\\\/16EWCOfEu-AaEN2f3aco\\\"]},{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-KQW87QQ8C6\\\",\\\"AW-10820734941\\\/aanTCOvFu-AaEN2f3aco\\\"]},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-KQW87QQ8C6\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-KQW87QQ8C6\\\",\\\"AW-10820734941\\\/HCJ5COjFu-AaEN2f3aco\\\",\\\"MC-7J6TNED5ZZ\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-KQW87QQ8C6\\\"},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-KQW87QQ8C6\\\",\\\"AW-10820734941\\\/48EmCOTEu-AaEN2f3aco\\\",\\\"MC-7J6TNED5ZZ\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-KQW87QQ8C6\\\",\\\"AW-10820734941\\\/a1leCO3Eu-AaEN2f3aco\\\",\\\"MC-7J6TNED5ZZ\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-KQW87QQ8C6\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-KQW87QQ8C6\\\",\\\"AW-10820734941\\\/q57VCO7Fu-AaEN2f3aco\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-KQW87QQ8C6\\\",\\\"AW-10820734941\\\/gtULCOrEu-AaEN2f3aco\\\"]},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-KQW87QQ8C6\\\"}],\\\"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":"1848639867","configuration":"{\"apiKey\":\"1g7I4c8g3n\",\"host\":\"searchserverapi1.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"5559ea45e47b67d15b30b79e7c6719da","type":"APP","apiClientId":578825,"privacyPurposes":["ANALYTICS"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"1772224891","configuration":"{\"accountID\":\"2232\",\"programID\":\"11079\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"d6602526b535375a3751906f21a618e2","type":"APP","apiClientId":2982569,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"1734705531","configuration":"{\"advertiserId\":\"32931\",\"shopDomain\":\"v80rnh-af.myshopify.com\",\"appVersion\":\"shopifyApp_5.2.3\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"c287d09bac7e7a912a76f3941fab1c2f","type":"APP","apiClientId":2887701,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"}
1996,{"id":"1666285947","configuration":"{\"myshopifyDomain\":\"v80rnh-af.myshopify.com\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"23b97d18e2aa74363140dc29c9284e87","type":"APP","apiClientId":2775569,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_phone","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"253952379","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"1","type":"CUSTOM","privacyPurposes":["MARKETING","SALE_OF_DATA"],"name":"ADCELL Conversion Tracking"},{"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":"odiporo.de - Smarte Elektronik für jeden Anspruch","paymentSettings":{"currencyCode":"EUR"},"myshopifyDomain":"v80rnh-af.myshopify.com","countryCode":"DE","storefrontUrl":"https:\/\/odiporo.de"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[],"purchasingCompany":null},},"https://odiporo.de/cdn","5982071ew7ea472e3p69b68784m2150dfea",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"179096813947","themeStoreId":"2412","themePublished":"true","eventMetadataId":"b47b9558-62d9-420a-9bec-aaa49da488c7","pageType":"searchresults","shopId":"90810417531","storefrontBaseUrl":"https:\/\/odiporo.de","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\", \"7ee89bf1\"]","isMerchantRequest":"false","hashVersion":"5982071ew7ea472e3p69b68784m2150dfea","publish":"custom","events":"[[\"page_viewed\",{}],[\"search_submitted\",{\"searchResult\":{\"query\":\"\",\"productVariants\":[]}}]]"});})();</script>
1996<script>
1997  window.ShopifyAnalytics = window.ShopifyAnalytics || {};
1998  window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
1999  window.ShopifyAnalytics.meta.currency = 'EUR';
2000  var meta = {"products":[],"page":{"pageType":"searchresults","requestId":"8cbd1582-1c2a-4bd0-9c16-74a71321a35f-1791081633"}};
2001  for (var attr in meta) {
2002    window.ShopifyAnalytics.meta[attr] = meta[attr];
2003  }
2004</script>
vendor: 1 bytes, line 2004
2004
2005<script class="analytics">
2006  (function () {
2007    var customDocumentWrite = function(content) {
2008      var jquery = null;
2009
2010      if (window.jQuery) {
2011        jquery = window.jQuery;
2012      } else if (window.Checkout && window.Checkout.$) {
2013        jquery = window.Checkout.$;
2014      }
2015
2016      if (jquery) {
2017        jquery('body').append(content);
2018      }
2019    };
2020
2021    var hasLoggedConversion = function(token) {
2022      if (token) {
2023        return document.cookie.indexOf('loggedConversion=' + token) !== -1;
2024      }
2025      return false;
2026    }
2027
2028    var setCookieIfConversion = function(token) {
2029      if (token) {
2030        var twoMonthsFromNow = new Date(Date.now());
2031        twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
2032
2033        document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
2034      }
2035    }
2036
2037    var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
2038    window.ShopifyAnalytics.lib.trekkie = window.trekkie;
2039    if (trekkie.integrations) {
2040      return;
2041    }
2042    trekkie.methods = [
2043      'identify',
2044      'page',
2045      'ready',
2046      'track',
2047      'trackForm',
2048      'trackLink'
2049    ];
2050    trekkie.factory = function(method) {
2051      return function() {
2052        var args = Array.prototype.slice.call(arguments);
2053        args.unshift(method);
2054        trekkie.push(args);
2055        if (method == 'track' || method == 'page') {
2056          var pageUrl;
2057          try {
2058            pageUrl = window.location.href;
2059          } catch (e) {}
2060          var pageReferrer;
2061          try {
2062            pageReferrer = document.referrer;
2063          } catch (e) {}
2064          try {
2065            if (window.__TREKKIE_SHIM_QUEUE == null) {
2066              window.__TREKKIE_SHIM_QUEUE = [];
2067            }
2068            window.__TREKKIE_SHIM_QUEUE.push({
2069              from: 'trekkie-stub',
2070              method: method,
2071              args: args.slice(1),
2072              pageContext: {
2073                url: pageUrl,
2074                referrer: pageReferrer
2075              }
2076            });
2077          } catch (e) {
2078            // no-op
2079          }
2080        }
2081        return trekkie;
2082      };
2083    };
2084    for (var i = 0; i < trekkie.methods.length; i++) {
2085      var key = trekkie.methods[i];
2086      trekkie[key] = trekkie.factory(key);
2087    }
2088    trekkie.load = function(config) {
2089      trekkie.config = config || {};
2090      trekkie.config.initialDocumentCookie = document.cookie;
2091      var first = document.getElementsByTagName('script')[0];
2092var script = document.createElement('script');
2093script.type = 'text/javascript';
2094script.onerror = function(e) {
2095  var scriptFallback = document.createElement('script');
2096  scriptFallback.type = 'text/javascript';
2097  scriptFallback.onerror = function(error) {
2098          var Monorail = {
2099      produce: function produce(monorailDomain, schemaId, payload) {
2100        var currentMs = new Date().getTime();
2101        var event = {
2102          schema_id: schemaId,
2103          payload: payload,
2104          metadata: {
2105            event_created_at_ms: currentMs,
2106            event_sent_at_ms: currentMs
2107          }
2108        };
2109        return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
2110      },
2111      sendRequest: function sendRequest(endpointUrl, payload) {
2112        // Try the sendBeacon API
2113        if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
2114          var blobData = new window.Blob([payload], {
2115            type: 'text/plain'
2116          });
2117
2118          if (window.navigator.sendBeacon(endpointUrl, blobData)) {
2119            return true;
2120          } // sendBeacon was not successful
2121
2122        } // XHR beacon
2123
2124        var xhr = new XMLHttpRequest();
2125
2126        try {
2127          xhr.open('POST', endpointUrl);
2128          xhr.setRequestHeader('Content-Type', 'text/plain');
2129          xhr.send(payload);
2130        } catch (e) {
2131          console.log(e);
2132        }
2133
2134        return false;
2135      },
2136      isIos12: function isIos12() {
2137        return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
2138      }
2139    };
2140    Monorail.produce('monorail-edge.shopifysvc.com',
2141      'trekkie_storefront_load_errors/1.1',
2142      {shop_id: 90810417531,
2143      theme_id: 179096813947,
2144      app_name: "storefront",
2145      context_url: window.location.href,
2146      source_url: "//odiporo.de/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js"});
2147
2148  };
2149  scriptFallback.async = true;
2150  scriptFallback.src = '//odiporo.de/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js';
2151  first.parentNode.insertBefore(scriptFallback, first);
2152};
2153script.async = true;
2154script.src = '//odiporo.de/cdn/s/trekkie.storefront.2f6d7d7ede7d24234881a9cd5f47e679642fa1f6.min.js';
2155first.parentNode.insertBefore(script, first);
2156
2157    };
2158    trekkie.load(
2159      {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":90810417531,"isMerchantRequest":null,"themeId":179096813947,"themeCityHash":"16345578726536469421","contentLanguage":"de","currency":"EUR","eventMetadataId":"b47b9558-62d9-420a-9bec-aaa49da488c7"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","7ee89bf1","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}}
2160    );
2161
2162    var loaded = false;
2163    trekkie.ready(function() {
2164      if (loaded) return;
2165      loaded = true;
2166
2167      window.ShopifyAnalytics.lib = window.trekkie;
2168
2169      var originalDocumentWrite = document.write;
2170      document.write = customDocumentWrite;
2171      try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
2172      document.write = originalDocumentWrite;
2173
2174      var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
2175      var token = match? match[1]: undefined;
2176      if (!hasLoggedConversion(token)) {
2177        setCookieIfConversion(token);
2178        window.ShopifyAnalytics.lib.track("Performed Search",{"query":null},undefined,undefined,{"shopifyEmitted":true});
2179      }
2180    });
2181
2182    window.ShopifyAnalytics.lib.page(null,{"pageType":"searchresults","requestId":"8cbd1582-1c2a-4bd0-9c16-74a71321a35f-1791081633","shopifyEmitted":true});
2183
2184    var eventsListenerScript = document.createElement('script');
2185    eventsListenerScript.async = true;
2186    eventsListenerScript.src = "//odiporo.de/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js";
2187    document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
2188})();</script>
vendor: 1 bytes, line 2188
2188
2189<script
2190  defer
2191  src="https://odiporo.de/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.4.min.js"
2192  data-application="storefront-renderer"
2193  data-shop-id="90810417531"
2194  data-render-region="gcp-us-west1"
2195  data-page-type="search"
2196  data-theme-instance-id="179096813947"
2197  data-theme-name="Concept"
2198  data-theme-version="4.1.0"
2199  data-monorail-region="shop_domain"
2200  data-resource-timing-sampling-rate="10"
2201  data-shs="true"
2202  data-shs-beacon="true"
2203  data-shs-export-with-fetch="true"
2204  data-shs-logs-sample-rate="1"
2205  data-shs-beacon-endpoint="https://odiporo.de/api/collect"
2206></script>
2206
2207<meta name="shopify-y" content="9500efa1-8410-440d-8358-49084f39a784" data-expiration="1822639233000"><meta name="shopify-s" content="2de0268a-052c-4f1a-9b7d-0ce2437e5472" data-expiration="1791083433000"><meta name="new-cookie-storage-activated" content="t">
2208</head>
2209
2210<body class="template-search" data-rounded-button="round-slight" data-rounded-input="round-slight" data-rounded-block="round" data-rounded-card="round" data-button-hover="standard" data-lazy-image data-title-animation data-page-rendering>
2211  <a class="sr-only skip-link" href="#MainContent">Direkt zum Inhalt</a>
2212
2213  <!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 2213-2214
2213
2214<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
2214GTM-KX7KVKS
vendor: 83 bytes, lines 2214-2215
2214"
2215height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
2216<!-- End Google Tag Manager (noscript) --><mouse-cursor class="mouse-cursor z-50 fixed select-none flex items-center justify-center pointer-events-none rounded-full"> 
2217  <svg class="icon icon-cursor" stroke="currentColor" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
2218    <path d="M10 30L30 10M10 10L30 30" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"></path>
2219  </svg>
2220</mouse-cursor>
2221<!-- BEGIN sections: header-group -->
2222<div id="shopify-section-sections--24796503015803__announcement-bar" class="shopify-section shopify-section-group-header-group topbar-section"><style>
2223    :root {--topbar-height: var(--sp-12);}
2224    
2225    @media screen and (min-width: 1536px) {
2226      :root {--topbar-height: var(--sp-14);}
2227    }
2228
2229    #shopify-section-sections--24796503015803__announcement-bar {
2230      --gradient-background: #ffd900;
2231      --color-background: 255 217 0;
2232      --color-foreground: 6 6 6;
2233      --color-highlight: 255 221 191;
2234    }
2235  </style><div class="topbar topbar--center page-width page-width--full section section--rounded relative grid py-0 h-full w-full items-center"><div class="social-icons hidden lg:flex items-center"><ul class="flex flex-wrap items-center gap-6"><li><a href="https://www.facebook.com/Odiporo" class="social_platform block relative" is="magnet-link" title="odiporo.de - Smarte Elektronik für jeden Anspruch auf Facebook"><svg class="icon icon-facebook icon-sm" viewBox="0 0 24 24" stroke="none" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
2236      <path d="M9.03153 23L9 13H5V9H9V6.5C9 2.7886 11.2983 1 14.6091 1C16.1951 1 17.5581 1.11807 17.9553 1.17085V5.04948L15.6591 5.05052C13.8584 5.05052 13.5098 5.90614 13.5098 7.16171V9H18.75L16.75 13H13.5098V23H9.03153Z"/>
2237    </svg><span class="sr-only">Facebook</span>
2238        </a>
2239      </li><li><a href="https://www.instagram.com/odiporo.de/" class="social_platform block relative" is="magnet-link" title="odiporo.de - Smarte Elektronik für jeden Anspruch auf Instagram"><svg class="icon icon-instagram icon-sm" viewBox="0 0 24 24" stroke="none" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
2240      <path d="M12 2.98C14.94 2.98 15.28 2.99 16.44 3.04C17.14 3.04 17.83 3.18 18.48 3.42C18.96 3.6 19.39 3.88 19.75 4.24C20.12 4.59 20.4 5.03 20.57 5.51C20.81 6.16 20.94 6.85 20.95 7.55C21 8.71 21.01 9.06 21.01 12C21.01 14.94 21 15.28 20.95 16.44C20.95 17.14 20.81 17.83 20.57 18.48C20.39 18.95 20.11 19.39 19.75 19.75C19.39 20.11 18.96 20.39 18.48 20.57C17.83 20.81 17.14 20.94 16.44 20.95C15.28 21 14.93 21.01 12 21.01C9.07 21.01 8.72 21 7.55 20.95C6.85 20.95 6.16 20.81 5.51 20.57C5.03 20.39 4.6 20.11 4.24 19.75C3.87 19.4 3.59 18.96 3.42 18.48C3.18 17.83 3.05 17.14 3.04 16.44C2.99 15.28 2.98 14.93 2.98 12C2.98 9.07 2.99 8.72 3.04 7.55C3.04 6.85 3.18 6.16 3.42 5.51C3.6 5.03 3.88 4.6 4.24 4.24C4.59 3.87 5.03 3.59 5.51 3.42C6.16 3.18 6.85 3.05 7.55 3.04C8.71 2.99 9.06 2.98 12 2.98ZM12 1C9.01 1 8.64 1.01 7.47 1.07C6.56 1.09 5.65 1.26 4.8 1.58C4.07 1.86 3.4 2.3 2.85 2.85C2.3 3.41 1.86 4.07 1.58 4.8C1.26 5.65 1.09 6.56 1.07 7.47C1.02 8.64 1 9.01 1 12C1 14.99 1.01 15.36 1.07 16.53C1.09 17.44 1.26 18.35 1.58 19.2C1.86 19.93 2.3 20.6 2.85 21.15C3.41 21.7 4.07 22.14 4.8 22.42C5.65 22.74 6.56 22.91 7.47 22.93C8.64 22.98 9.01 23 12 23C14.99 23 15.36 22.99 16.53 22.93C17.44 22.91 18.35 22.74 19.2 22.42C19.93 22.14 20.6 21.7 21.15 21.15C21.7 20.59 22.14 19.93 22.42 19.2C22.74 18.35 22.91 17.44 22.93 16.53C22.98 15.36 23 14.99 23 12C23 9.01 22.99 8.64 22.93 7.47C22.91 6.56 22.74 5.65 22.42 4.8C22.14 4.07 21.7 3.4 21.15 2.85C20.59 2.3 19.93 1.86 19.2 1.58C18.35 1.26 17.44 1.09 16.53 1.07C15.36 1.02 14.99 1 12 1ZM12 6.35C10.88 6.35 9.79 6.68 8.86 7.3C7.93 7.92 7.21 8.8 6.78 9.84C6.35 10.87 6.24 12.01 6.46 13.1C6.68 14.2 7.22 15.2 8.01 15.99C8.8 16.78 9.81 17.32 10.9 17.54C12 17.76 13.13 17.65 14.16 17.22C15.19 16.79 16.07 16.07 16.7 15.14C17.32 14.21 17.65 13.12 17.65 12C17.65 10.5 17.05 9.06 16 8.01C14.94 6.95 13.5 6.36 12.01 6.36L12 6.35ZM12 15.67C11.27 15.67 10.57 15.45 9.96 15.05C9.36 14.65 8.89 14.07 8.61 13.4C8.33 12.73 8.26 11.99 8.4 11.28C8.54 10.57 8.89 9.92 9.4 9.4C9.91 8.88 10.5
22407 8.54 11.28 8.4C11.99 8.26 12.73 8.33 13.4 8.61C14.07 8.89 14.64 9.36 15.05 9.96C15.45 10.56 15.67 11.27 15.67 12C15.67 12.97 15.28 13.91 14.6 14.59C13.91 15.28 12.98 15.66 12.01 15.66L12 15.67ZM17.87 7.45C18.6 7.45 19.19 6.86 19.19 6.13C19.19 5.4 18.6 4.81 17.87 4.81C17.14 4.81 16.55 5.4 16.55 6.13C16.55 6.86 17.14 7.45 17.87 7.45Z"/>
2241    </svg><span class="sr-only">Instagram</span>
2242        </a>
2243      </li><li><a href="https://www.youtube.com/channel/UCFAKK0tiJMLwDbjcoZQPiiA/videos" class="social_platform block relative" is="magnet-link" title="odiporo.de - Smarte Elektronik für jeden Anspruch auf YouTube"><svg class="icon icon-youtube icon-sm" viewBox="0 0 24 24" stroke="none" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
2244      <path d="M23.8 7.6C23.8 7.6 23.6 5.9 22.8 5.2C21.9 4.2 20.9 4.2 20.4 4.2C17 4 12 4 12 4C12 4 7 4 3.6 4.2C3.1 4.3 2.1 4.3 1.2 5.2C0.5 5.9 0.2 7.6 0.2 7.6C0.2 7.6 0 9.5 0 11.5V13.3C0 15.2 0.2 17.2 0.2 17.2C0.2 17.2 0.4 18.9 1.2 19.6C2.1 20.6 3.3 20.5 3.8 20.6C5.7 20.8 12 20.8 12 20.8C12 20.8 17 20.8 20.4 20.5C20.9 20.4 21.9 20.4 22.8 19.5C23.5 18.8 23.8 17.1 23.8 17.1C23.8 17.1 24 15.2 24 13.2V11.4C24 9.5 23.8 7.6 23.8 7.6ZM9.5 15.5V8.8L16 12.2L9.5 15.5Z"/>
2245    </svg><span class="sr-only">YouTube</span>
2246        </a>
2247      </li><li><a href="https://www.tiktok.com/@odiporo.de" class="social_platform block relative" is="magnet-link" title="odiporo.de - Smarte Elektronik für jeden Anspruch auf TikTok"><svg class="icon icon-tiktok icon-sm" viewBox="0 0 24 24" stroke="none" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
2248      <path d="M10.6315 8.937V13.059C10.1123 12.9221 9.56911 12.9034 9.0418 13.0044C8.5145 13.1054 8.01657 13.3234 7.58473 13.6424C7.15288 13.9613 6.79813 14.3732 6.54661 14.8475C6.2951 15.3218 6.15324 15.8466 6.13148 16.383C6.10175 16.8449 6.17125 17.3078 6.33531 17.7405C6.49938 18.1733 6.7542 18.5659 7.08266 18.892C7.41111 19.2181 7.80557 19.4701 8.23952 19.631C8.67346 19.7919 9.13684 19.8581 9.59848 19.825C10.0648 19.8608 10.5333 19.7949 10.9717 19.6319C11.41 19.4689 11.8078 19.2126 12.1374 18.8809C12.4671 18.5491 12.7208 18.1498 12.881 17.7104C13.0413 17.271 13.1042 16.8021 13.0655 16.336V0H17.1425C17.8355 4.315 19.9935 5.316 22.8825 5.778V9.913C20.8804 9.74881 18.9491 9.09645 17.2575 8.013V16.18C17.2575 19.88 15.0675 24 9.63048 24C8.61045 23.9955 7.60156 23.7875 6.66297 23.3881C5.72437 22.9886 4.87496 22.4059 4.16451 21.6739C3.45407 20.942 2.89689 20.0755 2.52563 19.1254C2.15438 18.1754 1.97652 17.1607 2.00248 16.141C2.03479 15.0794 2.29174 14.0366 2.75639 13.0815C3.22105 12.1265 3.88285 11.2807 4.69819 10.6C5.51352 9.9193 6.46387 9.41915 7.48658 9.1325C8.50929 8.84586 9.58114 8.77923 10.6315 8.937Z"/>
2249    </svg><span class="sr-only">TikTok</span>
2250        </a>
2251      </li></ul></div><div class="announcement-bar h-full flex justify-center lg:justify-center without-nav relative">
2252        <announcement-bar id="Slider-sections--24796503015803__announcement-bar" class="announcement__slides flex justify-center w-full h-full flickity" autoplay autoplay-speed="5"><div class="announcement__slide flex h-full" ><div class="announcement__content flex items-center gap-2"><span class="announcement-icon hidden md:block"><svg class="icon icon-truck icon-xs stroke-1" viewBox="0 0 16 16" stroke="currentColor" fill="none" xmlns="http://www.w3.org/2000/svg">
2253      <path d="M6.66675 12.6667H9.33342M6.66675 12.6667C6.66675 13.7712 5.77132 14.6667 4.66675 14.6667C3.56218 14.6667 2.66675 13.7712 2.66675 12.6667M6.66675 12.6667C6.66675 11.5621 5.77132 10.6667 4.66675 10.6667C3.56218 10.6667 2.66675 11.5621 2.66675 12.6667M9.33342 12.6667C9.33342 13.7712 10.2288 14.6667 11.3334 14.6667C12.438 14.6667 13.3334 13.7712 13.3334 12.6667M9.33342 12.6667C9.33342 11.5621 10.2288 10.6667 11.3334 10.6667C12.438 10.6667 13.3334 11.5621 13.3334 12.6667M13.3334 12.6667V12.6667C14.438 12.6667 15.3334 11.7712 15.3334 10.6667V4.53334C15.3334 3.41324 15.3334 2.85319 15.1154 2.42536C14.9237 2.04904 14.6177 1.74308 14.2414 1.55133C13.8136 1.33334 13.2535 1.33334 12.1334 1.33334H10.3334C9.40153 1.33334 8.93559 1.33334 8.56805 1.48558C8.07799 1.68857 7.68864 2.07792 7.48566 2.56798C7.33342 2.93552 7.33342 3.40146 7.33342 4.33334V4.33334C7.33342 5.26523 7.33342 5.73117 7.18117 6.09871C6.97819 6.58877 6.58884 6.97811 6.09878 7.1811C5.73124 7.33334 5.2653 7.33334 4.33341 7.33334H1.00008M2.66675 12.6667V12.6667C2.20176 12.6667 1.9
22536927 12.6667 1.77852 12.6156C1.26088 12.4769 0.85656 12.0725 0.717859 11.5549C0.666748 11.3642 0.666748 11.1317 0.666748 10.6667V8.86795C0.666748 8.44463 0.666748 8.23297 0.688385 8.0258C0.734513 7.58411 0.853872 7.15318 1.04157 6.7507C1.1296 6.56192 1.2385 6.38042 1.4563 6.01743V6.01743C1.78307 5.47281 1.94646 5.20049 2.14753 4.97976C2.57779 4.50743 3.14762 4.18479 3.77402 4.05886C4.06674 4.00001 4.38431 4.00001 5.01944 4.00001H7.33342" stroke-linecap="round" stroke-linejoin="round"/>
2254    </svg></span><p class="announcement-text leading-tight">Kostenlose & schnelle Lieferung</p></div></div><div class="announcement__slide flex h-full" aria-hidden="true" ><div class="announcement__content flex items-center gap-2"><span class="announcement-icon hidden md:block"><svg class="icon icon-wallet icon-xs stroke-1" viewBox="0 0 16 16" stroke="currentColor" fill="none" xmlns="http://www.w3.org/2000/svg">
2255      <path d="M1.33325 2.66668V11.4667C1.33325 12.5868 1.33325 13.1468 1.55124 13.5747C1.74299 13.951 2.04895 14.2569 2.42527 14.4487C2.85309 14.6667 3.41315 14.6667 4.53325 14.6667H11.4666C12.5867 14.6667 13.1467 14.6667 13.5746 14.4487C13.9509 14.2569 14.2569 13.951 14.4486 13.5747C14.6666 13.1468 14.6666 12.5868 14.6666 11.4667V7.20001C14.6666 6.07991 14.6666 5.51985 14.4486 5.09203C14.2569 4.71571 13.9509 4.40974 13.5746 4.218C13.1467 4.00001 12.5867 4.00001 11.4666 4.00001H7.99992M14.6666 7.33334H14.3333C13.2287 7.33334 12.3333 8.22877 12.3333 9.33334V9.33334C12.3333 10.4379 13.2287 11.3333 14.3333 11.3333H14.6666M11.3333 4.00001L10.7733 3.25334C10.2453 2.54935 9.98126 2.19735 9.64668 1.94347C9.35035 1.71862 9.01478 1.55083 8.6571 1.44868C8.25325 1.33334 7.81325 1.33334 6.93325 1.33334H2.66659C1.93021 1.33334 1.33325 1.9303 1.33325 2.66668V2.66668C1.33325 3.40306 1.93021 4.00001 2.66659 4.00001H11.3333Z" stroke-linecap="round" stroke-linejoin="round"/>
2256    </svg></span><p class="announcement-text leading-tight">Sichere & flexible Zahlungsarten</p></div></div></announcement-bar></div></div>
2257</div><div id="shopify-section-sections--24796503015803__header" class="shopify-section shopify-section-group-header-group header-section"><style>
2258  #shopify-section-sections--24796503015803__header {
2259    --section-padding-top: 32px;
2260    --section-padding-bottom: 32px;
2261    --color-background: 255 255 255;
2262    --color-foreground: 23 23 23;
2263    --color-transparent: 255 255 255;
2264  }
2265</style><menu-drawer id="MenuDrawer" class="menu-drawer drawer drawer--start z-30 fixed bottom-0 left-0 h-full w-full pointer-events-none"
2266  data-section-id="sections--24796503015803__header"
2267  hidden
2268>
2269  <overlay-element class="overlay fixed-modal invisible opacity-0 fixed bottom-0 left-0 w-full h-screen pointer-events-none" aria-controls="MenuDrawer" aria-expanded="false"></overlay-element>
2270  <div class="drawer__inner z-10 absolute top-0 flex flex-col w-full h-full overflow-hidden">
2271    <gesture-element class="drawer__header flex justify-between opacity-0 invisible relative">
2272      <span class="drawer__title heading lg:text-3xl text-2xl leading-none tracking-tight"></span>
2273      <button class="button button--secondary button--close drawer__close hidden sm:flex items-center justify-center" type="button" is="hover-button" aria-controls="MenuDrawer" aria-expanded="false" aria-label="Schließen">
2274        <span class="btn-fill" data-fill></span>
2275        <span class="btn-text"><svg class="icon icon-close icon-sm" viewBox="0 0 20 20" stroke="currentColor" fill="none" xmlns="http://www.w3.org/2000/svg">
2276      <path stroke-linecap="round" stroke-linejoin="round" d="M5 15L15 5M5 5L15 15"></path>
2277    </svg></span>
2278      </button>
2279    </gesture-element>
2280    <div class="drawer__content opacity-0 invisible flex flex-col h-full grow shrink">
2281      <nav class="relative grow overflow-hidden" role="navigation">
2282        <ul class="drawer__scrollable drawer__menu relative w-full h-full" role="list" data-parent><li class="drawer__menu-group"><details is="menu-details">
2283  <summary class="drawer__menu-item block cursor-pointer relative" aria-expanded="false">
2284    <button type="button" class="heading text-2xl leading-none tracking-tight" is="api-button" data-id="DrawerSubMenu-sections--24796503015803__header-1" data-section-id="sections--24796503015803__header">Fernseher</button>
2285  </summary>
2286  <div class="drawer__submenu z-1 absolute top-0 left-0 flex flex-col w-full h-full" data-parent>
2287    <button type="button" class="tracking-tight heading text-base shrink-0 flex items-center gap-3 w-full" data-close>Fernseher</button><div id="DrawerSubMenu-sections--24796503015803__header-1" class="drawer__scrollable flex flex-col h-full"></div></div>
2288</details>
2289</li><li class="drawer__menu-group"><details is="menu-details">
2290  <summary class="drawer__menu-item block cursor-pointer relative" aria-expanded="false">
2291    <button type="button" class="heading text-2xl leading-none tracking-tight" is="api-button" data-id="DrawerSubMenu-sections--24796503015803__header-2" data-section-id="sections--24796503015803__header">Monitore</button>
2292  </summary>
2293  <div class="drawer__submenu z-1 absolute top-0 left-0 flex flex-col w-full h-full" data-parent>
2294    <button type="button" class="tracking-tight heading text-base shrink-0 flex items-center gap-3 w-full" data-close>Monitore</button><div id="DrawerSubMenu-sections--24796503015803__header-2" class="drawer__scrollable flex flex-col h-full"></div></div>
2295</details>
2296</li><li class="drawer__menu-group"><details is="menu-details">
2297  <summary class="drawer__menu-item block cursor-pointer relative" aria-expanded="false">
2298    <button type="button" class="heading text-2xl leading-none tracking-tight" is="api-button" data-id="DrawerSubMenu-sections--24796503015803__header-3" data-section-id="sections--24796503015803__header">Fitness</button>
2299  </summary>
2300  <div class="drawer__submenu z-1 absolute top-0 left-0 flex flex-col w-full h-full" data-parent>
2301    <button type="button" class="tracking-tight heading text-base shrink-0 flex items-center gap-3 w-full" data-close>Fitness</button><div id="DrawerSubMenu-sections--24796503015803__header-3" class="drawer__scrollable flex flex-col h-full"></div></div>
2302</details>
2303</li><li class="drawer__menu-group"><details is="menu-details">
2304  <summary class="drawer__menu-item block cursor-pointer relative" aria-expanded="false">
2305    <button type="button" class="heading text-2xl leading-none tracking-tight" is="api-button" data-id="DrawerSubMenu-sections--24796503015803__header-4" data-section-id="sections--24796503015803__header">E-Scooter</button>
2306  </summary>
2307  <div class="drawer__submenu z-1 absolute top-0 left-0 flex flex-col w-full h-full" data-parent>
2308    <button type="button" class="tracking-tight heading text-base shrink-0 flex items-center gap-3 w-full" data-close>E-Scooter</button><div id="DrawerSubMenu-sections--24796503015803__header-4" class="drawer__scrollable flex flex-col h-full"></div></div>
2309</details>
2310</li><li class="drawer__menu-group"><details is="menu-details">
2311  <summary class="drawer__menu-item block cursor-pointer relative" aria-expanded="false">
2312    <button type="button" class="heading text-2xl leading-none tracking-tight" is="api-button" data-id="DrawerSubMenu-sections--24796503015803__header-5" data-section-id="sections--24796503015803__header">Reinigungsroboter</button>
2313  </summary>
2314  <div class="drawer__submenu z-1 absolute top-0 left-0 flex flex-col w-full h-full" data-parent>
2315    <button type="button" class="tracking-tight heading text-base shrink-0 flex items-center gap-3 w-full" data-close>Reinigungsroboter</button><div id="DrawerSubMenu-sections--24796503015803__header-5" class="drawer__scrollable flex flex-col h-full"></div></div>
2316</details>
2317</li><li class="drawer__menu-group"><details is="menu-details">
2318  <summary class="drawer__menu-item block cursor-pointer relative" aria-expanded="false">
2319    <button type="button" class="heading text-2xl leading-none tracking-tight" is="api-button" data-id="DrawerSubMenu-sections--24796503015803__header-6" data-section-id="sections--24796503015803__header">Wohnen</button>
2320  </summary>
2321  <div class="drawer__submenu z-1 absolute top-0 left-0 flex flex-col w-full h-full" data-parent>
2322    <button type="button" class="tracking-tight heading text-base shrink-0 flex items-center gap-3 w-full" data-close>Wohnen</button><div id="DrawerSubMenu-sections--24796503015803__header-6" class="drawer__scrollable flex flex-col h-full"></div></div>
2323</details>
2324</li><li class="drawer__menu-group"><a class="drawer__menu-item block heading text-2xl leading-none tracking-tight" href="/pages/b2b-geschaftskundenanfragen">Geschäftskunden</a></li><li class="drawer__menu-group"><a class="drawer__menu-item block heading text-2xl leading-none tracking-tight" href="/pages/coming-soon">Angebote</a></li><li class="drawer__menu-group"><a class="drawer__menu-item block heading text-2xl leading-none tracking-tight" href="/blogs/ratgeber_kaufberatung_wissen">Ratgeber</a></li></ul>
2325      </nav>
2326      <div class="drawer__footer grid w-full"><div class="drawer__footer-bottom flex items-center justify-between gap-6"><a href="https://odiporo.de/customer_authentication/redirect?locale=de&region_country=DE" class="button button--primary icon-with-text" is="hover-link" rel="nofollow">
2327              <span class="btn-fill" data-fill></span>
2328              <span class="btn-text"><svg class="icon icon-account-2 icon-xs" viewBox="0 0 16 17" stroke="currentColor" fill="none" xmlns="http://www.w3.org/2000/svg">
2329      <rect width="6.5" height="6.5" x="4.75" y="1.917" rx="3.25"></rect>
2330      <path stroke-linecap="round" d="M8 10.834c1 0 2.667.222 3 .333.333.11 2.467.533 3 1.333.667 1 .667 1.334.667 2.667M8 10.834c-1 0-2.667.222-3 .333-.333.11-2.467.533-3 1.333-.667 1-.667 1.334-.667 2.667"></path>
2331    </svg>Login</span>
2332            </a></div>
2333      </div>
2334    </div>
2335  </div>
2336</menu-drawer>
2337<header data-section-id="sections--24796503015803__header" class="header header--left mobile:header--left page-width page-width--full section section--rounded section--padding grid items-center z-20 relative w-full" is="sticky-header" data-sticky-type="always"><div class="header__icons header__icons--start flex justify-start z-2">
2338  <div class="header__buttons flex items-center gap-1d5"><a href="/search" class="search-drawer-button flex items-center justify-center" is="magnet-link" aria-controls="SearchDrawer" aria-expanded="false" >
2339        <span class="sr-only">Suche</span><svg class="icon icon-search icon-lg" viewBox="0 0 24 24" stroke="currentColor" fill="none" xmlns="http://www.w3.org/2000/svg">
2340      <path stroke-linecap="round" d="m21 21-3.636-3.636m0 0A9 9 0 1 0 4.636 4.636a9 9 0 0 0 12.728 12.728Z"></path>
2341    </svg></a><button class="menu-drawer-button flex items-center justify-center" type="button" is="magnet-button" aria-controls="MenuDrawer" aria-expanded="false">
2342        <span class="sr-only">Seitennavigation</span><svg class="icon icon-hamburger icon-lg" viewBox="0 0 24 24" stroke="currentColor" fill="none" xmlns="http://www.w3.org/2000/svg">
2343      <path stroke-linecap="round" d="M3 6H21M3 12H11M3 18H16"></path>
2344    </svg></button></div>
2345</div>
2346<div class="header__logo flex justify-center z-2" itemscope itemtype="http://schema.org/Organization"><a
2347      href="/"
2348      itemprop="url"
2349      class="header__logo-link has-white-logo flex items-center relative"
2350    >
2351      <span class="sr-only">odiporo.de - Smarte Elektronik für jeden Anspruch</span><img src="//odiporo.de/cdn/shop/files/Odiporo.de_Logo_Pantone.jpg?v=1776089538&amp;width=2794" alt="Logo mit dem Schriftzug odiporo.de in schwarzer Schrift, mit einer gelben und weißen Pillenform vor dem Buchstaben o auf weißem Hintergrund." srcset="//odiporo.de/cdn/shop/files/Odiporo.de_Logo_Pantone.jpg?v=1776089538&amp;width=260 260w, //odiporo.de/cdn/shop/files/Odiporo.de_Logo_Pantone.jpg?v=1776089538&amp;width=520 520w" width="2794" height="713" loading="eager" sizes="260px" style="max-height: 66.34931997136721px;max-width: 260px;" itemprop="logo" is="lazy-image" class="logo hidden md:block"><img src="//odiporo.de/cdn/shop/files/Odiporo.de_Logo_Pantone_abc754b7-3558-4575-a94b-e9706704929d.jpg?v=1776089582&amp;width=2794" alt="Logo mit dem Text odiporo.de in schwarzen Kleinbuchstaben; das o ist teilweise mit einem gelben kapselförmigen Hintergrund auf der linken Seite gefüllt." srcset="//odiporo.de/cdn/shop/files/Odiporo.de_Logo_Pantone_abc754b7-3558-4575-a94b-e9706704929d.jpg?v=1776089582&amp;width=160 160w, //odiporo.de/cdn/shop/files/Odiporo.de_Logo_Pantone_abc754b7-3558-4575-a94b-e9706704929d.jpg?v=1776089582&amp;width=320 320w" width="2794" height="713" loading="eager" sizes="160px" style="max-height: 40.83035075161059px;max-width: 160px;" itemprop="logo" is="lazy-image" class="logo md:hidden"><img src="//odiporo.de/cdn/shop/files/Odiporo.de_Logo_Pantone_invers.png?v=1776255252&amp;width=1000" alt="Das Bild zeigt den Text odiporo.de in einer modernen, hellen Schriftart mit einem gelben und weißen kapselförmigen Design, das den Buchstaben o am Anfang bildet." srcset="//odiporo.de/cdn/shop/files/Odiporo.de_Logo_Pantone_invers.png?v=1776255252&amp;width=260 260w, //odiporo.de/cdn/shop/files/Odiporo.de_Logo_Pantone_invers.png?v=1776255252&amp;width=520 520w" width="1000" height="255" loading="eager" sizes="260px" style="max-height: 66.3px;max-width: 260px;" itemprop="logo" is="lazy-image" class="white-logo hidden md:block absolute"><img src="//odiporo.de/cdn/shop/files/Odiporo.de_Logo_Pantone_invers.png?v=1776255252&amp;width=1000" alt="Das Bild zeigt den Text odiporo.de in einer modernen, hellen Schriftart mit einem gelben und weißen kapselförmigen Design, das den Buchstaben o am Anfang bildet." srcset="//odiporo.de/cdn/shop/files/Odiporo.de_Logo_Pantone_invers.png?v=1776255252&amp;width=160 160w, //odiporo.de/cdn/shop/files/Odiporo.de_Logo_Pantone_invers.png?v=1776255252&amp;width=320 320w" width="1000" height="255" loading="eager" sizes="160px" style="max-height: 40.800000000000004px;max-width: 160px;" itemprop="logo" is="lazy-image" class="white-logo md:hidden absolute"></a></div><div class="header__navigation hidden lg:flex lg:gap-5 lg:justify-start">
2352    <nav class="header__menu hidden lg:flex" role="navigation" aria-label="Primary"><ul class="flex flex-wrap gap-1 list-menu with-block"><li>
2353        <details is="details-mega" trigger="click" level="top" >
2354          <summary data-link="/collections/dyon-fernseher-smart-tv" class="z-2 relative rounded-full">
2355            <button type="button" class="menu__item text-sm-lg flex items-center font-medium z-2 relative cursor-pointer" is="api-magnet-button" data-id="HeaderNavMega-sections--24796503015803__header-1-start" data-section-id="sections--24796503015803__header" data-magnet
2355="0" tabindex="-1">
2356              <span class="btn-text" data-text>Fernseher<svg class="icon icon-chevron-menu icon-md" viewBox="0 0 10 7" stroke="currentColor" fill="none" xmlns="http://www.w3.org/2000/svg">
2357      <path stroke-linecap="round" stroke-linejoin="round" d="m1 1 4 4 4-4"></path>
2358    </svg></span><span class="btn-text btn-duplicate">Fernseher<svg class="icon icon-chevron-menu icon-md" viewBox="0 0 10 7" stroke="currentColor" fill="none" xmlns="http://www.w3.org/2000/svg">
2359      <path stroke-linecap="round" stroke-linejoin="round" d="m1 1 4 4 4-4"></path>
2360    </svg></span></button>
2361          </summary>
2362          <div class="mega-menu absolute top-0 left-0 w-full max-w-full overflow-hidden pointer-events-none"><div class="mega-menu__container invisible"><ul id="HeaderNavMega-sections--24796503015803__header-1-start" class="mega-menu__list page-width page-width--full flex flex-wrap w-full h-full overflow-hidden" role="list" tabindex="-1"><li class="mega-menu__item flex opacity-0 w-full aspect-square">
2363            <span class="media-card media-card--card w-full h-full"></span>
2364          </li><li class="mega-menu__item flex opacity-0 w-full aspect-square">
2365            <span class="media-card media-card--card w-full h-full"></span>
2366          </li><li class="mega-menu__item flex opacity-0 w-full aspect-square">
2367            <span class="media-card media-card--card w-full h-full"></span>
2368          </li><li class="mega-menu__item flex opacity-0 w-full aspect-square">
2369            <span class="media-card media-card--card w-full h-full"></span>
2370          </li><li class="mega-menu__item flex opacity-0 w-full aspect-square">
2371            <span class="media-card media-card--card w-full h-full"></span>
2372          </li></ul></div></div>
2373        </details>
2374      </li><li>
2375        <details is="details-mega" trigger="click" level="top" >
2376          <summary data-link="/collections/odys-monitore-gaming-office-curved-ultra-wide-alle" class="z-2 relative rounded-full">
2377            <button type="button" class="menu__item text-sm-lg flex items-center font-medium z-2 relative cursor-pointer" is="api-magnet-button" data-id="HeaderNavMega-sections--24796503015803__header-2-start" data-section-id="sections--24796503015803__header" data-magnet="0" tabindex="-1">
2378              <span class="btn-text" data-text>Monitore<svg class="icon icon-chevron-menu icon-md" viewBox="0 0 10 7" stroke="currentColor" fill="none" xmlns="http://www.w3.org/2000/svg">
2379      <path stroke-linecap="round" stroke-linejoin="round" d="m1 1 4 4 4-4"></path>
2380    </svg></span><span class="btn-text btn-duplicate">Monitore<svg class="icon icon-chevron-menu icon-md" viewBox="0 0 10 7" stroke="currentColor" fill="none" xmlns="http://www.w3.org/2000/svg">
2381      <path stroke-linecap="round" stroke-linejoin="round" d="m1 1 4 4 4-4"></path>
2382    </svg></span></button>
2383          </summary>
2384          <div class="mega-menu absolute top-0 left-0 w-full max-w-full overflow-hidden pointer-events-none"><div class="mega-menu__container invisible"><ul id="HeaderNavMega-sections--24796503015803__header-2-start" class="mega-menu__list page-width page-width--full flex flex-wrap w-full h-full overflow-hidden" role="list" tabindex="-1"><li class="mega-menu__item flex opacity-0 w-full aspect-square">
2385            <span class="media-card media-card--card w-full h-full"></span>
2386          </li><li class="mega-menu__item flex opacity-0 w-full aspect-square">
2387            <span class="media-card media-card--card w-full h-full"></span>
2388          </li><li class="mega-menu__item flex opacity-0 w-full aspect-square">
2389            <span class="media-card media-card--card w-full h-full"></span>
2390          </li><li class="mega-menu__item flex opacity-0 w-full aspect-square">
2391            <span class="media-card media-card--card w-full h-full"></span>
2392          </li><li class="mega-menu__item flex opacity-0 w-full aspect-square">
2393            <span class="media-card media-card--card w-full h-full"></span>
2394          </li></ul></div></div>
2395        </details>
2396      </li><li>
2397        <details is="details-mega" trigger="click" level="top" >
2398          <summary data-link="/collections/fitness" class="z-2 relative rounded-full">
2399            <button type="button" class="menu__item text-sm-lg flex items-center font-medium z-2 relative cursor-pointer" is="api-magnet-button" data-id="HeaderNavMega-sections--24796503015803__header-3-start" data-section-id="sections--24796503015803__header" data-magnet
2399="0" tabindex="-1">
2400              <span class="btn-text" data-text>Fitness<svg class="icon icon-chevron-menu icon-md" viewBox="0 0 10 7" stroke="currentColor" fill="none" xmlns="http://www.w3.org/2000/svg">
2401      <path stroke-linecap="round" stroke-linejoin="round" d="m1 1 4 4 4-4"></path>
2402    </svg></span><span class="btn-text btn-duplicate">Fitness<svg class="icon icon-chevron-menu icon-md" viewBox="0 0 10 7" stroke="currentColor" fill="none" xmlns="http://www.w3.org/2000/svg">
2403      <path stroke-linecap="round" stroke-linejoin="round" d="m1 1 4 4 4-4"></path>
2404    </svg></span></button>
2405          </summary>
2406          <div class="mega-menu absolute top-0 left-0 w-full max-w-full overflow-hidden pointer-events-none"><div class="mega-menu__container invisible"><ul id="HeaderNavMega-sections--24796503015803__header-3-start" class="mega-menu__list page-width page-width--full flex flex-wrap w-full h-full overflow-hidden" role="list" tabindex="-1"><li class="mega-menu__item flex opacity-0 w-full aspect-square">
2407            <span class="media-card media-card--card w-full h-full"></span>
2408          </li><li class="mega-menu__item flex opacity-0 w-full aspect-square">
2409            <span class="media-card media-card--card w-full h-full"></span>
2410          </li><li class="mega-menu__item flex opacity-0 w-full aspect-square">
2411            <span class="media-card media-card--card w-full h-full"></span>
2412          </li><li class="mega-menu__item flex opacity-0 w-full aspect-square">
2413            <span class="media-card media-card--card w-full h-full"></span>
2414          </li><li class="mega-menu__item flex opacity-0 w-full aspect-square">
2415            <span class="media-card media-card--card w-full h-full"></span>
2416          </li></ul></div></div>
2417        </details>
2418      </li><li>
2419        <details is="details-mega" trigger="click" level="top" >
2420          <summary data-link="/collections/e-scooter" class="z-2 relative rounded-full">
2421            <button type="button" class="menu__item text-sm-lg flex items-center font-medium z-2 relative cursor-pointer" is="api-magnet-button" data-id="HeaderNavMega-sections--24796503015803__header-4-start" data-section-id="sections--24796503015803__header" data-magnet="0" tabindex="-1">
2422              <span class="btn-text" data-text>E-Scooter<svg class="icon icon-chevron-menu icon-md" viewBox="0 0 10 7" stroke="currentColor" fill="none" xmlns="http://www.w3.org/2000/svg">
2423      <path stroke-linecap="round" stroke-linejoin="round" d="m1 1 4 4 4-4"></path>
2424    </svg></span><span class="btn-text btn-duplicate">E-Scooter<svg class="icon icon-chevron-menu icon-md" viewBox="0 0 10 7" stroke="currentColor" fill="none" xmlns="http://www.w3.org/2000/svg">
2425      <path stroke-linecap="round" stroke-linejoin="round" d="m1 1 4 4 4-4"></path>
2426    </svg></span></button>
2427          </summary>
2428          <div class="mega-menu absolute top-0 left-0 w-full max-w-full overflow-hidden pointer-events-none"><div class="mega-menu__container invisible"><ul id="HeaderNavMega-sections--24796503015803__header-4-start" class="mega-menu__list page-width page-width--full flex flex-wrap w-full h-full overflow-hidden" role="list" tabindex="-1"><li class="mega-menu__item flex opacity-0 w-full aspect-square">
2429            <span class="media-card media-card--card w-full h-full"></span>
2430          </li><li class="mega-menu__item flex opacity-0 w-full aspect-square">
2431            <span class="media-card media-card--card w-full h-full"></span>
2432          </li><li class="mega-menu__item flex opacity-0 w-full aspect-square">
2433            <span class="media-card media-card--card w-full h-full"></span>
2434          </li><li class="mega-menu__item flex opacity-0 w-full aspect-square">
2435            <span class="media-card media-card--card w-full h-full"></span>
2436          </li><li class="mega-menu__item flex opacity-0 w-full aspect-square">
2437            <span class="media-card media-card--card w-full h-full"></span>
2438          </li></ul></div></div>
2439        </details>
2440      </li><li>
2441        <details is="details-mega" trigger="click" level="top" >
2442          <summary data-link="/collections/saugroboter" class="z-2 relative rounded-full">
2443            <button type="button" class="menu__item text-sm-lg flex items-center font-medium z-2 relative cursor-pointer" is="api-magnet-button" data-id="HeaderNavMega-sections--24796503015803__header-5-start" data-section-id="sections--24796503015803__header" data-magnet
2443="0" tabindex="-1">
2444              <span class="btn-text" data-text>Reinigungsroboter<svg class="icon icon-chevron-menu icon-md" viewBox="0 0 10 7" stroke="currentColor" fill="none" xmlns="http://www.w3.org/2000/svg">
2445      <path stroke-linecap="round" stroke-linejoin="round" d="m1 1 4 4 4-4"></path>
2446    </svg></span><span class="btn-text btn-duplicate">Reinigungsroboter<svg class="icon icon-chevron-menu icon-md" viewBox="0 0 10 7" stroke="currentColor" fill="none" xmlns="http://www.w3.org/2000/svg">
2447      <path stroke-linecap="round" stroke-linejoin="round" d="m1 1 4 4 4-4"></path>
2448    </svg></span></button>
2449          </summary>
2450          <div class="mega-menu absolute top-0 left-0 w-full max-w-full overflow-hidden pointer-events-none"><div class="mega-menu__container invisible"><ul id="HeaderNavMega-sections--24796503015803__header-5-start" class="mega-menu__list page-width page-width--full flex flex-wrap w-full h-full overflow-hidden" role="list" tabindex="-1"><li class="mega-menu__item flex opacity-0 w-full aspect-square">
2451            <span class="media-card media-card--card w-full h-full"></span>
2452          </li><li class="mega-menu__item flex opacity-0 w-full aspect-square">
2453            <span class="media-card media-card--card w-full h-full"></span>
2454          </li><li class="mega-menu__item flex opacity-0 w-full aspect-square">
2455            <span class="media-card media-card--card w-full h-full"></span>
2456          </li><li class="mega-menu__item flex opacity-0 w-full aspect-square">
2457            <span class="media-card media-card--card w-full h-full"></span>
2458          </li><li class="mega-menu__item flex opacity-0 w-full aspect-square">
2459            <span class="media-card media-card--card w-full h-full"></span>
2460          </li></ul></div></div>
2461        </details>
2462      </li><li>
2463        <details is="details-mega" trigger="click" level="top" >
2464          <summary data-link="/collections/wohnen" class="z-2 relative rounded-full">
2465            <button type="button" class="menu__item text-sm-lg flex items-center font-medium z-2 relative cursor-pointer" is="api-magnet-button" data-id="HeaderNavMega-sections--24796503015803__header-6-start" data-section-id="sections--24796503015803__header" data-magnet="0" tabindex="-1">
2466              <span class="btn-text" data-text>Wohnen<svg class="icon icon-chevron-menu icon-md" viewBox="0 0 10 7" stroke="currentColor" fill="none" xmlns="http://www.w3.org/2000/svg">
2467      <path stroke-linecap="round" stroke-linejoin="round" d="m1 1 4 4 4-4"></path>
2468    </svg></span><span class="btn-text btn-duplicate">Wohnen<svg class="icon icon-chevron-menu icon-md" viewBox="0 0 10 7" stroke="currentColor" fill="none" xmlns="http://www.w3.org/2000/svg">
2469      <path stroke-linecap="round" stroke-linejoin="round" d="m1 1 4 4 4-4"></path>
2470    </svg></span></button>
2471          </summary>
2472          <div class="mega-menu absolute top-0 left-0 w-full max-w-full overflow-hidden pointer-events-none"><div class="mega-menu__container invisible"><ul id="HeaderNavMega-sections--24796503015803__header-6-start" class="mega-menu__list page-width page-width--full flex flex-wrap w-full h-full overflow-hidden" role="list" tabindex="-1"><li class="mega-menu__item flex opacity-0 w-full aspect-square">
2473            <span class="media-card media-card--card w-full h-full"></span>
2474          </li><li class="mega-menu__item flex opacity-0 w-full aspect-square">
2475            <span class="media-card media-card--card w-full h-full"></span>
2476          </li><li class="mega-menu__item flex opacity-0 w-full aspect-square">
2477            <span class="media-card media-card--card w-full h-full"></span>
2478          </li><li class="mega-menu__item flex opacity-0 w-full aspect-square">
2479            <span class="media-card media-card--card w-full h-full"></span>
2480          </li><li class="mega-menu__item flex opacity-0 w-full aspect-square">
2481            <span class="media-card media-card--card w-full h-full"></span>
2482          </li></ul></div></div>
2483        </details>
2484      </li><li>
2485        <a href="/pages/b2b-geschaftskundenanfragen" class="menu__item text-sm-lg flex items-center font-medium z-2 relative cursor-pointer" is="magnet-link" data-magnet
2485="0">
2486          <span class="btn-text" data-text>Geschäftskunden</span><span class="btn-text btn-duplicate">Geschäftskunden</span></a>
2487      </li><li>
2488        <a href="/pages/coming-soon" class="menu__item text-sm-lg flex items-center font-medium z-2 relative cursor-pointer" is="magnet-link" data-magnet="0">
2489          <span class="btn-text" data-text>Angebote</span><span class="btn-text btn-duplicate">Angebote</span></a>
2490      </li><li>
2491        <a href="/blogs/ratgeber_kaufberatung_wissen" class="menu__item text-sm-lg flex items-center font-medium z-2 relative cursor-pointer" is="magnet-link" data-magnet="0">
2492          <span class="btn-text" data-text>Ratgeber</span><span class="btn-text btn-duplicate">Ratgeber</span></a>
2493      </li></ul>
2494</nav>
2495  </div><div class="header__icons header__icons--end flex justify-end z-2">
2496  <div class="header__buttons flex items-center gap-1d5"><a href="/search" class="search-drawer-button flex items-center justify-center" is="magnet-link" aria-controls="SearchDrawer" aria-expanded="false" >
2497        <span class="sr-only">Suche</span><svg class="icon icon-search icon-lg" viewBox="0 0 24 24" stroke="currentColor" fill="none" xmlns="http://www.w3.org/2000/svg">
2498      <path stroke-linecap="round" d="m21 21-3.636-3.636m0 0A9 9 0 1 0 4.636 4.636a9 9 0 0 0 12.728 12.728Z"></path>
2499    </svg></a><a href="https://odiporo.de/customer_authentication/redirect?locale=de&region_country=DE" class="hidden lg:flex items-center justify-center" is="magnet-link" rel="nofollow">
2500        <span class="sr-only">Login</span><svg class="icon icon-account icon-lg" viewBox="0 0 24 24" stroke="currentColor" fill="none" xmlns="http://www.w3.org/2000/svg">
2501      <rect width="10.5" height="10.5" x="6.75" y="1.75" rx="5.25"></rect>
2502      <path stroke-linecap="round" d="M12 15.5c1.5 0 4 .333 4.5.5.5.167 3.7.8 4.5 2 1 1.5 1 2 1 4m-10-6.5c-1.5 0-4 .333-4.5.5-.5.167-3.7.8-4.5 2-1 1.5-1 2-1 4"></path>
2503    </svg></a><a href="/cart" class="cart-drawer-button flex items-center justify-center relative" is="magnet-link" aria-controls="CartDrawer" aria-expanded="false" data-no-instant>
2504        <span class="sr-only">Warenkorb</span><svg class="icon icon-cart icon-lg" viewBox="0 0 24 24" stroke="currentColor" fill="none" xmlns="http://www.w3.org/2000/svg">
2505          <path stroke-linecap="round" stroke-linejoin="round" d="M1 1h.5v0c.226 0 .339 0 .44.007a3 3 0 0 1 2.62 1.976c.034.095.065.204.127.42l.17.597m0 0 1.817 6.358c.475 1.664.713 2.496 1.198 3.114a4 4 0 0 0 1.633 1.231c.727.297 1.592.297 3.322.297h2.285c1.75 0 2.626 0 3.359-.302a4 4 0 0 0 1.64-1.253c.484-.627.715-1.472 1.175-3.161l.06-.221c.563-2.061.844-3.092.605-3.906a3 3 0 0 0-1.308-1.713C19.92 4 18.853 4 16.716 4H4.857ZM12 20a2 2 0 1 1-4 0 2 2 0 0 1 4 0Zm8 0a2 2 0 1 1-4 0 2 2 0 0 1 4 0Z"></path>
2506        </svg><cart-count class="count absolute top-0 right-0 text-xs" aria-label="0 Artikel" hidden>0</cart-count>
2507      </a><button class="menu-drawer-button flex items-center justify-center" type="button" is="magnet-button" aria-controls="MenuDrawer" aria-expanded="false">
2508        <span class="sr-only">Seitennavigation</span><svg class="icon icon-hamburger icon-lg" viewBox="0 0 24 24" stroke="currentColor" fill="none" xmlns="http://www.w3.org/2000/svg">
2509      <path stroke-linecap="round" d="M3 6H21M3 12H11M3 18H16"></path>
2510    </svg></button></div>
2511</div>
2512<span class="header__corner corner left bottom flex absolute pointer-events-none">
2513  <svg class="w-full h-auto" viewBox="0 0 101 101" stroke="none" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
2514    <path fill-rule="evenodd" clip-rule="evenodd" d="M101 0H0V101H1C1 45.7715 45.7715 1 101 1V0Z"></path>
2515    <path d="M1 101C1 45.7715 45.7715 1 101 1" fill="none"></path>
2516  </svg>
2517</span>
2518<span class="header__corner corner right bottom flex absolute pointer-events-none">
2519  <svg class="w-full h-auto" viewBox="0 0 101 101" stroke="none" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
2520    <path fill-rule="evenodd" clip-rule="evenodd" d="M101 0H0V101H1C1 45.7715 45.7715 1 101 1V0Z"></path>
2521    <path d="M1 101C1 45.7715 45.7715 1 101 1" fill="none"></path>
2522  </svg>
2523</span><span class="header__cutout cutout opacity-0 absolute left-0 top-100 w-full pointer-events-none"></span></header><overlay-element class="overlay opacity-0 z-1 fixed left-0 w-full pointer-events-none"></overlay-element>
2523<script>
2524  if (Shopify.designMode) {
2525    document.documentElement.style.setProperty('--header-height', Math.round(document.getElementById('shopify-section-sections--24796503015803__header').clientHeight) + 'px');
2526  }
2527</script>
2527
2528
2529
2530</div>
2531<!-- END sections: header-group --><!-- BEGIN sections: overlay-group -->
2532<div id="shopify-section-sections--24796502983035__cart-drawer" class="shopify-section shopify-section-group-overlay-group">
2532<script src="//odiporo.de/cdn/shop/t/3/assets/cart.js?v=15891569860397040191744817341" defer></script>
2532<cart-drawer id="CartDrawer" class="cart-drawer drawer drawer--end z-35 fixed bottom-0 left-0 h-full w-full pointer-events-none"
2533    role="dialog"
2534    aria-modal="true"
2535    aria-label="Warenkorb"
2536    data-section-id="sections--24796502983035__cart-drawer"
2537    shopify-design-mode
2538    hidden
2539  >
2540    <overlay-element class="overlay fixed-modal invisible opacity-0 fixed bottom-0 left-0 w-full h-screen pointer-events-none" aria-controls="CartDrawer" aria-expanded="false"></overlay-element>
2541    <div class="drawer__inner z-10 absolute top-0 flex flex-col w-full h-full overflow-hidden">
2542      <gesture-element class="drawer__header flex justify-between opacity-0 invisible relative">
2543        <ul class="drawer__tabs flex gap-10" is="tab-list">
2544          <li>
2545            <button class="drawer__tab relative" type="button" aria-controls="MiniCart-sections--24796502983035__cart-drawer" aria-expanded="true">
2546              <span class="drawer__title heading lg:text-3xl text-2xl leading-none tracking-tight">Warenkorb</span>
2547              <cart-count class="count absolute font-medium text-xs lg:text-sm leading-none" aria-label="0 Artikel" hidden>0</cart-count>
2548            </button>
2549          </li></ul>
2550        <button class="button button--secondary button--close drawer__close hidden sm:flex items-center justify-center" type="button" is="hover-button" aria-controls="CartDrawer" aria-expanded="false" aria-label="Schließen">
2551          <span class="btn-fill" data-fill></span>
2552          <span class="btn-text"><svg class="icon icon-close icon-sm" viewBox="0 0 20 20" stroke="currentColor" fill="none" xmlns="http://www.w3.org/2000/svg">
2553      <path stroke-linecap="round" stroke-linejoin="round" d="M5 15L15 5M5 5L15 15"></path>
2554    </svg></span>
2555        </button>
2556      </gesture-element>
2557
2558      <div class="drawer__content opacity-0 invisible flex flex-col h-full grow shrink">
2559        <div id="MiniCart-sections--24796502983035__cart-drawer" class="drawer__panel opacity-0 flex flex-col overflow-hidden" open>
2560          <span class="sr-only">Warenkorb</span>
2561          <div class="flex flex-col h-full"><div class="drawer__scrollable relative flex justify-center items-start grow shrink text-center">
2562                <div class="drawer__empty grid gap-5 md:gap-8">
2563                  <h2 class="drawer__empty-text heading leading-none tracking-tight">Dein Warenkorb ist leer.</h2>
2564                  <div class="drawer__empty-message text-sm md:text-base leading-tight rte"><p><strong>odiporo.de: Ihr E-Commerce-Spezialist aus der Region Düsseldorf.</strong></p><p><br/>Wir bringen die neuesten Smart-TVs, Monitor- und Fitness-Trends direkt zu Ihnen nach Hause. </p><p>Starten Sie jetzt und lassen Sie sich von unseren Kollektionen inspirieren:<br/><br/><br/><br/></p></div>
2565                  <ul class="drawer__empty-collections grid gap-3"><li>
2566                          <a class="flex items-center justify-between" href="/collections/dyon-fernseher-smart-tv">
2567                            <span class="flex items-center gap-3">Alle Fernseher</span><svg class="icon icon-arrow-right icon-sm transform" viewBox="0 0 21 20" stroke="currentColor" fill="none" xmlns="http://www.w3.org/2000/svg">
2568      <path stroke-linecap="round" stroke-linejoin="round" d="M3 10H18M18 10L12.1667 4.16675M18 10L12.1667 15.8334"></path>
2569    </svg></a>
2570                        </li><li>
2571                          <a class="flex items-center justify-between" href="/collections/odys-monitore-gaming-office-curved-ultra-wide-alle">
2572                            <span class="flex items-center gap-3">Monitore</span><svg class="icon icon-arrow-right icon-sm transform" viewBox="0 0 21 20" stroke="currentColor" fill="none" xmlns="http://www.w3.org/2000/svg">
2573      <path stroke-linecap="round" stroke-linejoin="round" d="M3 10H18M18 10L12.1667 4.16675M18 10L12.1667 15.8334"></path>
2574    </svg></a>
2575                        </li><li>
2576                          <a class="flex items-center justify-between" href="/collections/fitness">
2577                            <span class="flex items-center gap-3">Fitness</span><svg class="icon icon-arrow-right icon-sm transform" viewBox="0 0 21 20" stroke="currentColor" fill="none" xmlns="http://www.w3.org/2000/svg">
2578      <path stroke-linecap="round" stroke-linejoin="round" d="M3 10H18M18 10L12.1667 4.16675M18 10L12.1667 15.8334"></path>
2579    </svg></a>
2580                        </li><li>
2581                          <a class="flex items-center justify-between" href="/collections/e-scooter">
2582                            <span class="flex items-center gap-3">E-Scooter</span><svg class="icon icon-arrow-right icon-sm transform" viewBox="0 0 21 20" stroke="currentColor" fill="none" xmlns="http://www.w3.org/2000/svg">
2583      <path stroke-linecap="round" stroke-linejoin="round" d="M3 10H18M18 10L12.1667 4.16675M18 10L12.1667 15.8334"></path>
2584    </svg></a>
2585                        </li><li>
2586                          <a class="flex items-center justify-between" href="/collections/wohnen">
2587                            <span class="flex items-center gap-3">Wohnen</span><svg class="icon icon-arrow-right icon-sm transform" viewBox="0 0 21 20" stroke="currentColor" fill="none" xmlns="http://www.w3.org/2000/svg">
2588      <path stroke-linecap="round" stroke-linejoin="round" d="M3 10H18M18 10L12.1667 4.16675M18 10L12.1667 15.8334"></path>
2589    </svg></a>
2590                        </li></ul>
2591                </div>
2592              </div><div class="drawer__scrollable relative flex flex-col gap-9 grow shrink hidden"><cart-items class="block grow" data-section-id="sections--24796502983035__cart-drawer">
2593                <ul class="horizontal-products grid" role="list"></ul>
2594              </cart-items></div>
2595            <div class="drawer__footer grid w-full hidden"><div class="drawer__footer-top flex"><button type="button" class="flex gap-2d5 grow items-center justify-center" aria-controls="CartNote-sections--24796502983035__cart-drawer" aria-expanded="false"><svg class="icon icon-note icon-lg icon-light shrink-0" viewBox="0 0 25 24" stroke="currentColor" fill="none" xmlns="http://www.w3.org/2000/svg">
2596      <path class="fill" d="M12.9 2H12.1C8.73969 2 7.05953 2 5.77606 2.65396C4.64708 3.2292 3.7292 4.14708 3.15396 5.27606C2.5 6.55953 2.5 8.23969 2.5 11.6V12.4C2.5 15.7603 2.5 17.4405 3.15396 18.7239C3.7292 19.8529 4.64708 20.7708 5.77606 21.346C7.05953 22 8.73969 22 12.1 22H13.5C14.4319 22 14.8978 22 15.2654 21.8478C15.7554 21.6448 16.1448 21.2554 16.3478 20.7654C16.5 20.3978 16.5 19.9319 16.5 19C16.5 18.0681 16.5 17.6021 16.6522 17.2346C16.8552 16.7445 17.2446 16.3552 17.7346 16.1522C18.1022 16 18.5681 16 19.5 16C20.4319 16 20.8978 16 21.2654 15.8477C21.7554 15.6447 22.1448 15.2554 22.3478 14.7653C22.5 14.3978 22.5 13.9319 22.5 13V11.6C22.5 8.23969 22.5 6.55953 21.846 5.27606C21.2708 4.14708 20.3529 3.2292 19.2239 2.65396C17.9405 2 16.2603 2 12.9 2Z"></path>
2597      <path stroke-linecap="round" stroke-linejoin="round" d="M16.5 21.5V19.2C16.5 18.0799 16.5 17.5198 16.718 17.092C16.9097 16.7157 17.2157 16.4097 17.592 16.218C18.0198 16 18.5799 16 19.7 16H22M7.5 7H15.5M7.5 11H13.5M7.5 15H9.5M15.6716 22H12.1C8.73969 22 7.05953 22 5.77606 21.346C4.64708 20.7708 3.7292 19.8529 3.15396 18.7239C2.5 17.4405 2.5 15.7603 2.5 12.4V11.6C2.5 8.23969 2.5 6.55953 3.15396 5.27606C3.7292 4.14708 4.64708 3.2292 5.77606 2.65396C7.05953 2 8.73969 2 12.1 2H12.9C16.2603 2 17.9405 2 19.2239 2.65396C20.3529 3.2292 21.2708 4.14708 21.846 5.27606C22.5 6.55953 22.5 8.23969 22.5 11.6V15.1716C22.5 15.5088 22.5 15.6774 22.4912 15.8399C22.4171 17.2049 21.8791 18.5036 20.9663 19.5212C20.8577 19.6423 20.7385 19.7615 20.5 20V20C20.2615 20.2385 20.1423 20.3577 20.0212 20.4663C19.0036 21.3791 17.7049 21.9171 16.3399 21.9912C16.1774 22 16.0088 22 15.6716 22Z"></path>
2598    </svg><span class="reversed-link text-sm leading-tight">Notiz</span>
2599                    </button><modal-element id="CartNote-sections--24796502983035__cart-drawer" class="modal invisible absolute bottom-0 left-0 w-full h-full" role="dialog" hidden>
2600                      <overlay-element class="fixed-modal opacity-0 z-1 absolute top-0 left-0 w-full h-full" aria-controls="CartNote-sections--24796502983035__cart-drawer" aria-expanded="false"></overlay-element>
2601                      <div class="modal__container flex flex-col z-3 absolute left-0 bottom-0 w-full">
2602                        <div class="modal__header flex items-center justify-between relative">
2603                          <span class="font-medium text-sm md:text-base">Sonderanweisung bestellen</span>
2604                          <button type="button" class="close flex items-center justify-center absolute top-0 right-0" is="magnet-button" aria-controls="CartNote-sections--24796502983035__cart-drawer" aria-expanded="false" aria-label="Schließen">
2604<svg class="icon icon-close icon-md" viewBox="0 0 20 20" stroke="currentColor" fill="none" xmlns="http://www.w3.org/2000/svg">
2605      <path stroke-linecap="round" stroke-linejoin="round" d="M5 15L15 5M5 5L15 15"></path>
2606    </svg></button>
2607                        </div>
2608                        <div class="modal__content flex flex-col overflow-hidden">
2609                          <cart-note class="modal__scrollable grid gap-4">
2610                            <div class="field">
2611                              <textarea name="note" class="textarea is-floating" rows="3" placeholder=" " id="CartNoteForm-sections--24796502983035__cart-drawer"></textarea>
2612                              <label class="label is-floating" for="CartNoteForm-sections--24796502983035__cart-drawer">Notiz</label>
2613                            </div>
2614                            <div class="justify-self-start">
2615                              <button class="button button--primary" type="button" is="hover-button" aria-controls="CartNote-sections--24796502983035__cart-drawer" aria-expanded="false">
2616                                <span class="btn-fill" data-fill></span>
2617                                <span class="btn-text">Anwenden</span>
2618                              </button>
2619                            </div>
2620                          </cart-note>
2621                        </div>
2622                      </div>
2623                    </modal-element></div><div class="drawer__footer-bottom grid gap-6">
2624                <div class="grid gap-4 sm:grid-6"><div class="grid grid-cols-2 gap-4">
2625                    <div class="tax-note text-sm sm:text-base rte">Preis inkl. Steuern und <a href="/policies/shipping-policy">kostenlosem Versand</a></div>
2626                    <div class="totals grid place-self-end gap-1">
2627                      <span class="totals__subtotal text-sm sm:text-base">Zwischensumme</span>
2628                      <div class="totals__subtotal-value text-lg-2xl font-bold leading-none tracking-tight">€0,00 EUR</div>
2629                    </div>
2630                  </div>
2631                </div><form action="/cart" method="POST" novalidate class="drawer__footer-buttons grid grid-cols-12 gap-4"><button class="button button--primary icon-with-text col-span-6 md:col-span-7" type="submit" name="checkout" is="hover-button">
2632                        <span class="btn-fill" data-fill></span>
2633                        <span class="btn-text"><svg class="icon icon-lock icon-sm hidden sm:block" viewBox="0 0 20 20" stroke="currentColor" fill="none" xmlns="http://www.w3.org/2000/svg">
2634      <path stroke-linecap="round" d="M5.83333 6.66675V5.83341C5.83333 4.74781 5.83333 4.205 5.97218 3.76463C6.26651 2.83114 6.99772 2.09993 7.93122 1.8056C8.37159 1.66675 8.91439 1.66675 10 1.66675V1.66675C11.0856 1.66675 11.6284 1.66675 12.0688 1.8056C13.0023 2.09993 13.7335 2.83114 14.0278 3.76463C14.1667 4.205 14.1667 4.74781 14.1667 5.83341V6.66675M10 11.6667V13.3334M8.33333 18.3334H11.6667C13.3741 18.3334 14.2278 18.3334 14.909 18.077C15.9871 17.6713 16.8379 16.8205 17.2436 15.7424C17.5 15.0612 17.5 14.2075 17.5 12.5001V12.5001C17.5 10.7926 17.5 9.93892 17.2436 9.25775C16.8379 8.17969 15.9871 7.32888 14.909 6.92312C14.2278 6.66675 13.3741 6.66675 11.6667 6.66675H8.33333C6.62589 6.66675 5.77218 6.66675 5.091 6.92312C4.01294 7.32888 3.16213 8.17969 2.75638 9.25775C2.5 9.93892 2.5 10.7926 2.5 12.5001V12.5001C2.5 14.2075 2.5 15.0612 2.75638 15.7424C3.16213 16.8205 4.01294 17.6713 5.091 18.077C5.77218 18.3334 6.62589 18.3334 8.33333 18.3334Z"></path>
2635    </svg>Auschecken</span>
2636                      </button><a href="/cart" class="button button--secondary col-span-6 md:col-span-5" is="hover-link" data-no-instant>
2637                        <span class="btn-fill" data-fill></span>
2638                        <span class="btn-text">Warenkorb ansehen</span>
2639                      </a></form></div>
2640            </div>
2641          </div>
2642        </div></div>
2643    </div>
2644  </cart-drawer>
2645<style> #shopify-section-sections--24796502983035__cart-drawer .drawer__title.heading {font-size: 1.55rem;} </style></div><div id="shopify-section-sections--24796502983035__search-drawer" class="shopify-section shopify-section-group-overlay-group"><search-drawer id="SearchDrawer" class="search-drawer drawer drawer--end z-35 fixed bottom-0 left-0 h-full w-full pointer-events-none"
2646    role="dialog"
2647    aria-modal="true"
2648    aria-label="Suche"
2649    shopify-design-mode
2650    hidden
2651  >
2652    <overlay-element class="overlay fixed-modal invisible opacity-0 fixed bottom-0 left-0 w-full h-screen pointer-events-none" aria-controls="SearchDrawer" aria-expanded="false"></overlay-element>
2653    <div class="drawer__inner z-10 absolute top-0 flex flex-col w-full h-full overflow-hidden">
2654      <gesture-element class="drawer__header flex justify-between opacity-0 invisible relative">
2655        <span class="drawer__title heading lg:text-3xl text-2xl leading-none tracking-tight">Suche</span>
2656        <button class="button button--secondary button--close drawer__close hidden sm:flex items-center justify-center" type="button" is="hover-button" aria-controls="SearchDrawer" aria-expanded="false" aria-label="Schließen">
2657          <span class="btn-fill" data-fill></span>
2658          <span class="btn-text"><svg class="icon icon-close icon-sm" viewBox="0 0 20 20" stroke="currentColor" fill="none" xmlns="http://www.w3.org/2000/svg">
2659      <path stroke-linecap="round" stroke-linejoin="round" d="M5 15L15 5M5 5L15 15"></path>
2660    </svg></span>
2661        </button>
2662      </gesture-element>
2663      <div class="drawer__content opacity-0 invisible flex flex-col h-full grow shrink">
2664        <div class="drawer__scrollable relative flex flex-col grow shrink"><form class="search__form flex flex-col gap-8 h-full relative" action="/search" method="GET" role="search">
2665  <input type="hidden" name="options[prefix]" value="last" />
2666  <label class="sr-only" for="SearchFormInput-sections--24796502983035__search-drawer">Suche</label>
2667  <div class="search__field field flex items-center gap-4 relative"><input
2668      class="input"
2669      type="search"
2670      name="q"
2671      id="SearchFormInput-sections--24796502983035__search-drawer"
2672      placeholder="Durchsuchen Sie unseren Shop"
2673      autocomplete="off"
2674      autocorrect="off"
2675      autocapitalize="off"
2676      spellcheck="off"/></div></form>
2677</div>
2678      </div>
2679    </div>
2680  </search-drawer>
2681</div>
2682<!-- END sections: overlay-group --><div class="page-container" id="PageContainer">
2683    <main class="main-content relative" id="MainContent" role="main">
2684      <div id="shopify-section-template--24796501934459__main" class="shopify-section collection-section search-section"><style>
2685  #shopify-section-template--24796501934459__main {
2686    --section-padding-top: 40px;
2687    --section-padding-bottom: 100px;
2688  }
2689</style>
2690
2691<link href="//odiporo.de/cdn/shop/t/3/assets/blog.css?v=75377069634824137381744817342" rel="stylesheet" type="text/css" media="all" />
2692<link href="//odiporo.de/cdn/shop/t/3/assets/search.css?v=156872746984004058391744817341" rel="stylesheet" type="text/css" media="all" />
2693<script src="//odiporo.de/cdn/shop/t/3/assets/collection.js?v=129805740315324966031744817342" defer></script>
vendor: 1 bytes, line 2693
2693
2694<script src="//odiporo.de/cdn/shop/t/3/assets/search.js?v=153964456974568625491744817342" defer></script>
2694<div class="section section--padding section--rounded relative">
2695  <div class="collection page-width relative with-drawer">
2696    <div class="title-wrapper text-center leading-none grid gap-8">
2697      <h1 class="heading title-xl tracking-heading" tabindex="-1">
2698        <split-words class="split-words block" data-animate="fade-up-large">Suche</split-words>
2699      </h1><form class="search__form flex flex-col gap-8 h-full relative" action="/search" method="GET" role="search">
2700  <input type="hidden" name="options[prefix]" value="last" />
2701  <label class="sr-only" for="SearchFormInput-template--24796501934459__main">Suche</label>
2702  <div class="search__field field flex items-center gap-4 relative"><input
2703      class="input"
2704      type="search"
2705      name="q"
2706      id="SearchFormInput-template--24796501934459__main"
2707      placeholder="Durchsuchen Sie unseren Shop"
2708      autocomplete="off"
2709      autocorrect="off"
2710      autocapitalize="off"
2711      spellcheck="off"
2712        value=""
2713      /></div></form>
2714</div><div class="active-facets flex flex-wrap items-center gap-2 z-1 relative" id="FacetFiltersActive"></div>
2715<div class="collection__content flex"><div class="flex flex-col gap-12 grow" id="ProductGridContainer"></div>
2716      </div></div>
2717</div>
2718
2719
2720</div>
2721    </main>
2722
2723    <footer-group class="footer-group block w-full"><!-- BEGIN sections: footer-group -->
2724<div id="shopify-section-sections--24796503048571__footer" class="shopify-section shopify-section-group-footer-group"><style>
2725  #shopify-section-sections--24796503048571__footer {
2726    --section-padding-top: 12px;
2727    --section-padding-bottom: 48px;--color-background: 31 31 31;--color-foreground: 255 255 255;
2728  --color-border: var(--color-foreground)/ 0.1;
2729  --color-border-dark: var(--color-foreground)/ 0.4;
2730  --color-border-light: var(--color-foreground)/ 0.06;--color-button-background: 255 255 255;
2731  --color-button-border: 255 255 255;--color-button-text: 0 0 0;}
2732</style><div class="section section--padding section--rounded" is="footer-parallax">
2733  <footer class="footer footer--inverted page-width page-width--full relative grid"><div class="footer__left flex flex-col md:flex-row gap-10"><div class="footer__accordions flex flex-wrap flex-col md:flex-row md:grow md:gap-12">
2734            
2735                <details class="footer__item--link_list-2 details active" is="footer-details" data-opened >
2736      <summary class="details__summary flex items-center justify-between gap-2 cursor-pointer">
2737        <span class="heading text-base-2xl font-medium lg:font-heading">Support</span><svg class="icon icon-chevron-up icon-md" viewBox="0 0 24 24" stroke="currentColor" fill="none" xmlns="http://www.w3.org/2000/svg">
2738      <path stroke-linecap="round" stroke-linejoin="round" d="M6 15L12 9L18 15"></path>
2739    </svg></summary><div class="details__content">
2740      <ul class="flex flex-col gap-3"><li class="inline-flex">
2741            <a href="/pages/uber-uns" class="block reversed-link text-sm-lg leading-tight">Über uns</a>
2742          </li><li class="inline-flex">
2743            <a href="/pages/b2b-geschaftskundenanfragen" class="block reversed-link text-sm-lg leading-tight">Geschäftskunden</a>
2744          </li><li class="inline-flex">
2745            <a href="/blogs/ratgeber_kaufberatung_wissen" class="block reversed-link text-sm-lg leading-tight">Ratgeber</a>
2746          </li><li class="inline-flex">
2747            <a href="/pages/kontakt" class="block reversed-link text-sm-lg leading-tight">Hilfe & Kontakt</a>
2748          </li><li class="inline-flex">
2749            <a href="/pages/warum-wir-dir-30-tage-ruckgaberecht-schenken" class="block reversed-link text-sm-lg leading-tight">30 Tage kostenlose Rückgabe</a>
2750          </li><li class="inline-flex">
2751            <a href="/pages/kostenlose-lieferung" class="block reversed-link text-sm-lg leading-tight">Kostenlose Lieferung</a>
2752          </li><li class="inline-flex">
2753            <a href="/pages/zahlungsarten" class="block reversed-link text-sm-lg leading-tight">Sichere & flexible Zahlung</a>
2754          </li><li class="inline-flex">
2755            <a href="/pages/erklarung-zur-barrierefreiheit" class="block reversed-link text-sm-lg leading-tight">Barrierefreiheit</a>
2756          </li><li class="inline-flex">
2757            <a href="/apps/widerruf" class="block reversed-link text-sm-lg leading-tight">Vertrag widerrufen</a>
2758          </li></ul>
2759    </div>
2760    <style>
2761      @media (min-width: 1280px) {
2762        .footer__item--link_list-2 { width: calc(50% - var(--sp-12)); }
2763      }
2764    </style></details>
2765
2766              
2767          
2768            
2769                <div class="footer__custom-badge text-center" style="margin-top:30px;">
2770                  
2771                    <h2 class="h4" style="margin-bottom:10px;">Unsere Partner</h2>
2772                  
2773                  <a href="https://www.idealo.de/preisvergleich/Shop/324690.html#i" target="_blank"><img src="https://img.idealo.com/badges/324690/97223127-5589-4caf-8eb8-8e999df136ce" alt="unsere idealo.de Be
2773wertungen" style="max-width:200px;height:auto;"></a> <br>   <a href="https://www.adcell.de/partnerprogramme/11079" target="_blank">
2774        <img style="border: 1px solid #aaa; border-radius: 5px;" src="https://storage.googleapis.com/adcell_documents/media_library/f7/11/26315627bafba5057f_6.png" title="Klicken Sie hier, um zum Affiliate-Programm von Odiporo bei ADCELL zu gelangen." alt="Affiliate Netzwerk ADCELL">
2775    </a>
2776                </div>
2777            
2778          
2779        </div>
2780      </div><div class="footer__right grid gap-10"><div class="footer__newsletter grid gap-6"><p class="footer__logo leading-none">
2781                <a href="/">
2782                  <span class="sr-only">odiporo.de - Smarte Elektronik für jeden Anspruch</span><img src="//odiporo.de/cdn/shop/files/Odiporo.de_Logo_Pantone_invers.png?v=1776255252&amp;width=1000" alt="Das Bild zeigt den Text odiporo.de in einer modernen, hellen Schriftart mit einem gelben und weißen kapselförmigen Design, das den Buchstaben o am Anfang bildet." srcset="//odiporo.de/cdn/shop/files/Odiporo.de_Logo_Pantone_invers.png?v=1776255252&amp;width=274 274w, //odiporo.de/cdn/shop/files/Odiporo.de_Logo_Pantone_invers.png?v=1776255252&amp;width=549 549w" width="1000" height="255" loading="eager" sizes="274.5098039215686px" style="--image-width: 274.5098039215686px; --image-height: 70px;" is="lazy-image"></a>
2783              </p><p class="h3 text-xl md:title-sm leading-none tracking-none font-medium lg:font-heading">Melden Sie sich für unseren odiporo.de Newsletter an und sichern Sie sich exklusive Angebote.</p><form method="post" action="/contact#newsletter-sections--24796503048571__footer" id="newsletter-sections--24796503048571__footer" accept-charset="UTF-8" class="newsletter-form grid gap-5"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="✓" /><input type="hidden" name="contact[tags]" value="newsletter" />
2784  <input type="hidden" name="contact[context]" value="footer" />
2785  <div class="field relative">
2786    <input
2787      id="NewsletterForm--sections--24796503048571__footer"
2788      class="input is-floating input--fill"
2789      type="email"
2790      name="contact[email]"
2791      value=""
2792      autocorrect="off"
2793      autocapitalize="off"
2794      autocomplete="email"
2795      placeholder="Deine Mailadresse"
2796      required/>
2797    <label class="label is-floating" for="NewsletterForm--sections--24796503048571__footer">Deine Mailadresse</label>
2798    <div class="self-submit-button absolute">
2799      <button type="submit" class="button button--primary self-button flex justify-center items-center" is="magnet-button" data-magnet="20" aria-label="Abonnieren">
2800        <span class="btn-text">
2801          <svg class="icon icon-arrow-right icon-xs transform" viewBox="0 0 16 16" stroke="currentColor" fill="none" xmlns="http://www.w3.org/2000/svg">
2802            <path stroke-linecap="round" stroke-linejoin="round" d="M2 8.00012H14M14 8.00012L9.33333 3.3335M14 8.00012L9.33333 12.6668"></path>
2803          </svg>
2804        </span>
2805      </button>
2806    </div>
2807  </div></form></div><div class="footer__socials flex justify-start md:justify-end xl:justify-start"><ul class="flex flex-wrap items-center gap-7"><li><a href="https://www.facebook.com/Odiporo" class="social_platform block relative" is="magnet-link" title="odiporo.de - Smarte Elektronik für jeden Anspruch auf Facebook"><svg class="icon icon-facebook icon-lg" viewBox="0 0 24 24" stroke="none" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
2808      <path d="M9.03153 23L9 13H5V9H9V6.5C9 2.7886 11.2983 1 14.6091 1C16.1951 1 17.5581 1.11807 17.9553 1.17085V5.04948L15.6591 5.05052C13.8584 5.05052 13.5098 5.90614 13.5098 7.16171V9H18.75L16.75 13H13.5098V23H9.03153Z"/>
2809    </svg><span class="sr-only">Facebook</span>
2810        </a>
2811      </li><li><a href="https://www.instagram.com/odiporo.de/" class="social_platform block relative" is="magnet-link" title="odiporo.de - Smarte Elektronik für jeden Anspruch auf Instagram"><svg class="icon icon-instagram icon-lg" viewBox="0 0 24 24" stroke="none" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
2812      <path d="M12 2.98C14.94 2.98 15.28 2.99 16.44 3.04C17.14 3.04 17.83 3.18 18.48 3.42C18.96 3.6 19.39 3.88 19.75 4.24C20.12 4.59 20.4 5.03 20.57 5.51C20.81 6.16 20.94 6.85 20.95 7.55C21 8.71 21.01 9.06 21.01 12C21.01 14.94 21 15.28 20.95 16.44C20.95 17.14 20.81 17.83 20.57 18.48C20.39 18.95 20.11 19.39 19.75 19.75C19.39 20.11 18.96 20.39 18.48 20.57C17.83 20.81 17.14 20.94 16.44 20.95C15.28 21 14.93 21.01 12 21.01C9.07 21.01 8.72 21 7.55 20.95C6.85 20.95 6.16 20.81 5.51 20.57C5.03 20.39 4.6 20.11 4.24 19.75C3.87 19.4 3.59 18.96 3.42 18.48C3.18 17.83 3.05 17.14 3.04 16.44C2.99 15.28 2.98 14.93 2.98 12C2.98 9.07 2.99 8.72 3.04 7.55C3.04 6.85 3.18 6.16 3.42 5.51C3.6 5.03 3.88 4.6 4.24 4.24C4.59 3.87 5.03 3.59 5.51 3.42C6.16 3.18 6.85 3.05 7.55 3.04C8.71 2.99 9.06 2.98 12 2.98ZM12 1C9.01 1 8.64 1.01 7.47 1.07C6.56 1.09 5.65 1.26 4.8 1.58C4.07 1.86 3.4 2.3 2.85 2.85C2.3 3.41 1.86 4.07 1.58 4.8C1.26 5.65 1.09 6.56 1.07 7.47C1.02 8.64 1 9.01 1 12C1 14.99 1.01 15.36 1.07 16.53C1.09 17.44 1.26 18.35 1.58 19.2C1.86 19.93 2.3 20.6 2.85 21.15C3.41 21.7 4.07 22.14 4.8 22.42C5.65 22.74 6.56 22.91 7.47 22.93C8.64 22.98 9.01 23 12 23C14.99 23 15.36 22.99 16.53 22.93C17.44 22.91 18.35 22.74 19.2 22.42C19.93 22.14 20.6 21.7 21.15 21.15C21.7 20.59 22.14 19.93 22.42 19.2C22.74 18.35 22.91 17.44 22.93 16.53C22.98 15.36 23 14.99 23 12C23 9.01 22.99 8.64 22.93 7.47C22.91 6.56 22.74 5.65 22.42 4.8C22.14 4.07 21.7 3.4 21.15 2.85C20.59 2.3 19.93 1.86 19.2 1.58C18.35 1.26 17.44 1.09 16.53 1.07C15.36 1.02 14.99 1 12 1ZM12 6.35C10.88 6.35 9.79 6.68 8.86 7.3C7.93 7.92 7.21 8.8 6.78 9.84C6.35 10.87 6.24 12.01 6.46 13.1C6.68 14.2 7.22 15.2 8.01 15.99C8.8 16.78 9.81 17.32 10.9 17.54C12 17.76 13.13 17.65 14.16 17.22C15.19 16.79 16.07 16.07 16.7 15.14C17.32 14.21 17.65 13.12 17.65 12C17.65 10.5 17.05 9.06 16 8.01C14.94 6.95 13.5 6.36 12.01 6.36L12 6.35ZM12 15.67C11.27 15.67 10.57 15.45 9.96 15.05C9.36 14.65 8.89 14.07 8.61 13.4C8.33 12.73 8.26 11.99 8.4 11.28C8.54 10.57 8.89 9.92 9.4 9.4C9.91 8.88 10.5
28127 8.54 11.28 8.4C11.99 8.26 12.73 8.33 13.4 8.61C14.07 8.89 14.64 9.36 15.05 9.96C15.45 10.56 15.67 11.27 15.67 12C15.67 12.97 15.28 13.91 14.6 14.59C13.91 15.28 12.98 15.66 12.01 15.66L12 15.67ZM17.87 7.45C18.6 7.45 19.19 6.86 19.19 6.13C19.19 5.4 18.6 4.81 17.87 4.81C17.14 4.81 16.55 5.4 16.55 6.13C16.55 6.86 17.14 7.45 17.87 7.45Z"/>
2813    </svg><span class="sr-only">Instagram</span>
2814        </a>
2815      </li><li><a href="https://www.youtube.com/channel/UCFAKK0tiJMLwDbjcoZQPiiA/videos" class="social_platform block relative" is="magnet-link" title="odiporo.de - Smarte Elektronik für jeden Anspruch auf YouTube"><svg class="icon icon-youtube icon-lg" viewBox="0 0 24 24" stroke="none" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
2816      <path d="M23.8 7.6C23.8 7.6 23.6 5.9 22.8 5.2C21.9 4.2 20.9 4.2 20.4 4.2C17 4 12 4 12 4C12 4 7 4 3.6 4.2C3.1 4.3 2.1 4.3 1.2 5.2C0.5 5.9 0.2 7.6 0.2 7.6C0.2 7.6 0 9.5 0 11.5V13.3C0 15.2 0.2 17.2 0.2 17.2C0.2 17.2 0.4 18.9 1.2 19.6C2.1 20.6 3.3 20.5 3.8 20.6C5.7 20.8 12 20.8 12 20.8C12 20.8 17 20.8 20.4 20.5C20.9 20.4 21.9 20.4 22.8 19.5C23.5 18.8 23.8 17.1 23.8 17.1C23.8 17.1 24 15.2 24 13.2V11.4C24 9.5 23.8 7.6 23.8 7.6ZM9.5 15.5V8.8L16 12.2L9.5 15.5Z"/>
2817    </svg><span class="sr-only">YouTube</span>
2818        </a>
2819      </li><li><a href="https://www.tiktok.com/@odiporo.de" class="social_platform block relative" is="magnet-link" title="odiporo.de - Smarte Elektronik für jeden Anspruch auf TikTok"><svg class="icon icon-tiktok icon-lg" viewBox="0 0 24 24" stroke="none" fill="currentColor" xmlns="http://www.w3.org/2000/svg">
2820      <path d="M10.6315 8.937V13.059C10.1123 12.9221 9.56911 12.9034 9.0418 13.0044C8.5145 13.1054 8.01657 13.3234 7.58473 13.6424C7.15288 13.9613 6.79813 14.3732 6.54661 14.8475C6.2951 15.3218 6.15324 15.8466 6.13148 16.383C6.10175 16.8449 6.17125 17.3078 6.33531 17.7405C6.49938 18.1733 6.7542 18.5659 7.08266 18.892C7.41111 19.2181 7.80557 19.4701 8.23952 19.631C8.67346 19.7919 9.13684 19.8581 9.59848 19.825C10.0648 19.8608 10.5333 19.7949 10.9717 19.6319C11.41 19.4689 11.8078 19.2126 12.1374 18.8809C12.4671 18.5491 12.7208 18.1498 12.881 17.7104C13.0413 17.271 13.1042 16.8021 13.0655 16.336V0H17.1425C17.8355 4.315 19.9935 5.316 22.8825 5.778V9.913C20.8804 9.74881 18.9491 9.09645 17.2575 8.013V16.18C17.2575 19.88 15.0675 24 9.63048 24C8.61045 23.9955 7.60156 23.7875 6.66297 23.3881C5.72437 22.9886 4.87496 22.4059 4.16451 21.6739C3.45407 20.942 2.89689 20.0755 2.52563 19.1254C2.15438 18.1754 1.97652 17.1607 2.00248 16.141C2.03479 15.0794 2.29174 14.0366 2.75639 13.0815C3.22105 12.1265 3.88285 11.2807 4.69819 10.6C5.51352 9.9193 6.46387 9.41915 7.48658 9.1325C8.50929 8.84586 9.58114 8.77923 10.6315 8.937Z"/>
2821    </svg><span class="sr-only">TikTok</span>
2822        </a>
2823      </li></ul></div></div></footer><parallax-overlay class="footer-overlay hidden md:block z-20 absolute left-0 top-0 w-full pointer-events-none" data-target="height" data-start="100%" data-stop="0%"></parallax-overlay></div>
2824
2825
2826</div><div id="shopify-section-sections--24796503048571__footer-copyright" class="shopify-section shopify-section-group-footer-group"><style>
2827  #shopify-section-sections--24796503048571__footer-copyright {
2828    --gradient-background: #171717;
2829    --color-background: 23 23 23;
2830    --color-foreground: 255 255 255;
2831  }
2832</style>
2833
2834<div class="section section--rounded" is="footer-parallax">
2835  <div class="footer-copyright page-width page-width--full w-full flex flex-col items-center justify-between gap-4 lg:gap-0 lg:flex-row relative">
2836    <div class="rte credits text-center">Powered by Axdia International GmbH<ul class="flex flex-wrap gap-3 justify-center lg:justify-start"><li>
2837                <small>
2838                  <a href="/policies/privacy-policy" class="block reversed-link">Datenschutzerklärung</a>
2839                </small>
2840              </li><li>
2841                <small>
2842                  <a href="/policies/legal-notice" class="block reversed-link">Impressum</a>
2843                </small>
2844              </li><li>
2845                <small>
2846                  <a href="/policies/refund-policy" class="block reversed-link">Widerrufsrecht</a>
2847                </small>
2848              </li><li>
2849                <small>
2850                  <a href="/policies/terms-of-service" class="block reversed-link">AGB</a>
2851                </small>
2852              </li><li>
2853                <small>
2854                  <a href="/policies/contact-information" class="block reversed-link">Kontaktinformationen</a>
2855                </small>
2856              </li><li>
2857                <small>
2858                  <a href="/policies/shipping-policy" class="block reversed-link">Versand</a>
2859                </small>
2860              </li></ul></div><ul class="payment-icons flex flex-wrap justify-center gap-2 xl:gap-3"><li><svg 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;"/>
2860<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>
2861</li><li><svg 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 0 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" />
2861<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>
2862</li><li><svg 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.
286206zM23.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>
2863</li><li><svg 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></li><li><svg 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></li><li><svg 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;"/><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;"/>
2863<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>
2864</li><li><svg 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 
28640-.2.1-.2.1-.3.2-.3.4l-.7 4.4v.1c0-.3.3-.5.6-.5h1.3c2.5 0 4.1-1 4.6-3.8v-.2c-.1-.1-.3-.2-.5-.2h-.1z"/></svg></li><li><svg 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>
2865</li><li><svg 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.
2865635.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></li><li><svg 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 
286516.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>
2866</li></ul></div>
2867</div>
2868
2869
2870<style> #shopify-section-sections--24796503048571__footer-copyright li:has(a[href="/policies/contact-information"]) {display: none;} #shopify-section-sections--24796503048571__footer-copyright li:has(a[href="/policies/shipping-policy"]) {display: none;} </style></div>
2871<!-- END sections: footer-group --></footer-group>
2872  </div>
2873
2874  <ul hidden>
2875    <li id="a11y-refresh-page-message">Wenn du dich für eine Auswahl entscheidest, wird die Seite komplett aktualisiert.</li>
2876    <li id="a11y-new-window-message">Wird in einem neuen Fenster geöffnet.</li>
2877  </ul>
2877<script src="//odiporo.de/cdn/shop/t/3/assets/instant-page.js?v=99963444960178710701744817341" type="module" fetchpriority="low" defer="defer"></script>
2877<script>
2878  const updatePlaceholderIfFound = () => {
2879    document.querySelectorAll('input[type="email"]').forEach(input => {
2880      const current = input.getAttribute('placeholder') || '';
2881      if (current.includes('Newsletter') || current.trim() === '') {
2882        input.setAttribute('placeholder', 'Deine Mailadresse');
2883      }
2884    });
2885  };
2886
2887  // Starte Beobachter
2888  const observer = new MutationObserver((mutationsList, observer) => {
2889    updatePlaceholderIfFound();
2890  });
2891
2892  // Aktiviere, sobald DOM da ist
2893  document.addEventListener('DOMContentLoaded', function () {
2894    updatePlaceholderIfFound(); // erster Versuch
2895    observer.observe(document.body, {
2896      childList: true,
2897      subtree: true
2898    });
2899  });
2900
2901  // Sicherheit: Wiederholung nach 1s und 3s
2902  setTimeout(updatePlaceholderIfFound, 1000);
2903  setTimeout(updatePlaceholderIfFound, 3000);
2904</script>
2904
2905
2906
2907
2908
2909<style> .ips-small-text {color: #fae009;} </style>
2910<div id="shopify-block-AVC9KZllULzBVbkRXS__18369883135137792385" class="shopify-block shopify-app-block"><link href="//cdn.shopify.com/extensions/01a0c92e-2778-7671-a9da-706379edd60a/3.4.1/assets/styles.css" rel="stylesheet" type="text/css" media="all" />
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930<script>
2931  // Country and locale come from Liquid, so they are known at first paint. The
2932  // sheet href is built synchronously, and resolving the language from anything
2933  // that has to be fetched first would show the wrong one for a moment.
2934  window.energyLabelContext = window.energyLabelContext || {
2935    country: 'DE',
2936    locale: 'de'
2937  };
2938
2939  // The country decides the sheet language and the browser only breaks ties, so
2940  // both travel with the request and the server resolves what it asks EPREL for.
2941  window.energyLabelSheetUrl = window.energyLabelSheetUrl || function(eprelNumber){
2942    const params = new URLSearchParams({
2943      country: window.energyLabelContext.country || '',
2944      langs: (navigator.languages || [navigator.language]).filter(Boolean).join(',')
2945    });
2946    return '/apps/energy-label/api/products/' + eprelNumber + '/sheets?' + params;
2947  };
2948
2949  // Fetched unconditionally — the sheet options below may be off, but the label
2950  // settings are still needed. Cached on window so badge click handlers can read
2951  // openLabelInNewTab synchronously (an await before window.open reads as a popup).
2952  window.energyLabelSettings = window.energyLabelSettings || {};
2953  window.energyLabelSettingsReady = window.energyLabelSettingsReady ||
2954    fetch(`/apps/energy-label/api/settings?locale=${encodeURIComponent(window.energyLabelContext.locale || '')}`)
2955      .then(response => response.json())
2956      .then(settings => { window.energyLabelSettings = settings; return settings; })
2957      .catch(() => window.energyLabelSettings);
2958
2959  window.energyLabelShouldOpenInNewTab = function(){
2960    return window.energyLabelSettings.openLabelInNewTab === true;
2961  };
2962
2963  window.energyLabelOpenInNewTab = function(labelUrl){
2964    if(!labelUrl){ return false; }
2965    window.open(labelUrl, '_blank', 'noopener');
2966    return true;
2967  };
2968</script>
2968
2969
2970
2971
2972<div style="display: none">
2973  
2974    
2975    
2975<script src="https://cdn.shopify.com/extensions/01a0c92e-2778-7671-a9da-706379edd60a/3.4.1/assets/script-embed.js" async
2976            data-cssSelector="product-card__top"
2977            data-cssSelectorProduct="card.product-card"
2978            data-cssSelector-drawer="horizontal-product__details"
2979            data-cssSelectorProduct-drawer="horizontal-product"
2980            data-cssSelector-drawer-block="cart-drawer"
2981    >
2982    </script>
2982
2983  
2984</div>
2985<template class="energy-label__template">
2986  <div class="energy-label__overlay" onclick="handleCollectionOverlayClick(event)" popover>
2987    <button class="energy-label__close-button" onclick="hideCollectionOverlay(event)">
2988      <svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
2989        <path d="M6 6L26 26M6 26L26 6" stroke="#ffffff" stroke-width="2"/>
2990      </svg>
2991    </button>
2992    <div class="energy-label__image-container">
2993      <img class="energy-label__image" width="auto" height="auto" src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMiAzQzcuMDI5NDQgMyAzIDcuMDI5NDQgMyAxMkMzIDE2Ljk3MDYgNy4wMjk0NCAyMSAxMiAyMUMxMi44Mjg0IDIxIDEzLjUgMjEuNjcxNiAxMy41IDIyLjVDMTMuNSAyMy4zMjg0IDEyLjgyODQgMjQgMTIgMjRDNS4zNzI1OCAyNCAwIDE4LjYyNzQgMCAxMkMwIDUuMzcyNTggNS4zNzI1OCAwIDEyIDBDMTguNjI3NCAwIDI0IDUuMzcyNTggMjQgMTJDMjQgMTIuODI4NCAyMy4zMjg0IDEzLjUgMjIuNSAxMy41QzIxLjY3MTYgMTMuNSAyMSAxMi44Mjg0IDIxIDEyQzIxIDcuMDI5NDQgMTYuOTcwNiAzIDEyIDNaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K" alt="Energy Label">
2994      <div class="energy-label__popup-link">Powered by <a href="https://apps.shopify.com/eu-energy-label" target="_blank">EU Energy Label app</a></div>
2995    </div>
2996  </div>
2997</template>
2998
2999
3000<embed-block-energy-label></embed-block-energy-label>
3001
3002<style>
3003
3004     
3005     
3006       
3007       .product-card__top .energy-badge__container {
3008           margin-left: 0px;
3009           margin-right: 0px;
3010           margin-top: 0px;
3011           margin-bottom: 0px;
3012           flex-direction: row;
3013         
3014           flex-direction: row;
3015           justify-content: flex-end;
3016           align-items: center;
3017           gap: 12px;
3018         
3019       }
3020       
3021       
3022          .product-card__top .energy-badge__link-text::before {
3023            font-size: 12px;
3024          }
3025     
3026     
3027     
3028      
3029      .horizontal-product__details .energy-badge__container {
3030        margin-left: 0px;
3031        margin-right: 0px;
3032        margin-top: 0px;
3033        margin-bottom: 0px;
3034        
3035            flex-direction: row;
3036            justify-content: flex-start;
3037            align-items: center;
3038            gap: 12px;
3039        
3040      }
3041      
3042      
3043          .horizontal-product__details .energy-badge__link-text::before {
3044            font-size: 12px;
3045          }
3046     
3047
3048    
3049     
3050      .product-card__top {
3051        width: 100%;
3052      }
3053     .product-card__top .energy-badge__image {
3054       height: 24px;
3055     }
3056     .product-card__top .energy-badge__image--manual,
3057     .product-card__top .energy-badge__image.manual {
3058        height: 14px;
3059     }
3060     
3061
3062    
3063
3064    
3065      .horizontal-product__details .energy-badge__image {
3066        height: 24px;
3067      }
3068      .horizontal-product__details .energy-badge__image--manual,
3069      .horizontal-product__details .energy-badge__image.manual {
3070        height: 14px;
3071      }
3072    
3073
3074
3075</style>
3076
3077
3078</div><div id="shopify-block-AV1c1MGppS3Bld2V0Z__1967102994182284862" class="shopify-block shopify-app-block"><!-- BEGIN app snippet: connected_sdk_script -->
3078<script src='https://www.paypalobjects.com/pa/js/min/pa.js'></script>
3078
3079
3080<script
3081  src='https://www.paypal.com/sdk/js?client-id=AbtXlp5R3xc83T9xW_ZXKTK8IVZ-14EMelDioU4VC285IqSuxUI4yotKxjV0sz_X6YsONYi10vSBPNKM&merchant-id=SK45JS2S8VVTS&components=messages'
3082  data-namespace='PayPalSDK'
3083  data-partner-attribution-id='JADEDPIXEL_SHOPPINGCART_EC_CA'
3084></script>
3084
3085<!-- END app snippet --><!-- BEGIN app snippet: utils -->
3085<script>
3086  // ============================================
3087  // Core Utilities
3088  // ============================================
3089
3090  // Setup FPTI Analytics
3091  if (PAYPAL && PAYPAL.analytics) {
3092    PAYPAL.analytics.setup({
3093      data: {
3094        pgrp: 'shopify:messaging:app-embed',
3095        comp: 'shopify-app-embed',
3096      },
3097    });
3098  }
3099
3100  const recordEvent = (event_name, additionalData) => {
3101    PAYPAL.analytics.instance.recordEvent(event_name, {
3102      theme: window?.Shopify?.theme?.name || 'unknown',
3103      shop: window?.Shopify?.shop || 'unknown',
3104      path: window.location.pathname,
3105      flow: 'Shopify - Pay Later',
3106      space_key: 'SKD8GM',
3107      ...additionalData,
3108    });
3109  };
3110
3111  // In Theme Editor when using Advanced Settings
3112  // User chooses copy as JS Path from their browser
3113  // The pasted value will be a string that contains "document.querySelector("...")
3114  // Remove document.querySelector(" and ")
3115  // Using JS Path we can ensure the path to the element is accurate
3116  const parseSelector = (selector) => {
3117    try {
3118      // Handle both single and double quotes
3119      return selector
3120        .replace(/document\.querySelector\(["']/g, '')
3121        .replace(/["']\)/g, '');
3122    } catch (e) {
3123      recordEvent('appEmbed:parseSelector:error', { error: e.message });
3124    }
3125  };
3126
3127  // Waits for Element to be rendered
3128  // Uses mutation observer to watch for changes in the DOM
3129  // https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver
3130  // On changes, check for the selector again
3131  const waitForElement = (selector) => {
3132    try {
3133      return new Promise((resolve) => {
3134        const existing = document.querySelector(selector);
3135        if (existing) return resolve(existing);
3136
3137        const observer = new MutationObserver(() => {
3138          const el = document.querySelector(selector);
3139          if (el) {
3140            observer.disconnect();
3141            resolve(el);
3142          }
3143        });
3144
3145        observer.observe(document.body, {
3146          childList: true,
3147          subtree: true,
3148        });
3149      });
3150    } catch (e) {
3151      recordEvent('appEmbed:waitForElement:error', { error: e.message });
3152    }
3153  };
3154
3155  // Formats correct cart/drawer subtotal and adds or updates messaging
3156  const addOrUpdateMessagingPriceAttribute = async (price, locator, messaging) => {
3157    try {
3158      // Format price to 2 decimal places ex: 150000 => 1500.00
3159      // Messaging requires price to be in string format
3160      const formattedPrice = Number((price / 100).toFixed(2)).toString();
3161
3162      const messagingId = messaging.id;
3163      const existingMessaging = document.getElementById(messagingId);
3164
3165      if (existingMessaging) {
3166        // Update the data-pp-amount attribute on the existing element
3167        existingMessaging.setAttribute('data-pp-amount', formattedPrice);
3168      } else {
3169        const element = await waitForElement(locator);
3170
3171        const updatedPriceMessaging = messaging.cloneNode();
3172        updatedPriceMessaging.setAttribute('data-pp-amount', formattedPrice);
3173
3174        element.after(updatedPriceMessaging);
3175      }
3176    } catch (e) {
3177      recordEvent('appEmbed:addOrUpdateMessagingPriceAttribute:error', { error: e.message });
3178    }
3179  };
3180
3181  // Fetches cart details from Shopify cart endpoint
3182  const fetchCartDetails = async () => {
3183    try {
3184      const response = await fetch('/cart.js');
3185      const cart = await response.json();
3186
3187      return cart.total_price;
3188    } catch (e) {
3189      recordEvent('appEmbed:fetchCartDetails:error', { error: e.message });
3190    }
3191  };
3192
3193  // Fetches variant details Shopify product endpoint
3194  // https://shopify.dev/docs/api/ajax/reference/product
3195  const fetchVariant = async () => {
3196    try {
3197      // Ex: https://test-store.myshopify.com/products/the-multi-location-snowboard?variant=45268551368883
3198      const urlParams = new URLSearchParams(window.location.search);
3199      const urlVariantId = parseInt(urlParams.get('variant'), 10);
3200      const productHandle = window.location.pathname.split('/products/')[1]?.split('?')[0];
3201
3202      const response = await fetch(`/products/${productHandle}.js`);
3203      const productData = await response.json();
3204      const variants = productData.variants;
3205      const selectedVariant = variants.find(v => v.id === urlVariantId);
3206
3207      if (selectedVariant) {
3208        return selectedVariant;
3209      }
3210
3211      return variants.find(v => v.available) || variants[0];
3212    } catch (e) {
3213      recordEvent('appEmbed:fetchVariant:error', { error: e.message });
3214    }
3215  };
3216
3217  // Get the selected variant ID from URL, form input, or select element
3218  const getSelectedVariantId = () => {
3219    try {
3220      const urlParams = new URLSearchParams(window.location.search);
3221      const urlVariant = urlParams.get('variant');
3222      if (urlVariant) return parseInt(urlVariant, 10);
3223
3224      const formInput = document.querySelector('form[action*="/cart/add"] input[name="id"]');
3225      if (formInput?.value) return parseInt(formInput.value, 10);
3226
3227      const selectInput = document.querySelector('form[action*="/cart/add"] select[name="id"]');
3228      if (selectInput?.value) return parseInt(selectInput.value, 10);
3229
3230      return null;
3231    } catch (e) {
3232      recordEvent('appEmbed:getSelectedVariantId:error', { error: e.message });
3233      return null;
3234    }
3235  };
3236
3237  const getShopifyData = () => {
3238    try {
3239      const selectedVariantId = getSelectedVariantId();
3240
3241      const findVariant = (variants) => {
3242        if (!variants?.length) return null;
3243        if (selectedVariantId) {
3244          const selected = variants.find(v => v.id === selectedVariantId);
3245          if (selected) return selected;
3246        }
3247        return variants.find(v => v.available) || variants[0];
3248      };
3249
3250      if (window.meta?.product) {
3251        const product = window.meta.product;
3252        const variant = findVariant(product.variants);
3253        return {
3254          product: { title: product.title, vendor: product.vendor, type: product.type, id: product.id },
3255          price: variant ? {
3256            priceInCents: variant.price,
3257            compareAtPrice: variant.compare_at_price,
3258            currency: window.Shopify?.currency?.active || 'USD',
3259            variantId: variant.id,
3260            variantTitle: variant.title
3261          } : null
3262        };
3263      }
3264
3265      if (window.ShopifyAnalytics?.meta?.product) {
3266        const product = window.ShopifyAnalytics.meta.product;
3267        const variant = findVariant(product.variants);
3268        return {
3269          product: { title: product.title, vendor: product.vendor, id: product.id },
3270          price: variant ? {
3271            priceInCents: variant.price,
3272            currency: window.Shopify?.currency?.active || 'USD',
3273            variantId: variant.id
3274          } : null
3275        };
3276      }
3277
3278      return null;
3279    } catch (e) {
3280      recordEvent('appEmbed:getShopifyData:error', { error: e.message });
3281      return null;
3282    }
3283  };
3284
3285  // Generic function to watch for changes in the DOM
3286  // and listen for specific API calls made by the Shopify store
3287  // Callback provides specific logic for handling the response
3288  const watchForChanges = (locator, messaging, callback) => {
3289    try {
3290      // Overrides the native `fetch` function to listen for specific API calls.
3291      // Wrapped in an Immediately Invoked Function Expression (IIFE)
3292      // To avoid polluting the global namespace.
3293      (function (window, windowFetch) {
3294        // Check if `fetch` is a function. If not, exit early.
3295        if (typeof fetch !== 'function') return;
3296
3297        window.fetch = function () {
3298          // Call the original `fetch` function with the provided arguments.
3299          const response = windowFetch.apply(this, arguments);
3300
3301          response.then(async (res) => {
3302            if (typeof callback === 'function') {
3303              callback(res, locator, messaging);
3304            }
3305          });
3306
3307          // Return the original `fetch` response.
3308          return response;
3309        };
3310      })(window, window.fetch);
3311    } catch (e) {
3312      recordEvent('appEmbed:watchForChanges:error', { error: e.message });
3313    }
3314  };
3315
3316  // Provides ability to watch for cart changes
3317  // such as increment, decrement, or remove items
3318  // Also handles adding new items which opens Cart Drawer
3319  // and updates the messaging with the new cart total
3320  // This function is used for both Cart Drawer and Cart Page
3321  const watchForCartChanges = (locator, messaging) => {
3322    const cartChangeCallback = async (res, locator, messaging) => {
3323      // Determine the id of messaging div either #paypal-upstream-messaging-cart-{page | drawer}
3324      const messagingId = messaging.id;
3325
3326      // Changes (e.g., increment, decrement, or remove items).
3327      if (res.url.includes('/cart/change')) {
3328        // Clone the response to read its JSON data without consuming the original response.
3329        res
3330          .clone()
3331          .json()
3332          .then((data) => {
3333            addOrUpdateMessagingPriceAttribute(data.total_price, locator, messaging);
3334          });
3335
3336        // Called when adding a new item which opens Cart Drawer
3337      } else if (res.url.includes('/cart/add')) {
3338        // Adding items does not return the updated cart details,
3339        // Fetch the updated cart details (e.g., total_price).
3340        const updatedPrice = await fetchCartDetails();
3341
3342        // Introduce a delay to handle potential race conditions where the cart drawer has not rendered yet.
3343        setTimeout(async () => {
3344          await addOrUpdateMessagingPriceAttribute(updatedPrice, locator, messaging);
3345        }, 500);
3346      }
3347    };
3348
3349    watchForChanges(locator, messaging, cartChangeCallback);
3350  };
3351
3352  // Provides ability to watch for product specific changes
3353  // such as variant selection on product pages
3354  const watchForProductChanges = (locator, messaging) => {
3355    let lastVariantId = new URLSearchParams(window.location.search).get('variant');
3356
3357    const handleVariantChange = async () => {
3358      const currentVariantId = new URLSearchParams(window.location.search).get('variant');
3359      if (currentVariantId && currentVariantId !== lastVariantId) {
3360        lastVariantId = currentVariantId;
3361
3362        const newVariantData = await fetchVariant();
3363        const newPriceInCents = newVariantData?.price;
3364
3365        if (newPriceInCents) {
3366          await addOrUpdateMessagingPriceAttribute(newPriceInCents, locator, messaging);
3367        } else {
3368          recordEvent('appEmbed:watchForProductChanges:error:noNewVariantPrice');
3369        }
3370      }
3371    };
3372
3373    // Shopify themes can either handle variant changes on the client-side or server-side (via variant API calls)
3374    // We will "intercept" and handle variant changes by:
3375    // 1. Watching for URL changes
3376    const _pushState = history.pushState.bind(history);
3377    const _replaceState = history.replaceState.bind(history);
3378
3379    history.pushState = function (...args) {
3380      _pushState(...args);
3381      handleVariantChange();
3382    };
3383
3384    history.replaceState = function (...args) {
3385      _replaceState(...args);
3386      handleVariantChange();
3387    };
3388
3389    // 2. Watching for back/forward browser clicks
3390    window.addEventListener('popstate', handleVariantChange);
3391
3392    // 3. Fallback: Watching for variant API calls
3393    // Future optimization: This fallback could be removed if all Shopify themes can be handled with 1. and 2.
3394    const productChangeCallback = async (res, locator, messaging) => {
3395      if (res.url.includes('/variants')) {
3396        await handleVariantChange();
3397        return;
3398      }
3399    };
3400
3401    watchForChanges(locator, messaging, productChangeCallback);
3402  };  
3403</script>
3403
3404<!-- END app snippet --><!-- BEGIN app snippet: price-detection -->
3404<script>
3405  // ============================================
3406  // Price Detection & Element Scoring
3407  // Depends on: utils.liquid (recordEvent, getShopifyData)
3408  // ============================================
3409
3410  const extractPriceFromText = (text) => {
3411    const match = text.match(/[\d,]+\.?\d*/);
3412    if (!match) return null;
3413    return parseFloat(match[0].replace(/,/g, ''));
3414  };
3415
3416  const textMatchesPrice = (text, knownPriceInCents) => {
3417    const extracted = extractPriceFromText(text);
3418    if (extracted === null) return false;
3419    const knownPrice = knownPriceInCents / 100;
3420    return Math.abs(extracted - knownPrice) < 0.01;
3421  };
3422
3423  const hasStrikethrough = (element) => {
3424    let el = element;
3425    while (el && el !== document.body) {
3426      const style = getComputedStyle(el);
3427      if (style.textDecoration.includes('line-through') ||
3428          style.textDecorationLine?.includes('line-through')) {
3429        return true;
3430      }
3431      if (['S', 'DEL', 'STRIKE'].includes(el.tagName)) {
3432        return true;
3433      }
3434      el = el.parentElement;
3435    }
3436    return false;
3437  };
3438
3439  // Find the add-to-cart button. Result is cached since the button doesn't change per page load.
3440  let _cachedAddToCartButton;
3441  const findAddToCartButton = () => {
3442    if (_cachedAddToCartButton !== undefined) return _cachedAddToCartButton;
3443    try {
3444      const formButton = document.querySelector('form[action*="/cart/add"] button[type="submit"]');
3445      if (formButton) return (_cachedAddToCartButton = formButton);
3446
3447      const buttons = document.querySelectorAll('button');
3448      for (const btn of buttons) {
3449        const text = btn.textContent.toLowerCase();
3450        if (text.includes('add to cart') || text.includes('add to bag') ||
3451            text.includes('buy now') || text.includes('add to basket')) {
3452          return (_cachedAddToCartButton = btn);
3453        }
3454      }
3455
3456      return (_cachedAddToCartButton = null);
3457    } catch (e) {
3458      recordEvent('appEmbed:findAddToCartButton:error', { error: e.message });
3459      return (_cachedAddToCartButton = null);
3460    }
3461  };
3462
3463  // Find element containing specific text (used for product title proximity).
3464  // Result is cached per text string — title is static per page load and scoreElement
3465  // calls this once per candidate, so without caching it's O(candidates) full DOM walks.
3466  let _titleElementCache = {};
3467  const findElementContainingText = (text) => {
3468    if (text in _titleElementCache) return _titleElementCache[text];
3469    try {
3470      const normalizedText = text.toLowerCase().trim();
3471      const walker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT);
3472
3473      let node;
3474      while (node = walker.nextNode()) {
3475        const nodeText = node.textContent.trim().toLowerCase();
3476        if (nodeText.length > 5 && normalizedText.includes(nodeText.substring(0, 20))) {
3477          const el = node.parentElement;
3478          const rect = el.getBoundingClientRect();
3479          if (rect.width > 0 && rect.height > 0) {
3480            const fontSize = parseFloat(getComputedStyle(el).fontSize);
3481            if (fontSize >= 16) return (_titleElementCache[text] = el);
3482          }
3483        }
3484      }
3485      return (_titleElementCache[text] = null);
3486    } catch (e) {
3487      return null;
3488    }
3489  };
3490
3491  const getViewportThresholds = () => {
3492    const vh = window.innerHeight;
3493    const isMobile = window.innerWidth < 768;
3494
3495    return {
3496      position: [[vh * 0.6, 50], [vh * 1.2, 30], [vh * 2.0, 10]],
3497      fontSize: [
3498        [isMobile ? 18 : 24, 40],
3499        [isMobile ? 14 : 18, 25],
3500        [isMobile ? 12 : 14, 10],
3501      ],
3502      proximity: {
3503        close:  isMobile ? 60  : 100,
3504        medium: isMobile ? 120 : 200,
3505        far:    isMobile ? 240 : 400,
3506      },
3507    };
3508  };
3509
3510  const getTieredScore = (value, tiers, defaultScore = 0) => {
3511    for (const [threshold, points] of tiers) {
3512      if (value < threshold) return points;
3513    }
3514    return defaultScore;
3515  };
3516
3517  // Scores a DOM element on how likely it is to be the product's main price.
3518  // Higher score = better candidate. Factors:
3519  //   - Position on page (elements higher up score better)
3520  //   - Font size (larger text = more likely a displayed price)
3521  //   - Proximity to product title and add-to-cart button
3522  //   - Structural exclusions (footer/header/nav/hidden = heavy penalty)
3523  //   - Strikethrough detection (compare-at prices = heavy penalty)
3524  const scoreElement = (element, productMeta = null, debug = false) => {
3525    let score = 0;
3526    const breakdown = debug ? {} : null;
3527    const { position, fontSize, proximity } = getViewportThresholds();
3528    const { close, medium, far } = proximity;
3529    const rect = element.getBoundingClientRect();
3530
3531    // POSITION ON PAGE
3532    const absoluteTop = rect.top + window.scrollY;
3533    const posScore = getTieredScore(absoluteTop, position, -30);
3534    score += posScore;
3535    if (debug) breakdown.position = `${posScore >= 0 ? '+' : ''}${posScore} (top ${Math.round(absoluteTop)}px)`;
3536
3537    // FONT SIZE
3538    const fontPx = parseFloat(getComputedStyle(element).fontSize);
3539    const fontScore = fontSize.find(([t]) => fontPx >= t)?.[1] ?? -10;
3540    score += fontScore;
3541    if (debug) breakdown.fontSize = `${fontScore >= 0 ? '+' : ''}${fontScore} (${fontPx}px)`;
3542
3543    // PROXIMITY TO PRODUCT TITLE
3544    if (productMeta?.title) {
3545      const titleElement = findElementContainingText(productMeta.title);
3546      if (titleElement) {
3547        const distance = Math.abs(titleElement.getBoundingClientRect().bottom - rect.top);
3548        const titleScore = getTieredScore(distance, [[close, 40], [medium, 25], [far, 10]], 0);
3549        score += titleScore;
3550        if (debug) breakdown.titleProximity = `+${titleScore} (${Math.round(distance)}px)`;
3551      } else if (debug) {
3552        breakdown.titleProximity = 'title element not found';
3553      }
3554    } else if (debug) {
3555      breakdown.titleProximity = 'no product title';
3556    }
3557
3558    // PROXIMITY TO ADD-TO-CART BUTTON
3559    const addButton = findAddToCartButton();
3560    if (addButton) {
3561      const distance = Math.abs(addButton.getBoundingClientRect().top - rect.top);
3562      const cartScore = getTieredScore(distance, [[close, 30], [medium, 20], [far, 10]], 0);
3563      score += cartScore;
3564      if (debug) breakdown.cartProximity = `+${cartScore} (${Math.round(distance)}px)`;
3565    } else if (debug) {
3566      breakdown.cartProximity = 'add-to-cart not found';
3567    }
3568
3569    // STRUCTURAL EXCLUSIONS
3570    const exclusions = [
3571      ['footer, header, nav', 'in footer/header/nav'],
3572      ['button, a[href*="/cart"], [type="submit"]', 'in button/link'],
3573      ['[aria-hidden="true"], [hidden], .hidden, .visually-hidden', 'hidden'],
3574    ];
3575    for (const [selector, reason] of exclusions) {
3576      if (element.closest(selector)) {
3577        score -= 100;
3578        if (debug) breakdown.structural = `-100 (${reason})`;
3579        break;
3580      }
3581    }
3582    if (debug && !breakdown.structural) breakdown.structural = '+0';
3583
3584    // STRIKETHROUGH
3585    if (hasStrikethrough(element)) {
3586      score -= 100;
3587      if (debug) breakdown.strikethrough = '-100 (compare-at price)';
3588    } else if (debug) {
3589      breakdown.strikethrough = '+0';
3590    }
3591
3592    if (debug) {
3593      breakdown.totalScore = score;
3594      breakdown.elementText = element.textContent.trim().substring(0, 30);
3595      breakdown.elementTag = element.tagName;
3596    }
3597
3598    return debug ? { score, breakdown } : score;
3599  };
3600
3601  // Find all elements containing a specific price value
3602  const findElementsWithPrice = (knownPriceInCents, productMeta = null, debug = false, log = () => {}) => {
3603    const candidates = [];
3604    const walker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT);
3605
3606    let node;
3607    while (node = walker.nextNode()) {
3608      const text = node.textContent.trim();
3609      if (text.length > 30 || !textMatchesPrice(text, knownPriceInCents)) continue;
3610
3611      const element = node.parentElement;
3612      const rect = element.getBoundingClientRect();
3613
3614      if (rect.width === 0 || rect.height === 0 || hasStrikethrough(element)) continue;
3615
3616      const score = scoreElement(element, productMeta, false);
3617      candidates.push({ element, text, score });
3618    }
3619
3620    if (debug && candidates.length > 0) {
3621      candidates.sort((a, b) => b.score - a.score);
3622      log(`  Candidates: ${candidates.length}, top: score=${candidates[0].score}, text="${candidates[0].text}"`);
3623    }
3624
3625    return candidates;
3626  };
3627
3628  // Find the /cart/add form by traversing from the price element
3629  // This is more reliable than name-based container detection since all Shopify themes have this form
3630  const findCartFormFromPrice = (priceElement, debug = false, log = () => {}) => {
3631    let el = priceElement;
3632
3633    while (el && el !== document.body) {
3634      if (el.tagName === 'FORM' && el.action?.includes('/cart/add')) {
3635        if (debug) log(`  Found /cart/add form (element itself)`);
3636        return el;
3637      }
3638
3639      let sibling = el.nextElementSibling;
3640      while (sibling) {
3641        if (sibling.tagName === 'FORM' && sibling.action?.includes('/cart/add')) {
3642          if (debug) log(`  Found /cart/add form as sibling`);
3643          return sibling;
3644        }
3645        // Check if sibling contains the form
3646        const formInSibling = sibling.querySelector('form[action*="/cart/add"]');
3647        if (formInSibling) {
3648          if (debug) log(`  Found /cart/add form inside sibling`);
3649          return formInSibling;
3650        }
3651        sibling = sibling.nextElementSibling;
3652      }
3653
3654      el = el.parentElement;
3655    }
3656
3657    if (debug) log(`  No /cart/add form found`);
3658    return null;
3659  };
3660
3661  // Fallback: walk up from the price text element to find a suitable wrapper.
3662  // Used when no /cart/add form exists near the price element.
3663  const findPriceContainer = (priceElement) => {
3664    let el = priceElement;
3665    let bestContainer = priceElement;
3666
3667    while (el && el !== document.body) {
3668      // Look for elements with price-related IDs (common Shopify pattern)
3669      if (el.id && /price/i.test(el.id)) {
3670        bestContainer = el;
3671      }
3672      // Look for elements with price-related classes that seem like containers
3673      if (el.className && typeof el.className === 'string') {
3674        const classes = el.className.toLowerCase();
3675        if (/\bprice\b/.test(classes) && !/price-item|price__regular|price__sale/.test(classes)) {
3676          bestContainer = el;
3677        }
3678      }
3679      // Stop at major structural elements
3680      if (el.tagName === 'SECTION' || el.tagName === 'ARTICLE' || el.tagName === 'MAIN') {
3681        break;
3682      }
3683      el = el.parentElement;
3684    }
3685
3686    return bestContainer;
3687  };
3688
3689  // Try common Shopify theme price selectors (Dawn and derivatives)
3690  const findPriceByTemplateSelector = (debug = false, log = () => {}) => {
3691    const selectors = [
3692      '[id*="price-template"]',  // Dawn theme pattern
3693      '.price-item--regular:not(s):not(del)',
3694      '[data-product-price]',
3695    ];
3696
3697    for (const selector of selectors) {
3698      const el = document.querySelector(selector);
3699      if (el && !hasStrikethrough(el)) {
3700        if (debug) log(`Template selector found: ${selector}`);
3701        return el;
3702      }
3703    }
3704    return null;
3705  };
3706
3707  // Check if we're in an isolated/sandboxed iframe (theme editor)
3708  const isIsolatedContext = () => {
3709    if (window === window.top) return false; // Not in iframe
3710    try {
3711      // Try to access parent - if cross-origin, we're isolated
3712      const test = window.parent.document;
3713      return false; // Can access parent, not isolated
3714    } catch (e) {
3715      return true; // Cross-origin, we're isolated
3716    }
3717  };
3718
3719  // Try to find price element in sibling iframes (theme editor workaround)
3720  const findPriceInSiblingIframes = (knownPriceInCents) => {
3721    const iframes = document.querySelectorAll('iframe');
3722
3723    for (const iframe of iframes) {
3724      try {
3725        const iframeDoc = iframe.contentDocument || iframe.contentWindow?.document;
3726        if (!iframeDoc) continue;
3727
3728        const priceElement = iframeDoc.querySelector('.price-item, .price, [data-product-price]');
3729        if (priceElement) {
3730          return { element: priceElement, document: iframeDoc };
3731        }
3732      } catch (e) {
3733        // Cross-origin iframe, skip
3734      }
3735    }
3736
3737    return null;
3738  };
3739
3740  // Helper: Insert messaging near a price element (before cart form or after price container).
3741  // Returns the price container element used as the logical anchor.
3742  const insertMessagingNearPrice = (priceElement, messaging, debug = false, log = () => {}) => {
3743    const cartForm = findCartFormFromPrice(priceElement, debug, log);
3744    const container = findPriceContainer(priceElement);
3745    if (cartForm) {
3746      cartForm.before(messaging.cloneNode());
3747      if (debug) log('Inserted messaging before /cart/add form');
3748    } else {
3749      container.after(messaging.cloneNode());
3750      if (debug) log('Inserted after price container (no form found)');
3751    }
3752    return container;
3753  };
3754
3755  // Insert messaging after price element
3756  const insertMessagingWithRetry = (shopifyData, messaging, debug = false, log = () => {}) => {
3757    // Skip visual preview iframe
3758    if (window.location.search.includes('source=visualPreviewInitialLoad')) return;
3759    if (document.querySelector('#paypal-upstream-messaging-product')) return;
3760
3761    const liquidPriceInCents = shopifyData?.price?.priceInCents;
3762    const isIsolated = isIsolatedContext();
3763
3764    if (debug) {
3765      log('=== Price Detection ===');
3766      log(`Context: ${isIsolated ? 'Theme Editor' : 'Live Storefront'}`);
3767      log(`Price: ${liquidPriceInCents} cents ($${(liquidPriceInCents / 100).toFixed(2)})`);
3768    }
3769
3770    // Priority 1: Template selectors (common theme patterns like Dawn)
3771    const templateElement = findPriceByTemplateSelector(debug, log);
3772    if (templateElement) {
3773      return insertMessagingNearPrice(templateElement, messaging, debug, log);
3774    }
3775
3776    // Priority 2: Scoring-based price detection
3777    const priceElement = findPriceElement(shopifyData, debug, log);
3778    if (priceElement) {
3779      return insertMessagingNearPrice(priceElement, messaging, debug, log);
3780    }
3781
3782    // Priority 3: Sibling iframes (theme editor only)
3783    if (isIsolated) {
3784      const siblingResult = findPriceInSiblingIframes(liquidPriceInCents);
3785      if (siblingResult) {
3786        return insertMessagingNearPrice(siblingResult.element, messaging, debug, log);
3787      }
3788    }
3789
3790    if (!isIsolated) {
3791      log('Could not find price element. Consider using Advanced Settings with a custom selector.');
3792    }
3793    return null;
3794  };
3795
3796  const findPriceElement = (shopifyData = null, debug = false, log = () => {}) => {
3797    try {
3798      const knownPriceInCents = shopifyData?.price?.priceInCents;
3799      const productMeta = shopifyData?.product;
3800
3801      if (debug) log(`findPriceElement: ${knownPriceInCents} cents`);
3802
3803      if (knownPriceInCents) {
3804        const candidates = findElementsWithPrice(knownPriceInCents, productMeta, debug, log);
3805        if (candidates.length > 0) {
3806          candidates.sort((a, b) => b.score - a.score);
3807          if (debug) log(`  → FOUND (score=${candidates[0].score})`);
3808          return candidates[0].element;
3809        }
3810      }
3811
3812      if (debug) log('  → null (no candidates)');
3813      return null;
3814    } catch (e) {
3815      if (debug) log(`  → Error: ${e.message}`);
3816      recordEvent('appEmbed:findPriceElement:error', { error: e.message });
3817      return null;
3818    }
3819  };
3820</script>
3820
3821<!-- END app snippet --><!-- BEGIN app snippet: navigator-panel --><template id="pp-nav-template">
3822  <style>
3823    /* --- Floating placement panel shell --- */
3824    #pp-nav-panel {
3825      position: fixed;
3826      top: 50%;
3827      left: 20px;
3828      transform: translateY(-50%);
3829      background: #fff;
3830      border-radius: 12px;
3831      font-family: system-ui, -apple-system, sans-serif;
3832      font-size: 13px;
3833      z-index: 999999;
3834      width: 340px;
3835      box-shadow: 0 8px 32px rgba(0,0,0,0.18);
3836      overflow: hidden;
3837      transition: transform 0.3s ease, height 0.3s ease;
3838    }
3839    #pp-nav-panel.minimized {
3840      display: none;
3841    }
3842
3843    /* --- Minimized pill button --- */
3844    #pp-nav-pill {
3845      position: fixed;
3846      bottom: 20px;
3847      left: 20px;
3848      background: #003087;
3849      color: #fff;
3850      border: none;
3851      border-radius: 24px;
3852      padding: 10px 18px;
3853      font-family: system-ui, -apple-system, sans-serif;
3854      font-size: 13px;
3855      font-weight: 600;
3856      cursor: pointer;
3857      z-index: 999999;
3858      box-shadow: 0 4px 16px rgba(0,48,135,0.3);
3859      display: none;
3860      align-items: center;
3861      gap: 8px;
3862      transition: box-shadow 0.2s;
3863    }
3864    #pp-nav-pill:hover {
3865      box-shadow: 0 6px 20px rgba(0,48,135,0.45);
3866    }
3867
3868    /* --- Header --- */
3869    .pp-panel-header {
3870      background: #003087;
3871      color: #fff;
3872      padding: 14px 16px;
3873      display: flex;
3874      align-items: center;
3875      justify-content: space-between;
3876    }
3877    .pp-panel-title {
3878      font-size: 14px;
3879      font-weight: 700;
3880      margin: 0;
3881      letter-spacing: 0.01em;
3882    }
3883    .pp-minimize-btn {
3884      background: none;
3885      border: none;
3886      color: rgba(255,255,255,0.8);
3887      cursor: pointer;
3888      font-size: 18px;
3889      line-height: 1;
3890      padding: 2px;
3891      border-radius: 4px;
3892      transition: color 0.15s;
3893    }
3894    .pp-minimize-btn:hover {
3895      color: #fff;
3896    }
3897
3898    /* --- Panel body --- */
3899    .pp-panel-content {
3900      padding: 16px;
3901    }
3902
3903    /* --- Step info boxes --- */
3904    .pp-step-box {
3905      border-radius: 8px;
3906      padding: 10px 12px;
3907      font-size: 12px;
3908      line-height: 1.5;
3909      margin-bottom: 12px;
3910      display: flex;
3911      align-items: flex-start;
3912      gap: 8px;
3913    }
3914    .pp-step-box.blue {
3915      background: #e8f4fd;
3916      border: 1px solid #b8dff5;
3917      color: #0a5a96;
3918    }
3919    .pp-step-box.green {
3920      background: #e6f9ee;
3921      border: 1px solid #a3e4b8;
3922      color: #1a7a3a;
3923    }
3924    .pp-step-text {
3925      flex: 1;
3926    }
3927    .pp-step-text p {
3928      margin: 0 0 8px 0;
3929    }
3930    .pp-step-text p:last-child {
3931      margin-bottom: 0;
3932    }
3933    .pp-step-text strong {
3934      display: block;
3935      font-size: 12px;
3936      margin-bottom: 2px;
3937    }
3938    .pp-step-dismiss {
3939      background: none;
3940      border: none;
3941      color: inherit;
3942      opacity: 0.5;
3943      cursor: pointer;
3944      font-size: 16px;
3945      line-height: 1;
3946      padding: 0;
3947      flex-shrink: 0;
3948    }
3949    .pp-step-dismiss:hover {
3950      opacity: 1;
3951    }
3952
3953    /* --- Warning banners --- */
3954    .pp-warning {
3955      background: #fff3cd;
3956      border: 1px solid #ffc107;
3957      border-radius: 8px;
3958      padding: 10px 12px;
3959      margin-bottom: 12px;
3960      font-size: 12px;
3961      color: #856404;
3962      line-height: 1.4;
3963    }
3964    .pp-warning-icon {
3965      margin-right: 4px;
3966    }
3967
3968    /* --- Pick placement + copy actions --- */
3969    .pp-pick-btn {
3970      width: 100%;
3971      padding: 12px;
3972      border: 2px solid #0070ba;
3973      border-radius: 8px;
3974      background: #0070ba;
3975      color: #fff;
3976      cursor: pointer;
3977      font-size: 13px;
3978      font-weight: 600;
3979      transition: all 0.15s;
3980      display: flex;
3981      align-items: center;
3982      justify-content: center;
3983      gap: 8px;
3984    }
3985    .pp-pick-btn:hover {
3986      opacity: 0.9;
3987    }
3988    .pp-pick-btn.active {
3989      background: #f0f7ff;
3990      color: #0070ba;
3991      border-color: #b8dff5;
3992    }
3993    .pp-pick-btn.active:hover {
3994      background: #e0efff;
3995    }
3996
3997    /* --- Copy button --- */
3998    #pp-apply-btn {
3999      width: 100%;
4000      background: #28a745;
4001      color: #fff;
4002      border: none;
4003      padding: 12px;
4004      border-radius: 8px;
4005      font-weight: 600;
4006      cursor: pointer;
4007      font-size: 13px;
4008      transition: all 0.2s;
4009      display: none;
4010      align-items: center;
4011      justify-content: center;
4012      gap: 8px;
4013      margin-top: 12px;
4014    }
4015    #pp-apply-btn:hover {
4016      opacity: 0.9;
4017    }
4018    #pp-apply-btn.applied {
4019      background: #28a745;
4020    }
4021
4022    /* --- Step 2 confirmation --- */
4023    #pp-step2 {
4024      display: none;
4025      margin-top: 18px;
4026    }
4027  </style>
4028  <div class='pp-panel-header'>
4029    <div class='pp-panel-title'>PayPal Pay Later Messaging</div>
4030    <button class='pp-minimize-btn' id='pp-collapse-btn' title='Minimize panel'>&#x25BE;</button>
4031  </div>
4032  <div class='pp-panel-content'>
4033    <div id='pp-warning' class='pp-warning' style='display: none;'></div>
4034    <div id='pp-inspector-warning' class='pp-warning' style='display: none;'></div>
4035    <div class='pp-step-box blue' id='pp-step1'>
4036      <span class='pp-step-text'
4037        ><strong>Step 1: Choose message placement</strong>
4038        Click the button below and then hover over your page to select a placement.
4039      </span>
4040    </div>
4041    <button id='pp-pick-btn' class='pp-pick-btn'>&#x25CE; Start Picking Placement</button
4042    ><button id='pp-apply-btn'>Copy Current Placement</button>
4043    <div id='pp-step2' style='display:none;'>
4044      <div class='pp-step-box green'>
4045        <span class='pp-step-text'
4046          ><strong>Step 2: Paste and save</strong>
4047          <p style='margin: 0 0 8px 0;'>
4048            You have copied the placement for the <b id='pp-context-name'>Product Page</b>.
4049          </p>
4050          <p style='margin: 0;'>
4051            Go back to the App Embeds section, and in the Paypal Advanced Settings, paste the copied value into the
4052            <b id='pp-selector-name'>Product Page</b> field and click the 'Save' button in the top right corner.
4053          </p></span
4054        ><button class='pp-step-dismiss' id='pp-step2-dismiss' title='Dismiss'>&times;</button>
4055      </div>
4056    </div>
4057  </div>
4058</template>
4059<!-- END app snippet --><!-- BEGIN app snippet: navigator -->
4059<script>
4060  // ============================================
4061  // DOM Traversal Controls for Theme Editor
4062  // Depends on: price-detection.liquid (isIsolatedContext)
4063  // ============================================
4064
4065  const OVERLAY_STYLE =
4066    'position:fixed;pointer-events:none;background:rgba(255,152,0,0.12);border:2px solid rgba(255,152,0,0.6);z-index:999998;display:none;';
4067  const OVERLAY_LABEL_STYLE =
4068    'position:absolute;bottom:100%;left:-2px;background:#f57c00;color:#fff;font:10px system-ui;padding:2px 6px;border-radius:3px 3px 0 0;white-space:nowrap;';
4069  const COPY_BUTTON_LABEL = 'Copy Current Placement';
4070  const COPIED_BUTTON_LABEL = 'Placement Copied!';
4071
4072  const isInOverlay = (el) => {
4073    while (el && el !== document.body) {
4074      if (getComputedStyle(el).position === 'fixed') return true;
4075      el = el.parentElement;
4076    }
4077    return false;
4078  };
4079
4080  // Position a fixed overlay to cover a target element
4081  const positionOverlayOnElement = (overlay, el) => {
4082    const rect = el.getBoundingClientRect();
4083    Object.assign(overlay.style, {
4084      top: rect.top + 'px',
4085      left: rect.left + 'px',
4086      width: rect.width + 'px',
4087      height: rect.height + 'px',
4088      display: 'block',
4089    });
4090  };
4091
4092  // Module-level refs for global listeners added by createNavigationPanel.
4093  // Stored here so they can be removed if the panel is re-initialized.
4094  let _panelInspectorActivate = null;
4095  let _panelInspectorDeactivate = null;
4096  let _highlightedElement = null;
4097  let _panelPickModeCleanup = null;
4098
4099  // Detect UID pattern in ID (Shopify's --suffix or long numeric/hex suffixes)
4100  const hasUid = (id) => {
4101    if (!id) return false;
4102    if (/--/.test(id)) return true;
4103    return /[-_](\d{5,}|[a-f0-9]{8,})$/i.test(id);
4104  };
4105  const getIdPrefix = (id) => {
4106    if (id.includes('--')) return id.split('--')[0];
4107    const match = id.match(/^(.+?)[-_](\d{5,}|[a-f0-9]{8,})$/i);
4108    return match ? match[1] : null;
4109  };
4110  const getMeaningfulClasses = (el) => {
4111    if (!el.className || typeof el.className !== 'string') return [];
4112    return el.className.trim().split(/\s+/).filter(c =>
4113      c && !c.startsWith('_') && !c.startsWith('js-') &&
4114      c.length < 30 && !/^[a-f0-9]{6,}$/i.test(c) && !/^[A-Z]/.test(c)
4115    );
4116  };
4117  const isUnique = (selector) => document.querySelectorAll(selector).length === 1;
4118
4119  // Returns null if no unique selector can be generated
4120  const generateSelector = (element) => {
4121    if (!element || element === document.body || element === document.documentElement) {
4122      return null;
4123    }
4124    const classes = getMeaningfulClasses(element);
4125
4126    // Priority 1: Clean ID
4127    if (element.id && !hasUid(element.id)) return `#${element.id}`;
4128
4129    // Priority 2: ID with UID → attribute wildcard selector
4130    if (element.id && hasUid(element.id)) {
4131      const prefix = getIdPrefix(element.id);
4132      if (prefix) {
4133        const selector = `[id^="${prefix}-"]`;
4134        if (isUnique(selector)) return selector;
4135      }
4136    }
4137
4138    // Priority 3: Unique class
4139    for (const cls of classes) {
4140      if (isUnique('.' + cls)) return '.' + cls;
4141    }
4142
4143    // Priority 4: Ancestor + target class combinations (walk up to 5 levels)
4144    if (classes.length > 0) {
4145      let ancestor = element.parentElement;
4146      let depth = 0;
4147      while (ancestor && ancestor !== document.body && ancestor !== document.documentElement && depth < 5) {
4148        const ancClasses = getMeaningfulClasses(ancestor);
4149        if (ancClasses.length > 0) {
4150          const s1 = `.${ancClasses[0]} .${classes[0]}`;
4151          if (isUnique(s1)) return s1;
4152          const s2 = `.${ancClasses[0]} > .${classes[0]}`;
4153          if (isUnique(s2)) return s2;
4154        }
4155        if (ancestor.id && !hasUid(ancestor.id)) {
4156          const s3 = `#${ancestor.id} .${classes[0]}`;
4157          if (isUnique(s3)) return s3;
4158        }
4159        ancestor = ancestor.parentElement;
4160        depth++;
4161      }
4162    }
4163
4164    // NO FALLBACK - return null if no unique selector exists
4165    return null;
4166  };
4167  const hasSpecificSelector = (el) => generateSelector(el) !== null;
4168  const shouldSkipElement = (el) => {
4169    if (!el || el.hidden) return true;
4170    if (['SCRIPT', 'STYLE', 'TEMPLATE'].includes(el.tagName)) return true;
4171    if (
4172      el.closest('#pp-nav-panel') ||
4173      el.closest('#pp-nav-pill') ||
4174      el.closest('#pp-pick-overlay')
4175    )
4176      return true;
4177    if (el.hasAttribute('data-pp-message')) return true;
4178    if (!hasSpecificSelector(el)) return true;
4179    return false;
4180  };
4181  const resolveContextName = (providedContextName, messagingTemplate) => {
4182    if (providedContextName && providedContextName !== 'this area') return providedContextName;
4183    const id = messagingTemplate?.id || '';
4184    if (id.includes('cart-drawer')) return 'Cart Drawer';
4185    if (id.includes('cart')) return 'Cart Page';
4186    if (id.includes('product')) return 'Product Page';
4187    return 'this area';
4188  };
4189
4190  // Called when the cart drawer closes (via IntersectionObserver in cartDrawer.liquid)
4191  // and at the start of createNavigationPanel to tear down any existing instance.
4192  // Cleans up pick mode listeners, DOM elements, highlights, and preview clones.
4193  const destroyNavigationPanel = () => {
4194    if (_panelPickModeCleanup) {
4195      _panelPickModeCleanup();
4196      _panelPickModeCleanup = null;
4197    }
4198    document.getElementById('pp-nav-panel')?.remove();
4199    document.getElementById('pp-nav-pill')?.remove();
4200    const preview = document.querySelector('[id$="-preview"][data-pp-message]');
4201    if (preview) preview.remove();
4202    if (_highlightedElement) {
4203      _highlightedElement.style.outline = '';
4204      _highlightedElement.style.outlineOffset = '';
4205      _highlightedElement = null;
4206    }
4207    if (_panelInspectorActivate) {
4208      document.removeEventListener('shopify:inspector:activate', _panelInspectorActivate);
4209      document.removeEventListener('shopify:inspector:deactivate', _panelInspectorDeactivate);
4210      _panelInspectorActivate = _panelInspectorDeactivate = null;
4211    }
4212    document.documentElement.style.cursor = '';
4213  };
4214
4215  const createNavigationPanel = (
4216    initialElement,
4217    messagingTemplate,
4218    warningMessage = null,
4219    contextName = 'this area',
4220  ) => {
4221    let currentTarget = initialElement;
4222    let resolvedContextName = resolveContextName(contextName, messagingTemplate);
4223    destroyNavigationPanel();
4224
4225    const panel = document.createElement('div');
4226    panel.id = 'pp-nav-panel';
4227    const tmpl = document.getElementById('pp-nav-template');
4228    panel.appendChild(tmpl.content.cloneNode(true));
4229
4230    // Create minimized pill button (separate from panel)
4231    const pill = document.createElement('button');
4232    pill.id = 'pp-nav-pill';
4233    pill.innerHTML = 'PayPal Pay Later Messaging';
4234    const applyBtn = panel.querySelector('#pp-apply-btn');
4235    const warningEl = panel.querySelector('#pp-warning');
4236    const step2 = panel.querySelector('#pp-step2');
4237    const step2Dismiss = panel.querySelector('#pp-step2-dismiss');
4238    const contextEl = panel.querySelector('#pp-context-name');
4239    const selectorEl = panel.querySelector('#pp-selector-name');
4240    const updateContextUI = (newContext) => {
4241      resolvedContextName = newContext;
4242      if (contextEl) contextEl.textContent = resolvedContextName;
4243      if (selectorEl) {
4244        selectorEl.textContent = resolvedContextName;
4245      }
4246    };
4247    updateContextUI(resolvedContextName);
4248    const detectContextFromElement = (el) => {
4249      if (el.closest('#CartDrawer, .drawer, .cart-drawer, [id*="cart-drawer"], [class*="cart-drawer"]'))
4250        return 'Cart Drawer';
4251      if (window.location.pathname.endsWith('/cart') || el.closest('.cart, #cart, #main-cart-items, #main-cart-footer'))
4252        return 'Cart Page';
4253      return 'Product Page';
4254    };
4255
4256    // Show warning message if provided
4257    if (warningMessage && warningEl) {
4258      warningEl.innerHTML = `<span class="pp-warning-icon">⚠️</span>${warningMessage}`;
4259      warningEl.style.display = 'block';
4260    }
4261    let isInitialRender = true;
4262    const updateUI = () => {
4263      // Highlight element
4264      highlightElement(currentTarget);
4265      // Update button states
4266      applyBtn.textContent = COPY_BUTTON_LABEL;
4267      applyBtn.classList.remove('applied');
4268      // Reposition messaging — skip on initial render (already placed correctly by auto-detection)
4269      if (!isInitialRender) repositionMessaging();
4270      isInitialRender = false;
4271    };
4272
4273    const highlightElement = (el) => {
4274      if (_highlightedElement) {
4275        _highlightedElement.style.outline = '';
4276        _highlightedElement.style.outlineOffset = '';
4277      }
4278      _highlightedElement = el;
4279      if (el) {
4280        el.style.outline = '2px solid rgba(255,152,0,0.6)';
4281        el.style.outlineOffset = '-1px';
4282      }
4283    };
4284
4285    const repositionMessaging = () => {
4286      if (!currentTarget) return;
4287      const existing = document.getElementById(messagingTemplate.id);
4288      const targetInOverlay = isInOverlay(currentTarget);
4289      const msgInOverlay = existing && isInOverlay(existing);
4290      if (targetInOverlay !== msgInOverlay) {
4291        // Cross-context: reposition messaging in the target's context without touching the original
4292        const allMessaging = document.querySelectorAll('[data-pp-message]');
4293        let contextMsg = null;
4294        for (const el of allMessaging) {
4295          if (isInOverlay(el) === targetInOverlay) { contextMsg = el; break; }
4296        }
4297        if (!contextMsg) {
4298          contextMsg = messagingTemplate.cloneNode(true);
4299          contextMsg.id = messagingTemplate.id + '-preview';
4300        }
4301        contextMsg.remove();
4302        currentTarget.after(contextMsg);
4303        return;
4304      }
4305      if (existing) existing.remove();
4306      const newMessaging = messagingTemplate.cloneNode(true);
4307      currentTarget.after(newMessaging);
4308    };
4309
4310    const collapseBtn = panel.querySelector('#pp-collapse-btn');
4311    const pickBtn = panel.querySelector('#pp-pick-btn');
4312    let pickMode = false;
4313    let pickHoverTarget = null;
4314    let pickOverlay = null;
4315    let pickLabel = null;
4316    let applyBtnResetTimer = null;
4317    let _pickRafId = null;
4318
4319    const enterPickMode = () => {
4320      pickMode = true;
4321      document.documentElement.style.cursor = 'crosshair';
4322      pickBtn.classList.add('active');
4323      pickBtn.innerHTML = '◎ Pick a spot on the page...';
4324      applyBtn.textContent = COPY_BUTTON_LABEL;
4325      applyBtn.classList.remove('applied');
4326      applyBtn.style.display = 'flex';
4327      step2.style.display = 'none';
4328      if (contextEl) contextEl.textContent = resolvedContextName;
4329      // Create overlay for highlighting (pointer-events:none prevents interference)
4330      pickOverlay = document.createElement('div');
4331      pickOverlay.id = 'pp-pick-overlay';
4332      pickOverlay.style.cssText = OVERLAY_STYLE;
4333      pickLabel = document.createElement('div');
4334      pickLabel.style.cssText = OVERLAY_LABEL_STYLE;
4335      pickOverlay.appendChild(pickLabel);
4336      document.body.appendChild(pickOverlay);
4337
4338      document.addEventListener('mousemove', onPickHover, true);
4339      document.addEventListener('click', onPickClick, true);
4340      document.addEventListener('mousedown', onPickSuppressEvent, true);
4341      document.addEventListener('pointerdown', onPickSuppressEvent, true);
4342    };
4343
4344    const exitPickMode = () => {
4345      pickMode = false;
4346      document.documentElement.style.cursor = '';
4347      pickBtn.classList.remove('active');
4348      pickBtn.innerHTML = '◎ Start Picking Placement';
4349      applyBtn.style.display = 'none';
4350      // Remove overlay
4351      const overlay = document.getElementById('pp-pick-overlay');
4352      if (overlay) overlay.remove();
4353      pickOverlay = null;
4354      pickLabel = null;
4355      pickHoverTarget = null;
4356
4357      if (_pickRafId) { cancelAnimationFrame(_pickRafId); _pickRafId = null; }
4358      document.removeEventListener('mousemove', onPickHover, true);
4359      document.removeEventListener('click', onPickClick, true);
4360      document.removeEventListener('mousedown', onPickSuppressEvent, true);
4361      document.removeEventListener('pointerdown', onPickSuppressEvent, true);
4362    };
4363
4364    // Find the nearest visible child element to cursor coordinates
4365    const snapToNearestChild = (parent, cx, cy) => {
4366      const children = parent.children;
4367      if (!children.length) return null;
4368      let best = null;
4369      let bestDist = 30;
4370      for (const child of children) {
4371        if (shouldSkipElement(child)) continue;
4372        const r = child.getBoundingClientRect();
4373        if (r.width === 0 || r.height === 0) continue;
4374        const dx = cx < r.left ? r.left - cx : cx > r.right ? cx - r.right : 0;
4375        const dy = cy < r.top ? r.top - cy : cy > r.bottom ? cy - r.bottom : 0;
4376        const dist = Math.sqrt(dx * dx + dy * dy);
4377        if (dist < bestDist) {
4378          bestDist = dist;
4379          best = child;
4380        }
4381      }
4382      return best;
4383    };
4384
4385    const onPickHover = (e) => {
4386      if (_pickRafId) return;
4387      _pickRafId = requestAnimationFrame(() => {
4388        _pickRafId = null;
4389        let el = document.elementFromPoint(e.clientX, e.clientY);
4390        if (!el || shouldSkipElement(el)) {
4391          document.documentElement.style.cursor = 'not-allowed';
4392          if (pickOverlay) pickOverlay.style.display = 'none';
4393          pickHoverTarget = null;
4394          return;
4395        }
4396
4397        if (el.children.length > 0) {
4398          const snapped = snapToNearestChild(el, e.clientX, e.clientY);
4399          if (snapped) el = snapped;
4400        }
4401
4402        // Skip elements without a unique selector
4403        if (shouldSkipElement(el)) {
4404          document.documentElement.style.cursor = 'not-allowed';
4405          pickHoverTarget = null;
4406          if (pickOverlay) pickOverlay.style.display = 'none';
4407          return;
4408        }
4409        document.documentElement.style.cursor = 'crosshair';
4410        if (el === pickHoverTarget) return;
4411        pickHoverTarget = el;
4412        positionOverlayOnElement(pickOverlay, el);
4413        pickLabel.innerHTML = 'Select this placement';
4414      });
4415    };
4416
4417    const onPickSuppressEvent = (e) => {
4418      if (e.target.closest('#pp-nav-panel')) return;
4419      e.preventDefault();
4420      e.stopPropagation();
4421    };
4422
4423    const onPickClick = (e) => {
4424      if (e.target.closest('#pp-nav-panel')) return;
4425      e.preventDefault();
4426      e.stopPropagation();
4427      e.stopImmediatePropagation();
4428      if (pickHoverTarget && !shouldSkipElement(pickHoverTarget)) {
4429        currentTarget = pickHoverTarget;
4430        updateContextUI(detectContextFromElement(currentTarget));
4431        updateUI();
4432      }
4433    };
4434
4435    // --- Pick button ---
4436    pickBtn.addEventListener('click', () => {
4437      if (pickMode) exitPickMode();
4438      else enterPickMode();
4439    });
4440
4441    _panelPickModeCleanup = () => { if (pickMode) exitPickMode(); };
4442
4443    // --- Minimize / expand ---
4444    collapseBtn.addEventListener('click', () => {
4445      if (pickMode) exitPickMode();
4446      panel.classList.add('minimized');
4447      pill.style.display = 'flex';
4448      highlightElement(null);
4449    });
4450    pill.addEventListener('click', () => {
4451      panel.classList.remove('minimized');
4452      pill.style.display = 'none';
4453      highlightElement(currentTarget);
4454    });
4455
4456    // --- Step 2 dismiss ---
4457    step2Dismiss.addEventListener('click', () => {
4458      step2.style.display = 'none';
4459    });
4460
4461    // Handle copy button click
4462    panel.addEventListener('click', async (e) => {
4463      const button = e.target.closest('#pp-apply-btn');
4464      if (!button) return;
4465      // Skip buttons handled separately
4466      if (button.id === 'pp-collapse-btn' || button.id === 'pp-pick-btn' || button.id === 'pp-step2-dismiss') return;
4467      if (button.id === 'pp-apply-btn') {
4468        const selector = generateSelector(currentTarget);
4469        if (!selector) return;
4470        let copied = false;
4471        try {
4472          // Try multiple copy methods (iframe security blocks clipboard API)
4473          if (navigator.clipboard?.writeText) {
4474            await navigator.clipboard.writeText(selector);
4475            copied = true;
4476          }
4477        } catch {}
4478        if (!copied) {
4479          try {
4480            const ta = document.createElement('textarea');
4481            ta.value = selector;
4482            ta.style.position = 'fixed';
4483            ta.style.opacity = '0';
4484            document.body.appendChild(ta);
4485            ta.select();
4486            copied = document.execCommand('copy');
4487            ta.remove();
4488          } catch {}
4489        }
4490        if (copied) {
4491          applyBtn.textContent = COPIED_BUTTON_LABEL;
4492          applyBtn.classList.add('applied');
4493          if (applyBtnResetTimer) clearTimeout(applyBtnResetTimer);
4494          applyBtnResetTimer = setTimeout(() => {
4495            applyBtn.textContent = COPY_BUTTON_LABEL;
4496            applyBtn.classList.remove('applied');
4497            applyBtnResetTimer = null;
4498          }, 1200);
4499          // Show Step 2 confirmation
4500          step2.style.display = 'block';
4501        }
4502        exitPickMode();
4503      }
4504    });
4505
4506    // --- Inspector mode detection ---
4507    const inspectorWarning = panel.querySelector('#pp-inspector-warning');
4508    let inspectorActive = typeof Shopify !== 'undefined' && Shopify.inspectMode;
4509    const isMac = navigator.platform?.startsWith('Mac') || navigator.userAgentData?.platform === 'macOS';
4510    const shortcut = isMac ? '⌘ ⇧ I' : 'Ctrl + Shift + I';
4511    const enableInspectorMode = () => {
4512      inspectorActive = true;
4513      inspectorWarning.innerHTML = `<span class="pp-warning-icon">⚠️</span> For a better experience, press <strong>${shortcut}</strong> to turn off inspector mode`;
4514      inspectorWarning.style.display = 'block';
4515    };
4516    const disableInspectorMode = () => {
4517      inspectorActive = false;
4518      inspectorWarning.style.display = 'none';
4519    };
4520    _panelInspectorActivate = enableInspectorMode;
4521    _panelInspectorDeactivate = disableInspectorMode;
4522    document.addEventListener('shopify:inspector:activate', enableInspectorMode);
4523    document.addEventListener('shopify:inspector:deactivate', disableInspectorMode);
4524
4525    // Prevent panel/pill clicks from closing cart drawer (themes close drawer on outside mousedown)
4526    const stopBubble = (e) => e.stopPropagation();
4527    panel.addEventListener('mousedown', stopBubble);
4528    panel.addEventListener('pointerdown', stopBubble);
4529    pill.addEventListener('mousedown', stopBubble);
4530    pill.addEventListener('pointerdown', stopBubble);
4531
4532    document.body.appendChild(panel);
4533    document.body.appendChild(pill);
4534    if (inspectorActive) enableInspectorMode();
4535    updateUI();
4536    return panel;
4537  };
4538</script>
4538
4539<!-- END app snippet --><!-- BEGIN app snippet: cartDrawer -->
4539<script>
4540    // Determine correct locator by theme name
4541    const cartDrawerThemeName = window.Shopify.theme.name;
4542    let cartDrawerLocator, cartDrawerNodeToObserve, cartDrawerMutationNode;
4543
4544    switch (cartDrawerThemeName) {
4545      // to support other themes add cases
4546      // default case supports Shopify Free themes
4547      default:
4548        cartDrawerLocator = '.cart-drawer__footer .totals';
4549        cartDrawerNodeToObserve = '#CartDrawer';
4550        cartDrawerMutationNode = 'drawer__inner';
4551        break;
4552    }
4553    // Begin Upstream Messaging Implementation
4554    try {
4555      const cartDrawerMessaging = document.createElement('div');
4556      const price = 0 / 100;
4557
4558      const cartDrawerAttributes = {
4559        'id': 'paypal-upstream-messaging-cart-drawer',
4560        'data-pp-message': '',
4561        'data-pp-placement': 'cart',
4562        'data-pp-style-layout': 'text',
4563        'data-pp-style-text-align': 'right',
4564        'data-pp-style-logo-type': "inline",
4565        'data-pp-style-text-color': "black",
4566        'data-pp-style-text-size': "16",
4567        'data-pp-style-logo-position': "",
4568        'data-pp-amount': price,
4569      };
4570
4571      Object.keys(cartDrawerAttributes).forEach((key) => {
4572        cartDrawerMessaging.setAttribute(key, cartDrawerAttributes[key]);
4573      });
4574
4575      const advancedSettingsEnabled = 'true' === 'true';
4576      const customCartDrawerSelector = ''.trim();
4577
4578      if (advancedSettingsEnabled && customCartDrawerSelector !== '') {
4579        // utils.liquid
4580        cartDrawerLocator = parseSelector(customCartDrawerSelector);
4581      }
4582
4583      if ("enabled" === 'enabled') {
4584        waitForElement(cartDrawerLocator).then(elem => {
4585          elem.after(cartDrawerMessaging.cloneNode());
4586
4587          if (advancedSettingsEnabled && isIsolatedContext() && !document.getElementById('pp-nav-panel')) {
4588            let drawerPanelActive = false;
4589            new IntersectionObserver((entries) => {
4590              if (entries[0].isIntersecting) {
4591                if (!document.getElementById('pp-nav-panel')) {
4592                  setTimeout(() => {
4593                    if (!document.getElementById('pp-nav-panel')) {
4594                      createNavigationPanel(elem, cartDrawerMessaging, null, 'Cart Drawer');
4595                      drawerPanelActive = true;
4596                    }
4597                  }, 300);
4598                }
4599              } else if (drawerPanelActive) {
4600                destroyNavigationPanel();
4601                drawerPanelActive = false;
4602              }
4603            }, { threshold: 0.1 }).observe(elem);
4604          }
4605        });
4606
4607        // Custom selector not found — show navigator with warning when drawer opens
4608        if (advancedSettingsEnabled && customCartDrawerSelector && !document.querySelector(cartDrawerLocator) && isIsolatedContext() && !document.getElementById('pp-nav-panel')) {
4609          const drawerContainer = document.querySelector(cartDrawerNodeToObserve);
4610          if (drawerContainer) {
4611            let warningPanelActive = false;
4612            const warning = 'Selected placement not found on this page. Please choose an element that is present on all page templates.';
4613            recordEvent('appEmbed:advanced-settings-selector-not-found', { locator: cartDrawerLocator });
4614            new IntersectionObserver((entries) => {
4615              if (entries[0].isIntersecting) {
4616                if (!document.getElementById('pp-nav-panel')) {
4617                  setTimeout(() => {
4618                    if (!document.getElementById('pp-nav-panel')) {
4619                      createNavigationPanel(drawerContainer, cartDrawerMessaging, warning, 'Cart Drawer');
4620                      warningPanelActive = true;
4621                    }
4622                  }, 300);
4623                }
4624              } else if (warningPanelActive) {
4625                destroyNavigationPanel();
4626                warningPanelActive = false;
4627              }
4628            }, { threshold: 0.1 }).observe(drawerContainer);
4629          }
4630        }
4631
4632        // utils.liquid
4633        watchForCartChanges(cartDrawerLocator, cartDrawerMessaging);
4634      }
4635    } catch (e) {
4636      // utils.liquid
4637      recordEvent('appEmbed:query-selector-not-found-cart-drawer', { locator: cartDrawerLocator, error: e.message });
4638    }
4639  </script>
4639
4640<!-- END app snippet -->
4641
4642
4643</div><div id="shopify-block-AYWlrTlpQRGRQaXlOZ__5280235153711299465" class="shopify-block shopify-app-block">
4643<script>
4644  window.__widerrufLocale = "de";
4645  
4646  
4647    window.__widerrufSettings = JSON.parse("{\"buttonMode\":\"menu_item\",\"menuItemNames\":[\"Vertrag widerrufen\"],\"euOnly\":false,\"backgroundColor\":\"#fed133\",\"textColor\":\"#000000\",\"borderRadius\":\"20px\",\"displayMode\":\"page\",\"panelPosition\":\"right\",\"floatingButtonText\":\"Vertrag widerrufen\",\"floatingButtonPosition\":\"bottom-right\",\"panelTitle\":\"Widerruf\",\"fontWeight\":\"400\",\"buttonSize\":\"small\",\"marginTop\":5,\"marginBottom\":5,\"i18n\":{\"en\":{\"floatingButtonText\":\"Withdraw contract\",\"panelTitle\":\"Withdrawal\"},\"fr\":{\"floatingButtonText\":\"Rétracter le contrat\",\"panelTitle\":\"Rétractation\"},\"it\":{\"floatingButtonText\":\"Recedere dal contratto\",\"panelTitle\":\"Recesso\"},\"es\":{\"floatingButtonText\":\"Desistir del contrato\",\"panelTitle\":\"Desistimiento\"},\"nl\":{\"floatingButtonText\":\"Overeenkomst herroepen\",\"panelTitle\":\"Herroeping\"},\"pl\":{\"floatingButtonText\":\"Odstąp od umowy\",\"panelTitle\":\"Odstąpienie od umowy\"}}}");
4648  
4649</script>
4649
4650
4651<script>
4652  (function () {
4653    var src = "https:\/\/cdn.shopify.com\/extensions\/01a0eecd-e3cf-72d9-81f3-f3f881b5b528\/checkout-regeln-grosse-warenkoerbe-2026-09-29\/assets\/widerruf-button.js";
4654    function ensure() {
4655      if (window.__widerrufButtonLoaded) return;
4656      var s = document.createElement("script");
4657      s.src = src;
4658      s.defer = true;
4659      document.head.appendChild(s);
4660    }
4661    if (document.readyState === "complete") {
4662      ensure();
4663    } else {
4664      window.addEventListener("load", ensure);
4665    }
4666  })();
4667</script>
4667
4668
4669
4670</div><div id="shopify-block-AVG5qQ0sxL0pGS1p1Z__6770548097779500122" class="shopify-block shopify-app-block">                                         <!-- BEGIN app snippet: banners -->                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <koala-gifts-banners  class="koala--hidden koala-element--app-embed-block"  data-state="eyAgICAgICAidHlwZXMiOiBbIkFOTk9VTkNFTUVOVF9CQU5ORVIiLCJQUk9EVUNUX1BBR0VfQkFOTkVSIiwiUkVXQVJEX1NIT1dDQVNFIiwiUkVXQVJEX1NIT1dDQVNFX1VQU0VMTCJdLCAgICAgICAiZW1iZWRkZWQiOiB0cnVlLCAgICAgICAidGVtcGxhdGUiOiB7ICAgICAgICAgIm5hbWUiOiAic2VhcmNoIiAgICAgICB9LCAgICAgICAgICAgICAgImFwcCI6IHsgICAgICAgICAicHJveHlTdWJQYXRoIjogImtvYWxhLXVwc2VsbC1naWZ0IiAgICAgICB9LCAgICAgICAiY3VzdG9tZXIiOiB7ICAgICAgICAgImlzQXV0aGVudGljYXRlZCI6IGZhbHNlLCAgICAgICAgICJhbGxUaW1lQW1vdW50U3BlbnQiOiAwLCAgICAgICAgICJhbGxUaW1lT3JkZXJzQ291bnQiOiAwLCAgICAgICAgICJ0YWdzIjogeyAgICAgICAgICAgICAgICAgICAgfSAgICAgICB9LCAgICAgICAic2hvcCI6IHsgICAgICAgICAibG9jYWxlIjogImRlIiwgICAgICAgICAibW9uZXlGb3JtYXQiOiAi4oKse3thbW91bnRfd2l0aF9jb21tYV9zZXBhcmF0b3J9fSIsICAgICAgICAgImZsYWdzIjoge30gICAgICAgfSwgICAgICAgIm9mZmVycyI6IFsgICAgICAgICAgICAgICAgICAgIHsgICAgICAgICAgICAgImlkIjogImNtZGluNXRqdDBwZHh6NTFpaWVjOGo3M20iLCAgICAgICAgICAgICAiZGVmaW5pdGlvbiI6IHsidGllcnMiOlt7ImlkIjoiNjBlZjU5MzYtZGI3Ny00MWIyLTljMzUtMWRlZjYzNjllMDVmIiwibmFtZSI6IlRpZXIgMSIsInJld2FyZCI6eyJ0eXBlIjoiUFJPRFVDVCIsIml0ZW1zIjpbeyJpZCI6ImdpZDpcL1wvc2hvcGlmeVwvUHJvZHVjdFwvMTUwODM5MDA0Njk2MjciLCJoYW5kbGUiOiJmbGV4cHVtcC1tb2JpbGVyLW1pbmkta29tcHJlc3NvciIsInZhcmlhbnRzIjpbeyJpZCI6ImdpZDpcL1wvc2hvcGlmeVwvUHJvZHVjdFZhcmlhbnRcLzU1NDU3MDk2MDQwODI3IiwicXVhbnRpdHkiOjF9XX1dLCJkaXNjb3VudCI6eyJuYW1lIjp7InZhbHVlIjoiRlJFRSBHSUZUIn0sInR5cGUiOiJQRVJDRU5UQUdFIiwidmFsdWUiOjEwMH19LCJ0cmlnZ2VycyI6W3sidHlwZSI6IlNQRUNJRklDX1BST0RVQ1QiLCJpdGVtcyI6W3siaWQiOiJnaWQ6XC9cL3Nob3BpZnlcL1Byb2R1Y3RcLzE1MDgzODk3MjU4MzYzIiwidmFyaWFudHMiOlt7ImlkIjoiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0VmFyaWFudFwvNTU0NTcwODY5OTY4NTkifV19LHsiaWQiOiJnaWQ6XC9cL3Nob3BpZnlcL1Byb2R1Y3RcLzE1MDQ4NTczMzg3MTMxIiwidmFyaWFudHMiOlt7ImlkIjoiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0VmFyaWFudFwvNTUzNTI5MjE2NTM2MjcifSx7ImlkIjoiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0VmFyaWFudFwvNTUzNTI5MjE3MTkxNjMifV19LHsiaWQiOiJnaWQ6XC9cL3Nob3BpZnlcL1Byb2R1Y3RcLzE1MDgzODk3MDk0NTIzIiwidmFyaWFudHMiOlt7ImlkIjoiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0VmFyaWFudFwvNTU0NTcwODY4MzMwMTkifV19LHsiaWQiOiJnaWQ6XC9cL3Nob3BpZnlcL1Byb2R1Y3RcLzE1MDgzODk3MTYwMDU5IiwidmFyaWFudHMiOlt7ImlkIjoiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0VmFyaWFudFwvNTU0NTcwODY4OTg1NTUifV19LHsiaWQiOiJnaWQ6XC9cL3Nob3BpZnlcL1Byb2R1Y3RcLzE1MDgzODk3MTkyODI3IiwidmFyaWFudHMiOlt7ImlkIjoiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0VmFyaWFudFwvNTU0NTcwODY5MzEzMjMifV19LHsiaWQiOiJnaWQ6XC9cL3Nob3BpZnlcL1Byb2R1Y3RcLzE1MDgzODk3MjI1NTk1IiwidmFyaWFudHMiOlt7ImlkIjoiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0VmFyaWFudFwvNTU0NTcwODY5NjQwOTEifV19LHsiaWQiOiJnaWQ6XC9cL3Nob3BpZnlcL1Byb2R1Y3RcLzE1MDgzODk3NDg3NzM5IiwidmFyaWFudHMiOlt7ImlkIjoiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0VmFyaWFudFwvNTU0NTcwODcyMjYyMzUifV19LHsiaWQiOiJnaWQ6XC9cL3Nob3BpZnlcL1Byb2R1Y3RcLzE1MDgzODk3NTIwNTA3IiwidmFyaWFudHMiOlt7ImlkIjoiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0VmFyaWFudFwvNTU0NTcwODcyNTkwMDMifV19LHsiaWQiOiJnaWQ6XC9cL3Nob3BpZnlcL1Byb2R1Y3RcLzE1MDgzODk3NTUzMjc1IiwidmFyaWFudHMiOlt7ImlkIjoiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0VmFyaWFudFwvNTU0NTcwODcyOTE3NzEifV19LHsiaWQiOiJnaWQ6XC9cL3Nob3BpZnlcL1Byb2R1Y3RcLzE1MDgzODk3NjE4ODExIiwidmFyaWFudHMiOlt7ImlkIjoiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0VmFyaWFudFwvNTU0NTcwODczNTczMDcifV19LHsiaWQiOiJnaWQ6XC9cL3Nob3BpZnlcL1Byb2R1Y3RcLzE1MDgzODk3NjUxNTc5IiwidmFyaWFudHMiOlt7ImlkIjoiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0VmFyaWFudFwvNTU0NTcwODczOTAwNzUifSx7ImlkIjoiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0VmFyaWFudFwvNTU2Mzc5Nzg5MDcwMDMifSx7ImlkIjoiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0VmFyaWFudFwvNTU2Mzc5Nzg5Mzk3NzEifSx7ImlkIjoiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0VmFyaWFudFwvNTU2Mzc5Nzg5NzI1MzkifV19LHsiaWQiOiJnaWQ6XC9cL3Nob3BpZnlcL1Byb2R1Y3RcLzE1MDgzODk3Njg0MzQ3IiwidmFyaWFudHMiOlt7ImlkIjoiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0VmFyaWFudFwvNTU0NTcwODc0MjI4NDMifV19LHsiaWQiOiJnaWQ6XC9cL3Nob3BpZnlcL1Byb2R1Y3RcLzE1MDgzODk3NzE3MTE1IiwidmFyaWFudHMiOlt7ImlkIjoiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0VmFyaWFudFwvNTU0NTcwODc0NTU2MTEifSx7ImlkIjoiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0VmFyaWFudFwvNTU0NTcwODc0ODgzNzkifV19XSwicnVsZXMiOltdfV19XSwiYWN0aW9uIjoiQVVUT19BRERfVE9fQ0FSVCIsIm9wdGlvbnMiOnsibGltaXQiOnsidmFsdWUiOjUsImVuYWJsZWQiOnRydWV9LCJzY2hlZHVsZSI6eyJzdGFydCI6IjIwMjUtMDctMjRUMDk6NTk6NDEuMzQxWiIsImVuYWJsZWQiOmZhbHNlfSwid29ya3NJblJldmVyc2UiOmZhbHNlfSwidmVyc2lvbiI6IlYyIn0sICAgICAgICAgICAgICJjb21wYXRpYmlsaXR5Ijoge30sICAgICAgICAgICAgICJ0ZW1wbGF0ZSI6IHt9LCAgICAgICAgICAgICAidHlwZSI6ICJCWEdZIiAgICAgICAgICAgfSAgICAgICAgICAgICAgICBdLCAgICAgICAicmV3YXJkUHJvZHVjdHMiOiB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjYwZWY1OTM2LWRiNzctNDFiMi05YzM1LTFkZWY2MzY5ZTA1ZiI6IFsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI
4670HsgICAgICAgICAgICAgICAgICAgICAgICJpZCI6IDE1MDgzOTAwNDY5NjI3LCAgICAgICAgICAgICAgICAgICAgICAgInRpdGxlIjogIk9EWVMgRmxleFB1bXAgLSBNb2JpbGVyIE1pbmkgS29tcHJlc3NvciIsICAgICAgICAgICAgICAgICAgICAgICAiaGFzT25seURlZmF1bHRWYXJpYW50IjogdHJ1ZSwgICAgICAgICAgICAgICAgICAgICAgICJyZXF1aXJlc1NlbGxpbmdQbGFuIjogZmFsc2UsICAgICAgICAgICAgICAgICAgICAgICAiZmVhdHVyZWRfaW1hZ2UiOiAiXC9cL29kaXBvcm8uZGVcL2Nkblwvc2hvcFwvZmlsZXNcL3g5MTAwMDEtb2R5cy1mbGV4cHVtcC1taW5pYWlyY29tcHBiMTIwMHgxMjAwcHh2MDJqcGctMTA1NTg3LmpwZz92PTE3NDgyMjI3MjQiLCAgICAgICAgICAgICAgICAgICAgICAgInVybCI6ICIvcHJvZHVjdHMvZmxleHB1bXAtbW9iaWxlci1taW5pLWtvbXByZXNzb3IiLCAgICAgICAgICAgICAgICAgICAgICAgInZhcmlhbnRzIjogWyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaWQiOiA1NTQ1NzA5NjA0MDgyNywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRpdGxlIjogIkRlZmF1bHQgVGl0bGUiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJpY2UiOiAzOTk5LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29tcGFyZV9hdF9wcmljZSI6IDQ5OTksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhdmFpbGFibGUiOiB0cnVlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZmVhdHVyZWRfaW1hZ2UiOiBudWxsLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW52ZW50b3J5X21hbmFnZW1lbnQiOiAic2hvcGlmeSIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbnZlbnRvcnlfcG9saWN5IjogIkNPTlRJTlVFIiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImludmVudG9yeV9xdWFudGl0eSI6IDgwNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdICAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAgICAgICAibWFya2V0IjogeyAgICAgICAgICJpZCI6ICI5NjM3MTM3NjUwNyIsICAgICAgICAgImNvdW50cnlDb2RlIjogIkRFIiwgICAgICAgICAibGFuZ3VhZ2VDb2RlIjogIkRFIiAgICAgICB9LCAgICAgICAic2VsZWN0b3JzIjogW10gICAgIH0="></koala-gifts-banners>   <!-- END app snippet -->     <!-- BEGIN app snippet: styles -->  <!-- END app snippet -->     <!-- BEGIN app snippet: script -->   <!-- END app snippet -->                  <koala-gifts data-state="eyAgICAgICAidGVtcGxhdGUiOiB7ICAgICAgICJuYW1lIjogInNlYXJjaCIgICAgICAgfSwgICAgICAgICAgICAgICJhcHAiOiB7ICAgICAgICJwcm94eVN1YlBhdGgiOiAia29hbGEtdXBzZWxsLWdpZnQiICAgICAgIH0sICAgICAgICJjdXN0b21lciI6IHsgICAgICAgImlzQXV0aGVudGljYXRlZCI6IGZhbHNlLCAgICAgICAiYWxsVGltZUFtb3VudFNwZW50IjogMCwgICAgICAgImFsbFRpbWVPcmRlcnNDb3VudCI6IDAsICAgICAgICJ0YWdzIjogeyAgICAgICAgICAgICAgfSAgICAgICB9LCAgICAgICAic2hvcCI6IHsgICAgICAgImxvY2FsZSI6ICJkZSIsICAgICAgICJtb25leUZvcm1hdCI6ICLigqx7e2Ftb3VudF93aXRoX2NvbW1hX3NlcGFyYXRvcn19IiwgICAgICAgImZsYWdzIjoge30gICAgICAgfSwgICAgICAgIm9mZmVycyI6IFsgICAgICAgICAgICAgICAgeyAgICAgICAgICJpZCI6ICJjbWRpbjV0anQwcGR4ejUxaWllYzhqNzNtIiwgICAgICAgICAiZGVmaW5pdGlvbiI6IHsidGllcnMiOlt7ImlkIjoiNjBlZjU5MzYtZGI3Ny00MWIyLTljMzUtMWRlZjYzNjllMDVmIiwibmFtZSI6IlRpZXIgMSIsInJld2FyZCI6eyJ0eXBlIjoiUFJPRFVDVCIsIml0ZW1zIjpbeyJpZCI6ImdpZDpcL1wvc2hvcGlmeVwvUHJvZHVjdFwvMTUwODM5MDA0Njk2MjciLCJoYW5kbGUiOiJmbGV4cHVtcC1tb2JpbGVyLW1pbmkta29tcHJlc3NvciIsInZhcmlhbnRzIjpbeyJpZCI6ImdpZDpcL1wvc2hvcGlmeVwvUHJvZHVjdFZhcmlhbnRcLzU1NDU3MDk2MDQwODI3IiwicXVhbnRpdHkiOjF9XX1dLCJkaXNjb3VudCI6eyJuYW1lIjp7InZhbHVlIjoiRlJFRSBHSUZUIn0sInR5cGUiOiJQRVJDRU5UQUdFIiwidmFsdWUiOjEwMH19LCJ0cmlnZ2VycyI6W3sidHlwZSI6IlNQRUNJRklDX1BST0RVQ1QiLCJpdGVtcyI6W3siaWQiOiJnaWQ6XC9cL3Nob3BpZnlcL1Byb2R1Y3RcLzE1MDgzODk3MjU4MzYzIiwidmFyaWFudHMiOlt7ImlkIjoiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0VmFyaWFudFwvNTU0NTcwODY5OTY4NTkifV19LHsiaWQiOiJnaWQ6XC9cL3Nob3BpZnlcL1Byb2R1Y3RcLzE1MDQ4NTczMzg3MTMxIiwidmFyaWFudHMiOlt7ImlkIjoiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0VmFyaWFudFwvNTUzNTI5MjE2NTM2MjcifSx7ImlkIjoiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0VmFyaWFudFwvNTUzNTI5MjE3MTkxNjMifV19LHsiaWQiOiJnaWQ6XC9cL3Nob3BpZnlcL1Byb2R1Y3RcLzE1MDgzODk3MDk0NTIzIiwidmFyaWFudHMiOlt7ImlkIjoiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0VmFyaWFudFwvNTU0NTcwODY4MzMwMTkifV19LHsiaWQiOiJnaWQ6XC9cL3Nob3BpZnlcL1Byb2R1Y3RcLzE1MDgzODk3MTYwMDU5IiwidmFyaWFudHMiOlt7ImlkIjoiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0VmFyaWFudFwvNTU0NTcwODY4OTg1NTUifV19LHsiaWQiOiJnaWQ6XC9cL3Nob3BpZnlcL1Byb2R1Y3RcLzE1MDgzODk3MTkyODI3IiwidmFyaWFudHMiOlt7ImlkIjoiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0VmFyaWFudFwvNTU0NTcwODY5MzEzMjMifV19LHsiaWQiOiJnaWQ6XC9cL3Nob3BpZnlcL1Byb2R1Y3RcLzE1MDgzODk3MjI1NTk1IiwidmFyaWFudHMiOlt7ImlkIjoiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0VmFyaWFudFwvNTU0NTcwODY5NjQwOTEifV19LHsiaWQiOiJnaWQ6XC9cL3Nob3BpZnlcL1Byb2R1Y3RcLzE1MDgzODk3NDg3NzM5IiwidmFyaWFudHMiOlt7ImlkIjoiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0VmFyaWFudFwvNTU0NTcwODcyMjYyMzUifV19LHsiaWQiOiJnaWQ6XC9cL3Nob3BpZnlcL1Byb2R1Y3RcLzE1MDgzODk3NTIwNTA3IiwidmFyaWFudHMiOlt7ImlkIjoiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0VmFyaWFudFwvNTU0NTcwODcyNTkwMDMifV19LHsiaWQiOiJnaWQ6XC9cL3Nob3BpZnlcL1Byb2R1Y3RcLzE1MDgzODk3NTUzMjc1IiwidmFyaWFudHMiOlt7ImlkIjoiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0VmFyaWFudFwvNTU0NTcwODcyOTE3NzEifV19LHsiaWQiOiJnaWQ6XC9cL3Nob3BpZnlcL1Byb2R1Y3RcLzE1MDgzODk3NjE4ODExIiwidmFyaWFudHMiOlt7ImlkIjoiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0VmFyaWFudFwvNTU0NTcwODczNTczMDcifV19LHsiaWQiOiJnaWQ6XC9cL3Nob3BpZnlcL1Byb2R1Y3RcLzE1MDgzODk3NjUxNTc5IiwidmFyaWFudHMiOlt7ImlkIjoiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0VmFyaWFudFwvNTU0NTcwODczOTAwNzUifSx7ImlkIjoiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0VmFyaWFudFwvNTU2Mzc5Nzg5MDcwMDMifSx7ImlkIjoiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0VmFyaWFudFwvNTU2Mzc5Nzg5Mzk3NzEifSx7ImlkIjoiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0VmFyaWFudFwvNTU2Mzc5Nzg5NzI1MzkifV19LHsiaWQiOiJnaWQ6XC9cL3Nob3BpZnlcL1Byb2R1Y3RcLzE1MDgzODk3Njg0MzQ3IiwidmFyaWFudHMiOlt7ImlkIjoiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0VmFyaWFudFwvNTU0NTcwODc0MjI4NDMifV19LHsiaWQiOiJnaWQ6XC9cL3Nob3BpZnlcL1Byb2R1Y3RcLzE1MDgzODk3NzE3MTE1IiwidmFyaWFudHMiOlt7ImlkIjoiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0VmFyaWFudFwvNTU0NTcwODc0NTU2MTEifSx7ImlkIjoiZ2lkOlwvXC9zaG9waWZ5XC9Qcm9kdWN0VmFyaWFudFwvNTU0NTcwODc0ODgzNzkifV19XSwicnVsZXMiOltdfV19XSwiYWN0aW9uIjoiQVVUT19BRERfVE9fQ0FSVCIsIm9wdGlvbnMiOnsibGltaXQiOnsidmFsdWUiOjUsImVuYWJsZWQiOnRydWV9LCJzY2hlZHVsZSI6eyJzdGFydCI6IjIwMjUtMDctMjRUMDk6NTk6NDEuMzQxWiIsImVuYWJsZWQiOmZhbHNlfSwid29ya3NJblJldmVyc2UiOmZhbHNlfSwidmVyc2lvbiI6IlYyIn0sICAgICAgICAgImNvbXBhdGliaWxpdHkiOiB7fSwgICAgICAgICAidGVtcGxhdGUiOiB7fSwgICAgICAgICAidHlwZSI6ICJCWEdZIiAgICAgICAgI
4670H0gICAgICAgICAgICAgIF0sICAgICAgICJyZXdhcmRQcm9kdWN0cyI6IHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjYwZWY1OTM2LWRiNzctNDFiMi05YzM1LTFkZWY2MzY5ZTA1ZiI6IFsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICJpZCI6IDE1MDgzOTAwNDY5NjI3LCAgICAgICAgICAgICAgICAgICAgICAgInRpdGxlIjogIk9EWVMgRmxleFB1bXAgLSBNb2JpbGVyIE1pbmkgS29tcHJlc3NvciIsICAgICAgICAgICAgICAgICAgICAgICAiaGFzT25seURlZmF1bHRWYXJpYW50IjogdHJ1ZSwgICAgICAgICAgICAgICAgICAgICAgICJyZXF1aXJlc1NlbGxpbmdQbGFuIjogZmFsc2UsICAgICAgICAgICAgICAgICAgICAgICAiZmVhdHVyZWRfaW1hZ2UiOiAiXC9cL29kaXBvcm8uZGVcL2Nkblwvc2hvcFwvZmlsZXNcL3g5MTAwMDEtb2R5cy1mbGV4cHVtcC1taW5pYWlyY29tcHBiMTIwMHgxMjAwcHh2MDJqcGctMTA1NTg3LmpwZz92PTE3NDgyMjI3MjQiLCAgICAgICAgICAgICAgICAgICAgICAgInVybCI6ICIvcHJvZHVjdHMvZmxleHB1bXAtbW9iaWxlci1taW5pLWtvbXByZXNzb3IiLCAgICAgICAgICAgICAgICAgICAgICAgInZhcmlhbnRzIjogWyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpZCI6IDU1NDU3MDk2MDQwODI3LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGl0bGUiOiAiRGVmYXVsdCBUaXRsZSIsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcmljZSI6IDM5OTksICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb21wYXJlX2F0X3ByaWNlIjogNDk5OSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImF2YWlsYWJsZSI6IHRydWUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmZWF0dXJlZF9pbWFnZSI6IG51bGwsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbnZlbnRvcnlfbWFuYWdlbWVudCI6ICJzaG9waWZ5IiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImludmVudG9yeV9wb2x
4670pY3kiOiAiQ09OVElOVUUiLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW52ZW50b3J5X3F1YW50aXR5IjogODA2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSAgICAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAgICAgICAibWFya2V0IjogeyAgICAgICAiaWQiOiAiOTYzNzEzNzY1MDciLCAgICAgICAiY291bnRyeUNvZGUiOiAiREUiLCAgICAgICAibGFuZ3VhZ2VDb2RlIjogIkRFIiAgICAgICB9ICAgICAgIH0="></koala-gifts>           <!-- BEGIN app snippet: koala-ids -->      <!-- END app snippet -->           </div>
4670<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
4670
4671</body>
4672</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.