1<!doctype html> 2<html class="no-js" lang="cs"> 3 4 <head> 5
5<script src="//sayu.cz/cdn/shop/files/pandectes-rules.js?v=13673405641451780896"></script>
5 6 <meta charset="utf-8"> 7 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 8 <meta name="viewport" content="width=device-width,initial-scale=1"> 9 <meta name="theme-color" content=""> 10 <link rel="canonical" href="https://sayu.cz/pages/vogue-cs-x-red-salon-concept-store-new-talents"><link rel="icon" type="image/png" href="//sayu.cz/cdn/shop/files/Y_40_x_40_px.png?crop=center&height=32&v=1706272160&width=32"><link rel="preconnect" href="https://fonts.shopifycdn.com" crossorigin><title> 11 Vogue CS x Red Salon Concept Store: New Talents 12 – SAYU</title> 13 14 15 <meta name="description" content=""> 16 17 18 19 20<meta property="og:site_name" content="SAYU"> 21<meta property="og:url" content="https://sayu.cz/pages/vogue-cs-x-red-salon-concept-store-new-talents"> 22<meta property="og:title" content="Vogue CS x Red Salon Concept Store: New Talents"> 23<meta property="og:type" content="website"> 24<meta property="og:description" content="Menstruovat s elegancà - nové Äeské menstruaÄnà kalhotky s unikátnà technologiÃ. Už žádné pravidelné vyhazovánà použitých vložek nebo tampónů. S kalhotkami SAYU nejen chránÃte pÅÃrodu, ale zažÃváte pocit svobody a elegance."><meta property="og:image" content="http://sayu.cz/cdn/shop/files/Bodro_Velikonoce-4.png?v=1651754923"> 25 <meta property="og:image:secure_url" content="https://sayu.cz/cdn/shop/files/Bodro_Velikonoce-4.png?v=1651754923"> 26 <meta property="og:image:width" content="1200"> 27 <meta property="og:image:height" content="628"><meta name="twitter:card" content="summary_large_image"> 28<meta name="twitter:title" content="Vogue CS x Red Salon Concept Store: New Talents"> 29<meta name="twitter:description" content="Menstruovat s elegancà - nové Äeské menstruaÄnà kalhotky s unikátnà technologiÃ. Už žádné pravidelné vyhazovánà použitých vložek nebo tampónů. S kalhotkami SAYU nejen chránÃte pÅÃrodu, ale zažÃváte pocit svobody a elegance."> 30 31 32
32<script src="//sayu.cz/cdn/shop/t/31/assets/constants.js?v=58251544750838685771705621625" defer="defer"></script>
32 33
33<script src="//sayu.cz/cdn/shop/t/31/assets/pubsub.js?v=158357773527763999511705621627" defer="defer"></script>
33 34
34<script src="//sayu.cz/cdn/shop/t/31/assets/global.js?v=54939145903281508041705621617" defer="defer"></script>
34<script src="//sayu.cz/cdn/shop/t/31/assets/animations.js?v=88693664871331136111705621627" defer="defer"></script>
34<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
34<meta name="google-site-verification" content="RH8F_e8Dl2jQb0dx-Inlax0y4Aa1KCz6yydhtqSvVXs"> 35<meta name="google-site-verification" content="n3pmTHszuNA-aCfyTFjjf_69upM3jo7vXm4nBPQfXjo"> 36<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/53911060673/digital_wallets/dialog"> 37<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
37<script async="async" src="/checkouts/internal/preloads.js?locale=cs-CZ"></script>
vendor: 1 bytes, line 37
37
38<script id="apple-pay-shop-capabilities" type="application/json">{"shopId":53911060673,"countryCode":"CZ","currencyCode":"CZK","merchantCapabilities":["supports3DS"],"merchantId":"gid:\/\/shopify\/Shop\/53911060673","merchantName":"SAYU","requiredBillingContactFields":["postalAddress","email","phone"],"requiredShippingContactFields":["postalAddress","email","phone"],"shippingType":"shipping","supportedNetworks":["visa","masterCard","maestro"],"total":{"type":"pending","label":"SAYU","amount":"1.00"},"shopifyPaymentsEnabled":true,"supportsSubscriptions":true}</script>
vendor: 1 bytes, line 38
38
39<script id="shopify-features" type="application/json">{"accessToken":"a4ecbc2bd24bae36fe57276bf48c07fb","betas":["rich-media-storefront-analytics"],"domain":"sayu.cz","predictiveSearch":true,"shopId":53911060673,"locale":"cs"}</script>
vendor: 1 bytes, line 39
39
40<script>var Shopify = Shopify || {}; 41Shopify.shop = "sayucz.myshopify.com"; 42Shopify.locale = "cs"; 43Shopify.currency = {"active":"CZK","rate":"1.0"}; 44Shopify.country = "CZ"; 45Shopify.theme = {"name":"sayu-cz\/master","id":132352508097,"schema_name":"Dawn","schema_version":"11.0.0","theme_store_id":null,"role":"main"}; 46Shopify.theme.handle = "null"; 47Shopify.theme.style = {"id":null,"handle":null}; 48Shopify.cdnHost = "sayu.cz/cdn"; 49Shopify.routes = Shopify.routes || {}; 50Shopify.routes.root = "/"; 51Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js"; 52Shopify.SignInWithShop = Shopify.SignInWithShop || {}; 53Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {}; 54Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 54
54
55<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 55
55
56<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 56
56
57<script> 58 window.Shopify = window.Shopify || {}; 59 window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {}; 60 window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 }; 61 window.Shopify.SignInWithShop.eligible = true; 62</script>
vendor: 1 bytes, line 62
62
63<script id="shop-js-analytics" type="application/json">{"pageType":"page"}</script>
vendor: 1 bytes, line 63
63
64<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.cs.esm.js"></script>
vendor: 1 bytes, line 64
64
65<script type="module"> 66 await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.cs.esm.js"); 67 68 window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true}); 69 70</script>
vendor: 1 bytes, line 70
70
71<script> 72 window.Shopify = window.Shopify || {}; 73 if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {}; 74 window.Shopify.featureAssets['shop-js'] = {"avatar":["modules/v2/loader.avatar.cs.esm.js"],"checkout-modal":["modules/v2/loader.checkout-modal.cs.esm.js"],"init-customer-accounts-sign-up":["modules/v2/loader.init-customer-accounts-sign-up.cs.esm.js"],"init-customer-accounts":["modules/v2/loader.init-customer-accounts.cs.esm.js"],"init-fed-cm":["modules/v2/loader.init-fed-cm.cs.esm.js"],"init-shop-cart-sync":["modules/v2/loader.init-shop-cart-sync.cs.esm.js"],"init-shop-email-lookup-coordinator":["modules/v2/loader.init-shop-email-lookup-coordinator.cs.esm.js"],"init-shop-for-new-customer-accounts":["modules/v2/loader.init-shop-for-new-customer-accounts.cs.esm.js"],"init-shop-user-recognition":["modules/v2/loader.init-shop-user-recognition.cs.esm.js"],"init-windoid":["modules/v2/loader.init-windoid.cs.esm.js"],"lead-capture":["modules/v2/loader.lead-capture.cs.esm.js"],"listener":["modules/v2/loader.listener.cs.esm.js"],"pay-button":["modules/v2/loader.pay-button.cs.esm.js"],"payment-terms":["modules/v2/loader.payment-terms.cs.esm.js"],"shop-button":["modules/v2/loader.shop-button.cs.esm.js"],"shop-cart-sync":["modules/v2/loader.shop-cart-sync.cs.esm.js"],"shop-cash-offers":["modules/v2/loader.shop-cash-offers.cs.esm.js"],"shop-follow-button":["modules/v2/loader.shop-follow-button.cs.esm.js"],"shop-login-button":["modules/v2/loader.shop-login-button.cs.esm.js"],"shop-login":["modules/v2/loader.shop-login.cs.esm.js"],"shop-toast-manager":["modules/v2/loader.shop-toast-manager.cs.esm.js"],"shop-user-recognition":["modules/v2/loader.shop-user-recognition.cs.esm.js"]}; 75</script>
vendor: 1 bytes, line 75
75
76<script>(function() { 77 var isLoaded = false; 78 function asyncLoad() { 79 if (isLoaded) return; 80 isLoaded = true; 81 var urls = ["https:\/\/chimpstatic.com\/mcjs-connected\/js\/users\/54ab5874787b1bf068de866bc\/9269e2be23cabcd5a242711a6.js?shop=sayucz.myshopify.com","https:\/\/geotargetly.co\/grsp?id=-NE9se2rq1VNJaIN-N72\u0026shop=sayucz.myshopify.com","\/\/cdn.shopify.com\/proxy\/24fa43ed20c10efcfe5cdc4a2b5acef81bc88e41774291bc153c74d7a78b83c3\/api.goaffpro.com\/loader.js?shop=sayucz.myshopify.com\u0026sp-cache-control=cHVibGljLCBtYXgtYWdlPTkwMA"]; 82 for (var i = 0; i < urls.length; i++) { 83 var s = document.createElement('script'); 84 s.type = 'text/javascript'; 85 s.async = true; 86 s.src = urls[i]; 87 var x = document.getElementsByTagName('script')[0]; 88 x.parentNode.insertBefore(s, x); 89 } 90 }; 91 if(window.attachEvent) { 92 window.attachEvent('onload', asyncLoad); 93 } else { 94 window.addEventListener('load', asyncLoad, false); 95 } 96})();</script>
vendor: 1 bytes, line 96
96
97<script id="__st">var __st={"a":53911060673,"offset":7200,"reqid":"72f7ec70-eea6-4d93-a356-023a14d3f685-1791428393","pageurl":"sayu.cz\/pages\/vogue-cs-x-red-salon-concept-store-new-talents","s":"pages-164279615829","u":"5067e3441ecd","p":"page","rtyp":"page","rid":164279615829};</script>
vendor: 1 bytes, line 97
97
98<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 98
98
99<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:'ChránÄno technologià hCaptcha',privacyText:'Ochrana osobnÃch údajů',termsText:'PodmÃnky'},(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 99
99
100<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//sayu.cz/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 100
100
101<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 = "//sayu.cz/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>
101<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 101
101
102<script> 103 window.Shopify = window.Shopify || {}; 104 window.Shopify.MCP = window.Shopify.MCP || {}; 105 window.Shopify.MCP.enabled = true; 106 window.Shopify.MCP.shop = "sayucz.myshopify.com"; 107 window.Shopify.MCP.mcpEndpoint = "https:\/\/sayu.cz\/api\/mcp"; 108 window.Shopify.MCP.tools = [{"name":"search_shop_policies_and_faqs","description":"Used to get facts about the stores policies, products, or services.\nSome examples of questions you can ask are:\n - What is your return policy?\n - What is your shipping policy?\n - What is your phone number?\n - What are your hours of operation?\"\nSet policy_types to also get the store's written policies (full text and URL).\n","inputSchema":{"$schema":"https:\/\/json-schema.org\/draft\/2020-12\/schema","type":"object","properties":{"query":{"type":"string","description":"A natural language query."},"context":{"type":"string","description":"Additional information about the request such as user demographics, mood, location, or other relevant details that could help in tailoring the response appropriately."},"policy_types":{"type":"array","items":{"type":"string","enum":["refund","shipping","privacy","terms_of_service","terms_of_sale","subscription","legal_notice","contact"]},"description":"Policy kinds to fetch, chosen from the user's question â e.g. [\"refund\"] for returns\/exchanges\/damaged items, [\"contact\"] for phone\/hours\/address. Include every kind the question touches. Omit it to get only FAQ answers."}},"required":["query"]}}]; 109</script>
vendor: 1 bytes, line 109
109
110<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("\/\/sayu.cz\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})(); 111</script>
vendor: 1 bytes, line 111
111
112<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://sayu.cz/cdn/shopifycloud/portable-wallets/latest/portable-wallets.cs.js",t.type="module",document.head.appendChild(t)}}; 113</script>
vendor: 1 bytes, line 113
113
114<script data-source-attribution="shopify.dynamic_checkout.buyer_consent"> 115 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); 116</script>
vendor: 1 bytes, line 116
116
117<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})}})); 118</script>
118 119<link id="shopify-accelerated-checkout-styles" rel="stylesheet" media="screen" href="https://sayu.cz/cdn/shopifycloud/portable-wallets/latest/accelerated-checkout-backwards-compat.css" crossorigin="anonymous"> 120<style id="shopify-accelerated-checkout-cart"> 121 #shopify-buyer-consent { 122 margin-top: 1em; 123 display: inline-block; 124 width: 100%; 125} 126 127#shopify-buyer-consent.hidden { 128 display: none; 129} 130 131#shopify-subscription-policy-button { 132 background: none; 133 border: none; 134 padding: 0; 135 text-decoration: underline; 136 font-size: inherit; 137 cursor: pointer; 138} 139 140#shopify-subscription-policy-button::before { 141 box-shadow: none; 142} 143 144 </style>
145<script id="sections-script" data-sections="header" defer="defer" src="//sayu.cz/cdn/shop/t/31/compiled_assets/scripts.js?v=184325197989695213571790956499"></script>
vendor: 1 bytes, line 145
145
146<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
146 147 148 149 <style data-shopify> 150 @font-face { 151 font-family: Quicksand; 152 font-weight: 400; 153 font-style: normal; 154 font-display: swap; 155 src: url("//sayu.cz/cdn/fonts/quicksand/quicksand_n4.bf8322a9d1da765aa396ad7b6eeb81930a6214de.woff2") format("woff2"), 156 url("//sayu.cz/cdn/fonts/quicksand/quicksand_n4.fa4cbd232d3483059e72b11f7239959a64c98426.woff") format("woff"); 157} 158 159 @font-face { 160 font-family: Quicksand; 161 font-weight: 700; 162 font-style: normal; 163 font-display: swap; 164 src: url("//sayu.cz/cdn/fonts/quicksand/quicksand_n7.d375fe11182475f82f7bb6306a0a0e4018995610.woff2") format("woff2"), 165 url("//sayu.cz/cdn/fonts/quicksand/quicksand_n7.8ac2ae2fc4b90ef79aaa7aedb927d39f9f9aa3f4.woff") format("woff"); 166} 167 168 169 170 @font-face { 171 font-family: Quicksand; 172 font-weight: 400; 173 font-style: normal; 174 font-display: swap; 175 src: url("//sayu.cz/cdn/fonts/quicksand/quicksand_n4.bf8322a9d1da765aa396ad7b6eeb81930a6214de.woff2") format("woff2"), 176 url("//sayu.cz/cdn/fonts/quicksand/quicksand_n4.fa4cbd232d3483059e72b11f7239959a64c98426.woff") format("woff"); 177} 178 179 180 181 :root, 182 .color-background-1 { 183 --color-background: 255,255,255; 184 185 --gradient-background: #ffffff; 186 187 --color-foreground: 0,0,0; 188 --color-shadow: 255,255,255; 189 --color-button: 0,0,0; 190 --color-button-text: 255,255,255; 191 --color-secondary-button: 255,255,255; 192 --color-secondary-button-text: 0,0,0; 193 --color-link: 0,0,0; 194 --color-badge-foreground: 0,0,0; 195 --color-badge-background: 255,255,255; 196 --color-badge-border: 0,0,0; 197 --payment-terms-background-color: rgb(255 255 255); 198 } 199 200 201 .color-background-2 { 202 --color-background: 240,221,221; 203 204 --gradient-background: #f0dddd; 205 206 --color-foreground: 0,0,0; 207 --color-shadow: 0,0,0; 208 --color-button: 255,255,255; 209 --color-button-text: 0,0,0; 210 --color-secondary-button: 240,221,221; 211 --color-secondary-button-text: 0,0,0; 212 --color-link: 0,0,0; 213 --color-badge-foreground: 0,0,0; 214 --color-badge-background: 240,221,221; 215 --color-badge-border: 0,0,0; 216 --payment-terms-background-color: rgb(240 221 221); 217 } 218 219 220 .color-inverse { 221 --color-background: 0,0,0; 222 223 --gradient-background: #000000; 224 225 --color-foreground: 255,255,255; 226 --color-shadow: 0,0,0; 227 --color-button: 255,255,255; 228 --color-button-text: 0,0,0; 229 --color-secondary-button: 0,0,0; 230 --color-secondary-button-text: 255,255,255; 231 --color-link: 255,255,255; 232 --color-badge-foreground: 255,255,255; 233 --color-badge-background: 0,0,0; 234 --color-badge-border: 255,255,255; 235 --payment-terms-background-color: rgb(0 0 0); 236 } 237 238 239 .color-accent-1 { 240 --color-background: 18,18,18; 241 242 --gradient-background: #121212; 243 244 --color-foreground: 255,255,255; 245 --color-shadow: 18,18,18; 246 --color-button: 255,255,255; 247 --color-button-text: 18,18,18; 248 --color-secondary-button: 18,18,18; 249 --color-secondary-button-text: 255,255,255; 250 --color-link: 255,255,255; 251 --color-badge-foreground: 255,255,255; 252 --color-badge-background: 18,18,18; 253 --color-badge-border: 255,255,255; 254 --payment-terms-background-color: rgb(18 18 18); 255 } 256 257 258 .color-accent-2 { 259 --color-background: 192,145,117; 260 261 --gradient-background: #c09175; 262 263 --color-foreground: 255,255,255; 264 --color-shadow: 18,18,18; 265 --color-button: 192,145,117; 266 --color-button-text: 255,255,255; 267 --color-secondary-button: 192,145,117; 268 --color-secondary-button-text: 255,255,255; 269 --color-link: 255,255,255; 270 --color-badge-foreground: 255,255,255; 271 --color-badge-background: 192,145,117; 272 --color-badge-border: 255,255,255; 273 --payment-terms-background-color: rgb(192 145 117); 274 } 275 276 277 .color-scheme-d0733dd1-5ffe-4e26-a8d7-292da67b2782 { 278 --color-background: 255,255,255; 279 280 --gradient-background: #ffffff; 281 282 --color-foreground: 163,36,36; 283 --color-shadow: 255,255,255; 284 --color-button: 163,36,36; 285 --color-button-text: 255,255,255; 286 --color-secondary-button: 255,255,255; 287 --color-secondary-button-text: 163,36,36; 288 --color-link: 163,36,36; 289 --color-badge-foreground: 163,36,36; 290 --color-badge-background: 255,255,255; 291 --color-badge-border: 163,36,36; 292 --payment-terms-background-color: rgb(255 255 255); 293 } 294 295 296 .color-scheme-e41cbdbf-46cd-43ce-aa40-faba4d36ae55 { 297 --color-background: 255,255,255; 298 299 --gradient-background: #ffffff; 300 301 --color-foreground: 211,162,162; 302 --color-shadow: 240,221,221; 303 --color-button: 226,188,188; 304 --color-button-text: 255,255,255; 305 --color-secondary-button: 255,255,255; 306 --color-secondary-button-text: 18,18,18; 307 --color-link: 18,18,18; 308 --color-badge-foreground: 211,162,162; 309 --color-badge-background: 255,255,255; 310 --color-badge-border: 211,162,162; 311 --payment-terms-background-color: rgb(255 255 255); 312 } 313 314 315 .color-scheme-2056a4e1-46d5-47f3-946a-1e06aff9e82e { 316 --color-background: 163,36,36; 317 318 --gradient-background: #a32424; 319 320 --color-foreground: 255,255,255; 321 --color-shadow: 18,18,18; 322 --color-button: 211,162,162; 323 --color-button-text: 0,0,0; 324 --color-secondary-button: 163,36,36; 325 --color-secondary-button-text: 18,18,18; 326 --color-link: 18,18,18; 327 --color-badge-foreground: 255,255,255; 328 --color-badge-background: 163,36,36; 329 --color-badge-border: 255,255,255; 330 --payment-terms-background-color: rgb(163 36 36); 331 } 332 333 334 .color-scheme-f2e3d068-fb0f-4936-a620-1b61c50deea3 { 335 --color-background: 255,255,255; 336 337 --gradient-background: #ffffff; 338 339 --color-foreground: 0,0,0; 340 --color-shadow: 18,18,18; 341 --color-button: 163,36,36; 342 --color-button-text: 255,255,255; 343 --color-secondary-button: 255,255,255; 344 --color-secondary-button-text: 0,0,0; 345 --color-link: 0,0,0; 346 --color-badge-foreground: 0,0,0; 347 --color-badge-background: 255,255,255; 348 --color-badge-border: 0,0,0; 349 --payment-terms-background-color: rgb(255 255 255); 350 } 351 352 353 .color-scheme-693e6c7f-d67e-43df-8502-63021a852f29 { 354 --color-background: 163,36,36; 355 356 --gradient-background: #a32424; 357 358 --color-foreground: 255,255,255; 359 --color-shadow: 255,255,255; 360 --color-button: 163,36,36; 361 --color-button-text: 255,255,255; 362 --color-secondary-button: 163,36,36; 363 --color-secondary-button-text: 163,36,36; 364 --color-link: 163,36,36; 365 --color-badge-foreground: 255,255,255; 366 --color-badge-background: 163,36,36; 367 --color-badge-border: 255,255,255; 368 --payment-terms-background-color: rgb(163 36 36); 369 } 370 371 372 .color-scheme-e157cf66-0b3a-48f6-b888-47beb00fe2aa { 373 --color-background: 255,255,255; 374 375 --gradient-background: #ffffff; 376 377 --color-foreground: 163,36,36; 378 --color-shadow: 163,36,36; 379 --color-button: 163,36,36; 380 --color-button-text: 255,255,255; 381 --color-secondary-button: 255,255,255; 382 --color-secondary-button-text: 163,36,36; 383 --color-link: 163,36,36; 384 --color-badge-foreground: 163,36,36; 385 --color-badge-background: 255,255,255; 386 --color-badge-border: 163,36,36; 387 --payment-terms-background-color: rgb(255 255 255); 388 } 389 390 391 .color-scheme-6f16ab1c-89c1-4eac-aa45-ad2256cf8f3e { 392 --color-background: 255,255,255; 393 394 --gradient-background: #ffffff; 395 396 --color-foreground: 0,0,0; 397 --color-shadow: 255,255,255; 398 --color-button: 0,0,0; 399 --color-button-text: 255,255,255; 400 --color-secondary-button: 255,255,255; 401 --color-secondary-button-text: 0,0,0; 402 --color-link: 0,0,0; 403 --color-badge-foreground: 0,0,0; 404 --color-badge-background: 255,255,255; 405 --color-badge-border: 0,0,0; 406 --payment-terms-background-color: rgb(255 255 255); 407 } 408 409 410 .color-scheme-6c122880-df39-490a-ad09-487c58e357a6 { 411 --color-background: 255,255,255; 412 413 --gradient-background: #ffffff; 414 415 --color-foreground: 0,0,0; 416 --color-shadow: 255,255,255; 417 --color-button: 211,162,162; 418 --color-button-text: 255,255,255; 419 --color-secondary-button: 255,255,255; 420 --color-secondary-button-text: 211,162,162; 421 --color-link: 211,162,162; 422 --color-badge-foreground: 0,0,0; 423 --color-badge-background: 255,255,255; 424 --color-badge-border: 0,0,0; 425 --payment-terms-background-color: rgb(255 255 255); 426 } 427 428 429 .color-scheme-965b97ca-2892-4bd6-a183-a66b711cfe1e { 430 --color-background: 212,129,129; 431 432 --gradient-background: #d48181; 433 434 --color-foreground: 255,255,255; 435 --color-shadow: 255,255,255; 436 --color-button: 212,129,129; 437 --color-button-text: 255,255,255; 438 --color-secondary-button: 212,129,129; 439 --color-secondary-button-text: 0,0,0; 440 --color-link: 0,0,0; 441 --color-badge-foreground: 255,255,255; 442 --color-badge-background: 212,129,129; 443 --color-badge-border: 255,255,255; 444 --payment-terms-background-color: rgb(212 129 129); 445 } 446 447 448 .color-scheme-aa266c55-a934-41c7-b889-f34eb78bfcc7 { 449 --color-background: 255,255,255; 450 451 --gradient-background: #ffffff; 452 453 --color-foreground: 0,0,0; 454 --color-shadow: 255,255,255; 455 --color-button: 212,129,129; 456 --color-button-text: 255,255,255; 457 --color-secondary-button: 255,255,255; 458 --color-secondary-button-text: 212,129,129; 459 --color-link: 212,129,129; 460 --color-badge-foreground: 0,0,0; 461 --color-badge-background: 255,255,255; 462 --color-badge-border: 0,0,0; 463 --payment-terms-background-color: rgb(255 255 255); 464 } 465 466 467 .color-scheme-f9bd811a-9daf-4fea-baa3-4d57ffd3d5dc { 468 --color-background: 211,162,162; 469 470 --gradient-background: #d3a2a2; 471 472 --color-foreground: 255,255,255; 473 --color-shadow: 255,255,255; 474 --color-button: 255,255,255; 475 --color-button-text: 255,255,255; 476 --color-secondary-button: 211,162,162; 477 --color-secondary-button-text: 255,255,255; 478 --color-link: 255,255,255; 479 --color-badge-foreground: 255,255,255; 480 --color-badge-background: 211,162,162; 481 --color-badge-border: 255,255,255; 482 --payment-terms-background-color: rgb(211 162 162); 483 } 484 485 486 .color-scheme-283dbba2-c8a5-4c87-a9b1-3fee4a88acaa { 487 --color-background: 255,255,255; 488 489 --gradient-background: #ffffff; 490 491 --color-foreground: 0,0,0; 492 --color-shadow: 255,255,255; 493 --color-button: 0,0,0; 494 --color-button-text: 255,255,255; 495 --color-secondary-button: 255,255,255; 496 --color-secondary-button-text: 0,0,0; 497 --color-link: 0,0,0; 498 --color-badge-foreground: 0,0,0; 499 --color-badge-background: 255,255,255; 500 --color-badge-border: 0,0,0; 501 --payment-terms-background-color: rgb(255 255 255); 502 } 503 504 505 body, .color-background-1, .color-background-2, .color-inverse, .color-accent-1, .color-accent-2, .color-scheme-d0733dd1-5ffe-4e26-a8d7-292da67b2782, .color-scheme-e41cbdbf-46cd-43ce-aa40-faba4d36ae55, .color-scheme-2056a4e1-46d5-47f3-946a-1e06aff9e82e, .color-scheme-f2e3d068-fb0f-4936-a620-1b61c50deea3, .color-scheme-693e6c7f-d67e-43df-8502-63021a852f29, .color-scheme-e157cf66-0b3a-48f6-b888-47beb00fe2aa, .color-scheme-6f16ab1c-89c1-4eac-aa45-ad2256cf8f3e, .color-scheme-6c122880-df39-490a-ad09-487c58e357a6, .color-scheme-965b97ca-2892-4bd6-a183-a66b711cfe1e, .color-scheme-aa266c55-a934-41c7-b889-f34eb78bfcc7, .color-scheme-f9bd811a-9daf-4fea-baa3-4d57ffd3d5dc, .color-scheme-283dbba2-c8a5-4c87-a9b1-3fee4a88acaa { 506 color: rgba(var(--color-foreground), 0.75); 507 background-color: rgb(var(--color-background)); 508 } 509 510 :root { 511 --font-body-family: Quicksand, sans-serif; 512 --font-body-style: normal; 513 --font-body-weight: 400; 514 --font-body-weight-bold: 700; 515 516 --font-heading-family: Quicksand, sans-serif; 517 --font-heading-style: normal; 518 --font-heading-weight: 400; 519 520 --font-body-scale: 1.0; 521 --font-heading-scale: 1.0; 522 523 --media-padding: px; 524 --media-border-opacity: 0.0; 525 --media-border-width: 1px; 526 --media-radius: 0px;
527 --media-shadow-opacity: 0.0; 528 --media-shadow-horizontal-offset: 0px; 529 --media-shadow-vertical-offset: 4px; 530 --media-shadow-blur-radius: 5px; 531 --media-shadow-visible: 0; 532 533 --page-width: 160rem; 534 --page-width-margin: 0rem; 535 536 --product-card-image-padding: 0.0rem; 537 --product-card-corner-radius: 0.0rem; 538 --product-card-text-alignment: left; 539 --product-card-border-width: 0.0rem; 540 --product-card-border-opacity: 0.1; 541 --product-card-shadow-opacity: 0.0; 542 --product-card-shadow-visible: 0; 543 --product-card-shadow-horizontal-offset: 0.0rem; 544 --product-card-shadow-vertical-offset: 0.4rem; 545 --product-card-shadow-blur-radius: 0.5rem; 546 547 --collection-card-image-padding: 0.0rem; 548 --collection-card-corner-radius: 0.0rem; 549 --collection-card-text-alignment: left; 550 --collection-card-border-width: 0.0rem; 551 --collection-card-border-opacity: 0.1; 552 --collection-card-shadow-opacity: 0.0; 553 --collection-card-shadow-visible: 0; 554 --collection-card-shadow-horizontal-offset: 0.0rem; 555 --collection-card-shadow-vertical-offset: 0.4rem; 556 --collection-card-shadow-blur-radius: 0.5rem; 557 558 --blog-card-image-padding: 0.0rem; 559 --blog-card-corner-radius: 0.0rem; 560 --blog-card-text-alignment: left; 561 --blog-card-border-width: 0.0rem; 562 --blog-card-border-opacity: 0.1; 563 --blog-card-shadow-opacity: 0.0; 564 --blog-card-shadow-visible: 0; 565 --blog-card-shadow-horizontal-offset: 0.0rem; 566 --blog-card-shadow-vertical-offset: 0.4rem; 567 --blog-card-shadow-blur-radius: 0.5rem; 568 569 --badge-corner-radius: 4.0rem; 570 571 --popup-border-width: 1px; 572 --popup-border-opacity: 0.1; 573 --popup-corner-radius: 0px; 574 --popup-shadow-opacity: 0.05; 575 --popup-shadow-horizontal-offset: 0px; 576 --popup-shadow-vertical-offset: 4px; 577 --popup-shadow-blur-radius: 5px; 578 579 --drawer-border-width: 1px; 580 --drawer-border-opacity: 0.1; 581 --drawer-shadow-opacity: 0.0; 582 --drawer-shadow-horizontal-offset: 0px; 583 --drawer-shadow-vertical-offset: 4px; 584 --drawer-shadow-blur-radius: 5px; 585 586 --spacing-sections-desktop: 12px; 587 --spacing-sections-mobile: 12px; 588 589 --grid-desktop-vertical-spacing: 16px; 590 --grid-desktop-horizontal-spacing: 12px; 591 --grid-mobile-vertical-spacing: 8px; 592 --grid-mobile-horizontal-spacing: 6px; 593 594 --text-boxes-border-opacity: 0.0; 595 --text-boxes-border-width: 0px; 596 --text-boxes-radius: 0px; 597 --text-boxes-shadow-opacity: 0.0; 598 --text-boxes-shadow-visible: 0; 599 --text-boxes-shadow-horizontal-offset: 0px; 600 --text-boxes-shadow-vertical-offset: 14px; 601 --text-boxes-shadow-blur-radius: 5px; 602 603 --buttons-radius: 0px; 604 --buttons-radius-outset: 0px; 605 --buttons-border-width: 0px; 606 --buttons-border-opacity: 1.0; 607 --buttons-shadow-opacity: 0.0; 608 --buttons-shadow-visible: 0; 609 --buttons-shadow-horizontal-offset: 0px; 610 --buttons-shadow-vertical-offset: 4px; 611 --buttons-shadow-blur-radius: 5px; 612 --buttons-border-offset: 0px; 613 614 --inputs-radius: 0px; 615 --inputs-border-width: 1px; 616 --inputs-border-opacity: 0.55; 617 --inputs-shadow-opacity: 0.0; 618 --inputs-shadow-horizontal-offset: 0px; 619 --inputs-margin-offset: 0px; 620 --inputs-shadow-vertical-offset: 4px; 621 --inputs-shadow-blur-radius: 5px; 622 --inputs-radius-outset: 0px; 623 624 --variant-pills-radius: 0px; 625 --variant-pills-border-width: 1px; 626 --variant-pills-border-opacity: 0.55; 627 --variant-pills-shadow-opacity: 0.0; 628 --variant-pills-shadow-horizontal-offset: 0px; 629 --variant-pills-shadow-vertical-offset: 4px; 630 --variant-pills-shadow-blur-radius: 5px; 631 } 632 633 *, 634 *::before, 635 *::after { 636 box-sizing: inherit; 637 } 638 639 html { 640 box-sizing: border-box; 641 font-size: calc(var(--font-body-scale) * 62.5%); 642 height: 100%; 643 } 644 645 body { 646 display: grid; 647 grid-template-rows: auto auto 1fr auto; 648 grid-template-columns: 100%; 649 min-height: 100%; 650 margin: 0; 651 font-size: 1.5rem; 652 letter-spacing: 0.06rem; 653 line-height: calc(1 + 0.8 / var(--font-body-scale)); 654 font-family: var(--font-body-family); 655 font-style: var(--font-body-style); 656 font-weight: var(--font-body-weight); 657 } 658 659 @media screen and (min-width: 750px) { 660 body { 661 font-size: 1.6rem; 662 } 663 } 664 </style> 665 666 <link href="//sayu.cz/cdn/shop/t/31/assets/base.css?v=44816226705178759711738924002" rel="stylesheet" type="text/css" media="all" /> 667<link rel="preload" as="font" href="//sayu.cz/cdn/fonts/quicksand/quicksand_n4.bf8322a9d1da765aa396ad7b6eeb81930a6214de.woff2" type="font/woff2" crossorigin><link rel="preload" as="font" href="//sayu.cz/cdn/fonts/quicksand/quicksand_n4.bf8322a9d1da765aa396ad7b6eeb81930a6214de.woff2" type="font/woff2" crossorigin><link href="//sayu.cz/cdn/shop/t/31/assets/component-localization-form.css?v=143319823105703127341705621612" rel="stylesheet" type="text/css" media="all" /> 668
668<script src="//sayu.cz/cdn/shop/t/31/assets/localization-form.js?v=161644695336821385561705621626" defer="defer"></script>
668<link 669 rel="stylesheet" 670 href="//sayu.cz/cdn/shop/t/31/assets/component-predictive-search.css?v=118923337488134913561705621617" 671 media="print" 672 onload="this.media='all'" 673 >
673<script> 674 document.documentElement.className = document.documentElement.className.replace('no-js', 'js'); 675 if (Shopify.designMode) { 676 document.documentElement.classList.add('shopify-design-mode'); 677 } 678 </script>
678 679 680<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@10/swiper-bundle.min.css" /> 681
682<script src="https://cdn.jsdelivr.net/npm/swiper@10/swiper-bundle.min.js"></script>
682 683 684 <!-- BEGIN app block: shopify://apps/pandectes-gdpr/blocks/banner/58c0baa2-6cc1-480c-9ea6-38d6d559556a --> 685 686 687 688 <!-- TCF is active, scripts are loaded above --> 689 690
690<script> 691 692 window.PandectesSettings = {"store":{"id":53911060673,"plan":"plus","theme":"sayu-cz/master","primaryLocale":"cs","adminMode":false,"headless":false,"storefrontRootDomain":"","checkoutRootDomain":"","storefrontAccessToken":""},"tsPublished":1742571513,"declaration":{"showPurpose":false,"showProvider":false,"showDateGenerated":false},"language":{"unpublished":[],"languageMode":"Multilingual","fallbackLanguage":"cs","languageDetection":"locale","languagesSupported":["de","en"]},"texts":{"managed":{"headerText":{"cs":"Respektujeme vaÅ¡e soukromÃ","de":"Wir respektieren deine Privatsphäre","en":"We respect your privacy"},"consentText":{"cs":"Tento web použÃvá cookies, aby vám zajistil co nejlepšà zážitek.","de":"Diese Website verwendet Cookies, um Ihnen das beste Erlebnis zu bieten.","en":"This website uses cookies to ensure you get the best experience."},"linkText":{"cs":"Dalšà informace","de":"Mehr erfahren","en":"Read more"},"imprintText":{"cs":"Imprint","de":"Impressum","en":"Imprint"},"allowButtonText":{"cs":"PÅijmout vÅ¡e","de":"Annehmen","en":"Accept all"},"denyButtonText":{"cs":"OdmÃtnout vÅ¡e","de":"Ablehnen","en":"Decline all"},"dismissButtonText":{"cs":"OK","de":"Okay","en":"OK"},"leaveSiteButtonText":{"cs":"Opustit tento web","de":"Diese Seite verlassen","en":"Leave this site"},"preferencesButtonText":{"cs":"PÅedvolby","de":"Einstellungen","en":"Preferences"},"cookiePolicyText":{"cs":"Zásady použÃvánà cookies","de":"Cookie-Richtlinie","en":"Cookie policy"},"preferencesPopupTitleText":{"cs":"Spravujte váš souhlas","de":"Einwilligungseinstellungen verwalten","en":"Manage consent preferences"},"preferencesPopupIntroText":{"cs":"Cookies použÃváme k optimalizaci funkcà webových stránek, analýze výkonu a poskytovánà personalizovaného zážitku. NÄkteré soubory cookie jsou nezbytné pro správnou funkci a správnou funkci webových stránek. Tyto soubory cookie nelze deaktivovat. V tomto oknÄ můžete spravovat preference cookies.","de":"Wir verwenden Cookies, um die Funktionalität der Website zu optimieren, die Leistung zu analysieren und Ihnen ein personalisiertes Erlebnis zu bieten. Einige Cookies sind für den ordnungsgemäÃen Betrieb der Website unerlässlich. Diese Cookies können nicht deaktiviert werden. In diesem Fenster können Sie Ihre Präferenzen für Cookies verwalten.","en":"We use cookies to optimize website functionality, analyze the performance, and provide personalized experience to you. Some cookies are essential to make the website operate and function correctly. Those cookies cannot be disabled. In this window you can manage your preference of cookies."},"preferencesPopupSaveButtonText":{"cs":"Uložit pÅedvolby","de":"Auswahl speichern","en":"Save preferences"},"preferencesPopupCloseButtonText":{"cs":"ZavÅÃt","de":"SchlieÃen","en":"Close"},"preferencesPopupAcceptAllButtonText":{"cs":"PÅijmout vÅ¡e","de":"Alles Akzeptieren","en":"Accept all"},"preferencesPopupRejectAllButtonText":{"cs":"OdmÃtnout vÅ¡echny","de":"Alles ablehnen","en":"Decline all"},"cookiesDetailsText":{"cs":"Podrobnosti o souborech cookie","de":"Cookie-Details","en":"Cookies details"},"preferencesPopupAlwaysAllowedText":{"cs":"vždy povoleno","de":"Immer erlaubt","en":"Always allowed"},"accessSectionParagraphText":{"cs":"Máte právo mÃt kdykoli pÅÃstup ke svým údajům. Export dat vám poÅ¡leme do pár dnà od odeslánà žádosti.","de":"Sie haben das Recht, jederzeit auf Ihre Daten zuzugreifen.","en":"You have the right to request access to your data at any time."},"accessSectionTitleText":{"cs":"PÅenos dat","de":"Datenübertragbarkeit","en":"Data portability"},"accessSectionAccountInfoActionText":{"cs":"Osobnà data","de":"persönliche Daten","en":"Personal data"},"accessSectionDownloadReportActionText":{"cs":"Stáhnout vÅ¡e","de":"Alle Daten anfordern","en":"Request export"},"accessSectionGDPRRequestsActionText":{"cs":"Žádosti subjektu údajů","de":"Anfragen betroffener Personen","en":"Data subject requests"},"accessSectionOrdersRecordsActionText":{"cs":"Objednávky","de":"Aufträge","en":"Orders"},"rectificationSectionParagraphText":{"cs":"Máte právo požádat o aktualizaci svých údajů, kdykoli to považujete za vhodné. Váš souhlas a samotné data upravÃme do pár dnà po odeslánà žádosti.","de"
692:"Sie haben das Recht, die Aktualisierung Ihrer Daten zu verlangen, wann immer Sie dies für angemessen halten.","en":"You have the right to request your data to be updated whenever you think it is appropriate."},"rectificationSectionTitleText":{"cs":"Oprava dat","de":"Datenberichtigung","en":"Data Rectification"},"rectificationCommentPlaceholder":{"cs":"PopiÅ¡te, co chcete aktualizovat","de":"Beschreiben Sie, was Sie aktualisieren möchten","en":"Describe what you want to be updated"},"rectificationCommentValidationError":{"cs":"KomentáŠje vyžadován","de":"Kommentar ist erforderlich","en":"Comment is required"},"rectificationSectionEditAccountActionText":{"cs":"Požádat o aktualizaci","de":"Aktualisierung anfordern","en":"Request an update"},"erasureSectionTitleText":{"cs":"Právo být zapomenut","de":"Recht auf Löschung","en":"Right to be forgotten"},"erasureSectionParagraphText":{"cs":"Máte právo požádat o vymazánà vÅ¡ech vaÅ¡ich údajů. Poté již nebudete mÃt pÅÃstup ke svému úÄtu.","de":"Sie haben das Recht, die Löschung aller Ihrer Daten zu verlangen. Danach können Sie nicht mehr auf Ihr Konto zugreifen.","en":"You have the right to ask all your data to be erased. After that, you will no longer be able to access your account."},"erasureSectionRequestDeletionActionText":{"cs":"Požádat o vymazánà osobnÃch údajů","de":"Löschung personenbezogener Daten anfordern","en":"Request personal data deletion"},"consentDate":{"cs":"Datum souhlasu","de":"Zustimmungsdatum","en":"Consent date"},"consentId":{"cs":"ID souhlasu","de":"Einwilligungs-ID","en":"Consent ID"},"consentSectionChangeConsentActionText":{"cs":"ZmÄnit pÅedvolbu souhlasu","de":"Einwilligungspräferenz ändern","en":"Change consent preference"},"consentSectionConsentedText":{"cs":"Souhlasili jste se zásadami cookies této webové stránky na","de":"Sie haben der Cookie-Richtlinie dieser Website zugestimmt am","en":"You consented to the cookies policy of this website on"},"consentSectionNoConsentText":{"cs":"Nesouhlasili jste se zásadami použÃvánà souborů cookie na tomto webu.","de":"Sie haben der Cookie-Richtlinie dieser Website nicht zugestimmt.","en":"You have not consented to the cookies policy of this website."},"consentSectionTitleText":{"cs":"Váš souhlas se soubory cookie","de":"Ihre Cookie-Einwilligung","en":"Your cookie consent"},"consentStatus":{"cs":"Preference souhlasu","de":"Einwilligungspräferenz","en":"Consent preference"},"confirmationFailureMessage":{"cs":"VaÅ¡e žádost nebyla ovÄÅena. Zkuste to znovu a pokud problém pÅetrvává, požádejte o pomoc vlastnÃka obchodu","de":"Ihre Anfrage wurde nicht bestätigt. Bitte versuchen Sie es erneut und wenn das Problem weiterhin besteht, wenden Sie sich an den Ladenbesitzer, um Hilfe zu erhalten","en":"Your request was not verified. Please try again and if problem persists, contact store owner for assistance"},"confirmationFailureTitle":{"cs":"DoÅ¡lo k problému","de":"Ein Problem ist aufgetreten","en":"A problem occurred"},"confirmationSuccessMessage":{"cs":"Brzy se vám ozveme ohlednÄ vašà žádosti.","de":"Wir werden uns in Kürze zu Ihrem Anliegen bei Ihnen melden.","en":"We will soon get back to you as to your request."},"confirmationSuccessTitle":{"cs":"VaÅ¡e žádost je ovÄÅena","de":"Ihre Anfrage wurde bestätigt","en":"Your request is verified"},"guestsSupportEmailFailureMessage":{"cs":"VaÅ¡e žádost nebyla odeslána. Zkuste to znovu a pokud problém pÅetrvává, požádejte o pomoc vlastnÃka obchodu.","de":"Ihre Anfrage wurde nicht übermittelt. Bitte versuchen Sie es erneut und wenn das Problem weiterhin besteht, wenden Sie sich an den Shop-Inhaber, um Hilfe zu erhalten.","en":"Your request was not submitted. Please try again and if problem persists, contact store owner for assistance."},"guestsSupportEmailFailureTitle":{"cs":"DoÅ¡lo k problému","de":"Ein Problem ist aufgetreten","en":"A problem occurred"},"guestsSupportEmailPlaceholder":{"cs":"Emailová adresa","de":"E-Mail-Addresse","en":"E-mail address"},"guestsSupportEmailSuccessMessage":{"cs":"Pokud jste registrováni jako zákaznÃci tohoto obchodu, brzy vám pÅijde e -mail s pokyny, jak postupovat.","de":"Wenn Sie als Kunde dieses Shops registriert sind, erhalten Sie in Kürze eine E-Mail mit Anweisungen zum weiteren Vorgehen.","en":"If you are registered as a customer of this store, you will soon receive an email with instructions on how to proceed."},"guestsSupportEmailSuccessTitle":{"cs":"DÄkujeme za vaÅ¡i žádost","de"
692:"Vielen Dank für die Anfrage","en":"Thank you for your request"},"guestsSupportEmailValidationError":{"cs":"E -mail nenà platný","de":"Email ist ungültig","en":"Email is not valid"},"guestsSupportInfoText":{"cs":"Chcete -li pokraÄovat, pÅihlaste se prosÃm pomocà svého zákaznického úÄtu.","de":"Bitte loggen Sie sich mit Ihrem Kundenkonto ein, um fortzufahren.","en":"Please login with your customer account to further proceed."},"submitButton":{"cs":"PÅedložit","de":"einreichen","en":"Submit"},"submittingButton":{"cs":"OdesÃlánà ...","de":"Senden...","en":"Submitting..."},"cancelButton":{"cs":"zruÅ¡enÃ","de":"Abbrechen","en":"Cancel"},"declIntroText":{"cs":"Soubory cookie použÃváme k optimalizaci funkÄnosti webu, analýze výkonu a poskytovánà personalizovaného zážitku. NÄkteré soubory cookie jsou nezbytné pro správné fungovánà a fungovánà webových stránek. Tyto soubory cookie nelze zakázat. V tomto oknÄ můžete spravovat své preference souborů cookie.","de":"Wir verwenden Cookies, um die Funktionalität der Website zu optimieren, die Leistung zu analysieren und Ihnen ein personalisiertes Erlebnis zu bieten. Einige Cookies sind für den ordnungsgemäÃen Betrieb der Website unerlässlich. Diese Cookies können nicht deaktiviert werden. In diesem Fenster können Sie Ihre Präferenzen für Cookies verwalten.","en":"We use cookies to optimize website functionality, analyze the performance, and provide personalized experience to you. Some cookies are essential to make the website operate and function correctly. Those cookies cannot be disabled. In this window you can manage your preference of cookies."},"declName":{"cs":"název","de":"Name","en":"Name"},"declPurpose":{"cs":"ÃÄel","de":"Zweck","en":"Purpose"},"declType":{"cs":"Typ","de":"Typ","en":"Type"},"declRetention":{"cs":"UchovánÃ","de":"Speicherdauer","en":"Retention"},"declProvider":{"cs":"Poskytovatel","de":"Anbieter","en":"Provider"},"declFirstParty":{"cs":"Prvnà strany","de":"Erstanbieter","en":"First-party"},"declThirdParty":{"cs":"TÅetà strana","de":"Drittanbieter","en":"Third-party"},"declSeconds":{"cs":"sekundy","de":"Sekunden","en":"seconds"},"declMinutes":{"cs":"minut","de":"Minuten","en":"minutes"},"declHours":{"cs":"hodin","de":"Std.","en":"hours"},"declDays":{"cs":"dnÃ","de":"Tage","en":"days"},"declMonths":{"cs":"mÄsÃce","de":"Monate","en":"months"},"declYears":{"cs":"let","de":"Jahre","en":"years"},"declSession":{"cs":"ZasedánÃ","de":"Sitzung","en":"Session"},"declDomain":{"cs":"Doména","de":"Domain","en":"Domain"},"declPath":{"cs":"Cesta","de":"Weg","en":"Path"}}
692,"categories":{"strictlyNecessaryCookiesTitleText":{"cs":"NezbytnÄ nutné cookies","de":"Unbedingt erforderlich","en":"Strictly necessary cookies"},"strictlyNecessaryCookiesDescriptionText":{"cs":"Tyto soubory cookie jsou nezbytné k tomu, abyste se mohli pohybovat po webové stránce a použÃvat jejà funkce, jako je pÅÃstup do zabezpeÄených oblastà webové stránky. Web nemůže bez tÄchto cookies správnÄ fungovat.","de":"Diese Cookies sind unerlässlich, damit Sie sich auf der Website bewegen und ihre Funktionen nutzen können, z. B. den Zugriff auf sichere Bereiche der Website. Ohne diese Cookies kann die Website nicht richtig funktionieren.","en":"These cookies are essential in order to enable you to move around the website and use its features, such as accessing secure areas of the website. The website cannot function properly without these cookies."},"functionalityCookiesTitleText":{"cs":"FunkÄnà cookies","de":"Funktionale Cookies","en":"Functional cookies"},"functionalityCookiesDescriptionText":{"cs":"Tyto soubory cookie umožÅujà webu poskytovat vylepÅ¡ené funkce a pÅizpůsobenÃ. Můžeme je nastavit my nebo poskytovatelé tÅetÃch stran, jejichž služby jsme pÅidali na naÅ¡e stránky. Pokud tyto soubory cookie nepovolÃte, nÄkteré nebo vÅ¡echny tyto služby nemusà fungovat správnÄ.","de":"Diese Cookies ermöglichen es der Website, verbesserte Funktionalität und Personalisierung bereitzustellen. Sie können von uns oder von Drittanbietern gesetzt werden, deren Dienste wir auf unseren Seiten hinzugefügt haben. Wenn Sie diese Cookies nicht zulassen, funktionieren einige oder alle dieser Dienste möglicherweise nicht richtig.","en":"These cookies enable the site to provide enhanced functionality and personalisation. They may be set by us or by third party providers whose services we have added to our pages. If you do not allow these cookies then some or all of these services may not function properly."},"performanceCookiesTitleText":{"cs":"Analytické cookies","de":"Performance-Cookies","en":"Performance cookies"},"performanceCookiesDescriptionText":{"cs":"Tyto soubory cookie nám umožÅujà sledovat a zlepÅ¡ovat výkon naÅ¡ich webových stránek. NapÅÃklad nám umožÅujà poÄÃtat návÅ¡tÄvy, identifikovat zdroje provozu a zjistit, které Äásti webu jsou nejoblÃbenÄjÅ¡Ã.","de":"Diese Cookies ermöglichen es uns, die Leistung unserer Website zu überwachen und zu verbessern. Sie ermöglichen es uns beispielsweise, Besuche zu zählen, Verkehrsquellen zu identifizieren und zu sehen, welche Teile der Website am beliebtesten sind.","en":"These cookies enable us to monitor and improve the performance of our website. For example, they allow us to count visits, identify traffic sources and see which parts of the site are most popular."},"targetingCookiesTitleText":{"cs":"Marketing cookies","de":"Targeting-Cookies","en":"Targeting cookies"},"targetingCookiesDescriptionText":{"cs":"Tyto soubory cookie mohou být prostÅednictvÃm naÅ¡ich stránek nastaveny naÅ¡imi reklamnÃmi partnery. Tyto spoleÄnosti je mohou použÃt k vytvoÅenà profilu vaÅ¡ich zájmů a zobrazenà relevantnÃch reklam na jiných webech. Neukládajà pÅÃmo osobnà údaje, ale jsou založeny na jedineÄné identifikaci vaÅ¡eho prohlÞeÄe a internetového zaÅÃzenÃ. Pokud tyto cookies nepovolÃte, doÄkáte se ménÄ cÃlené reklamy.","de":"Diese Cookies können von unseren Werbepartnern über unsere Website gesetzt werden. Sie können von diesen Unternehmen verwendet werden, um ein Profil Ihrer Interessen zu erstellen und Ihnen relevante Werbung auf anderen Websites anzuzeigen. Sie speichern keine direkten personenbezogenen Daten, sondern basieren auf der eindeutigen Identifizierung Ihres Browsers und Ihres Internetgeräts. Wenn Sie diese Cookies nicht zulassen, erleben Sie weniger zielgerichtete Werbung.","en":"These cookies may be set through our site by our advertising partners. They may be used by those companies to build a profile of your interests and show you relevant adverts on other sites. They do not store directly personal information, but are based on uniquely identifying your browser and internet device. If you do not allow these cookies, you will experience less targeted advertising."},"unclassifiedCookiesTitleText":{"cs":"Neklasifikované cookies","de":"Unklassifizierte Cookies","en":"Unclassified cookies"},"unclassifiedCookiesDescriptionText":{"cs":"Neklasifikované cookies jsou cookies, které právÄ zpracováváme, spoleÄnÄ s poskytovateli jednotlivých cookies.","de"
692:"Unklassifizierte Cookies sind Cookies, die wir gerade zusammen mit den Anbietern einzelner Cookies klassifizieren.","en":"Unclassified cookies are cookies that we are in the process of classifying, together with the providers of individual cookies."}},"auto":{}},"library":{"previewMode":false,"fadeInTimeout":0,"defaultBlocked":7,"showLink":true,"showImprintLink":false,"showGoogleLink":false,"enabled":true,"cookie":{"expiryDays":365,"secure":true,"domain":""},"dismissOnScroll":false,"dismissOnWindowClick":false,"dismissOnTimeout":false,"palette":{"popup":{"background":"#FFFFFF","backgroundForCalculations":{"a":1,"b":255,"g":255,"r":255},"text":"#000000"},"button":{"background":"transparent","backgroundForCalculations":{"a":1,"b":255,"g":255,"r":255},"text":"#C09175","textForCalculation":{"a":1,"b":117,"g":145,"r":192},"border":"#C09175"}},"content":{"href":"https://sayu.cz/pages/podminky-ochrany-osobnich-udaju","imprintHref":"/","close":"✕","target":"_blank","logo":""},"window":"<div role=\"dialog\" aria-live=\"polite\" aria-label=\"cookieconsent\" aria-describedby=\"cookieconsent:desc\" id=\"pandectes-banner\" class=\"cc-window-wrapper cc-overlay-wrapper\"><div class=\"pd-cookie-banner-window cc-window {{classes}}\"><!--googleoff: all-->{{children}}<!--googleon: all--></div></div>","compliance":{"custom":"<div class=\"cc-compliance cc-highlight\">{{preferences}}{{allow}}</div>"},"type":"custom","layouts":{"basic":"{{messagelink}}{{compliance}}"},"position":"overlay","theme":"wired","revokable":false,"animateRevokable":false,"revokableReset":false,"revokableLogoUrl":"https://cdn.shopify.com/s/files/1/0539/1106/0673/t/31/assets/pandectes-reopen-logo.png?v=1667223585","revokablePlacement":"bottom-left","revokableMarginHorizontal":15,"revokableMarginVertical":15,"static":false,"autoAttach":true,"hasTransition":true,"blacklistPage":[""],"elements":{"close":"<button aria-label=\"dismiss cookie message\" type=\"button\" tabindex=\"0\" class=\"cc-close\">{{close}}</button>","dismiss":"<button aria-label=\"dismiss cookie message\" type=\"button\" tabindex=\"0\" class=\"cc-btn cc-btn-decision cc-dismiss\">{{dismiss}}</button>","allow":"<button aria-label=\"allow cookies\" type=\"button\" tabindex=\"0\" class=\"cc-btn cc-btn-decision cc-allow\">{{allow}}</button>","deny":"<button aria-label=\"deny cookies\" type=\"button\" tabindex=\"0\" class=\"cc-btn cc-btn-decision cc-deny\">{{deny}}</button>","preferences":"<button aria-label=\"settings cookies\" tabindex=\"0\" type=\"button\" class=\"cc-btn cc-settings\" onclick=\"Pandectes.fn.openPreferences()\">{{preferences}}</button>"}},"geolocation":{"brOnly":false,"caOnly":false,"euOnly":false},"dsr":{"guestsSupport":true,"accessSectionDownloadReportAuto":false},"banner":{"resetTs":1643719041,"extraCss":" .cc-banner-logo {max-width: 60em!important;} @media(min-width: 768px) {.cc-window.cc-floating{max-width: 60em!important;width: 60em!important;}} .cc-message, .pd-cookie-banner-window .cc-header, .cc-logo {text-align: left} .cc-window-wrapper{z-index: 1000;-webkit-transition: opacity 1s ease; transition: opacity 1s ease;} .cc-window{z-index: 1000;font-family: inherit;} .pd-cookie-banner-window .cc-header{font-family: inherit;} .pd-cp-ui{font-family: inherit; background-color: #FFFFFF;color:#000000;} button.pd-cp-btn, a.pd-cp-btn{} input + .pd-cp-preferences-slider{background-color: rgba(0, 0, 0, 0.3)} .pd-cp-scrolling-section::-webkit-scrollbar{background-color: rgba(0, 0, 0, 0.3)} input:checked + .pd-cp-preferences-slider{background-color: rgba(0, 0, 0, 1)} .pd-cp-scrolling-section::-webkit-scrollbar-thumb {background-color: rgba(0, 0, 0, 1)} .pd-cp-ui-close{color:#000000;} .pd-cp-preferences-slider:before{background-color: #FFFFFF} .pd-cp-title:before {border-color: #000000!important} .pd-cp-preferences-slider{background-color:#000000} .pd-cp-toggle{color:#000000!important} @media(max-width:699px) {.pd-cp-ui-close-top svg {fill: #000000}} .pd-cp-toggle:hover,.pd-cp-toggle:visited,.pd-cp-toggle:active{color:#000000!important} .pd-cookie-banner-window {} @media screen and (max-width: 540px) { .pd-cookie-banner-window { padding-bottom: 70px !important; }}","customJavascript":{},"showPoweredBy":false,"logoHeight":40,"revokableTrigger":false,"hybridStrict":false,"cookiesBlockedByDefault":"7","isActive":true,"implicitSavePreferences":false,"cookieIcon":true,"blockBots":false,"showCookiesDetails":true,"hasTransition":true,"blockingPage":false,"showOnlyLandingPage":false,"leaveSiteUrl":"https://www.google.com","linkRespectStoreLang":false},"cookies":{"0":[{"name":"cart_sig","type":"http","domain":"sayu.cz","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":"Analytika Shopify.","de"
692:"Shopify-Analysen.","en":"A hash of the contents of a cart. This is used to verify the integrity of the cart and to ensure performance of some cart operations."}},{"name":"_shopify_tw","type":"http","domain":".sayu.cz","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":"PoužÃvá se pro správu nastavenà ochrany osobnÃch údajů zákaznÃků."}},{"name":"_shopify_tm","type":"http","domain":".sayu.cz","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":"PoužÃvá se pro správu nastavenà ochrany osobnÃch údajů zákaznÃků."}},{"name":"cart_currency","type":"http","domain":"sayu.cz","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":"Soubor cookie je nezbytný pro zabezpeÄenou funkci pokladny a platby na webu. Tuto funkci poskytuje shopify.com.","de":"Das Cookie ist für die sichere Checkout- und Zahlungsfunktion auf der Website erforderlich. Diese Funktion wird von shopify.com bereitgestellt.","en":"Used after a checkout is completed to initialize a new empty cart with the same currency as the one just used."}},{"name":"_tracking_consent","type":"http","domain":".sayu.cz","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":"PÅedvolby sledovánÃ.","de":"Tracking-Einstellungen.","en":"Used to store a user's preferences if a merchant has set up privacy rules in the visitor's region."}},{"name":"cart","type":"http","domain":"sayu.cz","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":"Nezbytné pro funkÄnost nákupnÃho koÅ¡Ãku na webu.","de":"Notwendig für die Warenkorbfunktion auf der Website.","en":"Contains information related to the user's cart."}},{"name":"cart_ts","type":"http","domain":"sayu.cz","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":"PoužÃvá se ve spojenà s pokladnou.","de":"Wird im Zusammenhang mit der Kasse verwendet.","en":"Used in connection with checkout."}},{"name":"secure_customer_sig","type":"http","domain":"sayu.cz","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":"PoužÃvá se ve spojenà s pÅihlášenÃm zákaznÃka.","de":"Wird im Zusammenhang mit dem Kundenlogin verwendet.","en":"Used to identify a user after they sign into a shop as a customer so they do not need to log in again."}},{"name":"_shopify_m","type":"http","domain":".sayu.cz","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":"PoužÃvá se pro správu nastavenà ochrany osobnÃch údajů zákaznÃků."}},{"name":"cart_ver","type":"http","domain":"sayu.cz","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":"PoužÃvá se ve spojenà s nákupnÃm koÅ¡Ãkem.","de":"Wird in Verbindung mit Warenkorb verwendet.","en":"Set every time a cart is updated and used to track cart version mismatches."}}],"1":[{"name":"_shopify_sa_t","type":"http","domain":".sayu.cz","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":"Analýzy Shopify týkajÃcà se marketingu a doporuÄenÃ.","de":"Shopify-Analysen in Bezug auf Marketing und Empfehlungen.","en":"Capture the landing page of visitor when they come from other sites to support marketing analytics."}},{"name":"_s","type":"http","domain":".sayu.cz","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":"Analytika Shopify."}},{"name":"_y","type":"http","domain":".sayu.cz","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":"Analytika Shopify."}},{"name":"_shopify_sa_p","type":"http","domain":".sayu.cz","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":"Analýzy Shopify týkajÃcà se marketingu a doporuÄenÃ.","de":"Shopify-Analysen in Bezug auf Marketing und Empfehlungen.","en":"Capture the landing page of visitor when they come from other sites to support marketing analytics."}}
692,{"name":"_landing_page","type":"http","domain":".sayu.cz","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":"Sleduje vstupnà stránky.","de":"Verfolgt Zielseiten.","en":"Capture the landing page of visitor when they come from other sites."}},{"name":"_shopify_y","type":"http","domain":".sayu.cz","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":"Analytika Shopify.","de":"Shopify-Analysen.","en":"Shopify analytics."}},{"name":"_shopify_s","type":"http","domain":".sayu.cz","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":"Analytika Shopify.","de":"Shopify-Analysen.","en":"Used to identify a given browser session/shop combination. Duration is 30 minute rolling expiry of last use."}},{"name":"_orig_referrer","type":"http","domain":".sayu.cz","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":"Sleduje vstupnà stránky.","de":"Verfolgt Zielseiten.","en":"Allows merchant to identify where people are visiting them from."}}],"2":[{"name":"_gat","type":"http","domain":".sayu.cz","path":"/","provider":"Google","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":"Soubor cookie je umÃstÄn službou Google Analytics k filtrovánà požadavků od robotů.","de":"Cookie wird von Google Analytics platziert, um Anfragen von Bots zu filtern.","en":"Cookie is placed by Google Analytics to filter requests from bots."}},{"name":"_gid","type":"http","domain":".sayu.cz","path":"/","provider":"Google","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":"Soubor cookie je umÃstÄn službou Google Analytics za úÄelem poÄÃtánà a sledovánà zobrazenà stránek.","de":"Cookie wird von Google Analytics platziert, um Seitenaufrufe zu zählen und zu verfolgen.","en":"Cookie is placed by Google Analytics to count and track pageviews."}},{"name":"_ga","type":"http","domain":".sayu.cz","path":"/","provider":"Google","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":"Soubor cookie je nastaven službou Google Analytics s neznámou funkcÃ","de":"Cookie wird von Google Analytics mit unbekannter Funktionalität gesetzt","en":"Cookie is set by Google Analytics with unknown functionality"}}],"4":[{"name":"_gcl_au","type":"http","domain":".sayu.cz","path":"/","provider":"Google","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":"Soubor cookie je umÃstÄn Správcem znaÄek Google za úÄelem sledovánà konverzÃ.","de":"Cookie wird von Google Tag Manager platziert, um Conversions zu verfolgen.","en":"Cookie is placed by Google Tag Manager to track conversions."}},{"name":"_fbp","type":"http","domain":".sayu.cz","path":"/","provider":"Facebook","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":"Cookie ukládá Facebook za úÄelem sledovánà návÅ¡tÄv napÅÃÄ webovými stránkami.","de":"Cookie wird von Facebook platziert, um Besuche auf Websites zu verfolgen.","en":"Cookie is placed by Facebook to track visits across websites."}}],"8":[]},"blocker":{"isActive":false,"googleConsentMode":{"id":"","analyticsId":"","isActive":true,"adStorageCategory":4,"analyticsStorageCategory":2,"personalizationStorageCategory":1,"functionalityStorageCategory":1,"customEvent":false,"securityStorageCategory":0,"redactData":false,"urlPassthrough":false,"dataLayerProperty":"dataLayer","waitForUpdate":2000},"facebookPixel":{"id":"","isActive":false,"ldu":false},"microsoft":{},"rakuten":{"isActive":false,"cmp":false,"ccpa":false},"gpcIsActive":false,"defaultBlocked":7,"patterns":{"whiteList":[],"blackList":{"1":[],"2":[],"4":[],"8":[]},"iframesWhiteList":[],"iframesBlackList":{"1":[],"2":[],"4":[],"8":[]},"beaconsWhiteList":[],"beaconsBlackList":{"1":[],"2":[],"4":[],"8":[]}}}}; 693 694 window.addEventListener('DOMContentLoaded', function(){ 695 const script = document.createElement('script'); 696 697 script.src = "https://cdn.shopify.com/extensions/01a11687-a319-7422-b9b0-51680bbe142b/gdpr-cookie-consent-419/assets/pandectes-core.js"; 698 699 script.defer = true; 700 document.body.appendChild(script); 701 }) 702 </script>
702 703 704 705 706 707 708 709 710<!-- END app block --><!-- BEGIN app block: shopify://apps/judge-me-reviews/blocks/judgeme_core/61ccd3b1-a9f2-4160-9fe9-4fec8413e5d8 --><!-- Start of Judge.me Core --> 711 712 713 714 715 716 717 718<link rel="dns-prefetch" href="https://cdn.judge.me"> 719<link rel="dns-prefetch" href="https://cdn1.judge.me"> 720<link rel="dns-prefetch" href="https://api.judge.me"> 721
722<script data-cfasync='false' class='jdgm-settings-script'>window.jdgmSettings={"pagination":5,"disable_web_reviews":false,"badge_no_review_text":"Žádné recenze","badge_n_reviews_text":"{{ n }} recenze/recenzÃ","badge_star_color":"#C09175","hide_badge_preview_if_no_reviews":true,"badge_hide_text":false,"enforce_center_preview_badge":false,"widget_title":"Recenze zákaznÃků","widget_open_form_text":"Napsat recenzi","widget_close_form_text":"ZruÅ¡it recenzi","widget_refresh_page_text":"Obnovit stránku","widget_summary_text":"Na základÄ {{ number_of_reviews }} recenze/recenzÃ","widget_no_review_text":"BuÄte prvnÃ, kdo napÃÅ¡e recenzi","widget_name_field_text":"Jméno pro zobrazenÃ","widget_verified_name_field_text":"OvÄÅené jméno (veÅejné)","widget_name_placeholder_text":"Jméno pro zobrazenÃ","widget_required_field_error_text":"Toto pole je povinné.","widget_email_field_text":"E-mailová adresa","widget_verified_email_field_text":"OvÄÅený e-mail (soukromý, nelze upravit)","widget_email_placeholder_text":"VaÅ¡e e-mailová adresa","widget_email_field_error_text":"Zadejte prosÃm platnou e-mailovou adresu.","widget_rating_field_text":"HodnocenÃ","widget_review_title_field_text":"Název recenze","widget_review_title_placeholder_text":"Dejte své recenzi název","widget_review_body_field_text":"Obsah recenze","widget_review_body_placeholder_text":"ZaÄnÄte psát zde...","widget_pictures_field_text":"Obrázek/Video (volitelné)","widget_submit_review_text":"Odeslat recenzi","widget_submit_verified_review_text":"Odeslat ovÄÅenou recenzi","widget_submit_success_msg_with_auto_publish":"DÄkujeme! ProsÃm obnovte stránku za nÄkolik okamžiků, abyste vidÄli svou recenzi. Můžete odstranit nebo upravit svou recenzi pÅihlášenÃm do \u003ca href='https://judge.me/login' target='_blank' rel='nofollow noopener'\u003eJudge.me\u003c/a\u003e","widget_submit_success_msg_no_auto_publish":"DÄkujeme! VaÅ¡e recenze bude zveÅejnÄna, jakmile ji schválà správce obchodu. Můžete odstranit nebo upravit svou recenzi pÅihlášenÃm do \u003ca href='https://judge.me/login' target='_blank' rel='nofollow noopener'\u003eJudge.me\u003c/a\u003e","widget_show_default_reviews_out_of_total_text":"Zobrazuje se {{ n_reviews_shown }} z {{ n_reviews }} recenzÃ.","widget_show_all_link_text":"Zobrazit vÅ¡e","widget_show_less_link_text":"Zobrazit ménÄ","widget_author_said_text":"{{ reviewer_name }} Åekl/a:","widget_days_text":"pÅed {{ n }} dny","widget_weeks_text":"pÅed {{ n }} týdnem/týdny","widget_months_text":"pÅed {{ n }} mÄsÃcem/mÄsÃci","widget_years_text":"pÅed {{ n }} rokem/lety","widget_yesterday_text":"VÄera","widget_today_text":"Dnes","widget_replied_text":"\u003e\u003e {{ shop_name }} odpovÄdÄl/a:","widget_read_more_text":"ÄÃst vÃce","widget_reviewer_name_as_initial":"last_initial","widget_rating_filter_color":"#fbcd0a","widget_rating_filter_see_all_text":"Zobrazit vÅ¡echny recenze","widget_sorting_most_recent_text":"NejnovÄjÅ¡Ã","widget_sorting_highest_rating_text":"Nejvyššà hodnocenÃ","widget_sorting_lowest_rating_text":"Nejnižšà hodnocenÃ","widget_sorting_with_pictures_text":"Pouze obrázky","widget_sorting_most_helpful_text":"NejužiteÄnÄjÅ¡Ã","widget_open_question_form_text":"Položit otázku","widget_reviews_subtab_text":"Recenze","widget_questions_subtab_text":"Otázky","widget_question_label_text":"Otázka","widget_answer_label_text":"OdpovÄÄ","widget_question_placeholder_text":"NapiÅ¡te svou otázku zde","widget_submit_question_text":"Odeslat otázku","widget_question_submit_success_text":"DÄkujeme za vaÅ¡i otázku! Budeme vás informovat, jakmile na ni nÄkdo odpovÃ.","widget_star_color":"#C09175","verified_badge_text":"OvÄÅeno","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":"(mimo obchod)","all_reviews_pagination":100,"all_reviews_product_name_prefix_text":"o","enable_review_pictures":true,"enable_question_anwser":false,"widget_theme":"default","review_date_format":"dd/mm/yyyy","default_sort_method":"most-recent","widget_product_reviews_subtab_text":"Recenze produktů","widget_shop_reviews_subtab_text":"Recenze obchodu","widget_other_products_reviews_text":"Recenze pro ostatnà produkty","widget_store_reviews_subtab_text":"Recenze obchodu","widget_no_store_reviews_text":"Tento obchod dosud neobdržel žádné recenze","
722widget_web_restriction_product_reviews_text":"Tento produkt jeÅ¡tÄ nemá žádné recenze","widget_no_items_text":"Nenalezeny žádné položky","widget_show_more_text":"Zobrazit vÃce","widget_write_a_store_review_text":"Napsat recenzi obchodu","widget_other_languages_heading":"Recenze v jiných jazycÃch","widget_translate_review_text":"PÅeložit recenzi do {{ language }}","widget_translating_review_text":"PÅekládá se...","widget_show_original_translation_text":"Zobrazit originál ({{ language }})","widget_translate_review_failed_text":"Recenzi se nepodaÅilo pÅeložit.","widget_translate_review_retry_text":"Zkusit znovu","widget_translate_review_try_again_later_text":"Zkuste to znovu pozdÄji","show_product_url_for_grouped_product":false,"widget_sorting_pictures_first_text":"Obrázky jako prvnÃ","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":"â
Recenze","floating_tab_title":"Nechte zákaznÃky mluvit za nás","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":"ZákaznÃci nás hodnotà {{ shop.metafields.judgeme.all_reviews_rating | round: 1 }}/5 na základÄ {{ shop.metafields.judgeme.all_reviews_count }} recenzÃ.","all_reviews_text_badge_text_branded_style":"{{ shop.metafields.judgeme.all_reviews_rating | round: 1 }} z 5 hvÄzdiÄek na základÄ {{ shop.metafields.judgeme.all_reviews_count }} recenzÃ","is_all_reviews_text_badge_a_link":false,"show_stars_for_all_reviews_text_badge":false,"all_reviews_text_badge_url":"","all_reviews_text_style":"branded","all_reviews_text_color_style":"judgeme_brand_color","all_reviews_text_color":"#108474","all_reviews_text_show_jm_brand":true,"featured_carousel_show_header":true,"featured_carousel_title":"Hodnocenà naÅ¡ich zákaznÃků ","testimonials_carousel_title":"ZákaznÃci nás ÅÃkajÃ","videos_carousel_title":"SkuteÄné pÅÃbÄhy zákaznÃků","cards_carousel_title":"ZákaznÃci nás ÅÃkajÃ","featured_carousel_count_text":"z {{ n }} recenzÃ","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":100,"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":"Videa jako prvnÃ","widget_review_pending_text":"Äeká na schválenÃ","featured_carousel_items_for_large_screen":4,"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":"Žádné otázky","preview_badge_n_question_text":"{{ number_of_questions }} otázka/otázek","qa_badge_show_icon":false,"qa_badge_position":"same-row","remove_judgeme_branding":true,"widget_add_search_bar":false,"widget_search_bar_placeholder":"Hledat","widget_sorting_verified_only_text":"Pouze ovÄÅené","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":"#C09175","featured_carousel_border_style":"round","featured_carousel_review_line_length_limit":3,"featured_carousel_more_reviews_button_text":"ÄÃst vÃce recenzÃ","featured_carousel_view_product_button_text":"Zobrazit produkt","all_reviews_page_load_reviews_on":"scroll","all_reviews_page_load_more_text":"NaÄÃst vÃce recenzÃ","disable_fb_tab_reviews":false,"enable_ajax_cdn_cache":false,"widget_advanced_speed_features":5,"widget_public_name_text":"zobrazeno veÅejnÄ jako","default_reviewer_name":"John Smith","default_reviewer_name_has_non_latin":true,"widget_reviewer_anonymous":"AnonymnÃ","medals_widget_title":"Judge.me Medaile za recenze","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":"Neplatná URL adresa YouTube videa","widget_max_length_field_error_text":"Zadejte prosÃm ne vÃce než {0} znaků.","widget_show_country_flag":false,"widget_show_collected_via_shop_app":true,"widget_verified_by_shop_badge_style":"light","widget_verified_by_shop_text":"OvÄÅeno obchodem","widget_show_photo_gallery":false,"widget_load_with_code_splitting":true,"widget_ugc_install_preference":false,"widget_ugc_title":"Vyrobeno námi, sdÃleno vámi","widget_ugc_subt
722itle":"OznaÄte nás, abyste vidÄli svou fotografii na našà stránce","widget_ugc_arrows_color":"#ffffff","widget_ugc_primary_button_text":"Koupit nynÃ","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":"NaÄÃst vÃce","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":"Zobrazit recenze","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":"#C09175","widget_enable_secondary_color":false,"widget_secondary_color":"#edf5f5","widget_summary_average_rating_text":"{{ average_rating }} z 5","widget_media_grid_title":"Fotografie a videa zákaznÃků","widget_media_grid_see_more_text":"Zobrazit vÃce","widget_round_style":false,"widget_show_product_medals":true,"widget_verified_by_judgeme_text":"OvÄÅeno službou Judge.me","widget_show_store_medals":true,"widget_verified_by_judgeme_text_in_store_medals":"OvÄÅeno službou Judge.me","widget_media_field_exceed_quantity_message":"Omlouváme se, můžeme pÅijmout pouze {{ max_media }} pro jednu recenzi.","widget_media_field_exceed_limit_message":"{{ file_name }} je pÅÃliÅ¡ velký, vyberte prosÃm {{ media_type }} menšà než {{ size_limit }}MB.","widget_review_submitted_text":"Recenze odeslána!","widget_question_submitted_text":"Otázka odeslána!","widget_close_form_text_question":"ZruÅ¡it","widget_write_your_answer_here_text":"NapiÅ¡te svou odpovÄÄ zde","widget_enabled_branded_link":true,"widget_show_collected_by_judgeme":true,"widget_reviewer_name_color":"","widget_write_review_text_color":"","widget_write_review_bg_color":"","widget_collected_by_judgeme_text":"shromáždÄno službou Judge.me","widget_pagination_type":"standard","widget_load_more_text":"NaÄÃst vÃce","widget_load_more_color":"#108474","widget_full_review_text":"Celá recenze","widget_read_more_reviews_text":"ÄÃst vÃce recenzÃ","widget_read_questions_text":"ÄÃst otázky","widget_questions_and_answers_text":"Otázky a odpovÄdi","widget_verified_by_text":"OvÄÅeno","widget_verified_text":"OvÄÅeno","widget_number_of_reviews_text":"{{ number_of_reviews }} recenzÃ","widget_back_button_text":"ZpÄt","widget_next_button_text":"DalÅ¡Ã","widget_custom_forms_filter_button":"Filtry","custom_forms_style":"horizontal","widget_show_review_information":false,"how_reviews_are_collected":"Jak jsou recenze shromažÄovány?","widget_show_review_keywords":false,"widget_gdpr_statement":"Jak použÃváme vaÅ¡e údaje: Budeme vás kontaktovat pouze ohlednÄ recenze, kterou jste zanechali, a pouze v pÅÃpadÄ potÅeby. OdeslánÃm své recenze souhlasÃte s \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003epodmÃnkami\u003c/a\u003e, \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003eochranou soukromÃ\u003c/a\u003e a \u003ca href='https://judge.me/content-policy' target='_blank' rel='nofollow noopener'\u003eobsahovými zásadami\u003c/a\u003e Judge.me.","widget_multilingual_sorting_enabled":false,"widget_translate_review_content_enabled":false,"widget_translate_review_content_method":"manual","popup_widget_review_selection":"automatically_with_pictures","popup_widget_round_border_style":true,"popup_widget_show_title":true,"popup_widget_show_body":true,"popup_widget_show_reviewer":false,"popup_widget_show_product":true,"popup_widget_show_pictures":true,"popup_widget_use_review_picture":true,"popup_widget_show_on_home_page":true,"popup_widget_show_on_product_page":true,"popup_widget_show_on_collection_page":true,"popup_widget_show_on_cart_page":true,"popup_widget_position":"bottom_left","popup_widget_first_review_delay":5,"popup_widget_duration":5,"popup_widget_interval":5,"popup_widget_review_count":5,"popup_widget_hide_on_mobile":true,"review_snippet_widget_round_border_style":true,"review_snippet_widget_card_color":"#FFFFFF","review_snippet_widget_slider_arrows_background_color":"#FFFFFF","review_snippet_widget_slider_arrows_color":"#000000","review_snippet_widget_star_color":"#108474","show_product_variant":false,"all_reviews_product_variant_label_text":"Varianta: ","widget_show_verified_branding":false,"widget_ai_summary_title":"ZákaznÃci ÅÃkajÃ","widget_ai_summary_disclaimer":"Souhrn recenzà pohánÄný umÄlou inteligencà na základÄ nedávných zákaznických recenzÃ","widget_show_ai_summary":false,"widget_show_ai_summary_bg":false,"widget_show_review_title_input":true,"redirect_reviewers_invited_via_email":"review_widget","request_store_review_after_product_review":false,"request_review_other_products_in_order":false,"review_form_color_scheme":"default","review_form_corner_style":"square","review_form_star_color":{},"review_form_text_color":"#333333","review_form_background_color":"#ffffff","review_form_field_background_color":"#fafafa","review_form_button_color":{},"review_form_button_text_color":"#ffffff","review_form_modal_overlay_color":"#000000","review_content_screen_title_text":"Jak byste ohodnotili tento produkt?","review_content_introduction_text":"Byli bychom rádi, kdybyste se podÄlili o svou zkuÅ¡enost.","store_review_form_title_text":"Jak byste ohodnotili tento obchod?","store_review_form_introduction_text":"Byli bychom rádi, kdybyste se podÄlili o svou zkuÅ¡enost.","show_review_guidance_text":true,"one_star_review_guidance_text":"Slabý","five_star_review_guidance_text":"Výborný","customer_information_screen_title_text":"O vás","customer_information_introduction_text":"ÅeknÄte nám vÃce o sobÄ.","custom_questions_screen_title_text":"Váš zážitek podrobnÄji","custom_questions_introduction_text":"Zde je nÄkolik otázek, které nám pomohou lépe pochopit váš zážitek.","review_submitted_screen_title_text":"DÄkujeme za vaÅ¡i recenzi!","review_submitted_screen_thank_you_text":"Zpracováváme ji a brzy se objevà v obchodÄ.","review_submitted_screen_email_verification_text":"ProsÃm, potvrÄte svůj e-mail kliknutÃm na odkaz, který
722jsme vám právÄ poslali. Pomáhá nám to udržet recenze autentické.","review_submitted_request_store_review_text":"ChtÄli byste se podÄlit o svou zkuÅ¡enost s nakupovánÃm u nás?","review_submitted_review_other_products_text":"ChtÄli byste recenzovat tyto produkty?","store_review_screen_title_text":"ChtÄli byste se podÄlit o svou zkuÅ¡enost s nakupovánÃm u nás?","store_review_introduction_text":"CÃtÃme se vážnÄ k vaÅ¡i zpÄtné vazbÄ a použÃváme ji k vylepÅ¡enà naÅ¡ich produktů a služeb.","reviewer_media_screen_title_picture_text":"SdÃlet fotku","reviewer_media_introduction_picture_text":"Nahrajte fotku na podporu své recenze.","reviewer_media_screen_title_video_text":"SdÃlet video","reviewer_media_introduction_video_text":"Nahrajte video na podporu své recenze.","reviewer_media_screen_title_picture_or_video_text":"SdÃlet fotku nebo video","reviewer_media_introduction_picture_or_video_text":"Nahrajte fotku nebo video na podporu své recenze.","reviewer_media_youtube_url_text":"Vložte svůj Youtube URL zde","advanced_settings_next_step_button_text":"DalÅ¡Ã","advanced_settings_close_review_button_text":"ZavÅÃt","modal_write_review_flow":false,"write_review_flow_required_text":"Povinné","write_review_flow_privacy_message_text":"CÃtÃme se vážnÄ k vaÅ¡i soukromÃ.","write_review_flow_anonymous_text":"Recenze jako anonymnÃ","write_review_flow_visibility_text":"Toto nebude viditelné pro ostatnà zákaznÃky.","write_review_flow_multiple_selection_help_text":"Vyberte kolik chcete","write_review_flow_single_selection_help_text":"Vyberte jednu možnost","write_review_flow_required_field_error_text":"Toto pole je povinné","write_review_flow_invalid_email_error_text":"Zadejte prosÃm platnou e-mailovou adresu","write_review_flow_max_length_error_text":"Max. {{ max_length }} znaků.","write_review_flow_media_upload_text":"\u003cb\u003eKliknÄte pro nahránÃ\u003c/b\u003e nebo pÅetáhnÄte a pusÅ¥te","write_review_flow_gdpr_statement":"Budeme vás kontaktovat pouze v souvislosti s vašà recenzÃ, pokud to bude nutné. OdeslánÃm recenze souhlasÃte s naÅ¡imi \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003epodmÃnkami použitÃ\u003c/a\u003e a \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003ezásadami ochrany osobnÃch údajů\u003c/a\u003e.","rating_only_reviews_enabled":false,"show_negative_reviews_help_screen":false,"new_review_flow_help_screen_rating_threshold":3,"negative_review_resolution_screen_title_text":"ÅeknÄte nám vÃce","negative_review_resolution_text":"VaÅ¡e zkuÅ¡enost je pro nás důležitá. Pokud se vyskytly problémy s vaÅ¡Ãm nákupem, jsme tu, abychom pomohli. Neváhejte nás kontaktovat, rádi bychom mÄli pÅÃležitost vÄci napravit.","negative_review_resolution_button_text":"Kontaktujte nás","negative_review_resolution_proceed_with_review_text":"Zanechte recenzi","negative_review_resolution_subject":"Problém s nákupem od {{ shop_name }}.{{ order_name }}","preview_badge_collection_page_install_status":false,"widget_review_custom_css":"","preview_badge_custom_css":"","preview_badge_stars_count":"5-stars","featured_carousel_custom_css":"","floating_tab_custom_css":"","all_reviews_widget_custom_css":"","medals_widget_custom_css":"","verified_badge_custom_css":"","all_reviews_text_custom_css":"","transparency_badges_collected_via_store_invite":false,"transparency_badges_from_another_provider":false,"transparency_badges_collected_from_store_visitor":false,"transparency_badges_collected_by_verified_review_provider":false,"transparency_badges_earned_reward":false,"transparency_badges_collected_via_store_invite_text":"Recenze shromáždÄna prostÅednictvÃm pozvánky na obchod","transparency_badges_from_another_provider_text":"Recenze shromáždÄna od jiného poskytovatele","transparency_badges_collected_from_store_visitor_text":"Recenze shromáždÄna od návÅ¡tÄvnÃka obchodu","transparency_badges_written_in_google_text":"Recenze napsaná v Google","transparency_badges_written_in_etsy_text":"Recenze napsaná v Etsy","transparency_badges_written_in_shop_app_text":"Recenze napsaná v Shop App","transparency_badges_earned_reward_text":"Recenze zÃskala odmÄnu za budoucà nákup","product_review_widget_per_page":10,"widget_store_review_label_text":"Recenze obchodu","checkout_comment_extension_title_on_product_page":"Customer Comments","checkout_comment_extension_num_latest_comment_show":5,"checkout_comment_extension_format":"name_and_timestamp","checkout_comment_customer_name":"last_initial","checkout_comment_comment_notification":true,"preview_badge_collection_page_install_preference":false,"preview_badge_home_page_install_preference":false,"preview_badge_product_page_install_preference":false,"review_widget_install_preference":"","review_carousel_install_preference":false,"floating_reviews_tab_install_preference":"none","verified_reviews_count_badge_install_preference":false,"all_reviews_text_install_preference":false,"review_widget_best_location":false,"judgeme_medals_install_preference":false,"review_widget_revamp_enabled":false,"review_widget_qna_enabled":false,"review_widget_header_theme":"minimal","review_widget_widget_title_enabled":true,"review_widget_header_text_size":"medium","review_widget_header_text_weight":"regular","review_widget_average_rating_style":"compact","review_widget_bar_chart_enabled":true,"review_widget_bar_chart_type":"numbers","review_widget_bar_chart_style":"standard","review_widget_expanded_media_gallery_enabled":false,"review_widget_reviews_section_theme":"standard","review_widget_image_style":"thumbnails","review_widget_review_image_ratio":"square","review_widget_stars_size":"medium","review_widget_verified_badge":"standard_text","review_widget_review_title_text_size":"medium","review_widget_review_text_size":"medium","review_widget_review_text_length":"medium","review_widget_number_of_columns_desktop":3,"review_widget_carousel_transition_speed":5,"review_widget_custom_questions_answers_display":"always","review_widget_button_text_color":"#FFFFFF","review_widget_text_color":"#000000","review_widget_lighter_text_color":"#7B7B7B","review_widget_corner_styling":"soft","review_widget_review_word_singular":"recenze","review_widget_review_word_plural"
722:"recenze","review_widget_voting_label":"UžiteÄné?","review_widget_shop_reply_label":"OdpovÄÄ od {{ shop_name }}:","review_widget_filters_title":"Filtry","qna_widget_question_word_singular":"Otázka","qna_widget_question_word_plural":"Otázky","qna_widget_answer_reply_label":"OdpovÄÄ od {{ answerer_name }}:","qna_content_screen_title_text":"Zadat otázku ohlednÄ tohoto produktu","qna_widget_question_required_field_error_text":"ProsÃm, zadejte svou otázku.","qna_widget_flow_gdpr_statement":"Budeme vás kontaktovat pouze v souvislosti s vašà otázkou, pokud to bude nutné. OdeslánÃm vašà otázky souhlasÃte s naÅ¡imi \u003ca href='https://judge.me/terms' target='_blank' rel='nofollow noopener'\u003epodmÃnkami použitÃ\u003c/a\u003e a \u003ca href='https://judge.me/privacy' target='_blank' rel='nofollow noopener'\u003ezásadami ochrany osobnÃch údajů\u003c/a\u003e.","qna_widget_question_submitted_text":"DÄkujeme za vaÅ¡i otázku!","qna_widget_close_form_text_question":"ZavÅÃt","qna_widget_question_submit_success_text":"ObavÃme vás e-mailem, když odpovÃme na vaÅ¡i otázku.","all_reviews_widget_v2025_enabled":false,"all_reviews_widget_v2025_header_theme":"default","all_reviews_widget_v2025_widget_title_enabled":true,"all_reviews_widget_v2025_header_text_size":"medium","all_reviews_widget_v2025_header_text_weight":"regular","all_reviews_widget_v2025_average_rating_style":"compact","all_reviews_widget_v2025_bar_chart_enabled":true,"all_reviews_widget_v2025_bar_chart_type":"numbers","all_reviews_widget_v2025_bar_chart_style":"standard","all_reviews_widget_v2025_expanded_media_gallery_enabled":false,"all_reviews_widget_v2025_show_store_medals":true,"all_reviews_widget_v2025_show_photo_gallery":true,"all_reviews_widget_v2025_show_review_keywords":false,"all_reviews_widget_v2025_show_ai_summary":false,"all_reviews_widget_v2025_show_ai_summary_bg":false,"all_reviews_widget_v2025_add_search_bar":false,"all_reviews_widget_v2025_default_sort_method":"most-recent","all_reviews_widget_v2025_reviews_per_page":10,"all_reviews_widget_v2025_reviews_section_theme":"default","all_reviews_widget_v2025_image_style":"thumbnails","all_reviews_widget_v2025_review_image_ratio":"square","all_reviews_widget_v2025_stars_size":"medium","all_reviews_widget_v2025_verified_badge":"bold_badge","all_reviews_widget_v2025_review_title_text_size":"medium","all_reviews_widget_v2025_review_text_size":"medium","all_reviews_widget_v2025_review_text_length":"medium","all_reviews_widget_v2025_number_of_columns_desktop":3,"all_reviews_widget_v2025_carousel_transition_speed":5,"all_reviews_widget_v2025_custom_questions_answers_display":"always","all_reviews_widget_v2025_show_product_variant":false,"all_reviews_widget_v2025_show_reviewer_avatar":true,"all_reviews_widget_v2025_reviewer_name_as_initial":"","all_reviews_widget_v2025_review_location_show":false,"all_reviews_widget_v2025_location_format":"","all_reviews_widget_v2025_show_country_flag":false,"all_reviews_widget_v2025_verified_by_shop_badge_style":"light","all_reviews_widget_v2025_social_share":false,"all_reviews_widget_v2025_social_share_options_order":"Facebook,Twitter,LinkedIn,Pinterest","all_reviews_widget_v2025_pagination_type":"standard","all_reviews_widget_v2025_button_text_color":"#FFFFFF","all_reviews_widget_v2025_text_color":"#000000","all_reviews_widget_v2025_lighter_text_color":"#7B7B7B","all_reviews_widget_v2025_corner_styling":"soft","all_reviews_widget_v2025_title":"Recenze zákaznÃků","all_reviews_widget_v2025_ai_summary_title":"ZákaznÃci ÅÃkajà o tomto obchodÄ","all_reviews_widget_v2025_no_review_text":"BuÄte prvnÃ, kdo napÃÅ¡e recenzi","platform":"shopify","branding_url":"https://app.judge.me/reviews/stores/sayu.cz","branding_text":"PohánÄno službou Judge.me","locale":"en","reply_name":"SAYU","widget_version":"3.0","footer":true,"autopublish":false,"review_dates":true,"enable_custom_form":false,"shop_use_review_site":true,"shop_locale":"cs","enable_multi_locales_translations":false,"show_review_title_input":true,"review_verification_email_status":"never","can_be_branded":true,"reply_name_text":"SAYU"};</script>
722 <style class='jdgm-settings-style'>.jdgm-xx{left:0}:root{--jdgm-primary-color: #C09175;--jdgm-secondary-color: rgba(192,145,117,0.1);--jdgm-star-color: #C09175;--jdgm-write-review-text-color: white;--jdgm-write-review-bg-color: #C09175;--jdgm-paginate-color: #C09175;--jdgm-border-radius: 0;--jdgm-reviewer-name-color: #C09175}.jdgm-histogram__bar-content{background-color:#C09175}.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:#C09175}.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:"Zobrazit vÃce"}@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:"Zobrazit vÃce"}}.jdgm-preview-badge .jdgm-star.jdgm-star{color:#C09175}.jdgm-prev-badge[data-average-rating='0.00']{display:none !important}.jdgm-author-fullname{display:none !important}.jdgm-author-all-initials{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:'o'}.jdgm-rev__variant-label:before{content:'Varianta: '}.jdgm-rev__out-of-store-text:before{content:'(mimo obchod)'}@media only screen and (min-width: 768px){.jdgm-rev__pics .jdgm-rev_all-rev-page-picture-separator,.jdgm-rev__pics .jdgm-rev__product-picture{display:none}}@media only screen and (max-width: 768px){.jdgm-rev__pics .jdgm-rev_all-rev-page-picture-separator,.jdgm-rev__pics .jdgm-rev__product-picture{display:none}}.jdgm-preview-badge[data-template="product"]{display:none !important}.jdgm-preview-badge[data-template="collection"]{display:none !important}.jdgm-preview-badge[data-template="index"]{display:none !important}.jdgm-review-widget[data-from-snippet="true"]{display:none !important}.jdgm-verified-count-badget[data-from-snippet="true"]{display:none !important}.jdgm-carousel-wrapper[data-from-snippet="true"]{display:none !important}.jdgm-all-reviews-text[data-from-snippet="true"]{display:none !important}.jdgm-medals-section[data-from-snippet="true"]{display:none !important}.jdgm-ugc-media-wrapper[data-from-snippet="true"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_via_store_invitation"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_from_another_provider"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_collected_from_store_visitor"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_written_in_etsy"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_written_in_google_business"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_written_in_shop_app"]{display:none !important}.jdgm-rev__transparency-badge[data-badge-type="review_earned_for_future_purchase"]{display:none !important}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__cards-container .jdgm-rev-snippet-card{border-radius:8px;background:#fff}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__cards-container .jdgm-rev-snippet-card__rev-rating .jdgm-star{color:#108474}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__prev-btn,.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__next-btn{border-radius:50%;background:#fff}.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__prev-btn>svg,.jdgm-review-snippet-widget .jdgm-rev-snippet-widget__next-btn>svg{fill:#000}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jm-mfp-content,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__icon,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__pic-img,.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev__reply{border-radius:8px}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev[data-verified-buyer="true"] .jdgm-full-rev__icon::after{border-radius:8px}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-rev__buyer-badge{border-radius:calc( 8px / 2 )}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-full-rev__replier::before{content:'SAYU'}.jdgm-full-rev-modal.rev-snippet-widget .jm-mfp-container .jdgm-full-rev .jdgm-full-rev__product-button{border-radius:calc( 8px * 6 )} 723</style> <style class='jdgm-settings-style'></style> 724 725 726 727 728 <style class='jdgm-miracle-styles'> 729 @-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
729/gAAeAFjYoAAEA1jAwAAZAAHAHgB3crBCcAwDEPRZydkih567CDdf4ZskmLwFBV8xBfCaC4BXkOUmx4sU0h2ngNb9V0vQCxaRKIAevT7fGWuBrEAAAAAAAAAAAA0AHgAugAAeAF9z79Kw1AUx/FzTm7un6QmJtwmQ5Bg1abgEGr/BAqlU6Gju+Cgg1MkQ/sA7Vj7BOnmO/gUvo2Lo14NqIO6/IazfD8HEODtmQCfoANwNsyp2/GJt3WKQrd1NLiYYWx2PBqOsmJMEOznPOTzfSCrhAtbbLdmeFLJV9eKd63WLrZcIcuaEVdssWCKM6pLCfTVOYbz/0pNSMSZKLIZpvh78sAUH6PlMrreTCabP9r+Z/puPZ2ur/RqpQHgh+MIegCnXeM4MRAPjYN//5tj4ZtTjkFqEdmeMShlEJ7tVAly2TAkx6R68Fl4E/aVvn8JqHFQ4JS1434gXKcuL31dDhzs3YbsEOAd/IU88gAAAHgBfY4xTgMxEEVfkk0AgRCioKFxQYd2ZRtpixxgRU2RfhU5q5VWseQ4JdfgAJyBlmNwAM7ABRhZQ0ORwp7nr+eZAa54YwYg9zm3ynPOeFRe8MCrciXOh/KSS76UV5L/iDmrLiS5AeU519wrL3jmSbkS5115yR2fyivJv9kx0ZMZ2RLZw27q87iNQi8EBo5FSPIMw3HqBboi5lKTGAGDp8FKXWP+t9TU01Lj5His1Ba6uM9dTEMwvrFmbf5GC/q2drW3ruXUhhsCiQOjznFlCzYhHUZp4xp76vsvQh89CQAAeAFjYGJABowM6IANLMrEyMTIzMjCXpyRWJBqZshWXJJYBKOMAFHFBucAAAAAAAAB//8AAngBY2BkYGDgA2IJBhBgAvKZGViBJAuYxwAABJsAOgAAeAFjYGBgZACCk535hiD60tn0azAaAEqpB6wAAA==") format("woff");font-weight:normal;font-style:normal}.jdgm-star{font-family:'JudgemeStar';display:inline !important;text-decoration:none !important;padding:0 4px 0 0 !important;margin:0 !important;font-weight:bold;opacity:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.jdgm-star:hover{opacity:1}.jdgm-star:last-of-type{padding:0 !important}.jdgm-star.jdgm--on:before{content:"\e000"}.jdgm-star.jdgm--off:before{content:"\e001"}.jdgm-star.jdgm--half:before{content:"\e002"}.jdgm-widget *{margin:0;line-height:1.4;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch}.jdgm-hidden{display:none !important;visibility:hidden !important}.jdgm-temp-hidden{display:none}.jdgm-spinner{width:40px;height:40px;margin:auto;border-radius:50%;border-top:2px solid #eee;border-right:2px solid #eee;border-bottom:2px solid #eee;border-left:2px solid #ccc;-webkit-animation:jdgm-spin 0.8s infinite linear;animation:jdgm-spin 0.8s infinite linear}.jdgm-prev-badge{display:block !important} 730 731</style> 732 733 734 735 736 737 738 739 740
741<script data-cfasync='false' class='jdgm-script'> 742!function(e){window.jdgm=window.jdgm||{}; 743/* INF-1976 */ 744var _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;}(); 745if(_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;} 746jdgm.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/01a11176-2280-7862-971a-b99c4fd1084c/judgeme-773/assets/",jdgm.CDN_API_HOST="https://cdn.judge.me/", 747jdgm.docReady=function(d){(e.attachEvent?"complete"===e.readyState:"loading"!==e.readyState)? 748setTimeout(d,0):e.addEventListener("DOMContentLoaded",d)},jdgm.loadCSS=function(d,t,o,a){ 749!o&&jdgm.loadCSS.requestedUrls.indexOf(d)>=0||(jdgm.loadCSS.requestedUrls.push(d), 750(a=e.createElement("link")).rel="stylesheet",a.class="jdgm-stylesheet",a.media="nope!", 751a.href=d,a.onload=function(){this.media="all",t&&setTimeout(t)},e.body.appendChild(a))}, 752jdgm.loadCSS.requestedUrls=[],jdgm.loadJS=function(e,d){var t=new XMLHttpRequest; 753t.onreadystatechange=function(){4===t.readyState&&t.status>=200&&t.status<300&&(Function(t.response)(),d&&d(t.response))}, 754t.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( 755".jdgm-widget, .jdgm-all-reviews-page").length>0)&&(jdgmSettings.widget_load_with_code_splitting? 756parseFloat(jdgmSettings.widget_version)>=3?jdgm.loadCSS(jdgm.CDN_BASE_URL+"widget_v3_base.css"): 757jdgm.loadCSS(jdgm.CDN_BASE_URL+"widget_base.css"):jdgm.loadCSS(jdgm.CDN_BASE_URL+"shopify_v2.css") 758)}))}(document); 759</script>
759 760<noscript><link rel="stylesheet" type="text/css" media="all" href="https://cdn.shopify.com/extensions/01a11176-2280-7862-971a-b99c4fd1084c/judgeme-773/assets/shopify_v2.css"></noscript> 761 762<!-- BEGIN app snippet: theme_fix_tags -->
762<script> 763 (function() { 764 var jdgmThemeFixes = null; 765 if (!jdgmThemeFixes) return; 766 767 // "All themes" fix: CSS and JS applied on every theme. CSS is injected 768 // before the per-theme fix so the theme-specific CSS wins the cascade. 769 // HTML is never applied globally (too risky). 770 var allThemesFix = jdgmThemeFixes['all']; 771 if (allThemesFix && allThemesFix.css) { 772 var allStyleTag = document.createElement('style'); 773 allStyleTag.classList.add('jdgm-theme-fix-style-all'); 774 allStyleTag.innerHTML = allThemesFix.css; 775 document.head.append(allStyleTag); 776 }; 777 778 if (allThemesFix && allThemesFix.js) { 779 var allScriptTag = document.createElement('script'); 780 allScriptTag.classList.add('jdgm-theme-fix-script-all'); 781 allScriptTag.innerHTML = allThemesFix.js; 782 document.head.append(allScriptTag); 783 }; 784 785 var thisThemeFix = jdgmThemeFixes[Shopify.theme.id]; 786 if (!thisThemeFix) return; 787 788 if (thisThemeFix.html) { 789 document.addEventListener("DOMContentLoaded", function() { 790 var htmlDiv = document.createElement('div'); 791 htmlDiv.classList.add('jdgm-theme-fix-html'); 792 htmlDiv.innerHTML = thisThemeFix.html; 793 document.body.append(htmlDiv); 794 }); 795 }; 796 797 if (thisThemeFix.css) { 798 var styleTag = document.createElement('style'); 799 styleTag.classList.add('jdgm-theme-fix-style'); 800 styleTag.innerHTML = thisThemeFix.css; 801 document.head.append(styleTag); 802 }; 803 804 if (thisThemeFix.js) { 805 var scriptTag = document.createElement('script'); 806 scriptTag.classList.add('jdgm-theme-fix-script'); 807 scriptTag.innerHTML = thisThemeFix.js; 808 document.head.append(scriptTag); 809 }; 810 })(); 811</script>
811 812<!-- END app snippet --> 813<!-- End of Judge.me Core --> 814 815 816 817<!-- END app block -->
817<script src="https://cdn.shopify.com/extensions/01a11176-2280-7862-971a-b99c4fd1084c/judgeme-773/assets/loader.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 817
817
818<script src="https://cdn.shopify.com/extensions/01a115be-abcf-7501-a123-78da12b4df6b/lb-upsell-452/assets/lb-selleasy.js" type="text/javascript" defer="defer"></script>
vendor: 1 bytes, line 818
818
819<script src="https://cdn.shopify.com/extensions/01a0f6ed-716e-7bcb-9b26-cd9173669680/countdown-timer-30-98/assets/countdown_timer_essential_apps.min.js" type="text/javascript" defer="defer"></script>
819 820<link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
821<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: 53911060673,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "page"};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 821
821
822<script> 823 window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || []; 824</script>
vendor: 1 bytes, line 824
824
825<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}
825).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: 53911060673,storefrontBaseUrl: "https://sayu.cz",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://sayu.cz/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b"],webPixelsConfigList: [{"id":"3842474325","configuration":"{\"mailchimp_store_id\":\"store_ohpq13vx9auvvwaxnhd4\", \"mailchimp_user_id\":\"145321270\",\"mailchimp_list_id\":\"6cc8ab46cb\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"e357a49eadeb6216a959d63fa3fb8f55","type":"APP","apiClientId":2585307,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"3618177365","configuration":"{\"config\":\"{\\\"google_tag_ids\\\":[\\\"G-KBVPGMJP8D\\\",\\\"AW-16752011678\\\",\\\"GT-5M36P4K\\\"],\\\"target_country\\\":\\\"CZ\\\",\\\"gtag_events\\\":[{\\\"type\\\":\\\"begin_checkout\\\",\\\"action_label\\\":[\\\"G-KBVPGMJP8D\\\",\\\"AW-16752011678\\\/qiDhCO-E2d0bEJ7T_bM-\\\"]},{\\\"type\\\":\\\"search\\\",\\\"action_label\\\":[\\\"G-KBVPGMJP8D\\\",\\\"AW-16752011678\\\/MlF_CPuE2d0bEJ7T_bM-\\\"]},{\\\"type\\\":\\\"remove_from_cart\\\",\\\"action_label\\\":\\\"G-KBVPGMJP8D\\\"},{\\\"type\\\":\\\"view_item\\\",\\\"action_label\\\":[\\\"G-KBVPGMJP8D\\\",\\\"AW-16752011678\\\/DYcHCPiE2d0bEJ7T_bM-\\\",\\\"MC-XYDRT65Y52\\\"]},{\\\"type\\\":\\\"add_shipping_info\\\",\\\"action_label\\\":\\\"G-KBVPGMJP8D\\\"},{\\\"type\\\":\\\"purchase\\\",\\\"action_label\\\":[\\\"G-KBVPGMJP8D\\\",\\\"AW-16752011678\\\/WIE3COyE2d0bEJ7T_bM-\\\",\\\"MC-XYDRT65Y52\\\"]},{\\\"type\\\":\\\"page_view\\\",\\\"action_label\\\":[\\\"G-KBVPGMJP8D\\\",\\\"AW-16752011678\\\/cdhhCPWE2d0bEJ7T_bM-\\\",\\\"MC-XYDRT65Y52\\\"]},{\\\"type\\\":\\\"view_item_list\\\",\\\"action_label\\\":\\\"G-KBVPGMJP8D\\\"},{\\\"type\\\":\\\"add_payment_info\\\",\\\"action_label\\\":[\\\"G-KBVPGMJP8D\\\",\\\"AW-16752011678\\\/RNAvCLHV6d0bEJ7T_bM-\\\"]},{\\\"type\\\":\\\"add_to_cart\\\",\\\"action_label\\\":[\\\"G-KBVPGMJP8D\\\",\\\"AW-16752011678\\\/suh3CPKE2d0bEJ7T_bM-\\\"]},{\\\"type\\\":\\\"view_cart\\\",\\\"action_label\\\":\\\"G-KBVPGMJP8D\\\"}],\\\"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":"3611984213","configuration":"{\"pixel_id\":\"301771074953950\",\"pixel_type\":\"facebook_pixel\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"bd2f978c17a94bbb8a74d43de2165dc5","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]}
825,{"id":"2382856533","configuration":"{\"shop\":\"sayucz.myshopify.com\",\"cookie_duration\":\"259200\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"a2e7513c3708f34b1f617d7ce88f9697","type":"APP","apiClientId":2744533,"privacyPurposes":["ANALYTICS","MARKETING"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized"},{"id":"2217181525","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":"245367125","configuration":"{\"accountID\":\"selleasy-metrics-track\"}","eventPayloadVersion":"v1","runtimeContext":"STRICT","scriptVersion":"50acfdcd7b118f50e52df83f64624d06","type":"APP","apiClientId":5519923,"privacyPurposes":[],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_email","read_customer_name","read_customer_personal_data"],"dataSharingControls":["share_all_events"]},"dataSharingState":"unrestricted"},{"id":"291930453","eventPayloadVersion":"1","runtimeContext":"LAX","scriptVersion":"2","type":"CUSTOM","privacyPurposes":[],"name":"Sklik"},{"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":"SAYU","paymentSettings":{"currencyCode":"CZK"},"myshopifyDomain":"sayucz.myshopify.com","countryCode":"CZ","storefrontUrl":"https:\/\/sayu.cz"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[{"id":"11490795159893","handle":"komfii-modal-bikini-briefs-off-white-s-merinem","isCollective":null,"title":null,"type":null,"untranslatedTitle":null,"url":null,"vendor":null,"remoteShopId":null,"variants":[{"id":"54554888667477","image":null,"price":null,"sku":null,"title":null,"untranslatedTitle":null}]}],"purchasingCompany":null},},"https://sayu.cz/cdn","7ec887c8w14f9f074p854094e1m1370c602",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"132352508097","themePublished":"true","eventMetadataId":"629067b8-ece8-4294-ae62-93b4c8c3ccce","pageType":"page","resourceId":"164279615829","shopId":"53911060673","storefrontBaseUrl":"https:\/\/sayu.cz","extensionBaseUrl":"https:\/\/extensions.shopifycdn.com\/cdn\/shopifycloud\/web-pixels-manager","surface":"storefront-renderer","enabledBetaFlags":"[\"4c64608a\", \"16072cab\", \"8450a54b\"]","isMerchantRequest":"false","hashVersion":"7ec887c8w14f9f074p854094e1m1370c602","publish":"custom","events":"[[\"page_viewed\",{}]]"});})();</script>
825<script> 826 window.ShopifyAnalytics = window.ShopifyAnalytics || {}; 827 window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {}; 828 window.ShopifyAnalytics.meta.currency = 'CZK'; 829 var meta = {"page":{"pageType":"page","resourceType":"page","resourceId":164279615829,"requestId":"72f7ec70-eea6-4d93-a356-023a14d3f685-1791428393"}}; 830 for (var attr in meta) { 831 window.ShopifyAnalytics.meta[attr] = meta[attr]; 832 } 833</script>
vendor: 1 bytes, line 833
833
834<script class="analytics"> 835 (function () { 836 var customDocumentWrite = function(content) { 837 var jquery = null; 838 839 if (window.jQuery) { 840 jquery = window.jQuery; 841 } else if (window.Checkout && window.Checkout.$) { 842 jquery = window.Checkout.$; 843 } 844 845 if (jquery) { 846 jquery('body').append(content); 847 } 848 }; 849 850 var hasLoggedConversion = function(token) { 851 if (token) { 852 return document.cookie.indexOf('loggedConversion=' + token) !== -1; 853 } 854 return false; 855 } 856 857 var setCookieIfConversion = function(token) { 858 if (token) { 859 var twoMonthsFromNow = new Date(Date.now()); 860 twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2); 861 862 document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow; 863 } 864 } 865 866 var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || []; 867 window.ShopifyAnalytics.lib.trekkie = window.trekkie; 868 if (trekkie.integrations) { 869 return; 870 } 871 trekkie.methods = [ 872 'identify', 873 'page', 874 'ready', 875 'track', 876 'trackForm', 877 'trackLink' 878 ]; 879 trekkie.factory = function(method) { 880 return function() { 881 var args = Array.prototype.slice.call(arguments); 882 args.unshift(method); 883 trekkie.push(args); 884 if (method == 'track' || method == 'page') { 885 var pageUrl; 886 try { 887 pageUrl = window.location.href; 888 } catch (e) {} 889 var pageReferrer; 890 try { 891 pageReferrer = document.referrer; 892 } catch (e) {} 893 try { 894 if (window.__TREKKIE_SHIM_QUEUE == null) { 895 window.__TREKKIE_SHIM_QUEUE = []; 896 } 897 window.__TREKKIE_SHIM_QUEUE.push({ 898 from: 'trekkie-stub', 899 method: method, 900 args: args.slice(1), 901 pageContext: { 902 url: pageUrl, 903 referrer: pageReferrer 904 } 905 }); 906 } catch (e) { 907 // no-op 908 } 909 } 910 return trekkie; 911 }; 912 }; 913 for (var i = 0; i < trekkie.methods.length; i++) { 914 var key = trekkie.methods[i]; 915 trekkie[key] = trekkie.factory(key); 916 } 917 trekkie.load = function(config) { 918 trekkie.config = config || {}; 919 trekkie.config.initialDocumentCookie = document.cookie; 920 var first = document.getElementsByTagName('script')[0]; 921var script = document.createElement('script'); 922script.type = 'text/javascript'; 923script.onerror = function(e) { 924 var scriptFallback = document.createElement('script'); 925 scriptFallback.type = 'text/javascript'; 926 scriptFallback.onerror = function(error) { 927 var Monorail = { 928 produce: function produce(monorailDomain, schemaId, payload) { 929 var currentMs = new Date().getTime(); 930 var event = { 931 schema_id: schemaId, 932 payload: payload, 933 metadata: { 934 event_created_at_ms: currentMs, 935 event_sent_at_ms: currentMs 936 } 937 }; 938 return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event)); 939 }, 940 sendRequest: function sendRequest(endpointUrl, payload) { 941 // Try the sendBeacon API 942 if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) { 943 var blobData = new window.Blob([payload], { 944 type: 'text/plain' 945 }); 946 947 if (window.navigator.sendBeacon(endpointUrl, blobData)) { 948 return true; 949 } // sendBeacon was not successful 950 951 } // XHR beacon 952 953 var xhr = new XMLHttpRequest(); 954 955 try { 956 xhr.open('POST', endpointUrl); 957 xhr.setRequestHeader('Content-Type', 'text/plain'); 958 xhr.send(payload); 959 } catch (e) { 960 console.log(e); 961 } 962 963 return false; 964 }, 965 isIos12: function isIos12() { 966 return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1; 967 } 968 }; 969 Monorail.produce('monorail-edge.shopifysvc.com', 970 'trekkie_storefront_load_errors/1.1', 971 {shop_id: 53911060673, 972 theme_id: 132352508097, 973 app_name: "storefront", 974 context_url: window.location.href, 975 source_url: "//sayu.cz/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js"}); 976 977 }; 978 scriptFallback.async = true; 979 scriptFallback.src = '//sayu.cz/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js'; 980 first.parentNode.insertBefore(scriptFallback, first); 981}; 982script.async = true; 983script.src = '//sayu.cz/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js'; 984first.parentNode.insertBefore(script, first); 985 986 }; 987 trekkie.load( 988 {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":53911060673,"isMerchantRequest":null,"themeId":132352508097,"themeCityHash":"4263285701017546894","contentLanguage":"cs","currency":"CZK","eventMetadataId":"629067b8-ece8-4294-ae62-93b4c8c3ccce"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}} 989 ); 990 991 var loaded = false;
992 trekkie.ready(function() { 993 if (loaded) return; 994 loaded = true; 995 996 window.ShopifyAnalytics.lib = window.trekkie; 997 998 var originalDocumentWrite = document.write; 999 document.write = customDocumentWrite; 1000 try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {}; 1001 document.write = originalDocumentWrite; 1002 1003 var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/) 1004 var token = match? match[1]: undefined; 1005 if (!hasLoggedConversion(token)) { 1006 setCookieIfConversion(token); 1007 1008 } 1009 }); 1010 1011 window.ShopifyAnalytics.lib.page(null,{"pageType":"page","resourceType":"page","resourceId":164279615829,"requestId":"72f7ec70-eea6-4d93-a356-023a14d3f685-1791428393","shopifyEmitted":true}); 1012 1013 var eventsListenerScript = document.createElement('script'); 1014 eventsListenerScript.async = true; 1015 eventsListenerScript.src = "//sayu.cz/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js"; 1016 document.getElementsByTagName('head')[0].appendChild(eventsListenerScript); 1017})();</script>
1017 1018
1018<script> 1019 if (!window.ga || (window.ga && typeof window.ga !== 'function')) { 1020 window.ga = function ga() { 1021 (window.ga.q = window.ga.q || []).push(arguments); 1022 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 1023 window.Shopify.analytics.publish("ga_stub_called", {}, {sendTo: "google_osp_migration"}); 1024 } 1025 console.error("Shopify's Google Analytics stub called with:", Array.from(arguments), "\nSee https://help.shopify.com/manual/promoting-marketing/pixels/pixel-migration#google for more information."); 1026 }; 1027 if (window.Shopify && window.Shopify.analytics && typeof window.Shopify.analytics.publish === 'function') { 1028 window.Shopify.analytics.publish("ga_stub_initialized", {}, {sendTo: "google_osp_migration"}); 1029 } 1030 } 1031</script>
vendor: 1 bytes, line 1031
1031
1032<script 1033 defer 1034 src="https://sayu.cz/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.6.min.js" 1035 data-application="storefront-renderer" 1036 data-shop-id="53911060673" 1037 data-render-region="gcp-us-west1" 1038 data-page-type="page" 1039 data-theme-instance-id="132352508097" 1040 data-theme-name="Dawn" 1041 data-theme-version="11.0.0" 1042 data-monorail-region="shop_domain" 1043 data-resource-timing-sampling-rate="10" 1044 data-shs="true" 1045 data-shs-beacon="true" 1046 data-shs-export-with-fetch="true" 1047 data-shs-logs-sample-rate="1" 1048 data-shs-beacon-endpoint="https://sayu.cz/api/collect" 1049></script>
1049 1050<meta name="shopify-y" content="31ef5a4d-65f6-4ef3-b350-325abadb0751" data-expiration="1822985993000"><meta name="shopify-s" content="9c3d6107-4142-4a91-ae93-db30530cc5f1" data-expiration="1791430193000"><meta name="new-cookie-storage-activated" content="t"> 1051</head> 1052 1053 <body class="gradient animate--hover-vertical-lift"> 1054 <a class="skip-to-content-link button visually-hidden" href="#MainContent"> 1055 PÅejÃt k obsahu 1056 </a> 1057 <!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 1057-1058
1057 1058<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
1058GTM-TL77RXX
vendor: 83 bytes, lines 1058-1059
1058" 1059height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
1060<!-- End Google Tag Manager (noscript) --> 1061 1062<link href="//sayu.cz/cdn/shop/t/31/assets/quantity-popover.css?v=29974906037699025581705621622" rel="stylesheet" type="text/css" media="all" /> 1063
1064<script src="//sayu.cz/cdn/shop/t/31/assets/cart.js?v=4193034376803868811705621629" defer="defer"></script>
vendor: 1 bytes, line 1064
1064
1065<script src="//sayu.cz/cdn/shop/t/31/assets/quantity-popover.js?v=82513154315370490311705621628" defer="defer"></script>
1065 1066 1067<style> 1068 .drawer { 1069 visibility: hidden; 1070 } 1071</style> 1072 1073<cart-drawer class="drawer is-empty"> 1074 <div id="CartDrawer" class="cart-drawer"> 1075 <div id="CartDrawer-Overlay" class="cart-drawer__overlay"></div> 1076 <div 1077 class="drawer__inner" 1078 role="dialog" 1079 aria-modal="true" 1080 aria-label="Váš koÅ¡Ãk" 1081 tabindex="-1" 1082 ><div class="drawer__inner-empty"> 1083 <div class="cart-drawer__warnings center cart-drawer__warnings--has-collection"> 1084 <div class="cart-drawer__empty-content"> 1085 <h2 class="cart__empty-text">KoÅ¡Ãk je prázdný</h2> 1086 <button 1087 class="drawer__close" 1088 type="button" 1089 onclick="this.closest('cart-drawer').close()" 1090 aria-label="ZavÅÃt" 1091 > 1092 <svg 1093 xmlns="http://www.w3.org/2000/svg" 1094 aria-hidden="true" 1095 focusable="false" 1096 class="icon icon-close" 1097 fill="none" 1098 viewBox="0 0 18 17" 1099> 1100 <path d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z" fill="currentColor"> 1101</svg> 1102 1103 </button> 1104 <a href="/collections/all" class="button"> 1105 PokraÄovat v nákupu 1106 </a></div> 1107 </div><div class="cart-drawer__collection"> 1108 1109<div class="card-wrapper animate-arrow collection-card-wrapper"> 1110 <div 1111 class=" 1112 card 1113 card--standard 1114 card--media 1115 1116 1117 1118 " 1119 style="--ratio-percent: 100%;" 1120 > 1121 <div 1122 class="card__inner color-scheme-f2e3d068-fb0f-4936-a620-1b61c50deea3 gradient ratio" 1123 style="--ratio-percent: 100%;" 1124 ><div class="card__media"> 1125 <div class="media media--transparent media--hover-effect"> 1126 <img 1127 srcset="//sayu.cz/cdn/shop/files/kalhotky_modal.png?v=1788172809&width=165 165w,//sayu.cz/cdn/shop/files/kalhotky_modal.png?v=1788172809&width=330 330w,//sayu.cz/cdn/shop/files/kalhotky_modal.png?v=1788172809&width=535 535w,//sayu.cz/cdn/shop/files/kalhotky_modal.png?v=1788172809&width=750 750w,//sayu.cz/cdn/shop/files/kalhotky_modal.png?v=1788172809&width=1000 1000w,//sayu.cz/cdn/shop/files/kalhotky_modal.png?v=1788172809 1490w 1128 " 1129 src="//sayu.cz/cdn/shop/files/kalhotky_modal.png?v=1788172809&width=1500" 1130 sizes=" 1131 (min-width: 1600px) 1500px, 1132 (min-width: 750px) calc(100vw - 10rem), 1133 calc(100vw - 3rem) 1134 " 1135 alt="" 1136 height="2236" 1137 width="1490" 1138 loading="lazy" 1139 class="motion-reduce" 1140 > 1141 </div> 1142 </div><div class="card__content"> 1143 <div class="card__information"> 1144 <h3 class="card__heading"> 1145 <a 1146 1147 href="/collections/elegantni-menstruace" 1148 1149 class="full-unstyled-link" 1150 >Elegantnà menstruace<span class="icon-wrap"><svg 1151 viewBox="0 0 14 10" 1152 fill="none" 1153 aria-hidden="true" 1154 focusable="false" 1155 class="icon icon-arrow" 1156 xmlns="http://www.w3.org/2000/svg" 1157> 1158 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"> 1159</svg> 1160</span> 1161 </a> 1162 </h3></div> 1163 </div></div><div class="card__content"> 1164 <div class="card__information"> 1165 <h3 class="card__heading"> 1166 <a 1167 1168 href="/collections/elegantni-menstruace" 1169 1170 class="full-unstyled-link" 1171 >Elegantnà menstruace<span class="icon-wrap"><svg 1172 viewBox="0 0 14 10" 1173 fill="none" 1174 aria-hidden="true" 1175 focusable="false" 1176 class="icon icon-arrow" 1177 xmlns="http://www.w3.org/2000/svg" 1178> 1179 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"> 1180</svg> 1181</span> 1182 </a> 1183 </h3></div> 1184 </div></div> 1185</div> 1186 1187 </div></div><div class="drawer__header"> 1188 <h2 class="drawer__heading">Váš koÅ¡Ãk</h2> 1189 <button 1190 class="drawer__close" 1191 type="button" 1192 onclick="this.closest('cart-drawer').close()" 1193 aria-label="ZavÅÃt" 1194 > 1195 <svg 1196 xmlns="http://www.w3.org/2000/svg" 1197 aria-hidden="true" 1198 focusable="false" 1199 class="icon icon-close" 1200 fill="none" 1201 viewBox="0 0 18 17" 1202> 1203 <path d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z" fill="currentColor"> 1204</svg> 1205 1206 </button> 1207 </div> 1208 <cart-drawer-items 1209 1210 class=" is-empty" 1211 1212 > 1213 <form 1214 action="/cart" 1215 id="CartDrawer-Form" 1216 class="cart__contents cart-drawer__form" 1217 method="post" 1218 > 1219 <div id="CartDrawer-CartItems" class="drawer__contents js-contents"><p id="CartDrawer-LiveRegionText" class="visually-hidden" role="status"></p> 1220 <p id="CartDrawer-LineItemStatus" class="visually-hidden" aria-hidden="true" role="status"> 1221 NaÄÃtánÃ... 1222 </p> 1223 </div> 1224 <div id="CartDrawer-CartErrors" role="alert"></div> 1225 </form> 1226 </cart-drawer-items> 1227 <div class="drawer__footer"><details id="Details-CartDrawer"> 1228 <summary>
1229 <span class="summary__title"> 1230 Poznámka k objednávce 1231 <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6"> 1232 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"> 1233</svg> 1234 1235 </span> 1236 </summary> 1237 <cart-note class="cart__note field"> 1238 <label class="visually-hidden" for="CartDrawer-Note">Poznámka k objednávce</label> 1239 <textarea 1240 id="CartDrawer-Note" 1241 class="text-area text-area--resize-vertical field__input" 1242 name="note" 1243 placeholder="Poznámka k objednávce" 1244 ></textarea> 1245 </cart-note> 1246 </details><!-- Start blocks --> 1247 <!-- Subtotals --> 1248 1249 <div class="cart-drawer__footer" > 1250 <div></div> 1251 1252 <div class="totals" role="status"> 1253 <h2 class="totals__total">MezisouÄet</h2> 1254 <p class="totals__total-value">0 KÄ</p> 1255 </div> 1256 1257 <small class="tax-note caption-large rte">VÄetnÄ danÃ. <a href="/policies/shipping-policy">PoÅ¡tovné</a> a slevy se vypoÄÃtajà na pokladnÄ. 1258</small> 1259 </div> 1260 1261 <!-- CTAs --> 1262 1263 <div class="cart__ctas" > 1264 <noscript> 1265 <button type="submit" class="cart__update-button button button--secondary" form="CartDrawer-Form"> 1266 Aktualizovat 1267 </button> 1268 </noscript> 1269 1270 <button 1271 type="submit" 1272 id="CartDrawer-Checkout" 1273 class="cart__checkout-button button" 1274 name="checkout" 1275 form="CartDrawer-Form" 1276 1277 disabled 1278 1279 > 1280 Pokladna 1281 </button> 1282 </div> 1283 </div> 1284 </div> 1285 </div> 1286</cart-drawer> 1287
1288<script> 1289 document.addEventListener('DOMContentLoaded', function () { 1290 function isIE() { 1291 const ua = window.navigator.userAgent; 1292 const msie = ua.indexOf('MSIE '); 1293 const trident = ua.indexOf('Trident/'); 1294 1295 return msie > 0 || trident > 0; 1296 } 1297 1298 if (!isIE()) return; 1299 const cartSubmitInput = document.createElement('input'); 1300 cartSubmitInput.setAttribute('name', 'checkout'); 1301 cartSubmitInput.setAttribute('type', 'hidden'); 1302 document.querySelector('#cart').appendChild(cartSubmitInput); 1303 document.querySelector('#checkout').addEventListener('click', function (event) { 1304 document.querySelector('#cart').submit(); 1305 }); 1306 }); 1307</script>
1307 1308<!-- BEGIN sections: header-group --> 1309<div id="shopify-section-sections--21785349194069__announcement-bar" class="shopify-section shopify-section-group-header-group announcement-bar-section"><link href="//sayu.cz/cdn/shop/t/31/assets/component-slideshow.css?v=107725913939919748051705621624" rel="stylesheet" type="text/css" media="all" /> 1310<link href="//sayu.cz/cdn/shop/t/31/assets/component-slider.css?v=26339865758454533531705621621" rel="stylesheet" type="text/css" media="all" /> 1311 1312 <link href="//sayu.cz/cdn/shop/t/31/assets/component-list-social.css?v=35792976012981934991705621626" rel="stylesheet" type="text/css" media="all" /> 1313 1314 1315<div 1316 class="utility-bar color-scheme-965b97ca-2892-4bd6-a183-a66b711cfe1e gradient" 1317 1318> 1319 <div class="page-width utility-bar__grid"><slideshow-component 1320 class="announcement-bar" 1321 role="region" 1322 aria-roledescription="Karusel" 1323 aria-label="Panel oznámenÃ" 1324 > 1325 <div class="announcement-bar-slider slider-buttons"> 1326 <button 1327 type="button" 1328 class="slider-button slider-button--prev" 1329 name="previous" 1330 aria-label="PÅedchozà oznámenÃ" 1331 aria-controls="Slider-sections--21785349194069__announcement-bar" 1332 > 1333 <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6"> 1334 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"> 1335</svg> 1336 1337 </button> 1338 <div 1339 class="grid grid--1-col slider slider--everywhere" 1340 id="Slider-sections--21785349194069__announcement-bar" 1341 aria-live="polite" 1342 aria-atomic="true" 1343 data-autoplay="true" 1344 data-speed="5" 1345 ><div 1346 class="slideshow__slide slider__slide grid__item grid--1-col" 1347 id="Slide-sections--21785349194069__announcement-bar-1" 1348 1349 role="group" 1350 aria-roledescription="OznámenÃ" 1351 aria-label="1 z 2" 1352 tabindex="-1" 1353 > 1354 <div 1355 class="announcement-bar__announcement" 1356 role="region" 1357 aria-label="OznámenÃ" 1358 1359 ><a 1360 href="/pages/kontakt" 1361 class="announcement-bar__link link link--text focus-inset animate-arrow" 1362 ><p class="announcement-bar__message h5"> 1363 <span>POZOR: ve stÅedu 7.10. je odpolednà showroom otevÅený až od 15 hodin. TÄÅ¡Ãme se na vás 9-12 a 15-18 hodin.</span><svg 1364 viewBox="0 0 14 10" 1365 fill="none" 1366 aria-hidden="true" 1367 focusable="false" 1368 class="icon icon-arrow" 1369 xmlns="http://www.w3.org/2000/svg" 1370> 1371 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"> 1372</svg> 1373 1374</p></a></div> 1375 </div><div 1376 class="slideshow__slide slider__slide grid__item grid--1-col" 1377 id="Slide-sections--21785349194069__announcement-bar-2" 1378 1379 role="group" 1380 aria-roledescription="OznámenÃ" 1381 aria-label="2 z 2" 1382 tabindex="-1" 1383 > 1384 <div 1385 class="announcement-bar__announcement" 1386 role="region" 1387 aria-label="OznámenÃ" 1388 1389 ><a 1390 href="/collections/menstruacni-kalhotky" 1391 class="announcement-bar__link link link--text focus-inset animate-arrow" 1392 ><p class="announcement-bar__message h5"> 1393 <span>SLEVA 20 % pÅi koupi 5+ kusů menstruaÄnÃch kalhotek s kódem SAYU20. Neplatà na sety.</span><svg 1394 viewBox="0 0 14 10" 1395 fill="none" 1396 aria-hidden="true" 1397 focusable="false" 1398 class="icon icon-arrow" 1399 xmlns="http://www.w3.org/2000/svg" 1400> 1401 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"> 1402</svg> 1403 1404</p></a></div> 1405 </div></div> 1406 <button 1407 type="button" 1408 class="slider-button slider-button--next" 1409 name="next" 1410 aria-label="Dalšà oznámenÃ" 1411 aria-controls="Slider-sections--21785349194069__announcement-bar" 1412 > 1413 <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6"> 1414 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"> 1415</svg> 1416 1417 </button> 1418 </div> 1419 </slideshow-component><div class="localization-wrapper"> 1420</div> 1421 </div> 1422</div> 1423 1424 1425</div><div id="shopify-section-sections--21785349194069__header" class="shopify-section shopify-section-group-header-group section-header"><link rel="stylesheet" href="//sayu.cz/cdn/shop/t/31/assets/component-list-menu.css?v=151968516119678728991705621623" media="print" onload="this.media='all'"> 1426<link rel="stylesheet" href="//sayu.cz/cdn/shop/t/31/assets/component-search.css?v=130382253973794904871705621632" media="print" onload="this.media='all'"> 1427<link rel="stylesheet" href="//sayu.cz/cdn/shop/t/31/assets/component-menu-drawer.css?v=31331429079022630271705621621" media="print" onload="this.media='all'"> 1428<link rel="stylesheet" href="//sayu.cz/cdn/shop/t/31/assets/component-cart-notification.css?v=54116361853792938221705621624" media="print" onload="this.media='all'"> 1429<link rel="stylesheet" href="//sayu.cz/cdn/shop/t/31/assets/component-cart-items.css?v=63185545252468242311705621618" media="print" onload="this.media='all'"><link rel="stylesheet" href="//sayu.cz/cdn/shop/t/31/assets/component-price.css?v=70172745017360139101705621620" media="print" onload="this.media='all'"> 1430 <link rel="stylesheet" href="//sayu.cz/cdn/shop/t/31/assets/component-loading-overlay.css?v=58800470094666109841705621614" media="print" onload="this.media='all'"><link rel="stylesheet" href="//sayu.cz/cdn/shop/t/31/assets/component-mega-menu.css?v=19064527344995824231705621630" media="print" onload="this.media='all'"> 1431 <noscript><link href="//sayu.cz/cdn/shop/t/31/assets/component-mega-menu.css?v=19064527344995824231705621630" rel="stylesheet" type="text/css" media="all" /></noscript><link href="//sayu.cz/cdn/shop/t/31/assets/component-cart-drawer.css?v=147838144396349376841705621629" rel="stylesheet" type="text/css" media="all" /> 1432 <link href="//sayu.cz/cdn/shop/t/31/assets/component-cart.css?v=150915052884658833881705621618" rel="stylesheet" type="text/css" media="all" /> 1433 <link href="//sayu.cz/cdn/shop/t/31/assets/component-totals.css?v=15906652033866631521705621616" rel="stylesheet" type="text/css" media="all" /> 1434 <link href="//sayu.cz/cdn/shop/t/31/assets/component-price.css?v=70172745017360139101705621620" rel="stylesheet" type="text/css" media="all" /> 1435 <link href="//sayu.cz/cdn/shop/t/31/assets/component-discounts.css?v=152760482443307489271705621625" rel="stylesheet" type="text/css" media="all" /> 1436 <link href="//sayu.cz/cdn/shop/t/31/assets/component-loading-overlay.css?v=58800470094666109841705621614" rel="stylesheet" type="text/css" media="all" /> 1437<noscript><link href="//sayu.cz/cdn/shop/t/31/assets/component-list-menu.css?v=151968516119678728991705621623" rel="stylesheet" type="text/css" media="all" /></noscript> 1438<noscript><link href="//sayu.cz/cdn/shop/t/31/assets/component-search.css?v=130382253973794904871705621632" rel="stylesheet" type="text/css" media="all" /></noscript> 1439<noscript><link href="//sayu.cz/cdn/shop/t/31/assets/component-menu-drawer.css?v=31331429079022630271705621621" rel="stylesheet" type="text/css" media="all" /></noscript> 1440<noscript><link href="//sayu.cz/cdn/shop/t/31/assets/component-cart-notification.css?v=54116361853792938221705621624" rel="stylesheet" type="text/css" media="all" /></noscript> 1441<noscript><link href="//sayu.cz/cdn/shop/t/31/assets/component-cart-items.css?v=63185545252468242311705621618" rel="stylesheet" type="text/css" media="all" /></noscript> 1442 1443<style> 1444 header-drawer { 1445 justify-self: start; 1446 margin-left: -1.2rem; 1447 }@media screen and (min-width: 990px) { 1448 header-drawer { 1449 display: none; 1450 } 1451 }.menu-drawer-container { 1452 display: flex; 1453 } 1454 1455 .list-menu { 1456 list-style: none; 1457 padding: 0; 1458 margin: 0; 1459 } 1460 1461 .list-menu--inline { 1462 display: inline-flex; 1463 flex-wrap: wrap; 1464 } 1465 1466 summary.list-menu__item { 1467 padding-right: 2.7rem; 1468 } 1469 1470 .list-menu__item { 1471 display: flex; 1472 align-items: center; 1473 line-height: calc(1 + 0.3 / var(--font-body-scale)); 1474 } 1475 1476 .list-menu__item--link { 1477 text-decoration: none; 1478 padding-bottom: 1rem; 1479 padding-top: 1rem; 1480 line-height: calc(1 + 0.8 / var(--font-body-scale)); 1481 } 1482 1483 @media screen and (min-width: 750px) { 1484 .list-menu__item--link { 1485 padding-bottom: 0.5rem; 1486 padding-top: 0.5rem; 1487 } 1488 } 1489</style><style data-shopify>.header { 1490 padding: 2px 3rem 2px 3rem; 1491 } 1492 1493 .section-header { 1494 position: sticky; /* This is for fixing a Safari z-index issue. PR #2147 */ 1495 margin-bottom: 0px; 1496 } 1497 1498 @media screen and (min-width: 750px) { 1499 .section-header { 1500 margin-bottom: 0px; 1501 } 1502 } 1503 1504 @media screen and (min-width: 990px) { 1505 .header { 1506 padding-top: 4px; 1507 padding-bottom: 4px; 1508 } 1509 }</style>
1509<script src="//sayu.cz/cdn/shop/t/31/assets/details-disclosure.js?v=13653116266235556501705621624" defer="defer"></script>
vendor: 1 bytes, line 1509
1509
1510<script src="//sayu.cz/cdn/shop/t/31/assets/details-modal.js?v=25581673532751508451705621617" defer="defer"></script>
vendor: 1 bytes, line 1510
1510
1511<script src="//sayu.cz/cdn/shop/t/31/assets/cart-notification.js?v=133508293167896966491705621631" defer="defer"></script>
vendor: 1 bytes, line 1511
1511
1512<script src="//sayu.cz/cdn/shop/t/31/assets/search-form.js?v=133129549252120666541705621628" defer="defer"></script>
1512<script src="//sayu.cz/cdn/shop/t/31/assets/cart-drawer.js?v=105077087914686398511705621630" defer="defer"></script>
1512<svg xmlns="http://www.w3.org/2000/svg" class="hidden"> 1513 <symbol id="icon-search" viewbox="0 0 18 19" fill="none"> 1514 <path fill-rule="evenodd" clip-rule="evenodd" d="M11.03 11.68A5.784 5.784 0 112.85 3.5a5.784 5.784 0 018.18 8.18zm.26 1.12a6.78 6.78 0 11.72-.7l5.4 5.4a.5.5 0 11-.71.7l-5.41-5.4z" fill="currentColor"/> 1515 </symbol> 1516 1517 <symbol id="icon-reset" class="icon icon-close" fill="none" viewBox="0 0 18 18" stroke="currentColor"> 1518 <circle r="8.5" cy="9" cx="9" stroke-opacity="0.2"/> 1519 <path d="M6.82972 6.82915L1.17193 1.17097" stroke-linecap="round" stroke-linejoin="round" transform="translate(5 5)"/> 1520 <path d="M1.22896 6.88502L6.77288 1.11523" stroke-linecap="round" stroke-linejoin="round" transform="translate(5 5)"/> 1521 </symbol> 1522 1523 <symbol id="icon-close" class="icon icon-close" fill="none" viewBox="0 0 18 17"> 1524 <path d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z" fill="currentColor"> 1525 </symbol> 1526</svg><sticky-header data-sticky-type="always" class="header-wrapper color-background-1 gradient"><header class="header header--middle-left header--mobile-center page-width header--has-menu header--has-social"> 1527 1528<header-drawer data-breakpoint="tablet"> 1529 <details id="Details-menu-drawer-container" class="menu-drawer-container"> 1530 <summary 1531 class="header__icon header__icon--menu header__icon--summary link focus-inset" 1532 aria-label="NabÃdka" 1533 > 1534 <span> 1535 <svg 1536 xmlns="http://www.w3.org/2000/svg" 1537 aria-hidden="true" 1538 focusable="false" 1539 class="icon icon-hamburger" 1540 fill="none" 1541 viewBox="0 0 18 16" 1542> 1543 <path d="M1 .5a.5.5 0 100 1h15.71a.5.5 0 000-1H1zM.5 8a.5.5 0 01.5-.5h15.71a.5.5 0 010 1H1A.5.5 0 01.5 8zm0 7a.5.5 0 01.5-.5h15.71a.5.5 0 010 1H1a.5.5 0 01-.5-.5z" fill="currentColor"> 1544</svg> 1545 1546 <svg 1547 xmlns="http://www.w3.org/2000/svg" 1548 aria-hidden="true" 1549 focusable="false" 1550 class="icon icon-close" 1551 fill="none" 1552 viewBox="0 0 18 17" 1553> 1554 <path d="M.865 15.978a.5.5 0 00.707.707l7.433-7.431 7.579 7.282a.501.501 0 00.846-.37.5.5 0 00-.153-.351L9.712 8.546l7.417-7.416a.5.5 0 10-.707-.708L8.991 7.853 1.413.573a.5.5 0 10-.693.72l7.563 7.268-7.418 7.417z" fill="currentColor"> 1555</svg> 1556 1557 </span> 1558 </summary> 1559 <div id="menu-drawer" class="gradient menu-drawer motion-reduce color-scheme-f2e3d068-fb0f-4936-a620-1b61c50deea3"> 1560 <div class="menu-drawer__inner-container"> 1561 <div class="menu-drawer__navigation-container"> 1562 <nav class="menu-drawer__navigation"> 1563 <ul class="menu-drawer__menu has-submenu list-menu" role="list"><li><details id="Details-menu-drawer-menu-item-1"> 1564 <summary 1565 id="HeaderDrawer-koupit" 1566 class="menu-drawer__menu-item list-menu__item link link--text focus-inset" 1567 > 1568 Koupit 1569 <svg 1570 viewBox="0 0 14 10" 1571 fill="none" 1572 aria-hidden="true" 1573 focusable="false" 1574 class="icon icon-arrow" 1575 xmlns="http://www.w3.org/2000/svg" 1576> 1577 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"> 1578</svg> 1579 1580 <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6"> 1581 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"> 1582</svg> 1583 1584 </summary> 1585 <div 1586 id="link-koupit" 1587 class="menu-drawer__submenu has-submenu gradient motion-reduce" 1588 tabindex="-1" 1589 > 1590 <div class="menu-drawer__inner-submenu"> 1591 <button class="menu-drawer__close-button link link--text focus-inset" aria-expanded="true"> 1592 <svg 1593 viewBox="0 0 14 10" 1594 fill="none" 1595 aria-hidden="true" 1596 focusable="false" 1597 class="icon icon-arrow" 1598 xmlns="http://www.w3.org/2000/svg" 1599> 1600 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"> 1601</svg> 1602 1603 Koupit 1604 </button> 1605 <ul class="menu-drawer__menu list-menu" role="list" tabindex="-1"><li>
1605<details id="Details-menu-drawer-koupit-menstruacni-kalhotky"> 1606 <summary 1607 id="HeaderDrawer-koupit-menstruacni-kalhotky" 1608 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 1609 > 1610 MENSTRUAÄNà KALHOTKY 1611 <svg 1612 viewBox="0 0 14 10" 1613 fill="none" 1614 aria-hidden="true" 1615 focusable="false" 1616 class="icon icon-arrow" 1617 xmlns="http://www.w3.org/2000/svg" 1618> 1619 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"> 1620</svg> 1621 1622 <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6"> 1623 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"> 1624</svg> 1625 1626 </summary> 1627 <div 1628 id="childlink-menstruacni-kalhotky" 1629 class="menu-drawer__submenu has-submenu gradient motion-reduce" 1630 > 1631 <button 1632 class="menu-drawer__close-button link link--text focus-inset" 1633 aria-expanded="true" 1634 > 1635 <svg 1636 viewBox="0 0 14 10" 1637 fill="none" 1638 aria-hidden="true" 1639 focusable="false" 1640 class="icon icon-arrow" 1641 xmlns="http://www.w3.org/2000/svg" 1642> 1643 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"> 1644</svg> 1645 1646 MENSTRUAÄNà KALHOTKY 1647 </button> 1648 <ul 1649 class="menu-drawer__menu list-menu" 1650 role="list" 1651 tabindex="-1" 1652 ><li> 1653 <a 1654 id="HeaderDrawer-koupit-menstruacni-kalhotky-na-den" 1655 href="/collections/denni" 1656 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 1657 1658 > 1659 Na den 1660 </a> 1661 </li><li> 1662 <a 1663 id="HeaderDrawer-koupit-menstruacni-kalhotky-na-spani" 1664 href="/collections/na-spani" 1665 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 1666 1667 > 1668 Na spanà 1669 </a> 1670 </li><li> 1671 <a 1672 id="HeaderDrawer-koupit-menstruacni-kalhotky-intimky" 1673 href="/collections/intimky" 1674 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 1675 1676 > 1677 Intimky 1678 </a> 1679 </li><li> 1680 <a 1681 id="HeaderDrawer-koupit-menstruacni-kalhotky-prodlouzena-vlozka-vepredu" 1682 href="/collections/prodlouzena-vlozka-vepredu" 1683 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 1684 1685 > 1686 Prodloužená vložka vepÅedu 1687 </a> 1688 </li><li> 1689 <a 1690 id="HeaderDrawer-koupit-menstruacni-kalhotky-teen" 1691 href="/collections/teen" 1692 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 1693 1694 > 1695 Teen 1696 </a> 1697 </li><li> 1698 <a 1699 id="HeaderDrawer-koupit-menstruacni-kalhotky-vyhodne-sety" 1700 href="/collections/sety" 1701 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 1702 1703 > 1704 Výhodné sety 1705 </a> 1706 </li><li> 1707 <a 1708 id="HeaderDrawer-koupit-menstruacni-kalhotky-zobrazit-vse" 1709 href="/collections/menstruace" 1710 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 1711 1712 > 1713 Zobrazit vÅ¡e 1714 </a> 1715 </li></ul> 1716 </div> 1717 </details></li><li>
1717<details id="Details-menu-drawer-koupit-kolekce"> 1718 <summary 1719 id="HeaderDrawer-koupit-kolekce" 1720 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 1721 > 1722 KOLEKCE 1723 <svg 1724 viewBox="0 0 14 10" 1725 fill="none" 1726 aria-hidden="true" 1727 focusable="false" 1728 class="icon icon-arrow" 1729 xmlns="http://www.w3.org/2000/svg" 1730> 1731 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"> 1732</svg> 1733 1734 <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6"> 1735 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"> 1736</svg> 1737 1738 </summary> 1739 <div 1740 id="childlink-kolekce" 1741 class="menu-drawer__submenu has-submenu gradient motion-reduce" 1742 > 1743 <button 1744 class="menu-drawer__close-button link link--text focus-inset" 1745 aria-expanded="true" 1746 > 1747 <svg 1748 viewBox="0 0 14 10" 1749 fill="none" 1750 aria-hidden="true" 1751 focusable="false" 1752 class="icon icon-arrow" 1753 xmlns="http://www.w3.org/2000/svg" 1754> 1755 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"> 1756</svg> 1757 1758 KOLEKCE 1759 </button> 1760 <ul 1761 class="menu-drawer__menu list-menu" 1762 role="list" 1763 tabindex="-1" 1764 ><li> 1765 <a 1766 id="HeaderDrawer-koupit-kolekce-essentials" 1767 href="/collections/essentials" 1768 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 1769 1770 > 1771 ESSENTIALS 1772 </a> 1773 </li><li> 1774 <a 1775 id="HeaderDrawer-koupit-kolekce-premium" 1776 href="/collections/premium" 1777 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 1778 1779 > 1780 PREMIUM 1781 </a> 1782 </li><li> 1783 <a 1784 id="HeaderDrawer-koupit-kolekce-menstruacni-plavky" 1785 href="/collections/menstruacni-plavky" 1786 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 1787 1788 > 1789 MenstruaÄnà plavky 1790 </a> 1791 </li><li> 1792 <a 1793 id="HeaderDrawer-koupit-kolekce-sport" 1794 href="/collections/sport" 1795 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 1796 1797 > 1798 Sport 1799 </a> 1800 </li><li> 1801 <a 1802 id="HeaderDrawer-koupit-kolekce-inkontinence" 1803 href="/collections/inkontinence" 1804 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 1805 1806 > 1807 Inkontinence 1808 </a> 1809 </li><li> 1810 <a 1811 id="HeaderDrawer-koupit-kolekce-tehotenstvi-a-po-porodu" 1812 href="/collections/tehotenstvi-a-po-porodu" 1813 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 1814 1815 > 1816 TÄhotenstvà a po porodu 1817 </a> 1818 </li><li> 1819 <a 1820 id="HeaderDrawer-koupit-kolekce-nemenstruacni-pradlo-komfii-by-sayu" 1821 href="/pages/komfii-by-sayu" 1822 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 1823 1824 > 1825 NemenstruaÄnà prádlo komfii by SAYU 1826 </a> 1827 </li><li> 1828 <a 1829 id="HeaderDrawer-koupit-kolekce-zobrazit-vse" 1830 href="/collections/elegantni-menstruace" 1831 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 1832 1833 > 1834 Zobrazit vÅ¡e 1835 </a> 1836 </li></ul> 1837 </div> 1838 </details></li><li>
1838<details id="Details-menu-drawer-koupit-obleceni"> 1839 <summary 1840 id="HeaderDrawer-koupit-obleceni" 1841 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 1842 > 1843 OBLEÄENà 1844 <svg 1845 viewBox="0 0 14 10" 1846 fill="none" 1847 aria-hidden="true" 1848 focusable="false" 1849 class="icon icon-arrow" 1850 xmlns="http://www.w3.org/2000/svg" 1851> 1852 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"> 1853</svg> 1854 1855 <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6"> 1856 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"> 1857</svg> 1858 1859 </summary> 1860 <div 1861 id="childlink-obleceni" 1862 class="menu-drawer__submenu has-submenu gradient motion-reduce" 1863 > 1864 <button 1865 class="menu-drawer__close-button link link--text focus-inset" 1866 aria-expanded="true" 1867 > 1868 <svg 1869 viewBox="0 0 14 10" 1870 fill="none" 1871 aria-hidden="true" 1872 focusable="false" 1873 class="icon icon-arrow" 1874 xmlns="http://www.w3.org/2000/svg" 1875> 1876 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"> 1877</svg> 1878 1879 OBLEÄENà 1880 </button> 1881 <ul 1882 class="menu-drawer__menu list-menu" 1883 role="list" 1884 tabindex="-1" 1885 ><li> 1886 <a 1887 id="HeaderDrawer-koupit-obleceni-tricka" 1888 href="/collections/tricka" 1889 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 1890 1891 > 1892 TriÄka 1893 </a> 1894 </li><li> 1895 <a 1896 id="HeaderDrawer-koupit-obleceni-tilka" 1897 href="/collections/tilka" 1898 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 1899 1900 > 1901 TÃlka 1902 </a> 1903 </li><li> 1904 <a 1905 id="HeaderDrawer-koupit-obleceni-zupan" 1906 href="/products/zupan" 1907 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 1908 1909 > 1910 Župan 1911 </a> 1912 </li></ul> 1913 </div> 1914 </details></li><li>
1914<details id="Details-menu-drawer-koupit-doplnky"> 1915 <summary 1916 id="HeaderDrawer-koupit-doplnky" 1917 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 1918 > 1919 DOPLÅKY 1920 <svg 1921 viewBox="0 0 14 10" 1922 fill="none" 1923 aria-hidden="true" 1924 focusable="false" 1925 class="icon icon-arrow" 1926 xmlns="http://www.w3.org/2000/svg" 1927> 1928 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"> 1929</svg> 1930 1931 <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6"> 1932 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"> 1933</svg> 1934 1935 </summary> 1936 <div 1937 id="childlink-doplnky" 1938 class="menu-drawer__submenu has-submenu gradient motion-reduce" 1939 > 1940 <button 1941 class="menu-drawer__close-button link link--text focus-inset" 1942 aria-expanded="true" 1943 > 1944 <svg 1945 viewBox="0 0 14 10" 1946 fill="none" 1947 aria-hidden="true" 1948 focusable="false" 1949 class="icon icon-arrow" 1950 xmlns="http://www.w3.org/2000/svg" 1951> 1952 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"> 1953</svg> 1954 1955 DOPLÅKY 1956 </button> 1957 <ul 1958 class="menu-drawer__menu list-menu" 1959 role="list" 1960 tabindex="-1" 1961 ><li> 1962 <a 1963 id="HeaderDrawer-koupit-doplnky-prani" 1964 href="/collections/pece-o-kalhotky" 1965 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 1966 1967 > 1968 Pranà 1969 </a> 1970 </li><li> 1971 <a 1972 id="HeaderDrawer-koupit-doplnky-tasticka" 1973 href="/collections/tasticka" 1974 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 1975 1976 > 1977 TaÅ¡tiÄka 1978 </a> 1979 </li><li> 1980 <a 1981 id="HeaderDrawer-koupit-doplnky-darkovy-poukaz" 1982 href="/collections/darkovy-poukaz" 1983 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 1984 1985 > 1986 Dárkový poukaz 1987 </a> 1988 </li><li> 1989 <a 1990 id="HeaderDrawer-koupit-doplnky-wellbeing" 1991 href="/collections/wellbeing" 1992 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 1993 1994 > 1995 Wellbeing 1996 </a> 1997 </li><li> 1998 <a 1999 id="HeaderDrawer-koupit-doplnky-zobrazit-vse" 2000 href="/collections/doplnky" 2001 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 2002 2003 > 2004 Zobrazit vÅ¡e 2005 </a> 2006 </li></ul> 2007 </div> 2008 </details></li><li>
2008<details id="Details-menu-drawer-koupit-savost"> 2009 <summary 2010 id="HeaderDrawer-koupit-savost" 2011 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 2012 > 2013 SAVOST 2014 <svg 2015 viewBox="0 0 14 10" 2016 fill="none" 2017 aria-hidden="true" 2018 focusable="false" 2019 class="icon icon-arrow" 2020 xmlns="http://www.w3.org/2000/svg" 2021> 2022 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"> 2023</svg> 2024 2025 <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6"> 2026 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"> 2027</svg> 2028 2029 </summary> 2030 <div 2031 id="childlink-savost" 2032 class="menu-drawer__submenu has-submenu gradient motion-reduce" 2033 > 2034 <button 2035 class="menu-drawer__close-button link link--text focus-inset" 2036 aria-expanded="true" 2037 > 2038 <svg 2039 viewBox="0 0 14 10" 2040 fill="none" 2041 aria-hidden="true" 2042 focusable="false" 2043 class="icon icon-arrow" 2044 xmlns="http://www.w3.org/2000/svg" 2045> 2046 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"> 2047</svg> 2048 2049 SAVOST 2050 </button> 2051 <ul 2052 class="menu-drawer__menu list-menu" 2053 role="list" 2054 tabindex="-1" 2055 ><li> 2056 <a 2057 id="HeaderDrawer-koupit-savost-1-kapicka" 2058 href="/collections/1-kapicka" 2059 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 2060 2061 > 2062 1 kapiÄka 2063 </a> 2064 </li><li> 2065 <a 2066 id="HeaderDrawer-koupit-savost-2-kapicky" 2067 href="/collections/2-kapicky" 2068 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 2069 2070 > 2071 2 kapiÄky 2072 </a> 2073 </li><li> 2074 <a 2075 id="HeaderDrawer-koupit-savost-3-kapicky" 2076 href="/collections/3-kapicky" 2077 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 2078 2079 > 2080 3 kapiÄky 2081 </a> 2082 </li><li> 2083 <a 2084 id="HeaderDrawer-koupit-savost-4-kapicky" 2085 href="/collections/4-kapicky" 2086 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 2087 2088 > 2089 4 kapiÄky 2090 </a> 2091 </li></ul> 2092 </div> 2093 </details></li><li><a 2094 id="HeaderDrawer-koupit-menstruacni-plavky" 2095 href="/collections/menstruacni-plavky" 2096 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 2097 2098 > 2099 MENSTRUAÄNÃ PLAVKY 2100 </a></li><li><a 2101 id="HeaderDrawer-koupit-nemenstruacni-komfii" 2102 href="/pages/komfii-by-sayu" 2103 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 2104 2105 > 2106 NEMENSTRUAÄNÃ komfii 2107 </a></li><li>
2107<details id="Details-menu-drawer-koupit-neprehlednete"> 2108 <summary 2109 id="HeaderDrawer-koupit-neprehlednete" 2110 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 2111 > 2112 NEPÅEHLÃDNÄTE 2113 <svg 2114 viewBox="0 0 14 10" 2115 fill="none" 2116 aria-hidden="true" 2117 focusable="false" 2118 class="icon icon-arrow" 2119 xmlns="http://www.w3.org/2000/svg" 2120> 2121 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"> 2122</svg> 2123 2124 <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6"> 2125 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"> 2126</svg> 2127 2128 </summary> 2129 <div 2130 id="childlink-neprehlednete" 2131 class="menu-drawer__submenu has-submenu gradient motion-reduce" 2132 > 2133 <button 2134 class="menu-drawer__close-button link link--text focus-inset" 2135 aria-expanded="true" 2136 > 2137 <svg 2138 viewBox="0 0 14 10" 2139 fill="none" 2140 aria-hidden="true" 2141 focusable="false" 2142 class="icon icon-arrow" 2143 xmlns="http://www.w3.org/2000/svg" 2144> 2145 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"> 2146</svg> 2147 2148 NEPÅEHLÃDNÄTE 2149 </button> 2150 <ul 2151 class="menu-drawer__menu list-menu" 2152 role="list" 2153 tabindex="-1" 2154 ><li> 2155 <a 2156 id="HeaderDrawer-koupit-neprehlednete-faq" 2157 href="/pages/faq" 2158 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 2159 2160 > 2161 FAQ 2162 </a> 2163 </li><li> 2164 <a 2165 id="HeaderDrawer-koupit-neprehlednete-pece" 2166 href="/pages/navod-k-pouziti" 2167 class="menu-drawer__menu-item link link--text list-menu__item focus-inset" 2168 2169 > 2170 PéÄe 2171 </a> 2172 </li></ul> 2173 </div> 2174 </details></li></ul> 2175 </div> 2176 </div> 2177 </details></li><li><a 2178 id="HeaderDrawer-technologie" 2179 href="/pages/technologie" 2180 class="menu-drawer__menu-item list-menu__item link link--text focus-inset" 2181 2182 > 2183 Technologie 2184 </a></li><li><a 2185 id="HeaderDrawer-udrzitelnost" 2186 href="/pages/udrzitelnost" 2187 class="menu-drawer__menu-item list-menu__item link link--text focus-inset" 2188 2189 > 2190 Udržitelnost 2191 </a></li><li><a 2192 id="HeaderDrawer-pece" 2193 href="/pages/pece" 2194 class="menu-drawer__menu-item list-menu__item link link--text focus-inset" 2195 2196 > 2197 PéÄe 2198 </a></li><li><a 2199 id="HeaderDrawer-blog" 2200 href="/blogs/news" 2201 class="menu-drawer__menu-item list-menu__item link link--text focus-inset" 2202 2203 > 2204 Blog 2205 </a></li><li><a 2206 id="HeaderDrawer-o-nas" 2207 href="/pages/nas-pribeh" 2208 class="menu-drawer__menu-item list-menu__item link link--text focus-inset" 2209 2210 > 2211 O nás 2212 </a></li><li><a 2213 id="HeaderDrawer-kontakt" 2214 href="/pages/sayu-kontakt" 2215 class="menu-drawer__menu-item list-menu__item link link--text focus-inset" 2216 2217 > 2218 Kontakt 2219 </a></li><li><a 2220 id="HeaderDrawer-faq" 2221 href="/pages/faq" 2222 class="menu-drawer__menu-item list-menu__item link link--text focus-inset" 2223 2224 > 2225 FAQ 2226 </a></li><li><a 2227 id="HeaderDrawer-komfii-by-sayu" 2228 href="/pages/komfii-by-sayu" 2229 class="menu-drawer__menu-item list-menu__item link link--text focus-inset" 2230 2231 > 2232 komfii by SAYU 2233 </a></li></ul> 2234 </nav> 2235 <div class="menu-drawer__utility-links"><div class="menu-drawer__localization header-localization"><noscript><form method="post" action="/localization" id="HeaderCountryMobileFormNoScriptDrawer" accept-charset="UTF-8" class="localization-form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/pages/vogue-cs-x-red-salon-concept-store-new-talents" /><div class="localization-form__select"> 2236 <h2 class="visually-hidden" id="HeaderCountryMobileLabelNoScriptDrawer"> 2237 ZemÄ/oblast 2238 </h2> 2239 <select 2240 class="localization-selector link" 2241 name="country_code" 2242 aria-labelledby="HeaderCountryMobileLabelNoScriptDrawer" 2243 ><option 2244 value="BE" 2245 > 2246 Belgie (CZK 2247 KÄ) 2248 </option><option 2249 value="BG" 2250 > 2251 Bulharsko (CZK 2252 KÄ) 2253 </option><option 2254 value="CZ" 2255 selected 2256 2257 > 2258 Äesko (CZK 2259 KÄ) 2260 </option><option 2261 value="HR" 2262 > 2263 Chorvatsko (CZK 2264 KÄ) 2265 </option><option 2266 value="DK" 2267 > 2268 Dánsko (CZK 2269 KÄ) 2270 </option><option 2271 value="EE" 2272 > 2273 Estonsko (CZK 2274 KÄ) 2275 </option><option 2276 value="FI" 2277 > 2278 Finsko (CZK 2279 KÄ) 2280 </option><option 2281 value="FR" 2282 > 2283 Francie (CZK 2284 KÄ) 2285 </option><option 2286 value="IE" 2287 > 2288 Irsko (CZK 2289 KÄ) 2290 </option><option 2291 value="IT" 2292 > 2293 Itálie (CZK 2294 KÄ) 2295 </option><option 2296 value="LT" 2297 > 2298 Litva (CZK 2299 KÄ) 2300 </option><option 2301 value="LV" 2302 > 2303 LotyÅ¡sko (CZK 2304 KÄ) 2305 </option><option 2306 value="LU" 2307 > 2308 Lucembursko (CZK 2309 KÄ) 2310 </option><option 2311 value="HU" 2312 > 2313 MaÄarsko (CZK 2314 KÄ) 2315 </option><option 2316 value="DE" 2317 > 2318 NÄmecko (CZK 2319 KÄ) 2320 </option><option 2321 value="NL" 2322 > 2323 Nizozemsko (CZK 2324 KÄ) 2325 </option><option 2326 value="PL" 2327 > 2328 Polsko (CZK 2329 KÄ) 2330 </option><option 2331 value="PT" 2332 > 2333 Portugalsko (CZK 2334 KÄ) 2335 </option><option 2336 value="AT" 2337 > 2338 Rakousko (CZK 2339 KÄ) 2340 </option><option 2341 value="RO" 2342 > 2343 Rumunsko (CZK 2344 KÄ) 2345 </option><option 2346 value="SK" 2347 > 2348 Slovensko (CZK 2349 KÄ) 2350 </option><option 2351 value="ES" 2352 > 2353 Å panÄlsko (CZK 2354 KÄ) 2355 </option><option 2356 value="SE" 2357 > 2358 Å védsko (CZK 2359 KÄ) 2360 </option></select> 2361 <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6"> 2362 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"> 2363</svg> 2364 2365 </div> 2366 <button class="button button--tertiary">
2366Aktualizovat zemi/oblast</button></form></noscript> 2367 2368 <localization-form class="no-js-hidden"><form method="post" action="/localization" id="HeaderCountryMobileForm" accept-charset="UTF-8" class="localization-form" enctype="multipart/form-data"><input type="hidden" name="form_type" value="localization" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="_method" value="put" /><input type="hidden" name="return_to" value="/pages/vogue-cs-x-red-salon-concept-store-new-talents" /><div> 2369 <h2 class="visually-hidden" id="HeaderCountryMobileLabel"> 2370 ZemÄ/oblast 2371 </h2><div class="disclosure"> 2372 <button 2373 type="button" 2374 class="disclosure__button localization-form__select localization-selector link link--text caption-large" 2375 aria-expanded="false" 2376 aria-controls="HeaderCountryMobileList" 2377 aria-describedby="HeaderCountryMobileLabel" 2378 > 2379 <span> CZ </span> 2380 </button> 2381 <div class="disclosure__list-wrapper" hidden> 2382 <ul id="HeaderCountryMobileList" role="list" class="disclosure__list list-unstyled"><li class="disclosure__item" tabindex="-1"> 2383 <a 2384 class="link link--text disclosure__link caption-large focus-inset" 2385 href="#" 2386 2387 data-value="BE" 2388 > 2389 <span class="localization-form__currency">CZK 2390 KÄ |</span 2391 > 2392 Belgie 2393 </a> 2394 </li><li class="disclosure__item" tabindex="-1"> 2395 <a 2396 class="link link--text disclosure__link caption-large focus-inset" 2397 href="#" 2398 2399 data-value="BG" 2400 > 2401 <span class="localization-form__currency">CZK 2402 KÄ |</span 2403 > 2404 Bulharsko 2405 </a> 2406 </li><li class="disclosure__item" tabindex="-1"> 2407 <a 2408 class="link link--text disclosure__link caption-large focus-inset disclosure__link--active" 2409 href="#" 2410 2411 aria-current="true" 2412 2413 data-value="CZ" 2414 > 2415 <span class="localization-form__currency">CZK 2416 KÄ |</span 2417 > 2418 Äesko 2419 </a> 2420 </li><li class="disclosure__item" tabindex="-1"> 2421 <a 2422 class="link link--text disclosure__link caption-large focus-inset" 2423 href="#" 2424 2425 data-value="HR" 2426 > 2427 <span class="localization-form__currency">CZK 2428 KÄ |</span 2429 > 2430 Chorvatsko 2431 </a> 2432 </li><li class="disclosure__item" tabindex="-1"> 2433 <a 2434 class="link link--text disclosure__link caption-large focus-inset" 2435 href="#" 2436 2437 data-value="DK" 2438 > 2439 <span class="localization-form__currency">CZK 2440 KÄ |</span 2441 > 2442 Dánsko 2443 </a> 2444 </li><li class="disclosure__item" tabindex="-1"> 2445 <a 2446 class="link link--text disclosure__link caption-large focus-inset" 2447 href="#" 2448 2449 data-value="EE" 2450 > 2451 <span class="localization-form__currency">CZK 2452 KÄ |</span 2453 > 2454 Estonsko 2455 </a> 2456 </li><li class="disclosure__item" tabindex="-1"> 2457 <a 2458 class="link link--text disclosure__link caption-large focus-inset" 2459 href="#" 2460 2461 data-value="FI" 2462 > 2463 <span class="localization-form__currency">CZK 2464 KÄ |</span 2465 > 2466 Finsko 2467 </a> 2468 </li><li class="disclosure__item" tabindex="-1"> 2469 <a 2470 class="link link--text disclosure__link caption-large focus-inset" 2471 href="#" 2472 2473 data-value="FR" 2474 > 2475 <span class="localization-form__currency">CZK 2476 KÄ |</span 2477 > 2478 Francie 2479 </a> 2480 </li><li class="disclosure__item" tabindex="-1"> 2481 <a 2482 class="link link--text disclosure__link caption-large focus-inset" 2483 href="#" 2484 2485 data-value="IE" 2486 >
2487 <span class="localization-form__currency">CZK 2488 KÄ |</span 2489 > 2490 Irsko 2491 </a> 2492 </li><li class="disclosure__item" tabindex="-1"> 2493 <a 2494 class="link link--text disclosure__link caption-large focus-inset" 2495 href="#" 2496 2497 data-value="IT" 2498 > 2499 <span class="localization-form__currency">CZK 2500 KÄ |</span 2501 > 2502 Itálie 2503 </a> 2504 </li><li class="disclosure__item" tabindex="-1"> 2505 <a 2506 class="link link--text disclosure__link caption-large focus-inset" 2507 href="#" 2508 2509 data-value="LT" 2510 > 2511 <span class="localization-form__currency">CZK 2512 KÄ |</span 2513 > 2514 Litva 2515 </a> 2516 </li><li class="disclosure__item" tabindex="-1"> 2517 <a 2518 class="link link--text disclosure__link caption-large focus-inset" 2519 href="#" 2520 2521 data-value="LV" 2522 > 2523 <span class="localization-form__currency">CZK 2524 KÄ |</span 2525 > 2526 LotyÅ¡sko 2527 </a> 2528 </li><li class="disclosure__item" tabindex="-1"> 2529 <a 2530 class="link link--text disclosure__link caption-large focus-inset" 2531 href="#" 2532 2533 data-value="LU" 2534 > 2535 <span class="localization-form__currency">CZK 2536 KÄ |</span 2537 > 2538 Lucembursko 2539 </a> 2540 </li><li class="disclosure__item" tabindex="-1"> 2541 <a 2542 class="link link--text disclosure__link caption-large focus-inset" 2543 href="#" 2544 2545 data-value="HU" 2546 > 2547 <span class="localization-form__currency">CZK 2548 KÄ |</span 2549 > 2550 MaÄarsko 2551 </a> 2552 </li><li class="disclosure__item" tabindex="-1"> 2553 <a 2554 class="link link--text disclosure__link caption-large focus-inset" 2555 href="#" 2556 2557 data-value="DE" 2558 > 2559 <span class="localization-form__currency">CZK 2560 KÄ |</span 2561 > 2562 NÄmecko 2563 </a> 2564 </li><li class="disclosure__item" tabindex="-1"> 2565 <a 2566 class="link link--text disclosure__link caption-large focus-inset" 2567 href="#" 2568 2569 data-value="NL" 2570 > 2571 <span class="localization-form__currency">CZK 2572 KÄ |</span 2573 > 2574 Nizozemsko 2575 </a> 2576 </li><li class="disclosure__item" tabindex="-1"> 2577 <a 2578 class="link link--text disclosure__link caption-large focus-inset" 2579 href="#" 2580 2581 data-value="PL" 2582 > 2583 <span class="localization-form__currency">CZK 2584 KÄ |</span 2585 > 2586 Polsko 2587 </a> 2588 </li><li class="disclosure__item" tabindex="-1"> 2589 <a 2590 class="link link--text disclosure__link caption-large focus-inset" 2591 href="#" 2592 2593 data-value="PT" 2594 > 2595 <span class="localization-form__currency">CZK 2596 KÄ |</span 2597 > 2598 Portugalsko 2599 </a> 2600 </li><li class="disclosure__item" tabindex="-1"> 2601 <a 2602 class="link link--text disclosure__link caption-large focus-inset" 2603 href="#" 2604 2605 data-value="AT" 2606 > 2607 <span class="localization-form__currency">CZK 2608 KÄ |</span 2609 > 2610 Rakousko 2611 </a> 2612 </li><li class="disclosure__item" tabindex="-1"> 2613 <a 2614 class="link link--text disclosure__link caption-large focus-inset" 2615 href="#" 2616 2617 data-value="RO" 2618 > 2619 <span class="localization-form__currency">CZK 2620 KÄ |</span 2621 > 2622 Rumunsko 2623 </a> 2624 </li><li class="disclosure__item" tabindex="-1"> 2625 <a 2626 class="link link--text disclosure__link caption-large focus-inset" 2627 href="#" 2628 2629 data-value="SK" 2630 >
2631 <span class="localization-form__currency">CZK 2632 KÄ |</span 2633 > 2634 Slovensko 2635 </a> 2636 </li><li class="disclosure__item" tabindex="-1"> 2637 <a 2638 class="link link--text disclosure__link caption-large focus-inset" 2639 href="#" 2640 2641 data-value="ES" 2642 > 2643 <span class="localization-form__currency">CZK 2644 KÄ |</span 2645 > 2646 Å panÄlsko 2647 </a> 2648 </li><li class="disclosure__item" tabindex="-1"> 2649 <a 2650 class="link link--text disclosure__link caption-large focus-inset" 2651 href="#" 2652 2653 data-value="SE" 2654 > 2655 <span class="localization-form__currency">CZK 2656 KÄ |</span 2657 > 2658 Å védsko 2659 </a> 2660 </li></ul> 2661 </div> 2662</div> 2663<input type="hidden" name="country_code" value="CZ"> 2664</div></form></localization-form> 2665 2666</div><ul class="list list-social list-unstyled" role="list"><li class="list-social__item"> 2667 <a href="https://www.facebook.com/sayumenstruacnikalhotky/" class="list-social__link link"><svg aria-hidden="true" focusable="false" class="icon icon-facebook" viewBox="0 0 20 20"> 2668 <path fill="currentColor" d="M18 10.049C18 5.603 14.419 2 10 2c-4.419 0-8 3.603-8 8.049C2 14.067 4.925 17.396 8.75 18v-5.624H6.719v-2.328h2.03V8.275c0-2.017 1.195-3.132 3.023-3.132.874 0 1.79.158 1.79.158v1.98h-1.009c-.994 0-1.303.621-1.303 1.258v1.51h2.219l-.355 2.326H11.25V18c3.825-.604 6.75-3.933 6.75-7.951Z"/> 2669</svg> 2670<span class="visually-hidden">Facebook</span> 2671 </a> 2672 </li><li class="list-social__item"> 2673 <a href="https://www.instagram.com/sayu_period/" class="list-social__link link"><svg aria-hidden="true" focusable="false" class="icon icon-instagram" viewBox="0 0 20 20"> 2674 <path fill="currentColor" fill-rule="evenodd" d="M13.23 3.492c-.84-.037-1.096-.046-3.23-.046-2.144 0-2.39.01-3.238.055-.776.027-1.195.164-1.487.273a2.43 2.43 0 0 0-.912.593 2.486 2.486 0 0 0-.602.922c-.11.282-.238.702-.274 1.486-.046.84-.046 1.095-.046 3.23 0 2.134.01 2.39.046 3.229.004.51.097 1.016.274 1.495.145.365.319.639.602.913.282.282.538.456.92.602.474.176.974.268 1.479.273.848.046 1.103.046 3.238.046 2.134 0 2.39-.01 3.23-.046.784-.036 1.203-.164 1.486-.273.374-.146.648-.329.921-.602.283-.283.447-.548.602-.922.177-.476.27-.979.274-1.486.037-.84.046-1.095.046-3.23 0-2.134-.01-2.39-.055-3.229-.027-.784-.164-1.204-.274-1.495a2.43 2.43 0 0 0-.593-.913 2.604 2.604 0 0 0-.92-.602c-.284-.11-.703-.237-1.488-.273ZM6.697 2.05c.857-.036 1.131-.045 3.302-.045 1.1-.014 2.202.001 3.302.045.664.014 1.321.14 1.943.374a3.968 3.968 0 0 1 1.414.922c.41.397.728.88.93 1.414.23.622.354 1.279.365 1.942C18 7.56 18 7.824 18 10.005c0 2.17-.01 2.444-.046 3.292-.036.858-.173 1.442-.374 1.943-.2.53-.474.976-.92 1.423a3.896 3.896 0 0 1-1.415.922c-.51.191-1.095.337-1.943.374-.857.036-1.122.045-3.302.045-2.171 0-2.445-.009-3.302-.055-.849-.027-1.432-.164-1.943-.364a4.152 4.152 0 0 1-1.414-.922 4.128 4.128 0 0 1-.93-1.423c-.183-.51-.329-1.085-.365-1.943C2.009 12.45 2 12.167 2 10.004c0-2.161 0-2.435.055-3.302.027-.848.164-1.432.365-1.942a4.44 4.44 0 0 1 .92-1.414 4.18 4.18 0 0 1 1.415-.93c.51-.183 1.094-.33 1.943-.366Zm.427 4.806a4.105 4.105 0 1 1 5.805 5.805 4.105 4.105 0 0 1-5.805-5.805Zm1.882 5.371a2.668 2.668 0 1 0 2.042-4.93 2.668 2.668 0 0 0-2.042 4.93Zm5.922-5.942a.958.958 0 1 1-1.355-1.355.958.958 0 0 1 1.355 1.355Z" clip-rule="evenodd"/> 2675</svg> 2676<span class="visually-hidden">Instagram</span> 2677 </a> 2678 </li></ul> 2679 </div> 2680 </div> 2681 </div> 2682 </div> 2683 </details> 2684</header-drawer> 2685<a href="/" class="header__heading-link link link--text focus-inset"><div class="header__heading-logo-wrapper"> 2686 2687 <img src="//sayu.cz/cdn/shop/files/sayu_logo_d1e204fc-b73b-44ed-96e8-41eb9579021b.png?v=1675071615&width=600" alt="SAYU" srcset="//sayu.cz/cdn/shop/files/sayu_logo_d1e204fc-b73b-44ed-96e8-41eb9579021b.png?v=1675071615&width=70 70w, //sayu.cz/cdn/shop/files/sayu_logo_d1e204fc-b73b-44ed-96e8-41eb9579021b.png?v=1675071615&width=105 105w, //sayu.cz/cdn/shop/files/sayu_logo_d1e204fc-b73b-44ed-96e8-41eb9579021b.png?v=1675071615&width=140 140w" width="70" height="39.28191489361702" loading="eager" class="header__heading-logo motion-reduce" sizes="(max-width: 140px) 50vw, 70px"> 2688 </div></a> 2689 2690<nav class="header__inline-menu"> 2691 <ul class="list-menu list-menu--inline" role="list"><li><header-menu> 2692 <details id="Details-HeaderMenu-1" class="mega-menu"> 2693 <summary 2694 id="HeaderMenu-koupit" 2695 class="header__menu-item list-menu__item link focus-inset" 2696 >
2697 <span 2698 >Koupit</span> 2699 <svg aria-hidden="true" focusable="false" class="icon icon-caret" viewBox="0 0 10 6"> 2700 <path fill-rule="evenodd" clip-rule="evenodd" d="M9.354.646a.5.5 0 00-.708 0L5 4.293 1.354.646a.5.5 0 00-.708.708l4 4a.5.5 0 00.708 0l4-4a.5.5 0 000-.708z" fill="currentColor"> 2701</svg> 2702 2703 </summary> 2704 <div 2705 id="MegaMenu-Content-1" 2706 class="mega-menu__content color-scheme-f2e3d068-fb0f-4936-a620-1b61c50deea3 gradient motion-reduce global-settings-popup mega-menu__childlist-wrapper page-width" 2707 tabindex="-1" 2708 > 2709 <ul 2710 class="mega-menu__list mega-menu__childlist" 2711 role="list" 2712 ><li> 2713 <a 2714 id="HeaderMenu-koupit-menstruacni-kalhotky" 2715 href="/collections/menstruace" 2716 class="mega-menu__link mega-menu__link--level-2 link" 2717 2718 > 2719 MENSTRUAÄNà KALHOTKY 2720 </a><ul class="list-unstyled" role="list"><li> 2721 <a 2722 id="HeaderMenu-koupit-menstruacni-kalhotky-na-den" 2723 href="/collections/denni" 2724 class="mega-menu__link link" 2725 2726 > 2727 Na den 2728 </a> 2729 </li><li> 2730 <a 2731 id="HeaderMenu-koupit-menstruacni-kalhotky-na-spani" 2732 href="/collections/na-spani" 2733 class="mega-menu__link link" 2734 2735 > 2736 Na spanà 2737 </a> 2738 </li><li> 2739 <a 2740 id="HeaderMenu-koupit-menstruacni-kalhotky-intimky" 2741 href="/collections/intimky" 2742 class="mega-menu__link link" 2743 2744 > 2745 Intimky 2746 </a> 2747 </li><li> 2748 <a 2749 id="HeaderMenu-koupit-menstruacni-kalhotky-prodlouzena-vlozka-vepredu" 2750 href="/collections/prodlouzena-vlozka-vepredu" 2751 class="mega-menu__link link" 2752 2753 > 2754 Prodloužená vložka vepÅedu 2755 </a> 2756 </li><li> 2757 <a 2758 id="HeaderMenu-koupit-menstruacni-kalhotky-teen" 2759 href="/collections/teen" 2760 class="mega-menu__link link" 2761 2762 > 2763 Teen 2764 </a> 2765 </li><li> 2766 <a 2767 id="HeaderMenu-koupit-menstruacni-kalhotky-vyhodne-sety" 2768 href="/collections/sety" 2769 class="mega-menu__link link" 2770 2771 > 2772 Výhodné sety 2773 </a> 2774 </li><li> 2775 <a 2776 id="HeaderMenu-koupit-menstruacni-kalhotky-zobrazit-vse" 2777 href="/collections/menstruace" 2778 class="mega-menu__link link" 2779 2780 > 2781 Zobrazit vÅ¡e 2782 </a> 2783 </li></ul></li><li> 2784 <a 2785 id="HeaderMenu-koupit-kolekce" 2786 href="/collections/elegantni-menstruace" 2787 class="mega-menu__link mega-menu__link--level-2 link" 2788 2789 > 2790 KOLEKCE 2791 </a><ul class="list-unstyled" role="list"><li> 2792 <a 2793 id="HeaderMenu-koupit-kolekce-essentials" 2794 href="/collections/essentials" 2795 class="mega-menu__link link" 2796 2797 > 2798 ESSENTIALS 2799 </a> 2800 </li><li> 2801 <a 2802 id="HeaderMenu-koupit-kolekce-premium" 2803 href="/collections/premium" 2804 class="mega-menu__link link" 2805 2806 > 2807 PREMIUM 2808 </a> 2809 </li><li> 2810 <a 2811 id="HeaderMenu-koupit-kolekce-menstruacni-plavky" 2812 href="/collections/menstruacni-plavky" 2813 class="mega-menu__link link" 2814 2815 > 2816 MenstruaÄnà plavky 2817 </a> 2818 </li><li> 2819 <a 2820 id="HeaderMenu-koupit-kolekce-sport" 2821 href="/collections/sport" 2822 class="mega-menu__link link" 2823 2824 > 2825 Sport 2826 </a> 2827 </li><li> 2828 <a 2829 id="HeaderMenu-koupit-kolekce-inkontinence" 2830 href="/collections/inkontinence" 2831 class="mega-menu__link link" 2832 2833 > 2834 Inkontinence 2835 </a> 2836 </li><li> 2837 <a 2838 id="HeaderMenu-koupit-kolekce-tehotenstvi-a-po-porodu" 2839 href="/collections/tehotenstvi-a-po-porodu" 2840 class="mega-menu__link link" 2841 2842 > 2843 TÄhotenstvà a po porodu 2844 </a> 2845 </li><li> 2846 <a 2847 id="HeaderMenu-koupit-kolekce-nemenstruacni-pradlo-komfii-by-sayu" 2848 href="/pages/komfii-by-sayu" 2849 class="mega-menu__link link" 2850 2851 > 2852 NemenstruaÄnà prádlo komfii by SAYU 2853 </a> 2854 </li><li> 2855 <a 2856 id="HeaderMenu-koupit-kolekce-zobrazit-vse" 2857 href="/collections/elegantni-menstruace" 2858 class="mega-menu__link link" 2859 2860 > 2861 Zobrazit vÅ¡e 2862 </a> 2863 </li></ul></li><li> 2864 <a 2865 id="HeaderMenu-koupit-obleceni" 2866 href="/collections/obleceni" 2867 class="mega-menu__link mega-menu__link--level-2 link" 2868 2869 > 2870 OBLEÄENà 2871 </a><ul class="list-unstyled" role="list"><li> 2872 <a 2873 id="HeaderMenu-koupit-obleceni-tricka" 2874 href="/collections/tricka" 2875 class="mega-menu__link link" 2876 2877 > 2878 TriÄka 2879 </a> 2880 </li><li> 2881 <a 2882 id="HeaderMenu-koupit-obleceni-tilka" 2883 href="/collections/tilka" 2884 class="mega-menu__link link" 2885 2886 > 2887 TÃlka 2888 </a> 2889 </li><li> 2890 <a 2891 id="HeaderMenu-koupit-obleceni-zupan" 2892 href="/products/zupan" 2893 class="mega-menu__link link" 2894 2895 > 2896 Župan 2897 </a> 2898 </li></ul></li><li> 2899 <a 2900 id="HeaderMenu-koupit-doplnky" 2901 href="/collections/doplnky" 2902 class="mega-menu__link mega-menu__link--level-2 link" 2903 2904 > 2905 DOPLÅKY 2906 </a><ul class="list-unstyled" role="list"><li> 2907 <a 2908 id="HeaderMenu-koupit-doplnky-prani" 2909 href="/collections/pece-o-kalhotky" 2910 class="mega-menu__link link" 2911 2912 > 2913 Pranà 2914 </a> 2915 </li><li> 2916 <a 2917 id="HeaderMenu-koupit-doplnky-tasticka" 2918 href="/collections/tasticka" 2919 class="mega-menu__link link" 2920 2921 > 2922 TaÅ¡tiÄka 2923 </a> 2924 </li><li> 2925 <a 2926 id="HeaderMenu-koupit-doplnky-darkovy-poukaz" 2927 href="/collections/darkovy-poukaz" 2928 class="mega-menu__link link" 2929 2930 > 2931 Dárkový poukaz 2932 </a> 2933 </li><li> 2934 <a 2935 id="HeaderMenu-koupit-doplnky-wellbeing" 2936 href="/collections/wellbeing" 2937 class="mega-menu__link link" 2938 2939 > 2940 Wellbeing 2941 </a> 2942 </li><li> 2943 <a 2944 id="HeaderMenu-koupit-doplnky-zobrazit-vse" 2945 href="/collections/doplnky" 2946 class="mega-menu__link link" 2947 2948 > 2949 Zobrazit vÅ¡e 2950 </a> 2951 </li></ul></li><li> 2952 <a 2953 id="HeaderMenu-koupit-savost" 2954 href="/collections/elegantni-menstruace" 2955 class="mega-menu__link mega-menu__link--level-2 link" 2956 2957 > 2958 SAVOST 2959 </a><ul class="list-unstyled" role="list"><li> 2960 <a 2961 id="HeaderMenu-koupit-savost-1-kapicka" 2962 href="/collections/1-kapicka" 2963 class="mega-menu__link link" 2964 2965 > 2966 1 kapiÄka 2967 </a> 2968 </li><li> 2969 <a 2970 id="HeaderMenu-koupit-savost-2-kapicky" 2971 href="/collections/2-kapicky" 2972 class="mega-menu__link link" 2973 2974 > 2975 2 kapiÄky 2976 </a> 2977 </li><li> 2978 <a 2979 id="HeaderMenu-koupit-savost-3-kapicky" 2980 href="/collections/3-kapicky" 2981 class="mega-menu__link link" 2982 2983 > 2984 3 kapiÄky 2985 </a> 2986 </li><li> 2987 <a 2988 id="HeaderMenu-koupit-savost-4-kapicky" 2989 href="/collections/4-kapicky" 2990 class="mega-menu__link link" 2991 2992 > 2993 4 kapiÄky 2994 </a> 2995 </li></ul></li><li> 2996 <a 2997 id="HeaderMenu-koupit-menstruacni-plavky" 2998 href="/collections/menstruacni-plavky" 2999 class="mega-menu__link mega-menu__link--level-2 link" 3000 3001 > 3002 MENSTRUAÄNà PLAVKY 3003 </a></li><li> 3004 <a 3005 id="HeaderMenu-koupit-nemenstruacni-komfii" 3006 href="/pages/komfii-by-sayu" 3007 class="mega-menu__link mega-menu__link--level-2 link" 3008 3009 > 3010 NEMENSTRUAÄNà komfii 3011 </a></li><li> 3012 <a 3013 id="HeaderMenu-koupit-neprehlednete" 3014 href="/pages/pece" 3015 class="mega-menu__link mega-menu__link--level-2 link" 3016 3017 > 3018 NEPÅEHLÃDNÄTE 3019 </a><ul class="list-unstyled" role="list"><li> 3020 <a 3021 id="HeaderMenu-koupit-neprehlednete-faq" 3022 href="/pages/faq" 3023 class="mega-menu__link link" 3024 3025 > 3026 FAQ 3027 </a> 3028 </li><li> 3029 <a 3030 id="HeaderMenu-koupit-neprehlednete-pece" 3031 href="/pages/navod-k-pouziti" 3032 class="mega-menu__link link" 3033 3034 > 3035 PéÄe 3036 </a> 3037 </li></ul></li></ul> 3038 <a href="/collections/all" class="mega-menu__childlist-cta">Celý sortiment</a> 3039 </div> 3040 </details> 3041 </header-menu></li><li><a 3042 id="HeaderMenu-technologie" 3043 href="/pages/technologie" 3044 class="header__menu-item list-menu__item link link--text focus-inset" 3045 3046 >
3047 <span 3048 >Technologie</span> 3049 </a></li><li><a 3050 id="HeaderMenu-udrzitelnost" 3051 href="/pages/udrzitelnost" 3052 class="header__menu-item list-menu__item link link--text focus-inset" 3053 3054 > 3055 <span 3056 >Udržitelnost</span> 3057 </a></li><li><a 3058 id="HeaderMenu-pece" 3059 href="/pages/pece" 3060 class="header__menu-item list-menu__item link link--text focus-inset" 3061 3062 > 3063 <span 3064 >PéÄe</span> 3065 </a></li><li><a 3066 id="HeaderMenu-blog" 3067 href="/blogs/news" 3068 class="header__menu-item list-menu__item link link--text focus-inset" 3069 3070 > 3071 <span 3072 >Blog</span> 3073 </a></li><li><a 3074 id="HeaderMenu-o-nas" 3075 href="/pages/nas-pribeh" 3076 class="header__menu-item list-menu__item link link--text focus-inset" 3077 3078 > 3079 <span 3080 >O nás</span> 3081 </a></li><li><a 3082 id="HeaderMenu-kontakt" 3083 href="/pages/sayu-kontakt" 3084 class="header__menu-item list-menu__item link link--text focus-inset" 3085 3086 > 3087 <span 3088 >Kontakt</span> 3089 </a></li><li><a 3090 id="HeaderMenu-faq" 3091 href="/pages/faq" 3092 class="header__menu-item list-menu__item link link--text focus-inset" 3093 3094 > 3095 <span 3096 >FAQ</span> 3097 </a></li><li><a 3098 id="HeaderMenu-komfii-by-sayu" 3099 href="/pages/komfii-by-sayu" 3100 class="header__menu-item list-menu__item link link--text focus-inset" 3101 3102 > 3103 <span 3104 >komfii by SAYU</span> 3105 </a></li></ul> 3106</nav> 3107 3108<div class="header__icons header__icons--localization header-localization"> 3109 <div class="desktop-localization-wrapper"> 3110 3111 3112 <div class="localization-form"> 3113 <h2 class="visually-hidden">ZemÄ/oblast</h2> 3114 <button id="store-selector" class="store-selector__btn">CZ</button> 3115 <div class="store-selector__list-wrapper display-none"> 3116 <ul role="list" class="store-selector__list list-unstyled"> 3117 <li class="store-selector__item"> 3118 <a href="https://sayu.sk/" class="link link--text store-selector__link caption-large" data-value="SK">SK</a> 3119 </li> 3120 3121 3122 <li class="store-selector__item"> 3123 <a href="https://sayustore.de/" class="link link--text store-selector__link caption-large" data-value="DE">DE</a> 3124 </li> 3125 3126 3127 <li class="store-selector__item"> 3128 <a href="https://www.sayustore.com/" class="link link--text store-selector__link caption-large" data-value="EN">EN</a> 3129 </li> 3130 3131</ul> 3132 </div> 3133 </div> 3134 3135<style> 3136 #store-selector { 3137 margin: 0; 3138 } 3139 3140 #store-selector:hover { 3141 text-decoration: underline; 3142 } 3143 .display-none { 3144 display: none; 3145 transition: all var(--duration-default) ease-in-out; 3146 } 3147 .store-selector__btn { 3148 cursor: pointer; 3149 display: inline-block; 3150 border: none; 3151 box-shadow: none; 3152 text-underline-offset: 0.3rem; 3153 color: rgb(var(--color-link)); 3154 background-color: transparent; 3155 font-size: 1.4rem; 3156 font-family: inherit; 3157 line-height: calc(1 + 0.8 / var(--font-body-scale)); 3158 padding-inline: 16px; 3159 } 3160 .store-selector__btn:hover { 3161 text-decoration: underline; 3162 } 3163 .store-selector__list-wrapper { 3164 position: relative; 3165 } 3166 .store-selector__list { 3167 position: absolute; 3168 top: 0; 3169 left: 0; 3170 width: auto; 3171 height: auto; 3172 background-color: rgba(var(--color-background), 1); 3173 } 3174 .store-selector__item { 3175 padding-inline: 16px; 3176 display: grid; 3177 place-content: center; 3178 } 3179 .store-selector__link { 3180 cursor: pointer; 3181 display: inline-block; 3182 border: none; 3183 box-shadow: none; 3184 text-decoration: none; 3185 text-underline-offset: 0.3rem; 3186 color: rgb(var(--color-link)); 3187 background-color: transparent; 3188 font-size: 1.4rem; 3189 font-family: inherit; 3190 line-height: calc(1 + 0.8 / var(--font-body-scale)); 3191 } 3192 .store-selector__link:hover{ 3193 text-decoration: underline; 3194 } 3195</style> 3196
3197<script> 3198 document.addEventListener('DOMContentLoaded', () => { 3199 const countryBtn = document.querySelector('.store-selector__btn'); 3200 const countryList = document.querySelector('.store-selector__list-wrapper'); 3201 3202 // Toggle the list visibility when the button is clicked 3203 countryBtn.addEventListener('click', (event) => { 3204 countryList.classList.toggle('display-none'); 3205 event.stopPropagation(); // Prevent the document click handler from immediately executing 3206 }); 3207 3208 // Hide the list when clicking outside 3209 document.addEventListener('click', (event) => { 3210 const isClickInside = countryBtn.contains(event.target) || countryList.contains(event.target); 3211 3212 if (!isClickInside && !countryList.classList.contains('display-none')) { 3213 countryList.classList.add('display-none'); 3214 } 3215 }); 3216 }); 3217</script>
3217 3218 3219 3220 3221 3222</div> 3223 3224 3225<details-modal class="header__search"> 3226 <details> 3227 <summary class="header__icon header__icon--search header__icon--summary link focus-inset modal__toggle" aria-haspopup="dialog" aria-label="HledánÃ"> 3228 <span> 3229 <svg class="modal__toggle-open icon icon-search" aria-hidden="true" focusable="false"> 3230 <use href="#icon-search"> 3231 </svg> 3232 <svg class="modal__toggle-close icon icon-close" aria-hidden="true" focusable="false"> 3233 <use href="#icon-close"> 3234 </svg> 3235 </span> 3236 </summary> 3237 <div class="search-modal modal__content gradient" role="dialog" aria-modal="true" aria-label="HledánÃ"> 3238 <div class="modal-overlay"></div> 3239 <div class="search-modal__content search-modal__content-bottom" tabindex="-1"><predictive-search class="search-modal__form" data-loading-text="NaÄÃtánÃ..."><form action="/search" method="get" role="search" class="search search-modal__form"> 3240 <div class="field"> 3241 <input class="search__input field__input" 3242 id="Search-In-Modal" 3243 type="search" 3244 name="q" 3245 value="" 3246 placeholder="HledánÃ"role="combobox" 3247 aria-expanded="false" 3248 aria-owns="predictive-search-results" 3249 aria-controls="predictive-search-results" 3250 aria-haspopup="listbox" 3251 aria-autocomplete="list" 3252 autocorrect="off" 3253 autocomplete="off" 3254 autocapitalize="off" 3255 spellcheck="false"> 3256 <label class="field__label" for="Search-In-Modal">HledánÃ</label> 3257 <input type="hidden" name="options[prefix]" value="last"> 3258 <button type="reset" class="reset__button field__button hidden" aria-label="Vymazat hledaný termÃn"> 3259 <svg class="icon icon-close" aria-hidden="true" focusable="false"> 3260 <use xlink:href="#icon-reset"> 3261 </svg> 3262 </button> 3263 <button class="search__button field__button" aria-label="HledánÃ"> 3264 <svg class="icon icon-search" aria-hidden="true" focusable="false"> 3265 <use href="#icon-search"> 3266 </svg> 3267 </button> 3268 </div><div class="predictive-search predictive-search--header" tabindex="-1" data-predictive-search> 3269 <div class="predictive-search__loading-state"> 3270 <svg aria-hidden="true" focusable="false" class="spinner" viewBox="0 0 66 66" xmlns="http://www.w3.org/2000/svg"> 3271 <circle class="path" fill="none" stroke-width="6" cx="33" cy="33" r="30"></circle> 3272 </svg> 3273 </div> 3274 </div> 3275 3276 <span class="predictive-search-status visually-hidden" role="status" aria-hidden="true"></span></form></predictive-search><button type="button" class="search-modal__close-button modal__close-button link link--text focus-inset" aria-label="ZavÅÃt"> 3277 <svg class="icon icon-close" aria-hidden="true" focusable="false"> 3278 <use href="#icon-close"> 3279 </svg> 3280 </button> 3281 </div> 3282 </div> 3283 </details> 3284</details-modal> 3285 3286<a href="/cart" class="header__icon header__icon--cart link focus-inset" id="cart-icon-bubble"><svg 3287 class="icon icon-cart-empty" 3288 aria-hidden="true" 3289 focusable="false" 3290 xmlns="http://www.w3.org/2000/svg" 3291 viewBox="0 0 40 40" 3292 fill="none" 3293> 3294 <path d="m15.75 11.8h-3.16l-.77 11.6a5 5 0 0 0 4.99 5.34h7.38a5 5 0 0 0 4.99-5.33l-.78-11.61zm0 1h-2.22l-.71 10.67a4 4 0 0 0 3.99 4.27h7.38a4 4 0 0 0 4-4.27l-.72-10.67h-2.22v.63a4.75 4.75 0 1 1 -9.5 0zm8.5 0h-7.5v.63a3.75 3.75 0 1 0 7.5 0z" fill="currentColor" fill-rule="evenodd"/> 3295</svg> 3296<span class="visually-hidden">KoÅ¡Ãk</span></a> 3297 </div> 3298 </header> 3299</sticky-header> 3300
3301<script type="application/ld+json"> 3302 { 3303 "@context": "http://schema.org", 3304 "@type": "Organization", 3305 "name": "SAYU", 3306 3307 "logo": "https:\/\/sayu.cz\/cdn\/shop\/files\/sayu_logo_d1e204fc-b73b-44ed-96e8-41eb9579021b.png?v=1675071615\u0026width=500", 3308 3309 "sameAs": [ 3310 "", 3311 "https:\/\/www.facebook.com\/sayumenstruacnikalhotky\/", 3312 "", 3313 "https:\/\/www.instagram.com\/sayu_period\/", 3314 "", 3315 "", 3316 "", 3317 "", 3318 "" 3319 ], 3320 "url": "https:\/\/sayu.cz\/pages\/vogue-cs-x-red-salon-concept-store-new-talents" 3321 } 3322</script>
3322 3323<style> #shopify-section-sections--21785349194069__header .mega-menu__link--level-2 {color: #a32424 !important;} </style></div> 3324<!-- END sections: header-group --> 3325 3326 <main id="MainContent" class="content-for-layout focus-none" role="main" tabindex="-1"> 3327 <section id="shopify-section-template--21785456738645__main" class="shopify-section section"><link href="//sayu.cz/cdn/shop/t/31/assets/section-main-page.css?v=848677459125201531705621617" rel="stylesheet" type="text/css" media="all" /> 3328<style data-shopify>.section-template--21785456738645__main-padding { 3329 padding-top: 21px; 3330 padding-bottom: 21px; 3331 } 3332 3333 @media screen and (min-width: 750px) { 3334 .section-template--21785456738645__main-padding { 3335 padding-top: 28px; 3336 padding-bottom: 28px; 3337 } 3338 }</style><div class="page-width page-width--narrow section-template--21785456738645__main-padding"> 3339 <h1 class="main-page-title page-title h0 scroll-trigger animate--fade-in"> 3340 Vogue CS x Red Salon Concept Store: New Talents 3341 </h1> 3342 <div class="rte scroll-tr
3342igger animate--slide-in"> 3343 <p><img src="https://cdn.shopify.com/s/files/1/0539/1106/0673/files/covers7_1.jpg?v=1773239351" alt=""><img src="https://cdn.shopify.com/s/files/1/0539/1106/0673/files/talents_Sayu_1.jpg?v=1773239700" alt=""></p> 3344 </div> 3345</div> 3346 3347 3348</section><section id="shopify-section-template--21785456738645__17817061844687fbd6" class="shopify-section section"><div class="page-width scroll-trigger animate--slide-in"><div id="shopify-block-AUDV6eUdsT0htaTZoW__eu_widerruf_button_form_inline_tcaBFD" class="shopify-block shopify-app-block"> 3349 3350 3351 3352<div class="wf-iframe-container" id="wf-iframe-container-AUDV6eUdsT0htaTZoW__eu_widerruf_button_form_inline_tcaBFD" style="max-width: 700px;"> 3353 3354 3355 <h2 class="wf-iframe-heading">Odstoupit od smlouvy nebo zadat výmÄnu</h2> 3356 3357 3358 3359 3360 <p class="wf-iframe-description">ProsÃme, vyplÅte potÅebné informace pro vrácenà nebo výmÄnu zbožÃ. V pÅÃpadÄ, že máte zájem o výmÄnu zbožÃ, uveÄte k vraceným položkám, za jaké modely a velikosti si je pÅejete vymÄnit. V obou pÅÃpadech pokraÄujte kliknutÃm na tlaÄÃtko âPotvrdit odstoupenÃâ. 3361Po odeslánà obdržÃte potvrzovacà e-mail.</p> 3362 3363 3364 <iframe 3365 id="wf-iframe-AUDV6eUdsT0htaTZoW__eu_widerruf_button_form_inline_tcaBFD" 3366 src="https://euwiderrufsbutton.de/withdrawal/proxy/embed/withdrawal-form?c_shop=sayucz.myshopify.com&c_hmac=b3b901872aeddd3ad68994acaf59ec550ce388a75b69d8ccfd6db472e3b08e4f&c_timestamp=1791417600&c_locale=cs&c_country=CZ&sv=1791387023724-aee8d4ac&primaryColor=%23000000&backgroundColor=%23ffffff&textColor=%23212529&borderRadius=8px&maxWidth=700px&showOrderLookup=true&requireOrderNumber=true&hideOrderNotes=false&requireItems=true&confirmStep=false" 3367 width="100%" 3368 frameborder="0" 3369 style="border: 1px solid #e1e3e5; border-radius: 8px; background: #fff;" 3370 title="Withdrawal Form" 3371 loading="lazy" 3372 data-iframe-id="AUDV6eUdsT0htaTZoW__eu_widerruf_button_form_inline_tcaBFD" 3373 ></iframe> 3374 3375</div><!-- BEGIN app snippet: watermark --> 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 <div style="justify-content: center; visibility: visible !important; opacity: 1 !important; filter: opacity(1) !important; content-visibility: visible !important; display: flex !important; max-height: 100% !important; overflow: auto !important; width: 100% !important; min-height:20px !important;"> 3393 <a 3394 target="_blank" 3395 href="https://apps.shopify.com/eu-widerrufsbutton" 3396 3397 style="transform: scale(1) !important; text-decoration: none; color: rgb(20, 20, 20) !important; align-items: center; font-size: 12px !important; font-weight: 500 !important; display: flex !important; gap: 5px !important; visibility: visible !important; opacity: 1 !important; position: relative !important; filter: opacity(1) !important; content-visibility: visible !important; max-height: 100% !important; overflow: auto !important; min-height:20px !important;"> 3398 <img alt="EU Widerrufsbutton logo" src="https://cdn.shopify.com/extensions/01a116d6-c53d-7949-9b26-0450b3720434/eu-widerruf-button-112/assets/withdrawal_logo_128px.png" style="vertical-align:bottom !important; height:32px !important; width:32px !important; visibility: visible !important; opacity: 1 !important; position: relative !important; filter: opacity(1) !important; content-visibility: visible !important; max-height: 100% !important; overflow: unset !important; display: flex !important; min-height:32px !important; max-width:32px; min-width:32px !important;"/> 3399 <span style="transform: scale(1) !important; font-size: 16px; line-height: 1.4; visibility: visible !important; opacity: 1 !important; position: relative !important; filter: opacity(1) !important; content-visibility: visible !important; max-height: 100% !important; overflow: unset !important; display: flex !important; min-height:20px !important; font-weight:bold !important; color:#1250dc !important;">EU Widerrufsbutton</span> 3400 </a> 3401 </div><!-- END app snippet -->
3402<script> 3403(function() { 3404 const iframeId = 'wf-iframe-AUDV6eUdsT0htaTZoW__eu_widerruf_button_form_inline_tcaBFD'; 3405 const iframe = document.getElementById(iframeId); 3406 3407 if (!iframe) { 3408 console.error('Withdrawal iframe not found:', iframeId); 3409 return; 3410 } 3411 3412 function receiveMessage(event) { 3413 // Verify the message is from our iframe 3414 if (!event.data || event.data.type !== 'setHeight' || event.data.height === 0 ) return; 3415 3416 // Update iframe height 3417 iframe.style.height = event.data.height + 5 + 'px'; 3418 } 3419 3420 window.addEventListener('message', receiveMessage, false); 3421})(); 3422</script>
3422 3423 3424<style> 3425 .wf-iframe-container { 3426 margin: 0 auto; 3427 min-height: 425px; 3428 padding: 20px; 3429 font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; 3430 } 3431 .wf-iframe-container iframe{ 3432 min-height: 425px; 3433 } 3434 3435 .wf-iframe-heading { 3436 font-size: 28px; 3437 font-weight: 600; 3438 margin-bottom: 8px; 3439 color: #212529; 3440 } 3441 3442 .wf-iframe-heading--p { 3443 margin-top: 0; 3444 font-family: var(--font-heading-family, var(--heading-font-family, inherit)); 3445 } 3446 3447 .wf-iframe-description { 3448 font-size: 16px; 3449 color: #6c757d; 3450 margin-bottom: 32px; 3451 line-height: 1.5; 3452 } 3453</style> 3454</div> 3455</div> 3456 3457 3458</section> 3459 </main> 3460 3461 <!-- BEGIN sections: footer-group --> 3462<section id="shopify-section-sections--21785445269845__ae02932c-73b4-487b-9d0c-455b81b52c8b" class="shopify-section shopify-section-group-footer-group section"><style data-shopify>.section-sections--21785445269845__ae02932c-73b4-487b-9d0c-455b81b52c8b-padding { 3463 padding-top: calc(40px * 0.75); 3464 padding-bottom: calc(52px * 0.75); 3465 } 3466 3467 @media screen and (min-width: 750px) { 3468 .section-sections--21785445269845__ae02932c-73b4-487b-9d0c-455b81b52c8b-padding { 3469 padding-top: 40px; 3470 padding-bottom: 52px; 3471 } 3472 }</style><div class="color-scheme-f2e3d068-fb0f-4936-a620-1b61c50deea3 gradient"> 3473 <div class="section-sections--21785445269845__ae02932c-73b4-487b-9d0c-455b81b52c8b-padding"> 3474 3475 </div> 3476</div> 3477 3478 3479</section><div id="shopify-section-sections--21785445269845__footer-custom" class="shopify-section shopify-section-group-footer-group"><div class="footer-custom page-width"> 3480 3481 3482 <div class="footer-block"> 3483 <div class="footer-block__contact-wrapper"> 3484 <p class="footer-block__contact-text"><a href="tel:+420773739774">+420 773 739 774</a></p> 3485 <a class="link link--text list-menu__item list-menu__item--link" href="mailto:[email protected]" type="email" target="_blank">[email protected]</a> 3486 <div class="footer-block__contact-socials"> 3487 <a class="footer-block__contact-social" href="https://www.facebook.com/sayumenstruacnikalhotky" target="_blank"> 3488 <img class="footer-block__contact-icon" src="//sayu.cz/cdn/shop/files/icon-facebook.png?v=1694584586" width="50" height="50" loading="lazy" alt=""> 3489 </a> 3490 <a class="footer-block__contact-social" href="https://www.instagram.com/sayu_period/?hl=cs" target="_blank"> 3491 <img class="footer-block__contact-icon" src="//sayu.cz/cdn/shop/files/icon-instagram.png?v=1694584586" width="50" height="50" loading="lazy" alt=""> 3492 </a> 3493 </div> 3494 <img class="footer-block__contact-img" src="//sayu.cz/cdn/shop/files/footer-sic.png?v=1694584755" width="600" height="200" loading="lazy" alt=""> 3495 </div> 3496 </div> 3497 3498 3499 <div class="footer-block"><ul class="footer-block__details-content"><li> 3500 <a 3501 href="/pages/obchodni-podminky" 3502 class="link link--text list-menu__item list-menu__item--link" 3503 > 3504 Obchodnà podmÃnky 3505 </a> 3506 </li><li> 3507 <a 3508 href="/pages/podminky-ochrany-osobnich-udaju" 3509 class="link link--text list-menu__item list-menu__item--link" 3510 > 3511 Ochrana osobnÃch údajů 3512 </a> 3513 </li><li> 3514 <a 3515 href="/pages/zmena-souhlasu-cookies" 3516 class="link link--text list-menu__item list-menu__item--link" 3517 > 3518 ZmÄna souhlasu cookies 3519 </a> 3520 </li><li> 3521 <a 3522 href="/policies/refund-policy" 3523 class="link link--text list-menu__item list-menu__item--link" 3524 > 3525 Zásady vracenà penÄz 3526 </a> 3527 </li><li> 3528 <a 3529 href="/policies/terms-of-service" 3530 class="link link--text list-menu__item list-menu__item--link" 3531 > 3532 OP Google 3533 </a> 3534 </li><li> 3535 <a 3536 href="/pages/studie-udrzitelnosti-menstruacnich-kalhotek" 3537 class="link link--text list-menu__item list-menu__item--link" 3538 > 3539 Studie udržitelnosti menstruaÄnÃch kalhotek 3540 </a> 3541 </li></ul></div> 3542 3543 3544 <div class="footer-block"><ul class="footer-block__details-content"><li> 3545 <a 3546 href="/pages/doprava-a-platba" 3547 class="link link--text list-menu__item list-menu__item--link" 3548 > 3549 Doprava a platba 3550 </a> 3551 </li><li> 3552 <a
3553 href="/pages/velikostni-tabulka" 3554 class="link link--text list-menu__item list-menu__item--link" 3555 > 3556 Velikostnà tabulka 3557 </a> 3558 </li><li> 3559 <a 3560 href="/pages/vraceni-a-vymena-zbozi" 3561 class="link link--text list-menu__item list-menu__item--link" 3562 > 3563 Vrácenà a výmÄna 3564 </a> 3565 </li><li> 3566 <a 3567 href="/pages/hodnoceni-vyrobku-na-webu" 3568 class="link link--text list-menu__item list-menu__item--link" 3569 > 3570 Pravidla ovÄÅovánà recenzà 3571 </a> 3572 </li><li> 3573 <a 3574 href="/pages/pravidla-souteze" 3575 class="link link--text list-menu__item list-menu__item--link" 3576 > 3577 Pravidla soutÄže na sociálnÃch sÃtÃch 3578 </a> 3579 </li><li> 3580 <a 3581 href="/pages/odstoupeni-od-smlouvy" 3582 class="link link--text list-menu__item list-menu__item--link" 3583 > 3584 Odstoupit od smlouvy 3585 </a> 3586 </li></ul></div> 3587 3588 3589 3590 <div class="footer-block flex-2"> 3591 <div class="footer-block__newsletter"> 3592 <p class="footer-block__text">PÅihlaste se k odbÄru newsletteru a zÃskejte 10% slevu na svůj prvnà nákup!</p> 3593 3594<form method="post" action="/contact#ContactFooter" id="ContactFooter" accept-charset="UTF-8" class="footer__newsletter newsletter-form"><input type="hidden" name="form_type" value="customer" /><input type="hidden" name="utf8" value="â" /><input type="hidden" name="contact[tags]" value="newsletter"> 3595 <div class="newsletter-form__field-wrapper"> 3596 <div class="field"> 3597 <input 3598 id="NewsletterForm--sections--21785445269845__footer-custom" 3599 type="email" 3600 name="contact[email]" 3601 class="field__input" 3602 value="" 3603 aria-required="true" 3604 autocorrect="off" 3605 autocapitalize="off" 3606 autocomplete="email" 3607 3608 placeholder="E-mail" 3609 required 3610 > 3611 <label class="field__label" for="NewsletterForm--sections--21785445269845__footer-custom"> 3612 E-mail 3613 </label> 3614 <button 3615 type="submit" 3616 class="newsletter-form__button field__button" 3617 name="commit" 3618 id="Subscribe" 3619 aria-label="PÅihlásit k odbÄru" 3620 > 3621 <svg 3622 viewBox="0 0 14 10" 3623 fill="none" 3624 aria-hidden="true" 3625 focusable="false" 3626 class="icon icon-arrow" 3627 xmlns="http://www.w3.org/2000/svg" 3628> 3629 <path fill-rule="evenodd" clip-rule="evenodd" d="M8.537.808a.5.5 0 01.817-.162l4 4a.5.5 0 010 .708l-4 4a.5.5 0 11-.708-.708L11.793 5.5H1a.5.5 0 010-1h10.793L8.646 1.354a.5.5 0 01-.109-.546z" fill="currentColor"> 3630</svg> 3631 3632 </button> 3633 </div></div></form></div> 3634 </div> 3635 3636</div> 3637 3638<style> 3639 .footer-custom { 3640 display: flex; 3641 align-items: center; 3642 justify-content: center; 3643 flex-wrap: wrap; 3644 gap: 3rem; 3645 width: 100%; 3646 padding-block: 3rem; 3647 } 3648 3649 .footer-block { 3650 width: 100%; 3651 min-width: 200px; 3652 max-width: 200px; 3653 height: auto; 3654 flex: 1; 3655 align-self: start; 3656 } 3657 3658 .footer-block__contact-wrapper { 3659 display: flex; 3660 flex-direction: column; 3661 gap: 2rem; 3662 } 3663 3664 .footer-block__contact-text { 3665 margin: 0; 3666 } 3667 3668 .footer-block__details-content { 3669 list-style: none; 3670 padding: 0; 3671 margin: 0; 3672 } 3673 3674 .footer-block__contact-socials { 3675 display: flex; 3676 align-items: center; 3677 justify-content: start; 3678 gap: 1rem; 3679 } 3680 3681 .footer-block__contact-icon { 3682 width: 2rem; 3683 height: auto; 3684 display: block; 3685 object-fit: contain; 3686 } 3687 3688 .footer-block__contact-img { 3689 width: 100%; 3690 max-width: 200px; 3691 height: auto; 3692 } 3693 3694 .flex-2 { 3695 flex: 2; 3696 max-width: 400px; 3697 min-width: 300px; 3698 } 3699</style> 3700 3701 3702 3703 </div> 3704<!-- END sections: footer-group --> 3705 3706 <ul hidden> 3707 <li id="a11y-refresh-page-message">Po volbÄ výbÄru se obnovà celá stránka.</li> 3708 <li id="a11y-new-window-message">OtevÅe se v novém oknÄ.</li> 3709 </ul> 3710 3711
3711<script> 3712 window.shopUrl = 'https://sayu.cz'; 3713 window.routes = { 3714 cart_add_url: '/cart/add', 3715 cart_change_url: '/cart/change', 3716 cart_update_url: '/cart/update', 3717 cart_url: '/cart', 3718 predictive_search_url: '/search/suggest', 3719 }; 3720 3721 window.cartStrings = { 3722 error: `PÅi aktualizaci vaÅ¡eho koÅ¡Ãku doÅ¡lo k chybÄ. Zkuste to prosÃm znovu.`, 3723 quantityError: `Do koÅ¡Ãku můžete pÅidat jen následujÃcà množstvà dané položky: [quantity].`, 3724 }; 3725 3726 window.variantStrings = { 3727 addToCart: `Do koÅ¡Ãku`, 3728 soldOut: `Vyprodáno`, 3729 unavailable: `Nedostupné`, 3730 unavailable_with_option: `[value] â nenà k dispozici`, 3731 }; 3732 3733 window.quickOrderListStrings = { 3734 itemsAdded: `Byl pÅidán tento poÄet položek: [quantity]`, 3735 itemAdded: `Byla pÅidána [quantity] položka`, 3736 itemsRemoved: `Byla odebrán tento poÄet položek: [quantity]`, 3737 itemRemoved: `Byla odebrána [quantity] položka`, 3738 viewCart: `Zobrazit koÅ¡Ãk`, 3739 each: `[money] / ks`, 3740 }; 3741 3742 window.accessibilityStrings = { 3743 imageAvailable: `Obrázek [index] je nynà k dispozici v zobrazenà galerie`,
3744 shareSuccess: `Odkaz byl zkopÃrován do schránky`, 3745 pauseSlideshow: ``, 3746 playSlideshow: ``, 3747 recipientFormExpanded: `FormuláŠpro pÅÃjemce dárkové karty se rozbalil.`, 3748 recipientFormCollapsed: `FormuláŠpro pÅÃjemce dárkové karty se sbalil.`, 3749 }; 3750 </script>
3750<script src="//sayu.cz/cdn/shop/t/31/assets/predictive-search.js?v=162273246065392412141705621626" defer="defer"></script>
3750 3751
3751<script> 3752 let items = document.querySelectorAll(".mega-menu") 3753 let currentItemIndex 3754 3755 items.forEach((item, itemIndex) => { 3756 const content = item.querySelector(".mega-menu__content") 3757 item.addEventListener("mouseover", () => { 3758 if ( 3759 (currentItemIndex === 0 && currentItemIndex !== itemIndex) || 3760 (currentItemIndex && currentItemIndex !== itemIndex) 3761 ) { 3762 items[currentItemIndex].removeAttribute("open") 3763 } 3764 3765 currentItemIndex = itemIndex 3766 item.setAttribute("open", true) 3767 }) 3768 3769 item.addEventListener("mouseleave", () => { 3770 let close = true 3771 content.addEventListener("mouseover", () => { 3772 close = false 3773 }) 3774 setTimeout(1000, () => { 3775 if (close) item.removeAttribute("open") 3776 }) 3777 }) 3778 3779 content.addEventListener("mouseleave", () => { 3780 item.removeAttribute("open") 3781 }) 3782 }) 3783 </script>
3783 3784 3785 <style> </style> 3786<div id="shopify-block-AVU0zK1p3ZlJNdWpsN__15796953133730294439" class="shopify-block shopify-app-block"><!-- Growave Theme extension Embed section --> 3787 3788 <!-- BEGIN app snippet: socialshopwave-helper-v2 -->
3788<script> 3789 if (!window.gw) { 3790 window.gw = {}; 3791 } 3792 3793 if(!window.gw.customizations) { 3794 window.gw.customizations = []; 3795 3796 window.gw.registerWidgetCustomization = (selectWidget, customizeWidget) => { 3797 window.gw.customizations.push([ 3798 selectWidget, 3799 customizeWidget 3800 ]) 3801 } 3802 } 3803 3804 if (window.gw.browserTimeDiffMs === undefined) { 3805 window.gw.browserTimeDiffMs = 0; 3806 } 3807 3808 if (window.gw.useLegacyAdapter === undefined) { 3809 window.gw.useLegacyAdapter = false; 3810 } 3811</script>
3811 3812 3813 3814 <style></style> 3815 3816 3817<div class="gw-widget-placeholder-LC-wrapper" style="display: block"> 3818 <div class="gw-widget-placeholder-LC"></div> 3819</div> 3820<div class="gw-widget-placeholder-RC-wrapper" style="display: block"> 3821 <div class="gw-widget-placeholder-RC"></div> 3822</div> 3823<div class="gw-widget-placeholder-BR-wrapper" style="display: block"> 3824 <div class="gw-widget-placeholder-BR"></div> 3825</div> 3826<div class="gw-widget-placeholder-BL-wrapper" style="display: block"> 3827 <div class="gw-widget-placeholder-BL"></div> 3828</div> 3829 3830 3831 3832 3833 3834 3835 3836 3837 3838 3839 3840 3841 3842 3843 3844
3844<script type="text/json" id="common.critical.Points.cs"> 3845 {"points_name_singular":"bod","points_name_plural":"body"} 3846 </script>
3846 3847 3848 3849 3850 3851 3852
3852<script type="text/json" id="reviews.critical.AverageReviewsWidget.cs"> 3853 {"write_a_review":"Napsat recenzi","ask_a_question":"Položit otázku"} 3854 </script>
3854 3855 3856 3857 3858 3859 3860
3860<script type="text/json" id="reviews.critical.ReviewsStarRatingWidget.cs"> 3861 {"write_a_review":"Napsat recenzi","ask_a_question":"Položit otázku","no_reviews":"Žádné recenze","review":"pÅezkoumánÃ"} 3862 </script>
3862 3863 3864 3865 3866 3867 3868 3869 3870 3871 3872
3872<script type="text/json" id="reviews.critical.ReviewsDrawerWidget.cs"> 3873 {"drawer_title":"NaÅ¡e recenze","drawer_button_title":"Recenze","write_a_review":"Napsat recenzi","sort_by":"SeÅadit podle:","product_reviews":"Recenze","shop_reviews":"Recenze obchodu"} 3874 </script>
3874 3875 3876 3877 3878 3879 3880
3880<script type="text/json" id="reviews.critical.ReviewsPageWidget.cs"> 3881 {"shop_reviews":"Recenze obchodu","product_reviews":"Recenze produktů","search":"Hledat...","customer_reviews_title":"Hodnocenà zákaznÃků","reviews":"Recenze","sort_by":"SeÅadit podle:","write_a_review":"Napsat recenzi"} 3882 </script>
3882 3883 3884 3885 3886 3887 3888
3888<script type="text/json" id="reviews.critical.ReviewsProductPageWidget.cs"> 3889 {"ask_a_question":"Položit otázku","sort_by":"SeÅadit podle:","write_a_review":"Napsat recenzi","filter_by":"Filtrovat","questions_main_title":"Otázky","reviews":"Recenze","customer_reviews_title":"Hodnocenà zákaznÃků","questions":"Otázky"} 3890 </script>
3890 3891 3892 3893 3894 3895 3896
3896<script type="text/json" id="reviews.critical.ReviewsSliderWidget.cs"> 3897 {"slider_title":"NaÅ¡i zákaznÃci nás milujÃ","from_reviews":"z {{count}} hodnocenÃ"} 3898 </script>
3898 3899 3900 3901 3902 3903 3904
3904<script type="text/json" id="rewards.critical.RewardsPopUpWidget.cs"> 3905 {"sign_in":"PÅihlásit se","join_now_label":"PÅipojit se nynÃ","launcher_label":"SAYU klub","join_program":"PÅipojte se k vÄrnostnÃmu programu a užijte si exkluzivnà odmÄny!","have_an_account":"Už máte úÄet?","customer_balance":"Váš zůstatek:","points_expiration":"VyprÅ¡enà platnosti: {{date}}","welcome_to_program":"VÃtejte!"} 3906 </script>
3906 3907 3908 3909 3910 3911 3912
3912<script type="text/json" id="rewards.critical.RewardsJoinNowModalWidget.cs"> 3913 {"description":"Zaregistrujte se a zÃskejte vzruÅ¡ujÃcà bonusy!","join_now_label":"PÅipojit se nynÃ","title":"Jste vÃtáni, abyste se pÅipojili k naÅ¡emu vÄrnostnÃmu programu!"} 3914 </script>
3914 3915 3916 3917 3918 3919 3920
3920<script type="text/json" id="rewards.critical.RewardsVerifyAccountModalWidget.cs"> 3921 {"description":"DÄkujeme, že jste se k nám pÅipojili! PrávÄ jsme zaslali ovÄÅovacà odkaz <br /> na váš e-mail. KliknÄte na nÄj a zÃskejte odmÄnu! ð","title":"OvÄÅte svůj úÄet!"} 3922 </script>
3922 3923 3924 3925 3926 3927 3928
3928<script type="text/json" id="rewards.critical.RewardsEarnPointsProductPageWidget.cs"> 3929 {"earn_points_on_purchase":"ZÃskejte {{points}} {{points_name}} za tento nákup.","learn_more":"DozvÄdÄt se vÃce","earn_store_credits_on_purchase":"ZÃskejte pÅi tomto nákupu kredit {{store_credits}} v obchodÄ.","reward_applied":"uplatÅována","reward_redeem":"Uplatnit","reward_undo":"ZpÄt","reward_unlocked":"Odemkli jste","sign_in":"PÅihlásit se","sign_in_available_reward":"PÅihlaste se a objevte dostupnou odmÄnu","spending_rules_fixed_amount_reward":"{{amount}} odmÄna","spending_rules_fixed_percentage_reward":"{{discount}}% sleva","spending_rules_fixed_store_credit_reward":"{{amount}} kredit obchodu","spending_rules_flexible_amount_reward":"{{amount}} odmÄna","spending_rules_flexible_percentage_reward":"{{discount}}% sleva","spending_rules_free_shipping_reward":"Sleva na dopravu zdarma","spending_rules_gift_card_reward":"{{amount}} dárková karta","spending_rules_product_discount_max_reward":"Sleva na produkt zdarma","spending_rules_product_discount_variable_reward":"{{discount}}% na tento produkt","away_from_reward":"Jste <strong>{{points_needed}}</strong> daleko od své odmÄny"} 3930 </script>
3930 3931 3932 3933 3934 3935 3936
3936<script type="text/json" id="wishlist.critical.WishlistPageWidget.cs"> 3937 {"header_title":"Moje seznamy pÅánÃ","link_copied_label":"Odkaz zkopÃrován","sort_low_to_high_price":"Cena NÃzko-Vysoká","sort_z_to_a_product_title":"Název Z-A","delete_wishlist_button_accessibility_label":"Smazat seznam pÅánÃ","sort_hight_to_low_price":"Cena Vysoká-NÃzká","sort_recently_added":"Nedávno pÅidané","sort_a_to_z_product_title":"Název A-Z","save_wishlist_button_text":"Uložit můj seznam pÅánÃ","social_share_label":"PodÃl:","add_wishlist_button_text":"PÅidat nový seznam","edit_wishlist_button_accessibility_label":"Upravit seznam pÅánÃ","save_wishlist_button_accessibility_label":"Uložit seznam pÅánÃ","empty_state_title":"Nic nebylo pÅidáno do seznamu pÅánÃ.","add_to_cart_button_label":"PÅidat do koÅ¡Ãku","show_in_cart_button_label":"Zobrazit v koÅ¡Ãku","sold_out_label":"Nenà skladem","browse_products":"ProhlÞet produkty","sort_by":"SeÅadit podle:","filter_by":"Filtrovat podle:","filter_all":"VÅ¡e","filter_available":"K dispozici"} 3938 </script>
3938 3939 3940 3941 3942 3943 3944
3944<script type="text/json" id="wishlist.critical.SharedWishlistPageWidget.cs"> 3945 {"show_in_cart_button_label":"Zobrazit v koÅ¡Ãku","sold_out_label":"Nenà skladem","edit_wishlist_button_accessibility_label":"Upravit seznam pÅánÃ","title":"SdÃlené seznamy pÅánÃ","save_wishlist_button_accessibility_label":"Uložit seznam pÅánÃ","delete_wishlist_button_accessibility_label":"Smazat seznam pÅánÃ","empty_state_title":"Nic nebylo pÅidáno do seznamu pÅánÃ.","browse_products":"ProhlÞet produkty","add_to_cart_button_label":"PÅidat do koÅ¡Ãku"} 3946 </script>
3946 3947 3948 3949 3950 3951 3952
3952<script type="text/json" id="wishlist.critical.WishlistDrawerWidget.cs"> 3953 {"drawer_button_label":"Seznam pÅánÃ","drawer_button_label_gift_registry":"Registr dárků"} 3954 </script>
3954 3955 3956 3957 3958 3959 3960
3960<script type="text/json" id="wishlist.critical.SaveWishlistModalWidget.cs"> 3961 {"save_wishlist_button_text":"Uložit můj seznam pÅánÃ","subscribe_for_newsletter":"ZÃskejte aktualizace poklesu cen a doplÅovánà zásob"} 3962 </script>
3962 3963 3964 3965 3966 3967 3968
3968<script type="text/json" id="wishlist.critical.AddToWishlistProductCardWidget.cs"> 3969 {"remove_from_wishlist_button_accessibility_label":"Odstranit ze seznamu pÅánÃ","add_to_wishlist_button_accessibility_label":"PÅidat do seznamu pÅánÃ"} 3970 </script>
3970 3971 3972 3973 3974 3975 3976
3976<script type="text/json" id="wishlist.critical.AddToWishlistButtonWidget.cs"> 3977 {"add_to_wishlist_button_accessibility_label":"PÅidat do seznamu pÅánÃ","remove_from_wishlist_button_accessibility_label":"Odstranit ze seznamu pÅánÃ"} 3978 </script>
3978 3979 3980 3981 3982 3983 3984
3984<script type="text/json" id="wishlist.critical.AddToWishlistProductPageWidget.cs"> 3985 {"add_to_wishlist_button_text":"PÅidat do seznamu pÅánÃ","remove_from_wishlist_button_text":"Odstranit ze seznamu pÅánÃ","added_to_wishlist_button_text":"PÅidáno do seznamu pÅánÃ"} 3986 </script>
3986 3987 3988 3989 3990 3991 3992
3992<script type="text/json" id="wishlist.critical.GoToWishlistPageHeaderWidget.cs"> 3993 {"open_wishlist_page_button_accessibility_label":"PÅejÃt na stránku seznamu pÅánÃ"} 3994 </script>
3994 3995 3996 3997 3998 3999 4000
4000<script type="text/json" id="wishlist.critical.WishlistsWidget.cs"> 4001 {"add_list_button":"PÅidat nový seznam","main_title":"Seznam pÅánÃ","main_title_gift_registry":"Registr dárků"} 4002 </script>
4002 4003 4004 4005 4006 4007 4008
4008<script type="text/json" id="instagram.critical.InstagramGalleryWidget.cs"> 4009 {"view_on_instagram":"Zobrazit na Instagramu","shop_it":"NAKUPUJTE","prev":"PÅedeÅ¡lé","next":"DalÅ¡Ã","description":"Popis","load_more":"NaÄÃst vÃce"} 4010 </script>
4010 4011 4012 4013 4014 4015 4016
4016<script type="text/json" id="tiktok.critical.TikTokGalleryWidget.cs"> 4017 {"view_on_tiktok":"Zobrazit na TikToku","shop_it":"NAKUPUJTE","description":"Popis","load_more":"NaÄÃst vÃce"} 4018 </script>
4018 4019 4020 4021 4022 4023 4024
4024<script type="text/json" id="giftRegistry.critical.AddToRegistryProductPageWidget.cs"> 4025 {"add_to_registry":"PÅidat do registru","added_to_registry":"PÅidáno do registru"} 4026 </script>
4026 4027 4028 4029 4030 4031 4032 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043
4043<script id="gift_registry_critical:gift_registry_settings" type="text/json"> 4044 {"isRegistrantAddressRequired":true,"shareChannelTypes":[{"channelName":"copyShareLink","isEnabled":true},{"channelName":"email","isEnabled":true},{"channelName":"pinterest","isEnabled":true},{"channelName":"facebook","isEnabled":true},{"channelName":"twitter","isEnabled":true},{"channelName":"whatsapp","isEnabled":true}]} 4045 </script>
4045 4046 4047
4047<script id="growave_critical:account_UI" type="text/json"> 4048 {"canUseAccountUI":false} 4049 </script>
4049 4050 4051
4051<script id="growave_critical:b2b" type="text/json"> 4052 {"canUseB2B":false} 4053 </script>
4053 4054 4055
4055<script id="growave_critical:checkout_UI" type="text/json"> 4056 {"canUseCheckoutUI":false} 4057 </script>
4057 4058 4059
4059<script id="growave_critical:customer_account_version" type="text/json"> 4060 {"customerAccountVersion":"NEW_CUSTOMER_ACCOUNTS"} 4061 </script>
4061 4062 4063
4063<script id="growave_critical:nudges_status" type="text/json"> 4064 {"isEnabled":false} 4065 </script>
4065 4066 4067
4067<script id="growave_critical:watermark" type="text/json"> 4068 {"canShowWatermark":false} 4069 </script>
4069 4070 4071
4071<script id="reviews_critical:questions_settings" type="text/json"> 4072 {"isQuestionCaptchaEnabled":false,"isSomeoneAskQuestionTriggerEnabled":true,"isNotificationsAboutQuestionEnabled":true,"customerDisplayNamePolicy":"fullName"} 4073 </script>
4073 4074 4075
4075<script id="reviews_critical:reviews_branding" type="text/json"> 4076 {"reviewsThemeSettings":{"primaryColor":"#1D2939","secondaryColor":"#ffffff"},"reviewsIconSettings":{"starColor":"#FCCA3C","iconType":"default"},"reviewsDrawerSettings":{"drawerPosition":"LC","launcherBackgroundColor":"secondaryColor","launcherFontColor":"#1a1a1a","launcherIconBackgroundColor":"#1a1a1a","device":"allDevices"},"reviewsWidgetsSettings":{"buttonsColor":"primaryColor","reviewsWidgetLayout":"LL","fontColor":"#ffffff"},"productAvgRatingWidgetSettings":{"widgetVisibility":"show","widgetDisplayStyle":"showTextStarsAndQuestion","showStarsDistributionOnHover":false}} 4077 </script>
4077 4078 4079
4079<script id="reviews_critical:reviews_settings" type="text/json"> 4080 {"canUseTranslation":true,"isReviewTitleEnabled":false,"isReviewTitleRequired":true,"isReviewsVotingEnabled":true,"isReviewsPinningEnabled":true,"isReviewsTranslationEnabled":false,"defaultSortingOption":"mostRelevant","isReviewsMediaEnabled":true,"isUniteReviewsOriginProductEnabled":false,"isReviewEditingEnabled":false,"customerDisplayNamePolicy":"fullName","isVideoReviewsEnabled":false,"isVerifiedBuyerLabelEnabled":true,"isVerifiedBuyerByMerchantLabelEnabled":true,"isImportedLabelEnabled":true,"isIncentivizedLabelEnabled":false,"isProductReviewsSummaryEnabled":false,"isConsentRequired":false,"consentPolicyUrl":null} 4081 </script>
4081 4082 4083
4083<script id="rewards_critical:rewards_branding" type="text/json"> 4084 {"general":{"theme":{"primaryColor":"#A32424","secondaryColor":"#E2BCBC"},"buttons":{"themeColor":"primaryColor","fontColor":"#ffffff"},"content":{"iconsThemeColor":"primaryColor","linksThemeColor":"primaryColor"},"widget":{"type":"popUpWidget"}},"popUpWidget":{"launcher":{"appearance":{"themeColor":"primaryColor","fontColor":"#ffffff","style":"textOnly"},"icon":{"type":"default","color":"#ffffff","customUrl":null},"visibility":{"device":"allDevices"},"position":{"placement":"BL","desktop":{"side":220,"bottom":10},"mobile":{"side":16,"bottom":4}}},"popUpContent":{"view":"home","banner":{"programName":"SAYU klub","themeColor":"secondaryColor","fontColor":"#ffffff","image":null}}}} 4085 </script>
4085 4086 4087
4087<script id="rewards_critical:rewards_customers_eligibility" type="text/json"> 4088 {"type":"include","tags":[],"isEnabled":false,"showWidgetsToGuests":false} 4089 </script>
4089 4090 4091
4091<script id="rewards_critical:rewards_pos_settings" type="text/json"> 4092 {"isEnabled":false,"codeType":"barcode_2d","isWalletPassEnabled":false} 4093 </script>
4093 4094 4095
4095<script id="rewards_critical:rewards_programs_status" type="text/json"> 4096 {"pointsProgramEnabled":true,"referralProgramEnabled":false,"tiersProgramEnabled":false,"b2bProgramEnabled":false} 4097 </script>
4097 4098 4099
4099<script id="rewards_critical:rewards_settings" type="text/json"> 4100 {"generalSettings":{"isPointsExpirationEnabled":true,"isApplyDiscountViaButton":false,"isCustomersCanSelfRefund":false,"isRewardsConsentRequired":false,"pointsDecimalPlaces":2,"rewardPageHandle":"rewards","isStoreCreditEnabled":false},"referralShareChannels":[{"channelType":"facebookShare","isEnabled":true},{"channelType":"twitterShare","isEnabled":true},{"channelType":"whatsAppShare","isEnabled":true},{"channelType":"facebookMessengerShare","isEnabled":true},{"channelType":"pinterestShare","isEnabled":true},{"channelType":"emailShare","isEnabled":true,"title":"Your friend sent you a reward from {{shop_name}}","message":"Join me in discovering the best of {{shop_name}}. Enjoy your {{reward_type}} by following this link: {{link}}"}]} 4101 </script>
4101 4102 4103
4103<script id="rewards_critical:rewards_storefront_state" type="text/json"> 4104 {"hasFaqs":true} 4105 </script>
4105 4106 4107
4107<script id="rewards_critical:reward_page_availability" type="text/json"> 4108 {"canUseRewardPage":true} 4109 </script>
4109 4110 4111
4111<script id="wishlist_critical:wishlist_branding" type="text/json"> 4112 {"wishlistThemeSettings":{"primaryColor":"#1d2939","secondaryColor":"#00baee"},"wishlistIconSettings":{"heartColor":"#ef3251","backgroundColor":"#ffffff","iconType":"default","customIcons":{"isEnabled":false,"filledImage":null,"outlinedImage":null}},"wishlistButtonSettings":{"borderRadius":2,"color":"primaryColor","fontColor":"#1a1a1a","style":"outlined","isCounterEnabled":true},"wishlistDrawerAndPageSettings":{"device":"allDevices","drawerPosition":"R","launcherBackgroundColor":"#ffffff","launcherFontColor":"#1a1a1a","launcherIconBackgroundColor":"primaryColor","buttonsColor":"primaryColor","buttonsStyle":"outlined","buttonsFontColor":"#1a1a1a","buttonsBorderRadius":2,"linkColor":"secondaryColor"}} 4113 </script>
4113 4114 4115
4115<script id="wishlist_critical:wishlist_settings" type="text/json"> 4116 {"isWishlistEnabled":false,"isDuplicateWishlistEnabled":false,"isWishlistDrawerEnabled":true,"isDisabledForGuests":false,"isSaveWishlistEnabled":false,"isWishlistSocialShareEnabled":true,"wishlistSocialShareChannels":[{"channelName":"copyShareLink","isEnabled":true},{"channelName":"email","isEnabled":true},{"channelName":"facebook","isEnabled":true},{"channelName":"pinterest","isEnabled":true},{"channelName":"twitter","isEnabled":true},{"channelName":"whatsapp","isEnabled":true}],"isCreateDraftOrderFromListEnabled":false,"isListsApprovalByCompanyMembersEnabled":false,"isEditListsByCompanyMembersEnabled":true,"isEditProductQuantityEnabled":false,"isWishlistApprovalRequestNotificationEnabled":false,"isWishlistApprovalCompletedNotificationEnabled":false} 4117 </script>
4117 4118 4119 4120 4121 4122 4123 4124 4125 4126 4127 4128 4129 4130 4131 4132 4133 4134<!-- TODO use theme settings from the variables --> 4135 4136
4137<script id="gw-additional-info" type="application/json"> 4138 { 4139 "FEATURES": { 4140 "moneyFormat": "{{ amount_no_decimals }} KÄ", 4141 "moneyWithCurrencyFormat": "{{ amount_no_decimals }}", 4142 "shopCurrency": "CZK", 4143 "currencySymbol": "KÄ", 4144 "availableApps": ["social-login","rewards"], 4145 "storefrontApiAccessToken": "5e128d8183d4198407627d75e14c39b8" , 4146 "countryIsoCode": "CZ", 4147 "languageIsoCode": "CS", 4148 "currencyIsoCode": "CZK", 4149 "gwI18nLocale": "cs", 4150 "shopName": "SAYU", 4151 "isShadowRootDisabledGlobally": false, 4152 "storefrontLoginUrl": "\/customer_authentication\/login?return_to=%2Fpages%2Fvogue-cs-x-red-salon-concept-store-new-talents\u0026locale=cs\u0026ui_hint=full\u0026region_country=CZ" 4153 }, 4154 "GW_CUSTOMER_INFO": null , 4155 "GW_PRODUCT_INFO": { 4156 "productId": null , 4157 "variantId": null , 4158 "defaultVariantId": null 4159 }, 4160 "GW_SHOP_BRAND_INFO": { 4161 "logoUrl": "//sayu.cz/cdn/shop/files/Y_logo.png?v=1706271754" 4162 } 4163 } 4164</script>
4164 4165
4166<script> 4167 if (window.GW_GROWAVE_LOADED) { 4168 throw new Error("Growave embeds conflict") 4169 } 4170 if (document && document.cookie && document.cookie.includes("GW_DISABLED=true")) { 4171 console.warn("Growave is disabled by cookie") 4172 } else { 4173 window.GW_GROWAVE_LOADED = true; 4174 4175 4176 let GW_BUNDLE_URL="https://static.growave.io/growave-build/main.4dce7fdd.js"; 4177 const GW_DEV_GROWAVE_BUNDLE_URL = localStorage.getItem("GW_DEV_GROWAVE_BUNDLE_URL"); 4178 if (GW_DEV_GROWAVE_BUNDLE_URL) { 4179 GW_BUNDLE_URL = GW_DEV_GROWAVE_BUNDLE_URL; 4180 } 4181 if (!GW_BUNDLE_URL) { 4182 throw new Error("Url for bundle not found!") 4183 } 4184 window.gwWebpackGlobal = window.gwWebpackGlobal || {}; 4185 const mainScript = document.createElement("script"); 4186 mainScript.defer = true; 4187 mainScript.type="module"; 4188 mainScript.src=GW_BUNDLE_URL; 4189 document.body.appendChild(mainScript); 4190 } 4191</script>
4191 4192<!-- END app snippet --> 4193 4194 4195 4196</div><div id="shopify-block-AdlhZazdFQTVWS3ZzY__13762318497758424536" class="shopify-block shopify-app-block"><style> 4197 .wl-btn-link { 4198 display: inline-block; 4199 text-decoration: none !important; 4200 font-weight: 400 !important; 4201 padding: 4px 0px !important; 4202 font-size: 14px !important;background-color: transparent !important; 4203 color: #000000 !important; 4204 border: 2px solid #A32424 !important; 4205 border-radius: 8px !important;text-align: center !important; 4206 cursor: pointer !important; 4207 transition: all 0.2s ease; 4208 } 4209 4210 .wl-btn-link:hover {background-color: #000000 !important; 4211 color: #A32424 !important; 4212 border-color: #A32424 !important;} 4213 4214 .wl-btn-link:active { 4215 transform: scale(0.98); 4216 } 4217</style> 4218
4219<script> 4220 (function() { 4221 var selector = "\/pages\/odstoupeni-od-smlouvy"; 4222 if (!selector) return; 4223 4224 function isTriggerLink(href) { 4225 if (!href) return false; 4226 var url; 4227 try { url = new URL(href, window.location.href); } catch (e) { return false; } 4228 if (url.hash) { 4229 var hashParams = new URLSearchParams(url.hash.replace(/^#/, '')); 4230 if (hashParams.get('eu-withdrawal') === 'open') return true; 4231 } 4232 if (url.search) { 4233 var searchParams = new URLSearchParams(url.search); 4234 if (searchParams.get('eu-withdrawal') === 'open') return true; 4235 } 4236 return false; 4237 } 4238 4239 function apply() { 4240 var links = document.querySelectorAll('a[href*="' + selector + '"], a[href*="eu-withdrawal"]'); 4241 for (var i = 0; i < links.length; i++) { 4242 var href = links[i].getAttribute('href') || ''; 4243 if (href.indexOf(selector) !== -1 || isTriggerLink(href)) { 4244 links[i].classList.add('wl-btn-link'); 4245 } 4246 } 4247 } 4248 4249 if (document.readyState === 'loading') { 4250 document.addEventListener('DOMContentLoaded', apply); 4251 } else { 4252 apply(); 4253 } 4254 })(); 4255</script>
4255 4256</div><div id="shopify-block-AK2cvU1YxM2RudVVoa__17368511000352060744" class="shopify-block shopify-app-block">
4256<script type="text/javascript"> 4257 window.gfp_customer = { 4258 id: "", 4259 email: "", 4260 first_name: "", 4261 last_name: "" 4262 } 4263 function gfpLoadWidgets() { 4264 if (!document.querySelector('script[src="https://widgets.goaffpro.app/main.js"]')) { 4265 var s = document.createElement('script'); 4266 s.type = 'module'; 4267 s.src = 'https://widgets.goaffpro.app/main.js'; 4268 document.head.appendChild(s); 4269 } 4270 } 4271</script>
4271 4272 4273
4273<script type="text/javascript" async="true" src="/a/goaffpro/loader.js"></script>
4273 4274 4275 4276 4277 4278 4279 4280 4281 4282</div><div id="shopify-block-AM05QbkZpaG5MWU93V__18228966181090706294" class="shopify-block shopify-app-block"> 4283 4284 4285
4285<script type="module" src="https://cdn.shopify.com/extensions/01a115be-abcf-7501-a123-78da12b4df6b/lb-upsell-452/assets/lb-upsell.js" defer="defer"></script>
4285 4286
4286<script type="module" src="https://cdn.shopify.com/extensions/01a115be-abcf-7501-a123-78da12b4df6b/lb-upsell-452/assets/lb-upsell-components.esm.js" defer="defer"></script>
4286 4287 4288 4289
4290<script> 4291 4292 4293 window.lbupsellToken = "e5e04473ca3b1b7d634eb6188cfd6fd5" 4294 4295 4296</script>
4296 4297
4298<script> 4299 4300 window.lbInitMode = "immediate"; 4301 4302 window.lbComponentSrc = "https://cdn.shopify.com/extensions/01a115be-abcf-7501-a123-78da12b4df6b/lb-upsell-452/assets/lb-upsell-components.esm.js";</script>
4302 4303
4304<script type="text/javascript" src="https://cdn.shopify.com/extensions/01a115be-abcf-7501-a123-78da12b4df6b/lb-upsell-452/assets/lb-utils.js" defer="defer"></script>
4304 4305 4306</div><div id="shopify-block-AWFNNenlBR2N5d2ZuU__12657775114333427046" class="shopify-block shopify-app-block">
4306<script> 4307 4308 window.essentialCountdownTimerConfigs = []; 4309 4310 const essentialCollectionId = null; 4311 window.essentialCountdownTimerMeta = { 4312 productData: null, 4313 productCollections: null, 4314 }; 4315 window.essentialProductId = null 4316 window.essentialProductTags = null 4317 window.essentialCollectionId = null 4318 window.essentialCountdownTimerPageTemplate = "page" 4319 4320</script>
4320 4321 4322 4323 4324<style> 4325 .essential-countdown-timer-img-reset { 4326 /* wipe common globals */ 4327 box-sizing: content-box; 4328 display: inline; 4329 width: auto; 4330 height: auto; 4331 max-width: none; 4332 max-height: none; 4333 margin: 0; 4334 padding: 0; 4335 border: none; 4336 border-radius: 0; 4337 box-shadow: none; 4338 background: none; 4339 object-fit: fill; 4340 object-position: 50% 50%; 4341 filter: none; 4342 opacity: 1; 4343 position: static; 4344 float: none; 4345 clear: none; 4346 vertical-align: baseline; 4347 transform: none; 4348 transition: none; 4349 animation: none; 4350 /* typography sometimes leaks via universal selectors */ 4351 font: inherit; 4352 line-height: normal; 4353 letter-spacing: normal; 4354 text-align: start; 4355 } 4356</style> 4357 4358 4359</div><div id="shopify-block-AQW9NM0J5cFNqRGIvW__1015306495280391486" class="shopify-block shopify-app-block"> 4360 4361 4362 4363 4364 4365 4366 4367 4368 4369 4370 4371 4372 4373 4374 4375 4376 4377 4378 4379 4380 4381 4382 4383 4384 4385 4386<div 4387 id="globe-delivery-selector-block-AQW9NM0J5cFNqRGIvW__1015306495280391486" 4388 class="globe-delivery-selector-block" 4389 4390 style="display: none;" 4391> 4392 <!-- This block is invisible - it just loads the script and configuration --> 4393 <!-- The actual UI is rendered into the target element specified by the merchant --> 4394</div> 4395
4396<script> 4397 // Shared cart utilities (GLO-343) 4398 // 4399 // One delivery-method change used to trigger ~8 GET /cart.js: we dispatch 4400 // 4 cart event names (theme compatibility) and every internal listener 4401 // reacted to every name with its own fetch. This block centralises both: 4402 // 4403 // - fetchCart(): deduplicated /cart.js fetch â concurrent callers share one 4404 // in-flight request, and results are reused for a short TTL. seedCart() 4405 // injects a cart object we already have (e.g. a /cart/update.js response) 4406 // so followers don't refetch at all. 4407 // - onCartEvent(fn): a single debounced pipeline over all cart event names 4408 // (window + document). One user action = one handler run, no matter how 4409 // many event names fire. If any event carried detail.cart, it seeds the 4410 // fetch cache before handlers run. 4411 // - log(): console noise gated behind window.__globeDebug or ?globe_debug. 4412 // 4413 // Attached to window (guarded) so both IIFEs below â and any additional 4414 // block instance â share the same cache and pipeline. 4415 (function () { 4416 if (window.__globeCart) return; 4417 4418 window.__globeDebug = window.__globeDebug === true || /[?&]globe_debug/.test(location.search); 4419 function log() { 4420 if (window.__globeDebug) console.log.apply(console, arguments); 4421 } 4422 4423 const CART_TTL_MS = 300; 4424 let cartPromise = null; 4425 let cartFetchedAt = 0; 4426 4427 function fetchCart() { 4428 const now = Date.now(); 4429 if (cartPromise && now - cartFetchedAt < CART_TTL_MS) return cartPromise; 4430 cartFetchedAt = now; 4431 cartPromise = fetch('/cart.js').then(function (r) { return r.json(); }); 4432 // Never cache a failure â the next caller retries. 4433 cartPromise.catch(function () { cartPromise = null; }); 4434 return cartPromise; 4435 } 4436 4437 function seedCart(cart) { 4438 if (!cart) return; 4439 cartPromise = Promise.resolve(cart); 4440 cartFetchedAt = Date.now(); 4441 } 4442 4443 // Every cart event name we (or themes) dispatch. cart:open is drawer-open 4444 // (no cart payload) but flows through the same pipeline so a drawer opening 4445 // right after an update still coalesces into one handler run. 4446 const CART_EVENTS = ['cart:updated', 'cart:refresh', 'cart:change', 'cart.change', 'cart:open']; 4447 const handlers = []; 4448 let burstTimer = null; 4449 4450 function onCartEvent(fn) { handlers.push(fn); } 4451 4452 function handleCartEvent(e) { 4453 const cart = e && e.detail && e.detail.cart; 4454 if (cart) seedCart(cart); 4455 // Trailing debounce: a burst of event names from one user action 4456 // collapses into a single handler pass. 4457 clearTimeout(burstTimer); 4458 burstTimer = setTimeout(function () { 4459 handlers.forEach(function (fn) { 4460 try { fn(); } catch (err) { console.error('[Globe Cart Widget] cart-event handler failed:', err); } 4461 }); 4462 }, 100); 4463 } 4464 4465 CART_EVENTS.forEach(function (name) { 4466 // Bubbling theme events reach both document and window â the debounce 4467 // absorbs the duplicate. Non-bubbling dispatches on either target are 4468 // still caught by exactly one of the two listeners. 4469 window.addEventListener(name, handleCartEvent); 4470 document.addEventListener(name, handleCartEvent); 4471 }); 4472 4473 // GLO-514: the market country, or the configured country the storefront 4474 // language maps to. Mirrors resolvePickupCountry in app/constants/languageCountries.js. 4475 var MARKET_COUNTRY = 'cz'; 4476 var MARKET_COUNTRIES = 'cz,'.split(',').filter(Boolean); 4477 function resolvePickupCountry(cfg) { 4478 var m = cfg && cfg.settings && cfg.settings.localeCountryMap; 4479 var e = m && m['cs']; 4480 if (!e || !e.country || e.country === MARKET_COUNTRY) return MARKET_COUNTRY; 4481 if ((e.spokenIn || []).indexOf(MARKET_COUNTRY) !== -1) return MARKET_COUNTRY; 4482 if (MARKET_COUNTRIES.length && MARKET_COUNTRIES.indexOf(e.country) === -1) return MARKET_COUNTRY; 4483 return e.country; 4484 } 4485 4486 window.__globeCart = { 4487 fetchCart: fetchCart, 4488 seedCart: seedCart, 4489 onCartEvent: onCartEvent, 4490 resolvePickupCountry: resolvePickupCountry, 4491 log: log, 4492 }; 4493 })(); 4494 4495 // Globe Delivery Method Selector - Theme Extension 4496 (function() { 4497 'use strict'; 4498
4499 const blockId = 'AQW9NM0J5cFNqRGIvW__1015306495280391486'; 4500 4501 // Widget texts: English defaults, replaced by the metafield translation below 4502 let texts = { 4503 headingText: "Choose delivery method", 4504 homeDeliveryText: "Home delivery", 4505 homeDeliverySubtext: "", 4506 pickupPointsText: "Pickup points", 4507 pickupPointsSubtext: "", 4508 changeButtonText: "Change", 4509 subscriptionDisabledText: "Some methods are not available because your cart contains a subscription.", 4510 selectDeliveryText: "Select a delivery option before continuing to checkout." 4511 }; 4512 4513 4514 4515 4516 4517 try { 4518 texts = {"headingText":"Vyberte způsob doruÄenÃ","homeDeliveryText":"DoruÄenà na adresu","homeDeliverySubtext":"GLS: 129.00 KÄ","pickupPointsText":"Výdejnà mÃsta","pickupPointsSubtext":"GLS: 89.00 KÄ, PPL: 99.00 KÄ, Zásilkovna: 109.00 KÄ","changeButtonText":"ZmÄnit","subscriptionDisabledText":"NÄkteré metody nejsou dostupné, protože váš koÅ¡Ãk obsahuje pÅedplatné."}; 4519 } catch (error) { 4520 console.error('[Globe Cart Widget] Error parsing translations:', error); 4521 // texts already has default English values 4522 } 4523 4524 4525 4526 // Load placement settings from metafield (or use defaults) 4527 let placement = { 4528 targets: [ 4529 { selector: '.cart__footer', position: 'top' } 4530 ] 4531 }; 4532 4533 4534 try { 4535 const placementData = {"targets":[{"selector":".cart-drawer__footer","position":"bottom","layout":"horizontal","customCss":".globe-delivery-selector-container {\nmargin-bottom: 16px\n}","customJs":"","spacing":""}]}; 4536 4537 if (placementData && typeof placementData === 'object') { 4538 // Support both old format (single selector) and new format (array of targets) 4539 if (placementData.targets && Array.isArray(placementData.targets)) { 4540 placement = placementData; 4541 } else if (placementData.targetSelector) { 4542 // Legacy format - convert to new format 4543 placement = { 4544 targets: [{ 4545 selector: placementData.targetSelector, 4546 position: placementData.insertPosition || 'top' 4547 }] 4548 }; 4549 } 4550 } 4551 } catch (e) { 4552 4553 } 4554 4555 4556 // Load style settings from metafield (or use defaults) 4557 let styles = { 4558 layout: 'horizontal', 4559 cardBgColor: '#ffffff', 4560 cardBorderColor: '#e5e7eb', 4561 selectedBorderColor: '#000000', 4562 headingColor: '#111111', 4563 cardTitleColor: '#111111', 4564 textColor: '#6b7280', 4565 iconColor: '#6b7280', 4566 buttonBgColor: '#000000', 4567 buttonTextColor: '#ffffff' 4568 }; 4569 4570 4571 try { 4572 const stylesData = {"headingColor":"#111111","textColor":"#6b7280","cardBgColor":"#ffffff","cardBorderColor":"#e5e7eb","selectedBorderColor":"#A32424","iconColor":"#6b7280","buttonBgColor":"#e5e7eb","buttonTextColor":"#A32424"}; 4573 4574 if (stylesData && typeof stylesData === 'object') { 4575 styles = Object.assign({}, styles, stylesData); 4576 } 4577 } catch (e) { 4578 4579 } 4580 4581 4582 // Load advanced settings from metafield (or use defaults) 4583 let advancedSettings = { subscriptionBehavior: 'default', styleIsolation: 'off' }; 4584 4585 4586 try { 4587 const advancedData = {"subscriptionBehavior":"default","styleIsolation":"shadow"}; 4588 if (advancedData && typeof advancedData === 'object') { 4589 advancedSettings = Object.assign({}, advancedSettings, advancedData); 4590 } 4591 } catch (e) { 4592 4593 } 4594 4595 4596 const config = { 4597 apiBaseUrl: '/apps/appfleece-globe', 4598 assetBaseUrl: 'https://cdn.shopify.com/extensions/01a11381-8d3d-796b-9954-b870dd9d820a/globe-pickup-points-451/assets/', 4599 blockId: blockId, 4600 placementTargets: placement.targets, 4601 // Text settings from metafield (or defaults) 4602 headingText: texts.headingText, 4603 homeDeliveryText: texts.homeDeliveryText, 4604 homeDeliverySubtext: texts.homeDeliverySubtext, 4605 pickupPointsText: texts.pickupPointsText, 4606 pickupPointsSubtext: texts.pickupPointsSubtext, 4607 changeButtonText: texts.changeButtonText, 4608 subscriptionDisabledText: texts.subscriptionDisabledText || "Some methods are not available because your cart contains a subscription.", 4609 // Advanced behaviour settings 4610 subscriptionBehavior: advancedSettings.subscriptionBehavior || 'default', 4611 // B2B / wholesale gate, resolved server-side in Liquid above (GLO-455). 4612 hideForCustomer: false, 4613 localizationCountry: ('cz' || '').toUpperCase(), 4614 // Style settings from metafield (no layout here - it's per-target now) 4615 cardBgColor: styles.cardBgColor, 4616 cardBorderColor: styles.cardBorderColor, 4617 selectedBorderColor: styles.selectedBorderColor, 4618 headingColor: styles.headingColor, 4619 cardTitleColor: styles.cardTitleColor || styles.headingColor, 4620 textColor: styles.textColor, 4621 iconColor: styles.iconColor, 4622 buttonBgColor: styles.buttonBgColor, 4623 buttonTextColor: styles.buttonTextColor, 4624 colors: { 4625 primary: styles.selectedBorderColor, 4626 secondary: styles.cardBorderColor, 4627 }, 4628 }; 4629 4630 // Load checkout prefill settings into window so the separate prefill IIFE (out
4630side this 4631 // outer IIFE) can access it â const/let/var are all scoped to this function boundary. 4632 window.checkoutPrefill = {"enabled":true,"customCheckoutSelector":""}; 4633 window.__globeCheckoutReplaceDelay = 0; 4634 window.__globeCart.log('[Globe Prefill] Loaded checkoutPrefill:', JSON.stringify(window.checkoutPrefill)); 4635 4636 // Config for the shipping-rates asset (GLO-478). It is a deferred script, so 4637 // this must be set while the block's inline script still runs. 4638 // Config for the checkout-gate asset. Read synchronously by the prefill 4639 // module below, which decides whether to own the checkout button before the 4640 // deferred asset has had a chance to load. 4641 window.globeCheckoutGateConfig = { 4642 enabled: false, 4643 message: texts.selectDeliveryText || 'Select a delivery option before continuing to checkout.', 4644 }; 4645 4646 window.globeShippingRatesConfig = { 4647 enabled: false, 4648 apiBaseUrl: config.apiBaseUrl, 4649 country: 'cz', 4650 // Only reaches the page for a signed-in customer with a saved address; it 4651 // turns the estimate into that customer's real rate. Their own postal 4652 // code, never anyone else's. 4653 customerZip: "", 4654 // Same address, for countries split into zones by state (GLO-576). 4655 customerProvince: "", 4656 customerCountry: "", 4657 }; 4658 4659 // Set global configuration for the widget 4660 window.globeCartPickupSelectorConfig = { 4661 apiBaseUrl: config.apiBaseUrl, 4662 assetBaseUrl: config.assetBaseUrl, 4663 localizationCountry: 'cz' || null, 4664 locale: 'cs', 4665 marketCountries: 'cz,'.split(',').filter(Boolean), 4666 colors: { 4667 primary: config.selectedBorderColor, 4668 secondary: config.cardBorderColor, 4669 }, 4670 blockId: blockId, 4671 // Internal flag, no merchant-facing setting: "shadow" renders the map modal 4672 // inside a shadow root so host-page MutationObservers (cart drawers, currency 4673 // converters, translators) stop re-scanning the document on every Leaflet 4674 // marker change. Support flips it per shop on the advanced-settings metafield. 4675 styleIsolation: advancedSettings.styleIsolation || 'off', 4676 }; 4677 4678 // ââ Live placement detection (admin "Detect placement in my store") ââââââ 4679 // The cart-widget settings button opens the storefront with 4680 // ?globe_detect=<one-time token>. Only then â or while the token survives 4681 // in sessionStorage so the merchant can navigate to a page with a cart 4682 // drawer â do we load the detector asset. Normal visitors never pay for it. 4683 (function () { 4684 try { 4685 var match = location.search.match(/[?&]globe_detect=([A-Za-z0-9_-]{6,64})/); 4686 var token = match && match[1]; 4687 if (token) { 4688 sessionStorage.setItem('globeDetectToken', token); 4689 sessionStorage.setItem('globeDetectTs', String(Date.now())); 4690 } else { 4691 token = sessionStorage.getItem('globeDetectToken'); 4692 var ts = Number(sessionStorage.getItem('globeDetectTs') || 0); 4693 if (!token || !ts || Date.now() - ts > 30 * 60 * 1000) return; 4694 } 4695 window.__globeDetect = { 4696 token: token, 4697 apiBaseUrl: config.apiBaseUrl, 4698 strings: { 4699 title: "Globe â detekce umÃstÄnÃ", 4700 scanning: "Hledám na stránce vhodná mÃsta pro widgetâ¦", 4701 found: "Možná mÃsta: {count} â kliknutÃm sem widget umÃstÃte.", 4702 drawerHint: "PoužÃváte vysouvacà koÅ¡Ãk? OtevÅete ho, aÅ¥ se proskenuje také.", 4703 pick: "UmÃstit widget sem", 4704 picked: "Vybráno", 4705 pickedStatus: "Vybráno: {count} â vraÅ¥te se do aplikace Globe a uložte.", 4706 previewBadge: "Globe â náhled" 4707 }, 4708 // The mock block the detector drops into a picked spot uses the 4709 // shop's real widget texts and colors, so what the merchant sees 4710 // during detection is what the widget will actually look like. 4711 preview: { 4712 heading: config.headingText, 4713 home: config.homeDeliveryText, 4714 homeSub: config.homeDeliverySubtext, 4715 pickup: config.pickupPointsText, 4716 pickupSub: config.pickupPointsSubtext, 4717 colors: { 4718 cardBg: config.cardBgColor, 4719 cardBorder: config.cardBorderColor, 4720 selectedBorder: config.selectedBorderColor, 4721 heading: config.headingColor, 4722 cardTitle: config.cardTitleColor, 4723 text: config.textColor 4724 } 4725 } 4726 }; 4727 var detectScript = document.createElement('script'); 4728 detectScript.src = "https:\/\/cdn.shopify.com\/extensions\/01a11381-8d3d-796b-9954-b870dd9d820a\/globe-pickup-points-451\/assets\/globe-selector-detect.js"; 4729 detectScript.defer = true; 4730 document.head.appendChild(detectScript); 4731 } catch (e) { /* sessionStorage unavailable â detection simply won't run */ } 4732 })(); 4733 4734 // Cart delivery-state cache 4735 // 4736 // When the browser tab regains focus, many themes (Dawn-style) re-render the 4737 // cart section, which removes our injected container. We then re-inject â but 4738 // the fresh HTML always starts in the "default" state and only swaps to the 4739 // selected pickup point AFTER the async /cart.js fetch resolves. That async 4740 // gap is the visible flash the merchant sees on every tab refocus. 4741 // 4742 // To eliminate it we remember the last known delivery state (sync, in 4743 // sessionStorage + a module var) and apply it synchronously during 4744 // re-injection â in the same frame, before the browser paints â so the 4745 // default state is never shown. 4746 const CART_STATE_CACHE_KEY = 'globeCartDeliveryState';
4747 let cachedCartState = (function () { 4748 try { return JSON.parse(sessionStorage.getItem(CART_STATE_CACHE_KEY)) || null; } 4749 catch (e) { return null; } 4750 })(); 4751 function setCachedCartState(state) { 4752 cachedCartState = state; 4753 try { sessionStorage.setItem(CART_STATE_CACHE_KEY, JSON.stringify(state)); } 4754 catch (e) { /* sessionStorage unavailable (private mode) â module var still works */ } 4755 } 4756 4757 // Delivery-method card disabling 4758 // 4759 // A card (home / pickup) can be disabled by a built-in rule (the 4760 // "Subscription orders" behaviour configured in the Globe app) or by a custom 4761 // rule registered from the theme via window.GlobeCartWidget.addDisableRule(fn). 4762 // 4763 // A disabled card is dimmed, cannot be selected, and reveals a localized 4764 // message on hover (desktop) or tap (mobile). If the disabled card was the 4765 // currently-selected method, the selection is cleared (nothing chosen); 4766 // otherwise the existing selection is left untouched. 4767 window.GlobeCartWidget = window.GlobeCartWidget || {}; 4768 window.GlobeCartWidget._rules = window.GlobeCartWidget._rules || []; 4769 4770 let globeLastKnownCart = null; 4771 let globeClearingSelection = false; 4772 4773 // Returns a map of { method: message } describing which cards must be disabled. 4774 function computeDisabledMethods(cart) { 4775 const disabled = {}; 4776 4777 // Built-in rule: "Subscription orders" behaviour. 4778 const items = (cart && Array.isArray(cart.items)) ? cart.items : []; 4779 const hasSubscription = items.some(function (item) { 4780 return item && (item.selling_plan_allocation || item.selling_plan); 4781 }); 4782 if (hasSubscription) { 4783 if (config.subscriptionBehavior === 'disableHome') { 4784 disabled.home = config.subscriptionDisabledText; 4785 } else if (config.subscriptionBehavior === 'disablePickup') { 4786 disabled.pickup = config.subscriptionDisabledText; 4787 } 4788 } 4789 4790 // Custom rules (e.g. the country-based home-delivery block added in theme.liquid). 4791 // Each rule receives { cart, country } and returns null, a { method, message } 4792 // object, or an array of them. 4793 const ctx = { cart: cart, country: config.localizationCountry || '' }; 4794 (window.GlobeCartWidget._rules || []).forEach(function (fn) { 4795 let result; 4796 try { result = fn(ctx); } catch (e) { return; } 4797 const rules = Array.isArray(result) ? result : (result ? [result] : []);
4798 rules.forEach(function (rule) { 4799 if (rule && rule.method && disabled[rule.method] === undefined) { 4800 disabled[rule.method] = rule.message || ''; 4801 } 4802 }); 4803 }); 4804 4805 return disabled; 4806 } 4807 4808 // Clears the saved delivery selection from the cart ("nothing chosen"). 4809 function clearCartSelection(method) { 4810 if (globeClearingSelection) return; 4811 globeClearingSelection = true; 4812 const attributes = { globe_DeliveryMethod: '' }; 4813 if (method === 'pickup') { 4814 attributes.globe_PickupPointId = ''; 4815 attributes.globe_PickupPointName = ''; 4816 attributes.globe_PickupPointAddress = ''; 4817 attributes.globe_PickupPointData = ''; 4818 } 4819 fetch('/cart/update.js', { 4820 method: 'POST', 4821 headers: { 'Content-Type': 'application/json' }, 4822 body: JSON.stringify({ attributes }) 4823 }) 4824 .then(function (r) { return r.json(); }) 4825 .then(function (cart) { 4826 globeLastKnownCart = cart; 4827 window.__globeCart.seedCart(cart); 4828 setCachedCartState({ deliveryMethod: null, pickupPointName: null, pickupPointAddress: null }); 4829 }) 4830 .catch(function () {}) 4831 .then(function () { globeClearingSelection = false; }); 4832 } 4833 4834 function setCardDisabled(card) { 4835 card.dataset.globeDisabled = 'true'; 4836 // pointer-events:none removes the theme's :hover state (e.g. green border) 4837 // and blocks any click â a universal "disabled" treatment for light & dark. 4838 card.style.pointerEvents = 'none'; 4839 card.style.opacity = '0.5'; 4840 card.style.cursor = 'not-allowed'; 4841 card.style.boxShadow = 'none'; 4842 4843 // Deselect ONLY if this disabled card is the one currently selected. 4844 const radio = card.querySelector('input[type="radio"]'); 4845 if (radio && radio.checked) { 4846 radio.checked = false; 4847 clearCartSelection(card.dataset.deliveryMethod); 4848 } 4849 } 4850 4851 function setCardEnabled(card) { 4852 if (card.dataset.globeDisabled !== 'true') return; 4853 card.dataset.globeDisabled = 'false'; 4854 card.style.pointerEvents = ''; 4855 card.style.opacity = ''; 4856 card.style.cursor = 'pointer'; 4857 const radio = card.querySelector('input[type="radio"]'); 4858 card.style.borderColor = (radio && radio.checked) ? config.selectedBorderColor : config.cardBorderColor; 4859 } 4860 4861 // Renders a single message under each delivery-selector block describing why 4862 // some methods are unavailable. Hidden when nothing is disabled. 4863 function renderBlockMessages(disabledMap) { 4864 const messages = []; 4865 Object.keys(disabledMap).forEach(function (method) { 4866 const m = disabledMap[method]; 4867 if (m && messages.indexOf(m) === -1) messages.push(m); 4868 }); 4869 const text = messages.join(' '); 4870 4871 document.querySelectorAll('.globe-delivery-method-selector').forEach(function (block) { 4872 let note = block.querySelector('.globe-delivery-disabled-note'); 4873 if (!text) { 4874 if (note) note.style.display = 'none'; 4875 return; 4876 } 4877 if (!note) { 4878 note = document.createElement('div'); 4879 note.className = 'globe-delivery-disabled-note'; 4880 note.style.cssText = [ 4881 'margin-top:10px', 'font-size:13px', 'line-height:1.4', 4882 'color:' + (config.textColor || '#6b7280'), 'text-align:left' 4883 ].join(';'); 4884 block.appendChild(note); 4885 } 4886 note.textContent = text; 4887 note.style.display = 'block'; 4888 }); 4889 } 4890 4891 // Applies / clears the disabled state across every rendered card. 4892 function applyDisabledStates(cart) { 4893 if (cart) globeLastKnownCart = cart; 4894 const useCart = cart || globeLastKnownCart; 4895 if (!useCart) { 4896 window.__globeCart.fetchCart() 4897 .then(function (c) { applyDisabledStates(c); }) 4898 .catch(function () {}); 4899 return; 4900 } 4901 const disabledMap = computeDisabledMethods(useCart); 4902 const cards = document.querySelectorAll('.globe-delivery-option'); 4903 cards.forEach(function (card) { 4904 const method = card.dataset.deliveryMethod; 4905 if (disabledMap[method] !== undefined) { 4906 setCardDisabled(card); 4907 } else { 4908 setCardEnabled(card); 4909 } 4910 }); 4911 renderBlockMessages(disabledMap); 4912 } 4913 4914 // Public API for theme-level custom rules. 4915 window.GlobeCartWidget.addDisableRule = function (fn) { 4916 if (typeof fn !== 'function') return; 4917 window.GlobeCartWidget._rules.push(fn); 4918 applyDisabledStates(); 4919 }; 4920 window.GlobeCartWidget.refresh = function () { applyDisabledStates(); }; 4921 // Flush any rules queued before this script loaded. 4922 if (Array.isArray(window.GlobeCartWidget._deferred)) { 4923 window.GlobeCartWidget._deferred.forEach(function (fn) { 4924 try { window.GlobeCartWidget.addDisableRule(fn); } catch (e) {} 4925 }); 4926 window.GlobeCartWidget._deferred = []; 4927 } 4928 4929 // Render the delivery method selector 4930 function renderDeliverySelector() { 4931 const targets = config.placementTargets || []; 4932 4933 let renderedCount = 0; 4934
4935 targets.forEach((targetConfig, index) => { 4936 const selector = targetConfig.selector; 4937 const position = targetConfig.position || 'top'; 4938 const targetElement = document.querySelector(selector); 4939 4940 if (!targetElement) { 4941 4942 if (index === targets.length - 1 && renderedCount === 0) { 4943 // Only show available elements if no targets were found at all 4944 4945 } 4946 return; 4947 } 4948 4949 // Create unique container ID for this render location 4950 const containerIdSuffix = targets.length > 1 ? `-${index}` : ''; 4951 const layout = targetConfig.layout || 'horizontal'; 4952 const customCss = targetConfig.customCss || ''; 4953 const customJs = targetConfig.customJs || ''; 4954 const spacing = targetConfig.spacing || ''; 4955 const rendered = renderInTarget(targetElement, selector, position, layout, customCss, containerIdSuffix, customJs, spacing); 4956 if (rendered) { 4957 renderedCount++; 4958 } 4959 }); 4960 4961 if (renderedCount > 0) { 4962 4963 } else { 4964 4965 } 4966 4967 return renderedCount > 0; 4968 } 4969 4970 // Containers we have built, kept so a theme that rips one out of the DOM can 4971 // have the same node handed back instead of a fresh, empty one. 4972 const detachedContainers = new Map(); 4973 4974 // Render the selector in a specific target element 4975 function renderInTarget(targetElement, selector, insertPosition, layout, customCss, containerIdSuffix = '', customJs = '', spacing = '') { 4976 4977 // Check if target is inside a dialog 4978 const parentDialog = targetElement.closest('dialog'); 4979 if (parentDialog) { 4980 4981 if (!parentDialog.open) { 4982 4983 // Don't create observer here - it's handled globally below 4984 return false; // Wait for dialog to open 4985 } else { 4986 4987 } 4988 } 4989 4990 // Check if already injected 4991 const containerId = `globe-delivery-selector-container-${blockId}${containerIdSuffix}`; 4992 const existingContainer = targetElement.querySelector(`#${containerId}`); 4993 if (existingContainer) { 4994 4995 return true; // Already rendered 4996 } 4997 4998 // The theme can take our container away without us doing anything wrong: 4999 // liquid-ajax-cart replaces the whole cart section on a cart change and on 5000 // returning to a background tab, and everything inside it goes with it. 5001 // Rebuilding from scratch means an empty gap plus a refetch, which reads as 5002 // a flicker. The node we already built is still complete, so put it back. 5003 const detached = detachedContainers.get(containerId); 5004 if (detached && detached.childElementCount > 0 && !detached.isConnected) { 5005 if (insertPosition === 'top') { 5006 targetElement.insertBefore(detached, targetElement.firstChild); 5007 } else { 5008 targetElement.appendChild(detached); 5009 } 5010 // The section was re-rendered because the cart changed, and the node we 5011 // just put back carries prices figured for the cart as it was. Themes 5012 // that re-render this way â Dawn's cart.js among them â publish no DOM 5013 // cart event, so onCartEvent never fires and nothing else corrects them: 5014 // the card would keep promising free delivery after the cart dropped 5015 // back under the free-shipping threshold. 5016 renderCardPrices(); 5017 window.__globeCart.fetchCart().then(renderSelectedPointPrice).catch(function () {}); 5018 return true; 5019 } 5020 5021 // Create our container div 5022 const containerDiv = document.createElement('div'); 5023 containerDiv.id = containerId; 5024 containerDiv.className = 'globe-delivery-selector-container'; 5025 containerDiv.style.cssText = 'width: 100%; display: block;'; // Ensure visibility 5026 5027 // Auto-spacing set by placement detection (target.spacing): separate the 5028 // widget from tightly-packed container content. A merchant margin in 5029 // customCss always wins â skip the inline style so it can't override it. 5030 if ((spacing === 'top' || spacing === 'bottom') && !/margin/i.test(customCss)) { 5031 containerDiv.style[spacing === 'top' ? 'marginTop' : 'marginBottom'] = '16px'; 5032 } 5033 5034 // Inject per-target custom CSS if provided 5035 if (customCss && customCss.trim() !== '') { 5036 const styleId = `globe-css-${containerId}`; 5037 let styleTag = document.getElementById(styleId); 5038 if (!styleTag) { 5039 styleTag = document.createElement('style'); 5040 styleTag.id = styleId; 5041 // Wrap CSS rules with the container ID selector 5042 const wrappedCss = customCss.includes('{') 5043 ? customCss // Already has selectors, use as-is 5044 : `#${containerId} .globe-delivery-selector-container { ${customCss} }`; // Plain properties 5045 styleTag.textContent = `/* Custom CSS for ${selector} */\n${wrappedCss}`; 5046 document.head.appendChild(styleTag); 5047 5048 } 5049 } 5050 5051 detachedContainers.set(containerId, containerDiv); 5052 5053 // Inject at top or bottom of target element 5054 if (insertPosition === 'top') { 5055 targetElement.insertBefore(containerDiv, targetElement.firstChild); 5056 5057 } else { 5058 targetElement.appendChild(containerDiv); 5059 5060 } 5061
5062 // Render the delivery selector into our container 5063 const selectorId = `${blockId}${containerIdSuffix}`; 5064 if (pricesEnabled) ensurePriceSkeletonStyle(); 5065 containerDiv.innerHTML = ` 5066 <div id="globe-delivery-method-selector-${selectorId}" class="globe-delivery-method-selector"> 5067 ${config.headingText ? ` 5068 <div style="font-weight: 700; font-size: 16px; color: ${config.headingColor}; margin-bottom: 6px;"> 5069 ${config.headingText} 5070 </div> 5071 ` : ''} 5072 5073 ${config.subheadingText ? ` 5074 <div style="display: none; font-size: 15px; color: ${config.textColor}; margin-bottom: 10px; opacity: 0.8;"> 5075 ${config.subheadingText} 5076 </div> 5077 ` : ''} 5078 5079 <div style="display: flex; flex-direction: ${layout === 'vertical' ? 'column' : 'row'}; gap: 16px; margin-bottom: 0px;"> 5080 <!-- Home Delivery Card --> 5081 <label 5082 class="globe-delivery-option" 5083 data-delivery-method="home" 5084 style=" 5085 flex: ${layout === 'vertical' ? 'none' : '1'}; 5086 width: ${layout === 'vertical' ? '100%' : 'auto'}; 5087 max-width: ${layout === 'vertical' ? 'none' : '340px'}; 5088 min-height: 80px; 5089 display: flex; 5090 flex-direction: column; 5091 align-items: center; 5092 justify-content: center; 5093 padding: 12px 16px; 5094 border: 2px solid ${config.cardBorderColor}; 5095 border-radius: 12px; 5096 cursor: pointer; 5097 transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1); 5098 background: ${config.cardBgColor}; 5099 position: relative; 5100 " 5101 > 5102 <input 5103 type="radio" 5104 name="globe-delivery-method-${selectorId}" 5105 value="home" 5106 id="globe-delivery-home-${selectorId}" 5107 style="position: absolute; opacity: 0; pointer-events: none;" 5108 /> 5109 5110 <div style="display: flex; flex-direction: column; align-items: center; text-align: center;"> 5111 <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="${config.iconColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-bottom: 10px;"> 5112 <path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path> 5113 <polyline points="9 22 9 12 15 12 15 22"></polyline> 5114 </svg> 5115 <div style="font-weight: 400; font-size: 15px; color: ${config.cardTitleColor};"> 5116 ${config.homeDeliveryText} 5117 </div> 5118 ${config.homeDeliverySubtext ? ` 5119 <div style="font-size: 13px; color: ${config.textColor}; margin-top: 4px; opacity: 0.8;"> 5120 ${config.homeDeliverySubtext} 5121 </div> 5122 ` : ''} 5123 ${priceSlotHtml('globe-price-home-' + selectorId, config.cardTitleColor)} 5124 </div> 5125 </label> 5126 5127 <!-- Pickup Points Card --> 5128 <div 5129 class="globe-delivery-option" 5130 data-delivery-method="pickup" 5131 id="globe-pickup-card-${selectorId}" 5132 style=" 5133 flex: ${layout === 'vertical' ? 'none' : '1'}; 5134 width: ${layout === 'vertical' ? '100%' : 'auto'}; 5135 max-width: ${layout === 'vertical' ? 'none' : '340px'}; 5136 min-height: 80px; 5137 display: flex; 5138 flex-direction: column; 5139 align-items: center; 5140 justify-content: center; 5141 padding: 12px 16px; 5142 border: 2px solid ${config.cardBorderColor}; 5143 border-radius: 12px; 5144 cursor: pointer; 5145 transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1); 5146 background: ${config.cardBgColor}; 5147 position: relative; 5148 " 5149 > 5150 <input 5151 type="radio" 5152 name="globe-delivery-method-${selectorId}" 5153 value="pickup" 5154 id="globe-delivery-pickup-${selectorId}" 5155 style="position: absolute; opacity: 0; pointer-events: none;" 5156 /> 5157 5158 <div style="width: 100%;" id="globe-pickup-content-${selectorId}"> 5159 <!-- Default content (no point selected) --> 5160 <div id="globe-pickup-default-${selectorId}" style="display: flex; flex-direction: column; align-items: center; text-align: center;"> 5161 <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="${config.iconColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-bottom: 10px;"> 5162 <path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"></path> 5163 <circle cx="12" cy="10" r="3"></circle> 5164 </svg> 5165 <div style="font-weight: 400; font-size: 15px; color: ${config.cardTitleColor};"> 5166 ${config.pickupPointsText} 5167 </div> 5168 ${config.pickupPointsSubtext ? ` 5169 <div style="font-size: 13px; color: ${config.textColor}; margin-top: 4px; opacity: 0.8;"> 5170 ${config.pickupPointsSubtext} 5171 </div> 5172 ` : ''} 5173 ${priceSlotHtml('globe-price-pickup-' + selectorId, config.cardTitleColor)} 5174 </div> 5175 5176 <!-- Selected point content --> 5177 <div id="globe-pickup-selected-${selectorId}" style="display: none; flex-direction: column; align-items: center; text-align: center;"> 5178 <svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="${config.iconColor}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="margin-bottom: 10px;"> 5179 <path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"></path> 5180 <circle cx="12" cy="10" r="3"></circle> 5181 </svg> 5182 <div style="margin-bottom: 10px;"> 5183 <div style="font-weight: 400; font-size: 15px; color: ${config.cardTitleColor}; margin-bottom: 4px;">
5184 <span id="globe-point-name-${selectorId}">-</span> 5185 </div> 5186 <div style="font-size: 13px; color: ${config.textColor}; line-height: 1.5;"> 5187 <span id="globe-point-address-${selectorId}">-</span> 5188 </div> 5189 ${priceSlotHtml('globe-price-pickup-sel-' + selectorId, config.cardTitleColor)} 5190 </div> 5191 <button 5192 type="button" 5193 id="globe-change-point-btn-${selectorId}" 5194 onclick="event.stopPropagation(); window.globeCartPickupSelector && window.globeCartPickupSelector.open();" 5195 style=" 5196 padding: 6px 14px; 5197 background: ${config.buttonBgColor}; 5198 border: 1px solid ${config.buttonBgColor}; 5199 border-radius: 6px; 5200 color: ${config.buttonTextColor}; 5201 font-size: 12px; 5202 font-weight: 400; 5203 cursor: pointer; 5204 transition: opacity 0.2s ease; 5205 " 5206 onmouseover="this.style.opacity='0.85';" 5207 onmouseout="this.style.opacity='1';" 5208 > 5209 ${config.changeButtonText} 5210 </button> 5211 </div> 5212 </div> 5213 </div> 5214 </div> 5215 </div> 5216 `; 5217 5218 // Verify it's still in DOM after setting innerHTML 5219 if (!document.contains(containerDiv)) { 5220 console.error('[Globe Delivery Selector] â Container no longer in DOM after setting HTML!'); 5221 return false; 5222 } 5223 5224 // Initialize this specific render 5225 initializeSelector(selectorId); 5226 renderCardPrices(); 5227 5228 // Run the merchant's per-location custom JavaScript exactly once. It runs 5229 // after the widget is in the DOM and its listeners are wired, so merchant 5230 // code can safely register handlers for the widget's custom events 5231 // (globe:delivery-card-clicked, globe:pickup-point-selected) before any 5232 // user interaction can fire them. Guarded by containerId so a re-injected 5233 // widget (drawer reopen / tab refocus) never stacks duplicate listeners. 5234 if (customJs && customJs.trim() !== '') { 5235 window.__globeExecutedCustomJs = window.__globeExecutedCustomJs || {}; 5236 const jsKey = `globe-js-${containerId}`; 5237 if (!window.__globeExecutedCustomJs[jsKey]) { 5238 window.__globeExecutedCustomJs[jsKey] = true; 5239 try { 5240 // eslint-disable-next-line no-new-func 5241 new Function(customJs).call(window); 5242 } catch (jsErr) { 5243 console.error('[Globe Delivery Selector] Error executing custom JS:', jsErr); 5244 } 5245 } 5246 } 5247 5248 return true; // Successfully rendered 5249 } 5250 5251 // Initialize the selector behavior for a specific render 5252 function initializeSelector(selectorId = blockId) { 5253 const homeRadio = document.getElementById(`globe-delivery-home-${selectorId}`); 5254 const pickupRadio = document.getElementById(`globe-delivery-pickup-${selectorId}`); 5255 5256 if (!homeRadio || !pickupRadio) return; 5257 5258 // Flag to prevent loadCartState from overriding manual changes 5259 let isManualChange = false; 5260 5261 // Style update function 5262 function updateStyles(selectedMethod) { 5263 const options = document.querySelectorAll('.globe-delivery-option'); 5264 options.forEach(option => { 5265 const method = option.dataset.deliveryMethod; 5266 if (method === selectedMethod) { 5267 option.style.borderColor = config.selectedBorderColor; 5268 option.style.boxShadow = '0 2px 8px rgba(0, 0, 0, 0.08)'; 5269 } else { 5270 option.style.borderColor = config.cardBorderColor; 5271 option.style.boxShadow = 'none'; 5272 } 5273 }); 5274 } 5275 5276 // Update delivery method in cart. Returns a promise resolving with the 5277 // updated cart JSON so callers can update UI without refetching /cart.js.
5278 function updateDeliveryMethod(method) { 5279 const attributes = { globe_DeliveryMethod: method }; 5280 5281 if (method === 'home') { 5282 // Clear pickup point data when switching to home delivery 5283 attributes.globe_PickupPointId = ''; 5284 attributes.globe_PickupPointName = ''; 5285 attributes.globe_PickupPointAddress = ''; 5286 attributes.globe_PickupPointData = ''; 5287 5288 } 5289 5290 return fetch('/cart/update.js', { 5291 method: 'POST', 5292 headers: { 'Content-Type': 'application/json' }, 5293 body: JSON.stringify({ attributes }) 5294 }) 5295 .then(r => { 5296 if (!r.ok) { 5297 throw new Error(`Cart update failed with status: ${r.status}`); 5298 } 5299 return r.json(); 5300 }) 5301 .then(cart => { 5302 // The response IS the fresh cart â seed the shared cache so every 5303 // listener reacting to the events below reuses it instead of 5304 // firing its own GET /cart.js. 5305 window.__globeCart.seedCart(cart); 5306 5307 // Dispatch multiple cart events that different Shopify themes listen for 5308 const events = ['cart:updated', 'cart:refresh', 'cart:change', 'cart.change']; 5309 events.forEach(eventName => { 5310 // Dispatch on window 5311 if (typeof window.dispatchEvent !== 'undefined') { 5312 window.dispatchEvent(new CustomEvent(eventName, { detail: { cart } })); 5313 } 5314 // Also dispatch on document.documentElement for themes that listen there 5315 if (typeof document.documentElement.dispatchEvent !== 'undefined') { 5316 document.documentElement.dispatchEvent(new CustomEvent(eventName, { detail: { cart } })); 5317 } 5318 }); 5319 5320 // Trigger Shopify theme sections refresh if available 5321 if (typeof Shopify !== 'undefined' && Shopify.theme && typeof Shopify.theme.cart !== 'undefined') { 5322 if (typeof Shopify.theme.cart.refresh === 'function') { 5323 Shopify.theme.cart.refresh(); 5324 } 5325 } 5326 5327 return cart; 5328 }) 5329 .catch(err => { 5330 console.error('[Globe Delivery Selector] â Error updating cart:', err); 5331 return null; 5332 }); 5333 } 5334 5335 // Show/hide pickup point UI 5336 function updatePickupPointUI(cart) { 5337 const pickupPointName = cart.attributes?.globe_PickupPointName; 5338 const pickupPointAddress = cart.attributes?.globe_PickupPointAddress; 5339 5340 const defaultContent = document.getElementById(`globe-pickup-default-${selectorId}`); 5341 const selectedContent = document.getElementById(`globe-pickup-selected-${selectorId}`); 5342 const nameSpan = document.getElementById(`globe-point-name-${selectorId}`); 5343 const addressSpan = document.getElementById(`globe-point-address-${selectorId}`); 5344 5345 if (pickupPointName && defaultContent && selectedContent) { 5346 // Show selected point 5347 defaultContent.style.display = 'none'; 5348 selectedContent.style.display = 'flex'; // Changed to flex for proper centering 5349 if (nameSpan) nameSpan.textContent = pickupPointName; 5350 if (addressSpan) addressSpan.textContent = pickupPointAddress || ''; 5351 renderSelectedPointPrice(cart); 5352 } else if (defaultContent && selectedContent) { 5353 // Show default content 5354 defaultContent.style.display = 'flex'; 5355 selectedContent.style.display = 'none'; 5356 } 5357 } 5358 5359 // Load current cart state. Accepts an optional cart object (or a cart 5360 // event whose detail carries one) so callers that already have fresh 5361 // cart JSON skip the network round-trip entirely. 5362 function loadCartState(arg) { 5363 // Self-cleanup: when the theme re-renders the cart section our radios 5364 // are replaced and this instance's listener would otherwise keep 5365 // firing (and fetching) forever, stacking up with each re-injection. 5366 if (!homeRadio.isConnected) { 5367 window.removeEventListener('cart:updated', loadCartState); 5368 return; 5369 } 5370 5371 // Don't override manual changes immediately 5372 if (isManualChange) { 5373 5374 return; 5375 } 5376 5377 const directCart = (arg && Array.isArray(arg.items)) ? arg 5378 : (arg && arg.detail && arg.detail.cart) || null; 5379 5380 (directCart ? Promise.resolve(directCart) : window.__globeCart.fetchCart()) 5381 .then(cart => { 5382 const deliveryMethod = cart.attributes?.globe_DeliveryMethod; 5383 5384 // Pickup counts as chosen only once a point is. Clicking the card 5385 // saves the method at once, so closing the map without picking left 5386 // "pickup" behind with no point, and the card came back outlined as 5387 // chosen with nothing named under it. The checkout gate already 5388 // reads it this way â the card is catching up, not a new rule. 5389 const pointSaved = !!cart.attributes?.globe_PickupPointId; 5390 if (deliveryMethod === 'pickup' && pointSaved) { 5391 pickupRadio.checked = true; 5392 updateStyles('pickup'); 5393 } else if (deliveryMethod === 'home') { 5394 homeRadio.checked = true; 5395 updateStyles('home'); 5396 } 5397 // If no delivery method is set, don't select anything (no default) 5398 5399 updatePickupPointUI(cart); 5400 5401 // Re-evaluate disabled cards against the authoritative cart state 5402 // (runs after radios are restored so an already-selected-but-now-disabled 5403 // method gets deselected correctly). 5404 applyDisabledStates(cart); 5405 5406 // Persist for synchronous re-injection (prevents flash on tab refocus) 5407 setCachedCartState({ 5408 deliveryMethod: deliveryMethod || null, 5409 pickupPointName: cart.attributes?.globe_PickupPointName || null, 5410 pickupPointAddress: cart.attributes?.globe_PickupPointAddress || null, 5411 }); 5412 }) 5413 .catch(err => console.error('[Globe Delivery Selector] Error loading cart:', err)); 5414 } 5415 5416 // Event listeners 5417 homeRadio.addEventListener('change', function(e) { 5418 // Stop the native change event from bubbling into the theme's cart form 5419 // handler. Some themes delegate a quantity-change listener over the cart 5420 // section and would misread this radio's value ("home") as a line-item
5421 // quantity, firing an invalid POST /cart/change (Shopify 400 + visible 5422 // theme error). We manage delivery method via /cart/update.js ourselves. 5423 e.stopPropagation(); 5424 if (this.checked) { 5425 // Set flag to prevent loadCartState from overriding this change 5426 isManualChange = true; 5427 5428 updateStyles('home'); 5429 5430 // Failsafe: Reset flag after 2 seconds no matter what 5431 setTimeout(() => { 5432 if (isManualChange) { 5433 5434 isManualChange = false; 5435 } 5436 }, 2000); 5437 5438 // updateDeliveryMethod() resolves with the updated cart from the 5439 // POST response and has already dispatched the cart events for 5440 // themes â no extra /cart.js fetch or re-dispatch needed here 5441 // (the old 300ms fetch + second cart:updated doubled the whole 5442 // event cascade). 5443 updateDeliveryMethod('home').then(cart => { 5444 isManualChange = false; 5445 // On failure (cart === null) fall back to a fresh fetch so the 5446 // radio re-syncs with the server state instead of lying. 5447 if (cart) loadCartState(cart); 5448 else loadCartState(); 5449 }); 5450 } 5451 }); 5452 5453 pickupRadio.addEventListener('change', function(e) { 5454 // See homeRadio handler: keep our change event from reaching the theme's 5455 // cart handler, which would treat the radio value as a line quantity. 5456 e.stopPropagation(); 5457 if (this.checked) { 5458 // Only update styles - don't save to cart 5459 // DeliveryMethod: 'pickup' is already saved when user selects a point in the widget 5460 updateStyles('pickup'); 5461 // Update UI based on current state 5462 window.__globeCart.fetchCart() 5463 .then(cart => updatePickupPointUI(cart)) 5464 .catch(err => console.error('[Globe Delivery Selector] Error:', err)); 5465 } 5466 }); 5467 5468 // Belt-and-suspenders: a few themes listen for `input` (not just `change`) 5469 // on cart inputs. Stop those from escaping our widget as well, so neither 5470 // event reaches the theme's cart/quantity handler. 5471 [homeRadio, pickupRadio].forEach(function(radio) { 5472 radio.addEventListener('input', function(e) { e.stopPropagation(); }); 5473 }); 5474 5475 // Make the entire pickup card clickable 5476 const pickupCard = document.getElementById(`globe-pickup-card-${selectorId}`); 5477 if (pickupCard) { 5478 pickupCard.addEventListener('click', function(e) { 5479 // Don't trigger if clicking the radio button itself or the change button 5480 if (e.target.id === `globe-delivery-pickup-${blockId}` || 5481 e.target.id === `globe-change-point-btn-${blockId}` || 5482 e.target.closest(`#globe-change-point-btn-${blockId}`)) { 5483 return; 5484 } 5485 5486 // Only open widget - don't select pickup until user actually picks a point 5487 // When a point is selected in the widget, it will set DeliveryMethod to "pickup" 5488 // and the cart:updated event will trigger loadCartState() to check the radio 5489 if (window.globeCartPickupSelector) { 5490 window.globeCartPickupSelector.open(); 5491 } 5492 }); 5493 } 5494 5495 // Disabled-state guard: block selection on a disabled card. 5496 const homeCard = homeRadio.closest('.globe-delivery-option'); 5497 [homeCard, pickupCard].filter(Boolean).forEach(function (card) { 5498 card.addEventListener('click', function (e) { 5499 if (card.dataset.globeDisabled === 'true') { 5500 e.preventDefault(); 5501 e.stopImmediatePropagation(); 5502 } 5503 }, true); 5504 }); 5505 5506 // Notify merchant custom JS when a delivery card is clicked. Runs in the 5507 // bubble phase, so the capture-phase disabled guard above already 5508 // short-circuits clicks on disabled cards (they never reach here). 5509 [homeCard, pickupCard].filter(Boolean).forEach(function (card) { 5510 card.addEventListener('click', function (e) { 5511 // The home card is a <label>, so clicking it fires twice: once on the 5512 // label and once on the associated (hidden) radio via the browser's 5513 // synthetic forwarded click. Ignore the forwarded input click so the 5514 // event dispatches exactly once per user click. The radios are 5515 // pointer-events:none, so a direct user click never targets them. 5516 if (e.target && e.target.tagName === 'INPUT') return; 5517 const detail = { 5518 method: card.dataset.deliveryMethod, // 'home' | 'pickup' 5519 blockId: blockId, 5520 selectorId: selectorId, 5521 target: card, 5522 }; 5523 window.dispatchEvent(new CustomEvent('globe:delivery-card-cl
5523icked', { detail: detail })); 5524 document.dispatchEvent(new CustomEvent('globe:delivery-card-clicked', { detail: detail })); 5525 }); 5526 }); 5527 5528 // Listen for cart updates (when point is selected) 5529 window.addEventListener('cart:updated', loadCartState); 5530 5531 // Apply the cached delivery state synchronously (same frame, before paint) 5532 // so a re-injected widget never flashes its default state before the async 5533 // loadCartState() below resolves. loadCartState() still runs to reconcile 5534 // against the source of truth (/cart.js). 5535 if (cachedCartState) { 5536 // Same rule as loadCartState below: a pickup card is only drawn as 5537 // chosen once there is a point to name under it. 5538 if (cachedCartState.deliveryMethod === 'pickup' && cachedCartState.pickupPointName) { 5539 pickupRadio.checked = true; 5540 updateStyles('pickup'); 5541 } else if (cachedCartState.deliveryMethod === 'home') { 5542 homeRadio.checked = true; 5543 updateStyles('home'); 5544 } 5545 updatePickupPointUI({ 5546 attributes: { 5547 globe_PickupPointName: cachedCartState.pickupPointName, 5548 globe_PickupPointAddress: cachedCartState.pickupPointAddress, 5549 }, 5550 }); 5551 } 5552 5553 // Initial load 5554 loadCartState(); 5555 } 5556 5557 // Fills the price slot on every rendered delivery card. Called after each 5558 // render and whenever the cart changes, since rates depend on the contents. 5559 // Slots stay hidden when prices are off or unresolvable, so nothing shifts. 5560 function renderCardPrices() { 5561 if (!window.__globeRates || !window.__globeRates.enabled) return; 5562 window.__globeRates.labelsForCards().then(function (labels) { 5563 [['home', labels.home], ['pickup', labels.pickup]].forEach(function (entry) { 5564 document 5565 .querySelectorAll( 5566 '[id^="globe-price-' + entry[0] + '-"]:not([id^="globe-price-pickup-sel-"])', 5567 ) 5568 .forEach(function (slot) { 5569 settlePriceSlot(slot, entry[1]); 5570 }); 5571 }); 5572 }); 5573 } 5574 5575 // Prices arrive a moment after the cards render, and revealing them then used 5576 // to grow each card and shove the page down. The slot is laid out from the 5577 // start with a skeleton of the same height, so the price fades into space 5578 // that was already reserved. 5579 const PRICE_SKELETON_STYLE_ID = 'globe-price-skeleton-style'; 5580 function ensurePriceSkeletonStyle() { 5581 if (document.getElementById(PRICE_SKELETON_STYLE_ID)) return; 5582 const tag = document.createElement('style'); 5583 tag.id = PRICE_SKELETON_STYLE_ID; 5584 tag.textContent = [ 5585 '.globe-price-skeleton{display:inline-block;width:64px;height:12px;border-radius:4px;', 5586 'vertical-align:middle;background:#e5e7eb;background-image:linear-gradient(90deg,', 5587 'rgba(255,255,255,0) 0%,rgba(255,255,255,.65) 50%,rgba(255,255,255,0) 100%);', 5588 'background-size:180px 100%;background-repeat:no-repeat;', 5589 'animation:globe-price-shimmer 1.2s ease-in-out infinite}', 5590 '@keyframes globe-price-shimmer{0%{background-position:-90px 0}', 5591 '100%{background-position:calc(100% + 90px) 0}}', 5592 // Respect a reduced-motion preference: the reserved space is what 5593 // matters, the shimmer is decoration. 5594 '@media (prefers-reduced-motion: reduce){.globe-price-skeleton{animation:none}}' 5595 ].join(''); 5596 document.head.appendChild(tag); 5597 } 5598 5599 // Read from the config the block sets inline, not from window.__globeRates: 5600 // that asset is deferred and would still be missing when the cards render, 5601 // which is exactly when the space has to be reserved. 5602 const pricesEnabled = !!( 5603 window.globeShippingRatesConfig && window.globeShippingRatesConfig.enabled 5604 ); 5605 5606 // Markup for a price slot, laid out at its final height from the first paint. 5607 function priceSlotHtml(id, color) { 5608 return '<div id="' + id + '" class="globe-delivery-price" style="display: ' 5609 + (pricesEnabled ? 'block' : 'none') 5610 + '; font-size: 13px; line-height: 18px; font-weight: 600; color: ' + color 5611 + '; margin-top: 4px;">' 5612 + (pricesEnabled ? '<span class="globe-price-skeleton"></span>' : '') 5613 + '</div>'; 5614 } 5615 5616 // Swaps a slot's skeleton for the resolved price, or collapses it when there 5617 // is nothing to show. 5618 function settlePriceSlot(slot, label) { 5619 slot.dataset.globeResolved = 'true'; 5620 slot.textContent = label || ''; 5621 slot.style.display = label ? 'block' : 'none'; 5622 } 5623 5624 // The point the selected-point price was last drawn for, so a transient blank 5625 // can be told apart from a genuine change of point. 5626 let lastPricedPointId = null; 5627 5628 // Prices the carrier instance the customer actually picked, rather than the 5629 // cheapest pickup rate in the store: the saved point carries the shipping 5630 // methods of its own instance, which is what tells PPL ParcelShop apart from 5631 // PPL Výdejnà box (GLO-478).
5632 function renderSelectedPointPrice(cart) { 5633 if (!window.__globeRates || !window.__globeRates.enabled) return; 5634 const slots = document.querySelectorAll('[id^="globe-price-pickup-sel-"]'); 5635 if (!slots.length) return; 5636 let methods = null; 5637 let instanceId = null; 5638 let pointId = null; 5639 try { 5640 const point = JSON.parse(cart.attributes.globe_PickupPointData); 5641 methods = point.shippingMethods; 5642 instanceId = point.providerShopId || null; 5643 pointId = point.id || null; 5644 } catch (e) { /* no saved point data â fall back to the pickup group price */ } 5645 const samePoint = !!pointId && pointId === lastPricedPointId; 5646 lastPricedPointId = pointId; 5647 // The synced price is per instance, so the id beats matching by method name. 5648 window.__globeRates.labelForPoint(instanceId, methods).then(function (label) { 5649 slots.forEach(function (slot) { 5650 // A pass that comes back empty for the point already on screen is a 5651 // hiccup, not free delivery, so the figure stays. A different point 5652 // never inherits it â that price says nothing about the new one. 5653 if (!label && samePoint && slot.textContent.trim()) return; 5654 settlePriceSlot(slot, label); 5655 }); 5656 }); 5657 } 5658 5659 // The rates asset is deferred, so the first render finds no __globeRates and 5660 // leaves the price slots empty. Fill them once it announces itself. 5661 document.addEventListener('globe:rates-ready', function () { 5662 renderCardPrices(); 5663 window.__globeCart.fetchCart().then(renderSelectedPointPrice).catch(function () {}); 5664 }, { once: true }); 5665 5666 // Track if already rendered to prevent duplicates 5667 let isRendered = false; 5668 let renderAttempts = 0; 5669 let lastTargetElement = null; 5670 5671 // Fetch shop config once and cache the promise so repeated tryRender() calls 5672 // (MutationObserver, cart events, etc.) don't fire redundant requests. 5673 let shopConfigPromise = null; 5674 function getShopConfig() { 5675 if (!shopConfigPromise) { 5676 shopConfigPromise = fetch(`${config.apiBaseUrl}/cart-config`) 5677 .then(r => r.json()) 5678 .catch(() => null); 5679 } 5680 return shopConfigPromise; 5681 } 5682 // Share the cached config promise with the prefill IIFE below (it gates 5683 // the Cart-API prefill on checkoutPrefill.cartApiEnabled) so the page 5684 // never fetches /cart-config twice. 5685 window.__globeCart.getShopConfig = getShopConfig; 5686 function isRegionSupported(shopConfig) { 5687 if (!shopConfig) return true; // fail open 5688 const country = window.__globeCart.resolvePickupCountry(shopConfig); // GLO-514 5689 if (!country) return true; // fail open 5690 const carriers = shopConfig.carriers || []; 5691 const available = new Set(); 5692 carriers.forEach(c => { 5693 if (c.shippingMethods) { 5694 Object.keys(c.shippingMethods).forEach(cc => { 5695 if (cc !== 'all' && cc.length === 2) available.add(cc.toLowerCase()); 5696 }); 5697 } 5698 }); 5699 if (available.size === 0) return true; // no country restrictions configured â show widget 5700 return available.has(country); 5701 } 5702 5703 // Removes the rendered widget from the page (if any) and resets render state. 5704 function removeWidget() { 5705 const container = document.getElementById(`globe-delivery-selector-container-${blockId}`); 5706 if (container) container.remove(); 5707 isRendered = false; 5708 // With no cards on screen there is nothing to require, so release the 5709 // checkout button rather than leaving it dimmed with no way to satisfy it. 5710 if (window.__globeSelectionGate) window.__globeSelectionGate.refresh(); 5711 } 5712 5713 // B2B / wholesale hide (GLO-455). 5714 // 5715 // Hidden customers simply never get the widget â Globe deliberately does NOT 5716 // touch their shipping rates (checkout is governed by the shop's shipping 5717 // settings). The one exception is Globe's own leftover state: a pickup point 5718 // selected before signing in survives in the cart attributes, and with the 5719 // widget gone the buyer has no UI to undo it â the delivery-customization 5720 // function would hide the home rates and rename shipping to the point name, 5721 // and the point would attach to the order. So we clear OUR attributes if (and 5722 // only if) they're present; a clean cart means zero writes. 5723 // 5724 // This block is an app embed ("target": "body"), so tryRender() runs on every 5725 // storefront page â hence the once-per-session guard. One pass is enough: the 5726 // buyer has no widget to make a new selection with, so nothing can go
5726stale 5727 // again within the session, and a cart carried over from an earlier session is 5728 // caught by that session's own first pass. 5729 const STALE_CLEAR_CACHE_KEY = 'globeStaleSelectionCleared'; 5730 let staleSelectionCleared = (function () { 5731 try { return sessionStorage.getItem(STALE_CLEAR_CACHE_KEY) === '1'; } 5732 catch (e) { return false; } 5733 })(); 5734 function clearStaleSelection() { 5735 if (staleSelectionCleared || globeClearingSelection) return; 5736 staleSelectionCleared = true; 5737 try { sessionStorage.setItem(STALE_CLEAR_CACHE_KEY, '1'); } catch (e) { /* private mode */ } 5738 window.__globeCart.fetchCart() 5739 .then(function (cart) { 5740 const attrs = (cart && cart.attributes) || {}; 5741 if (!attrs.globe_DeliveryMethod && !attrs.globe_PickupPointId && !attrs.globe_PickupPointData) { 5742 return null; // nothing of ours in the cart â no write 5743 } 5744 return fetch('/cart/update.js', { 5745 method: 'POST', 5746 headers: { 'Content-Type': 'application/json' }, 5747 body: JSON.stringify({ 5748 attributes: { 5749 globe_DeliveryMethod: '', 5750 globe_PickupPointId: '', 5751 globe_PickupPointName: '', 5752 globe_PickupPointAddress: '', 5753 globe_PickupPointData: '' 5754 } 5755 }) 5756 }).then(function (r) { return r.json(); }); 5757 }) 5758 .then(function (cart) { 5759 if (!cart) return; 5760 globeLastKnownCart = cart; 5761 window.__globeCart.seedCart(cart); 5762 setCachedCartState({ deliveryMethod: null, pickupPointName: null, pickupPointAddress: null }); 5763 }) 5764 .catch(function () { 5765 // Let a later cart event retry â a failed clear must not stay latched. 5766 staleSelectionCleared = false; 5767 try { sessionStorage.removeItem(STALE_CLEAR_CACHE_KEY); } catch (e) { /* private mode */ } 5768 }); 5769 } 5770 5771 // Wrapper to prevent duplicate renders 5772 function tryRender() { 5773 renderAttempts++; 5774 5775 // B2B / wholesale customers: never render; only clean up Globe's own 5776 // leftover selection (see clearStaleSelection above). 5777 if (config.hideForCustomer) { 5778 removeWidget(); 5779 clearStaleSelection(); 5780 return; 5781 } 5782 5783 // Fast bail-out: if the target element doesn't exist yet, skip the async fetch entirely. 5784 // Prevents unnecessary /cart.js calls when the observer fires before the cart drawer 5785 // HTML has been fully injected (lazy-rendered AJAX cart drawers). 5786 const targets = config.placementTargets || []; 5787 const anyTargetNowExists = targets.some(tc => document.querySelector(tc.selector)); 5788 if (!anyTargetNowExists) return; 5789 5790 // Fetch cart state and shop config in parallel. 5791 Promise.all([ 5792 window.__globeCart.fetchCart(), 5793 getShopConfig() 5794 ]) 5795 .then(([cart, shopConfig]) => { 5796 const hasPhysical = Array.isArray(cart.items) && cart.items.some(item => item.requires_shipping); 5797 if (!hasPhysical) { 5798 removeWidget(); 5799 return; 5800 } 5801 // Region check â skip rendering if this market has no pickup points. 5802 if (!isRegionSupported(shopConfig)) { 5803 return; 5804 } 5805 // Cart has physical items and region is supported â proceed. 5806 tryRenderInner(); 5807 applyDisabledStates(cart); 5808 }) 5809 .catch(() => { 5810 // On fetch error, proceed with render (fail open) 5811 tryRenderInner(); 5812 applyDisabledStates(); 5813 }); 5814 } 5815 5816 function tryRenderInner() { 5817 // Check if container still exists in DOM (might have been cleared by theme) 5818 const existingContainer = document.getElementById(`globe-delivery-selector-container-${blockId}`); 5819 5820 // Check if any target element exists and if our widget is inside it 5821 const targets = config.placementTargets || []; 5822 let containerStillValid = false; 5823 5824 targets.forEach(targetConfig => { 5825 const currentTargetElement = document.querySelector(targetConfig.selector); 5826 if (currentTargetElement && existingContainer && currentTargetElement.contains(existingContainer)) { 5827 containerStillValid = true; 5828 } 5829 }); 5830 5831 if (containerStillValid) { 5832 const containerInTarget = true; 5833 if (!containerInTarget) { 5834 isRendered = false;
5835 } 5836 } 5837 5838 if (existingContainer && existingContainer.parentElement && isRendered) { 5839 // Check if it's actually visible (dialog/drawer might have been closed/reopened) 5840 const isVisible = existingContainer.offsetWidth > 0 && existingContainer.offsetHeight > 0; 5841 if (isVisible) { 5842 return; 5843 } else { 5844 // Widget is in DOM but hidden (drawer is closed). 5845 // The body observer (attributeFilter: ['open']) will fire when the drawer opens, 5846 // or the periodic setInterval will catch any missed cases. 5847 return; 5848 } 5849 } 5850 5851 if (existingContainer && !existingContainer.parentElement) { 5852 isRendered = false; 5853 } 5854 5855 // If container exists but isRendered is false, remove the old container first 5856 if (existingContainer && !isRendered) { 5857 existingContainer.remove(); 5858 } 5859 5860 renderDeliverySelector(); 5861 5862 // Check if render was successful 5863 const container = document.getElementById(`globe-delivery-selector-container-${blockId}`); 5864 if (container && container.parentElement) { 5865 const isVisible = container.offsetWidth > 0 && container.offsetHeight > 0; 5866 isRendered = true; 5867 lastTargetElement = container.parentElement; 5868 5869 if (!isVisible) { 5870 5871 } 5872 } else { 5873 // Container not in DOM yet, will retry 5874 } 5875 } 5876 5877 // Initialize when DOM is ready 5878 if (document.readyState === 'loading') { 5879 document.addEventListener('DOMContentLoaded', tryRender); 5880 } else { 5881 tryRender(); 5882 } 5883 5884 // Cart events (cart:updated / cart:refresh / cart:change / cart.change / 5885 // cart:open, window or document) all flow through the shared debounced 5886 // pipeline â one user action = one tryRender() pass, instead of the old 5887 // per-event-name timeouts that each fired their own /cart.js fetch. 5888 window.__globeCart.onCartEvent(function() { 5889 const existingContainer = document.getElementById(`globe-delivery-selector-container-${blockId}`); 5890 if (!existingContainer || !existingContainer.parentElement) { 5891 isRendered = false; 5892 } 5893 tryRender(); 5894 // Rates are priced against the cart, so a contents change invalidates them. 5895 // tryRender() is a no-op on an already-rendered widget, hence the separate call. 5896 renderCardPrices(); 5897 }); 5898 5899 5900 // MutationObserver to detect when cart drawer appears OR is re-rendered 5901 // Debounced to avoid dozens of concurrent tryRender() calls during large DOM insertions 5902 let observerDebounceTimer = null; 5903 const observer = new MutationObserver(function(mutations) { 5904 // Fast-path: check if any mutation touched the open attribute on a cart-like element. 5905 // This handles themes like <cart-drawer> that show/hide via open="" attribute (not <dialog>). 5906 let openAttributeChanged = false; 5907 for (let i = 0; i < mutations.length; i++) { 5908 const m = mutations[i]; 5909 if (m.type === 'attributes' && m.attributeName === 'open') { 5910 // An element gained/lost the open attribute - could be the cart drawer opening 5911 openAttributeChanged = true; 5912 break; 5913 } 5914 } 5915 5916 if (openAttributeChanged) { 5917 // Something got [open] â check if our target is now inside an open container 5918 const targets = config.placementTargets || []; 5919 let shouldRender = false;
5920 targets.forEach(targetConfig => { 5921 const targetElement = document.querySelector(targetConfig.selector); 5922 if (!targetElement) return; 5923 if (targetElement.closest('[open]') || !targetElement.closest('[open], dialog')) { 5924 shouldRender = true; 5925 } 5926 }); 5927 if (shouldRender) { 5928 const existingContainerOnOpen = document.getElementById(`globe-delivery-selector-container-${blockId}`); 5929 if (!existingContainerOnOpen || !existingContainerOnOpen.parentElement) { 5930 isRendered = false; 5931 } 5932 clearTimeout(observerDebounceTimer); 5933 observerDebounceTimer = setTimeout(tryRender, 50); 5934 return; 5935 } 5936 } 5937 5938 // Only react to childList changes that plausibly involve the cart. Observing 5939 // the whole <body> subtree means this callback fires on every unrelated DOM 5940 // change (carousels, lazy images, analytics nodes, etc.). Filtering to 5941 // cart-related nodes here avoids scheduling a tryRender() pass for noise, 5942 // and skipping our own container prevents the re-injection from re-triggering 5943 // the observer. The 2s setInterval below remains the failsafe for any 5944 // class/style-toggled drawer this filter doesn't catch. 5945 const ownContainerId = `globe-delivery-selector-container-${blockId}`; 5946 const targetSelectors = (config.placementTargets || []).map(t => t.selector); 5947 function isCartRelatedNode(node) { 5948 if (!node || node.nodeType !== Node.ELEMENT_NODE) return false; 5949 // node.id is an SVGAnimatedString (object) on SVG elements, not a string, 5950 // so guard against calling string methods on it. Same for className below. 5951 // A bare <img> is never a cart drawer and cannot contain our target â 5952 // skipping it stops fly-to-cart animation clones (e.g. IMG.tcart-fly, 5953 // added and removed on every add-to-cart) from re-triggering renders. 5954 if (node.tagName === 'IMG') return false; 5955 const id = typeof node.id === 'string' ? node.id : ''; 5956 if (id === ownContainerId || node.closest?.(`#${ownContainerId}`)) return false; // our own widget 5957 const cls = typeof node.className === 'string' ? node.className : ''; 5958 if (id.includes('cart') || cls.includes('cart')) return true; 5959 return targetSelectors.some(sel => { 5960 try { return node.matches?.(sel) || node.querySelector?.(sel); } 5961 catch (e) { return false; } 5962 }); 5963 } 5964 5965 let cartRelatedChange = false; 5966 for (let i = 0; i < mutations.length && !cartRelatedChange; i++) { 5967 const m = mutations[i]; 5968 if (m.type !== 'childList') continue; 5969 for (let j = 0; j < m.addedNodes.length; j++) { 5970 if (isCartRelatedNode(m.addedNodes[j])) { cartRelatedChange = true; break; } 5971 } 5972 if (cartRelatedChange) break; 5973 for (let j = 0; j < m.removedNodes.length; j++) { 5974 if (isCartRelatedNode(m.removedNodes[j])) { cartRelatedChange = true; break; } 5975 } 5976 } 5977 if (!cartRelatedChange) return; 5978 5979 // Our container going missing is answered now, not after the debounce. The 5980 // theme removes it as part of replacing the cart section, and every 5981 // millisecond between the removal and the widget coming back is the flash 5982 // the merchant sees â measured at 533ms when this waited its turn. The 5983 // debounce still governs everything else, and tryRender() re-attaches the 5984 // node we already built, so doing it early costs nothing. 5985 if (!document.getElementById(`globe-delivery-selector-container-${blockId}`)) { 5986 try { tryRender(); } catch (e) {} 5987 } 5988 5989 // Debounce structural (childList) changes to prevent flooding tryRender() 5990 // when large cart HTML is injected (many nodes at once) 5991 clearTimeout(observerDebounceTimer); 5992 observerDebounceTimer = setTimeout(function() { 5993 // Check if our container was removed (cart re-rendered) 5994 const existingContainer = document.getElementById(`globe-delivery-selector-container-${blockId}`); 5995 if (existingContainer && !existingContainer.parentElement) { 5996 isRendered = false;
5997 } 5998 5999 // Check if any target element exists (might have appeared or been re-rendered) 6000 const targets = config.placementTargets || []; 6001 let anyTargetExists = false; 6002 6003 targets.forEach(targetConfig => { 6004 if (document.querySelector(targetConfig.selector)) { 6005 anyTargetExists = true; 6006 } 6007 }); 6008 6009 if (anyTargetExists) { 6010 let foundContainer = false; 6011 targets.forEach(targetConfig => { 6012 const target = document.querySelector(targetConfig.selector); 6013 if (target && target.querySelector(`#globe-delivery-selector-container-${blockId}`)) { 6014 foundContainer = true; 6015 } 6016 }); 6017 6018 if (!foundContainer && !isRendered) { 6019 tryRender(); 6020 } else if (!foundContainer && isRendered) { 6021 isRendered = false; 6022 tryRender(); 6023 } 6024 } 6025 }, 50); 6026 }); 6027 6028 // Observe body for cart drawer injection AND open attribute changes. 6029 // We watch open attribute changes because themes like <cart-drawer> show/hide 6030 // via open="" attribute (not a native <dialog>), and childList alone misses this. 6031 if (document.body) { 6032 observer.observe(document.body, { 6033 childList: true, 6034 subtree: true, 6035 attributes: true, 6036 attributeFilter: ['open'] // Only watch the open attribute to keep overhead minimal 6037 }); 6038 } 6039 6040 // Periodic check as failsafe (every 2 seconds when cart target is in the DOM) 6041 setInterval(function() { 6042 const targets = config.placementTargets || []; 6043 let hasVisibleTarget = false;
6044 6045 targets.forEach(targetConfig => { 6046 if (document.querySelector(targetConfig.selector)) { 6047 hasVisibleTarget = true; 6048 } 6049 }); 6050 6051 if (!hasVisibleTarget) return; 6052 6053 let foundContainer = false; 6054 targets.forEach(targetConfig => { 6055 const target = document.querySelector(targetConfig.selector); 6056 if (target && target.querySelector(`#globe-delivery-selector-container-${blockId}`)) { 6057 foundContainer = true; 6058 } 6059 }); 6060 6061 // Only rebuild when the widget is genuinely gone from the page. Looking 6062 // solely inside the placement target treats "the theme re-rendered the 6063 // cart and our node moved" as "our node vanished", and the rebuild is a 6064 // visible flash: remove, re-insert, re-fetch. It shows up on returning to 6065 // a background tab because the interval is throttled there and fires the 6066 // moment the tab is foregrounded, right as the theme refreshes the cart. 6067 if (!foundContainer && document.getElementById(`globe-delivery-selector-container-${blockId}`)) { 6068 foundContainer = true; 6069 } 6070 6071 if (!foundContainer) { 6072 isRendered = false; 6073 tryRender(); 6074 } 6075 }, 2000); // Check every 2 seconds 6076 6077 // Debug helper - expose to console for merchants to test 6078 window.globeDeliverySelectorDebug = { 6079 config: config, 6080 isRendered: () => isRendered, 6081 renderAttempts: () => renderAttempts, 6082 forceRender: () => { 6083 6084 isRendered = false; 6085 tryRender(); 6086 }, 6087 checkTarget: () => { 6088 const targets = config.placementTargets || []; 6089 6090 targets.forEach((targetConfig, index) => { 6091 const target = document.querySelector(targetConfig.selector); 6092 6093 if (target) { 6094 6095 } 6096 }); 6097 } 6098 }; 6099 6100 })(); 6101 6102</script>
6102 6103 6104<!-- Load the pickup selector widget script -->
6105<script src="https://cdn.shopify.com/extensions/01a11381-8d3d-796b-9954-b870dd9d820a/globe-pickup-points-451/assets/globe-checkout-gate.js" defer></script>
vendor: 1 bytes, line 6105
6105
6106<script src="https://cdn.shopify.com/extensions/01a11381-8d3d-796b-9954-b870dd9d820a/globe-pickup-points-451/assets/globe-checkout-prefill.js" defer></script>
vendor: 1 bytes, line 6106
6106
6107<script src="https://cdn.shopify.com/extensions/01a11381-8d3d-796b-9954-b870dd9d820a/globe-pickup-points-451/assets/globe-shipping-rates.js" defer></script>
vendor: 1 bytes, line 6107
6107
6108<script src="https://cdn.shopify.com/extensions/01a11381-8d3d-796b-9954-b870dd9d820a/globe-pickup-points-451/assets/cart-pickup-selector.js" defer></script>
6108 6109 6110 6111</div><div id="shopify-block-AdlMwdW41eW0wNHQ2b__18131037017812181619" class="shopify-block shopify-app-block"> 6112
6112<script defer src="https://chimpstatic.com/mcjs-connected/js/users/54ab5874787b1bf068de866bc/9269e2be23cabcd5a242711a6.js"></script>
6112 6113
6113<script>window.mc_embedded = true;</script>
6113 6114 6115 6116 6117</div>
6117<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
6117 6118</body> 6119</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.