PageSourceSearch

https://birne.com/account/login?return_url=%2Faccount

html birne.com collected 2026-10-07 23:01:59 UTC 231,851 bytes, 3,481 lines download raw bytes

1<!doctype html>
2<html class="no-js" lang="cs">
3  <head>
4	
4<script id="pandectes-rules">�   /* PANDECTES-GDPR: DO NOT MODIFY AUTO GENERATED CODE OF THIS SCRIPT */�   �   window.PandectesSettings = {"store":{"id":60399288452,"plan":"plus","theme":"Direct/flexiSmart2504","primaryLocale":"cs","adminMode":false,"headless":false,"storefrontRootDomain":"","checkoutRootDomain":"","storefrontAccessToken":""},"tsPublished":1744623145,"declaration":{"showPurpose":false,"showProvider":false,"declIntroText":"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.","showDateGenerated":true},"language":{"unpublished":[],"languageMode":"Single","fallbackLanguage":"cs","languageDetection":"browser","languagesSupported":[]},"texts":{"managed":{"headerText":{"cs":"Respektujeme vaÅ¡e soukromí"},"consentText":{"cs":"Abyste se na naÅ¡ich stránkách cítili jako doma, rádi bychom Vás požádali o souhlas s cookies. Některé jsou pro fungování webu nezbytné, ty ostatní si můžete nastavit podle sebe."},"linkText":{"cs":"Další informace"},"imprintText":{"cs":"Otisk"},"googleLinkText":{"cs":"Zásady ochrany soukromí Google"},"allowButtonText":{"cs":"Přijmout"},"denyButtonText":{"cs":"Odmítnout"},"dismissButtonText":{"cs":"OK"},"leaveSiteButtonText":{"cs":"Opustit tento web"},"preferencesButtonText":{"cs":"Předvolby"},"cookiePolicyText":{"cs":"Zásady používání cookies"},"preferencesPopupTitleText":{"cs":"Spravujte předvolby souhlasu"},"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."},"preferencesPopupSaveButtonText":{"cs":"Uložit předvolby"},"preferencesPopupCloseButtonText":{"cs":"Zavřít"},"preferencesPopupAcceptAllButtonText":{"cs":"Přijmout vÅ¡e"},"preferencesPopupRejectAllButtonText":{"cs":"Odmítnout vÅ¡echny"},"cookiesDetailsText":{"cs":"Podrobnosti o souborech cookie"},"preferencesPopupAlwaysAllowedText":{"cs":"vždy povoleno"},"accessSectionParagraphText":{"cs":"Máte právo mít kdykoli přístup ke svým údajům."},"accessSectionTitleText":{"cs":"Přenos dat"},"accessSectionAccountInfoActionText":{"cs":"Osobní data"},"accessSectionDownloadReportActionText":{"cs":"Stáhnout vÅ¡e"},"accessSectionGDPRRequestsActionText":{"cs":"Žádosti subjektu údajů"},"accessSectionOrdersRecordsActionText":{"cs":"Objednávky"},"rectificationSectionParagraphText":{"cs":"Máte právo požádat o aktualizaci svých údajů, kdykoli to považujete za vhodné."},"rectificationSectionTitleText":{"cs":"Oprava dat"},"rectificationCommentPlaceholder":{"cs":"PopiÅ¡te, co chcete aktualizovat"},"rectificationCommentValidationError":{"cs":"Komentář je vyžadován"},"rectificationSectionEditAccountActionText":{"cs":"Požádat o aktualizaci"},"erasureSectionTitleText":{"cs":"Právo být zapomenut"},"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."},"erasureSectionRequestDeletionActionText":{"cs":"Požádat o vymazání osobních údajů"},"consentDate":{"cs":"Datum souhlasu"},"consentId":{"cs":"ID souhlasu"},"consentSectionChangeConsentActionText":{"cs":"Změnit předvolbu souhlasu"},"consentSectionConsentedText":{"cs":"Souhlasili jste se zásadami cookies této webové stránky na"},"consentSectionNoConsentText":{"cs":"Nesouhlasili jste se zásadami používání souborů cookie na tomto webu."},"consentSectionTitleText":{"cs":"Váš souhlas se soubory cookie"},"consentStatus":{"cs":"Preference souhlasu"},"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"},"confirmationFailureTitle":{"cs":"DoÅ¡lo k problému"},"confirmationSuccessMessage":{"cs":"Brzy se vám ozveme ohledně vaší žádosti."},"confirmationSuccessTitle":{"cs":"VaÅ¡e žádost je ověřena"},"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."},"guestsSupportEmailFailureTitle":{"cs":"DoÅ¡lo k problému"},"guestsSupportEmailPlaceholder":{"cs":"Emailová adresa"},"guestsSupportEmailSuccessMessage":{"cs":"Pokud jste registrováni jako zákazníci tohoto obchodu, brzy vám přijde e -mail s pokyny, jak postupovat."},"guestsSupportEmailSuccessTitle":{"cs":"Děkujeme za vaÅ¡i žádost"},"guestsSupportEmailValidationError":{"cs":"E -mail není platný"},"guestsSupportInfoText":{"cs":"Chcete -li pokračovat, přihlaste se prosím pomocí svého zákaznického účtu."},"submitButton":{"cs":"Předložit"},"submittingButton":{"cs":"Odesílání ..."},"cancelButton":{"cs":"zruÅ¡ení"},"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."},"declName":{"cs":"název"},"declPurpose":{"cs":"Účel"},"declType":{"cs":"Typ"},"declRetention":{"cs":"Uchování"},"declProvider":{"cs":"Poskytovatel"},"declFirstParty":{"cs":"První strany"},"declThirdParty":{"cs":"Třetí strana"},"declSeconds":{"cs":"sekundy"},"declMinutes":{"cs":"minut"},"declHours":{"cs":"hodin"},"declDays":{"cs":"dní"},"declMonths":{"cs":"měsíce"},"declYears":{"cs":"let"},"declSession":{"cs":"Zasedání"}
4,"declDomain":{"cs":"Doména"},"declPath":{"cs":"Cesta"}},"categories":{"strictlyNecessaryCookiesTitleText":{"cs":"Nezbytně nutné 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."},"functionalityCookiesTitleText":{"cs":"Funkční 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ě."},"performanceCookiesTitleText":{"cs":"Výkonnostní 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ší."},"targetingCookiesTitleText":{"cs":"Cílení na 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."},"unclassifiedCookiesTitleText":{"cs":"Neklasifikované cookies"},"unclassifiedCookiesDescriptionText":{"cs":"Neklasifikované cookies jsou cookies, které právě zpracováváme, společně s poskytovateli jednotlivých 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":"#5A2382","backgroundForCalculations":{"a":1,"b":130,"g":35,"r":90},"text":"#D6C8E0"},"button":{"background":"transparent","backgroundForCalculations":{"a":1,"b":69,"g":0,"r":63},"text":"#D6C8E0","textForCalculation":{"a":1,"b":224,"g":200,"r":214},"border":"#D6C8E0"}},"content":{"href":"https://cdn.shopify.com/s/files/1/0603/9928/8452/files/Informace_o_zpracovani_osobnich_udaju_0923.pdf?v=1696577593","imprintHref":"/","close":"&#10005;","target":"","logo":""},"window":"<div role=\"dialog\" aria-live=\"polite\" aria-label=\"cookieconsent\" aria-describedby=\"cookieconsent:desc\" id=\"pandectes-banner\" class=\"cc-window-wrapper cc-bottom-center-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":"bottom-center","theme":"wired","revokable":false,"animateRevokable":false,"revokableReset":false,"revokableLogoUrl":"https://cdn.shopify.com/s/files/1/0603/9928/8452/t/269/assets/pandectes-reopen-logo.png?v=1744619565","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,"chOnly":false,"euOnly":false,"jpOnly":false,"thOnly":false,"canadaOnly":false,"globalVisibility":true},"dsr":{"guestsSupport":false,"accessSectionDownloadReportAuto":false},"banner":{"resetTs":1698752765,"extraCss":"        .cc-banner-logo {max-width: 24em!important;}    @media(min-width: 768px) {.cc-window.cc-floating{max-width: 24em!important;width: 24em!important;}}    .cc-message, .pd-cookie-banner-window .cc-header, .cc-logo {text-align: left}    .cc-window-wrapper{z-index: 2147483647;}    .cc-window{z-index: 2147483647;font-family: inherit;}    .pd-cookie-banner-window .cc-header{font-family: inherit;}    .pd-cp-ui{font-family: inherit; background-color: #5A2382;color:#D6C8E0;}    button.pd-cp-btn, a.pd-cp-btn{}    input + .pd-cp-preferences-slider{background-color: rgba(214, 200, 224, 0.3)}    .pd-cp-scrolling-section::-webkit-scrollbar{background-color: rgba(214, 200, 224, 0.3)}    input:checked + .pd-cp-preferences-slider{background-color: rgba(214, 200, 224, 1)}    .pd-cp-scrolling-section::-webkit-scrollbar-thumb {background-color: rgba(214, 200, 224, 1)}    .pd-cp-ui-close{color:#D6C8E0;}    .pd-cp-preferences-slider:before{background-color: #5A2382}    .pd-cp-title:before {border-color: #D6C8E0!important}    .pd-cp-preferences-slider{background-color:#D6C8E0}    .pd-cp-toggle{color:#D6C8E0!important}    @media(max-width:699px) {.pd-cp-ui-close-top svg {fill: #D6C8E0}}    .pd-cp-toggle:hover,.pd-cp-toggle:visited,.pd-cp-toggle:active{color:#D6C8E0!important}    .pd-cookie-banner-window {box-shadow: 0 0 18px rgb(0 0 0 / 20%);}  ","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":"secure_customer_sig","type":"http","domain":"birne.com","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":"Used in connection with customer login."}},{"name":"localization","type":"http","domain":"birne.com","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":"Shopify store localization"}},{"name":"cart_currency","type":"http","domain":"birne.com","path":"/","provider":"Shopify","firstParty":true,"retention":"14 day(s)","expires":14,"unit":"declDays","purpose":{"cs":"Used in connection with shopping cart."}},{"name":"_cmp_a","type":"http","domain":".birne.com","path":"/","provider":"Shopify","firstParty":true,"retention":"24 hour(s)","expires":24,"unit":"declHours","purpose":{"cs":"Used for managing customer privacy settings."}},{"name":"keep_alive","type":"http","domain":"birne.com","path":"/","provider":"Shopify","firstParty":true,"retention":"30 minute(s)","expires":30,"unit":"declMinutes","purpose":{"cs":"Used in connection with buyer localization."}},{"name":"_secure_session_id","type":"http","domain":"birne.com","path":"/","provider":"Shopify","firstParty":true,"retention":"24 hour(s)","expires":24,"unit":"declHours","purpose":{"cs":"Used in connection with navigation through a storefront."}}],"1":[{"name":"_hjSessionUser_3612639","type":"http","domain":".birne.com","path":"/","provider":"Hotjar","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":"Used by Hotjar to store a unique user ID."}},{"name":"_hjSession_3612639","type":"http","domain":".birne.com","path":"/","provider":"Hotjar","firstParty":true,"retention":"30 minute(s)","expires":30,"unit":"declMinutes","purpose":{"cs":"Used by Hotjar to provide functions across pages."}}],"2":[{"name":"_orig_referrer","type":"http","domain":".birne.com","path":"/","provider":"Shopify","firstParty":true,"retention":"14 day(s)","expires":14,"unit":"declDays","purpose":{"cs":"Tracks landing pages."}},{"name":"_shopify_y","type":"http","domain":".birne.com","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":"Shopify analytics."}}
4,{"name":"_shopify_s","type":"http","domain":".birne.com","path":"/","provider":"Shopify","firstParty":true,"retention":"30 minute(s)","expires":30,"unit":"declMinutes","purpose":{"cs":"Shopify analytics."}},{"name":"_landing_page","type":"http","domain":".birne.com","path":"/","provider":"Shopify","firstParty":true,"retention":"14 day(s)","expires":14,"unit":"declDays","purpose":{"cs":"Tracks landing pages."}},{"name":"_s","type":"http","domain":".birne.com","path":"/","provider":"Shopify","firstParty":true,"retention":"30 minute(s)","expires":30,"unit":"declMinutes","purpose":{"cs":"Shopify analytics."}},{"name":"_shopify_sa_t","type":"http","domain":".birne.com","path":"/","provider":"Shopify","firstParty":true,"retention":"30 minute(s)","expires":30,"unit":"declMinutes","purpose":{"cs":"Shopify analytics relating to marketing & referrals."}},{"name":"_shopify_sa_p","type":"http","domain":".birne.com","path":"/","provider":"Shopify","firstParty":true,"retention":"30 minute(s)","expires":30,"unit":"declMinutes","purpose":{"cs":"Shopify analytics relating to marketing & referrals."}},{"name":"_ga","type":"http","domain":".birne.com","path":"/","provider":"Google","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":"Cookie is set by Google Analytics with unknown functionality"}},{"name":"__hstc","type":"http","domain":".birne.com","path":"/","provider":"HubSpot","firstParty":true,"retention":"180 day(s)","expires":180,"unit":"declDays","purpose":{"cs":"It contains the domain, utk, initial timestamp (first visit), last timestamp (last visit), current timestamp (this visit), and session number (increments for each subsequent session)."}},{"name":"hubspotutk","type":"http","domain":".birne.com","path":"/","provider":"HubSpot","firstParty":true,"retention":"180 day(s)","expires":180,"unit":"declDays","purpose":{"cs":"It contains an opaque GUID to represent the current visitor."}},{"name":"__hssrc","type":"http","domain":".birne.com","path":"/","provider":"HubSpot","firstParty":true,"retention":"Session","expires":-1698752790,"unit":"declSeconds","purpose":{"cs":"Is used by Hubspot to determine if the visitor has restarted their browser."}},{"name":"__hssc","type":"http","domain":".birne.com","path":"/","provider":"HubSpot","firstParty":true,"retention":"30 minute(s)","expires":30,"unit":"declMinutes","purpose":{"cs":"This is used to determine if HubSpot should increment the session number and timestamps in the __hstc cookie."}},{"name":"__cf_bm","type":"http","domain":".hubspot.com","path":"/","provider":"CloudFlare","firstParty":true,"retention":"30 minute(s)","expires":30,"unit":"declMinutes","purpose":{"cs":"Used to manage incoming traffic that matches criteria associated with bots."}},{"name":"_gid","type":"http","domain":".birne.com","path":"/","provider":"Google","firstParty":true,"retention":"24 hour(s)","expires":24,"unit":"declHours","purpose":{"cs":"Cookie is placed by Google Analytics to count and track pageviews."}},{"name":"_gat_UA-88374359-16","type":"http","domain":".birne.com","path":"/","provider":"Google","firstParty":true,"retention":"48 second(s)","expires":48,"unit":"declSeconds","purpose":{"cs":"Cookie is placed by Google Analytics to filter requests from bots."}}],"4":[{"name":"_gcl_au","type":"http","domain":".birne.com","path":"/","provider":"Google","firstParty":true,"retention":"90 day(s)","expires":90,"unit":"declDays","purpose":{"cs":"Cookie is placed by Google Tag Manager to track conversions."}},{"name":"IDE","type":"http","domain":".doubleclick.net","path":"/","provider":"Google","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":"To measure the visitors’ actions after they click through from an advert. Expires after 1 year."}},{"name":"_fbp","type":"http","domain":".birne.com","path":"/","provider":"Facebook","firstParty":true,"retention":"90 day(s)","expires":90,"unit":"declDays","purpose":{"cs":"Cookie is placed by Facebook to track visits across websites."}}],"8":[{"name":"pageviewCount","type":"http","domain":".birne.com","path":"/","provider":"Unknown","firstParty":true,"retention":"24 hour(s)","expires":24,"unit":"declHours","purpose":{"cs":""}},{"name":"otCookieScanned","type":"http","domain":"birne.com","path":"/","provider":"Unknown","firstParty":true,"retention":"24 hour(s)","expires":24,"unit":"declHours","purpose":{"cs":""}},{"name":"_hjIncludedInSessionSample_3612639","type":"http","domain":".birne.com","path":"/","provider":"Unknown","firstParty":true,"retention":"2 minute(s)","expires":2,"unit":"declMinutes","purpose":{"cs":""}},{"name":"_hjAbsoluteSessionInProgress","type":"http","domain":".birne.com","path":"/","provider":"Unknown","firstParty":true,"retention":"30 minute(s)","expires":30,"unit":"declMinutes","purpose":{"cs":""}},{"name":"_hjFirstSeen","type":"http","domain":".birne.com","path":"/","provider":"Unknown","firstParty":true,"retention":"30 minute(s)","expires":30,"unit":"declMinutes","purpose":{"cs":""}},{"name":"lidc","type":"http","domain":".linkedin.com","path":"/","provider":"Unknown","firstParty":true,"retention":"24 hour(s)","expires":24,"unit":"declHours","purpose":{"cs":""}},{"name":"li_sugr","type":"http","domain":".linkedin.com","path":"/","provider":"Unknown","firstParty":true,"retention":"90 day(s)","expires":90,"unit":"declDays","purpose":{"cs":""}},{"name":"bcookie","type":"http","domain":".linkedin.com","path":"/","provider":"Unknown","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":""}},{"name":"UserMatchHistory","type":"http","domain":".linkedin.com","path":"/","provider":"Unknown","firstParty":true,"retention":"30 day(s)","expires":30,"unit":"declDays","purpose":{"cs":""}},{"name":"AnalyticsSyncHistory","type":"http","domain":".linkedin.com","path":"/","provider":"Unknown","firstParty":true,"retention":"30 day(s)","expires":30,"unit":"declDays","purpose":{"cs":""}},{"name":"bscookie","type":"http","domain":".www.linkedin.com","path":"/","provider":"Unknown","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":""}}]},"blocker":{"isActive":false,"googleConsentMode":{"id":"","analyticsId":"","isActive":true,"adStorageCategory":4,"analyticsStorageCategory":2,"personalizationStorageCategory":1,"functionalityStorageCategory":1,"customEvent":true,"securityStorageCategory":0,"redactData":true,"urlPassthrough":false},"facebookPixel":{"id":"","isActive":false,"ldu":false},"microsoft":{},"rakuten":{"isActive":false,"cmp":false,"ccpa":false},"gpcIsActive":false,"defaultBlocked":7,"patterns":{"whiteList":[],"blackList":{"1":[],"2":[],"4":[],"8":[]},"iframesWhiteList":[],"iframesBlackList":{"1":[],"2":[],"4":[],"8":[]},"beaconsWhiteList":[],"beaconsBlackList":{"1":[],"2":[],"4":[],"8":[]}}}}�   �   !function(){"use strict";window.PandectesRules=window.PandectesRules||{},window.PandectesRules.manualBlacklist={1:[],2:[],4:[]},window.PandectesRules.blacklistedIFrames={1:[],2:[],4:[]},window.PandectesRules.blacklistedCss={1:[],2:[],4:[]},window.PandectesRules.blacklistedBeacons={1:[],2:[],4:[]};var e="javascript/blocked";function t(e){return new RegExp(e.replace(/[/\\.+?$()]/g,"\\$&").replace("*","(.*)"))}var n=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"log";new URLSearchParams(window.location.search).get("log")&&console[t]("PandectesRules: ".concat(e))};function a(e){var t=document.createElement("script");t.async=!0,t.src=e,document.head.appendChild(t)}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};
4t%2?r(Object(n),!0).forEach((function(t){s(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function i(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var a=n.call(e,t||"default");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}function s(e,t,n){return(t=i(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var a,r,o,i,s=[],c=!0,l=!1;try{if(o=(n=n.call(e)).next,0===t){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=o.call(n)).done)&&(s.push(a.value),s.length!==t);c=!0);}catch(e){l=!0,r=e}finally{try{if(!c&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(l)throw r}}return s}}(e,t)||d(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||d(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function d(e,t){if(e){if("string"==typeof e)return u(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?u(e,t):void 0}}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=new Array(t);n<t;n++)a[n]=e[n];return a}var f=window.PandectesRulesSettings||window.PandectesSettings,g=!(void 0===window.dataLayer||!Array.isArray(window.dataLayer)||!window.dataLayer.some((function(e){return"pandectes_full_scan"===e.event}))),p=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"_pandectes_gdpr",n=("; "+document.cookie).split("; "+t+"=");if(n.length<2)e={};else{var a=n.pop().split(";");e=window.atob(a.shift())}var r=function(e){try{return JSON.parse(e)}catch(e){return!1}}(e);return!1!==r?r:e}(),y=f.banner.isActive,h=f.blocker,w=h.defaultBlocked,v=h.patterns,m=p&&null!==p.preferences&&void 0!==p.preferences?p.preferences:null,b=g?0:y?null===m?w:m:0,_={1:!(1&b),2:!(2&b),4:!(4&b)},k=v.blackList,S=v.whiteList,L=v.iframesBlackList,C=v.iframesWhiteList,A=v.beaconsBlackList,P=v.beaconsWhiteList,O={blackList:[],whiteList:[],iframesBlackList:{1:[],2:[],4:[],8:[]},iframesWhiteList:[],beaconsBlackList:{1:[],2:[],4:[],8:[]},beaconsWhiteList:[]};[1,2,4].map((function(e){var n;_[e]||((n=O.blackList).push.apply(n,l(k[e].length?k[e].map(t):[])),O.iframesBlackList[e]=L[e].length?L[e].map(t):[],O.beaconsBlackList[e]=A[e].length?A[e].map(t):[])})),O.whiteList=S.length?S.map(t):[],O.iframesWhiteList=C.length?C.map(t):[],O.beaconsWhiteList=P.length?P.map(t):[];var E={scripts:[],iframes:{1:[],2:[],4:[]},beacons:{1:[],2:[],4:[]},css:{1:[],2:[],4:[]}},I=function(t,n){return t&&(!n||n!==e)&&(!O.blackList||O.blackList.some((function(e){return e.test(t)})))&&(!O.whiteList||O.whiteList.every((function(e){return!e.test(t)})))},j=function(e,t){var n=O.iframesBlackList[t],a=O.iframesWhiteList;return e&&(!n||n.some((function(t){return t.test(e)})))&&(!a||a.every((function(t){return!t.test(e)})))},B=function(e,t){var n=O.beaconsBlackList[t],a=O.beaconsWhiteList;return e&&(!n||n.some((function(t){return t.test(e)})))&&(!a||a.every((function(t){return!t.test(e)})))},T=new MutationObserver((function(e){for(var t=0;t<e.length;t++)for(var n=e[t].addedNodes,a=0;a<n.length;a++){var r=n[a],o=r.dataset&&r.dataset.cookiecategory;if(1===r.nodeType&&"LINK"===r.tagName){var i=r.dataset&&r.dataset.href;if(i&&o)switch(o){case"functionality":case"C0001":E.css[1].push(i);break;case"performance":case"C0002":E.css[2].push(i);break;case"targeting":case"C0003":E.css[4].push(i)}}}})),R=new MutationObserver((function(t){for(var a=0;a<t.length;a++)for(var r=t[a].addedNodes,o=function(){var t=r[i],a=t.src||t.dataset&&t.dataset.src,o=t.dataset&&t.dataset.cookiecategory;if(1===t.nodeType&&"IFRAME"===t.tagName){if(a){var s=!1;j(a,1)||"functionality"===o||"C0001"===o?(s=!0,E.iframes[1].push(a)):j(a,2)||"performance"===o||"C0002"===o?(s=!0,E.iframes[2].push(a)):(j(a,4)||"targeting"===o||"C0003"===o)&&(s=!0,E.iframes[4].push(a)),s&&(t.removeAttribute("src"),t.setAttribute("data-src",a))}}else if(1===t.nodeType&&"IMG"===t.tagName){if(a){var c=!1;
4B(a,1)?(c=!0,E.beacons[1].push(a)):B(a,2)?(c=!0,E.beacons[2].push(a)):B(a,4)&&(c=!0,E.beacons[4].push(a)),c&&(t.removeAttribute("src"),t.setAttribute("data-src",a))}}else if(1===t.nodeType&&"SCRIPT"===t.tagName){var l=t.type,d=!1;if(I(a,l)?(n("rule blocked: ".concat(a)),d=!0):a&&o?n("manually blocked @ ".concat(o,": ").concat(a)):o&&n("manually blocked @ ".concat(o,": inline code")),d){E.scripts.push([t,l]),t.type=e;t.addEventListener("beforescriptexecute",(function n(a){t.getAttribute("type")===e&&a.preventDefault(),t.removeEventListener("beforescriptexecute",n)})),t.parentElement&&t.parentElement.removeChild(t)}}},i=0;i<r.length;i++)o()})),D=document.createElement,z={src:Object.getOwnPropertyDescriptor(HTMLScriptElement.prototype,"src"),type:Object.getOwnPropertyDescriptor(HTMLScriptElement.prototype,"type")};window.PandectesRules.unblockCss=function(e){var t=E.css[e]||[];t.length&&n("Unblocking CSS for ".concat(e)),t.forEach((function(e){var t=document.querySelector('link[data-href^="'.concat(e,'"]'));t.removeAttribute("data-href"),t.href=e})),E.css[e]=[]},window.PandectesRules.unblockIFrames=function(e){var t=E.iframes[e]||[];t.length&&n("Unblocking IFrames for ".concat(e)),O.iframesBlackList[e]=[],t.forEach((function(e){var t=document.querySelector('iframe[data-src^="'.concat(e,'"]'));t.removeAttribute("data-src"),t.src=e})),E.iframes[e]=[]},window.PandectesRules.unblockBeacons=function(e){var t=E.beacons[e]||[];t.length&&n("Unblocking Beacons for ".concat(e)),O.beaconsBlackList[e]=[],t.forEach((function(e){var t=document.querySelector('img[data-src^="'.concat(e,'"]'));t.removeAttribute("data-src"),t.src=e})),E.beacons[e]=[]},window.PandectesRules.unblockInlineScripts=function(e){var t=1===e?"functionality":2===e?"performance":"targeting",a=document.querySelectorAll('script[type="javascript/blocked"][data-cookiecategory="'.concat(t,'"]'));n("unblockInlineScripts: ".concat(a.length," in ").concat(t)),a.forEach((function(e){var t=document.createElement("script");t.type="text/javascript",e.hasAttribute("src")?t.src=e.getAttribute("src"):t.textContent=e.textContent,document.head.appendChild(t),e.parentNode.removeChild(e)}))},window.PandectesRules.unblockInlineCss=function(e){var t=1===e?"functionality":2===e?"performance":"targeting",a=document.querySelectorAll('link[data-cookiecategory="'.concat(t,'"]'));n("unblockInlineCss: ".concat(a.length," in ").concat(t)),a.forEach((function(e){e.href=e.getAttribute("data-href")}))},window.PandectesRules.unblock=function(e){e.length<1?(O.blackList=[],O.whiteList=[],O.iframesBlackList=[],O.iframesWhiteList=[]):(O.blackList&&(O.blackList=O.blackList.filter((function(t){return e.every((function(e){return"string"==typeof e?!t.test(e):e instanceof RegExp?t.toString()!==e.toString():void 0}))}))),O.whiteList&&(O.whiteList=[].concat(l(O.whiteList),l(e.map((function(e){if("string"==typeof e){var n=".*"+t(e)+".*";if(O.whiteList.every((function(e){return e.toString()!==n.toString()})))return new RegExp(n)}else if(e instanceof RegExp&&O.whiteList.every((function(t){return t.toString()!==e.toString()})))return e;return null})).filter(Boolean)))));var a=0;l(E.scripts).forEach((function(e,t){var n=c(e,2),r=n[0],o=n[1];if(function(e){var t=e.getAttribute("src");return O.blackList&&O.blackList.every((function(e){return!e.test(t)}))||O.whiteList&&O.whiteList.some((function(e){return e.test(t)}))}(r)){for(var i=document.createElement("script"),s=0;s<r.attributes.length;s++){var l=r.attributes[s];"src"!==l.name&&"type"!==l.name&&i.setAttribute(l.name,r.attributes[s].value)}i.setAttribute("src",r.src),i.setAttribute("type",o||"application/javascript"),document.head.appendChild(i),E.scripts.splice(t-a,1),a++}})),0==O.blackList.length&&0===O.iframesBlackList[1].length&&0===O.iframesBlackList[2].length&&0===O.iframesBlackList[4].length&&0===O.beaconsBlackList[1].length&&0===O.beaconsBlackList[2].length&&0===O.beaconsBlackList[4].length&&(n("Disconnecting observers"),R.disconnect(),T.disconnect())};var x=f.store,M=x.adminMode,N=x.headless,U=x.storefrontRootDomain,q=x.checkoutRootDomain,F=x.storefrontAccessToken,W=f.banner.isActive,H=f.blocker.defaultBlocked;W&&function(e){if(window.Shopify&&window.Shopify.customerPrivacy)e();else{var t=null;window.Shopify&&window.Shopify.loadFeatures&&window.Shopify.trackingConsent?e():t=setInterval((function(){window.Shopify&&window.Shopify.loadFeatures&&(clearInterval(t),window.Shopify.loadFeatures([{name:"consent-tracking-api",version:"0.1"}],(function(t){t?n("Shopify.customerPrivacy API - failed to load"):(n("shouldShowBanner() -> ".concat(window.Shopify.trackingConsent.shouldShowBanner()," | saleOfDataRegion() -> ").concat(window.Shopify.trackingConsent.saleOfDataRegion())),e())})))}),10)}}((function(){!function(){var e=window.Shopify.trackingConsent;if(!1!==e.shouldShowBanner()||null!==m||7!==H)try{var t=M&&!(window.Shopify&&window.Shopify.AdminBarInjector),a={preferences:!(1&b)||g||t,analytics:!(2&b)||g||t,marketing:!(4&b)||g||t};N&&(a.headlessStorefront=!0,a.storefrontRootDomain=null!=U&&U.length?U:window.location.hostname,a.checkoutRootDomain=null!=q&&q.length?q:"checkout.".concat(window.location.hostname),a.storefrontAccessToken=null!=F&&F.length?F:""),e.firstPartyMarketingAllowed()===a.marketing&&e.analyticsProcessingAllowed()===a.analytics&&e.preferencesProcessingAllowed()===a.preferences||e.setTrackingConsent(a,(function(e){e&&e.error?n("Shopify.customerPrivacy API - failed to setTrackingConsent"):n("setTrackingConsent(".concat(JSON.stringify(a),")"))}))}catch(e){n("Shopify.customerPrivacy API - exception")}}(),function(){if(N){var e=window.Shopify.trackingConsent,t=e.currentVisitorConsent();if(navigator.globalPrivacyControl&&""===t.sale_of_data){var a={sale_of_data:!1,headlessStorefront:!0};a.storefrontRootDomain=null!=U&&U.length?U:window.location.hostname,a.checkoutRootDomain=null!=q&&q.length?q:"checkout.".concat(window.location.hostname),a.storefrontAccessToken=null!=F&&F.length?F:"",e.setTrackingConsent(a,(function(e){e&&e.error?n("Shopify.customerPrivacy API - failed to setTrackingConsent({".concat(JSON.stringify(a),")")):n("setTrackingConsent(".concat(JSON.stringify(a),")"))}))}}}()}));var G=["AT","BE","BG","HR","CY","CZ","DK","EE","FI","FR","DE","GR","HU","IE","IT","LV","LT","LU","MT","NL","PL","PT","RO","SK","SI","ES","SE","GB","LI","NO","IS"],J="[Pandectes :: Google Consent Mode debug]:";function V(){var e=arguments.length<=0?void 0:arguments[0],t=arguments.length<=1?void 0:arguments[1],n=arguments.length<=2?void 0:arguments[2];if("consent"!==e)return"config"===e?"config":void 0;var a=n.ad_storage,r=n.ad_user_data,o=n.ad_personalization,i=n.functionality_storage,s=n.analytics_storage,c=n.personalization_storage,l={Command:e,Mode:t,ad_storage:a,ad_user_data:r,ad_personalization:o,functionality_storage:i,analytics_storage:s,personalization_storage:c,security_storage:n.security_storage};return console.table(l),"default"===t&&("denied"===a&&"denied"===r&&"denied"===o&&"denied"===i&&"denied"===s&&"denied"===c||console.warn("".concat(J,' all types in a "default" command should be set to "denied" except for security_storage that should be set to "granted"'))),t}var K=!1,Z=!1;function $(e){e&&("default"===e?(K=!0,Z&&console.warn("".concat(J,' "default" command was sent but there was already an "update" command before it.'))):"update"===e?(Z=!0,K||console.warn("".concat(J,' "update" command was sent but there was no "default" command before it.'))):"config"===e&&(K||console.warn("".concat(J,' a tag read consent state before a "default" command was sent.'))))}var Y=f.banner,Q=Y.isActive,X=Y.hybridStrict,ee=f.geolocation,te=ee.caOnly,ne=void 0!==te&&te,ae=ee.euOnly,re=void 0!==ae&&ae,oe=ee.brOnly,ie=void 0!==oe&&oe,se=ee.jpOnly,ce=void 0!==se&&se,le=ee.thOnly,de=void 0!==le&&le,ue=ee.chOnly,fe=void 0!==ue&&ue,ge=ee.zaOnly,pe=void 0!==ge&&ge,ye=ee.canadaOnly,he=void 0!==ye&&ye,we=ee.globalVisibility,ve=void 0===we||we,me=f.blocker,be=me.defaultBlocked,_e=void 0===be?7:be,ke=me.googleConsentMode,Se=ke.isActive,Le=ke.customEvent,Ce=ke.id,Ae=void 0===Ce?"":Ce,Pe=ke.analyticsId,Oe=void 0===Pe?"":Pe,Ee=ke.adwordsId,Ie=void 0===Ee?"":Ee,je=ke.redactData,Be=ke.urlPassthrough,Te=ke.adStorageCategory,Re=ke.analyticsStorageCategory,De=ke.functionalityStorageCategory,ze=ke.personalizationStorageCategory,xe=ke.securityStorageCategory,Me=ke.dataLayerProperty,Ne=void 0===Me?"dataLayer":Me,Ue=ke.waitForUpdate,qe=void 0===Ue?0:Ue,Fe=ke.useNativeChannel,We=void 0!==Fe&&Fe,He=ke.debugMode,Ge=void 0!==He&&He;function Je(){window[Ne].push(arguments)}window[Ne]=window[Ne]||[];var Ve,Ke,Ze,$e={hasInitialized:!1,useNativeChannel:!1,ads_data_redaction:!1,url_passthrough:!1,data_layer_property:"dataLayer",storage:{ad_storage:"granted",ad_user_data:"granted",ad_personalization:"granted",analytics_storage:"granted",functionality_storage:"granted",personalization_storage:"granted",security_storage:"granted"}};if(Q&&Se){Ge&&(Ve=Ne||"dataLayer",window[Ve].forEach((function(e){$(V.apply(void 0,l(e)))})),window[Ve].push=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];
4return $(V.apply(void 0,l(t[0]))),Array.prototype.push.apply(this,t)});var Ye=_e&Te?"denied":"granted",Qe=_e&Re?"denied":"granted",Xe=_e&De?"denied":"granted",et=_e&ze?"denied":"granted",tt=_e&xe?"denied":"granted";$e.hasInitialized=!0,$e.useNativeChannel=We,$e.url_passthrough=Be,$e.ads_data_redaction="denied"===Ye&&je,$e.storage.ad_storage=Ye,$e.storage.ad_user_data=Ye,$e.storage.ad_personalization=Ye,$e.storage.analytics_storage=Qe,$e.storage.functionality_storage=Xe,$e.storage.personalization_storage=et,$e.storage.security_storage=tt,$e.data_layer_property=Ne||"dataLayer",Je("set","developer_id.dMTZkMj",!0),$e.ads_data_redaction&&Je("set","ads_data_redaction",$e.ads_data_redaction),$e.url_passthrough&&Je("set","url_passthrough",$e.url_passthrough),function(){var e=b!==_e?{wait_for_update:qe||500}:qe?{wait_for_update:qe}:{};ve&&!X?Je("consent","default",o(o({},$e.storage),e)):(Je("consent","default",o(o(o({},$e.storage),e),{},{region:[].concat(l(re||X?G:[]),l(ne&&!X?["US-CA","US-VA","US-CT","US-UT","US-CO"]:[]),l(ie&&!X?["BR"]:[]),l(ce&&!X?["JP"]:[]),l(he&&!X?["CA"]:[]),l(de&&!X?["TH"]:[]),l(fe&&!X?["CH"]:[]),l(pe&&!X?["ZA"]:[]))})),Je("consent","default",{ad_storage:"granted",ad_user_data:"granted",ad_personalization:"granted",analytics_storage:"granted",functionality_storage:"granted",personalization_storage:"granted",security_storage:"granted"}));if(null!==m){var t=b&Te?"denied":"granted",n=b&Re?"denied":"granted",r=b&De?"denied":"granted",i=b&ze?"denied":"granted",s=b&xe?"denied":"granted";$e.storage.ad_storage=t,$e.storage.ad_user_data=t,$e.storage.ad_personalization=t,$e.storage.analytics_storage=n,$e.storage.functionality_storage=r,$e.storage.personalization_storage=i,$e.storage.security_storage=s,Je("consent","update",$e.storage)}(Ae.length||Oe.length||Ie.length)&&(window[$e.data_layer_property].push({"pandectes.start":(new Date).getTime(),event:"pandectes-rules.min.js"}),(Oe.length||Ie.length)&&Je("js",new Date));var c="https://www.googletagmanager.com";if(Ae.length){var d=Ae.split(",");window[$e.data_layer_property].push({"gtm.start":(new Date).getTime(),event:"gtm.js"});for(var u=0;u<d.length;u++){var f="dataLayer"!==$e.data_layer_property?"&l=".concat($e.data_layer_property):"";a("".concat(c,"/gtm.js?id=").concat(d[u].trim()).concat(f))}}if(Oe.length)for(var g=Oe.split(","),p=0;p<g.length;p++){var y=g[p].trim();y.length&&(a("".concat(c,"/gtag/js?id=").concat(y)),Je("config",y,{send_page_view:!1}))}if(Ie.length)for(var h=Ie.split(","),w=0;w<h.length;w++){var v=h[w].trim();v.length&&(a("".concat(c,"/gtag/js?id=").concat(v)),Je("config",v,{allow_enhanced_conversions:!0}))}}()}Q&&Le&&(Ze={event:"Pandectes_Consent_Update",pandectes_status:7===(Ke=b)?"deny":0===Ke?"allow":"mixed",pandectes_categories:{C0000:"allow",C0001:_[1]?"allow":"deny",C0002:_[2]?"allow":"deny",C0003:_[4]?"allow":"deny"}},window[Ne].push(Ze),null!==m&&function(e){if(window.Shopify&&window.Shopify.analytics)e();else{var t=null;window.Shopify&&window.Shopify.analytics?e():t=setInterval((function(){window.Shopify&&window.Shopify.analytics&&(clearInterval(t),e())}),10)}}((function(){window.Shopify.analytics.publish("Pandectes_Consent_Update",Ze)})));var nt=f.blocker,at=nt.klaviyoIsActive,rt=nt.googleConsentMode.adStorageCategory;at&&window.addEventListener("PandectesEvent_OnConsent",(function(e){var t=e.detail.preferences;if(null!=t){var n=t&rt?"denied":"granted";void 0!==window.klaviyo&&window.klaviyo.isIdentified()&&window.klaviyo.push(["identify",{ad_personalization:n,ad_user_data:n}])}})),f.banner.revokableTrigger&&(window.onload=function(){document.querySelectorAll('[href*="#reopenBanner"]').forEach((function(e){e.onclick=function(e){e.preventDefault(),window.Pandectes.fn.revokeConsent()}}))});var ot=f.banner.isActive,it=f.blocker,st=it.defaultBlocked,ct=void 0===st?7:st,lt=it.microsoft,dt=lt.isActive,ut=lt.uetTags,ft=lt.dataLayerProperty,gt=void 0===ft?"uetq":ft,pt={hasInitialized:!1,data_layer_property:"uetq",storage:{ad_storage:"granted"}};if(window[gt]=window[gt]||[],dt&&bt("_uetmsdns","1",365),ot&&dt){var yt=4&ct?"denied":"granted";if(pt.hasInitialized=!0,pt.storage.ad_storage=yt,window[gt].push("consent","default",pt.storage),"granted"==yt&&(bt("_uetmsdns","0",3
465),console.log("setting cookie")),null!==m){var ht=4&b?"denied":"granted";pt.storage.ad_storage=ht,window[gt].push("consent","update",pt.storage),"granted"===ht&&bt("_uetmsdns","0",365)}if(ut.length)for(var wt=ut.split(","),vt=0;vt<wt.length;vt++)wt[vt].trim().length&&mt(wt[vt])}function mt(e){var t=document.createElement("script");t.type="text/javascript",t.src="//bat.bing.com/bat.js",t.onload=function(){var t={ti:e};t.q=window.uetq,window.uetq=new UET(t),window.uetq.push("consent","default",{ad_storage:"denied"}),window[gt].push("pageLoad")},document.head.appendChild(t)}function bt(e,t,n){var a=new Date;a.setTime(a.getTime()+24*n*60*60*1e3);var r="expires="+a.toUTCString();document.cookie="".concat(e,"=").concat(t,"; ").concat(r,"; path=/; secure; samesite=strict")}window.PandectesRules.gcm=$e;var _t=f.banner.isActive,kt=f.blocker.isActive;n("Prefs: ".concat(b," | Banner: ").concat(_t?"on":"off"," | Blocker: ").concat(kt?"on":"off"));var St=null===m&&/\/checkouts\//.test(window.location.pathname);0!==b&&!1===g&&kt&&!St&&(n("Blocker will execute"),document.createElement=function(){for(var t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];if("script"!==n[0].toLowerCase())return D.bind?D.bind(document).apply(void 0,n):D;var r=D.bind(document).apply(void 0,n);try{Object.defineProperties(r,{src:o(o({},z.src),{},{set:function(t){I(t,r.type)&&z.type.set.call(this,e),z.src.set.call(this,t)}}),type:o(o({},z.type),{},{get:function(){var t=z.type.get.call(this);return t===e||I(this.src,t)?null:t},set:function(t){var n=I(r.src,r.type)?e:t;z.type.set.call(this,n)}})}),r.setAttribute=function(t,n){if("type"===t){var a=I(r.src,r.type)?e:n;z.type.set.call(r,a)}else"src"===t?(I(n,r.type)&&z.type.set.call(r,e),z.src.set.call(r,n)):HTMLScriptElement.prototype.setAttribute.call(r,t,n)}}catch(e){console.warn("Yett: unable to prevent script execution for script src ",r.src,".\n",'A likely cause would be because you are using a third-party browser extension that monkey patches the "document.createElement" function.')}return r},R.observe(document.documentElement,{childList:!0,subtree:!0}),T.observe(document.documentElement,{childList:!0,subtree:!0}))}();
5�</script>
5
6	
7	
8    
9
10    <!-- Start Google Tag Manager -->
11    
11<script>
vendor: 447 bytes, lines 11-19
11
12      (function (w, d, s, l, i) {
13        w[l] = w[l] || []; w[l].push({
14          'gtm.start':
15            new Date().getTime(), event: 'gtm.js'
16        }); var f = d.getElementsByTagName(s)[0],
17          j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src =
18            'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f);
19      })(window, document, 'script', 'dataLayer', '
19GTM-N5TB8CD
vendor: 8 bytes, lines 19-20
19');
20    
20</script>
20
21    <!-- End Google Tag Manager -->
22
23    <!-- Start VWO Async SmartCode -->
24    <link rel="preconnect" href="https://dev.visualwebsiteoptimizer.com">
25    
25<script type="text/javascript" id="vwoCode">
26      window._vwo_code || (function() {
27      var account_id=854085,
28      version=2.1,
29      settings_tolerance=2000,
30      hide_element='body',
31      hide_element_style = 'opacity:0 !important;filter:alpha(opacity=0) !important;background:none !important;transition:none !important;',
32      /* DO NOT EDIT BELOW THIS LINE */
33      f=false,w=window,d=document,v=d.querySelector('#vwoCode'),cK='_vwo_'+account_id+'_settings',cc={};try{var c=JSON.parse(localStorage.getItem('_vwo_'+account_id+'_config'));cc=c&&typeof c==='object'?c:{}}catch(e){}var stT=cc.stT==='session'?w.sessionStorage:w.localStorage;code={nonce:v&&v.nonce,use_existing_jquery:function(){return typeof use_existing_jquery!=='undefined'?use_existing_jquery:undefined},library_tolerance:function(){return typeof library_tolerance!=='undefined'?library_tolerance:undefined},settings_tolerance:function(){return cc.sT||settings_tolerance},hide_element_style:function(){return'{'+(cc.hES||hide_element_style)+'}'},hide_element:function(){if(performance.getEntriesByName('first-contentful-paint')[0]){return''}return typeof cc.hE==='string'?cc.hE:hide_element},getVersion:function(){return version},finish:function(e){if(!f){f=true;var t=d.getElementById('_vis_opt_path_hides');if(t)t.parentNode.removeChild(t);if(e)(new Image).src='https://dev.visualwebsiteoptimizer.com/ee.gif?a='+account_id+e}},finished:function(){return f},addScript:function(e){var t=d.createElement('script');t.type='text/javascript';if(e.src){t.src=e.src}else{t.text=e.text}v&&t.setAttribute('nonce',v.nonce);d.getElementsByTagName('head')[0].appendChild(t)},load:function(e,t){var n=this.getSettings(),i=d.createElement('script'),r=this;t=t||{};if(n){i.textContent=n;d.getElementsByTagName('head')[0].appendChild(i);if(!w.VWO||VWO.caE){stT.removeItem(cK);r.load(e)}}else{var o=new XMLHttpRequest;o.open('GET',e,true);o.withCredentials=!t.dSC;o.responseType=t.responseType||'text';o.onload=function(){if(t.onloadCb){return t.onloadCb(o,e)}if(o.status===200||o.status===304){_vwo_code.addScript({text:o.responseText})}else{_vwo_code.finish('&e=loading_failure:'+e)}};o.onerror=function(){if(t.onerrorCb){return t.onerrorCb(e)}_vwo_code.finish('&e=loading_failure:'+e)};o.send()}},getSettings:function(){try{var e=stT.getItem(cK);if(!e){return}e=JSON.parse(e);if(Date.now()>e.e){stT.removeItem(cK);return}return e.s}catch(e){return}},init:function(){if(d.URL.indexOf('__vwo_disable__')>-1)return;var e=this.settings_tolerance();w._vwo_settings_timer=setTimeout(function(){_vwo_code.finish();stT.removeItem(cK)},e);var t;if(this.hide_element()!=='body'){t=d.createElement('style');var n=this.hide_element(),i=n?n+this.hide_element_style():'',r=d.getElementsByTagName('head')[0];t.setAttribute('id','_vis_opt_path_hides');v&&t.setAttribute('nonce',v.nonce);t.setAttribute('type','text/css');if(t.styleSheet)t.styleSheet.cssText=i;else t.appendChild(d.createTextNode(i));r.appendChild(t)}else{t=d.getElementsByTagName('head')[0];var i=d.createElement('div');i.style.cssText='z-index: 2147483647 !important;position: fixed !important;left: 0 !important;top: 0 !important;width: 100% !important;height: 100% !important;background: white !important;';i.setAttribute('id','_vis_opt_path_hides');i.classList.add('_vis_hide_layer');t.parentNode.insertBefore(i,t.nextSibling)}var o=window._vis_opt_url||d.URL,s='https://dev.visualwebsiteoptimizer.com/j.php?a='+account_id+'&u='+encodeURIComponent(o)+'&vn='+version;if(w.location.search.indexOf('_vwo_xhr')!==-1){this.addScript({src:s})}else{this.load(s+'&x=true')}}};w._vwo_code=code;code.init();})();
34    </script>
34
35    <!-- End VWO Async SmartCode -->
36
37    <meta charset="utf-8">
38    <meta http-equiv="X-UA-Compatible" content="IE=edge">
39    <meta name="viewport" content="width=device-width,initial-scale=1">
40    <meta name="theme-color" content="">
41
42    <!-- Hide optins from search engines -->
43    
44    <!-- end -->
45
46    <link rel="canonical" href="https://birne.com/account/login">
47    <link rel="preconnect" href="https://fonts.googleapis.com">
48    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
49    <link href="https://fonts.googleapis.com/css2?family=Inter:[email protected]&display=swap" rel="stylesheet">
50    <link rel="preconnect" href="https://cdn.shopify.com" crossorigin>
51    
51<script
52      src="https://code.jquery.com/jquery-3.6.1.min.js"
53      integrity="sha256-o88AwQnZB+VDvE9tvIXrMQaPlFFSUTR+nldQm1LuPXQ="
54      crossorigin="anonymous"
55    ></script>
55
56
57    <link rel="icon" href="//birne.com/cdn/shop/t/31/assets/birne-favicon.ico?v=153530762366395047181756286066" sizes="32x32" ><link rel="icon" href="//birne.com/cdn/shop/files/birne-favicon.svg?v=1745846148" sizes="any" type="image/svg+xml"><link rel="apple-touch-icon" href="//birne.com/cdn/shop/files/birne-favicon.png?v=1756284715"/><link rel="preconnect" href="https://fonts.shopifycdn.com" crossorigin><title>
58      Účet
59 &ndash; Birne</title>
60
61    
62
63    
64
65
66  <meta name="description" content="Mít auto nebylo nikdy jednodušší – jasný měsíční poplatek, bez omezení kilometrů, vrácení kdykoliv. Birne není operák, je to něco víc. Je to vaše svoboda.">
67
68
69<meta property="og:site_name" content="Birne">
70<meta property="og:url" content="https://birne.com/account/login">
71<meta property="og:title" content="Účet">
72<meta property="og:type" content="website">
73<meta property="og:description" content="Mít auto nebylo nikdy jednodušší – jasný měsíční poplatek, bez omezení kilometrů, vrácení kdykoliv. Birne není operák, je to něco víc. Je to vaše svoboda."><meta property="og:image" content="http://birne.com/cdn/shop/files/Novy_projekt.png?v=1754547971">
74  <meta property="og:image:secure_url" content="https://birne.com/cdn/shop/files/Novy_projekt.png?v=1754547971">
75  <meta property="og:image:width" content="1280">
76  <meta property="og:image:height" content="628"><meta name="twitter:card" content="summary_large_image">
77<meta name="twitter:title" content="Účet">
78<meta name="twitter:description" content="Mít auto nebylo nikdy jednodušší – jasný měsíční poplatek, bez omezení kilometrů, vrácení kdykoliv. Birne není operák, je to něco víc. Je to vaše svoboda.">
79
80
81    
81<script src="//birne.com/cdn/shop/t/31/assets/global.js?v=166387562677912044971772458098" defer="defer"></script>
81
82    <!-- Lightbox CDN -->
83<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/glightbox/dist/css/glightbox.min.css">
84<script src="https://cdn.jsdelivr.net/gh/mcstudios/glightbox/dist/js/glightbox.min.js"></script>
84
85
86<script>
87  window.generateOptinIcon = function generateOptinIcon(optinName){
88  const icons = [
89    {
90      name: "Navýšení smluvního nájezdu na 20 000 km",
91      icon: `
92
93
94  <svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
95    <path d="M3.49984 21C3.49984 22.2887 4.54447 23.3334 5.83317 23.3334C7.12187 23.3334 8.1665 22.2887 8.1665 21C8.1665 19.7113 7.12187 18.6667 5.83317 18.6667C4.54447 18.6667 3.49984 19.7113 3.49984 21Z" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
96    <path d="M18.0833 7.58337C15.8282 7.58337 14 9.41154 14 11.6667V18.0834" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
97    <path d="M18.0833 7.58329H24.5M24.5 7.58329L20.4167 3.49996M24.5 7.58329L20.4167 11.6666" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
98    <path d="M14 18.0833C14 19.6942 12.6942 21 11.0833 21H8.4" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
99  </svg>  
100
101`,
102    },
103    {
104      name: "Navýšení smluvního nájezdu na 30 000 km",
105      icon: `
106
107
108  <svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
109    <path d="M20.9998 19.25V3.5M20.9998 3.5L25.0832 7.58333M20.9998 3.5L16.9165 7.58333" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
110    <path d="M21.0002 19.25C21.0002 21.5052 19.172 23.3333 16.9168 23.3333C14.6617 23.3333 12.8335 21.5052 12.8335 19.25V8.75" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
111    <path d="M12.8332 8.74996C12.8332 6.49479 11.005 4.66663 8.74984 4.66663C6.49467 4.66663 4.6665 6.49479 4.6665 8.74996V17.7388" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
112    <path d="M4.66683 23.3333C3.37813 23.3333 2.3335 22.2887 2.3335 21C2.3335 19.7113 3.37813 18.6666 4.66683 18.6666C5.95553 18.6666 7.00016 19.7113 7.00016 21C7.00016 22.2887 5.95553 23.3333 4.66683 23.3333Z" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
113  </svg> 
114  
115  `,
116    },
117    {
118      name: "Navýšení smluvního nájezdu na 10 000 km/6 měsíců",
119      icon: `
120
121
122    <svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
123      <path d="M20.9998 19.25V3.5M20.9998 3.5L25.0832 7.58333M20.9998 3.5L16.9165 7.58333" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
124      <path d="M21.0002 19.25C21.0002 21.5052 19.172 23.3333 16.9168 23.3333C14.6617 23.3333 12.8335 21.5052 12.8335 19.25V8.75" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
125      <path d="M12.8332 8.74996C12.8332 6.49479 11.005 4.66663 8.74984 4.66663C6.49467 4.66663 4.6665 6.49479 4.6665 8.74996V17.7388" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
126      <path d="M4.66683 23.3333C3.37813 23.3333 2.3335 22.2887 2.3335 21C2.3335 19.7113 3.37813 18.6666 4.66683 18.6666C5.95553 18.6666 7.00016 19.7113 7.00016 21C7.00016 22.2887 5.95553 23.3333 4.66683 23.3333Z" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
127    </svg>  
128
129`,
130    },
131    {
132      name: "Zimní pneumatiky",
133      icon: `
134
135
136  <svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
137    <path d="M3.5 8.1733L7.58333 10.5066M7.58333 10.5066L14 14.0066M7.58333 10.5066L3.5 11.6733M7.58333 10.5066L7 6.4233M24.5 19.84L20.4167 17.5066M20.4167 17.5066L14 14.0066M20.4167 17.5066L21 21.59M20.4167 17.5066L24.5 16.34M14 14.0066L7.58333 17.5066M14 14.0066V5.83997M14 14.0066V21.59M14 14.0066L20.4167 10.5066M7.58333 17.5066L3.5 19.84M7.58333 17.5066L3.5 16.34M7.58333 17.5066L7 21.59M14 5.83997V2.33997M14 5.83997L11.0833 4.6733M14 5.83997L16.9167 4.6733M14 21.59V25.6733M14 21.59L16.9167 23.34M14 21.59L11.0833 23.34M20.4167 10.5066L24.5 8.1733M20.4167 10.5066L24.5 11.6733M20.4167 10.5066L21 6.4233" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
138  </svg>   
139
140`,
141    },
142    {
143      name: "Rozšířené krytí",
144      icon: `
145
146
147<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
148  <path d="M5 4.604V13.789C5.00001 14.4475 5.16257 15.0957 5.47326 15.6763C5.78395 16.2568 6.23315 16.7517 6.781 17.117L12 20.597L17.219 17.117C17.7667 16.7518 18.2158 16.2571 18.5265 15.6767C18.8372 15.0964 18.9998 14.4483 19 13.79V4.604L12 3.05L5 4.604ZM3.783 2.826L12 1L20.217 2.826C20.4391 2.87536 20.6377 2.99897 20.78 3.1764C20.9224 3.35384 21 3.57452 21 3.802V13.789C20.9999 14.7767 20.756 15.7492 20.2899 16.62C19.8238 17.4908 19.1499 18.2331 18.328 18.781L12 23L5.672 18.781C4.85027 18.2332 4.17646 17.4911 3.71035 16.6205C3.24424 15.7498 3.00024 14.7776 3 13.79V3.802C3.00004 3.57452 3.07764 3.35384 3.21999 3.1764C3.36234 2.99897 3.56094 2.87536 3.783 2.826ZM12 13.5L9.061 15.045L9.622 11.773L7.245 9.455L10.531 8.977L12 6L13.47 8.977L16.755 9.455L14.378 11.773L14.938 15.045L12 13.5Z" fill="#262938"/>
149</svg>
150
151`,
152    },
153    {
154      name: "Krytí drobných",
155      icon: `
156
157
158<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
159  <path d="M5 4.604V13.789C5.00001 14.4475 5.16257 15.0957 5.47326 15.6763C5.78395 16.2568 6.23315 16.7517 6.781 17.117L12 20.597L17.219 17.117C17.7667 16.7518 18.2158 16.2571 18.5265 15.6767C18.8372 15.0964 18.9998 14.4483 19 13.79V4.604L12 3.05L5 4.604ZM3.783 2.826L12 1L20.217 2.826C20.4391 2.87536 20.6377 2.99897 20.78 3.1764C20.9224 3.35384 21 3.57452 21 3.802V13.789C20.9999 14.7767 20.756 15.7492 20.2899 16.62C19.8238 17.4908 19.1499 18.2331 18.328 18.781L12 23L5.672 18.781C4.85027 18.2332 4.17646 17.4911 3.71035 16.6205C3.24424 15.7498 3.00024 14.7776 3 13.79V3.802C3.00004 3.57452 3.07764 3.35384 3.21999 3.1764C3.36234 2.99897 3.56094 2.87536 3.783 2.826ZM12 13.5L9.061 15.045L9.622 11.773L7.245 9.455L10.531 8.977L12 6L13.47 8.977L16.755 9.455L14.378 11.773L14.938 15.045L12 13.5Z" fill="#262938"/>
160</svg>
161
162`,
163    },
164    {
165      name: "Kompletní servis do 70 000 km/rok",
166      icon: `
167
168
169  <svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
170    <path d="M11.7255 12.3811L3.4759 20.6307C2.56467 21.5419 2.56467 23.0192 3.4759 23.9305C4.38711 24.8417 5.8645 24.8417 6.77572 23.9305L15.0253 15.6809" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
171    <path d="M11.7252 12.381C10.7407 9.86912 10.9332 6.57331 12.9626 4.54388C14.9921 2.51444 18.7373 2.069 20.7997 3.30644L17.2522 6.85389L16.9225 10.4834L20.552 10.1537L24.0995 6.60626C25.337 8.66866 24.8916 12.414 22.862 14.4434C20.8326 16.4728 17.5368 
17116.6653 15.025 15.6808" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
172  </svg>
173
174`,
175    },
176    {
177      name: "Kompletní servis nad 70 000 km/rok",
178      icon: `
179
180
181  <svg width="28" height="29" viewBox="0 0 28 29" fill="none" xmlns="http://www.w3.org/2000/svg">
182    <path d="M11.7255 12.8743L3.4759 21.1239C2.56467 22.0351 2.56467 23.5124 3.4759 24.4237C4.38711 25.3349 5.8645 25.3349 6.77572 24.4237L15.0253 16.1741" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
183    <path d="M11.7252 12.8743C10.7407 10.3624 10.9332 7.06659 12.9626 5.03716C14.9921 3.00772 18.7373 2.56229 20.7997 3.79973L17.2522 7.34718L16.9225 10.9767L20.552 10.647L24.0995 7.09955C25.337 9.16195 24.8916 12.9073 22.862 14.9367C20.8326 16.9661 17.5368 17.1586 15.025 16.1741" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
184    <path d="M2.3335 6.50008H4.66683M4.66683 6.50008H7.00016M4.66683 6.50008V4.16675M4.66683 6.50008V8.83342" stroke="#809F99" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
185  </svg>
186
187`,
188    },
189    {
190      name: "Havarijní pojištění",
191      icon: `
192
193
194  <svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
195    <path d="M23.3834 24.5066H4.61658C2.82221 24.5066 1.69937 22.5657 2.5938 21.0102L11.9773 4.69111C12.8744 3.1308 15.1256 3.13079 16.0228 4.6911L25.4063 21.0102C26.3007 22.5657 25.1779 24.5066 23.3834 24.5066Z" stroke="#004033" stroke-width="1.5" stroke-linecap="round"/>
196    <path d="M14 10.5066V15.1733" stroke="#004033" stroke-width="1.5" stroke-linecap="round"/>
197    <path d="M14 19.8516L14.0117 19.8386" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
198  </svg>
199  
200`,
201    },
202    {
203      name: "Garance mobility",
204      icon: `
205
206
207  <svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
208    <path d="M9.3335 11.6732H18.6668" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
209    <path d="M8.1665 16.34H9.33317" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
210    <path d="M18.6665 16.34H19.8332" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
211    <path d="M3.5 21.0066V13.3188C3.5 13.0029 3.56419 12.6901 3.68866 12.3997L6.39392 6.0874C6.7616 5.22947 7.6052 4.67322 8.53859 4.67322H19.4614C20.3949 4.67322 21.2384 5.22947 21.6061 6.0874L24.3114 12.3997C24.4358 12.6901 24.5 13.0029 24.5 13.3188V21.0066M3.5 21.0066V23.8066C3.5 24.1932 3.8134 24.5066 4.2 24.5066H7.46667C7.85327 24.5066 8.16667 24.1932 8.16667 23.8066V21.0066M3.5 21.0066H8.16667M24.5 21.0066V23.8066C24.5 24.1932 24.1866 24.5066 23.8 24.5066H20.5333C20.1467 24.5066 19.8333 24.1932 19.8333 23.8066V21.0066M24.5 21.0066H19.8333M8.16667 21.0066H19.8333" stroke="#004033" stroke-width="1.5"/>
212  </svg>  
213
214`,
215    },
216    {
217      name: "Zkrácení období",
218      icon: `
219
220
221  <svg width="28" height="28" viewBox="0 0 28 28" fill="none" xmlns="http://www.w3.org/2000/svg">
222    <path d="M17.5 4.6733V2.33997M17.5 4.6733V7.00663M17.5 4.6733H12.25M3.5 11.6733V22.1733C3.5 23.462 4.54467 24.5066 5.83333 24.5066H22.1667C23.4554 24.5066 24.5 23.462 24.5 22.1733V11.6733H3.5Z" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
223    <path d="M3.5 11.6732V7.00655C3.5 5.71789 4.54467 4.67322 5.83333 4.67322H8.16667" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
224    <path d="M8.1665 2.33997V7.00663" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
225    <path d="M24.5002 11.6732V7.00655C24.5002 5.71789 23.4555 4.67322 22.1668 4.67322H21.5835" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
226  </svg>
227
228`,
229    }
230  ]
231  
232  const filtered = icons.filter(icon => optinName.includes(icon.name));
233  
234  if(filtered.length != 0){
235    return filtered[0].icon
236  }
237  
238  return ""
239  }
240  
241  // ANCHOR: Global functions 
242  function waitForElement(selector) {
243  return new Promise(resolve => {
244      if (document.querySelector(selector)) {
245          return resolve(document.querySelector(selector));
246      }
247  
248      const observer = new MutationObserver(mutations => {
249          if (document.querySelector(selector)) {
250              resolve(document.querySelector(selector));
251              observer.disconnect();
252          }
253      });
254  
255      observer.observe(document.body, {
256          childList: true,
257          subtree: true
258      });
259  });
260  }
261  
262  async function removeAllItemsFromCart(){
263  const cartBeforeEmptied =  await fetch("/cart.js").then(response => { return response.json()})
264    fetch(window.Shopify.routes.root + 'cart/clear.js', {
265      method: 'POST',
266      headers: {
267          'Content-Type': 'application/json',
268        },
269      body: JSON.stringify({})
270    }).then(response => {
271      if(response.ok && cartBeforeEmptied.items.length) {
272        document.dispatchEvent(new CustomEvent("remove-from-cart", {'detail': cartBeforeEmptied}
272));
273      }
274      return window.location.reload()
275    })
276  }
277  
278  
279  
280  
281  function printError(msg){
282    let errorElement = document.querySelector('#error_code');
283    return errorElement.innerText = msg
284  }
285  
286  function loading(status, selector) {
287  // requires CSS! (tailwind.css) 
288  let locationToAppend
289  let spinnerExists = document.querySelector("#loading")
290  
291  if(selector){
292    locationToAppend = document.querySelector(selector)
293  } else {
294    locationToAppend = document.body
295  }
296  if(!locationToAppend) return
297  if (status == 'start' && !spinnerExists ) return locationToAppend.insertAdjacentHTML("beforeend", `<div id="loading"></div>`);
298  if (status == 'stop' && spinnerExists) return document.querySelector('#loading')?.remove();
299  }
300  
301  function setCookiesConsentToGoogleTag(){
302  function gtag(){ dataLayer.push(arguments); }
303  
304  // Default send (first load)
305  if (localStorage.getItem('consent_send_to_gtag') != 'true'){
306  
307    console.log("default =  DENIED");
308  
309    gtag('consent', 'default', {
310      'ad_storage': 'denied',
311      'analytics_storage': 'denied'
312    });
313  
314  }
315  
316  if(localStorage.getItem('consent') == true) {
317    console.log("default = GRANTED")
318    gtag('consent', 'default', {
319      'ad_storage': 'granted',
320      'analytics_storage': 'granted'
321    });
322  }
323  
324  // Listen to button pressed
325  async function setConsentToLocalStorage() {
326      await waitForElement('#cookies-wrapper');
327      const dismiss = document.querySelector('#cookies-dismiss');
328      const accept = document.querySelector('#cookies-submit');
329      const acceptAll = document.querySelector('#cookies-action .btn-all')
330      const btnSelect = document.querySelector('#cookies-action .btn-select')
331  
332      const buttonClick = new Promise(resolve => {
333        dismiss.addEventListener('click', event => {
334          resolve(0)
335        })
336        accept.addEventListener('click', event => {
337          resolve(1)
338        })
339  
340        acceptAll.addEventListener('click', event => {
341          resolve(1)
342        })
343  
344        btnSelect.addEventListener('click', event => {
345          resolve(0)
346        })
347      })
348  
349      return new Promise(resolve => {
350        buttonClick.then(resolve => {
351          localStorage.setItem("consent", resolve);
352        }).then(e => {
353          resolve()
354        })
355      })
356  }
357  
358  
359  function getConsentFromLocalStorage() { 
360    if (localStorage.getItem("consent")) return JSON.parse(localStorage.getItem("consent"));
361    return false
362  }
363  
364  async function getConsent(){
365    if(getConsentFromLocalStorage()) return getConsentFromLocalStorage()
366    await setConsentToLocalStorage();
367    return getConsentFromLocalStorage();
368  }
369  
370  async function sendUserConsentToGTM(){
371    let consent = await getConsent();
372  
373    if(consent == 1 && localStorage.getItem('consent_send_to_gtag') != 'true') {
374      localStorage.setItem('consent_send_to_gtag', 'true');
375      console.log("updated = GRANTED")
376      return gtag('consent', 'update', {
377        'ad_storage': 'granted',
378        'analytics_storage': 'granted'
379      });
380    }
381  }
382  
383  sendUserConsentToGTM()  
384  }
385  
386  async function changeItemAPI(body, reloadAfterSuccess){
387  await fetch(window.Shopify.routes.root + 'cart/change.js', {
388    method: 'POST',
389    headers: {
390      'Content-Type': 'application/json'
391    },
392    body: JSON.stringify(body)
393  }).then(response => {
394      if(response.ok) return response.json();
395      return Promise.reject(response);
396    }).then(json => {
397      if(reloadAfterSuccess) return location.reload()  
398    }).catch(response => {
399      console.log(response.status)
400    })
401  }
402  
403  async function emptyCart(){
404  return await fetch(window.Shopify.routes.root + 'cart/clear.js', {
405    method: 'POST',
406    headers: {
407          'Content-Type': 'application/json',
408        },
409    body: JSON.stringify({})
410  })
411  }
412  
413  async function addItemAPI(body, reloadAfterSuccess){
414  await fetch(window.Shopify.routes.root + 'cart/add.js', {
415    method: 'POST',
416    headers: {
417      'Content-Type': 'application/json'
418    },
419    body: JSON.stringify(body)
420  }).then(response => {
421      if(response.ok) return response.json();
422      return Promise.reject(response);
423    }).then(json => {
424      if(reloadAfterSuccess) return location.reload()  
425    }).catch(response => {
426      console.log(response.status)
427    })
428  }
429  
430  async function getCart(){
431  return await fetch(window.Shopify.routes.root + 'cart.js').then(response => {
432    if(response.ok) return response.json();
433  }).then(data => {
434    return data
435  })
436  }
437  
438  function checkedVerification(checkbox, buttonToDisable){
439  const checkboxNode = document.querySelector(checkbox);
440  const buttonNode = document.querySelector(buttonToDisable);
441  
442  function disable(status, node){
443  
444    if(status === true){
445      node.setAttribute('disabled', '');
446      node.style.cursor = 'not-allowed';
447  
448    } else if (status === false) {
449      buttonNode.removeAttribute('disabled');
450      node.style.cursor = 'pointer';
451    }
452  }
453  
454  function verify(status){
455    if(!status) return disable(true, buttonNode);
456    return disable(false, buttonNode);
457  }
458  
459  if(!checkboxNode) return
460  
461  checkboxNode.addEventListener('change', event => {
462    verify(event.target.checked)
463  })
464  
465  if (!checkboxNode.checked) return verify(false)
466  }
467  
468  function goBack(index) {
469  history.go(index)
470  localStorage.setItem("backFromStep", true);
471  }
472  
473  function triggerModal(e, id){
474  if(e){
475    e.stopPropagation()
476  }
477  
478  const modal = document.querySelector(id);
479  const modalInner = modal.querySelector("div");
480  const dialogCloser = modal.querySelector(".dialog-closer");
481  
482  modal.showModal();
483  
484  if(dialogCloser) {
485    dialogCloser.addEventListener("click", () => {
486      modal.close();
487    })
488  }
489  
490  modal.addEventListener("click", e => {
491    modal.close()
492  })
493  
494  modalInner.addEventListener("click", e => {
495    e.stopPropagation()
496  })
497  }
498  
499  $(document).ready(function () {
500  checkedVerification('#consent_checkbox', '#consent_button')
501  });
502  
503  
504  class IEGlobals {
505  constructor(){
506  
507  }
508  static formatCurrency(){
509    return new Intl.NumberFormat("cs-CZ", {
510        style: 'currency',
511        minimumFractionDigits: 0,
512        maximumFractionDigits: 0,
513        currency: Shopify.currency.active
514      })
515  }
516  
517  static formatDate(date){
518    const options = { year: 'numeric', month: 'numeric', day: 'numeric' };
519    return date.toLocaleDateString("cs-CZ", options)
520  }
521  
522  static getCookieValue(name) {
523    const cookiePattern = new RegExp('(?:^|; )' + encodeURIComponent(name) + '=([^;]*)');
524    const result = cookiePattern.exec(document.cookie);
525    return result ? decodeURIComponent(result[1]) : null;
526  }
527  }
528  
529  class CustomDiscountHandler {
530  #priceSelectors = {
531      product: ".label__custom [data-price]:not(.pp-original-price)",
532      collection: ".cell-price [data-price]",
533      collectionTryNBuy: ".js-product-card .discounted-price[data-price]",
534      tryNBuySpecialElement: ".js-try-n-buy-special [data-price]",
535      cart: ".car [data-price]"
536    }
537  
538  constructor () {
539    this.discountCookieName = "discount_code";
540    this.discountValue = "";
541    this.discountPercentage = 0;
542    this.elementsToDiscount;
543    this.init();
544  }
545  
546  getDiscountPercentageFromDiscountName(){
547    const match = this.discountValue.match(/\d+/);
548    return match ? parseInt(match[0], 10) : null; 
549  }
550  
551  getPromoCode(){
552    if(this.discountValue) return this.discountValue;
553    return ""
554  }
555  
556  getElements(){
557    const query = `${ this.#priceSelectors.product }, ${ this.#priceSelectors.tryNBuySpecialElement }, ${ this.#priceSelectors.collection }, ${ this.#priceSelectors.collectionTryNBuy }, ${ this.#priceSelectors.cart }`
558    return document.querySelectorAll(query)
559  }
560  
561  setDiscountedPrice(originalPrice){
562    if(this.discountPercentage <= 0) return originalPrice;
563    const discountAmount = (originalPrice * this.discountPercentage) / 100;
564    return originalPrice - discountAmount
565  }
566  
567  discountFrontendPrices(){
568    if(this.discountPercentage <= 0) return;
569    this.elementsToDiscount = this.getElements();
570  
571    this.elementsToDiscount.forEach(el => {
572      el.dataset.price = this.setDiscountedPrice(el.dataset.price)
573    })
574  }
575  
576  
577  
578  extendCookieExpiration(cookieName) {
579    if(this.getCookie("discountCodeExpirationSet") === "true") return;
580  
581    let cookieValue = document.cookie
582        .split('; ')
583        .find(row => row.startsWith(cookieName + '='))
584        ?.split('=')[1];
585  
586        if (cookieValue) {
587        let expirationDate = new Date();
588        expirationDate.setDate(expirationDate.getDate() + 1);
589  
590        let expires = expirationDate.toUTCString();
591  
592        document.cookie = `${cookieName}=${cookieValue}; expires=${expires}; path=/`;
593        this.setCookie('discountCodeExpirationSet', 'true', 1); 
594    }
595  }
596  
597  getCookie(cookieName) {
598    let cookieString = document.cookie
599        .split('; ')
600        .find(row => row.startsWith(cookieName + '='));
601  
602    if (cookieString) {
603        return decodeURIComponent(cookieString.split('=')[1]);
604    } else {
605        return null;
606    }
607  }
608  
609  
610  setCookie(cookieName, cookieValue, daysUntilExpire = null) {
611    let cookieData = true;
612  
613    let cookieString = `${cookieName}=${encodeURIComponent(JSON.stringify(cookieData))}; path=/`;
614  
615    if (daysUntilExpire) {
616        let expirationDate = new Date();
617        expirationDate.setDate(expirationDate.getDate() + daysUntilExpire);
618        cookieString += `; expires=${expirationDate.toUTCString()}`;
619    }
620  
621    document.cookie = cookieString;
622  }
623  
624  reSetCookieExpiration(){
625    this.extendCookieExpiration(this.discountCookieName);
626  }
627  
628  removeDiscount(){
629    document.cookie = this.discountCookieName + '=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;';
630    location.reload();
631  }
632  
633  init(){
634    this.discountValue = IEGlobals.getCookieValue(this.discountCookieName);
635    if(!this.discountValue) return;
636    this.discountPercentage = this.getDiscountPercentageFromDiscountName();
637    this.reSetCookieExpiration()
638  }
639  
640  }
641  
642  const customDiscountHandler = new CustomDiscountHandler();
643  document.addEventListener("DOMContentLoaded", e => {
644  customDiscountHandler.discountFrontendPrices()
645  })
646  
647  
648  class SnackBars {
649  constructor(){
650    this.popupSelector = ".snackbar-popup";
651  }
652  
653  close(event){
654    if(event.target.closest(this.popupSelector)){
655      event.target.closest(this.popupSelector).remove();
656    }
657  }
658  
659  
660  alert(msg, title){
661    title = title || "Došlo k chybě"
662    msg = msg || "Došlo k chybě zkuste prosím znovu, anebo kontaktujte naši technickou podporu."
663    
664    const html = `
665<div class="snackbar-popup tw-fixed tw-translate-x-[-50%] tw-top-[50%] tw-z-[999999] tw-left-1/2">
666
667
668<div class="tw-rounded-md tw-border-[1px] tw-border-solid tw-max-w-[360px] tw-p-[18px] tw-flex tw-items-start tw-justify-between tw-gap-[8px] 
669     
670         tw-bg-errorLight tw-border-error  
671    ">
672    
673    
674        <div>
675            
676                <svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg">
677<path d="M12 22.9727C6.477 22.9727 2 18.4957 2 12.9727C2 7.44966 6.477 2.97266 12 2.97266C17.523 2.97266 22 7.44966 22 12.9727C22 18.4957 17.523 22.9727 12 22.9727ZM12 20.9727C14.1217 20.9727 16.1566 20.1298 17.6569 18.6295C19.1571 17.1292 20 15.0944 20 12.9727C20 10.8509 19.1571 8.81609 17.6569 7.3158C16.1566 5.81551 14.1217 4.97266 12 4.97266C9.87827 4.97266 7.84344 5.81551 6.34315 7.3158C4.84286 8.81609 4 10.8509 4 12.9727C4 15.0944 4.84286 17.1292 6.34315 18.6295C7.84344 20.1298 9.87827 20.9727 12 20.9727ZM11 15.9727H13V17.9727H11V15.9727ZM11 7.97266H13V13.9727H11V7.97266Z" fill="#BC1514"/>
678</svg>
679
680            
681        </div>
682    
683    
684    <div class="tw-w-full">
685         
686            <p class="tw-font-[700] tw-text-primaryDarker tw-text-[16px] tw-leading-[24px] tw-m-0">${ title }</p>
687        
688        <p class=" tw-text-primaryDarker
689         tw-text-[16px] tw-leading-[24px] tw-m-0 snackbar-description">${ msg }</p>
690    </div>
691    
692     
693        <div class="tw-cursor-pointer" onclick="snackBars.close(event)">
694            <svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg">
695<path d="M12 11.5594L16.95 6.60938L18.364 8.02338L13.414 12.9734L18.364 17.9234L16.95 19.3374L12 14.3874L7.04999 19.3374L5.63599 17.9234L10.586 12.9734L5.63599 8.02338L7.04999 6.60938L12 11.5594Z" fill="#262938"/>
696</svg>
697
698        </div>
699    
700</div>
701
702
703</div>
704`;
705    document.body.insertAdjacentHTML("beforebegin", html);
706  }
707  }
708  
709  class FilterVariants {
710    constructor() {
711    }
712  
713    getSortType(){
714      const params = new URLSearchParams(location.search);
715      return params.get("sort_by")
716    }
717  
718  
719    sortVariantsByPrice(){
720      // type = "price-ascending", "price-descending";
721      if(!this.isTarifPicked()) return
722      const sortType = this.getSortType();
723      const container = document.querySelector('#product-grid');
724      const carsInGrid = Array.from(document.querySelectorAll("#product-grid > a"));
725  
726  
727      carsInGrid.sort((a, b) => {
728        const priceA = parseFloat(a.querySelector("[data-price]").dataset.price);
729        const priceB = parseFloat(b.querySelector("[data-price]").dataset.price);
730  
731  
732        if(sortType == "price-ascending") return priceA - priceB;
733        if(sortType == "price-descending") return priceB - priceA;
734      })
735      
736      container.innerHTML = '';
737      
738      carsInGrid.forEach(product => {
739        container.appendChild(product);
740      });
741    }
742  
743  
744    onlyOneCheckPossibleForTarif() {
745      const tarifCheckboxes = document.querySelectorAll("input[type='checkbox'].tarif-checkbox");
746  
747      if (tarifCheckboxes.length > 0) {
748        tarifCheckboxes.forEach(box => {
749          box.addEventListener('click', () => {
750            if (box.checked) {
751              tarifCheckboxes.forEach(otherBox => {
752                otherBox.checked = false;
753              });
754              box.checked = true;
755            } else {
756              box.checked = false;
757            }
758          });
759        });
760      }
761    }
762  
763    getVariantData(){
764      return document.querySelectorAll("[data-variants]")
765    }
766  
767    isTarifPicked(){
768      const params = new URLSearchParams(location.search);
769      return params.has("filter.v.option.tarif")
770    }
771  
772    getTarifValue(){
773      const params = new URLSearchParams(location.search);
774      return params.get("filter.v.option.tarif").split(" – ")[0]; 
775    }
776  
777    defaultState(){
778      // Default state should be set by filter ajax refresh in facets.js, it doesnt need standalone function for reseting the state.
779      return 
780    }
781  
782    variantState(varData, carContext){
783      const price = carContext.querySelector("[data-price]");
784      const from = carContext.querySelector("[data-from]");
785      price.dataset.price = varData.price;
786      from.innerText = varData.option1
787  
788    }
789  
790    changePricesForPickedVariants(){
791  
792      this.getVariantData().forEach(car => {
793        const carWrapper = car.closest(".js-product-card");
794        if(!this.isTarifPicked()) return this.defaultState();
795  
796        const tarif = this.getTarifValue()
797        const carVariantsData = JSON.parse(car.dataset.variants);
798        const pickedVariantData = carVariantsData.filter(el => tarif == el.option1);
799        this.variantState(pickedVariantData[0], carWrapper);
800      })
801    }
802  
803  
804  
805    init() {
806      
807      this.onlyOneCheckPossibleForTarif();
808      this.changePricesForPickedVariants();
809      this.sortVariantsByPrice();
810    }
811  }
812  
813  
814  document.addEventListener("DOMContentLoaded", e => {
815    new FilterVariants().init()
816    
817    document.body.addEventListener("facetsFiltered", e => {
818      new FilterVariants().init()
819    });
820  
821    // infinite scroll
822    document.addEventListener("collectionScrollRendered", e => {
823      new FilterVariants().init()
824    });
825  })
826  
827  
828  
829  const snackBars = new SnackBars()
830  
831  
832  
833  
834  // ANCHOR: Complex functions
835  // ANCHOR: PRODUCT PAGE SCRIPTS
836  
837  // ANCHOR: HANDLE PP
838  // INFO:
839  // 
840  // 
841  // This script handles multiple custom solutions for Birne's product page and extends Dawn theme.
842  // 
843  // 1) Handles optins
844  //  adds optional products (optins) to cart with main product when checked with input
845  //  group optins to chosen product variant (hides elements on frontend)
846  //  and other logic
847  // 
848  // 2) Adds advance product to cart with main product (advanceProductID). EDIT: advanceProductID is added via liquid, so it's dynamic. (main-product.liquid)
849  // 3) Dynamicaly change price in variant inputs
850  // 
851  // Script can be extended when handlling anything on Product page
852  // 
853  // 
854  // CREATED BY: Vojtěch Smutný, IdealEshop 2022
855  
856  
857  const OPTINS_DEFAULT = {
858  selectors: {
859    form: "[data-type='add-to-cart-form']",
860    optin: {
861      formInput: ".optins",
862      CheckboxInput: {
863        all: "[data-pair]",
864        onlyActive: `[data-pair]:not(.${this.hiddenClass})`,
865      },
866    },
867    variant: "[data-pair-input]",
868    variantPrice: ".js-sme-variant-price",
869    optinPrice: "[data-optin-price]",
870    colorInputs: ".ie-color-input",
871    totalPrice: "[data-total-price]"
872  },
873  hiddenClass: "tw-hidden"
874  };
875  
876  class HandlePP {
877  constructor(options) {
878    Object.entries({ ...OPTINS_DEFAULT, ...options }).forEach(
879      ([key, value]) => {
880        this[key] = value;
881        this.variants = document.querySelectorAll(this.selectors.variant);
882        this.colorInputs = document.querySelectorAll(this.selectors.colorInputs);
883        this.variantsPrice = document.querySelectorAll(
884          this.selectors.variantPrice
885        );
886        this.optinsCheckbox = document.querySelectorAll(
887          this.selectors.optin.CheckboxInput.all + " input"
888        );
889        this.form = document.querySelector(this.selectors.form);
890  
891        this.variantsInitialPrice = [];
892      }
893    );
894  }
895  
896  // Add price to variants
897  setPriceToVariants(addition = 0, current_optin) {
898    this.variantsPrice.forEach((variant) => {
899      // Checkbox setting - so it doesnt add optin price to other product variants
900      if (current_optin) {
901        let variantGroup = document.getElementById(
902          variant.closest("label").getAttribute("for")
903        ).dataset.pairInput;
904        let optinGroup = current_optin.closest("li").dataset.pair;
905  
906        if (addition > 0 && variantGroup == optinGroup) {
907          if (current_optin.checked) {
908            variant.dataset.price = this.addPrice(
909              variant.dataset.price,
910              addition
911            );
912          } else {
913            variant.dataset.price = this.minusPrice(
914              variant.dataset.price,
915              addition
916            );
917          }
918        }
919      }
920  
921      variant.innerText = new Intl.NumberFormat("cs-CZ", {
922        style: 'currency',
923        minimumFractionDigits: 0,
924        maximumFractionDigits: 0,
925        currency: Shopify.currency.active
926      }).format(parseInt(variant.dataset.price / 100));
927    });
928  }
929  
930  formatCurrency(){
931    return new Intl.NumberFormat("cs-CZ", {
932        style: 'currency',
933        minimumFractionDigits: 0,
934        maximumFractionDigits: 0,
935        currency: Shopify.currency.active
936      })
937  }
938  
939  initPriceToVariants() {
940    this.variantsPrice.forEach((variant) => {
941      variant.innerText = IEGlobals.formatCurrency().format(parseInt(variant.dataset.price / 100))
942    });
943  }
944  
945  addPrice(a, b) {
946    return parseInt(a) + parseInt(b);
947  }
948  
949  minusPrice(a, b) {
950    return parseInt(a) - parseInt(b);
951  }
952  
953  // Add záloha
954  addAdvanceToForm() {
955    if(this.advanceProductID == "") return
956    
957    return this.form.insertAdjacentHTML(
958      "beforeend",
959      `<input type="hidden" class="optins" name="id[]" value="${this.advanceProductID}"></input>`
960    );
961  }
962  
963  // Add optins price to variants dynamically
964  
965  addOptinsPrice(optin) {
966    let optinPrice = optin.closest(this.selectors.optinPrice);
967    this.setPriceToVariants(optinPrice.dataset.optinPrice, optin);
968  }
969  
970  // Reset price
971  assignVariantsInitialPrice() {
972    this.variantsPrice.forEach((variant) => {
973      this.variantsInitialPrice.push(variant.dataset.price);
974    });
975  }
976  
977  resetVariantsToInitialPrice() {
978    this.variantsPrice.forEach((variant, index) => {
979      variant.dataset.price = this.variantsInitialPrice[index];
980    });
981  }
982  
983  setPreviousCollectionUrlToBackButton(){
984    const url = sessionStorage.getItem("facet-filtered-url");
985    const button = document.querySelector("#js-go-back");
986    if(!url || !button) return
987  
988    return button.href = url
989  }
990  
991  // Filters optins when select variant
992  filterOptins(variant) {
993    let hiddenClass = this.hiddenClass;
994    let allOptinCheckboxes = document.querySelectorAll(
995      this.selectors.optin.CheckboxInput.all
996    );
997  
998    function optinsToggle(variant_id) {
999      allOptinCheckboxes.forEach((checkbox) => {
1000        if (checkbox.dataset.pair == variant_id)
1001          return checkbox.classList.remove(hiddenClass);
1002        return checkbox.classList.add(hiddenClass);
1003      });
1004    }
1005  
1006    if (variant.checked) return optinsToggle(variant.dataset.pairInput);
1007  }
1008  // Adds optin input with id to CART FORM to be sent later via submit button to backend
1009  addOptinsAsInput() {
1010    let activeOptinsCheckboxes = document.querySelectorAll(
1011      this.selectors.optin.CheckboxInput.onlyActive + " input"
1012    );
1013  
1014  
1015    activeOptinsCheckboxes.forEach((optin) => {
1016      let optinInputInCartForm = document.querySelector(
1017        `.optins[value='${optin.id}']`
1018      );
1019  
1020      // Přidávání inputů s ohledem na duplikáty
1021      if (optin.checked && !optinInputInCartForm) {
1022        return this.form.insertAdjacentHTML(
1023          "beforeend",
1024          `<input type="hidden" class="optins" name="id[]" value="${optin.id}"></input>`
1025        );
1026      }
1027  
1028      // Mazání odšrtlých
1029      if (!optin.checked && optinInputInCartForm) {
1030        optinInputInCartForm.remove();
1031      }
1032    });
1033  }
1034  
1035  // Remove optin from cart lane when switching variants
1036  removeOptinsWhenSwitchVariants() {
1037    let optinForm = document.querySelectorAll(this.selectors.optin.formInput);
1038  
1039    optinForm.forEach((optin) => {
1040      optin.remove();
1041    });
1042  
1043    this.optinsCheckbox.forEach((checkbox) => {
1044      checkbox.checked = false;
1045    });
1046  }
1047  
1048  
1049  getCheckedVariant(){
1050    return document.querySelector(this.selectors.variant + ":checked");
1051  }
1052  
1053  getCheckedVariantLabel(){
1054    const variant = this.getCheckedVariant();
1055    if(!variant) return
1056    return document.querySelector(`label[for='${variant.id}']`);
1057  }
1058  
1059  
1060  getOptinsTotalPrice(){
1061    let price = 0;
1062  
1063    // Add optin price
1064    const optins = document.querySelectorAll(this.selectors.optin.CheckboxInput.onlyActive).forEach(optin => {
1065      if(optin.querySelector("input")?.checked) price = price + parseInt(optin.dataset.optinPrice);
1066    })
1067  
1068    // Add price from variant
1069    const checkedVariant = this.getCheckedVariant();
1070  
1071    if(checkedVariant){
1072      const labelElement = this.getCheckedVariantLabel();
1073      if (labelElement) {
1074        const variantPrice = labelElement.querySelector(this.selectors.variantPrice).dataset.price;
1075        price = price + parseInt(variantPrice);
1076      }
1077    }
1078    
1079    return price
1080  }
1081  
1082  setTotalPrice(){
1083    const totalPrice = this.getOptinsTotalPrice();
1084    document.querySelectorAll(this.selectors.totalPrice).forEach(price => {
1085      price.dataset.price = totalPrice;
1086    })
1087  }
1088  
1089  addSelectedItemsToFloatingMenu(){
1090    const getIconSvg = (name) => {
1091    const defaultTarifIcon = `
1092      <svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
1093        <path d="M7 9L6 10.9963H14" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
1094        <path d="M18 18C19.1046 18 20 17.1046 20 16C20 14.8954 19.1046 14 18 14C16.8954 14 16 14.8954 16 16C16 17.1046 16.8954 18 18 18Z" stroke="#004033" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
1095        <path d="M6 18C7.10457 18 8 17.1046 8 16C8 14.8954 7.10457 14 6 14C4.89543 14 4 14.8954 4 16C4 17.1046 4.89543 18 6 18Z" stroke="#004033" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
1096        <path d="M4 16H2.5C1.5 16 1 15.5 1 14.5V11L2.5 10L4 7C4.5 6.5 5 6 6 6H12C12.8098 6 13.2742 6.1371 14 6.5L18 10.5L21.5 11.5C22.3234 11.9117 22.5883 12.1766 23 13V15.5L20 16" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
1097        <path d="M8 16H16" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
1098      </svg>`;
1099  
1100    const n = name.toLowerCase();
1101  
1102    if (n === 'value') {
1103      return defaultTarifIcon;
1104    }
1105  
1106    if (n === 'flexi smart') {
1107      return `
1108        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
1109          <path d="M6 9L5 10.9963L13.5 11" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
1110          <path d="M18 18C19.1046 18 20 17.1046 20 16C20 14.8954 19.1046 14 18 14C16.8954 14 16 14.8954 16 16C16 17.1046 16.8954 18 18 18Z" stroke="#004033" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
1111          <path d="M6 18C7.10457 18 8 17.1046 8 16C8 14.8954 7.10457 14 6 14C4.89543 14 4 14.8954 4 16C4 17.1046 4.89543 18 6 18Z" stroke="#004033" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
1112          <path d="M4 16H2.5C1.5 16 1 15.5 1 14.5V11L3 7C3.5 6.5 4 6 5 6H12C12.8098 6 13.2742 6.1371 14 6.5L18 10.5L21.5 11.5C22.3234 11.9117 22.5883 12.1766 23 13V15.5L20 16" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
1113          <path d="M8 16H16" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
1114        </svg>`;
1115    }
1116  
1117    if (n === 'flexi') {
1118      return `
1119        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
1120          <path d="M5 9L4.5 10.9963H14" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
1121          <path d="M18 18C19.1046 18 20 17.1046 20 16C20 14.8954 19.1046 14 18 14C16.8954 14 16 14.8954 16 16C16 17.1046 16.8954 18 18 18Z" stroke="#004033" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
1122          <path d="M6 18C7.10457 18 8 17.1046 8 16C8 14.8954 7.10457 14 6 14C4.89543 14 4 14.8954 4 16C4 17.1046 4.89543 18 6 18Z" stroke="#004033" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
1123          <path d="M4 16H2.5C1.5 16 1 15.5 1 14.5V11L2 7C2.5 6.5 3 6 4 6H13C13.8098 6 14.2742 6.1371 15 6.5L18.5 11L21.5 11.5C22.3234 11.9117 22.5883 12.1766 23 13V15.5L20 16" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
1124          <path d="M8 16H16" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
1125        </svg>`;
1126    }
1127  
1128    return defaultTarifIcon;
1129  };
1130  
1131  
1132    const getPickedTarifName = () => {
1133      const variantLabel = this.getCheckedVariantLabel();
1134      const name = variantLabel.querySelector("h4").innerText;
1135      const price = variantLabel.querySelector(OPTINS_DEFAULT.selectors.variantPrice).dataset.price;
1136      let tarifDurationText = "";
1137      const iconSvg = getIconSvg(name);
1138      if (name.toLowerCase().includes('value')) {
1139          tarifDurationText = '36 měsíců + 10 000 km/rok';
1140      } else if (name.toLowerCase() == 'flexi smart') {
1141          tarifDurationText = 'Flexibilní od 6 měsíců + neomezený nájezd';
1142      } else if (name.toLowerCase().includes('smart')) {
1143          tarifDurationText = '24 měsíců + 20 000 km/rok';
1144      } else if (name.toLowerCase().includes('flexi')) {
1145          tarifDurationText = '2-60 měsíců + neomezený nájezd';
1146      } else {
1147          tarifDurationText = '';
1148      }
1149      return `<div class="tw-flex tw-text-[14px] tw-justify-between tw-mt-[1.6rem]"><div class="tw-flex tw-items-center tw-gap-[8px]">${iconSvg}<span class="tw-text-primaryDarker tw-text-[1.2rem] tw-font-medium">${name}</span></div><div class="tw-flex tw-flex-col tw-text-right"><span class="tw-text-primaryDarker tw-text-xs tw-font-bold" data-price=${price}></span><span data-dph class="tw-text-primaryDarker tw-font-serif tw-text-[8px]"></span></div></div>`
1150    }
1151  
1152    const getPickedOptins = () => {
1153      const checkedOptins = document.querySelectorAll(this.selectors.optin.CheckboxInput.onlyActive + " input:checked");
1154      if (checkedOptins.length === 0) {
1155      return `<div class="tw-text-sm tw-mb-[1.6rem]">Nemáte vybrané žádné doplňkové služby</div>`;
1156      }
1157      let optinsHtml = ""
1158      checkedOptins.forEach(optin => {
1159        const name = optin.parentElement.querySelector(".js-optin-name").innerText;
1160        const price = optin.parentElement.querySelector(".js-optin-price").dataset.price;
1161        const newOptin = `
1162        <div class="tw-flex tw-text-[14px] tw-justify-between tw-mb-[1.6rem] tw-items-center tw-gap-[8px] [&>svg]:tw-w-[1.6rem] [&>svg]:tw-h-[1.6rem] ">${ generateOptinIcon(name) }<span class="tw-text-primaryDarker tw-font-medium tw-text-[1.2rem] tw-w-[70%]">${name}</span><div class="tw-flex tw-flex-col tw-text-right"><span class="tw-text-primaryDarker tw-leading-[1.2] tw-text-[1.2rem] tw-font-semibold" data-price=${price}></span><span data-dph class="tw-text-primaryDarker tw-font-medium tw-leading-[1.2] tw-text-[8px]"></span></div></div>        
1163        `
1164        optinsHtml = optinsHtml + newOptin;
1165      })
1166  
1167      return optinsHtml
1168    }
1169  
1170  
1171    const floatingMenu = document.getElementById("js-floating-menu");
1172    const html = /*html*/`
1173      <h5 class="tw-text-[1.6rem] tw-font-medium">Vybraný tarif:</h5>
1174      ${getPickedTarifName()}
1175      <h5 class="tw-text-[1.6rem] tw-font-medium tw-mb-[1.6rem] tw-mt-[2.4rem]">Vybrané služby k tarifu:</h5>
1176      ${getPickedOptins()}
1177    `
1178    return floatingMenu.innerHTML = html;
1179  }
1180  
1181  freeMonthLogic(tarifType){
1182    function badgeToggler(hide){
1183      const badges = document.querySelectorAll(".js-product-card .badge");
1184      console.log(hide);
1185      badges.forEach(badge => {
1186        if(hide){
1187          badge.style.display = "none";
1188        } else {
1189          badge.style.display = "";
1190        }
1191      })
1192    }
1193  
1194    if(!tarifType) tarifType = document.querySelector(".label__custom input:checked").value
1195  
1196    if(tarifType == "Value" || tarifType == "Smart"){
1197      return badgeToggler(false);
1198    }
1199  
1200    return badgeToggler(true);
1201  }
1202  
1203  // Handlers
1204  variantsChangeHandler() {
1205    this.variants.forEach((variant) => {
1206      variant.addEventListener("change", (event_change) => {
1207        this.filterOptins(variant);
1208        this.removeOptinsWhenSwitchVariants();
1209        this.resetVariantsToInitialPrice();
1210        // this.setPriceToVariants();
1211        this.addAdvanceToForm();
1212        this.setTotalPrice();
1213        this.addSelectedItemsToFloatingMenu();
1214        this.freeMonthLogic(event_change.target.value);
1215      });
1216    });
1217  }
1218  
1219  
1220  async switchGallery() {
1221  
1222    const gallerySection = document.querySelector(".js-swiper-gallery-product-page");
1223    if (!gallerySection) return;
1224    const currentUrl = window.location.href;
1225  
1226    try {
1227      const response = await fetch(currentUrl);
1228      if (!response.ok) throw new Error("Failed to fetch the page");
1229  
1230      const html = await response.text();
1231      const parser = new DOMParser();
1232      const doc = parser.parseFromString(html, "text/html");
1233      const newGallerySection = doc.querySelector(".js-swiper-gallery-product-page");
1234  
1235      if (newGallerySection) {
1236        gallerySection.innerHTML = newGallerySection.innerHTML;
1237        generateSwiperGallery()
1238        lightbox = initLightbox()
1239      }
1240    } catch (error) {
1241      console.error("Error switching gallery:", error);
1242    }
1243  }
1244  
1245  async switchFeauturedImage() {
1246  
1247    const gallerySection = document.querySelector("#js-product-card--image");
1248    if (!gallerySection) return;
1249    const currentUrl = window.location.href;
1250  
1251    try {
1252      const response = await fetch(currentUrl);
1253      if (!response.ok) throw new Error("Failed to fetch the page");
1254  
1255      const html = await response.text();
1256      const parser = new DOMParser();
1257      const doc = parser.parseFromString(html, "text/html");
1258      const newGallerySection = doc.querySelector("#js-product-card--image");
1259  
1260      if (newGallerySection) {
1261        gallerySection.innerHTML = newGallerySection.innerHTML;
1262      }
1263    } catch (error) {
1264      console.error("Error switching gallery:", error);
1265    }
1266  }
1267  
1268  colorInputsHandler() {
1269    document.body.addEventListener("variantUrlChanged", e => {
1270        this.switchGallery();
1271        this.switchFeauturedImage();
1272    })
1273  }
1274  
1275  hideParentOptions(event){
1276    const parent = event.target.closest("li").dataset.parent;
1277    const allActiveParentEls = document.querySelectorAll(`[data-parent='${parent}']:not(.tw-hidden)`)
1278  
1279    if(event.target.checked){
1280  
1281      allActiveParentEls.forEach(el => {
1282        let input = el.querySelector('input');
1283        if(event.target == input) return;
1284        input.setAttribute("disabled", "");
1285      })
1286      
1287    } else {
1288  
1289      allActiveParentEls.forEach(el => {
1290        let input = el.querySelector('input');
1291        input.removeAttribute("disabled");
1292      })
1293  
1294    }
1295  }
1296  
1297  
1298  optinsChangeHandler() {
1299    this.optinsCheckbox.forEach((optin) => {
1300      optin.addEventListener("change", (event_change) => {
1301        this.addOptinsAsInput();
1302        this.hideParentOptions(event_change);
1303        this.setTotalPrice();
1304        this.addSelectedItemsToFloatingMenu();
1305      //this.addOptinsPrice(optin); //edit Jakub Novák Birne -> zrušit přičítání ceny optin k vybrané variantě
1306      });
1307    });
1308  }
1309  
1310  initHandler() {
1311    // Reload page
1312    this.variants.forEach((variant) => {
1313      this.filterOptins(variant);
1314    });
1315  
1316    this.assignVariantsInitialPrice();
1317    this.addAdvanceToForm();
1318  }
1319  
1320  init() {
1321    // load handlers
1322    this.initHandler();
1323    this.variantsChangeHandler();
1324    this.colorInputsHandler();
1325    this.optinsChangeHandler();
1326    this.setTotalPrice();
1327    this.addSelectedItemsToFloatingMenu();
1328    this.freeMonthLogic();
1329    this.setPreviousCollectionUrlToBackButton()
1330  }
1331  }
1332  
1333  // ANCHOR: HANDLE COMPANY
1334  // CREATED BY: Vojtěch Smutný, IdealEshop 2024
1335  
1336  const handlePricesSelectors = {
1337  price: "[data-price]",
1338  variant: ".swatch-container input[type='radio']",
1339  optin: ".ie-additional input[type='checkbox']",
1340  specialElements: {
1341    dph: "[data-dph]"
1342  }
1343  }
1344  
1345  
1346  class VATState {
1347  constructor(){
1348    this.sessionStorageName = "VATState";
1349    this.switches = document.querySelectorAll(".js-sme-switch");
1350    this.switchEventName = "SMESwitched"
1351    this.init();
1352  }
1353  
1354  setState(value){
1355    this.setUrlParam(value);
1356    return sessionStorage.setItem(this.sessionStorageName, value)
1357  }
1358  
1359  getState(){
1360    // true == without VAT, false == with VAT
1361    const urlState = this.getUrlParamValue();
1362    if(urlState !== null) return urlState;
1363
1364    const storedState = sessionStorage.getItem(this.sessionStorageName);
1365    if(storedState !== null) return storedState === "true";
1366
1367    return true;
1368  }
1369  
1370  switchChangeEvent(){
1371    if(!this.switches) return
1372    this.switches.forEach(swit => {
1373      swit.onchange = (e) => {
1374        console.log("SWITCH")
1375        this.setState(e.target.checked === true);
1376        return document.dispatchEvent(new CustomEvent(this.switchEventName, {'detail': e}));
1377      }
1378    })
1379  }
1380  
1381  setUrlParam(value){
1382    let url = new URL(window.location.href);
1383    
1384    if(value && !url.searchParams.has("ico")){
1385      url.searchParams.append('ico', value);
1386    }
1387  
1388    if(!value){
1389      url.searchParams.delete('ico');
1390    }
1391    
1392    return history.replaceState(null, '', url.href); 
1393  }
1394  
1395  getUrlParamValue(){
1396    let url = new URL(window.location.href);
1397    const value = url.searchParams.get("ico");
1398    if(value === "true") return true;
1399    if(value === "false") return false;
1400    return null;
1401  }
1402  
1403  setSwitchInitialState(){
1404    if(!this.switches) return
1405    const state = this.getState();
1406    this.switches.forEach(swit => {
1407      swit.checked = state;
1408    })
1409  }
1410  
1411  switchInits(){
1412    this.switchChangeEvent();
1413    this.setSwitchInitialState();
1414    this.setState(this.getState());
1415  }
1416  
1417  init(){
1418    this.switchInits()
1419  }
1420  }
1421  
1422  class HandlePrices {
1423  constructor(pricesTimes100OFF) {
1424    this.selectors = handlePricesSelectors;
1425    this.VAT = 1.21
1426    this.times = pricesTimes100OFF ? 1 : 100
1427    this.init()
1428  }
1429  
1430  getAllPriceElements(price){
1431    return document.querySelectorAll(this.selectors.price);
1432  }
1433  
1434  setRegularPrices(price){
1435    return IEGlobals.formatCurrency().format(parseInt(price) / this.times);
1436  }
1437  
1438  setVATPrices(price){
1439    return IEGlobals.formatCurrency().format((parseInt(price) / this.VAT) / this.times);
1440  }
1441  
1442  getPrice(price){
1443    const withoutVAT = this.VATstate.getState();
1444    if(withoutVAT) return this.setVATPrices(price);
1445    return this.setRegularPrices(price)
1446  }
1447  
1448  handlePrices(){
1449    this.getAllPriceElements().forEach(price => {
1450      return price.innerText = this.getPrice(price.dataset.price)
1451    })
1452  }
1453  
1454  handleSpecialElements(){
1455    const withoutVAT = this.VATstate.getState();
1456    document.querySelectorAll(this.selectors.specialElements.dph).forEach(el => {
1457      let interval = `měsíčně`
1458      if(el.dataset.dphInterval === "day") interval = `za den`
1459      if(el.dataset.dphInterval === "none") interval = ""
1460      const vatLabel = withoutVAT
1461        ? `bez DPH`
1462        : `s DPH`;
1463      return el.innerText = [interval, vatLabel].filter(Boolean).join(" ");
1464    })
1465  }
1466  
1467  setSMESwitchChange(){
1468    document.addEventListener(this.VATstate.switchEventName, e => {
1469      this.handlePrices();
1470      this.handleSpecialElements();
1471    })
1472  }
1473  
1474  setLoadEvent(){
1475    this.handlePrices();
1476    this.handleSpecialElements();
1477  }
1478  
1479  onChangeEvent(selector){
1480    document.querySelectorAll(selector).forEach(input => {
1481      input.addEventListener("change", e => {
1482        this.handlePrices();
1483        this.handleSpecialElements();
1484      })
1485    })
1486  }
1487  
1488  setVariantChange(){
1489    this.onChangeEvent(this.selectors.variant)
1490  }
1491  
1492  setOptinChange(){
1493    this.onChangeEvent(this.selectors.optin)
1494  }
1495  
1496  events(){
1497    this.setLoadEvent();
1498    this.setVariantChange();
1499    this.setOptinChange();
1500    this.setSMESwitchChange();
1501  }
1502  
1503  init(){
1504    this.VATstate = new VATState();
1505    this.events();
1506  }
1507  }
1508  
1509  
1510  const handlePrices = new HandlePrices();
1511  
1512  document.addEventListener("DOMContentLoaded", () => {
1513  
1514  
1515  
1516    handlePrices.init()
1517  
1518  // Collection filter event
1519  document.body.addEventListener("facetsFiltered", function(){
1520    handlePrices.init()
1521  })
1522  });
1523  
1524  
1525  
1526  // GA4
1527  // Event Types
1528  // view_item
1529  // add_to_cart
1530  // add_to_cart (addons)
1531  // remove_from_cart
1532  // begin_checkout
1533  // purchase
1534  // contactForm
1535  // userDataSetup
1536  
1537  
1538  class DataLayerObject {
1539  constructor(eventType, contextObject) {
1540    this.eventType = eventType;
1541    this.contextObject = contextObject;
1542    this.object
1543    this.init();
1544  }
1545  
1546  viewItem() {
1547    let [ price, SKU, pickedColor, option1, id] = ""
1548    
1549    if(this.contextObject){
1550      price =  document.querySelector("input[name='Tarif']:checked").closest("label").querySelector("[data-price]").dataset.price / 100;
1551      id = document.querySelector("input[name='Tarif']:checked").dataset.id;
1552      pickedColor = document.querySelector("input[name='Barva']:checked").value;
1553      option1 = document.querySelector("input[name='Tarif']:checked").value;
1554    }
1555    return {
1556      event: this.eventType,
1557      ecommerce: {
1558        currency: "CZK",
1559        value: price || "0",
1560        items: [
1561          {
1562            item_id: id || "",
1563            item_name: "",
1564            affiliation: location.hostname,
1565            index: 0,
1566            item_brand: "",
1567            item_category: "",
1568            item_category2: "",
1569            item_category3: "",
1570            item_category4: "",
1571            item_category5: option1 || "",
1572            item_list_id: "leasing",
1573            item_list_name: "Leasing",
1574            item_variant: pickedColor || "",
1575            price: price || "0",
1576            quantity: 1,
1577          },
1578        ],
1579      },
1580    };
1581  }
1582  
1583  consent(){
1584    let shortterm = 0;
1585    if(this.contextObject.consent == 0) shortterm = 1;
1586    // Shortterm je vždy opačné hodnoty
1587  
1588    return {
1589      event: "cpd_consent",
1590      payload: {
1591        consent_a_dp: this.contextObject.consent,
1592        consent_b_da: this.contextObject.consent,
1593        consent_c_bi: this.contextObject.consent,
1594        consent_d_fi: this.contextObject.consent,
1595        consent_e_gdpr: this.contextObject.consent,
1596        consent_f_shortterm: shortterm,
1597        consent_source: this.contextObject.consent_source,
1598      },
1599    }
1600  }
1601  
1602  cart() {
1603    
1604    let items = []
1605    let index = 0
1606    if(!this.contextObject) return
1607    this.contextObject.items.forEach(item => {
1608        let price =  item.price / 100;
1609        let pickedColor = item.variant_options[1];
1610        let option1 = item.variant_options[0];
1611        let isAddon = item.product_type == "opt-ins";
1612        let id = item.id;
1613        let title = item.product_title;
1614        let vendor = item.vendor;
1615  
1616        
1617  
1618      const obj = {
1619        item_id: id || "",
1620        item_name: title || "",
1621        affiliation: location.hostname,
1622        index: 0,
1623        item_brand: vendor || "",
1624        item_category: "" || "",
1625        item_category2: "" || "", 
1626        item_category3: "" || "",
1627        item_category4: "" || "",
1628        item_category5: option1 || "" || "",
1629        item_list_id: isAddon ? "addons" :"leasing",
1630        item_list_name: isAddon? "Addons" : "Leasing",
1631        item_variant: pickedColor || "",
1632        price: price || "0",
1633        quantity: 1,
1634      }
1635  
1636  
1637      items.push(obj)
1638    })
1639  
1640  
1641    const data = {
1642      event: this.eventType,
1643      ecommerce: {
1644        currency: "CZK",
1645        value: this.contextObject.original_total_price / 100,
1646        items: [
1647          ...items
1648        ],
1649      },
1650    };
1651  
1652    // Purchase
1653    if(this.contextObject.order){
1654      data.ecommerce.transaction_id = this.contextObject.order.order_id
1655      data.ecommerce.coupon = this.contextObject.promo
1656    }
1657    
1658    return data
1659  }
1660  
1661  contactForm() {
1662    const fullName = this.contextObject["contact[name]"]?.split(" ");
1663    return {
1664      'event': this.eventType,
1665      'formData': {
1666        'url': location.href,
1667        'firstName': fullName && fullName[0] || this.contextObject["firstName"] || "",
1668        'lastName': fullName && fullName[1] || this.contextObject["lastName"] || "",
1669        'email': this.contextObject["contact[email]"] || this.contextObject["email"] ||"",
1670        'phone': this.contextObject["contact[Telefon]"] || this.contextObject["contact[Telefonní číslo]"] || this.contextObject["phone"] || ""
1671      }
1672    }
1673  }
1674  
1675  userDataSetup(){
1676    if(!this.contextObject) return
1677    
1678    return {
1679      event: this.eventType,
1680      userData: {
1681        email: this.contextObject.email,
1682        phone: this.contextObject.phone
1683      }
1684    };
1685  }
1686  
1687  init() {
1688    if (this.eventType == "view_item") return this.object = this.viewItem();
1689    if (this.eventType == "add_to_cart") return this.object = this.cart();
1690    if (this.eventType == "remove_from_cart") return this.object = this.cart();
1691    if (this.eventType == "begin_checkout") return this.object = this.cart();
1692    if (this.eventType == "purchase") return this.object = this.cart();
1693    if (this.eventType == "contactForm") return this.object = this.contactForm();
1694    if (this.eventType == "userDataSetup") return this.object = this.userDataSetup();
1695    if (this.eventType == "consent") return this.object = this.consent();
1696  }
1697  }
1698  
1699  function sendGA4(eventType, contextObject) {
1700  const object = new DataLayerObject(eventType, contextObject).object;
1701  
1702  
1703  window.dataLayer.push({ ecommerce: null });
1704  window.dataLayer.push(object);
1705  }
1706  
1707  /* code ready in case all_vendors in footer isn't working
1708  async function footerVendors(){
1709  async function getVendors(){
1710    const url = `https://birne.com/collections/nase-auta`;
1711    const res = await fetch(url);
1712    if(res.ok) {
1713      const data = await res.text();
1714      const parser = new DOMParser();
1715      const doc = parser.parseFromString(data, "text/html");
1716      const node = doc.querySelector("[aria-label*='Značka']").closest("details").querySelector(".parent-display ul").querySelectorAll("li span:first-of-type");
1717      let allVendors = [];
1718      node.forEach(el => {
1719        allVendors.push(el.innerText.replace(/[\n\r]+|[\s]{2,}/g, ' ').replaceAll("  ", ""));
1720      });
1721      return allVendors;
1722    } else {
1723      throw new Error('Network response was not ok.');
1724    }
1725  }
1726  function setVendorsToFooter(text){
1727    // Musí se přidat do footeru
1728  }
1729  try {
1730    const vendors = await getVendors();
1731    vendors.forEach(el => {
1732      setVendorsToFooter(el);
1733    });
1734    console.log("All vendors: ", vendors);
1735  } catch (error) {
1736    console.error("Error fetching vendors: ", error);
1737  }
1738  }
1739  footerVendors();
1740  */
1741  
1742  
1743  
1744  let lightbox
1745  function initLightbox(){
1746  
1747  document.querySelectorAll(".js-product-card").forEach(el => {
1748    el.addEventListener("click", (e) => {
1749      if (e.target.closest('.ie-gear-params')) return;
1750      lightbox.open();
1751    })
1752  })
1753  
1754  
1755  return GLightbox({
1756    touchNavigation: true,
1757    selector: ".ie-image-lightbox"
1758  });
1759  }
1760  
1761  // VIEW ITEM
1762  // Product load and event change
1763  
1764  // Every load
1765  window.dataLayer = window.dataLayer || [];
1766  if (navigator.userAgentData && navigator.userAgentData.platform) {
1767  window.dataLayer.push({
1768    'event': 'operatingSystemDetected',
1769    'operatingSystem': navigator.userAgentData.platform
1770  });
1771  }
1772  
1773  
1774  
1775  
1776  
1777  
1778  
1779  
1780  // Labels on PP
1781  class ColorContrast {
1782  constructor(color) {
1783    this.rgb = this.parseColor(color);
1784    this.lum = this.luminance(this.rgb);
1785  }
1786  
1787  // Detect and parse hex or rgb string
1788  parseColor(color) {
1789    if (typeof color !== 'string') throw new Error('Color must be a string');
1790  
1791    if (color.startsWith('#')) {
1792      return this.hexToRgb(color);
1793    }
1794  
1795    if (color.startsWith('rgb')) {
1796      return this.rgbStringToRgb(color);
1797    }
1798  
1799    throw new Error('Unsupported color format. Use hex (#ffcc00) or rgb(255, 200, 100)');
1800  }
1801  
1802  hexToRgb(hex) {
1803    hex = hex.replace(/^#/, '');
1804    if (hex.length === 3) {
1805      hex = hex.split('').map(c => c + c).join('');
1806    }
1807    const num = parseInt(hex, 16);
1808    return {
1809      r: (num >> 16) & 255,
1810      g: (num >> 8) & 255,
1811      b: num & 255,
1812    };
1813  }
1814  
1815  rgbStringToRgb(rgbStr) {
1816    const match = rgbStr.match(/rgb\s*\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i);
1817    if (!match) throw new Error('Invalid RGB string format');
1818    return {
1819      r: parseInt(match[1]),
1820      g: parseInt(match[2]),
1821      b: parseInt(match[3]),
1822    };
1823  }
1824  
1825  luminance({ r, g, b }) {
1826    const a = [r, g, b].map(v => {
1827      v /= 255;
1828      return v <= 0.03928
1829        ? v / 12.92
1830        : Math.pow((v + 0.055) / 1.055, 2.4);
1831    });
1832    return 0.2126 * a[0] + 0.7152 * a[1] + 0.0722 * a[2];
1833  }
1834  
1835  getTextColor() {
1836    // Threshold per WCAG contrast recommendations
1837    return this.lum > 0.179 ? 'dark' : 'light';
1838  }
1839  
1840  getInfo() {
1841    return {
1842      rgb: this.rgb,
1843      luminance: this.lum.toFixed(3),
1844      suggestedText: this.getTextColor(),
1845    };
1846  }
1847  }
1848  
1849  function changeLabelsTextColor(){
1850  document.querySelectorAll('.ie-color-input, .color-toggle').forEach(label => {
1851    const colorValue = label.style.background
1852    if(!colorValue) return;
1853    const colorContrast = new ColorContrast(colorValue);
1854    const textColor = colorContrast.getTextColor() === 'dark' ? '#000000' : '#FFFFFF';
1855    label.style.color = textColor;
1856  });
1857  }
1858  
1859  
1860  
1861  
1862  
1863  document.addEventListener('DOMContentLoaded', () => {
1864  changeLabelsTextColor()
1865  
1866  const swatchContainers = document.querySelectorAll('.swatch-container');
1867  
1868  swatchContainers.forEach(container => {
1869    const colorsContainer = container.querySelector('.ie-colors-container');
1870    const toggle = container.querySelector('.color-toggle');
1871    const colorNameElement = toggle?.querySelector('.color-name');
1872    const labels = container.querySelectorAll('.ie-color-input');
1873  
1874    if (toggle && colorsContainer) {
1875      toggle.addEventListener('click', (e) => {
1876        colorsContainer.classList.toggle('tw-hidden');
1877        colorsContainer.classList.toggle('tw-flex');
1878      });
1879    }
1880  
1881    function setColor(event, colorsContainer, label) {
1882      if (event) event.stopPropagation();
1883  
1884      const background = label.style.background;
1885      const color = label.style.color;
1886      const selectedValue = label.textContent.trim();
1887  
1888      const toggleBox = container.querySelector('.color-toggle');
1889      if (toggleBox) toggleBox.style.background = background;
1890  
1891      if (colorNameElement) {
1892        colorNameElement.style.color = color;
1893        colorNameElement.textContent = selectedValue;
1894      }
1895  
1896      document.querySelectorAll('.ie-colors-container').forEach(c => {
1897        c.classList.add('tw-hidden');
1898        c.classList.remove('tw-flex');
1899      });
1900    }
1901  
1902    labels.forEach(label => {
1903      label.addEventListener('click', (event) => {
1904        setColor(event, colorsContainer, label);
1905      });
1906  
1907      if (colorNameElement?.innerText === label.innerText) {
1908        setColor(null, colorsContainer, label);
1909      }
1910    });
1911  });
1912  
1913  document.addEventListener('click', (event) => {
1914    if (!event.target.closest('.swatch-container')) {
1915      document.querySelectorAll('.ie-colors-container').forEach(container => {
1916        container.classList.add('tw-hidden');
1917        container.classList.remove('tw-flex');
1918      });
1919    }
1920  });
1921  });
1922  
1923  
1924  
1925  document.addEventListener("checkout-initiated", async () => {
1926  const cart =  await fetch("/cart.js").then(response => { return response.json()})
1927  sendGA4("begin_checkout", cart);
1928  })
1929  
1930  document.addEventListener("purchase", e => {
1931  const purchase_obj = {
1932    ...e.detail.purchase,
1933    order: e.detail.order_info,
1934    promo: e.detail.promo ? e.detail.promo : ""
1935  }
1936  
1937  let consent = 0;
1938  if(e.detail.user.birne_marketing_DISagreement === true){
1939    consent = 1;
1940  }
1941  
1942  
1943  
1944  sendGA4("userDataSetup", e.detail.user);
1945  sendGA4("purchase", purchase_obj);
1946  sendGA4("consent", { consent: consent, consent_source: "car_lead" });
1947  })
1948  
1949  document.addEventListener("add-to-cart", e => {
1950  sendGA4("add_to_cart", e.detail)
1951  })
1952  
1953  document.addEventListener("remove-from-cart", e => {
1954  sendGA4("remove_from_cart", e.detail)
1955  })
1956  
1957  document.addEventListener("contact-form", e => {
1958  sendGA4("contactForm", e.detail)
1959  sendGA4("consent", { consent: 0, consent_source: "contact" });
1960
1961  })
1962
1963  // ── VWO A/B "Add-ons IMPACT test" bridge — funnel cíle (po skončení testu smazat) ──
1964  window.VWO = window.VWO || [];
1965  VWO.event = VWO.event || function () { VWO.push(["event"].concat([].slice.call(arguments))); };
1966  document.addEventListener("add-to-cart",        () =>
1966 VWO.event("birneAddToCard"));
1967  document.addEventListener("checkout-initiated", () => VWO.event("birneCheckoutReachedDetails"));
1968  document.addEventListener("purchase",           () => VWO.event("purchase"));
1969
1970
1971  function generateCarObject(formData, carData, leadCategory, simulation){
1972    let obj = {
1973        firstName: formData['firstName'] || "",
1974        lastName: formData['lastName'] || "",
1975        company: '',
1976        email: formData['email'] || "",
1977        phonePrefix: formData['phonePrefix'] || "+420",
1978        phone: formData['phone'] || "",
1979        leadCategory: leadCategory || "",
1980        leadSource: "Birne",
1981        message: formData['message'] || "",
1982        acceptsMarketing: formData['marketing'] || false,
1983        vehicle: {
1984          brand: carData['brand'] || "",
1985          model: carData['model'] || "",
1986          manufactureYear: carData['manufactureYear'] || "",
1987          mileage: carData['mileage'] || "",
1988          status: carData['status'] || "",
1989          location: carData['location'] || "",
1990          vin: carData['vin'] || "",
1991          licensePlate: carData["license_plate"] || carData["spz"] || "",
1992          priceOriginal: carData['price_original'] || "0",
1993          priceActual: carData['price_actual'] || "",
1994          vatHint: carData['VAT_hint'] || "",
1995          url: carData['URL'] || "",
1996          shopifyProductID: carData['productID'] || "",
1997        },
1998          carLoanSimu: {
1999          downPaymentRate: "",
2000          loanDurationSimu: "",
2001          installmentSimu: ""
2002        },
2003        uuid: `${Date.now()}`
2004      };
2005  
2006  
2007      return obj
2008  }
2009  
2010  async function addContact(object,errFunction, errMessage) {
2011  
2012    let url = "https://hook.eu1.make.com/2nrah7y4s1kzndxtfnyrforxyizpef75";
2013       
2014    return await fetch(url, {
2015        method: 'POST',
2016        headers: {
2017          'Content-Type': 'application/json',
2018        },
2019        body: JSON.stringify(object),
2020      }).then((res) => {
2021          if(!res.ok) throw Error;
2022          return {success:true};
2023        })
2024        .catch((err) => {
2025          console.log(err)
2026          if(errFunction){
2027            errFunction(errMessage)
2028          }
2029        });
2030  }
2031</script>
2031
2032
2033<!-- hide cart icon when rent car in cart -->
2034
2035
2036    
2036<script>window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.start');</script>
2036<meta name="facebook-domain-verification" content="gj7xega24o7quoc5ew9r281rj862x8">
2037<meta id="shopify-digital-wallet" name="shopify-digital-wallet" content="/60399288452/digital_wallets/dialog">
2038<link rel="ucp" href="/.well-known/ucp" version="2026-08-25">
2038<script async="async" src="/checkouts/internal/preloads.js?locale=cs-CZ&default_configuration_id=2423751005"></script>
vendor: 1 bytes, line 2038
2038
2039<script id="shopify-features" type="application/json">{"accessToken":"4653e4a4580d163a3ecb6dbf62b49154","betas":["rich-media-storefront-analytics"],"domain":"birne.com","predictiveSearch":true,"shopId":60399288452,"locale":"cs"}</script>
vendor: 1 bytes, line 2039
2039
2040<script>var Shopify = Shopify || {};
2041Shopify.shop = "directleasing.myshopify.com";
2042Shopify.locale = "cs";
2043Shopify.currency = {"active":"CZK","rate":"1.0"};
2044Shopify.country = "CZ";
2045Shopify.theme = {"name":"Direct\/main","id":145555063133,"schema_name":"Dawn","schema_version":"7.0.1","theme_store_id":null,"role":"main"};
2046Shopify.theme.handle = "null";
2047Shopify.theme.style = {"id":null,"handle":null};
2048Shopify.cdnHost = "birne.com/cdn";
2049Shopify.routes = Shopify.routes || {};
2050Shopify.routes.root = "/";
2051Shopify.shopJsCdnBaseUrl = "https://cdn.shopify.com/shopifycloud/shop-js";
2052Shopify.SignInWithShop = Shopify.SignInWithShop || {};
2053Shopify.SignInWithShop.User = Shopify.SignInWithShop.User || {};
2054Shopify.SignInWithShop.User.recognized = false;</script>
vendor: 1 bytes, line 2054
2054
2055<script type="module">!function(o){(o.Shopify=o.Shopify||{}).modules=!0}(window);</script>
vendor: 1 bytes, line 2055
2055
2056<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 2056
2056
2057<script>
2058  window.Shopify = window.Shopify || {};
2059  window.Shopify.SignInWithShop = window.Shopify.SignInWithShop || {};
2060  window.Shopify.SignInWithShop.assetMetrics = { sampleRate: 0.25 };
2061  window.Shopify.SignInWithShop.eligible = true;
2062</script>
vendor: 1 bytes, line 2062
2062
2063<script id="shop-js-analytics" type="application/json">{"pageType":"customers/login"}</script>
vendor: 1 bytes, line 2063
2063
2064<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-customer-accounts.cs.esm.js"></script>
vendor: 1 bytes, line 2064
2064
2065<script defer="defer" async type="module" src="https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-customer-accounts-sign-up.cs.esm.js"></script>
vendor: 1 bytes, line 2065
2065
2066<script type="module">
2067  await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-customer-accounts.cs.esm.js");
2068await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-customer-accounts-sign-up.cs.esm.js");
2069
2070  window.Shopify.SignInWithShop?.initCustomerAccounts?.(true, {"fedCMEnabled":true,"windoidEnabled":true});
2071window.Shopify.SignInWithShop?.initCustomerAccountsSignUp?.({"fedCMEnabled":true,"windoidEnabled":true});
2072
2073</script>
vendor: 1 bytes, line 2073
2073
2074<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 2074
2074
2075<script type="module">
2076  await import("https://cdn.shopify.com/shopifycloud/shop-js/modules/v2/loader.init-shop-cart-sync.cs.esm.js");
2077
2078  window.Shopify.SignInWithShop?.initShopCartSync?.({"fedCMEnabled":true,"windoidEnabled":true});
2079
2080</script>
vendor: 1 bytes, line 2080
2080
2081<script>
2082  window.Shopify = window.Shopify || {};
2083  if (!window.Shopify.featureAssets) window.Shopify.featureAssets = {};
2084  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"]};
2085</script>
vendor: 1 bytes, line 2085
2085
2086<script>(function() {
2087  var isLoaded = false;
2088  function asyncLoad() {
2089    if (isLoaded) return;
2090    isLoaded = true;
2091    var urls = ["https:\/\/tnc-app.herokuapp.com\/get_script\/adf16048596511eda5bbd64591086906.js?v=332494\u0026shop=directleasing.myshopify.com"];
2092    for (var i = 0; i < urls.length; i++) {
2093      var s = document.createElement('script');
2094      s.type = 'text/javascript';
2095      s.async = true;
2096      s.src = urls[i];
2097      var x = document.getElementsByTagName('script')[0];
2098      x.parentNode.insertBefore(s, x);
2099    }
2100  };
2101  if(window.attachEvent) {
2102    window.attachEvent('onload', asyncLoad);
2103  } else {
2104    window.addEventListener('load', asyncLoad, false);
2105  }
2106})();</script>
vendor: 1 bytes, line 2106
2106
2107<script id="__st">var __st={"a":60399288452,"offset":7200,"reqid":"8ec1b966-7baf-4e3f-b82d-4f52e9023a5a-1791414118","pageurl":"birne.com\/account\/login?return_url=%2Faccount","u":"ab9e1cd261bc"};</script>
vendor: 1 bytes, line 2107
2107
2108<script>window.ShopifyPaypalV4VisibilityTracking = true;</script>
vendor: 1 bytes, line 2108
2108
2109<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 2109
2109
2110<script integrity="sha256-JjoPp5ZfB1sSAs5SQaol1x1GgvveM+BgmRzyDexInEQ=" data-source-attribution="shopify.loadfeatures" defer="defer" src="//birne.com/cdn/shopifycloud/storefront/assets/storefront/load_feature-1bd60354.js" crossorigin="anonymous"></script>
vendor: 1 bytes, line 2110
2110
2111<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 = "//birne.com/cdn/shopifycloud/storefront/assets/storefront/autosizes-84416378.js";(document.head || document.documentElement).appendChild(autosizesScript);}window.ShopifyAnalytics = window.ShopifyAnalytics || {};window.ShopifyAnalytics.performance = window.ShopifyAnalytics.performance || {};(function () {var LONG_FRAME_THRESHOLD = 50;var longAnimationFrames = [];var activeRafId = null;function collectLongFrames() {var previousTime = null;function rafMonitor(now) {if (activeRafId === null) {return;}var delta = now - previousTime;if (delta > LONG_FRAME_THRESHOLD) {longAnimationFrames.push({startTime: previousTime,endTime: now,});}previousTime = now;activeRafId = requestAnimationFrame(rafMonitor);}previousTime = performance.now();activeRafId = requestAnimationFrame(rafMonitor);}if (!window.PerformanceObserver?.supportedEntryTypes?.includes('long-animation-frame')) {collectLongFrames();var timeoutId = setTimeout(function () {cancelAnimationFrame(activeRafId);}, 10000);window.ShopifyAnalytics.performance.getLongAnimationFrames = function (stopCollection) {if (stopCollection === undefined) {stopCollection = false;}if (stopCollection) {clearTimeout(timeoutId);cancelAnimationFrame(activeRafId);}return longAnimationFrames;};}})();})();</script>
2111<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 2111
2111
2112<script>
2113  window.Shopify = window.Shopify || {};
2114  window.Shopify.MCP = window.Shopify.MCP || {};
2115  window.Shopify.MCP.enabled = true;
2116  window.Shopify.MCP.shop = "directleasing.myshopify.com";
2117  window.Shopify.MCP.mcpEndpoint = "https:\/\/birne.com\/api\/mcp";
2118  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"]}}];
2119</script>
vendor: 1 bytes, line 2119
2119
2120<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("\/\/birne.com\/cdn\/shopifycloud\/storefront\/assets\/storefront\/webmcp-c6b62ece.js","sha256-ke4DDuBjdvea3vxLWxHc9E9nq8zihuG4IfYEGbb77ys=");})();
2121</script>
vendor: 1 bytes, line 2121
2121
2122<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://birne.com/cdn/shopifycloud/portable-wallets/latest/portable-wallets.cs.js",t.type="module",document.head.appendChild(t)}};
2123</script>
vendor: 1 bytes, line 2123
2123
2124<script data-source-attribution="shopify.dynamic_checkout.buyer_consent">
2125  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);
2126</script>
vendor: 1 bytes, line 2126
2126
2127<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})}}));
2128</script>
2128
2129
2130<script id="shopify-cfh-end">window.performance && window.performance.mark && window.performance.mark('shopify.content_for_header.end');</script>
2130
2131
2132    
2132<script src="//birne.com/cdn/shop/t/31/assets/vuex-persistedstate.umd.js?v=61894620657938354351742026102"></script>
2132
2133    
2133<script src="//birne.com/cdn/shop/t/31/assets/vue.js?v=171887327258458467171720521962"></script>
2133
2134    
2134<script src="//birne.com/cdn/shop/t/31/assets/vue-router.js?v=55319305407377055591712909590"></script>
2134
2135    
2135<script src="//birne.com/cdn/shop/t/31/assets/vuex.js?v=75604875280246491841712909592"></script>
2135
2136    
2136<script src="//birne.com/cdn/shop/t/31/assets/birne-tracking.js?v=48522222641817297041712315305"></script>
2136
2137
2138    
2138<script src="https://unpkg.com/@lottiefiles/lottie-player@latest/dist/lottie-player.js"></script>
2138
2139
2140    <style data-shopify>
2141      @font-face {
2142  font-family: Assistant;
2143  font-weight: 400;
2144  font-style: normal;
2145  font-display: swap;
2146  src: url("//birne.com/cdn/fonts/assistant/assistant_n4.9120912a469cad1cc292572851508ca49d12e768.woff2") format("woff2"),
2147       url("//birne.com/cdn/fonts/assistant/assistant_n4.6e9875ce64e0fefcd3f4446b7ec9036b3ddd2985.woff") format("woff");
2148}
2149
2150      @font-face {
2151  font-family: Assistant;
2152  font-weight: 700;
2153  font-style: normal;
2154  font-display: swap;
2155  src: url("//birne.com/cdn/fonts/assistant/assistant_n7.bf44452348ec8b8efa3aa3068825305886b1c83c.woff2") format("woff2"),
2156       url("//birne.com/cdn/fonts/assistant/assistant_n7.0c887fee83f6b3bda822f1150b912c72da0f7b64.woff") format("woff");
2157}
2158
2159      
2160      
2161      @font-face {
2162  font-family: Poppins;
2163  font-weight: 400;
2164  font-style: normal;
2165  font-display: swap;
2166  src: url("//birne.com/cdn/fonts/poppins/poppins_n4.0ba78fa5af9b0e1a374041b3ceaadf0a43b41362.woff2") format("woff2"),
2167       url("//birne.com/cdn/fonts/poppins/poppins_n4.214741a72ff2596839fc9760ee7a770386cf16ca.woff") format("woff");
2168}
2169
2170
2171      :root {
2172        --font-body-family: Assistant, sans-serif;
2173        --font-body-style: normal;
2174        --font-body-weight: 400;
2175        --font-body-weight-bold: 700;
2176
2177        --font-heading-family: Poppins, sans-serif;
2178        --font-heading-style: normal;
2179        --font-heading-weight: 400;
2180
2181        --font-body-scale: 1.0;
2182        --font-heading-scale: 1.0;
2183
2184        --color-base-text: 38, 41, 56;
2185        --color-shadow: 38, 41, 56;
2186        --color-base-background-1: 255, 255, 255;
2187        --color-base-background-2: 243, 243, 243;
2188        --color-base-solid-button-labels: 255, 255, 255;
2189        --color-base-outline-button-labels: 18, 18, 18;
2190        --color-base-accent-1: 18, 18, 18;
2191        --color-base-accent-2: 51, 79, 180;
2192        --payment-terms-background-color: #ffffff;
2193
2194        --gradient-base-background-1: #ffffff;
2195        --gradient-base-background-2: #f3f3f3;
2196        --gradient-base-accent-1: #121212;
2197        --gradient-base-accent-2: #334fb4;
2198
2199        --media-padding: px;
2200        --media-border-opacity: 0.05;
2201        --media-border-width: 1px;
2202        --media-radius: 0px;
2203        --media-shadow-opacity: 0.0;
2204        --media-shadow-horizontal-offset: 0px;
2205        --media-shadow-vertical-offset: 4px;
2206        --media-shadow-blur-radius: 5px;
2207        --media-shadow-visible: 0;
2208
2209        --page-width: 120rem;
2210        --page-width-margin: 0rem;
2211
2212        --product-card-image-padding: 0.0rem;
2213        --product-card-corner-radius: 0.0rem;
2214        --product-card-text-alignment: left;
2215        --product-card-border-width: 0.0rem;
2216        --product-card-border-opacity: 0.1;
2217        --product-card-shadow-opacity: 0.0;
2218        --product-card-shadow-visible: 0;
2219        --product-card-shadow-horizontal-offset: 0.0rem;
2220        --product-card-shadow-vertical-offset: 0.4rem;
2221        --product-card-shadow-blur-radius: 0.5rem;
2222
2223        --collection-card-image-padding: 0.0rem;
2224        --collection-card-corner-radius: 0.0rem;
2225        --collection-card-text-alignment: left;
2226        --collection-card-border-width: 0.0rem;
2227        --collection-card-border-opacity: 0.1;
2228        --collection-card-shadow-opacity: 0.0;
2229        --collection-card-shadow-visible: 0;
2230        --collection-card-shadow-horizontal-offset: 0.0rem;
2231        --collection-card-shadow-vertical-offset: 0.4rem;
2232        --collection-card-shadow-blur-radius: 0.5rem;
2233
2234        --blog-card-image-padding: 0.0rem;
2235        --blog-card-corner-radius: 0.0rem;
2236        --blog-card-text-alignment: left;
2237        --blog-card-border-width: 0.0rem;
2238        --blog-card-border-opacity: 0.1;
2239        --blog-card-shadow-opacity: 0.0;
2240        --blog-card-shadow-visible: 0;
2241        --blog-card-shadow-horizontal-offset: 0.0rem;
2242        --blog-card-shadow-vertical-offset: 0.4rem;
2243        --blog-card-shadow-blur-radius: 0.5rem;
2244
2245        --badge-corner-radius: 4.0rem;
2246
2247        --popup-border-width: 1px;
2248        --popup-border-opacity: 0.1;
2249        --popup-corner-radius: 0px;
2250        --popup-shadow-opacity: 0.0;
2251        --popup-shadow-horizontal-offset: 0px;
2252        --popup-shadow-vertical-offset: 4px;
2253        --popup-shadow-blur-radius: 5px;
2254
2255        --drawer-border-width: 1px;
2256        --drawer-border-opacity: 0.1;
2257        --drawer-shadow-opacity: 0.0;
2258        --drawer-shadow-horizontal-offset: 0px;
2259        --drawer-shadow-vertical-offset: 4px;
2260        --drawer-shadow-blur-radius: 5px;
2261
2262        --spacing-sections-desktop: 0px;
2263        --spacing-sections-mobile: 0px;
2264
2265        --grid-desktop-vertical-spacing: 8px;
2266        --grid-desktop-horizontal-spacing: 8px;
2267        --grid-mobile-vertical-spacing: 4px;
2268        --grid-mobile-horizontal-spacing: 4px;
2269
2270        --text-boxes-border-opacity: 0.1;
2271        --text-boxes-border-width: 0px;
2272        --text-boxes-radius: 0px;
2273        --text-boxes-shadow-opacity: 0.0;
2274        --text-boxes-shadow-visible: 0;
2275        --text-boxes-shadow-horizontal-offset: 0px;
2276        --text-boxes-shadow-vertical-offset: 4px;
2277        --text-boxes-shadow-blur-radius: 5px;
2278
2279        --buttons-radius: 0px;
2280        --buttons-radius-outset: 0px;
2281        --buttons-border-width: 1px;
2282        --buttons-border-opacity: 1.0;
2283        --buttons-shadow-opacity: 0.0;
2284        --buttons-shadow-visible: 0;
2285        --buttons-shadow-horizontal-offset: 0px;
2286        --buttons-shadow-vertical-offset: 4px;
2287        --buttons-shadow-blur-radius: 5px;
2288        --buttons-border-offset: 0px;
2289
2290        --inputs-radius: 0px;
2291        --inputs-border-width: 1px;
2292        --inputs-border-opacity: 0.55;
2293        --inputs-shadow-opacity: 0.0;
2294        --inputs-shadow-horizontal-offset: 0px;
2295        --inputs-margin-offset: 0px;
2296        --inputs-shadow-vertical-offset: 4px;
2297        --inputs-shadow-blur-radius: 5px;
2298        --inputs-radius-outset: 0px;
2299
2300        --variant-pills-radius: 40px;
2301        --variant-pills-border-width: 1px;
2302        --variant-pills-border-opacity: 0.55;
2303        --variant-pills-shadow-opacity: 0.0;
2304        --variant-pills-shadow-horizontal-offset: 0px;
2305        --variant-pills-shadow-vertical-offset: 4px;
2306        --variant-pills-shadow-blur-radius: 5px;
2307      }
2308
2309      *,
2310      *::before,
2311      *::after {
2312        box-sizing: inherit;
2313      }
2314
2315      html {
2316        box-sizing: border-box;
2317        font-size: calc(var(--font-body-scale) * 62.5%);
2318        height: 100%;
2319      }
2320
2321      body {
2322        display: grid;
2323        grid-template-rows: auto auto 1fr auto;
2324        grid-template-columns: 100%;
2325        min-height: 100%;
2326        margin: 0;
2327        font-size: 1.5rem;
2328        line-height: calc(1 + 0.8 / var(--font-body-scale));
2329        font-family: var(--font-body-family);
2330        font-style: var(--font-body-style);
2331        font-weight: var(--font-body-weight);
2332      }
2333
2334      @media screen and (min-width: 750px) {
2335        body {
2336          font-size: 1.6rem;
2337        }
2338      }
2339    </style>
2340
2341    <link href="//birne.com/cdn/shop/t/31/assets/base.css?v=175596542697603602871752127850" rel="stylesheet" type="text/css" media="all" />
2342    <link href="//birne.com/cdn/shop/t/31/assets/theme.css?v=4711521059289398731784266754" rel="stylesheet" type="text/css" media="all" />
2343    <link href="//birne.com/cdn/shop/t/31/assets/fonts.css?v=140745684441190591821745914216" rel="stylesheet" type="text/css" media="all" />
2344<link rel="preload" as="font" href="//birne.com/cdn/fonts/assistant/assistant_n4.9120912a469cad1cc292572851508ca49d12e768.woff2" type="font/woff2" crossorigin><link rel="preload" as="font" href="//birne.com/cdn/fonts/poppins/poppins_n4.0ba78fa5af9b0e1a374041b3ceaadf0a43b41362.woff2" type="font/woff2" crossorigin><link
2345        rel="stylesheet"
2346        href="//birne.com/cdn/shop/t/31/assets/component-predictive-search.css?v=83512081251802922551678353981"
2347        media="print"
2348        onload="this.media='all'"
2349      >
2349<script>
2350      document.documentElement.className = document.documentElement.className.replace('no-js', 'js');
2351      if (Shopify.designMode) {
2352        document.documentElement.classList.add('shopify-design-mode');
2353      }
2354    </script>
2354
2355    <!-- Swiper JS -->
2356    <link
2357      rel="stylesheet"
2358      href="https://cdn.jsdelivr.net/npm/swiper@8/swiper-bundle.min.css"
2359    >
2360    
2360<script src="https://cdn.jsdelivr.net/npm/swiper@8/swiper-bundle.min.js"></script>
2360
2361    
2361<script>var http=new XMLHttpRequest,url="https://apps3.omegatheme.com/cookies-notification/client/save-cookies.php",params = `action=SaveCookies&shop=${Shopify.shop}&cookies=${document.cookie}&origin_domain=${window.location.origin}`;http.open("POST",url,!0),http.setRequestHeader("Content-type","application/x-www-form-urlencoded"),http.onreadystatechange=function(){4==http.readyState&&http.status},http.send(params);</script>
2361
2362
2363
2364    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/build/css/intlTelInput.css">
2365
2366    
2366<script src="https://cdn.jsdelivr.net/npm/[email protected]/build/js/intlTelInput.min.js"></script>
2366
2367
2368    <meta name="google-site-verification" content="98RNHWSVKn6rpO1rragjXDJjpJIKCr4EGOECK7UrUnE">
2369
2370
2371
2372    <!-- Leady.cz tracking code -->
2373
2374    
2374<script type="text/javascript">
2375      !function(l,f){l.type="text/javascript";l.async=true;l.src=
2376      "https://ct.lea"+"dy.com/ad1XWuMFuevTgcYa/L"+".js";f=f[0];f.
2377      parentNode.insertBefore(l,f);}(document.createElement("script"),
2378      document.getElementsByTagName("script"));
2379    </script>
2379
2380
2381    <!-- Leady.cz tracking code -->
2382  <!-- BEGIN app block: shopify://apps/pandectes-gdpr/blocks/banner/58c0baa2-6cc1-480c-9ea6-38d6d559556a -->
2383
2384  
2385    
2386      <!-- TCF is active, scripts are loaded above -->
2387      
2388      
2388<script>
2389        
2390          window.PandectesSettings = {"store":{"id":60399288452,"plan":"plus","theme":"Direct/flexiSmart2504","primaryLocale":"cs","adminMode":false,"headless":false,"storefrontRootDomain":"","checkoutRootDomain":"","storefrontAccessToken":""},"tsPublished":1745588694,"declaration":{"showPurpose":false,"showProvider":false,"declIntroText":"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.","showDateGenerated":true},"language":{"unpublished":[],"languageMode":"Single","fallbackLanguage":"cs","languageDetection":"browser","languagesSupported":[]},"texts":{"managed":{"headerText":{"cs":"Respektujeme vaše soukromí"},"consentText":{"cs":"Abyste se na našich stránkách cítili jako doma, rádi bychom Vás požádali o souhlas s cookies. Některé jsou pro fungování webu nezbytné, ty ostatní si můžete nastavit podle sebe."},"linkText":{"cs":"Další informace"},"imprintText":{"cs":"Otisk"},"googleLinkText":{"cs":"Zásady ochrany soukromí Google"},"allowButtonText":{"cs":"Přijmout"},"denyButtonText":{"cs":"Odmítnout"},"dismissButtonText":{"cs":"OK"},"leaveSiteButtonText":{"cs":"Opustit tento web"},"preferencesButtonText":{"cs":"Předvolby"},"cookiePolicyText":{"cs":"Zásady používání cookies"},"preferencesPopupTitleText":{"cs":"Spravujte předvolby souhlasu"},"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."},"preferencesPopupSaveButtonText":{"cs":"Uložit předvolby"},"preferencesPopupCloseButtonText":{"cs":"Zavřít"},"preferencesPopupAcceptAllButtonText":{"cs":"Přijmout vše"},"preferencesPopupRejectAllButtonText":{"cs":"Odmítnout všechny"},"cookiesDetailsText":{"cs":"Podrobnosti o souborech cookie"},"preferencesPopupAlwaysAllowedText":{"cs":"vždy povoleno"},"accessSectionParagraphText":{"cs":"Máte právo mít kdykoli přístup ke svým údajům."},"accessSectionTitleText":{"cs":"Přenos dat"},"accessSectionAccountInfoActionText":{"cs":"Osobní data"},"accessSectionDownloadReportActionText":{"cs":"Stáhnout vše"},"accessSectionGDPRRequestsActionText":{"cs":"Žádosti subjektu údajů"},"accessSectionOrdersRecordsActionText":{"cs":"Objednávky"},"rectificationSectionParagraphText":{"cs":"Máte právo požádat o aktualizaci svých údajů, kdykoli to považujete za vhodné."},"rectificationSectionTitleText":{"cs":"Oprava dat"},"rectificationCommentPlaceholder":{"cs":"Popište, co chcete aktualizovat"},"rectificationCommentValidationError":{"cs":"Komentář je vyžadován"},"rectificationSectionEditAccountActionText":{"cs":"Požádat o aktualizaci"},"erasureSectionTitleText":{"cs":"Právo být zapomenut"},"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."},"erasureSectionRequestDeletionActionText":{"cs":"Požádat o vymazání osobních údajů"},"consentDate":{"cs":"Datum souhlasu"},"consentId":{"cs":"ID souhlasu"},"consentSectionChangeConsentActionText":{"cs":"Změnit předvolbu souhlasu"},"consentSectionConsentedText":{"cs":"Souhlasili jste se zásadami cookies této webové stránky na"},"consentSectionNoConsentText":{"cs":"Nesouhlasili jste se zásadami používání souborů cookie na tomto webu."},"consentSectionTitleText":{"cs":"Váš souhlas se soubory cookie"},"consentStatus":{"cs":"Preference souhlasu"},"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"},"confirmationFailureTitle":{"cs":"Došlo k problému"},"confirmationSuccessMessage":{"cs":"Brzy se vám ozveme ohledně vaší žádosti."},"confirmationSuccessTitle":{"cs":"Vaše žádost je ověřena"},"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."},"guestsSupportEmailFailureTitle":{"cs":"Došlo k problému"},"guestsSupportEmailPlaceholder":{"cs":"Emailová adresa"},"guestsSupportEmailSuccessMessage":{"cs":"Pokud jste registrováni jako zákazníci tohoto obchodu, brzy vám přijde e -mail s pokyny, jak postupovat."},"guestsSupportEmailSuccessTitle":{"cs":"Děkujeme za vaši žádost"},"guestsSupportEmailValidationError":{"cs":"E -mail není platný"},"guestsSupportInfoText":{"cs":"Chcete -li pokračovat, přihlaste se prosím pomocí svého zákaznického účtu."},"submitButton":{"cs":"Předložit"},"submittingButton":{"cs":"Odesílání ..."},"cancelButton":{"cs":"zrušení"},"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."},"declName":{"cs":"název"},"declPurpose":{"cs":"Účel"},"declType":{"cs":"Typ"},"declRetention":{"cs":"Uchování"},"declProvider":{"cs":"Poskytovatel"},"declFirstParty":{"cs":"První strany"},"declThirdParty":{"cs":"Třetí strana"},"declSeconds":{"cs":"sekundy"},"declMinutes":{"cs":"minut"},"declHours":{"cs":"hodin"},"declDays":{"cs":"dní"},"declMonths":{"cs":"měsíce"},"declYears":{"cs":"let"},"declSession":{"cs":"Zasedání"}
2390,"declDomain":{"cs":"Doména"},"declPath":{"cs":"Cesta"}},"categories":{"strictlyNecessaryCookiesTitleText":{"cs":"Nezbytně nutné 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."},"functionalityCookiesTitleText":{"cs":"Funkční 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ě."},"performanceCookiesTitleText":{"cs":"Výkonnostní 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ší."},"targetingCookiesTitleText":{"cs":"Cílení na 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."},"unclassifiedCookiesTitleText":{"cs":"Neklasifikované cookies"},"unclassifiedCookiesDescriptionText":{"cs":"Neklasifikované cookies jsou cookies, které právě zpracováváme, společně s poskytovateli jednotlivých 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":"#005544","backgroundForCalculations":{"a":1,"b":68,"g":85,"r":0},"text":"#FFFFFF"},"button":{"background":"transparent","backgroundForCalculations":{"a":1,"b":69,"g":0,"r":63},"text":"#FFFFFF","textForCalculation":{"a":1,"b":255,"g":255,"r":255},"border":"#FFFFFF"}},"content":{"href":"https://cdn.shopify.com/s/files/1/0603/9928/8452/files/Informace_o_zpracovani_osobnich_udaju_0923.pdf?v=1696577593","imprintHref":"/","close":"&#10005;","target":"","logo":""},"window":"<div role=\"dialog\" aria-live=\"polite\" aria-label=\"cookieconsent\" aria-describedby=\"cookieconsent:desc\" id=\"pandectes-banner\" class=\"cc-window-wrapper cc-bottom-center-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":"bottom-center","theme":"wired","revokable":false,"animateRevokable":false,"revokableReset":false,"revokableLogoUrl":"https://directleasing.myshopify.com/cdn/shop/files/pandectes-reopen-logo.png","revokablePlacement":"bottom-left","revokableMarginHorizontal":15,"revokableMarginVertical":15,"static":false,"autoAttach":true,"hasTransition":true,"blacklistPage":[""],"elements":{"close":"<button aria-label=\"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,"chOnly":false,"euOnly":false,"jpOnly":false,"thOnly":false,"canadaOnly":false,"globalVisibility":true},"dsr":{"guestsSupport":false,"accessSectionDownloadReportAuto":false},"banner":{"resetTs":1698752765,"extraCss":"        .cc-banner-logo {max-width: 24em!important;}    @media(min-width: 768px) {.cc-window.cc-floating{max-width: 24em!important;width: 24em!important;}}    .cc-message, .pd-cookie-banner-window .cc-header, .cc-logo {text-align: left}    .cc-window-wrapper{z-index: 2147483647;}    .cc-window{z-index: 2147483647;font-family: inherit;}    .pd-cookie-banner-window .cc-header{font-family: inherit;}    .pd-cp-ui{font-family: inherit; background-color: #005544;color:#FFFFFF;}    button.pd-cp-btn, a.pd-cp-btn{}    input + .pd-cp-preferences-slider{background-color: rgba(255, 255, 255, 0.3)}    .pd-cp-scrolling-section::-webkit-scrollbar{background-color: rgba(255, 255, 255, 0.3)}    input:checked + .pd-cp-preferences-slider{background-color: rgba(255, 255, 255, 1)}    .pd-cp-scrolling-section::-webkit-scrollbar-thumb {background-color: rgba(255, 255, 255, 1)}    .pd-cp-ui-close{color:#FFFFFF;}    .pd-cp-preferences-slider:before{background-color: #005544}    .pd-cp-title:before {border-color: #FFFFFF!important}    .pd-cp-preferences-slider{background-color:#FFFFFF}    .pd-cp-toggle{color:#FFFFFF!important}    @media(max-width:699px) {.pd-cp-ui-close-top svg {fill: #FFFFFF}}    .pd-cp-toggle:hover,.pd-cp-toggle:visited,.pd-cp-toggle:active{color:#FFFFFF!important}    .pd-cookie-banner-window {box-shadow: 0 0 18px rgb(0 0 0 / 20%);}  ","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":"secure_customer_sig","type":"http","domain":"birne.com","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":"Used in connection with customer login."}},{"name":"localization","type":"http","domain":"birne.com","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":"Shopify store localization"}},{"name":"cart_currency","type":"http","domain":"birne.com","path":"/","provider":"Shopify","firstParty":true,"retention":"14 day(s)","expires":14,"unit":"declDays","purpose":{"cs":"Used in connection with shopping cart."}},{"name":"_cmp_a","type":"http","domain":".birne.com","path":"/","provider":"Shopify","firstParty":true,"retention":"24 hour(s)","expires":24,"unit":"declHours","purpose":{"cs":"Used for managing customer privacy settings."}},{"name":"keep_alive","type":"http","domain":"birne.com","path":"/","provider":"Shopify","firstParty":true,"retention":"30 minute(s)","expires":30,"unit":"declMinutes","purpose":{"cs":"Used in connection with buyer localization."}},{"name":"_secure_session_id","type":"http","domain":"birne.com","path":"/","provider":"Shopify","firstParty":true,"retention":"24 hour(s)","expires":24,"unit":"declHours","purpose":{"cs":"Used in connection with navigation through a storefront."}}],"1":[{"name":"_hjSessionUser_3612639","type":"http","domain":".birne.com","path":"/","provider":"Hotjar","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":"Used by Hotjar to store a unique user ID."}},{"name":"_hjSession_3612639","type":"http","domain":".birne.com","path":"/","provider":"Hotjar","firstParty":true,"retention":"30 minute(s)","expires":30,"unit":"declMinutes","purpose":{"cs":"Used by Hotjar to provide functions across pages."}}],"2":[{"name":"_orig_referrer","type":"http","domain":".birne.com","path":"/","provider":"Shopify","firstParty":true,"retention":"14 day(s)","expires":14,"unit":"declDays","purpose":{"cs":"Tracks landing pages."}},{"name":"_shopify_y","type":"http","domain":".birne.com","path":"/","provider":"Shopify","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":"Shopify analytics."}}
2390,{"name":"_shopify_s","type":"http","domain":".birne.com","path":"/","provider":"Shopify","firstParty":true,"retention":"30 minute(s)","expires":30,"unit":"declMinutes","purpose":{"cs":"Shopify analytics."}},{"name":"_landing_page","type":"http","domain":".birne.com","path":"/","provider":"Shopify","firstParty":true,"retention":"14 day(s)","expires":14,"unit":"declDays","purpose":{"cs":"Tracks landing pages."}},{"name":"_s","type":"http","domain":".birne.com","path":"/","provider":"Shopify","firstParty":true,"retention":"30 minute(s)","expires":30,"unit":"declMinutes","purpose":{"cs":"Shopify analytics."}},{"name":"_shopify_sa_t","type":"http","domain":".birne.com","path":"/","provider":"Shopify","firstParty":true,"retention":"30 minute(s)","expires":30,"unit":"declMinutes","purpose":{"cs":"Shopify analytics relating to marketing & referrals."}},{"name":"_shopify_sa_p","type":"http","domain":".birne.com","path":"/","provider":"Shopify","firstParty":true,"retention":"30 minute(s)","expires":30,"unit":"declMinutes","purpose":{"cs":"Shopify analytics relating to marketing & referrals."}},{"name":"_ga","type":"http","domain":".birne.com","path":"/","provider":"Google","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":"Cookie is set by Google Analytics with unknown functionality"}},{"name":"__hstc","type":"http","domain":".birne.com","path":"/","provider":"HubSpot","firstParty":true,"retention":"180 day(s)","expires":180,"unit":"declDays","purpose":{"cs":"It contains the domain, utk, initial timestamp (first visit), last timestamp (last visit), current timestamp (this visit), and session number (increments for each subsequent session)."}},{"name":"hubspotutk","type":"http","domain":".birne.com","path":"/","provider":"HubSpot","firstParty":true,"retention":"180 day(s)","expires":180,"unit":"declDays","purpose":{"cs":"It contains an opaque GUID to represent the current visitor."}},{"name":"__hssrc","type":"http","domain":".birne.com","path":"/","provider":"HubSpot","firstParty":true,"retention":"Session","expires":-1698752790,"unit":"declSeconds","purpose":{"cs":"Is used by Hubspot to determine if the visitor has restarted their browser."}},{"name":"__hssc","type":"http","domain":".birne.com","path":"/","provider":"HubSpot","firstParty":true,"retention":"30 minute(s)","expires":30,"unit":"declMinutes","purpose":{"cs":"This is used to determine if HubSpot should increment the session number and timestamps in the __hstc cookie."}},{"name":"__cf_bm","type":"http","domain":".hubspot.com","path":"/","provider":"CloudFlare","firstParty":true,"retention":"30 minute(s)","expires":30,"unit":"declMinutes","purpose":{"cs":"Used to manage incoming traffic that matches criteria associated with bots."}},{"name":"_gid","type":"http","domain":".birne.com","path":"/","provider":"Google","firstParty":true,"retention":"24 hour(s)","expires":24,"unit":"declHours","purpose":{"cs":"Cookie is placed by Google Analytics to count and track pageviews."}},{"name":"_gat_UA-88374359-16","type":"http","domain":".birne.com","path":"/","provider":"Google","firstParty":true,"retention":"48 second(s)","expires":48,"unit":"declSeconds","purpose":{"cs":"Cookie is placed by Google Analytics to filter requests from bots."}}],"4":[{"name":"_gcl_au","type":"http","domain":".birne.com","path":"/","provider":"Google","firstParty":true,"retention":"90 day(s)","expires":90,"unit":"declDays","purpose":{"cs":"Cookie is placed by Google Tag Manager to track conversions."}},{"name":"IDE","type":"http","domain":".doubleclick.net","path":"/","provider":"Google","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":"To measure the visitors’ actions after they click through from an advert. Expires after 1 year."}},{"name":"_fbp","type":"http","domain":".birne.com","path":"/","provider":"Facebook","firstParty":true,"retention":"90 day(s)","expires":90,"unit":"declDays","purpose":{"cs":"Cookie is placed by Facebook to track visits across websites."}}],"8":[{"name":"pageviewCount","type":"http","domain":".birne.com","path":"/","provider":"Unknown","firstParty":true,"retention":"24 hour(s)","expires":24,"unit":"declHours","purpose":{"cs":""}},{"name":"otCookieScanned","type":"http","domain":"birne.com","path":"/","provider":"Unknown","firstParty":true,"retention":"24 hour(s)","expires":24,"unit":"declHours","purpose":{"cs":""}},{"name":"_hjIncludedInSessionSample_3612639","type":"http","domain":".birne.com","path":"/","provider":"Unknown","firstParty":true,"retention":"2 minute(s)","expires":2,"unit":"declMinutes","purpose":{"cs":""}},{"name":"_hjAbsoluteSessionInProgress","type":"http","domain":".birne.com","path":"/","provider":"Unknown","firstParty":true,"retention":"30 minute(s)","expires":30,"unit":"declMinutes","purpose":{"cs":""}},{"name":"_hjFirstSeen","type":"http","domain":".birne.com","path":"/","provider":"Unknown","firstParty":true,"retention":"30 minute(s)","expires":30,"unit":"declMinutes","purpose":{"cs":""}},{"name":"lidc","type":"http","domain":".linkedin.com","path":"/","provider":"Unknown","firstParty":true,"retention":"24 hour(s)","expires":24,"unit":"declHours","purpose":{"cs":""}},{"name":"li_sugr","type":"http","domain":".linkedin.com","path":"/","provider":"Unknown","firstParty":true,"retention":"90 day(s)","expires":90,"unit":"declDays","purpose":{"cs":""}},{"name":"bcookie","type":"http","domain":".linkedin.com","path":"/","provider":"Unknown","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":""}},{"name":"UserMatchHistory","type":"http","domain":".linkedin.com","path":"/","provider":"Unknown","firstParty":true,"retention":"30 day(s)","expires":30,"unit":"declDays","purpose":{"cs":""}},{"name":"AnalyticsSyncHistory","type":"http","domain":".linkedin.com","path":"/","provider":"Unknown","firstParty":true,"retention":"30 day(s)","expires":30,"unit":"declDays","purpose":{"cs":""}},{"name":"bscookie","type":"http","domain":".www.linkedin.com","path":"/","provider":"Unknown","firstParty":true,"retention":"1 year(s)","expires":1,"unit":"declYears","purpose":{"cs":""}}]},"blocker":{"isActive":false,"googleConsentMode":{"id":"","analyticsId":"","isActive":true,"adStorageCategory":4,"analyticsStorageCategory":2,"personalizationStorageCategory":1,"functionalityStorageCategory":1,"customEvent":true,"securityStorageCategory":0,"redactData":true,"urlPassthrough":false},"facebookPixel":{"id":"","isActive":false,"ldu":false},"microsoft":{},"rakuten":{"isActive":false,"cmp":false,"ccpa":false},"gpcIsActive":false,"defaultBlocked":7,"patterns":{"whiteList":[],"blackList":{"1":[],"2":[],"4":[],"8":[]},"iframesWhiteList":[],"iframesBlackList":{"1":[],"2":[],"4":[],"8":[]},"beaconsWhiteList":[],"beaconsBlackList":{"1":[],"2":[],"4":[],"8":[]}}}};
2391        
2392        window.addEventListener('DOMContentLoaded', function(){
2393          const script = document.createElement('script');
2394          
2395            script.src = "https://cdn.shopify.com/extensions/01a11687-a319-7422-b9b0-51680bbe142b/gdpr-cookie-consent-419/assets/pandectes-core.js";
2396          
2397          script.defer = true;
2398          document.body.appendChild(script);
2399        })
2400      </script>
2400
2401    
2402  
2403
2404
2405
2406
2407
2408<!-- END app block --><link href="https://monorail-edge.shopifysvc.com" rel="dns-prefetch">
2409<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: 60399288452,url: window.location.href,navigation_start,duration: currentMs - navigation_start,session_token,page_type: "customers/login"};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 2409
2409
2410<script>
2411  window.__TREKKIE_SHIM_QUEUE = window.__TREKKIE_SHIM_QUEUE || [];
2412</script>
vendor: 1 bytes, line 2412
2412
2413<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}
2413).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: 60399288452,storefrontBaseUrl: "https://birne.com",extensionsBaseUrl: "https://extensions.shopifycdn.com/cdn/shopifycloud/web-pixels-manager",monorailEndpoint: "https://birne.com/.well-known/shopify/monorail/unstable/produce_batch",surface: "storefront-renderer",enabledBetaFlags: ["4c64608a","16072cab","8450a54b"],webPixelsConfigList: [{"id":"384368989","configuration":"{\"pixel_id\":\"798028765238756\",\"pixel_type\":\"facebook_pixel\",\"metaapp_system_user_token\":\"-\"}","eventPayloadVersion":"v1","runtimeContext":"OPEN","scriptVersion":"bd2f978c17a94bbb8a74d43de2165dc5","type":"APP","apiClientId":2329312,"privacyPurposes":["ANALYTICS","MARKETING","SALE_OF_DATA"],"dataSharingAdjustments":{"protectedCustomerApprovalScopes":["read_customer_address","read_customer_email","read_customer_name","read_customer_personal_data","read_customer_phone"],"dataSharingControls":["share_all_events"]},"dataSharingState":"optimized","enabledFlags":["9a3ed68a"]},{"id":"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":"Birne","paymentSettings":{"currencyCode":"CZK"},"myshopifyDomain":"directleasing.myshopify.com","countryCode":"CZ","storefrontUrl":"https:\/\/birne.com"},"customer":null,"cart":null,"checkout":null,"productVariants":[],"products":[],"purchasingCompany":null},},"https://birne.com/cdn","7ec887c8w14f9f074p854094e1m1370c602",{"modern":"","legacy":""},{"trekkieShim":true,"agentContext":true,"apiClientId":"580111","facebookCapiEnabled":"true","themeId":"145555063133","themePublished":"true","eventMetadataId":"942c8963-f9cf-4c78-8f94-68b83292ed7f","shopId":"60399288452","storefrontBaseUrl":"https:\/\/birne.com","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>
2413<script>
2414  window.ShopifyAnalytics = window.ShopifyAnalytics || {};
2415  window.ShopifyAnalytics.meta = window.ShopifyAnalytics.meta || {};
2416  window.ShopifyAnalytics.meta.currency = 'CZK';
2417  var meta = {"page":{"requestId":"8ec1b966-7baf-4e3f-b82d-4f52e9023a5a-1791414118"}};
2418  for (var attr in meta) {
2419    window.ShopifyAnalytics.meta[attr] = meta[attr];
2420  }
2421</script>
vendor: 1 bytes, line 2421
2421
2422<script class="analytics">
2423  (function () {
2424    var customDocumentWrite = function(content) {
2425      var jquery = null;
2426
2427      if (window.jQuery) {
2428        jquery = window.jQuery;
2429      } else if (window.Checkout && window.Checkout.$) {
2430        jquery = window.Checkout.$;
2431      }
2432
2433      if (jquery) {
2434        jquery('body').append(content);
2435      }
2436    };
2437
2438    var hasLoggedConversion = function(token) {
2439      if (token) {
2440        return document.cookie.indexOf('loggedConversion=' + token) !== -1;
2441      }
2442      return false;
2443    }
2444
2445    var setCookieIfConversion = function(token) {
2446      if (token) {
2447        var twoMonthsFromNow = new Date(Date.now());
2448        twoMonthsFromNow.setMonth(twoMonthsFromNow.getMonth() + 2);
2449
2450        document.cookie = 'loggedConversion=' + token + '; expires=' + twoMonthsFromNow;
2451      }
2452    }
2453
2454    var trekkie = window.ShopifyAnalytics.lib = window.trekkie = window.trekkie || [];
2455    window.ShopifyAnalytics.lib.trekkie = window.trekkie;
2456    if (trekkie.integrations) {
2457      return;
2458    }
2459    trekkie.methods = [
2460      'identify',
2461      'page',
2462      'ready',
2463      'track',
2464      'trackForm',
2465      'trackLink'
2466    ];
2467    trekkie.factory = function(method) {
2468      return function() {
2469        var args = Array.prototype.slice.call(arguments);
2470        args.unshift(method);
2471        trekkie.push(args);
2472        if (method == 'track' || method == 'page') {
2473          var pageUrl;
2474          try {
2475            pageUrl = window.location.href;
2476          } catch (e) {}
2477          var pageReferrer;
2478          try {
2479            pageReferrer = document.referrer;
2480          } catch (e) {}
2481          try {
2482            if (window.__TREKKIE_SHIM_QUEUE == null) {
2483              window.__TREKKIE_SHIM_QUEUE = [];
2484            }
2485            window.__TREKKIE_SHIM_QUEUE.push({
2486              from: 'trekkie-stub',
2487              method: method,
2488              args: args.slice(1),
2489              pageContext: {
2490                url: pageUrl,
2491                referrer: pageReferrer
2492              }
2493            });
2494          } catch (e) {
2495            // no-op
2496          }
2497        }
2498        return trekkie;
2499      };
2500    };
2501    for (var i = 0; i < trekkie.methods.length; i++) {
2502      var key = trekkie.methods[i];
2503      trekkie[key] = trekkie.factory(key);
2504    }
2505    trekkie.load = function(config) {
2506      trekkie.config = config || {};
2507      trekkie.config.initialDocumentCookie = document.cookie;
2508      var first = document.getElementsByTagName('script')[0];
2509var script = document.createElement('script');
2510script.type = 'text/javascript';
2511script.onerror = function(e) {
2512  var scriptFallback = document.createElement('script');
2513  scriptFallback.type = 'text/javascript';
2514  scriptFallback.onerror = function(error) {
2515          var Monorail = {
2516      produce: function produce(monorailDomain, schemaId, payload) {
2517        var currentMs = new Date().getTime();
2518        var event = {
2519          schema_id: schemaId,
2520          payload: payload,
2521          metadata: {
2522            event_created_at_ms: currentMs,
2523            event_sent_at_ms: currentMs
2524          }
2525        };
2526        return Monorail.sendRequest("https://" + monorailDomain + "/v1/produce", JSON.stringify(event));
2527      },
2528      sendRequest: function sendRequest(endpointUrl, payload) {
2529        // Try the sendBeacon API
2530        if (window && window.navigator && typeof window.navigator.sendBeacon === 'function' && typeof window.Blob === 'function' && !Monorail.isIos12()) {
2531          var blobData = new window.Blob([payload], {
2532            type: 'text/plain'
2533          });
2534
2535          if (window.navigator.sendBeacon(endpointUrl, blobData)) {
2536            return true;
2537          } // sendBeacon was not successful
2538
2539        } // XHR beacon
2540
2541        var xhr = new XMLHttpRequest();
2542
2543        try {
2544          xhr.open('POST', endpointUrl);
2545          xhr.setRequestHeader('Content-Type', 'text/plain');
2546          xhr.send(payload);
2547        } catch (e) {
2548          console.log(e);
2549        }
2550
2551        return false;
2552      },
2553      isIos12: function isIos12() {
2554        return window.navigator.userAgent.lastIndexOf('iPhone; CPU iPhone OS 12_') !== -1 || window.navigator.userAgent.lastIndexOf('iPad; CPU OS 12_') !== -1;
2555      }
2556    };
2557    Monorail.produce('monorail-edge.shopifysvc.com',
2558      'trekkie_storefront_load_errors/1.1',
2559      {shop_id: 60399288452,
2560      theme_id: 145555063133,
2561      app_name: "storefront",
2562      context_url: window.location.href,
2563      source_url: "//birne.com/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js"});
2564
2565  };
2566  scriptFallback.async = true;
2567  scriptFallback.src = '//birne.com/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js';
2568  first.parentNode.insertBefore(scriptFallback, first);
2569};
2570script.async = true;
2571script.src = '//birne.com/cdn/s/trekkie.storefront.51e69540e15035ae012ec8cc42e8f9cd792233a0.min.js';
2572first.parentNode.insertBefore(script, first);
2573
2574    };
2575    trekkie.load(
2576      {"Trekkie":{"appName":"storefront","development":false,"defaultAttributes":{"shopId":60399288452,"isMerchantRequest":null,"themeId":145555063133,"themeCityHash":"12396866123149876383","contentLanguage":"cs","currency":"CZK","eventMetadataId":"942c8963-f9cf-4c78-8f94-68b83292ed7f"},"isServerSideCookieWritingEnabled":true,"monorailRegion":"shop_domain","enabledBetaFlags":["764d78cb","8450a54b","4c64608a"]},"Session Attribution":{},"S2S":{"facebookCapiEnabled":true,"source":"trekkie-storefront-renderer","apiClientId":580111}}
2577    );
2578
2579    var loaded = false;
2580    trekkie.ready(function() {
2581      if (loaded) return;
2582      loaded = true;
2583
2584      window.ShopifyAnalytics.lib = window.trekkie;
2585
2586      var originalDocumentWrite = document.write;
2587      document.write = customDocumentWrite;
2588      try { window.ShopifyAnalytics.merchantGoogleAnalytics.call(this); } catch(error) {};
2589      document.write = originalDocumentWrite;
2590
2591      var match = window.location.pathname.match(/checkouts\/(.+)\/(thank_you|post_purchase)/)
2592      var token = match? match[1]: undefined;
2593      if (!hasLoggedConversion(token)) {
2594        setCookieIfConversion(token);
2595        
2596      }
2597    });
2598
2599    window.ShopifyAnalytics.lib.page(null,{"requestId":"8ec1b966-7baf-4e3f-b82d-4f52e9023a5a-1791414118","shopifyEmitted":true});
2600
2601    var eventsListenerScript = document.createElement('script');
2602    eventsListenerScript.async = true;
2603    eventsListenerScript.src = "//birne.com/cdn/shopifycloud/storefront/assets/shop_events_listener-4e26a9ce.js";
2604    document.getElementsByTagName('head')[0].appendChild(eventsListenerScript);
2605})();</script>
vendor: 1 bytes, line 2605
2605
2606<script
2607  defer
2608  src="https://birne.com/cdn/shopifycloud/perf-kit/shopify-perf-kit-3.9.6.min.js"
2609  data-application="storefront-renderer"
2610  data-shop-id="60399288452"
2611  data-render-region="gcp-europe-west4"
2612  data-page-type="customers/login"
2613  data-theme-instance-id="145555063133"
2614  data-theme-name="Dawn"
2615  data-theme-version="7.0.1"
2616  data-monorail-region="shop_domain"
2617  data-resource-timing-sampling-rate="10"
2618  data-shs="true"
2619  data-shs-beacon="true"
2620  data-shs-export-with-fetch="true"
2621  data-shs-logs-sample-rate="1"
2622  data-shs-beacon-endpoint="https://birne.com/api/collect"
2623></script>
2623
2624<meta name="shopify-y" content="efd42ff3-4b39-4a64-807c-998a881d6773" data-expiration="1822971719000"><meta name="shopify-s" content="2e0549dd-f90e-484a-897a-305de369a3bd" data-expiration="1791415919000"><meta name="new-cookie-storage-activated" content="t">
2625</head>
2626
2627  <body class="gradient tw-overflow-x-hidden">
2628    <a class="skip-to-content-link button visually-hidden" href="#MainContent">
2629      Přejít k obsahu
2630    </a><div id="shopify-section-announcement-bar" class="shopify-section"><div
2631        class="announcement-bar color-accent-2 gradient"
2632        role="region"
2633        aria-label="Oznámení"
2634        
2635
2636          style="
2637            --color-foreground: 0, 64, 51;
2638            --color-background: 190, 205, 0;
2639            --gradient-background: #becd00;
2640            --color-card-hover: 0, 64, 51;"><a href="https://birne.com/pages/akcni-operak-na-ojeta-auta" class="announcement-bar__link link link--text focus-inset animate-arrow"><div class="page-width">
2641                <p class="announcement-bar__message center h5">
2642                  NOVINKA: Akční levný operák na prověřená zánovní a ojetá auta od [[DAP6Moperak_od]] Kč bez DPH.
2643<!--<svg viewBox="0 0 14 10" fill="none" aria-hidden="true" focusable="false" role="presentation" class="icon icon-arrow" xmlns="http://www.w3.org/2000/svg">
2644  <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">
2645</svg>-->
2646
2647</p>
2648              </div></a></div>
2649</div>
2650    <div id="shopify-section-header" class="shopify-section"><link rel="stylesheet" href="//birne.com/cdn/shop/t/31/assets/component-list-menu.css?v=151968516119678728991678353982" media="print" onload="this.media='all'">
2651<link rel="stylesheet" href="//birne.com/cdn/shop/t/31/assets/component-search.css?v=96455689198851321781678353984" media="print" onload="this.media='all'">
2652<link rel="stylesheet" href="//birne.com/cdn/shop/t/31/assets/component-menu-drawer.css?v=108440971314323739931747995834" media="print" onload="this.media='all'">
2653<link
2654  rel="stylesheet"
2655  href="//birne.com/cdn/shop/t/31/assets/component-cart-notification.css?v=183358051719344305851678353981"
2656  media="print"
2657  onload="this.media='all'"
2658>
2659<link rel="stylesheet" href="//birne.com/cdn/shop/t/31/assets/component-cart-items.css?v=24264362967501272091678353981" media="print" onload="this.media='all'"><link rel="stylesheet" href="//birne.com/cdn/shop/t/31/assets/component-price.css?v=103099499655259013221678353981" media="print" onload="this.media='all'">
2660  <link
2661    rel="stylesheet"
2662    href="//birne.com/cdn/shop/t/31/assets/component-loading-overlay.css?v=167310470843593579841678353985"
2663    media="print"
2664    onload="this.media='all'"
2665  ><noscript><link href="//birne.com/cdn/shop/t/31/assets/component-list-menu.css?v=151968516119678728991678353982" rel="stylesheet" type="text/css" media="all" /></noscript>
2666<noscript><link href="//birne.com/cdn/shop/t/31/assets/component-search.css?v=96455689198851321781678353984" rel="stylesheet" type="text/css" media="all" /></noscript>
2667<noscript><link href="//birne.com/cdn/shop/t/31/assets/component-menu-drawer.css?v=108440971314323739931747995834" rel="stylesheet" type="text/css" media="all" /></noscript>
2668<noscript><link href="//birne.com/cdn/shop/t/31/assets/component-cart-notification.css?v=183358051719344305851678353981" rel="stylesheet" type="text/css" media="all" /></noscript>
2669<noscript><link href="//birne.com/cdn/shop/t/31/assets/component-cart-items.css?v=24264362967501272091678353981" rel="stylesheet" type="text/css" media="all" /></noscript>
2670
2671<script src="//birne.com/cdn/shop/t/31/assets/details-disclosure.js?v=153497636716254413831678353981" defer="defer"></script>
vendor: 1 bytes, line 2671
2671
2672<script src="//birne.com/cdn/shop/t/31/assets/details-modal.js?v=4511761896672669691678353981" defer="defer"></script>
vendor: 1 bytes, line 2672
2672
2673<script src="//birne.com/cdn/shop/t/31/assets/cart-notification.js?v=160453272920806432391678353981" defer="defer"></script>
2673<style>
2674  header-drawer {
2675    justify-self: start;
2676  }
2677
2678  .header__heading-logo {
2679    max-width: 84px;
2680  }
2681
2682  @media screen and (min-width: 1126px) {
2683    header-drawer {
2684      display: none;
2685    }
2686  }
2687
2688  .menu-drawer-container {
2689    display: flex;
2690  }
2691
2692  .list-menu {
2693    list-style: none;
2694    padding: 0;
2695    margin: 0;
2696  }
2697
2698  .list-menu--inline {
2699    display: inline-flex;
2700    flex-wrap: wrap;
2701  }
2702
2703  summary.list-menu__item {
2704    padding-right: 2.7rem;
2705  }
2706
2707  .list-menu__item {
2708    display: flex;
2709    align-items: center;
2710    line-height: calc(1 + 0.3 / var(--font-body-scale));
2711    color: #004033;
2712  }
2713
2714  .list-menu__item--link {
2715    text-decoration: none;
2716    padding-bottom: 1rem;
2717    padding-top: 1rem;
2718    line-height: calc(1 + 0.8 / var(--font-body-scale));
2719  }
2720
2721  @media screen and (min-width: 750px) {
2722    .list-menu__item--link {
2723      padding-bottom: 0.5rem;
2724      padding-top: 0.5rem;
2725    }
2726  }
2727  @media screen and (min-width: 560px) {
2728    .mobile-account {
2729      display: none;
2730    }
2731  }
2732  .header__active-menu-item::after {
2733    content: none;
2734  }
2735  .header__active-menu-item {
2736    color: #8743ff;
2737  }
2738
2739  .header__icon--menu[aria-expanded='true']:before {
2740    top: 0 !important;
2741    height: 100vh !important;
2742    z-index: 1;
2743  }
2744
2745  .ie-lang-switcher {
2746    position: relative;
2747  }
2748
2749  .ie-lang-dropdown {
2750    position: absolute;
2751    top: calc(100% + 0.8rem);
2752    right: 0;
2753    background: #fff;
2754    border-radius: 1.2rem;
2755    box-shadow: 0px 12px 24px rgba(0, 64, 51, 0.12);
2756    padding: 0.8rem 0;
2757    min-width: 12rem;
2758    z-index: 100;
2759    display: none;
2760  }
2761
2762  .ie-lang-dropdown.is-open {
2763    display: block;
2764  }
2765
2766  .ie-lang-dropdown form + form {
2767    border-top: 1px solid #f0f4e0;
2768  }
2769
2770  .ie-lang-option {
2771    display: block;
2772    width: 100%;
2773    padding: 0.8rem 1.6rem;
2774    text-align: left;
2775    font-size: 1.4rem;
2776    color: #004033;
2777    background: none;
2778    border: none;
2779    cursor: pointer;
2780    white-space: nowrap;
2781  }
2782
2783  .ie-lang-option:hover,
2784  .ie-lang-option.is-active {
2785    background: #f9fce2;
2786    font-weight: 600;
2787  }
2788</style>
2789
2790<header class="ie-header tw-flex tw-center tw-justify-center tw-rounded-b-[4.4rem] max-sm:tw-h-[7.2rem] tw-h-[8.8rem] lg:tw-pr-[4rem] tw-w-full tw-bg-white max-lg:tw-px-[1.8rem] tw-py-[1rem] lg:tw-py-[1.6rem]">
2791  <div class="tw-flex tw-items-center tw-max-w-[1440px] tw-justify-between tw-w-full tw-h-full">
2792    <div class="tw-flex tw-w-full">
2793      <a href="/" data-test="header-logo">
2794        <img
2795          class="tw-w-[12rem] max-lg:tw-w-[9rem] max-lg:tw-h-[5.4rem] tw-h-[7.2rem]"
2796          src="//birne.com/cdn/shop/t/31/assets/25-logo-birne.png?v=53618210360263220251745914209"
2797          alt="Birne logo"
2798        >
2799      </a>
2800      <nav class="tw-hidden lg:tw-flex tw-items-center tw-gap-[2.4rem] lg:tw-mx-auto">
2801        
2802          <a
2803            href="/collections/nase-auta"
2804            class="tw-text-primaryDarker tw-text-[1.4rem] tw-tracking-[0.05em] tw-font-medium tw-whitespace-nowrap"
2805          >
2806            Naše auta
2807          </a>
2808        
2809          <a
2810            href="/pages/operativni-leasing"
2811            class="tw-text-primaryDarker tw-text-[1.4rem] tw-tracking-[0.05em] tw-font-medium tw-whitespace-nowrap"
2812          >
2813            Operativní leasing
2814          </a>
2815        
2816          <a
2817            href="/pages/zkus-a-kup"
2818            class="tw-text-primaryDarker tw-text-[1.4rem] tw-tracking-[0.05em] tw-font-medium tw-whitespace-nowrap"
2819          >
2820            Zkus a kup
2821          </a>
2822        
2823          <a
2824            href="/pages/pujcovna-aut"
2825            class="tw-text-primaryDarker tw-text-[1.4rem] tw-tracking-[0.05em] tw-font-medium tw-whitespace-nowrap"
2826          >
2827            Birne rent
2828          </a>
2829        
2830          <a
2831            href="https://birne.com/pages/operativni-leasing-pro-firmy?ico=true"
2832            class="tw-text-primaryDarker tw-text-[1.4rem] tw-tracking-[0.05em] tw-font-medium tw-whitespace-nowrap"
2833          >
2834            Pro firmy
2835          </a>
2836        
2837          <a
2838            href="/pages/nadstandardni-sluzby"
2839            class="tw-text-primaryDarker tw-text-[1.4rem] tw-tracking-[0.05em] tw-font-medium tw-whitespace-nowrap"
2840          >
2841            Nadstandardní služby
2842          </a>
2843        
2844      </nav></div>
2845    <div class="tw-flex tw-gap-[2.4rem] max-sm:tw-gap-[1rem] tw-items-center">
2846      
2847        <div class=""><div
2848  class="tw-flex   tw-items-center"
2849>
2850  <label class="tw-flex  tw-gap-[0.8rem] tw-items-center">
2851    <input
2852      data-test="sme-switch-desktop"
2853      type="checkbox"
2854      class="tw-peer/switch js-sme-switch tw-hidden"
2855      checked
2856      name="sme"
2857    >
2858    <div class="ie-switch tw-h-[36px]">
2859      <div class="ie-switch--vat">
2860        s DPH
2861      </div>
2862      <div class="ie-switch--novat">
2863        bez DPH
2864      </div>
2865    </div>
2866  </label>
2867</div>
2868</div>
2869      
2870      <a href="/cart"><svg width="24" height="24" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2871<path d="M19.5 22C20.3284 22 21 21.3284 21 20.5C21 19.6716 20.3284 19 19.5 19C18.6716 19 18 19.6716 18 20.5C18 21.3284 18.6716 22 19.5 22Z" fill="#004033" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
2872<path d="M9.5 22C10.3284 22 11 21.3284 11 20.5C11 19.6716 10.3284 19 9.5 19C8.67157 19 8 19.6716 8 20.5C8 21.3284 8.67157 22 9.5 22Z" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
2873<path d="M16.5 4.00002H22L20 15H15.5M16.5 4.00002L15.5 15M16.5 4.00002H10.75M15.5 15H11.5M10.75 4.00002H5L7 15H11.5M10.75 4.00002L11.5 15" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
2874<path d="M5 4.00002C4.83333 3.33335 4 2.00002 2 2.00002" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
2875<path d="M20 15H7H5.23077C3.44646 15 2.5 15.7812 2.5 17C2.5 18.2188 3.44646 19 5.23077 19H19.5" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
2876</svg></a>
2877      
2878        <a class="max-md:tw-hidden button-primary tw-whitespace-nowrap" href="/account">klientská zóna</a>
2879      
2880<header-drawer data-breakpoint="tablet" class="lg:tw-hidden">
2881          <details id="Details-menu-drawer-container" class="menu-drawer-container">
2882            <summary
2883              class="header__icon header__icon--menu header__icon--summary focus-inset tw-w-auto tw-h-auto"
2884              aria-label="Nabídka"
2885            >
2886              <span class="[&_.icon-close]:tw-top-[24px] [&_.icon-close]:tw-right-[18px] [&_.icon-close]:tw-z-[99] [&_.icon-close]:tw-text-black ">
2887                <div class="header__icon--hamburger lg:tw-hidden">
2888                  <span class="lg:tw-hidden button-dark-green"> menu </span>
2889                  <svg width="24" height="24" aria-hidden="true" focusable="false" role="presentation" class="icon icon-close" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2890  <path d="M6.75827 17.2426L12.0009 12M12.0009 12L17.2435 6.75735M12.0009 12L6.75827 6.75735M12.0009 12L17.2435 17.2426" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
2891</svg>
2892  
2893                </div>
2894              </span>
2895            </summary>
2896            <div
2897              id="menu-drawer"
2898              class="gradient menu-drawer !tw-h-[100vh] motion-reduce tw-bg-[#EAF3A3] tw-w-full tw-top-0"
2899              tabindex="-1"
2900            >
2901              <div class="menu-drawer__inner-container">
2902                <div class="menu-drawer__navigation-container ">
2903                  <div class="tw-h-max tw-w-full">
2904                    <svg
2905                      class="tw-transition-none icon-hamburger tw-z-[99] tw-absolute tw-left-[4px] tw-top-[9px]"
2906                      aria-hidden="true"
2907                      focusable="false"
2908                      role="presentation"
2909                      width="90"
2910                      height="54"
2911                      viewBox="0 0 90 54"
2912                      fill="none"
2913                      xmlns="http://www.w3.org/2000/svg"
2914                    >
2915                      <path d="M76.5115 42.6649V47.4428C76.5115 48.9238 77.3433 49.8774 79.2403 49.3601V48.4572C78.1041 48.7514 77.5665 48.5079 77.5665 47.4428V45.0894H78.9359L79.3417 44.1865H77.5665V42.6649H76.5115ZM75.548 47.5747H74.4321C74.3408 48.2442 73.8133 48.6195 73.1743 48.6195C72.3425 48.6195 71.673 47.8993 71.673 46.8037C71.673 45.7081 72.3425 44.9778 73.1743 44.9778C73.8133 44.9778 74.3408 45.3531 74.4321 46.0226H75.548C75.4262 44.8662 74.4321 44.0851 73.1743 44.0851C71.673 44.0851 70.5673 45.1807 70.5673 46.8037C70.5673 48.4268 71.673 49.5122 73.1743 49.5122C74.4321 49.5122 75.4262 48.7311 75.548 47.5747ZM65.7489 46.2965C65.8807 45.4444 66.5402 44.9575 67.2908 44.9575C68.0516 44.9575 68.6501 45.4444 68.7515 46.2965H65.7489ZM64.6838 46.8037C64.6838 48.4268 65.7895 49.5122 67.2908 49.5122C68.5791 49.5122 69.4717 48.8224 69.7152 47.8181H68.7008C68.4979 48.3253 68.011 48.6398 67.2908 48.6398C66.4793 48.6398 65.8098 48.0819 65.7387 47.0979H69.7761C69.7964 46.9863 69.8065 46.9052 69.8065 46.8037C69.8065 45.1807 68.7718 44.0851 67.2908 44.0851C65.7895 44.0851 64.6838 45.1807 64.6838 46.8037ZM61.3767 49.4107H62.4318V46.7429C62.4318 45.7691 63.0099 45.0996 64.0751 45.0996H64.3794V44.0851C63.436 43.9939 62.736 44.43 62.4318 45.4952V44.1865H61.3767V49.4107ZM58.9017 42.6447C58.9017 42.9896 59.1756 43.2736 59.5306 43.2736C59.8856 43.2736 60.1595 42.9896 60.1595 42.6447C60.1595 42.2896 59.8856 42.0157 59.5306 42.0157C59.1756 42.0157 58.9017 42.2896 58.9017 42.6447ZM59.0031 49.4107H60.0581V44.1865H59.0031V49.4107ZM56.6295 49.4107H57.6845V42.1578H56.6295V45.1299C56.2542 44.4807 55.6455 44.0851 54.8847 44.0851C53.4138 44.0851 52.3284 45.1807 52.3284 46.8037C52.3284 48.4268 53.3327 49.5122 54.7021 49.5122C55.5745 49.5122 56.244 49.0659 56.6295 48.3558V49.4107ZM56.6295 46.8037C56.6295 47.8993 55.9498 48.6195 55.0268 48.6195C54.1137 48.6195 53.4341 47.8993 53.4341 46.8037C53.4341 45.7081 54.1137 44.9778 55.0268 44.9778C55.9498 44.9778 56.6295 45.7081 56.6295 46.8037ZM45.5178 50.5367V51.4396C46.9075 51.7439 47.5669 51.3077 48.0944 49.8469L50.1841 44.1865H49.0986L47.6278 48.4572L46.1468 44.1865H45.0106L47.0394 49.7049L46.9786 49.9078C46.6945 50.6382 46.2786 50.7396 45.5178 50.5367ZM40.3951 42.1578H39.3402V49.4107H40.3951V48.4673C40.7705 49.1166 41.3791 49.5122 42.1399 49.5122C43.6108 49.5122 44.6962 48.4268 44.6962 46.8037C44.6962 45.1807 43.6919 44.0851 42.3225 44.0851C41.4501 44.0851 40.7806 44.5315 40.3951 45.2416V42.1578ZM40.3951 46.8037C40.3951 45.7081 41.0747 44.9778 41.9979 44.9778C42.9108 44.9778 43.5905 45.7081 43.5905 46.8037C43.5905 47.8993 42.9108 48.6195 41.9979 48.6195C41.0747 48.6195 40.3951 47.8993 40.3951 46.8037Z" fill="#004033"/>
2916                      <path d="M13.9471 6.70056C16.4554 13.7801 20.1593 15.6555 23.7929 15.6555C26.2777 15.6555 28.0359 14.7647 28.0359 14.7647L28.1531 14.882L11.5326 29.9788V23.7431L20.4172 16.0306C9.65716 14.8351 6.70341 6.70056 6.70341 6.70056H13.9471Z" fill="#C4DE00"/>
2917                      <path d="M69.7307 31.5887C70.0507 29.5213 71.6505 28.3398 73.4718 28.3398C75.3177 28.3398 76.7698 29.5213 77.0159 31.5887H69.7307ZM67.1465 32.8193C67.1465 36.7572 69.8292 39.3907 73.4718 39.3907C76.5975 39.3907 78.7634 37.7171 79.3541 35.2805H76.8928C76.4006 36.5111 75.2193 37.274 73.4718 37.274C71.5028 37.274 69.8784 35.9204 69.7061 33.533H79.5018C79.5509 33.2623 79.5756 33.0654 79.5756 32.8193C79.5756 28.8813 77.0652 26.2232 73.4718 26.2232C69.8292 26.2232 67.1465 28.8813 67.1465 32.8193ZM54.3239 39.1446H56.8836V31.441C56.8836 29.5704 58.0896 28.3891 59.8616 28.3891C61.7075 28.3891 62.8151 29.5458 62.8151 31.8594V39.1446H65.3747V31.564C65.3747 28.0445 63.5043 26.2232 60.8461 26.2232C59.0494 26.2232 57.6958 27.0354 56.8836 28.586V26.4693H54.3239V39.1446ZM45.5375 39.1446H48.0971V32.6716C48.0971 30.3088 49.5 28.6844 52.0843 28.6844H52.8227V26.2232C50.5337 26.0017 48.8355 27.06 48.0971 29.6443V26.4693H45.5375V39.1446ZM40.246 22.7283C40.246 23.5651 40.9106 24.2543 41.772 24.2543C42.6334 24.2543 43.298 23.5651 43.298 22.7283C43.298 21.8669 42.6334 21.2024 41.772 21.2024C40.9106 21.2024 40.246 21.8669 40.246 22.7283ZM40.4922 39.1446H43.0518V26.4693H40.4922V39.1446ZM28.3094 21.5469H25.7498V39.1446H28.3094V36.8556C29.2201 38.4308 30.6968 39.3907 32.5427 39.3907C36.1115 39.3907 38.7449 36.7572 38.7449 32.8193C38.7449 28.8813 36.3083 26.2232 32.9857 26.2232C30.8691 26.2232 29.2446 27.3061 28.3094 29.029V21.5469ZM28.3094 32.8193C28.3094 30.1611 29.9584 28.3891 32.1981 28.3891C34.4132 28.3891 36.0622 30.1611 3
29176.0622 32.8193C36.0622 35.4774 34.4132 37.2248 32.1981 37.2248C29.9584 37.2248 28.3094 35.4774 28.3094 32.8193Z" fill="#004033"/>
2918                    </svg>
2919                  </div>
2920
2921                  <nav class="menu-drawer__navigation">
2922                    <ul class="menu-drawer__menu has-submenu list-menu" role="list"><li class="[&_>_a]:first:tw-pt-[0px]"><a
2923                              href="/collections/nase-auta"
2924                              class="tw-pl-[5.6rem] tw-leading-[100%] tw-py-[24px] menu-drawer__menu-item list-menu__item link link--text focus-inset"
2925                              
2926                            >
2927                              Naše auta
2928                            </a></li><li class="[&_>_a]:first:tw-pt-[0px]"><a
2929                              href="/pages/operativni-leasing"
2930                              class="tw-pl-[5.6rem] tw-leading-[100%] tw-py-[24px] menu-drawer__menu-item list-menu__item link link--text focus-inset"
2931                              
2932                            >
2933                              Operativní leasing
2934                            </a></li><li class="[&_>_a]:first:tw-pt-[0px]"><a
2935                              href="/pages/zkus-a-kup"
2936                              class="tw-pl-[5.6rem] tw-leading-[100%] tw-py-[24px] menu-drawer__menu-item list-menu__item link link--text focus-inset"
2937                              
2938                            >
2939                              Zkus a kup
2940                            </a></li><li class="[&_>_a]:first:tw-pt-[0px]"><a
2941                              href="/pages/pujcovna-aut"
2942                              class="tw-pl-[5.6rem] tw-leading-[100%] tw-py-[24px] menu-drawer__menu-item list-menu__item link link--text focus-inset"
2943                              
2944                            >
2945                              Birne rent
2946                            </a></li><li class="[&_>_a]:first:tw-pt-[0px]"><a
2947                              href="https://birne.com/pages/operativni-leasing-pro-firmy?ico=true"
2948                              class="tw-pl-[5.6rem] tw-leading-[100%] tw-py-[24px] menu-drawer__menu-item list-menu__item link link--text focus-inset"
2949                              
2950                            >
2951                              Pro firmy
2952                            </a></li><li class="[&_>_a]:first:tw-pt-[0px]"><a
2953                              href="/pages/nadstandardni-sluzby"
2954                              class="tw-pl-[5.6rem] tw-leading-[100%] tw-py-[24px] menu-drawer__menu-item list-menu__item link link--text focus-inset"
2955                              
2956                            >
2957                              Nadstandardní služby
2958                            </a></li><div class="tw-flex tw-px-[5.6rem] tw-mt-[4rem] tw-justify-between tw-items-center">
2959                        <a class="button-primary" href="/account">Klientská zóna</a>
2960                        <a class="button-transparent tw-underline" href="/pages/contact">Kontakty</a>
2961                      </div>
2962                    </ul>
2963                  </nav>
2964                  <div class="menu-drawer__utility-links">
2965                    <!--
2966                      <button class="ie-btn ie-btn-secondary sm:tw-hidden tw-block"><a href="/account">Přihlášení</a></button>
2967                    --><a
2968                        href="/account/login"
2969                        class="menu-drawer__account link focus-inset h5"
2970                      >
2971                        <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" role="presentation" class="icon icon-account" fill="none" viewBox="0 0 18 19">
2972  <path fill-rule="evenodd" clip-rule="evenodd" d="M6 4.5a3 3 0 116 0 3 3 0 01-6 0zm3-4a4 4 0 100 8 4 4 0 000-8zm5.58 12.15c1.12.82 1.83 2.24 1.91 4.85H1.51c.08-2.6.79-4.03 1.9-4.85C4.66 11.75 6.5 11.5 9 11.5s4.35.26 5.58 1.15zM9 10.5c-2.5 0-4.65.24-6.17 1.35C1.27 12.98.5 14.93.5 18v.5h17V18c0-3.07-.77-5.02-2.33-6.15-1.52-1.1-3.67-1.35-6.17-1.35z" fill="currentColor">
2973</svg>
2974
2975Přihlášení</a><ul class="list list-social list-unstyled" role="list"></ul>
2976                  </div>
2977                </div>
2978              </div>
2979            </div>
2980          </details>
2981        </header-drawer></div>
2982  </div>
2983</header>
2984
2985<style>
2986  .ie-header-snapped {
2987    position: fixed;
2988    top: 0;
2989  }
2990
2991  .ie-header {
2992    box-shadow: 0px 46px 19px rgba(0, 64, 51, 0.01), 0px 26px 16px rgba(0, 64, 51, 0.02),
2993      0px 12px 12px rgba(0, 64, 51, 0.03), 0px 3px 6px rgba(0, 64, 51, 0.03);
2994  }
2995</style>
2996
2997<script type="application/ld+json">
2998  {
2999    "@context": "http://schema.org",
3000    "@type": "Organization",
3001    "name": "Birne",
3002    
3003    "sameAs": [
3004      "",
3005      "",
3006      "",
3007      "",
3008      "",
3009      "",
3010      "",
3011      "",
3012      ""
3013    ],
3014    "url": "https:\/\/birne.com"
3015  }
3016</script>
3016<script>
3017  class Header {
3018    constructor() {
3019      this.el = document.querySelector('header');
3020      this.class = 'ie-header-snapped';
3021      this.threshold = 200; // Adjust threshold as needed
3022      this.lastScrollY = window.scrollY;
3023      this.isFixed = false;
3024      this.init();
3025    }
3026
3027    snapToTop() {
3028      window.addEventListener('scroll', () => {
3029        if (window.scrollY > this.threshold && !this.isFixed) {
3030          this.el.classList.add(this.class);
3031          this.isFixed = true;
3032        } else if (window.scrollY <= this.threshold && this.isFixed) {
3033          this.el.classList.remove(this.class);
3034          this.isFixed = false;
3035        }
3036      });
3037    }
3038
3039    handleUserMenu() {
3040      const menuTriggers = document.querySelectorAll('.usermenu-trigger');
3041      const userMenuElement = document.querySelector('#usermenu');
3042
3043      function closeMenu() {
3044        userMenuElement?.classList.add('tw-hidden');
3045      }
3046
3047      menuTriggers.forEach((menu) => {
3048        menu?.addEventListener('click', (e) => {
3049          userMenuElement?.classList.toggle('tw-hidden');
3050        });
3051      });
3052
3053      // Click outside of the element to close it
3054      document.addEventListener('click', (event) => {
3055        let withinBoundaries = false;
3056
3057        menuTriggers.forEach((menuTrigger) => {
3058          if (event.composedPath().includes(menuTrigger)) withinBoundaries = true;
3059        });
3060
3061        if (!withinBoundaries && !userMenuElement?.classList.contains('tw-hidden')) {
3062          closeMenu();
3063        }
3064      });
3065    }
3066
3067    handleLangSwitcher() {
3068      const btn = document.querySelector('.ie-lang-btn');
3069      const dropdown = document.getElementById('ie-lang-dropdown-desktop');
3070      if (!btn || !dropdown) return;
3071
3072      btn.addEventListener('click', (e) => {
3073        e.stopPropagation();
3074        const isOpen = dropdown.classList.toggle('is-open');
3075        btn.setAttribute('aria-expanded', isOpen);
3076      });
3077
3078      document.addEventListener('click', (e) => {
3079        if (!btn.closest('.ie-lang-switcher').contains(e.target)) {
3080          dropdown.classList.remove('is-open');
3081          btn.setAttribute('aria-expanded', 'false');
3082        }
3083      });
3084    }
3085
3086    init() {
3087      this.snapToTop();
3088      this.handleUserMenu();
3089      this.handleLangSwitcher();
3090    }
3091  }
3092
3093  new Header();
3094</script>
3094
3095
3096
3097</div>
3098    
3099    <main id="MainContent" class="content-for-layout focus-none" role="main" tabindex="-1">
3100      <div id="shopify-section-template--18273264795997__main" class="shopify-section"><link href="//birne.com/cdn/shop/t/31/assets/customer.css?v=97970887154638603971678353984" rel="stylesheet" type="text/css" media="all" />
3101
3102<div id="main-login" class="customer login section-template--18273264795997__main-padding tw-pt-[4.8rem] sm:tw-pt-[6.4rem] tw-pb-[4.8rem] sm:tw-pb-[6.4rem] tw-px-0 tw-max-w-[69rem] tw-px-[2rem]">
3103    <svg style="display: none">
3104    <symbol id="icon-error" viewBox="0 0 13 13">
3105      <circle cx="6.5" cy="6.50049" r="5.5" stroke="white" stroke-width="2"/>
3106      <circle cx="6.5" cy="6.5" r="5.5" fill="#EB001B" stroke="#EB001B" stroke-width="0.7"/>
3107      <path d="M5.87413 3.52832L5.97439 7.57216H7.02713L7.12739 3.52832H5.87413ZM6.50076 9.66091C6.88091 9.66091 7.18169 9.37267 7.18169 9.00504C7.18169 8.63742 6.88091 8.34917 6.50076 8.34917C6.12061 8.34917 5.81982 8.63742 5.81982 9.00504C5.81982 9.37267 6.12061 9.66091 6.50076 9.66091Z" fill="white"/>
3108      <path d="M5.87413 3.17832H5.51535L5.52424 3.537L5.6245 7.58083L5.63296 7.92216H5.97439H7.02713H7.36856L7.37702 7.58083L7.47728 3.537L7.48617 3.17832H7.12739H5.87413ZM6.50076 10.0109C7.06121 10.0109 7.5317 9.57872 7.5317 9.00504C7.5317 8.43137 7.06121 7.99918 6.50076 7.99918C5.94031 7.99918 5.46982 8.43137 5.46982 9.00504C5.46982 9.57872 5.94031 10.0109 6.50076 10.0109Z" fill="white" stroke="#EB001B" stroke-width="0.7">
3109    </symbol>
3110  </svg>
3111
3112  <div id="recover">
3113<div class="tw-flex tw-font-directSans tw-mb-[3.6rem] sm:tw-mb-[5.6rem] tw-flex-col tw-gap-[1.2rem] tw-justify-center tw-items-center">
3114  
3115  <h1 class="tw-text-3xl sm:tw-text-[3.6rem] tw-leading-[110%] tw-font-directSans tw-text-center tw-text-primaryDarker">
3116    Zapomenuté heslo</h1>
3117  
3118  
3119
3120</div>
3121
3122
3123</div>
3124  <div class="[&>form]:tw-text-center"><form method="post" action="/account/recover" accept-charset="UTF-8" class="tw-flex tw-flex-col tw-items-center"><input type="hidden" name="form_type" value="recover_customer_password" /><input type="hidden" name="utf8" value="✓" />
3125    <div class="tw-rounded-[2rem] tw-px-[2.4rem] tw-gap-[2.4rem] tw-flex tw-items-center">  
3126      <div class="field">
3127        <input type="email"
3128          value=""
3129          name="email"
3130          id="RecoverEmail"
3131          autocorrect="off"
3132          autocapitalize="off"
3133          autocomplete="email"
3134          
3135          placeholder="Přihlašovací e-mail *"
3136        >
3137        <label for="RecoverEmail">
3138          Přihlašovací e-mail *
3139        </label>
3140      </div></div>
3141      <button class="button-purple tw-shadow-none tw-w-max tw-mt-[3.6rem] sm:tw-mt-[5.6rem]">
3142        obnovit heslo
3143      </button>
3144      <div class="tw-inline-flex tw-text-primaryDarker tw-gap-[0.4rem] tw-items-center tw-mt-[2.4rem] tw-text-xs sm:tw-text-base">Vzpomněli jste si?
3145        <a class="tw-text-information tw-text-xs sm:tw-text-base [&:after]:tw-hidden [&:before]:tw-hidden" name="decline" href="#login">
3146          Přihlaste se
3147        </a>
3148      </div></form></div>
3149
3150  <div id="login">
3151<div class="tw-flex tw-font-directSans tw-mb-[3.6rem] sm:tw-mb-[5.6rem] tw-flex-col tw-gap-[1.2rem] tw-justify-center tw-items-center">
3152  
3153  <h1 class="tw-text-3xl sm:tw-text-[3.6rem] tw-leading-[110%] tw-font-directSans tw-text-center tw-text-primaryDarker">
3154    Přihlášení</h1>
3155  
3156  
3157
3158</div>
3159
3160
3161</div>
3162  <div class="form-login"><form method="post" action="/account/login" id="customer_login" accept-charset="UTF-8" data-login-with-shop-sign-in="true" novalidate="novalidate" class="tw-flex tw-flex-col tw-items-center"><input type="hidden" name="form_type" value="customer_login" /><input type="hidden" name="utf8" value="✓" /><div class="tw-rounded-[2rem] tw-px-[2.4rem] tw-flex tw-flex-col tw-items-center">  
3163      <div class="field">     
3164        <input
3165          type="email"
3166          name="customer[email]"
3167          id="CustomerEmail"
3168          autocomplete="email"
3169          autocorrect="off"
3170          autocapitalize="off"
3171          
3172          placeholder="Přihlašovací e-mail *"
3173        >
3174        <label for="CustomerEmail">
3175          Přihlašovací e-mail *
3176        </label>
3177      </div><div class="field">               
3178          <input
3179            type="password"
3180            value=""
3181            name="customer[password]"
3182            id="CustomerPassword"
3183            autocomplete="current-password"
3184            
3185            placeholder="Heslo *"
3186          >
3187          <label for="CustomerPassword">
3188            Heslo *
3189          </label>
3190        </div></div>
3191      <a href="#recover" class="tw-text-primaryDarker tw-text-sm tw-font-[600] tw-font-directSans tw-min-h-[4.2rem] tw-px-[2.4rem] tw-w-full tw-pt-[0.8rem] sm:tw-pt-[1.6rem] tw-leading-[1.5rem] [&:after]:tw-hidden [&:before]:tw-hidden tw-text-center" name="decline">
3192        Nepamatujete si heslo?
3193    </a>
3194      <button class="button-purple tw-shadow-none tw-w-max tw-mt-[3.6rem] sm:tw-mt-[5.6rem]">
3195        přihlásit se
3196      </button>
3197    </div><input type="hidden" name="return_url" value="/account" /></form></div>
3198
3199
3200</div>
3201    </main>
3202
3203    
3204
3205    <div id="shopify-section-ie-footer" class="shopify-section"><footer class="ie-footer tw-text-primaryDarker tw-bg-white tw-flex tw-flex-col tw-justify-center tw-items-center tw-py-[8rem] md:tw-py-[11.2rem]">
3206  <div class="tw-w-full tw-border-t-primaryDarker tw-border-t-[1px]">
3207    <div class="tw-container tw-flex-col tw-pt-[4rem] md:tw-pt-[5.6rem] tw-w-full tw-border-b-primaryDarker tw-border-b-[1px]">
3208      <div class="tw-flex md:tw-flex-row tw-gap-[3.2rem]">
3209        <div class="tw-flex tw-flex-col md:tw-flex-row md:tw-flex-wrap tw-gap-[5.6rem] md:tw-gap-x-[3.2rem] md:tw-gap-y-[8rem] tw-w-full">
3210          
3211<div class="ie-footer-links tw-flex tw-flex-col tw-items-start tw-no-underline tw-gap-[1.6rem] tw-w-full mtw-w-[calc(50%-3.2rem)] md:tw-w-[calc(25%-3.2rem)]">
3212                  <h3 class="tw-text-base tw-font-bold tw-text-left tw-mb-[1.6rem]">Naše služby</h3>
3213                  
3214                    <a href="/collections/nase-auta" class="tw-text-sm tw-text-left tw-no-underline">Naše auta</a>
3215                  
3216                    <a href="/pages/operativni-leasing" class="tw-text-sm tw-text-left tw-no-underline">Operativní leasing</a>
3217                  
3218                    <a href="/pages/pro-firmy" class="tw-text-sm tw-text-left tw-no-underline">Pro firmy</a>
3219                  
3220                    <a href="/pages/nadstandartni-sluzby" class="tw-text-sm tw-text-left tw-no-underline">Nadstandardní služby</a>
3221                  
3222                    <a href="/pages/pujcovna" class="tw-text-sm tw-text-left tw-no-underline">Půjčovna</a>
3223                  
3224                    <a href="https://birne.com/pages/servisy" class="tw-text-sm tw-text-left tw-no-underline">Servisy</a>
3225                  
3226                </div>
3227<div class="ie-footer-links tw-flex tw-flex-col tw-items-start tw-no-underline tw-gap-[1.6rem] tw-w-full tw-w-[calc(50%-3.2rem)] md:tw-w-[calc(25%-3.2rem)]">
3228                  <h3 class="tw-text-base tw-font-bold tw-text-left tw-mb-[1.6rem]">Naše značky</h3>
3229                  <div class="tw-flex tw-flex-wrap tw-gap-y-[1.6rem] tw-gap-x-[1.4rem]">
3230                    
3231                    
3232                      <a href="https://birne.com/collections/nase-auta?filter.p.vendor=AUDI&sort_by=price-ascending" class="vendor-item tw-text-sm tw-text-left tw-no-underline tw-uppercase tw-w-[calc(50%-1.6rem)]">AUDI</a>
3233                    
3234                      <a href="https://birne.com/collections/nase-auta?filter.p.vendor=
3234BMW&sort_by=price-ascending" class="vendor-item tw-text-sm tw-text-left tw-no-underline tw-uppercase tw-w-[calc(50%-1.6rem)]">BMW</a>
3235                    
3236                      <a href="https://birne.com/collections/nase-auta?filter.p.vendor=CUPRA&sort_by=price-ascending" class="vendor-item tw-text-sm tw-text-left tw-no-underline tw-uppercase tw-w-[calc(50%-1.6rem)]">CUPRA</a>
3237                    
3238                      <a href="https://birne.com/collections/nase-auta?filter.p.vendor=Fiat&sort_by=price-ascending" class="vendor-item tw-text-sm tw-text-left tw-no-underline tw-uppercase tw-w-[calc(50%-1.6rem)]">Fiat</a>
3239                    
3240                      <a href="https://birne.com/collections/nase-auta?filter.p.vendor=Hyundai&sort_by=price-ascending" class="vendor-item tw-text-sm tw-text-left tw-no-underline tw-uppercase tw-w-[calc(50%-1.6rem)]">Hyundai</a>
3241                    
3242                      <a href="https://birne.com/collections/nase-auta?filter.p.vendor=KIA&sort_by=price-ascending" class="vendor-item tw-text-sm tw-text-left tw-no-underline tw-uppercase tw-w-[calc(50%-1.6rem)]">KIA</a>
3243                    
3244                      <a href="https://birne.com/collections/nase-auta?filter.p.vendor=Mazda&sort_by=price-ascending" class="vendor-item tw-text-sm tw-text-left tw-no-underline tw-uppercase tw-w-[calc(50%-1.6rem)]">Mazda</a>
3245                    
3246                      <a href="https://birne.com/collections/nase-auta?filter.p.vendor=Mercedes-Benz&sort_by=price-ascending" class="vendor-item tw-text-sm tw-text-left tw-no-underline tw-uppercase tw-w-[calc(50%-1.6rem)]">Mercedes-Benz</a>
3247                    
3248                      <a href="https://birne.com/collections/nase-auta?filter.p.vendor=PEUGEOT&sort_by=price-ascending" class="vendor-item tw-text-sm tw-text-left tw-no-underline tw-uppercase tw-w-[calc(50%-1.6rem)]">PEUGEOT</a>
3249                    
3250                      <a href="https://birne.com/collections/nase-auta?filter.p.vendor=RENAULT&sort_by=price-ascending" class="vendor-item tw-text-sm tw-text-left tw-no-underline tw-uppercase tw-w-[calc(50%-1.6rem)]">RENAULT</a>
3251                    
3252                      <a href="https://birne.com/collections/nase-auta?filter.p.vendor=%C5%A0KODA&sort_by=price-ascending" class="vendor-item tw-text-sm tw-text-left tw-no-underline tw-uppercase tw-w-[calc(50%-1.6rem)]">Å KODA</a>
3253                    
3254                      <a href="https://birne.com/collections/nase-auta?filter.p.vendor=TOYOTA&sort_by=price-ascending" class="vendor-item tw-text-sm tw-text-left tw-no-underline tw-uppercase tw-w-[calc(50%-1.6rem)]">TOYOTA</a>
3255                    
3256                      <a href="https://birne.com/collections/nase-auta?filter.p.vendor=VOLVO&sort_by=price-ascending" class="vendor-item tw-text-sm tw-text-left tw-no-underline tw-uppercase tw-w-[calc(50%-1.6rem)]">VOLVO</a>
3257                    
3258                      <a href="https://birne.com/collections/nase-auta?filter.p.vendor=VW&sort_by=price-ascending" class="vendor-item tw-text-sm tw-text-left tw-no-underline tw-uppercase tw-w-[calc(50%-1.6rem)]">VW</a>
3259                    
3260                  </div>
3261                </div>
3262<div class="ie-footer-links tw-flex tw-flex-col tw-items-start tw-no-underline tw-gap-[1.6rem] tw-w-full mtw-w-[calc(50%-3.2rem)] md:tw-w-[calc(25%-3.2rem)]">
3263                  <h3 class="tw-text-base tw-font-bold tw-text-left tw-mb-[1.6rem]">Birne</h3>
3264                  
3265                    <a href="/pages/o-nas" class="tw-text-sm tw-text-left tw-no-underline">O nás</a>
3266                  
3267                    <a href="/pages/contact" class="tw-text-sm tw-text-left tw-no-underline">Kontakty</a>
3268                  
3269                    <a href="https://www.chcidodirectu.cz/direct-auto?locations=1625&companies=1638&workfields=" class="tw-text-sm tw-text-left tw-no-underline">Kariéra</a>
3270                  
3271                    <a href="/blogs/clanky" class="tw-text-sm tw-text-left tw-no-underline">Články</a>
3272                  
3273                    <a href="/pages/doporuc-birne" class="tw-text-sm tw-text-left tw-no-underline">Doporuč Birne</a>
3274                  
3275                    <a href="https://ehub.cz/3515077c-birne-com" class="tw-text-sm tw-text-left tw-no-underline">Affiliate program</a>
3276                  
3277                </div>
3278
3279
3280
3281
3282
3283
3284
3285        </div>
3286      </div>
3287
3288      <div class="tw-flex tw-items-start tw-mt-[8rem]">
3289        <a class="button-primary tw-flex tw-items-center tw-justify-center tw-gap-[1.2rem] tw-py-[1.6rem] max-md:[&>svg]:tw-w-[2rem] max-md:[&>svg]:tw-h-[2rem] max-md:tw-pl-[8px] max-md:tw-pr-[1.6rem] max-md:tw-py-[8px]" href="tel:+420234149234">
3290          <svg width="24" height="24" viewbox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
3291<path d="M16 5H22M22 5L19 2M22 5L19 8" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
3292<path d="M18.1183 14.702L14.0001 15.5C11.2184 14.1038 9.50007 12.5 8.50007 10L9.27002 5.8699L7.81459 2H4.06367C2.93612 2 2.04821 2.93178 2.21661 4.04668C2.63702 6.83 3.8766 11.8765 7.50007 15.5C11.3053 19.3
3292052 16.7858 20.9564 19.8021 21.6127C20.9669 21.8662 22.0001 20.9575 22.0001 19.7655V16.1812L18.1183 14.702Z" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
3293</svg>
3294          <span>234 149 234</span>
3295        </a>
3296      </div>
3297
3298      
3299      <div class="tw-flex tw-w-full max-md:tw-flex-wrap max-md:tw-gap-[5.6rem] md:tw-justify-between tw-border-t-primaryDarker tw-border-t-[1px] tw-py-[8rem] md:tw-mb-0 tw-mt-[8rem] md:tw-pt-[5.6rem]">
3300        
3301
3302
3303
3304<a class="max-md:tw-w-[calc(50%-5.6rem)]" href="https://www.directgroup.eu/">
3305                <img
3306                  class="tw-h-[4.8rem]"
3307                  src="//birne.com/cdn/shop/files/logo-direct-group_1000x.png?v=1743000612"
3308                  alt="Logo">
3309              </a>
3310<a class="max-md:tw-w-[calc(50%-5.6rem)]" href="https://www.direct.cz/">
3311                <img
3312                  class="tw-h-[4.8rem]"
3313                  src="//birne.com/cdn/shop/files/logo-direct-pojistovna_1000x.png?v=1743001098"
3314                  alt="Logo">
3315              </a>
3316<a class="max-md:tw-w-[calc(50%-5.6rem)]" href="https://www.direct-auto.cz/">
3317                <img
3318                  class="tw-h-[4.8rem]"
3319                  src="//birne.com/cdn/shop/files/logo-direct-auto_1000x.png?v=1743001112"
3320                  alt="Logo">
3321              </a>
3322<a class="max-md:tw-w-[calc(50%-5.6rem)]" href="https://www.directnadace.cz/">
3323                <img
3324                  class="tw-h-[4.8rem]"
3325                  src="//birne.com/cdn/shop/files/logo-direct-nadace_1000x.png?v=1743001112"
3326                  alt="Logo">
3327              </a>
3328<a class="max-md:tw-w-[calc(50%-5.6rem)]" href="https://birne.com/">
3329                <img
3330                  class="tw-h-[4.8rem]"
3331                  src="//birne.com/cdn/shop/files/logo-birne_1000x.png?v=1743001112"
3332                  alt="Logo">
3333              </a>
3334<a class="max-md:tw-w-[calc(50%-5.6rem)]" href="https://www.fidoo.com/">
3335                <img
3336                  class="tw-h-[4.8rem]"
3337                  src="//birne.com/cdn/shop/files/logo-fidoo_1000x.png?v=1743001113"
3338                  alt="Logo">
3339              </a>
3340<a class="max-md:tw-w-[calc(50%-5.6rem)]" href="https://www.fondee.cz/">
3341                <img
3342                  class="tw-h-[4.8rem]"
3343                  src="//birne.com/cdn/shop/files/logo-fondee_1000x.png?v=1743001112"
3344                  alt="Logo">
3345              </a>
3346      </div>
3347    </div>
3348    <div class="tw-container tw-flex tw-flex-col tw-gap-[3.2rem] md:tw-gap-[5.6rem]">
3349      <div class="tw-flex tw-flex-col md:tw-items-center max-md:tw-gap-[8rem] md:tw-flex-row tw-mt-[8rem] md:tw-mt-[5.6rem]">
3350        <div class="ie-footer-links tw-flex tw-flex-col md:tw-flex-row tw-gap-[3.2rem] md:tw-gap-[2.1rem] tw-w-full tw-text-left">
3351          
3352            <a class="tw-no-underline tw-text-[1.4rem] tw-leading-[130%] tw-tracking-[0.01em] tw-text-primaryDarker" href="https://cdn.shopify.com/s/files/1/0603/9928/8452/files/pojistne-podminky-autopojisteni-combi-plus-iv-1_23.pdf?v=1690881446">Pojistné podmínky</a>
3353          
3354            <a class="tw-no-underline tw-text-[1.4rem] tw-leading-[130%] tw-tracking-[0.01em] tw-text-primaryDarker" href="/pages/whistleblowing">Whistleblowing</a>
3355          
3356            <a class="tw-no-underline tw-text-[1.4rem] tw-leading-[130%] tw-tracking-[0.01em] tw-text-primaryDarker" href="https://cdn.shopify.com/s/files/1/0603/9928/8452/files/GDPR_V2-03-2025.pdf?v=1746189980">Osobní údaje</a>
3357          
3358            <a class="tw-no-underline tw-text-[1.4rem] tw-leading-[130%] tw-tracking-[0.01em] tw-text-primaryDarker" href="https://cdn.shopify.com/s/files/1/0603/9928/8452/files/Administrativni_poplatky_V7-08-2026.pdf?v=1781858055">Administrativní poplatky</a>
3359          
3360        </div>
3361        <div class="tw-flex tw-gap-[1rem]">
3362          <a href="https://www.youtube.com/@BirnebyDirect" target="_blank" aria-label="Youtube">
3363          <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
3364          <path d="M14 12L10.5 14V10L14 12Z" fill="#004033" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3365          <path d="M2 12.7076V11.2925C2 8.39718 2 6.94951 2.90549 6.01804C3.81099 5.08657 5.23656 5.04625 8.08769 4.96561C9.43873 4.9274 10.8188 4.90002 12 4.90002C13.1812 4.90002 14.5613 4.9274 15.9123 4.96561C18.7634 5.04625 20.189 5.08657 21.0945 6.01804C22 6.94951 22 8.39717 22 11.2925V12.7076C22 15.6029 22 17.0506 21.0945 17.982C20.189 18.9135 18.7635 18.9538 15.9124 19.0345C14.5613 19.0727 13.1812 19.1001 12 19.1001C10.8188 19.1001 9.43867 19.0727 8.0876 19.0345C
33655.23651 18.9538 3.81097 18.9135 2.90548 17.982C2 17.0506 2 15.6029 2 12.7076Z" stroke="#004033" stroke-width="1.5"/>
3366          </svg>          
3367        </a>
3368          <a href="https://www.instagram.com/birne_com/" target="_blank" aria-label="Instagram">
3369            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
3370              <path d="M12 16C14.2091 16 16 14.2091 16 12C16 9.79086 14.2091 8 12 8C9.79086 8 8 9.79086 8 12C8 14.2091 9.79086 16 12 16Z" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3371              <path d="M3 16V8C3 5.23858 5.23858 3 8 3H16C18.7614 3 21 5.23858 21 8V16C21 18.7614 18.7614 21 16 21H8C5.23858 21 3 18.7614 3 16Z" stroke="#004033" stroke-width="1.5"/>
3372              <path d="M17.5 6.51013L17.51 6.49902" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3373            </svg>
3374          </a>
3375          <a href="https://cz.linkedin.com/company/birne-by-direct-s-r-o" target="_blank" aria-label="LinkedIn">
3376            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
3377              <path d="M21 8V16C21 18.7614 18.7614 21 16 21H8C5.23858 21 3 18.7614 3 16V8C3 5.23858 5.23858 3 8 3H16C18.7614 3 21 5.23858 21 8Z" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3378              <path d="M7 17V13.5V10" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3379              <path d="M11 17V13.75M11 13.75V10M11 13.75C11 10 17 10 17 13.75V17" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3380              <path d="M7 7.01013L7.01 6.99902" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3381            </svg>
3382          </a>
3383          <a href="https://www.facebook.com/birnebydirect/" target="_blank" aria-label="Facebook">
3384            <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
3385              <path d="M21 8V16C21 18.7614 18.7614 21 16 21H8C5.23858 21 3 18.7614 3 16V8C3 5.23858 5.23858 3 8 3H16C18.7614 3 21 5.23858 21 8Z" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3386              <path d="M11 21C11 18 11 15 11 12C11 9.8125 11.5 8 15 8" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3387              <path d="M9 13H11H15" stroke="#004033" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
3388            </svg>
3389          </a>
3390        </div>
3391      </div>
3392      <p class="tw-text-[1.4rem] tw-leading-[130%] tw-tracking-[0.01em] tw-text-primaryDarker">© 2025 Birne by Direct s.r.o.</p>
3393    </div>
3394  </div>
3395
3396</footer>
3397
3398
3399</div>
3400
3401    <ul hidden>
3402      <li id="a11y-refresh-page-message">Po volbě výběru se obnoví celá stránka.</li>
3403      <li id="a11y-new-window-message">Otevře se v novém okně.</li>
3404    </ul>
3405
3406    
3406<script>
3407      window.shopUrl = 'https://birne.com';
3408      window.routes = {
3409        cart_add_url: '/cart/add',
3410        cart_change_url: '/cart/change',
3411        cart_update_url: '/cart/update',
3412        cart_url: '/cart',
3413        predictive_search_url: '/search/suggest'
3414      };
3415
3416      window.cartStrings = {
3417        error: `Při aktualizaci vašeho košíku došlo k chybě. Zkuste to prosím znovu.`,
3418        quantityError: `Do košíku můžete přidat jen následující množství dané položky: [quantity].`
3419      }
3420
3421      window.variantStrings = {
3422        addToCart: `Přidat do košíku`,
3423        soldOut: `Vyprodáno`,
3424        unavailable: `Není k dispozici`,
3425      }
3426
3427      window.accessibilityStrings = {
3428        imageAvailable: `Obrázek [index] je nyní k dispozici v zobrazení galerie`,
3429        shareSuccess: `Odkaz byl zkopírován do schránky`,
3430        pauseSlideshow: `Pozastavit prezentaci`,
3431        playSlideshow: `Přehrát prezentaci`,
3432      }
3433    </script>
3433<script src="//birne.com/cdn/shop/t/31/assets/predictive-search.js?v=31278710863581584031678353984" defer="defer"></script>
3433<script src="//birne.com/cdn/shop/t/31/assets/dap-operak-od.js?v=92794757786246468851790239235" defer="defer"></script>
3433
3434
3435    <!-- sh-ssp-added -->
3436    <!-- /sh-ssp-added -->
3437
3438    
3438<script>
3439  if(typeof(Spurit) === 'undefined'){
3440    var Spurit = {};
3441  }
3442  if(!Spurit.SplitPartialPayments2){
3443    Spurit.SplitPartialPayments2 = {};
3444  }
3445  if(!Spurit.SplitPartialPayments2.snippet){
3446    Spurit.SplitPartialPayments2.snippet = {};
3447  }
3448  if(!Spurit.SplitPartialPayments2.snippet.product){
3449      Spurit.SplitPartialPayments2.snippet.product = {};
3450  }
3451  if(!Spurit.SplitPartialPayments2.snippet.products){
3452      Spurit.SplitPartialPayments2.snippet.products = {};
3453  }
3454  Spurit.SplitPartialPayments2.snippet.appId = 49
3455  Spurit.SplitPartialPayments2.snippet.shopId = 11474
3456  Spurit.SplitPartialPayments2.snippet.shopHash = 'cc8c750016a329525650b291d692be8a';
3457
3458  if (typeof(Spurit.globalSnippet) === 'undefined' || Object.keys(Spurit.globalSnippet).length === 0){
3459      Spurit.globalSnippet = {
3460          shop_currency: 'CZK',
3461          money_format: '{{ amount_no_decimals }} Kč',
3462          cart: {"note":null,"attributes":{},"original_total_price":0,"total_price":0,"total_discount":0,"total_weight":0.0,"item_count":0,"items":[],"requires_shipping":false,"currency":"CZK","items_subtotal_price":0,"cart_level_discount_applications":[],"checkout_charge_amount":0},
3463          customer_id: '',
3464          customer_email: '',
3465      };
3466  }
3467
3468  
3469  
3470
3471  
3472  
3473</script>
3473
3474
3475<script src="https://s2.cdn-spurit.com/all-apps/spurit.global-2.x.min.js" async></script>
vendor: 1 bytes, line 3475
3475
3476<script src="https://s2.cdn-spurit.com/shopify-apps/split-partial-payments-2/common.js" async></script>
3476
3477<link href="https://s2.cdn-spurit.com/shopify-apps/split-partial-payments-2/common.css" rel="stylesheet" type="text/css" media="all">
3478
3479  
3479<script src="https://cdn.shopify.com/storefront/standard-actions.js" type="module" data-source-attribution="shopify.standard_actions"></script>
3479
3480</body>
3481</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.