1 2<!doctype html> 3<html lang="pl"> 4<head> 5 <title>Twój koszyk - Botanic</title> 6 <meta charset="utf-8"> 7 <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=2.0, user-scalable=yes, interactive-widget=resizes-content"> 8 <meta name="description" content=""> 9 <meta name="keywords" content=""> 10 11 <meta name="view-transition" content="same-origin" /> 12 <meta content="https://botanic.com.pl/userdata/public/skins/7f68b08a74977525acdb9dc1b97fc796_copy_27/assets/og-botanic-1200x630.png" property="og:image"> 13<meta content="1200" property="og:image:width"> 14<meta content="630" property="og:image:height"> 15<meta content="Botanic" property="og:image:alt"> 16<meta content="noindex,nofollow" name="robots"> 17<meta content="Botanic" property="og:site_name"> 18 19 20 21
21<script> 22 (function () { 23 const defaultConsents = { 24 ad_storage: 'denied', 25 ad_user_data: 'denied', 26 ad_personalization: 'denied', 27 analytics_storage: 'denied' 28 }; 29 30 window.dataLayer = window.dataLayer || []; 31 32 function gtag() { 33 window.dataLayer.push(arguments); 34 } 35 36 gtag('consent', 'default', defaultConsents); 37 })(); 38 </script>
38 39 40 <meta name="format-detection" content="telephone=no"> 41 42 <link rel="dns-prefetch" href="//www.googletagmanager.com"> 43 <link rel="dns-prefetch" href="//www.google-analytics.com"> 44 <link rel="dns-prefetch" href="https://fonts.gstatic.com"> 45 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 46 <link rel="preload" href="//botanic.com.pl/userdata/public/skins/7f68b08a74977525acdb9dc1b97fc796_copy_27/cache/MzM6MTc6NS4yNi41Ng.css" as="style"> 47 <link rel="stylesheet" href="//botanic.com.pl/userdata/public/skins/7f68b08a74977525acdb9dc1b97fc796_copy_27/cache/MzM6MTc6NS4yNi41Ng.css" type="text/css" data-turbo-track="reload"> 48 49 <meta name="turbo-cache-control" content="no-cache"> 50 51 <link rel="icon" href="/environment/cache/images/storefrontImages_318d9e17-aa15-4a4d-b438-773695c3fcc2_0_0.png"> 52 </head> 53<body> 54 <div class="grid"><a href="#main" class="link__skip-link">Przejdź do gÅównej treÅci</a></div> 55 <header id="main-header" class="context-25"> 56 <div class="grid grid_full" style="background-color: rgb(255, 255, 255);" data-skin-grid-section-id="12bd68b5-66ab-4832-9355-5e012bc674aa"><div class="grid__row" data-skin-grid-row-id="ca8c22c4-d7ef-4757-9ee9-57fcf7761f29"><div class="grid__col grid__col_xs-12 grid__col_sm-12 grid__col_lg-12 grid__col_xxl-12" data-skin-grid-column-id="31f48ce6-ad2c-461b-a8c4-e84170188f85"><div 57 class="module" 58 data-module-name="000652b2-bce7-21f1-9102-f9d74be4814a" 59 data-module-id="627" 60 data-module-instance="6496"><link rel="preload" as="font" type="font/woff2" crossorigin href="https://fonts.gstatic.com/s/poppins/v20/pxiEyp8kv8JHgFVrJJnecnFHGPezSQ.woff2"> 61<link rel="preload" as="font" type="font/woff2" crossorigin href="https://fonts.gstatic.com/s/poppins/v20/pxiEyp8kv8JHgFVrJJfecnFHGPc.woff2"> 62<link rel="preload" as="font" type="font/woff2" crossorigin href="https://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLCz7Z1JlFd2JQEl8qw.woff2"> 63<link rel="preload" as="font" type="font/woff2" crossorigin href="https://fonts.gstatic.com/s/poppins/v20/pxiByp8kv8JHgFVrLCz7Z1xlFd2JQEk.woff2"> 64<link rel="preload" as="font" type="font/woff2" crossorigin href="https://fonts.gstatic.com/s/notosans/v35/o-0bIpQlx3QUlC5A4PNB6Ryti20_6n1iPHjc5a7du3mhPy0.woff2"> 65<link id="iconsPath" href="/userdata/public/storefront/images/22316bac-95a8-44eb-8a4c-e43a3368ed92.svg"> 66<header class="bn-hdr"> 67 <div class="bn-top"><div class="grid"><div class="grid__row grid__row_container-width"><div class="grid__col grid__col_xs-12"><div class="bn-hdr__inner"> 68 <span class="bn-top__msg is-active"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M11 20A7 7 0 0 1 9.8 6.1C15.5 5 17 4.48 19 2c1 2 2 4.18 2 8 0 5.5-4.78 10-10 10z"/><path d="M2 21c0-3 1.85-5.36 5.08-6"/></svg>Producent szklarni ogrodowych, wiat i zadaszeÅ basenowych</span> 69 <span class="bn-top__msg"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></svg>Konstrukcje z poliwÄglanu â sprawdzone w polskich ogrodach</span> 70 <span class="bn-top__msg"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="1" y="3" width="15" height="13"/><polygon points="16 8 20 8 23 11 23 16 16 16 16 8"/><circle cx="5.5" cy="18.5" r="2.5"/><circle cx="18.5" cy="18.5" r="2.5"/></svg>Dostawa na terenie caÅej Polski</span> 71 <span class="bn-top__msg"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z"/></svg>WiÄkszy projekt? Skontaktuj siÄ z naszym dziaÅem handlowym</span> 72 </div></div></div></div></div> 73 74 <div class="bn-main"><div class="grid"><div class="grid__row grid__row_container-width"><div class="grid__col grid__col_xs-12"><div class="bn-hdr__inner"> 75 <a class="bn-logo" href="/" aria-label="Botanic â strona gÅówna"><img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDYyMjEgMTM0OCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3BhY2U9InByZXNlcnZlIiB4bWxuczpzZXJpZj0iaHR0cDovL3d3dy5zZXJpZi5jb20vIiBzdHlsZT0iZmlsbC1ydWxlOmV2ZW5vZGQ7Y2xpcC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1taXRlcmxpbWl0OjI7Ij4KICAgIDxyZWN0IGlkPSJQYWdlLTIiIHNlcmlmOmlkPSJQYWdlIDIiIHg9IjAiIHk9IjAiIHdpZHRoPSI2MjIxIiBoZWlnaHQ9IjEzN
75DcuMzMzIiBzdHlsZT0iZmlsbDpub25lOyIvPgogICAgPGc+CiAgICAgICAgPGNsaXBQYXRoIGlkPSJfY2xpcDEiPgogICAgICAgICAgICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iNjIyMSIgaGVpZ2h0PSIxMzQ3LjMzMyIvPgogICAgICAgIDwvY2xpcFBhdGg+CiAgICAgICAgPGcgY2xpcC1wYXRoPSJ1cmwoI19jbGlwMSkiPgogICAgICAgICAgICA8Zz4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik03MDUuOTUsODY4LjI4OUM3MDUuOTUsNzA2LjIyIDU5NC4yOTYsNTk2LjM2NyA0NjQuNjI5LDU5Ni4zNjdDMzMxLjM2LDU5Ni4zNjcgMjIxLjUwNyw3MDQuNDE5IDIyMS41MDcsODY4LjI4OUMyMjEuNTA3LDEwMzAuMzc2IDMzMS4zNiwxMTQwLjIzIDQ2NC42MjksMTE0MC4yM0M1OTQuMjk1LDExNDAuMjMgNzA1Ljk1LDEwMzAuMzc3IDcwNS45NSw4NjguMjg5TTIxNy45MDUsMTMyNS43MTRMMCwxMzI1LjcxNEwwLDQ3LjFMMjMyLjMxNSw0Ny4xTDIzMi4zMTUsNTIwLjcxN0MyODIuNzQ4LDQ0My4yODUgMzk0LjM4NCwzODUuNjY1IDUxMy4yNjEsMzg1LjY2NUM3NDcuMzU5LDM4NS42NjUgOTQwLjA2Niw1ODEuOTU2IDk0MC4wNjYsODY2LjQ4N0M5NDAuMDY2LDExNTEuMDM2IDc0Ny4zNTksMTM0Ny4zMjcgNTA5LjY0LDEzNDcuMzI3QzM4Ny4xNzksMTM0Ny4zMjcgMjY4LjMzOCwxMjg2LjA4NyAyMTcuOTA1LDEyMDEuNDVMMjE3LjkwNSwxMzI1LjcxNFoiIHN0eWxlPSJmaWxsOnJnYigyNyw2NCw0MCk7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICAgICAgICAgICAgICA8cGF0aCBkPSJNMjc2MC41OTgsMTMxMS4zMDZDMjcyMi43OTIsMTMzMi45MiAyNjY1LjE1NCwxMzQ3LjMyOSAyNTg5LjUyMywxMzQ3LjMyOUMyNDAwLjQzNiwxMzQ3LjMyOSAyMjgzLjM3OCwxMjM1LjY3NSAyMjgzLjM3OCwxMDM3LjU4MkwyMjgzLjM3OCw1OTQuNTQ4TDIxNTMuNzEyLDU5NC41NDhMMjE1My43MTIsNDA3LjI2M0wyMjkwLjU4Myw0MDcuMjYzTDIyOTAuNTgzLDE5OC4zNjNMMjUxNy40OTQsMTM4Ljk0M0wyNTE3LjQ5NCw0MDcuMjYzTDI3MzkuMDAyLDQwNy4yNjNMMjczOS4wMDIsNTk0LjU0OEwyNTE3LjQ5NCw1OTQuNTQ4TDI1MTcuNDk0LDEwMDUuMTYxQzI1MTcuNDk0LDEwOTguODA0IDI1NjYuMTI2LDExMzguNDMgMjY1Mi41NjQsMTEzOC40M0MyNjc3Ljc2MiwxMTM4LjQzIDI3MjIuNzkyLDExMzEuMjI1IDI3NjAuNTk4LDExMDkuNjExTDI3NjAuNTk4LDEzMTEuMzA2WiIgc3R5bGU9ImZpbGw6cmdiKDI3LDY0LDQwKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0zNDQzLjA3NSw5NTIuOTMxTDM0NDMuMDc1LDkxOC43MjdMMzI1Ny41OTEsOTQyLjEyNEMzMTU2Ljc0NCw5NTQuNzMyIDMwOTkuMTA2LDk5Ni4xNDEgMzA5OS4xMDYsMTA2Mi43ODRDMzA5OS4xMDYsMTEyNS44MDcgMzE1MS4zNCwxMTY1LjQzMyAzMjI2Ljk3MSwxMTY1LjQzM0MzMzQ1LjgzLDExNjUuNDMzIDM0NDMuMDc1LDEwNjguMTg4IDM0NDMuMDc1LDk1Mi45MzFNMzI2Ni41OTcsMzg1LjY1M0MzNTAwLjcxMywzODUuNjUzIDM2NjkuOTg3LDUxMy41MTggMzY2OS45ODcsNzQ1LjgzM0wzNjY5Ljk4NywxMzI1LjcxOUwzNDUyLjA4MiwxMzI1LjcxOUwzNDUyLjA4MiwxMTk3Ljg1NEMzMzk0LjQ0NCwxMjkxLjQ5NyAzMjk1LjQxNiwxMzQ3LjMzMyAzMTc0Ljc1NiwxMzQ3LjMzM0MzMDAxLjg2MiwxMzQ3LjMzMyAyODc1Ljc5OCwxMjM3LjQ4IDI4NzUuNzk4LDEwODYuMTk5QzI4NzUuNzk4LDkyNS45MTMgMjk5NC42NzUsODM0LjA3MSAzMjA4Ljk2LDgwMS42NjhMMzQ0MS4yNzUsNzY3LjQ0NkwzNDQxLjI3NSw3NDIuMjNDMzQ0MS4yNzUsNjQ2Ljc4NiAzMzY1LjY0NCw1OTAuOTUgMzI0OC41ODYsNTkwLjk1QzMxMjYuMTI1LDU5MC45NSAzMDE0LjQ3LDY0My4xODQgMjk0Ni4wNDQsNjkzLjYxN0wyOTQ2LjA0NCw0NzMuODkyQzMwMjMuNDc2LDQyMy40NzcgMzE0Mi4zMzUsMzg1LjY1MyAzMjY2LjU5OCwzODUuNjUzIiBzdHlsZT0iZmlsbDpyZ2IoMjcsNjQsNDApO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgICAgICAgICAgPHBhdGggZD0iTTQ0MzUuMjg2LDM4NS42NkM0NjQ3LjgwNiwzODUuNjYgNDc5MS44NjMsNTI3LjkzNCA0NzkxLjg2Myw3NjcuNDM2TDQ3OTEuODYzLDEzMjUuNzA4TDQ1NTcuNzQ3LDEzMjUuNzA4TDQ1NTcuNzQ3LDc5Ni4yNTRDNDU1Ny43NDcsNjYzLjAwNCA0NDc4LjUxNCw1OTQuNTU5IDQzNzQuMDY0LDU5NC41NTlDNDIxOS4xODEsNTk0LjU1OSA0MTYxLjU2Miw3MzMuMjMxIDQxNjEuNTYyLDg1Mi4wOUw0MTYxLjU2MiwxMzI1LjcwN0wzOTI3LjQ0NiwxMzI1LjcwN0wzOTI3LjQ0Niw0MDcuMjU1TDQxNTIuNTU2LDQwNy4yNTVMNDE1Mi41NTYsNTMxLjUzNkM0MjA0Ljc3Miw0NDMuMjc5IDQyOTYuNjMyLDM4NS42NTkgNDQzNS4yODUsMzg1LjY1OSIgc3R5bGU9ImZpbGw6cmdiKDI3LDY0LDQwKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik01MDQ3LjUzMiw0MDcuMjZMNTI4MS42NDgsNDA3LjI2TDUyODEuNjQ4LDEzMjUuNzEyTDUwNDcuNTMyLDEzMjUuNzEyTDUwNDcuNTMyLDQwNy4yNlpNNTI5OS42NDEsMTQwLjc0MUM1Mjk5LjY0MSwyMTYuMzcyIDUyNDAuMjIxLDI3NC4wMSA1MTY2LjM5MSwyNzQuMDFDNTA5MC43NiwyNzQuMDEgNTAyOS41MiwyMTYuMzcyIDUwMjkuNTIsMTQwLjc0MUM1MDI5LjUyLDY1LjExIDUwOTAuNzYsNy40NzIgNTE2Ni4zOTEsNy40NzJDNTI0MC4yMjEsNy40NzIgNTI5OS42NDEsNjUuMTEgNTI5OS42NDEsMTQwLjc0MSIgc3R5bGU9ImZpbGw6cmdiKDI3LDY0LDQwKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik02MjE2LjIzOSw2NjIuOTk3QzYxNTUuMDE3LDYxOS43NjkgNjA2Ni43Niw1OTYuMzU0IDU5OTQuNzMxLDU5Ni4zNTRDNTgzMC44NDMsNTk2LjM1NCA1NzE5LjIwNiw3MDguMDA4IDU3MTkuMjA2LDg2OC4yOTVDNTcxOS4yMDYsMTAxNy43NzQgNTgyMy42NTYsMTEzNi42MzMgNTk5NC43MzEsMTEzNi42MzNDNjA3My45ODMsMTEzNi42MzMgNjE1OC42MDEsMTExNS4wMTkgNjIxOC4wNCwxMDY4LjE4OEw2MjE4LjA0LDEyODkuNjk2QzYxNT
75EuNDE1LDEzMzEuMTIzIDYwNTAuNTY3LDEzNDcuMzM0IDU5NjUuOTEyLDEzNDcuMzM0QzU2ODYuNzY3LDEzNDcuMzM0IDU0ODEuNDcsMTE0MC4yMTcgNTQ4MS40Nyw4NjguMjk1QzU0ODEuNDcsNTk0LjU1MyA1NjgzLjE4MywzODUuNjU0IDU5NjcuNzE0LDM4NS42NTRDNjA1Mi4zNTEsMzg1LjY1NCA2MTQ3Ljc5NSw0MDUuNDY3IDYyMTYuMjM5LDQ0My4yOTJMNjIxNi4yMzksNjYyLjk5OUw2MjE2LjIzOSw2NjIuOTk3WiIgc3R5bGU9ImZpbGw6cmdiKDI3LDY0LDQwKTtmaWxsLXJ1bGU6bm9uemVybzsiLz4KICAgICAgICAgICAgICAgIDxwYXRoIGQ9Ik0xNTYzLjA4MSwxMTMzLjAxOUMxNDE3LjIwNCwxMTMzLjAxOSAxMzEyLjc1NCwxMDE3Ljc2MiAxMzEyLjc1NCw4NjYuNUMxMzEyLjc1NCw3MTUuMjIgMTQxNy4yMDQsNTk5Ljk2MyAxNTYzLjA4MSw1OTkuOTYzQzE3MDcuMTM4LDU5OS45NjMgMTgxMS42MDYsNzE1LjIyIDE4MTEuNjA2LDg2Ni41QzE4MTEuNjA2LDEwMTcuNzYyIDE3MDcuMTM4LDExMzMuMDE5IDE1NjMuMDgxLDExMzMuMDE5TTE2NTYuODY5LDM5My44ODRMMTcxNS43MDcsMzkzLjg4NEMxOTAyLjY4MywzOTMuODg0IDIwNTQuMjczLDI0Mi4yOTQgMjA1NC4yNzMsNTUuMzE4TDE5MDcuNDg3LDU1LjMxOEMxNzIzLjI0LDU1LjMxOCAxNTczLjY3LDIwMi41OTYgMTU2OS4zNCwzODUuODA2QzE1NjcuMjQ4LDM4NS43ODggMTU2NS4xOTIsMzg1LjY2IDE1NjMuMDgxLDM4NS42NkMxNTYwLjM3LDM4NS42NiAxNTU3LjcxNCwzODUuODA2IDE1NTUuMDIxLDM4NS44NDJDMTU1MC43MDksMjAyLjYxNCAxNDAxLjEzOSw1NS4zMTggMTIxNi44NTYsNTUuMzE4TDEwNzAuMDg4LDU1LjMxOEMxMDcwLjA4OCwyNDIuMjk0IDEyMjEuNjc4LDM5My44ODQgMTQwOC42NTQsMzkzLjg4NEwxNDY4LjcyOSwzOTMuODg0QzEyMzYuMTk2LDQzNC43NjUgMTA3Ni44MzgsNjI1Ljg5IDEwNzYuODM4LDg2Ni41MDFDMTA3Ni44MzgsMTEzOC40MjMgMTI4MC4zMzQsMTM0Ny4zMjMgMTU2My4wODIsMTM0Ny4zMjNDMTg0NC4wMSwxMzQ3LjMyMyAyMDQ3LjUwNiwxMTM4LjQyMyAyMDQ3LjUwNiw4NjYuNTAxQzIwNDcuNTA2LDYyNS44OSAxODg4LjE2Niw0MzQuNzY2IDE2NTYuODcsMzkzLjg4NCIgc3R5bGU9ImZpbGw6cmdiKDM5LDEwNCwzNSk7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICAgICAgICAgIDwvZz4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPgo=" width="300" height="65" alt="Botanic"></a> 76 <div class="bn-phone"> 77 <span class="bn-phone__icon"><svg width="22" height="22" viewBox="0 0 24 24" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z"/></svg></span> 78 <span><a class="bn-phone__num" href="tel:+48833070023">+48 833 070 023</a><span class="bn-phone__hours">Pon.âPt. 8:00â17:00</span></span> 79 </div> 80 <form class="bn-search" action="/pl/s" method="post" role="search"> 81 <input type="search" name="search" placeholder="Wpisz, czego szukasz" aria-label="Wyszukiwarka produktów"> 82 <button type="submit" aria-label="Szukaj"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></svg></button> 83 </form> 84 <nav class="bn-actions" aria-label="Konto i koszyk"> 85 <a href="/contact"><svg width="23" height="23" viewBox="0 0 24 24" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 18v-6a9 9 0 0 1 18 0v6"/><path d="M21 19a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3zM3 19a2 2 0 0 0 2 2h1a2 2 0 0 1 2-2v-3a2 2 0 0 1-2-2H3z"/></svg><span>Kontakt</span></a> 86 <a href="/pl/login"><svg width="23" height="23" viewBox="0 0 24 24" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/><circle cx="12" cy="7" r="4"/></svg><span>Zaloguj</span></a> 87 <a class="bn-cart" href="/pl/basket"><svg width="23" height="23" viewBox="0 0 24 24" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z"/><line x1="3" y1="6" x2="21" y2="6"/><path d="M16 10a4 4 0 0 1-8 0"/></svg><span class="bn-cart__badge">0</span><span>Koszyk</span></a> 88 <button type="button" class="bn-burger" aria-label="Menu"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="#1a1a1a" stroke-width="2.2" stroke-linecap="round"><line x1="3" y1="6" x2="21" y2="6"/><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="18" x2="21" y2="18"/></svg></button> 89 </nav> 90 </div></div></div></div></div> 91 92 <nav class="bn-nav" aria-label="GÅówna nawigacja"><div class="grid"><div class="grid__row grid__row_container-width"><div class="grid__col grid__col_xs-12"><div class="bn-hdr__inner"> 93 <div class="bn-nav__item"><a class="bn-nav__link" href="/pl/i/Opinie-klientow/24">Opinie klientów</a></div> 94 <div class="bn-nav__item"> 95 <a class="bn-nav__link" href="/wszystkie-szklarnie">Szklarnie ogrodowe <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg></a> 96 <div class="bn-sub">
97 <span class="bn-sub__group">Szklarnie z poliwÄglanu</span> 98 <a href="/szklarnie-partner">Szklarnie Partner</a> 99 <a href="/szklarnie-rolnik">Szklarnie Rolnik</a> 100 <a href="/duze-szklarnie-ogrodowe">Duże szklarnie ogrodowe</a> 101 <a href="/tunele-ogrodowe-z-poliweglanu">Tunele ogrodowe</a> 102 <div class="bn-sub__sep"></div> 103 <a href="/akcesoria-do-szklarni">Akcesoria do szklarni</a> 104 </div> 105 </div> 106 <div class="bn-nav__item"><a class="bn-nav__link" href="/wiaty-samochodowe">Wiaty samochodowe</a></div> 107 <div class="bn-nav__item"><a class="bn-nav__link" href="/pl/c/Zadaszenia-basenowe/50">Zadaszenia basenowe</a></div> 108 <div class="bn-nav__item"> 109 <a class="bn-nav__link" href="/grzadki-i-klomby">GrzÄ dki i klomby <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg></a> 110 <div class="bn-sub"> 111 <a href="/grzadki-ogrodowe">GrzÄ dki ogrodowe</a> 112 <a href="/klomby-ogrodowe">Klomby ogrodowe</a> 113 <a href="/kompostowniki">Kompostowniki</a> 114 </div> 115 </div> 116 <div class="bn-nav__item"><a class="bn-nav__link" href="/realizacje">Realizacje</a></div><div class="bn-nav__item"><a class="bn-nav__link" href="/pl/i/Zostan-Partnerem-B2B/35">ZostaÅ Partnerem B2B</a></div><div class="bn-nav__item"><a class="bn-nav__link" href="/rekrutacja">Rekrutacja</a></div> 117 </div></div></div></div></nav> 118</header> 119 120
121<script> 122(function(){ 123 if(window.__bnHdrInit)return; window.__bnHdrInit=1; 124 function init(){ 125 var hdr=document.querySelector('.bn-hdr'); 126 if(!hdr||hdr.dataset.bnReady)return; 127 hdr.dataset.bnReady='1'; 128 syncCart(); 129 } 130 function syncCart(){ 131 try{ 132 var ind=document.querySelector('#main-header .indicator[data-value], basket-preview .indicator, [data-basket-count]'); 133 var hdr=document.querySelector('.bn-hdr'); 134 if(!hdr)return; 135 var badge=hdr.querySelector('.bn-cart__badge'); 136 if(!badge)return; 137 var v=ind?(ind.getAttribute('data-value')||ind.textContent||'').trim():''; 138 if(!v||v==='0'){badge.style.display='none';}else{badge.style.display='';badge.textContent=v;} 139 }catch(e){} 140 } 141 if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',init);else init(); 142 setTimeout(syncCart,1500); 143 /* rotacja topbara (4s): zapytania w momencie ticku â wÄzÅy po SPA sÄ nowe */ 144 setInterval(function(){ 145 var msgs=document.querySelectorAll('.bn-hdr .bn-top__msg'); 146 if(msgs.length>1){ 147 var cur=document.querySelector('.bn-hdr .bn-top__msg.is-active'); 148 var i=[].indexOf.call(msgs,cur); 149 if(cur)cur.classList.remove('is-active'); 150 var next=msgs[((i<0?0:i)+1)%msgs.length]; 151 next.classList.add('is-active'); 152 } 153 },4000); 154 /* burger: delegacja */ 155 document.addEventListener('click',function(e){ 156 var b=e.target.closest?e.target.closest('.bn-burger'):null; 157 if(b){ 158 var hdr=b.closest('.bn-hdr'); 159 var nav=hdr?hdr.querySelector('.bn-nav'):null; 160 if(nav)nav.classList.toggle('is-open'); 161 } 162 }); 163 /* syncCart po SPA / zmianach koszyka: observer na document (przeżywa podmianÄ body) */ 164/* Jedna wspolna magistrala obserwatora DOM zamiast osobnego MutationObservera 165 w kazdym module. Dwie kolejki: natychmiastowa (przenoszenie blokow â musi 166 zdazyc w tej samej klatce, inaczej po nawigacji SPA mignie natywna stopka) 167 i odlozona o 150 ms (synchronizacja licznikow â tak bylo i wczesniej). */ 168 window.__bnDomWatch=window.__bnDomWatch||(function(){var now=[],later=[],t=null,mo=null;function flush(){t=null;for(var i=0;i<later.length;i++){try{later[i]();}catch(e){}}}function tick(){for(var i=0;i<now.length;i++){try{now[i]();}catch(e){}}if(later.length){if(t)clearTimeout(t);t=setTimeout(flush,150);}}return function(fn,defer){(defer?later:now).push(fn);if(!mo){mo=new MutationObserver(tick);mo.observe(document,{childList:true,subtree:true});}};})(); 169 window.__bnDomWatch(syncCart,true); 170})(); 171</script>
171</div></div></div></div><div class="grid" style="background-color: var(--globalBodyBackgroundColor);" data-skin-grid-section-id="4fd3340c-1c63-4b83-a445-fc4968aaae4d"><div class="grid__row" data-skin-grid-row-id="979df87c-3d3b-423b-8474-d55a57d20288"><div class="grid__col grid__col_xs-grow" data-skin-grid-column-id="aef08df4-756d-4e0b-a772-a66f1dcc6fe0"><div class="grid__row" data-skin-grid-row-id="ca065155-a5bd-42bf-9d47-16f84934e140"><div class="grid__col gc__contact__bar grid__col_xs-grow grid__col_sm-grow grid__col_lg-grow grid__col_xxl-grow" data-skin-grid-column-id="5159799f-d2c9-49b9-8531-66caef88d284"></div><div class="grid__col grid__col_xs-grow grid__col_sm-grow grid__col_lg-grow grid__col_xxl-grow gc__rownaj__w__prawo" data-skin-grid-column-id="e8ced1e9-b3f7-4c33-81ef-dfc70e0e9668"></div></div></div></div></div><div class="grid pt-xs-0 pb-xs-0 pt-sm-0 pb-sm-0 pt-lg-0 pb-lg-0 pt-xxl-0 pb-xxl-0 mt-xs-2 mb-xs-1 mt-sm-2 mb-sm-1 mt-lg-2 mb-lg-1 mt-xxl-2 mb-xxl-1" data-skin-grid-section-id="3cf42b18-0df7-49cc-bca1-c862d3801bd9"> 172 173 <div class="grid__row grid__row_xs-hcenter grid__row_sm-hleft grid__row_lg-hleft grid__row_xxl-hcenter grid__row_xs-vcenter grid__row_sm-vcenter grid__row_lg-vcenter grid__row_xxl-vcenter" data-skin-grid-element-custom-name="NagÅówek z logo i socjalami" data-skin-grid-row-id="2f8991ab-4778-400e-afa3-5e6eba93eea3"> 174 <div class="grid__col hidden-xs-only grid__col_xs-4 grid__col_sm-4 grid__col_lg-4 grid__col_xxl-4" data-skin-grid-element-custom-name="Social media" data-skin-grid-column-id="c3e25f4a-ac8d-4708-9d88-715ed0b59bc8"> 175 176 </div> 177 178 <div class="grid__col gc__main__logo__container grid__col_xs-auto grid__col_sm-auto grid__col_lg-grow grid__col_xxl-4" data-skin-grid-column-id="7ddbfcd9-e112-4bb4-8449-24421f33d91b"> 179 <div 180 class="module" 181 data-module-name="logo" 182 data-module-id="49" 183 data-module-instance="6586"> 184 185 186 <figure class="logo"> 187 <a href="/" > 188 189 190 <picture 191 class="image" 192 > 193 194 195 <source 196 srcset="/environment/cache/images/storefrontImages_1d70c3b1-0404-4649-b04b-0e5d9cf299d9_265_0.webp 1x" 197 type="webp" 198 > 199 200 <img 201 src="/environment/cache/images/storefrontImages_1d70c3b1-0404-4649-b04b-0e5d9cf299d9_265_0.webp" 202 width="265" 203 height="68" 204 alt="Szablony Shoper od GrowCommerce - strona gÅówna" 205 title="Szablony Shoper od GrowCommerce" 206 class="logo" 207 fetchpriority="high" 208 > 209 </picture> 210 211 </a> 212 </figure> 213
214<script type="application/ld+json"> 215 { 216 "@context": [ 217 "http://schema.org/", 218 { "@base": "https://botanic.com.pl/" } 219 ], 220 "@type": "OnlineStore", 221 "@id": "22bdbcb658ad0f939a54f364776fb2a1bdb0f3f3", 222 "name": "Botanic", 223 "legalName": "Botanic", 224 "logo": "/environment/cache/images/storefrontImages_1d70c3b1-0404-4649-b04b-0e5d9cf299d9_265_0.webp", 225 "url": "https://botanic.com.pl/" 226 } 227</script>
227 228</div> 229 </div> 230 <div class="grid__col gc__main__menu__header grid__col_xs-4 grid__col_sm-4 grid__col_lg-4 grid__col_xxl-4 hidden-xs-only hidden-sm-only hidden-md-only" data-skin-grid-column-id="f4f4f4ba-0f02-4de5-8828-8ff3924b58af"><div 231 class="module" 232 data-module-name="basket_preview" 233 data-module-id="39" 234 data-module-instance="6518"> 235 236 237 238 239 <basket-preview 240 is-with-value sheet 241 basket-url="/pl/basket" 242 basket-delivery-payment-url="/pl/basket/step2" 243 module-instance-id="6518" 244 > 245 <h-sheet-opener name="basket-preview-sheet"> 246 <span class="sr-only">Produkty w koszyku: 0. Zobacz szczegóÅy</span> 247 <div class="labeled-icon"> 248 <div class="indicator" data-value="0"> 249 250 251 <svg class=" 252 icon 253 254 255 256 257 labeled-icon__icon 258 " 259 aria-hidden="true" 260 focusable="false" 261 > 262 <use href="/userdata/public/storefront/images/22316bac-95a8-44eb-8a4c-e43a3368ed92.svg#icon-basket" xlink:href="/userdata/public/storefront/images/22316bac-95a8-44eb-8a4c-e43a3368ed92.svg#icon-basket"></use> 263 </svg> 264 265 </div> 266 <div class="labeled-icon__signature font_bold" aria-hidden="true">Koszyk</div> 267 </div> 268 </h-sheet-opener> 269 270 <h-sheet id="basket-preview-sheet" hidden> 271 <h-sheet-header> 272 <p class="section-title section-title_s">Produkty w koszyku</p> 273 274 <h-sheet-close class="btn btn_icon sheet__btn-right"> 275 <span class="sr-only">Zamknij okno</span> 276 <h-icon icon-name="icon-x" aria-hidden="true"></h-icon> 277 </h-sheet-close> 278 </h-sheet-header> 279 280 <h-sheet-body> 281 <div class="basket-preview"> 282 <div class="grid__row grid__row_xs-vcenter"> 283 <div class="grid__col"> 284 285 286 <svg class=" 287 icon 288 289 290 291 292 icon_xxl 293 " 294 aria-hidden="true" 295 focusable="false" 296 > 297 <use href="/userdata/public/storefront/images/22316bac-95a8-44eb-8a4c-e43a3368ed92.svg#icon-basket" xlink:href="/userdata/public/storefront/images/22316bac-95a8-44eb-8a4c-e43a3368ed92.svg#icon-basket"></use> 298 </svg> 299 300 </div> 301 <div class="grid__col"> 302 <p class="p align_center" tabindex="0">Twój koszyk jest pusty</p> 303 </div> 304 </div> 305 </div> 306 </h-sheet-body> 307 308 </h-sheet> 309 </basket-preview> 310 311 312</div></div> 313 314 315 </div> 316</div> 317<div class="grid" data-skin-grid-section-id="41ee4628-187b-4999-a806-ac1d5880422c"> 318 <div class="grid__row" data-skin-grid-row-id="490be876-3909-4f03-9fd5-c516ad3f2f96"> 319 <div class="grid__col grid__col_xs-12" data-skin-grid-column-id="c0377a2e-5715-4e52-b5a3-863b54536cd3"> 320 321 </div> 322 </div> 323</div> </header> 324<main class="context-25" id="main" tabindex="-1"> 325 <div class="grid"> 326 <div class="grid__row"> 327 <div class="grid__col grid__col_xs-12"> 328 <div 329 class="module" 330 data-module-name="basket_step1_title" 331 data-module-id="125" 332 data-module-instance="6523"> 333 <h1 334 class="section-title header header_h1 basket-header" 335 >Twój koszyk</h1> 336 </div> 337 </div> 338 </div> 339 340 <div class="grid__row mb-xs-4"> 341 <div class="grid__col grid__col_xs-12 grid__col_md-7 grid__col_lg-8 mb-xs-2"> 342 <div 343 class="module" 344 data-module-name="basket_products_list" 345 data-module-id="19" 346 data-module-instance="6519"><basket-products class="basket-products basket-module"> 347 <div slot="loader" class="loader p-all-xs-4"> 348 <div class="loader__spinner"></div> 349 </div> 350</basket-products></div> 351 352 <div 353 class="module" 354 data-module-name="basket_loyalty" 355 data-module-id="120" 356 data-module-instance="6514"> 357 358 359</div> 360 </div> 361 362 <div class="grid__col grid__col_xs-12 grid__col_md-5 grid__col_lg-4"> 363 <div 364 class="module" 365 data-module-name="basket_login" 366 data-module-id="44" 367 data-module-instance="6513"> 368 369 370 371<auth-controller> 372 <div slot="logged-out" class="basket-module"> 373 <div class="basket-module__content basket-login hidden-xs-only grid__row grid__row_xs-hbetween grid__row_xs-vcenter"> 374 <div class="grid__col"> 375 <h2 class="section-title section-title_s">Masz już konto?</h2> 376 </div> 377 <div class="grid__col"> 378 <login-modal-opener class="btn btn_s btn_secondary"> 379 380 381 <svg class=" 382 icon 383 384 385 386 387 btn__icon btn__icon_left 388 " 389 aria-hidden="true" 390 focusable="false" 391 > 392 <use href="/userdata/public/storefront/images/22316bac-95a8-44eb-8a4c-e43a3368ed92.svg#icon-user" xlink:href="/userdata/public/storefront/images/22316bac-95a8-44eb-8a4c-e43a3368ed92.svg#icon-user"></use> 393 </svg> 394 395 Zaloguj siÄ 396 </login-modal-opener> 397 </div> 398 </div> 399 400 <div class="basket-module__content visible-xs-only"> 401 <div class="grid__row grid__row_xs-hbetween grid__row_xs-vcenter"> 402 <div class="grid__col"> 403 <h2 class="section-title section-title_secondary"> 404 Masz już konto? 405 </h2> 406 </div> 407 <div class="grid__col"> 408 <login-modal-opener class="btn btn_xs btn_secondary"> 409 410 411 <svg class=" 412 icon 413 414 415 416 417 btn__icon btn__icon_left 418 " 419 aria-hidden="true" 420 focusable="false" 421 > 422 <use href="/userdata/public/storefront/images/22316bac-95a8-44eb-8a4c-e43a3368ed92.svg#icon-user" xlink:href="/userdata/public/storefront/images/22316bac-95a8-44eb-8a4c-e43a3368ed92.svg#icon-user"></use> 423 </svg> 424 425 Zaloguj siÄ 426 </login-modal-opener> 427 </div> 428 </div> 429 </div> 430 431 432 <hr 433 class="separator mb-xs-0 mt-xs-0 separator_tertiary " 434 aria-hidden="true" 435 > 436 </hr> 437 438 439 <div class="basket-module__content_tertiary"> 440 <p class="p_xs">Możesz kontynuowaÄ bez logowania.</p> 441 </div> 442 443 </div> 444</auth-controller> 445</div><div 446 class="module" 447 data-module-name="basket_summary" 448 data-module-id="59" 449 data-module-instance="6525"> 450<basket-summary class="basket-module" url="/pl/basket/step2"> 451 <div slot="loader" class="loader p-all-xs-4"> 452 <div class="loader__spinner"></div> 453 </div> 454</basket-summary> 455</div> 456 </div> 457 </div> 458</div> 459<div class="grid"> 460 <div class="grid__row grid__row_xs-hcenter grid__row_sm-hcenter grid__row_lg-hcenter grid__row_xxl-hcenter grid__row_xs-vcenter grid__row_sm-vcenter grid__row_lg-vcenter grid__row_xxl-vcenter mt-xs-7 mt-sm-7 mt-lg-7 mt-xxl-7"> 461 <div class="grid__col grid__col_xs-12 grid__col_sm-12 grid__col_lg-12 grid__col_xxl-12"> 462 <div 463 class="module" 464 data-module-name="0007ada2-409b-21f0-8002-0960ada74704" 465 data-module-id="152" 466 data-module-instance="6646"> 467 <div class="gc__trustbadges__scroll-wrapper"> 468 469 <div class="gc__trustbadges__body--nowoczesny"> 470 471 472 473 <div class="gc__trustbadges__item--nowoczesny gc__icon__1 gc__cta-hover-enabled"> 474 <div class="gc__trustbadges__item__icon-wrapper"> 475 <svg class="gc-info-icon-item__icon icon" aria-hidden="true" focusable="false"> 476 <use xlink:href="/assets/img/icons/symbol-defs.svg#icon-shield"></use> 477 </svg> 478 </div> 479
480 <span class="gc__trustbadges__item__title">BezpieczeÅstwo</span> 481 <div class="gc__trustbadges__item__description"> RobiÄ c zakupy w naszym sklepie online, możesz czuÄ siÄ w peÅni bezpieczny.</div> 482 483 <div class="gc__trustbadges__item__cta-wrapper"> 484 <a href="/" class="gc__trustbadges__item__cta-button" 485 title="Sprawdź" 486 > 487 Sprawdź 488 </a> 489 </div> 490 </div> 491 492 493 494 <div class="gc__trustbadges__item--nowoczesny gc__icon__2 gc__cta-hover-enabled"> 495 <div class="gc__trustbadges__item__icon-wrapper"> 496 <svg class="gc-info-icon-item__icon icon" aria-hidden="true" focusable="false"> 497 <use xlink:href="/assets/img/icons/symbol-defs.svg#icon-box"></use> 498 </svg> 499 </div> 500 501 <span class="gc__trustbadges__item__title">Dostawa</span> 502 <div class="gc__trustbadges__item__description">Kurier, Paczkomat, Megaskrytka czy odbiór osobisty? Ty decydujesz.</div> 503 504 <div class="gc__trustbadges__item__cta-wrapper"> 505 <a href="/" class="gc__trustbadges__item__cta-button" 506 title="Sprawdź" 507 > 508 Sprawdź 509 </a> 510 </div> 511 </div> 512 513 514 515 <div class="gc__trustbadges__item--nowoczesny gc__icon__3 gc__cta-hover-enabled"> 516 <div class="gc__trustbadges__item__icon-wrapper"> 517 <svg class="gc-info-icon-item__icon icon" aria-hidden="true" focusable="false"> 518 <use xlink:href="/assets/img/icons/symbol-defs.svg#icon-credit-card"></use> 519 </svg> 520 </div> 521 522 <span class="gc__trustbadges__item__title">PÅatnoÅÄ</span> 523 <div class="gc__trustbadges__item__description">SpoÅród różnorodnych form pÅatnoÅci wybierz najlepszÄ opcjÄ dla siebie.</div> 524 525 <div class="gc__trustbadges__item__cta-wrapper"> 526 <a href="/" class="gc__trustbadges__item__cta-button" 527 title="Sprawdź" 528 > 529 Sprawdź 530 </a> 531 </div> 532 </div> 533 534 535 536 <div class="gc__trustbadges__item--nowoczesny gc__icon__4 gc__cta-hover-enabled"> 537 <div class="gc__trustbadges__item__icon-wrapper"> 538 <svg class="gc-info-icon-item__icon icon" aria-hidden="true" focusable="false"> 539 <use xlink:href="/assets/img/icons/symbol-defs.svg#icon-tool"></use> 540 </svg> 541 </div> 542
543 <span class="gc__trustbadges__item__title">Montaż</span> 544 <div class="gc__trustbadges__item__description">JeÅli zechcesz, profesjonalni montażyÅci zÅoÅ¼Ä TwojÄ pergolÄ za Ciebie.</div> 545 546 <div class="gc__trustbadges__item__cta-wrapper"> 547 <a href="/" class="gc__trustbadges__item__cta-button" 548 title="Sprawdź" 549 > 550 Sprawdź 551 </a> 552 </div> 553 </div> 554 555 556 557 <div class="gc__trustbadges__item--nowoczesny gc__icon__5 gc__cta-hover-enabled"> 558 <div class="gc__trustbadges__item__icon-wrapper"> 559 <svg class="gc-info-icon-item__icon icon" aria-hidden="true" focusable="false"> 560 <use xlink:href="/assets/img/icons/symbol-defs.svg#icon-basket"></use> 561 </svg> 562 </div> 563 564 <span class="gc__trustbadges__item__title">Darmowa wysyÅka</span> 565 <div class="gc__trustbadges__item__description">WysyÅka gratis dla zakupów już od 1999zÅ</div> 566 567 <div class="gc__trustbadges__item__cta-wrapper"> 568 <a href="/" class="gc__trustbadges__item__cta-button" 569 title="Sprawdź" 570 > 571 Sprawdź 572 </a> 573 </div> 574 </div> 575 </div> 576 577 </div> 578 579</div><div 580 class="module" 581 data-module-name="roster_product_recommendation" 582 data-module-id="8" 583 data-module-instance="6620"> 584 585 586 587 588 589 590 591 592 593 594 </div> 595 </div> 596 </div> 597</div></main> 598 599 600 601 602 603
604<script id="skinSettings" type="application/json"> 605 { 606 "currency": "PLN", 607 "locale": "pl_PL", 608 "decimalSeparator": ",", 609 "thousandSeparator": " ", 610 "recaptchaSiteKey": "6Le4tYEpAAAAAP3ZMzqruaaLJMcxP7oRFVly2Ang", 611 "recaptchaEnabled": "1", 612 "isFullRegistrationMode": "", 613 "registrationType": "0", 614 "isGuestCheckoutEnabled": "", 615 "isCookieInformationEnabled": "1", 616 "isRegistrationEnabled": "1", 617 "isBuyingEnabledToUnregistered": "1", 618 "contextId": "25", 619 "licenseData": "1791415370101414386", 620 "showNetPrices": "", 621 "showGrossPrices": "1", 622 "showAdditionalTaxInfo": "", 623 "loginDisplayMode": "sheet", 624 "isShoperSSOActive": "1", 625 "lastUrl": "" 626 } 627</script>
627 628
629<script id="localesAndCurrenciesSettings" type="application/json"> 630 { 631 "locales": [{"locale":"pl_PL","region":"Polska","name":"polski","url":"\/","currencyCode":"PLN","localized":{"name":"polski","region":"Polska"}}], 632 "currencies": [{"code":"PLN","name":"z\u0142oty polski","symbol":"z\u0142"}] 633 } 634</script>
634 635
636<script id="featureFlags" type="application/json"> 637 { 638 "dev_basket_merging": "", 639 "dev_mobile_search_layer": "", 640 "select_shipping_country_on_shipping_step": "", 641 "create_basket_queue": "", 642 "dev_storefront_basket_set_default_country_fix": "", 643 "payments_santander_installments_calculator": "", 644 "storefront_registration": "1", 645 "p24_payment_hide_none_pln_payments": "1", 646 "dev_payments_p24_gopay_googlepay_in_all_currencies": "1", 647 "payments_basket_stripe_card": "", 648 "dev_payments_basket_stripe_card_storefront": "1", 649 "dev_storefront_form_honeypot": "1", 650 "dev_geoloc": "1", 651 "dev_gift_cards": "1", 652 "dev_geoloc_currency_param_fix": "1", 653 "dev_storefront_menu_optimization": "1", 654 "dev_storefront_menu_categories_optimization": "", 655 "dev_storefront_menu_progressive_loading": "", 656 "dev_inpost_pay_button": "", 657 "dev_google_customer_reviews_widget_fix": "1", 658 "dev_enable_analytics_events_with_prefix": "1", 659 "dev_disable_analytics_events_without_prefix": "", 660 "dev_payments_basket_p24_apple_pay": "1", 661 "dev_payments_basket_stripe_apple_pay": "1", 662 "dev_payments_basket_apple_pay": "1", 663 "dev_storefront_address_form_save": "1", 664 "dev_storefront_turbo_restore_loaded_event": "1", 665 "dev_accordion_optimization": "", 666 "dev_phoenix_lazy_loader_optimization": "1", 667 "stock_optimization": "1", 668 "dev_consent_mode_init_fix": "1", 669 "dev_remember_create_basket_queue": "", 670 "dev_remember_order_queue": "", 671 "dev_storefront_stock_optimization": "", 672 "dev_gift_cards_payment_check": "1", 673 "dev_google_analytics_refactor": "", 674 "dev_search_close_aria_hidden_fix": "1", 675 "dev_cached_select_options": "1", 676 "dev_search_fixes": "1", 677 "dev_google_reviews_sticky_bars_fix": "1", 678 "dev_search_focus_trap_fix": "1", 679 "dev_search_close_aria_hidden_fix": "1", 680 "dev_recaptcha_fix": "1", 681 "dev_filters_mobile_focus_trap": "1", 682 "dev_email_redirect_fix": "1", 683 "dev_markets": "", 684 "dev_sso_default_payment_method_fix": "1", 685 "dev_vat_eu_visibility_fix": "1", 686 "dev_recaptcha_social_register_fix": "1", 687 "dev_select_width_optimization": "1", 688 "dev_payments_popular_subchannels": "", 689 "dev_components_scheduling_optimization": "", 690 "dev_components_resolve_order_optimization": "" 691 } 692</script>
692 693 694 695 696 <div id="my-grecaptcha-badge" data-turbolinks-permanent></div> 697 698<login-modal> 699 700 <div hidden class="social-login-providers" slot="additional-login-providers"> 701 <div class="text-separator pb-xs-1"> 702 <div class="separator" aria-hidden="true"></div> 703 <span class="text-separator__content">lub</span> 704 <div class="separator" aria-hidden="true"></div> 705 </div> 706 707 <a data-turbo="false" class="btn btn_full-width mb-xs-2 shoper_sso btn_outline" href="/pl/login/shoper_sso"> 708 Zaloguj przez 709 <img width="85" height="19" class="shoper_sso__logo shoper_sso__logo_dark" src="https://dcsaascdn.net/img/logo-shoper-one-white.svg" alt="Zaloguj siÄ przez Shoper One logo"> 710 <img width="85" height="19" class="shoper_sso__logo shoper_sso__logo_light" src="https://dcsaascdn.net/img/logo-shoper-one-dark.svg" alt="Zaloguj siÄ przez Shoper One logo"> 711 </a> 712 <a data-turbo="false" class="btn btn_full-width mb-xs-2 facebook btn_outline" href="/pl/login/facebook"> 713 <img width="16" height="16" class="btn__icon btn__icon_left" src="/assets/img/icons/facebook_logo.svg" alt="Zaloguj przez Facebooka logo"> 714 Zaloguj przez Facebooka 715 </a> 716 <a data-turbo="false" class="btn btn_full-width mb-xs-2 google btn_outline" href="/pl/login/google"> 717 <img width="16" height="16" class="btn__icon btn__icon_left" src="/assets/img/icons/google_logo.svg" alt="Zaloguj przez Google logo"> 718 Zaloguj przez Google 719 </a> 720 721 <small class="d-block color_secondary mb-xs-2"> 722 Logowanie przez Facebook i Google do Botanic Åwiadczone jest w ramach usÅugi Shoper ONE. 723 </small> 724 </div> 725 726</login-modal> 727 728<register-modal> 729 730 <div hidden class="social-login-providers" slot="additional-login-providers"> 731 <div class="text-separator pb-xs-1"> 732 <div class="separator" aria-hidden="true"></div> 733 <span class="text-separator__content">lub</span> 734 <div class="separator" aria-hidden="true"></div> 735 </div> 736 737 <a data-turbo="false" class="btn btn_full-width mb-xs-2 shoper_sso btn_outline" href="/pl/login/shoper_sso"> 738 Zaloguj przez 739 <img width="85" height="19" class="shoper_sso__logo shoper_sso__logo_dark" src="https://dcsaascdn.net/img/logo-shoper-one-white.svg" alt="Zaloguj siÄ przez Shoper One logo"> 740 <img width="85" height="19" class="shoper_sso__logo shoper_sso__logo_light" src="https://dcsaascdn.net/img/logo-shoper-one-dark.svg" alt="Zaloguj siÄ przez Shoper One logo"> 741 </a> 742 <a data-turbo="false" class="btn btn_full-width mb-xs-2 facebook btn_outline" href="/pl/login/facebook"> 743 <img width="16" height="16" class="btn__icon btn__icon_left" src="/assets/img/icons/facebook_logo.svg" alt="Zaloguj przez Facebooka logo"> 744 Zaloguj przez Facebooka 745 </a> 746 <a data-turbo="false" class="btn btn_full-width mb-xs-2 google btn_outline" href="/pl/login/google"> 747 <img width="16" height="16" class="btn__icon btn__icon_left" src="/assets/img/icons/google_logo.svg" alt="Zaloguj przez Google logo"> 748 Zaloguj przez Google 749 </a> 750 751 <small class="d-block color_secondary mb-xs-2"> 752 Logowanie przez Facebook i Google do Botanic Åwiadczone jest w ramach usÅugi Shoper ONE. 753 </small> 754 </div> 755 756</register-modal> 757 758<remind-password-modal></remind-password-modal> 759 760<added-to-basket-modal url="/pl/basket"></added-to-basket-modal> 761 762<h-backdrop></h-backdrop> 763 764 765 766<div id="flash-messenger" data-turbo-permanent> 767 <flash-messenger class="flash-messenger flash-messenger_fixed" name="global"></flash-messenger> 768</div> 769
770<div id="aria-live-polite" role="region" aria-live="polite" aria-atomic="true" class="sr-only" data-turbo-permanent></div> 771<div id="aria-live-assertive" role="alert" aria-live="assertive" aria-atomic="true" class="sr-only" data-turbo-permanent></div> 772 773 <aside class="js__footer-extension"> 774 <div class="grid"> 775 <div class="grid__row grid__row_xs-hcenter mt-sm-1 mt-lg-4 mb-xs-2"> 776 <div class="grid__col grid__col_xs-12 grid__col_xs-hcenter"> 777 <hr class="separator separator_secondary" aria-hidden="true"> 778 <a 779 href="https://www.shoper.pl/premium/" 780 target="_blank" 781 rel="noopener" 782 title="Sklep internetowy Shoper Premium" 783 class="link_no-underline link_secondary p_xs color_main">Sklep internetowy <b>Shoper Premium</b></a> 784 </div> 785 </div> 786 </div> 787 </aside> 788<div 789 class="module_type-integration" 790 data-integration-module-name="0007ada2-423d-21f0-aa02-0727428d8ebc" 791 data-integration-module-id="153"><template id="gc__basket_empty_state_template"> 792 <section class="gc-basket-empty-state" aria-labelledby="gc-basket-empty-state-title"> 793 <svg class="gc-basket-empty-state__icon" viewBox="0 0 48 48" aria-hidden="true" focusable="false"> 794 <path d="M7 9h5l3.6 20h21.2l4.2-14H14"></path> 795 <path d="M18 35h17"></path> 796 <circle cx="19" cy="40" r="2.5"></circle> 797 <circle cx="35" cy="40" r="2.5"></circle> 798 </svg> 799 <div class="gc-basket-empty-state__message" role="status" aria-live="polite" aria-atomic="true"> 800 <h1 id="gc-basket-empty-state-title" class="gc-basket-empty-state__title">Twój koszyk jest pusty.</h1> 801 <p class="gc-basket-empty-state__text">Dodaj produkty, aby przejÅÄ do zamówienia.</p> 802 </div> 803 <a class="btn btn_primary gc-basket-empty-state__cta" href="/">WrÃ³Ä do zakupów</a> 804 </section> 805</template> 806 807</div><div 808 class="module_type-integration" 809 data-integration-module-name="0007ada2-461b-21f0-8402-7b9f31987c3f" 810 data-integration-module-id="156"> 811<style> 812 813 /* --- General Footer Styling --- */ 814 footer#main-footer, 815 aside.js__footer-extension { 816 background: #101010; 817 818 .contact-info__header, 819 h1,h2,h3,h4,h5,h6,.label{ 820 color: #FFFFFF; 821 } 822 823 .gc__footer__trust__badges{ 824 border-bottom: 1px solid #413e38; 825 } 826 .mt-lg-8, 827 .grid_full>.grid__row:not(.gc__last__footer__section) { 828 829 > .grid__col{ 830 border-bottom: 1px solid #413e38; 831 } 832 } 833 834 .icon{ 835 stroke: #FFFFFF; 836 } 837 838 color: #D5D5CB; 839 840 p.contact-info__details-working-hours, 841 .gc__trustbadges__badge__body, 842 .gc__footer__info__words{ 843 color: #D5D5CB; 844 } 845 } 846 847 /* --- Headings --- */ 848 footer#main-footer h3.overline.footer-group__title, 849 aside.js__footer-extension h3.overline.footer-group__title { 850 color: #FFFFFF; 851 } 852 853 /* --- Links --- */ 854 footer#main-footer a, 855 aside.js__footer-extension a { 856 color: #8FA116; 857 } 858 859 footer#main-footer a:hover, 860 aside.js__footer-extension a:hover { 861 color: #8FA116 !important; 862 text-decoration: underline; 863 } 864 865 /* --- External Link Icon --- */ 866 footer#main-footer a.link_secondary[target='_blank']::after, 867 footer#main-footer .link_secondary[target='_blank']::after, 868 aside.js__footer-extension a.link_secondary[target='_blank']::after, 869 aside.js__footer-extension .link_secondary[target='_blank']::after { 870 background-color: #D5D5CB; 871 } 872 873 /* --- Social Media Icons Coloring --- */ 874 footer#main-footer .gc__social__container a img, 875 footer#main-footer .footer-social-media__item img, 876 footer#main-footer .footer-social-media__item svg, 877 aside.js__footer-extension .gc__social__container a img, 878 aside.js__footer-extension .footer-social-media__item img, 879 aside.js__footer-extension .footer-social-media__item svg { 880 881 filter: brightness(0) saturate(100%) invert(43%) sepia(95%) saturate(687%) hue-rotate(35deg) brightness(108%) contrast(83%); 882 } 883 884 .gc__footer__newsletter { 885 .control__element_flex { 886 border: 2px solid #cacabe; 887 transition: border-color .2s ease-in-out; 888 -webkit-text-fill-color: #FFFFFF; 889 890 input { 891 -webkit-text-fill-color: #FFFFFF; 892 } 893 } 894 895 .control__element_flex.is-focused { 896 border-color: #ffffff; 897 } 898
899 .input__control + .input__label { 900 color: #aaaaaa; 901 } 902 903 .input__control input { 904 color: #FFFFFF; 905 } 906 907 .newsletter__submit-button { 908 background-color: #8FA116; 909 background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3Cpolyline points='12 5 19 12 12 19'%3E%3C/polyline%3E%3C/svg%3E"); 910 transition: background-color .2s ease-in-out; 911 } 912 913 .newsletter__submit-button:hover { 914 filter: brightness(1.15); /* Delikatne rozjaÅnienie koloru linku */ 915 } 916 } 917</style></div><div 918 class="module_type-integration" 919 data-integration-module-name="0007ada2-46f3-21f0-8802-7f04ceb346e2" 920 data-integration-module-id="159"><!-- gc-version:2026-09-04-unavailable-x --> 921<style type="text/css"> 922 :root { 923 /* --- Add to Cart Button (Default State) --- */ 924 --gc-product-tile-button-border-color: #101010; 925 --gc-product-tile-button-bg-color: #101010; 926 --gc-product-tile-button-text-color: #FFFFFF; 927 928 /* --- Add to Cart Button (Hover State) --- */ 929 --gc-product-tile-button-border-color-hover: #101010; 930 --gc-product-tile-button-bg-color-hover: #FFFFFF; 931 --gc-product-tile-button-text-color-hover: #101010; 932 933 /* --- Notify Me Button (Default State) --- */ 934 --gc-product-tile-notify-border-color: #666666; 935 --gc-product-tile-notify-bg-color: #f5f5f5; 936 --gc-product-tile-notify-text-color: #666666; 937 938 /* --- Notify Me Button (Hover State) --- */ 939 --gc-product-tile-notify-border-color-hover: #333333; 940 --gc-product-tile-notify-bg-color-hover: #e0e0e0; 941 --gc-product-tile-notify-text-color-hover: #333333; 942 943 /* --- Animated Border --- */ 944 --gc-product-tile-animated-border-color: #101010; 945 946 /* --- Image Standardization --- */ 947 --gc-product-tile-image-border-radius: 8px; 948 --gc-product-tile-image-aspect-ratio: 1 / 1; 949 } 950 951 .btn_primary { 952 background-color: var(--gc-product-tile-button-bg-color); 953 color: var(--gc-product-tile-button-text-color); 954 border: 1px solid var(--gc-product-tile-button-border-color); 955 stroke: var(--gc-product-tile-button-text-color); 956 transition: color 0.25s ease-in-out, background-color 0.25s ease-in-out, border-color 0.25s ease-in-out, box-shadow 0.25s ease-in-out; 957 .btn__icon{ 958 stroke: var(--gc-product-tile-button-text-color); 959 } 960 } 961 962 /* Notify Me Button Styles */ 963 availability-notifier-btn .btn_secondary { 964 background-color: var(--gc-product-tile-notify-bg-color); 965 color: var(--gc-product-tile-notify-text-color); 966 border: 1px solid var(--gc-product-tile-notify-border-color); 967 stroke: var(--gc-product-tile-notify-text-color); 968 overflow: hidden; 969 transition: color 0.25s ease-in-out, background-color 0.25s ease-in-out, border-color 0.25s ease-in-out, box-shadow 0.25s ease-in-out; 970 .btn__icon{ 971 stroke: currentColor; 972 } 973 } 974 975 availability-notifier-btn .btn_secondary:hover, 976 availability-notifier-btn .btn_secondary:focus-visible { 977 background-color: var(--gc-product-tile-notify-bg-color-hover); 978 color: var(--gc-product-tile-notify-text-color-hover); 979 border-color: var(--gc-product-tile-notify-border-color-hover); 980 stroke: var(--gc-product-tile-notify-text-color-hover); 981 .btn__icon{ 982 stroke: currentColor; 983 } 984 } 985 986 /* View Product Button uses same styles as Add to Cart */ 987 .btn_secondary:not(availability-notifier-btn .btn_secondary) { 988 border: 1px solid var(--gc-product-tile-button-border-color); 989 stroke: var(--gc-product-tile-button-text-color); 990 overflow: hidden; 991 transition: color 0.25s ease-in-out, background-color 0.25s ease-in-out, border-color 0.25s ease-in-out, box-shadow 0.25s ease-in-out; 992 .btn__icon{ 993 stroke: currentColor; 994 } 995 } 996 997 .btn_secondary:not(availability-notifier-btn .btn_secondary):hover { 998 fill: var(--gc-product-tile-button-text-color-hover); 999 border-color: var(--gc-product-tile-button-border-color-hover); 1000 stroke: var(--gc-product-tile-button-border-color-hover); 1001 .btn__icon{ 1002 stroke: currentColor; 1003 } 1004 } 1005 1006 .btn_primary:hover { 1007 background-color: var(--gc-product-tile-button-bg-color-hover); 1008 color: var(--gc-product-tile-button-text-color-hover); 1009 border-color: var(--gc-product-tile-button-border-color-hover); 1010 stroke: var(--gc-product-tile-button-text-color-hover); 1011 .btn__icon{ 1012 stroke: var(--gc-product-tile-button-text-color-hover); 1013 } 1014 } 1015 1016 1017 1018 1019 1020 1021 1022 @media (max-width: 767px) { 1023 .product-tile { 1024 display: grid; 1025 grid-template-columns: 1fr auto !important; 1026 grid-template-areas: "header header" "content footer"; 1027 align-items: end; 1028 1029 .product-tile__header { grid-area: header; grid-column: 1 / -1 !important; } 1030 .product-tile__content { grid-area: content; margin-right: 5px;} 1031 .product-tile__footer { grid-area: footer; grid-column: 2 / 3 !important;
1031 grid-row: 2 !important; } 1032 buy-button, availability-notifier-btn { position: static; } 1033 } 1034 1035 /* Add to Cart Button */ 1036 .product-tile__footer-btn .btn_primary { 1037 width: 44px !important; 1038 height: 44px !important; 1039 padding: 0; 1040 border-radius: 50%; 1041 border-width: 1.5px; 1042 box-sizing: border-box; 1043 box-shadow: 0 4px 12px 0 rgba(0, 0, 0, 0.1); 1044 font-size: 0; 1045 color: transparent; 1046 1047 1048 &:before { 1049 content: '+'; 1050 font-size: 28px; 1051 font-weight: 300; 1052 line-height: 44px; 1053 text-align: center; 1054 display: block; 1055 width: 100%; 1056 height: 100%; 1057 color: var(--gc-product-tile-button-text-color); 1058 transition: color 0.25s ease-in-out; 1059 } 1060 1061 &:hover { 1062 background-color: var(--gc-product-tile-button-bg-color-hover) !important; 1063 border-color: var(--gc-product-tile-button-border-color-hover) !important; 1064 1065 &:before { 1066 color: var(--gc-product-tile-button-text-color-hover); 1067 } 1068 } 1069 1070 } 1071 1072 /* Notify Me Button */ 1073 .product-tile availability-notifier-btn .btn_secondary { 1074 width: 44px !important; 1075 height: 44px !important; 1076 padding: 0; 1077 border-radius: 50%; 1078 border-width: 1.5px; 1079 box-sizing: border-box; 1080 box-shadow: 0 4px 12px 0 rgba(0, 0, 0, 0.1); 1081 font-size: 0; 1082 color: transparent; 1083 1084 1085 &:before { 1086 content: ''; 1087 font-size: 0px !important; 1088 /* Bell icon SVG mask */ 1089 -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9'%3E%3C/path%3E%3Cpath d='M13.73 21a2 2 0 0 1-3.46 0'%3E%3C/path%3E%3C/svg%3E") center/60% no-repeat; 1090 mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9'%3E%3C/path%3E%3Cpath d='M13.73 21a2 2 0 0 1-3.46 0'%3E%3C/path%3E%3C/svg%3E") center/60% no-repeat; 1091 background-color: var(--gc-product-tile-notify-text-color); 1092 transition: background-color 0.25s ease-in-out; 1093 display: block; 1094 width: 100%; 1095 height: 100%; 1096 } 1097 1098 &:hover { 1099 background-color: var(--gc-product-tile-notify-bg-color-hover) !important; 1100 border-color: var(--gc-product-tile-notify-border-color-hover) !important; 1101 1102 &:before { 1103 background-color: var(--gc-product-tile-notify-text-color-hover); 1104 } 1105 } 1106 1107 } 1108 1109 /* View Product Button */ 1110 .product-tile__footer a.btn_primary:not(.product-tile__footer-btn .btn_primary) { 1111 width: 44px !important; 1112 height: 44px !important; 1113 padding: 0; 1114 border-radius: 50%; 1115 border-width: 1.5px; 1116 box-sizing: border-box; 1117 box-shadow: 0 4px 12px 0 rgba(0, 0, 0, 0.1); 1118 font-size: 0; 1119 color: transparent; 1120 1121 1122 &:before { 1123 content: ''; 1124 font-size: 0px !important; 1125 /* Arrow right icon SVG mask */ 1126 -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3Cpolyline points='12,5 19,12 12,19'%3E%3C/polyline%3E%3C/svg%3E") center/60% no-repeat; 1127 mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3Cpolyline points='12,5 19,12 12,19'%3E%3C/polyline%3E%3C/svg%3E") center/60% no-repeat; 1128 background-color: var(--gc-product-tile-button-text-color); 1129 transition: background-color 0.25s ease-in-out; 1130 display: block; 1131 width: 100%; 1132 height: 100%; 1133 } 1134 1135 &:hover { 1136 background-color: var(--gc-product-tile-button-bg-color-hover) !important; 1137 border-color: var(--gc-product-tile-button-border-color-hover) !important; 1138 1139 &:before { 1140 background-color: var(--gc-product-tile-button-text-color-hover); 1141 } 1142 } 1143 1144 } 1145 } 1146 1147 @media (max-width: 767px) { 1148 .product-tile .product-tile__footer > .btn_special-disabled { 1149 width: 44px !important; 1150 height: 44px !important; 1151 padding: 0; 1152 border-radius: 50%; 1153 border-width: 1.5px; 1154 box-sizing: border-box; 1155 box-shadow: 0 4px 12px 0 rgba(0, 0, 0, 0.1); 1156 font-size: 0; 1157 color: transparent; 1158 1159 display: inline-flex !important; 1160 align-items: center; 1161 justify-content: center; 1162 min-width: 44px !important; 1163 max-width: 44px !important; 1164 background-color: var(--neutralColors400, #7d90b5) !important; 1165 border-color: transparent !important; 1166 1167 &:before { 1168 content: 'Ã'; 1169 color: var(--neutralColors0, #fff); 1170 font-size: 28px; 1171 font-weight: 300; 1172 line-height: 1; 1173 } 1174 1175 } 1176 } 1177 1178 .product-tile:hover { 1179 position: relative; 1180 } 1181 .product-tile:hover:before, 1182 .product-tile:hover:after { 1183 content: ''; 1184 position: absolute; 1185 top: 0; 1186 left: 0; 1187 width: 100%; 1188 height: 100%; 1189 box-sizing: border-box; 1190 transition: transform 0.2s ease-out; 1191 pointer-events: none; 1192 z-index: 1;
1192 /* Upewnij siÄ, że ramka jest na wierzchu */ 1193 } 1194 .product-tile:hover:before { 1195 border-bottom: 1px solid var(--gc-product-tile-animated-border-color); 1196 border-left: 1px solid var(--gc-product-tile-animated-border-color); 1197 transform: scale(1); 1198 transform-origin: 0 100%; 1199 } 1200 .product-tile:hover:after { 1201 border-top: 1px solid var(--gc-product-tile-animated-border-color); 1202 border-right: 1px solid var(--gc-product-tile-animated-border-color); 1203 transform: scale(1); 1204 transform-origin: 100% 0%; 1205 } 1206 1207 .product-tile__image { 1208 position: relative; 1209 width: 100%; 1210 overflow: hidden; 1211 border-radius: var(--gc-product-tile-image-border-radius, 8px); 1212 } 1213 1214 .product-tile__image a { 1215 display: block; 1216 position: relative; 1217 width: 100%; 1218 aspect-ratio: var(--gc-product-tile-image-aspect-ratio, 1 / 1); 1219 overflow: hidden; 1220 border-radius: var(--gc-product-tile-image-border-radius, 8px); 1221 } 1222 1223 .product-tile__image a .image, 1224 .product-tile__image picture { 1225 position: absolute; 1226 top: 0; 1227 left: 0; 1228 width: 100%; 1229 height: 100%; 1230 overflow: hidden; 1231 border-radius: var(--gc-product-tile-image-border-radius, 8px); 1232 } 1233 1234 .product-tile__image img { 1235 width: 100%; 1236 height: 100% !important; 1237 object-fit: contain; 1238 object-position: center; 1239 border-radius: var(--gc-product-tile-image-border-radius, 8px); 1240 max-height: none !important; 1241 } 1242 1243 .product-tile__image .ribbon-group { 1244 position: absolute; 1245 z-index: 2; 1246 } 1247 1248 .product-tile__favourites { 1249 z-index: 3; 1250 } 1251 1252 1253 1254 .product-tile__image { position: relative; } 1255 .product-tile__image_primary, 1256 .product-tile__image_secondary { transition: opacity 0.3s ease-in-out; } 1257 .product-tile__image_primary { opacity: 1; } 1258 .product-tile__image_secondary { position: absolute; top: 0; left: 0; width: 100%; opacity: 0; } 1259 /* Desktop hover â tylko gdy jest drugie zdjÄcie */ 1260 .product-tile:has(.product-tile__image_secondary):hover .product-tile__image_primary { opacity: 0; } 1261 .product-tile:has(.product-tile__image_secondary):hover .product-tile__image_secondary { opacity: 1; } 1262 /* Mobile/touch â active */ 1263 .product-tile:has(.product-tile__image_secondary):active .product-tile__image_primary { opacity: 0; } 1264 .product-tile:has(.product-tile__image_secondary):active .product-tile__image_secondary { opacity: 1; } 1265 @media (hover: none) { 1266 .product-tile:has(.product-tile__image_secondary):active .product-tile__image_primary { opacity: 0; } 1267 .product-tile:has(.product-tile__image_secondary):active .product-tile__image_secondary { opacity: 1; } 1268 } 1269 </style> 1270 1271 <style> 1272 @media (min-width: 768px) and (max-width: 1919px) { 1273 .module_type-integration[data-integration-module-name="sticky_mobile_bars"] .sticky-mobile-bars { 1274 display: flex !important; 1275 width: auto; 1276 right: 40px; 1277 background: transparent; 1278 bottom: 120px; 1279 border: 0px; 1280 box-shadow: none; 1281 } 1282 .module_type-integration[data-integration-module-name="sticky_mobile_bars"] .sticky-mobile-bars .sticky-mobile-bars__total-and-pay-container { 1283 border-radius: 8px; 1284 } 1285 .module_type-integration[data-integration-module-name="sticky_mobile_bars"] .sticky-mobile-bars .sticky-mobile-bars__total-and-pay-container .sticky-mobile-bars__total-and-pay { 1286 background: #fff; 1287 box-shadow: 0 -2px 20px rgba(0, 0, 0, 0.15), 0 -8px 30px rgba(0, 0, 0, 0.12); 1288 border-top: 2px solid #ddd; 1289 padding: 20px 20px 24px; 1290 position: relative; 1291 z-index: 100; 1292 border: 1px solid #9d9d9d; 1293 border-radius: 8px; 1294 } 1295 .module_type-integration[data-integration-module-name="sticky_mobile_bars"] .sticky-mobile-bars__buy-button-container.fade-transition-end { 1296 flex: 1; 1297 display: flex; 1298 width: auto; 1299 right: 20px; 1300 bottom: 120px; 1301 border-radius: 8px; 1302 padding: 6px 12px; 1303 border: 1px solid #e0e0e0; 1304 background: #fff; 1305 box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.2); 1306 } 1307 .module_type-integration[data-integration-module-name="sticky_mobile_bars"] .sticky-mobile-bars__buy-button-container.fade-transition-end auth-controller.product-actions__wrapper { 1308 display: flex; 1309 justify-content: center; 1310 align-items: center; 1311 } 1312 .module_type-integration[data-integration-module-name="sticky_mobile_bars"] .sticky-mobile-bars__menu-container { 1313 display: none !important; 1314 visibility: hidden !important; 1315 opacity: 0 !important; 1316 height: 0 !important; 1317 overflow: hidden !important; 1318 } 1319 .module_type-integration[data-integration-module-name="sticky_mobile_bars"] .sticky-mobile-bars__menu, 1320 .module_type-integration[data-integration-module-name="sticky_mobile_bars"] .sticky-menu { 1321 display: none !important; 1322 } 1323 } 1324 </style> 1325</div><div 1326 class="module_type-integration" 1327 data-integration-module-name="0007ada2-a9ac-21f0-8a02-4d1f9233b2c1" 1328 data-integration-module-id="172"></div><div 1329 class="module_type-integration" 1330 data-integration-module-name="0007ada2-bff0-21f0-b502-59dd0ef40dec" 1331 data-integration-module-id="175"><template id="gc-carousel-slide-template"> 1332 <li class="splide__slide"> 1333 <product-tile 1334 class="product-tile" 1335 product-id="" 1336 name="" 1337 price="" 1338 producer="" 1339 category="" 1340 currency="PLN" 1341 list="" 1342 id="" 1343 categoryid="" 1344 availability="" 1345 relatedids="" 1346 > 1347 <div class="product-tile__row product-tile__header"> 1348 <div class="product-tile__row product-tile_row_image"> 1349 <div class="product-tile__image"> 1350 <div class="ribbon-group ribbon-group_absolute"> 1351 <!-- JS nadpisze innerHTML, np. wstÄ Å¼kÄ NowoÅÄ --> 1352 </div> 1353 1354 <product-link 1355 id="" 1356 name="" 1357 price="" 1358 producer="" 1359 category="" 1360 currency="PLN" 1361 list="" 1362 > 1363 <a href="#" title="" aria-label=""> 1364 <picture class="image product-tile__image_primary"> 1365 <source srcset="" type="image/webp"> 1366 <img src="" alt="" title="" width="500" height="500" loading="lazy"> 1367 </picture> 1368 1369 <picture class="image product-tile__image_secondary"> 1370 <source srcset="" type="image/webp"> 1371 <img src="" alt="" title="" width="500" height="500" loading="lazy"> 1372 </picture> 1373 </a> 1374 </product-link> 1375 </div> 1376 </div> 1377
1378 <span class="product-tile__codes"></span> 1379 1380 <product-link 1381 id="" 1382 name="" 1383 price="" 1384 producer="" 1385 category="" 1386 currency="PLN" 1387 list="" 1388 > 1389 <a href="#" title="" class="link_no-underline"> 1390 <h3 class="product-tile__name product-tile__name_fixed-height"> 1391 <!-- JS wstawi nazwÄ --> 1392 </h3> 1393 </a> 1394 </product-link> 1395 </div> 1396 1397<div class="product-tile__row product-tile__content"> 1398 <div class="product-tile__row-btn"> 1399 <a href="#" class="btn btn_s btn_primary"> 1400 Zobacz produkt 1401 </a> 1402 </div> 1403</div> 1404 </product-tile> 1405 </li> 1406</template> 1407</div><div 1408 class="module_type-integration" 1409 data-integration-module-name="customer_privacy" 1410 data-integration-module-id="81"> 1411 1412 <consents-modal privacy-policy-page-id="" modal-label="Ustawienia plików cookies" hidden> 1413 <header slot="base-header"> 1414 <h2 class="font_semibold h2">Dbamy o TwojÄ prywatnoÅÄ</h2> 1415 </header> 1416 1417 <div slot="base-content"> 1418 <div class="p p_s color_secondary"> 1419 <p>Pliki cookies i pokrewne im technologie umożliwiajÄ poprawne dziaÅanie strony i pomagajÄ nam dostosowaÄ ofertÄ do Twoich potrzeb. Możesz zaakceptowaÄ wykorzystanie przez nas wszystkich tych plików i przejÅÄ do sklepu lub dostosowaÄ użycie plików do swoich preferencji, wybierajÄ c opcjÄ "Dostosuj zgody".</p> 1420 1421 <p> 1422 <consents-show-privacy-policy class="link link_secondary">WiÄcej o plikach cookies przeczytasz w naszej Polityce prywatnoÅci.</consents-show-privacy-policy> 1423 </p> 1424 </div> 1425 </div> 1426 1427 <consents-accept-necessary slot="base-buttons" class="btn btn_outline">Zaakceptuj tylko niezbÄdne</consents-accept-necessary> 1428 <consents-show-advanced slot="base-buttons" class="btn btn_outline">Dostosuj zgody</consents-show-advanced> 1429 <consents-accept-all slot="base-buttons" class="btn btn_primary">Zaakceptuj wszystkie</consents-accept-all> 1430 1431 <header slot="advanced-header"> 1432 <h2 class="font_semibold h2">Ustawienia plików cookies</h2> 1433 </header> 1434 1435 <consents-show-base slot="advanced-header" class="btn btn_icon" aria-label="Zamknij okno"> 1436 1437 1438 <svg class=" 1439 icon 1440 icon_l 1441 1442 1443 1444 btn__icon 1445 " 1446 aria-hidden="true" 1447 focusable="false" 1448 > 1449 <use href="/userdata/public/storefront/images/22316bac-95a8-44eb-8a4c-e43a3368ed92.svg#icon-x" xlink:href="/userdata/public/storefront/images/22316bac-95a8-44eb-8a4c-e43a3368ed92.svg#icon-x"></use> 1450 </svg> 1451 1452 </consents-show-base> 1453 1454 <div slot="advanced-content"> 1455 <div class="mb-xs-2 color_secondary"> 1456 <p>W tym miejscu możesz okreÅliÄ swoje preferencje w zakresie wykorzystywania przez nas plików cookies.</p> 1457 </div> 1458 1459 <div class="control"> 1460 <consents-checkbox label="Zaznacz wszystko" name="all"></consents-checkbox> 1461 </div> 1462 1463 <div class="control"> 1464 <consents-checkbox class="mb-xs-2" label="NiezbÄdne do dziaÅania strony" checked disabled> 1465 <div slot><p>Te pliki sÄ niezbÄdne do dziaÅania naszej strony internetowej, dlatego też nie możesz ich wyÅÄ czyÄ.</p></div> 1466 </consents-checkbox> 1467 </div> 1468 1469 <div class="control"> 1470 <consents-checkbox class="mb-xs-2" label="Funkcjonalne" name="functionalConsent"> 1471 <div slot><p>Te pliki umożliwiajÄ Ci korzystanie z pozostaÅych funkcji strony internetowej (innych niż niezbÄdne do jej dziaÅania). Ich wÅÄ czenie da Ci dostÄp do peÅnej funkcjonalnoÅci strony.</p></div> 1472 </consents-checkbox> 1473 </div> 1474 1475 <div class="control"> 1476 <consents-checkbox class="mb-xs-2" label="Analityczne" name="analyticsConsent"> 1477 <div slot><p>Te pliki pozwalajÄ nam na dokonanie analiz dotyczÄ cych naszego sklepu internetowego, co może przyczyniÄ siÄ do jego lepszego funkcjonowania i dostosowania do potrzeb Użytkowników.</p></div> 1478 </consents-checkbox> 1479 </div> 1480 1481 <div class="control"> 1482 <consents-checkbox class="mb-xs-2" label="Analityczne dostawcy oprogramowania" name="platformAnalyticsConsent"> 1483 <div slot>Dane wykorzystywane przez dostawcÄ oprogramowania sklepu - cyber_Folks S.A. Na ich podstawie dokonywane sÄ analizy, zwiÄ zane z rozwojem oprogramowania, oraz mierzona jest skutecznoÅÄ kampanii reklamowych. Nie sÄ ÅÄ czone z innymi informacjami, podawanymi podczas rejestracji i skÅadania zamówienia. WiÄcej na ten temat przeczytasz w <a href="https://www.shoper.pl/static/dokumenty/polityka-prywatnosci-dla-osob-odwiedzajacych-sklepy-internetowe.pdf" target="_blank" rel="noopener" data-label="Otwieranie w nowej karcie" aria-label="Polityka plików cookies Shoper - otwiera siÄ w nowej karcie">Polityce plików cookies Shoper</a>.</div> 1484 </consents-checkbox> 1485 </div> 1486 1487 <div class="control"> 1488 <consents-checkbox class="mb-xs-2" label="Marketingowe" name="marketingConsent"> 1489 <div slot><p>DziÄki tym plikom możemy prowadziÄ dziaÅania marketingowe.</p></div> 1490 </consents-checkbox> 1491 </div> 1492 </div> 1493 1494 <consents-show-base slot="advanced-buttons" class="btn btn_outline">Anuluj</consents-show-base> 1495 <consents-save slot="advanced-buttons" class="btn btn_primary">Zapisz ustawienia</consents-save> 1496 </consents-modal> 1497</div><div 1498 class="module_type-integration" 1499 data-integration-module-name="shop_analytics" 1500 data-integration-module-id="89"></div><div 1501 class="module_type-integration" 1502 data-integration-module-name="google_analytics" 1503 data-integration-module-id="90">
1503<script class="js__google-analytic-config" type="application/json"> 1504 { 1505 "trackingId": "G-59ZWDP9ZH4", 1506 "containerId": "GTM-5KCPK6FS", 1507 "layerName": "dataLayer", 1508 "isGTM": "0" 1509 } 1510</script>
1510</div><div 1511 class="module_type-integration" 1512 data-integration-module-name="google_analytics_shoper_campaigns" 1513 data-integration-module-id="91"> 1514 </div><div 1515 class="module_type-integration" 1516 data-integration-module-name="facebook_business_extension" 1517 data-integration-module-id="99"> 1518
1518<script class="js__fbe-config" type="application/json"> 1519 { 1520 "pixelId": "447975941356148" 1521 } 1522 </script>
1522 1523 </div><div 1524 class="module_type-integration" 1525 data-integration-module-name="0005f4fd-2731-21ef-ba02-ade33ab46bf4" 1526 data-integration-module-id="98"> 1527 1528 1529 1530
1530<script class="js__google-analytic-config" type="application/json"> 1531 { 1532 "trackingId": "G-3Q5ZV276CY", 1533 "isGTM": "0" 1534 } 1535 </script>
1535 1536 1537 1538 1539 1540</div><div 1541 class="module_type-integration" 1542 data-integration-module-name="0006db8d-4365-21ef-9902-55c0d39831d5" 1543 data-integration-module-id="138"></div><div 1544 class="module_type-integration" 1545 data-integration-module-name="0007c731-08a9-21f1-aa02-613a003d59bb" 1546 data-integration-module-id="140"></div><div 1547 class="module_type-integration" 1548 data-integration-module-name="00051c99-a594-21ef-b402-5d7c70a416a9" 1549 data-integration-module-id="178"><div class="MXcomfinoModulemain" data-module-id="00051c99-a594-21ef-b402-5d7c70a416a9"> 1550
1550<script class="MXModuleConfigScript" type="application/json"> 1551 [] 1552 </script>
1552 1553
1553<script class="MXShopHash" type="text/plain"> 1554 550 1555 </script>
1555 1556
1556<script class="MXComfinoConfigAllJson" type="application/json">{"payment_id":"21","payment_show_logo":"0","widget_key":"1a5ec68d-786d-4ba3-aec9-75fa3083a307","widget_type":"standard","widget_offer_type":"INSTALLMENTS_ZERO_PERCENT","app_domain":"comfino"}</script>
1556 1557</div></div><div 1558 class="module_type-integration" 1559 data-integration-module-name="0007ada2-4ef0-21f1-a902-cf04c43a4db1" 1560 data-integration-module-id="181"> 1561 1562 1563 1564 <style> 1565 .gc__btt{position:fixed;bottom:calc(var(--gc-btt-bottom,32px) + env(safe-area-inset-bottom,0px));z-index:50;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(12px) scale(.82);transition:opacity .28s cubic-bezier(.16,1,.3,1),transform .38s cubic-bezier(.34,1.56,.64,1),visibility 0s linear .28s;--gc-btt-progress:100} 1566 .gc__btt.gc__btt--pos-right{right:var(--gc-btt-side,32px)} 1567 .gc__btt.gc__btt--pos-left{left:var(--gc-btt-side,32px)} 1568 .gc__btt.gc__btt--visible{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0) scale(1);transition:opacity .28s cubic-bezier(.16,1,.3,1),transform .38s cubic-bezier(.34,1.56,.64,1),visibility 0s linear 0s} 1569 .gc__btt__btn{position:relative;display:inline-flex;align-items:center;justify-content:flex-start;gap:0;width:48px;height:48px;min-width:48px;min-height:48px;padding:0;border:0;border-radius:999px;cursor:pointer;font:inherit;font-weight:600;font-size:13px;letter-spacing:.01em;line-height:1;white-space:nowrap;overflow:hidden;background:var(--gc-btt-bg,#0a0a0a);color:var(--gc-btt-fg,#fafafa);box-shadow:0 3px 6px rgba(0,0,0,.14),0 14px 32px -8px rgba(0,0,0,.42);transition:width .32s cubic-bezier(.16,1,.3,1),padding .32s cubic-bezier(.16,1,.3,1),gap .32s cubic-bezier(.16,1,.3,1),box-shadow .26s ease,background-color .22s ease} 1570 .gc__btt__btn:hover{box-shadow:0 5px 10px rgba(0,0,0,.20),0 22px 48px -10px rgba(0,0,0,.58)} 1571 .gc__btt__btn:active{box-shadow:0 2px 4px rgba(0,0,0,.18),0 8px 18px -6px rgba(0,0,0,.34);transition-duration:.08s} 1572 .gc__btt__btn:focus-visible{outline:2px solid var(--gc-btt-fg,#fafafa);outline-offset:3px} 1573 .gc__btt__visual{position:relative;display:grid;flex:0 0 48px;width:48px;height:48px;place-items:center} 1574 .gc__btt__progress{position:absolute;inset:0;width:48px;height:48px;transform:rotate(-90deg);pointer-events:none} 1575 .gc__btt__progress-track,.gc__btt__progress-value{fill:none;stroke:currentColor;stroke-width:1.6;vector-effect:non-scaling-stroke} 1576 .gc__btt__progress-track{opacity:0} 1577 .gc__btt--with-ring .gc__btt__progress-track{opacity:.2} 1578 .gc__btt__progress-value{opacity:.92;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:var(--gc-btt-progress,100)} 1579 @keyframes gc__btt__bob{0%,100%{transform:translateY(1.5px)}50%{transform:translateY(-1.5px)}} 1580 .gc__btt__icon{position:relative;z-index:1;flex:none;width:18px;height:18px;will-change:transform} 1581 .gc__btt--visible .gc__btt__icon{animation:gc__btt__bob 2.4s ease-in-out infinite} 1582 .gc__btt__btn:hover .gc__btt__icon{animation-duration:1.6s} 1583 .gc__btt__label{display:none;white-space:nowrap} 1584 .gc__btt--pill_always .gc__btt__btn{width:auto;padding:0 18px 0 0;gap:8px} 1585 .gc__btt--pill_always .gc__btt__label{display:inline} 1586 .gc__btt--pill_hover .gc__btt__label{display:inline;max-width:0;opacity:0;transform:translateX(-4px);transition:max-width .32s cubic-bezier(.16,1,.3,1),opacity .22s cubic-bezier(.16,1,.3,1),transform .32s cubic-bezier(.16,1,.3,1)} 1587 .gc__btt--pill_hover .gc__btt__btn:hover,.gc__btt--pill_hover .gc__btt__btn:focus-visible{width:auto;padding:0 18px 0 0;gap:8px} 1588 .gc__btt--pill_hover .gc__btt__btn:hover .gc__btt__label,.gc__btt--pill_hover .gc__btt__btn:focus-visible .gc__btt__label{max-width:120px;opacity:1;transform:translateX(0)} 1589 @media (max-width:1023.98px){.gc__btt{display:none!important}} 1590 @media (hover:none){.gc__btt{display:none!important}} 1591 @media (prefers-reduced-motion:reduce){.gc__btt,.gc__btt__btn,.gc__btt--pill_hover .gc__btt__label{transition:none!important}.gc__btt--visible .gc__btt__icon{animation:none}} 1592 </style> 1593 1594 <gc-back-to-top 1595 id="gc-btt-" 1596 class="gc__btt gc__btt--circle gc__btt--pos-right gc__btt--with-ring" 1597 data-options="{"position":"right","shape":"circle","label":"","threshold":600,"smoothScroll":1,"bottomOffset":32,"sideOffset":32}" 1598 style="--gc-btt-bg: #0a0a0a; --gc-btt-fg: #fafafa; --gc-btt-bottom: 32px; --gc-btt-side: 32px; display: none;" 1599 aria-hidden="true" 1600 > 1601 <button 1602 class="gc__btt__btn" 1603 type="button" 1604 tabindex="-1" 1605 aria-label="Back to top of page" 1606 >
1607 <span class="gc__btt__visual" aria-hidden="true"> 1608 <svg 1609 class="gc__btt__progress" 1610 width="48" 1611 height="48" 1612 viewBox="0 0 48 48" 1613 aria-hidden="true" 1614 focusable="false" 1615 > 1616 <circle class="gc__btt__progress-track" cx="24" cy="24" r="22" pathLength="100"/> 1617 <circle class="gc__btt__progress-value" cx="24" cy="24" r="22" pathLength="100"/> 1618 </svg> 1619 <svg 1620 class="gc__btt__icon" 1621 width="18" 1622 height="18" 1623 viewBox="0 0 24 24" 1624 fill="none" 1625 stroke="currentColor" 1626 stroke-width="2" 1627 stroke-linecap="round" 1628 stroke-linejoin="round" 1629 aria-hidden="true" 1630 focusable="false" 1631 > 1632 <path d="M12 19V5"/> 1633 <path d="m5 12 7-7 7 7"/> 1634 </svg> 1635 </span> 1636 <span class="gc__btt__label">Back to top</span> 1637 </button> 1638 </gc-back-to-top> 1639 1640</div><div 1641 class="module_type-integration" 1642 data-integration-module-name="0007ada2-6be3-21f1-a102-b166e4326246" 1643 data-integration-module-id="183"></div><div 1644 class="module_type-integration" 1645 data-integration-module-name="000652b2-bce7-21f1-ac02-a30a72be35d8" 1646 data-integration-module-id="609"><!-- ============================================================================================ 1647 RINGOSTAT â MODEL DZIAÅANIA I CZEGO NIE WOLNO ROBIÄ. PRZECZYTAJ PRZED ZMIANAMI W NUMERACH. 1648 ============================================================================================ 1649 1650 MODEL. Ringostat podmienia numer statyczny na dynamiczny (call tracking) w DWÃCH trybach: 1651 1652 TRYB 1 â PODSTAWIENIE ZAAWANSOWANE (ten, o który nam chodzi). 1653 Obejmuje elementy wskazane XPath-ami w panelu Ringostata. Przy PIERWSZYM skanie strony 1654 skrypt Ringostata dla takiego elementu: 1655 ⢠nadaje atrybuty rngst-id / rngst-geogroup, 1656 ⢠USUWA z niego href, 1657 ⢠podmienia treÅÄ na maskÄ â+48 pokaż numer" (<span style="cursor:pointer">), 1658 ⢠podpina WÅASNÄ obsÅugÄ klikniÄcia, która odsÅania numer dynamiczny. 1659 Efekt = dokÅadnie wymaganie klienta: najpierw âpokaż numer", numer dopiero po klikniÄciu. 1660 1661 TRYB 2 â PODSTAWIENIE PROSTE (fallback). 1662 ZwykÅa podmiana tekstu numeru statycznego na dynamiczny. BEZ rngst-id, BEZ maski, 1663 BEZ klikniÄcia â numer widaÄ od razu. Tak wyglÄ da KAÅ»DY element, którego tryb 1 nie objÄ Å. 1664 1665 WARUNEK KONIECZNY TRYBU 1: element musi byÄ w DOM ZANIM Ringostat zrobi pierwszy skan. 1666 Skrypt Ringostata Åaduje siÄ async, wiÄc wszystko, co siedzi w statycznym HTML tego moduÅu, 1667 zdÄ Å¼a. Sekcja Kontakt klonowana z <template> też zdÄ Å¼a, bo klonujemy jÄ synchronicznie. 1668 1669 -------------------------------------------------------------------------------------------- 1670 CZEGO NIE WOLNO â każdy z tych bÅÄdów już wystÄ piÅ i zostaÅ potwierdzony pomiarem na żywo 1671 -------------------------------------------------------------------------------------------- 1672 1673 [1] NIE WOÅAJ ringostatRestartSubstitution(). 1674 Pomiar na TEJ SAMEJ stopce, dwie podstrony: 1675 strona gÅówna (bez restartu): rngst-id="1", href usuniÄty, âpokaż numer", klik OK 1676 /contact (z restartem): rngst-id=null, href wróciÅ, goÅy numer, klik martwy 1677 Restart NIE âdoskanowuje" strony â KASUJE tryb 1 na CAÅEJ stronie i zostawia tryb 2. 1678 Dlatego jeden restart woÅany w popupie albo na Kontakcie zabijaÅ również nagÅówek i stopkÄ. 1679 1680 [2] NIE BUDUJ elementu z numerem w JS po zaÅadowaniu strony. 1681 Nie istnieje podczas pierwszego skanu â dostanie najwyżej tryb 2. Dlatego popup 1682 âPorozmawiaj" leży w HTML statycznie (ukryty CSS-em), a JS tylko go otwiera i zamyka. 1683 1684 [3] NIE PRZENOÅ wÄzÅa z numerem miÄdzy miejscami (np. nagÅówek â modal). 1685 Psuje miejsce źródÅowe i nie naprawia docelowego. 1686 1687 [4] NIE DODAWAJ globalnych âguardów" przechwytujÄ cych klik w numer 1688 (preventDefault + symulowany .click() + pÄtla restartów) â blokujÄ natywny klik Ringostata. 1689 1690 [5] NIE WPISUJ rÄcznie tekstu âpokaż numer" w markup. 1691 MaskÄ rysuje Ringostat. Nasz markup ma zawieraÄ ZWYKÅY numer statyczny +48 833 070 023, 1692 inaczej Ringostat nie ma czego dopasowaÄ i element nie zostanie objÄty podmianÄ w ogóle. 1693 1694 -------------------------------------------------------------------------------------------- 1695 GDZIE SÄ NUMERY â 4 miejsca, wszystkie wg tej samej zasady: statycznie w HTML, numer statyczny 1696 -------------------------------------------------------------------------------------------- 1697 .bn-phone__num â nagÅówek 1698 .bn-footer__phone â stopka 1699 .bn-ct__qcard â kafelek âTelefon" na /contact (moduÅ 324 â render serwerowy) 1700 .bn-consult-phone â popup âPorozmawiaj" na karcie produktu 1701 1702 -------------------------------------------------------------------------------------------- 1703 DIAGNOSTYKA gdy któreÅ miejsce pokazuje numer OD RAZU (bez maski) 1704 -------------------------------------------------------------------------------------------- 1705 W konsoli przeglÄ darki: 1706 ['.bn-phone__num','.bn-footer__phone','.bn-ct__qcard','.bn-consult-phone'] 1707 .forEach(s=>{var e=document.querySelector(s); 1708 console.log(s, e?e.getAttribute('rngst-id'):'BRAK', e?e.textContent.trim().slice(0,22):'');}); 1709 1710 ⢠rngst-id ma wartoÅÄ â tryb 1 dziaÅa, maska i klik po stronie Ringostata. 1711 ⢠rngst-id = null â element NIE jest objÄty XPath-ami w panelu Ringostata dla tej domeny. 1712 To konfiguracja w panelu Ringostat â NIE do naprawienia z tego kodu. 1713 UWAGA: podglÄ d sklepu (sklep689102.shoparena.pl) i produkcja (botanic.com.pl) mogÄ mieÄ RÃÅ»NE 1714 pokrycie XPath. Zmierzone: na podglÄ dzie nagÅówek bywa bez rngst-id (tryb 2 â numer od razu), 1715 a stopka z rngst-id="1" (tryb 1 â maska). Testuj Åwiadomie, na której domenie patrzysz. 1716 ============================================================================================ --> 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733<!-- Popup âPorozmawiaj" â STATYCZNIE w HTML (nie budowany JS-em), bo tylko wtedy
1733numer trafia 1734 do pierwszego skanu Ringostata i dostaje maskÄ âpokaż numer" + dziaÅajÄ cy klik, dokÅadnie jak 1735 nagÅówek i stopka. WczeÅniej popup powstawaÅ dynamicznie i trzeba byÅo woÅaÄ 1736 ringostatRestartSubstitution() â a ten restart KASUJE podstawienie zaawansowane na caÅej 1737 stronie (zdejmuje rngst-id, przywraca href, gubi maskÄ i klik). Overlay jest ukryty przez CSS 1738 (opacity:0;visibility:hidden), wiÄc obecnoÅÄ na każdej podstronie niczego nie psuje. --> 1739<div class="bn-consult-overlay"> 1740 <div class="bn-consult-modal"> 1741 <button class="bn-consult-close" type="button" aria-label="Zamknij">×</button> 1742 <div class="bn-consult-ico"><svg viewBox="0 0 24 24" fill="currentColor"><path d="M6.6 10.8c1.4 2.8 3.8 5.2 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.3.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1C10.6 21 3 13.4 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.4 0 .8-.3 1l-2.2 2.2z"/></svg></div> 1743 <h3>Porozmawiaj z doradcÄ </h3> 1744 <p class="bn-consult-lead">Masz pytania o wybór szklarni, montaż lub dostawÄ? ZadzwoÅ do naszego dziaÅu handlowego â pomożemy dobraÄ model idealny dla Ciebie.</p> 1745 <a class="bn-consult-phone" href="tel:+48833070023"><svg viewBox="0 0 24 24" fill="currentColor"><path d="M6.6 10.8c1.4 2.8 3.8 5.2 6.6 6.6l2.2-2.2c.3-.3.7-.4 1-.2 1.1.4 2.3.6 3.6.6.6 0 1 .4 1 1V20c0 .6-.4 1-1 1C10.6 21 3 13.4 3 4c0-.6.4-1 1-1h3.5c.6 0 1 .4 1 1 0 1.3.2 2.5.6 3.6.1.4 0 .8-.3 1l-2.2 2.2z"/></svg><span>+48 833 070 023</span></a> 1746 <p class="bn-consult-hours"><strong>Pon.âPt. 8:00â17:00</strong></p> 1747 </div> 1748</div> 1749 1750 1751<!-- Ringostat: call-tracking + podmiana numeru (instalacja globalna) -->
1752<script type="text/javascript"> 1753 /* Early render (578): the loader starts with the platform JS after the first screen is shown; without the bootstrap it starts at once. */ 1754 (window.__bnEarlyDefer||function(f){f();})(function(){(function (d,s,u,e,p) { 1755 p=d.getElementsByTagName(s)[0],e=d.createElement(s), 1756 e.async=1,e.src=u,p.parentNode.insertBefore(e,p); 1757 })(document,'script','https://script.ringostat.com/v4/9e/9e356d287a9a9cf2b946ea34321899aa911a4e62.js');}); 1758 var pw=function(){ 1759 if(typeof(ringostatAnalytics)==='undefined'){setTimeout(pw,100);} 1760 else{ringostatAnalytics.sendHit('pageview');} 1761 }; 1762 pw(); 1763</script>
1763 1764 1765 1766</div><div 1767 class="module_type-integration" 1768 data-integration-module-name="000652b2-bce7-21f1-9c02-15feb3f55517" 1769 data-integration-module-id="613"> 1770 1771 1772 1773</div><div 1774 class="module_type-integration" 1775 data-integration-module-name="000652b2-bce7-21f1-9502-d59c003bbf34" 1776 data-integration-module-id="615">
1776<script>window._edrone=window._edrone||{};if(!window._edrone.app_id){window._edrone.app_id='off-in-skin';window._edrone.init=function(){};}</script>
vendor: 1 bytes, line 1776
1776
1777<script> 1778(function () { 1779 'use strict'; 1780 if (window.__bnGcScriptsOff) return; 1781 window.__bnGcScriptsOff = 1; 1782 function offIds(root) { 1783 var ids = []; 1784 if (!root.querySelector('.gc__siema-slider-container, [data-gc-src], img.gc__siema-image-deferred')) ids.push('172'); 1785 if (!(window.matchMedia && window.matchMedia('(min-width: 1024px) and (hover: hover)').matches)) ids.push('181'); 1786 if (!root.querySelector('product-list, filters-aggregator, [data-gc-listing-toolbar], .side-menu-categories')) ids.push('433'); 1787 return ids; 1788 } 1789 // Off for this page: take data-src away (only if the script is not loaded yet). On: give it back. 1790 function apply(script, ids) { 1791 var off = ids.indexOf(script.getAttribute('data-script-module-id')) > -1; 1792 if (off && script.hasAttribute('data-src') && !script.getAttribute('src')) { 1793 script.setAttribute('data-bn-src-off', script.getAttribute('data-src')); 1794 script.removeAttribute('data-src'); 1795 } else if (!off && script.hasAttribute('data-bn-src-off')) { 1796 script.setAttribute('data-src', script.getAttribute('data-bn-src-off')); 1797 script.removeAttribute('data-bn-src-off'); 1798 } 1799 } 1800 function applyAll(root, ids) { 1801 var list = root.querySelectorAll('script[data-script-module-id]'); 1802 for (var i = 0; i < list.length; i++) apply(list[i], ids); 1803 } 1804 // First load: the script tags come after this module in the HTML, so catch them as the parser adds them. 1805 var ids = offIds(document); 1806 var mo = new MutationObserver(function (records) { 1807 for (var r = 0; r < records.length; r++) { 1808 var added = records[r].addedNodes; 1809 for (var n = 0; n < added.length; n++) { 1810 var node = added[n]; 1811 if (node.nodeType === 1 && node.tagName === 'SCRIPT' && node.hasAttribute('data-script-module-id')) apply(node, ids); 1812 } 1813 } 1814 }); 1815 mo.observe(document.documentElement, { childList: true, subtree: true }); 1816 document.addEventListener('DOMContentLoaded', function () { applyAll(document, ids); mo.disconnect(); }, { once: true }); 1817 // SPA (Turbo): the module scripts live in div#scripts[data-turbo-permanent], so the tags of the previous page 1818 // stay. Decide by the incoming page and fix the tags that will stay, before the platform loads scripts. 1819 document.addEventListener('turbo:before-render', function (event) { 1820 var body = event.detail && event.detail.newBody; 1821 if (!body) return; 1822 var next = offIds(body); 1823 applyAll(document, next); 1824 applyAll(body, next); 1825 }); 1826})(); 1827</script>
vendor: 1 bytes, line 1827
1827
1828<script> 1829(function () { 1830 'use strict'; 1831 if (window.__bnLazyFrames) return; 1832 window.__bnLazyFrames = 1; 1833 var io = 'IntersectionObserver' in window ? new IntersectionObserver(function (entries) { 1834 for (var i = 0; i < entries.length; i++) if (entries[i].isIntersecting) load(entries[i].target); 1835 }, { rootMargin: '1200px 0px' }) : null; 1836 function load(frame) { 1837 var src = frame.getAttribute('data-bn-lazy-src'); 1838 if (!src) return; 1839 if (io) io.unobserve(frame); 1840 frame.removeAttribute('data-bn-lazy-src'); 1841 frame.setAttribute('src', src); 1842 } 1843 function scan() { 1844 var list = document.querySelectorAll('iframe[data-bn-lazy-src]'); 1845 for (var i = 0; i < list.length; i++) { if (io) io.observe(list[i]); else load(list[i]); } 1846 } 1847 if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', scan); else scan(); 1848 document.addEventListener('turbo:load', scan); 1849})(); 1850</script>
vendor: 1 bytes, line 1850
1850
1851<script> 1852(function () { 1853 'use strict'; 1854 var KEY = '__bnScriptDeferralController'; 1855 if (window[KEY]) return; 1856 // Order confirmation (/basket/done/â¦): <basket-done> emits `purchased` as soon as it renders, and the 1857 // platform never replays a purchase to analytics clients that subscribe later. Holding GTM/gtag here 1858 // until the first gesture dropped the purchase (GA4, Ads, Bing) for every buyer who had not moved yet. 1859 // knowledge_base/gtm-dubli-zdarzen-2026-09-25.md 1860 if (/\/basket\/done(\/|$)/.test(location.pathname)) return; 1861 var NP = Node.prototype, EP = Element.prototype; 1862 var original = { insertBefore: NP.insertBefore, appendChild: NP.appendChild, append: EP.append, prepend: EP.prepend }; 1863 var wrappers = {}; 1864 var held = []; 1865 var entries = new WeakMap(); 1866 var released = false; 1867 var armed = false; 1868 var gestures = ['pointerdown', 'keydown', 'touchstart', 'wheel', 'scroll', 'mousemove']; 1869 var holdIds = { recaptcha: true, 'shopLayer-script': true, 'dataLayer-script': true, 'gtag-jssdk-dataLayer': true }; 1870 1871 function shouldHold(node) { 1872 if (released || !node || node.nodeType !== 1 || node.tagName !== 'SCRIPT') return false; 1873 if (Object.prototype.hasOwnProperty.call(holdIds, node.id)) return true; 1874 var src = node.getAttribute('src'); 1875 if (!src) return false; 1876 try { 1877 var url = new URL(src, document.baseURI); 1878 return /^(www\.)?googletagmanager\.com$/i.test(url.hostname) && /^(\/gtm\.js|\/gtag\/js)$/.test(url.pathname); 1879 } catch (_) { return false; } 1880 } 1881 1882 function markerFor(node) { 1883 var entry = entries.get(node); 1884 if (!entry) { 1885 entry = { node: node, marker: document.createComment('deferred script') }; 1886 entries.set(node, entry); 1887 held.push(entry); 1888 } 1889 return entry.marker; 1890 } 1891 1892 function restore() { 1893 // A later integration may wrap our methods. Never overwrite its wrapper; 1894 // the released wrappers below become transparent delegates in that case. 1895 if (NP.insertBefore === wrappers.insertBefore) NP.insertBefore = original.insertBefore; 1896 if (NP.appendChild === wrappers.appendChild) NP.appendChild = original.appendChild; 1897 if (EP.append === wrappers.append) EP.append = original.append;
1898 if (EP.prepend === wrappers.prepend) EP.prepend = original.prepend; 1899 } 1900 1901 var scheduled = false; 1902 function onGesture() { 1903 // Odlozone skrypty wypuszczamy PO namalowaniu klatki tego gestu. Wstawienie 1904 //
1904<script> to parsowanie i wykonanie GTM/gtag, a dopoki ono trwa, przegladarka 1905 // nie pokaze reakcji na dotkniecie - dokladnie to mierzy INP. Moment startu 1906 // skryptow bez zmian: nadal pierwszy gest, tylko kilkadziesiat ms pozniej. 1907 // focusin/submit zostaja natychmiastowe: formularz moze od razu potrzebowac reCAPTCHY. 1908 if (released || scheduled) return; 1909 scheduled = true; 1910 disarm(); 1911 var run = function () { release('gesture'); }; // release jest idempotentny 1912 // requestAnimationFrame nie przychodzi w ukrytej karcie, a odchodzacy 1913 // odwiedzajacy ma trafic do analityki - stad zapasowy timer i visibilitychange. 1914 setTimeout(run, 300); 1915 document.addEventListener('visibilitychange', function () { if (document.hidden) run(); }, { once: true }); 1916 if (typeof requestAnimationFrame === 'function') { 1917 requestAnimationFrame(function () { requestAnimationFrame(function () { 1918 if (typeof requestIdleCallback === 'function') requestIdleCallback(run, { timeout: 150 }); else run(); 1919 }); }); 1920 } else run(); 1921 } 1922 function onFocus(event) { 1923 if (event.target && event.target.closest && event.target.closest('form')) release('form-focus'); 1924 } 1925 function onSubmit() { release('submit'); } 1926 function arm() { 1927 if (armed || released) return; 1928 armed = true; 1929 gestures.forEach(function (name) { window.addEventListener(name, onGesture, { capture: true, passive: true }); }); 1930 window.addEventListener('focusin', onFocus, true); 1931 document.addEventListener('submit', onSubmit, true); 1932 } 1933 function disarm() { 1934 gestures.forEach(function (name) { window.removeEventListener(name, onGesture, true); }); 1935 window.removeEventListener('focusin', onFocus, true); 1936 document.removeEventListener('submit', onSubmit, true); 1937 armed = false; 1938 } 1939 1940 function release(reason) { 1941 if (released) return; 1942 released = true; 1943 disarm(); 1944 restore(); 1945 var inserted = 0, discarded = 0; 1946 held.forEach(function (entry) { 1947 var marker = entry.marker; 1948 // A removed page/placeholder means its pending script was cancelled. 1949 if (!marker.isConnected || !marker.parentNode) { discarded++; return; } 1950 try { 1951 original.insertBefore.call(marker.parentNode, entry.node, marker); 1952 marker.remove(); 1953 inserted++; 1954 } catch (error) { 1955 console.error('[Botanic script deferral] Cannot release deferred script', error); 1956 } 1957 }); 1958 window.__bnDeferred = { releasedAt: Date.now(), reason: reason, count: inserted, discarded: discarded }; 1959 window.__bnRecaptcha = window.__bnDeferred; 1960 held = []; 1961 entries = new WeakMap(); 1962 } 1963 1964 wrappers.insertBefore = function (node, reference) { 1965 if (!shouldHold(node) || node.isConnected) return original.insertBefore.call(this, node, reference); 1966 // Native insertion validates parent/reference before the gesture is armed. 1967 original.insertBefore.call(this, markerFor(node), reference); 1968 arm(); 1969 return node; 1970 }; 1971 wrappers.appendChild = function (node) { 1972 if (!shouldHold(node) || node.isConnected) return original.appendChild.call(this, node); 1973 original.appendChild.call(this, markerFor(node)); 1974 arm(); 1975 return node; 1976 }; 1977 function variadic(method, parent, nodes) { 1978 var deferred = false; 1979 var values = Array.prototype.map.call(nodes, function (node) { 1980 if (!shouldHold(node) || node.isConnected) return node; 1981 deferred = true; 1982 return markerFor(node); 1983 }); 1984 var result = original[method].apply(parent, values); 1985 if (deferred) arm(); 1986 return result; 1987 } 1988 wrappers.append = function () { return variadic('append', this, arguments); }; 1989 wrappers.prepend = function () { return variadic('prepend', this, arguments); }; 1990 1991 window[KEY] = { release: release }; 1992 try { 1993 NP.insertBefore = wrappers.insertBefore; 1994 NP.appendChild = wrappers.appendChild; 1995 if (original.append) EP.append = wrappers.append;
1996 if (original.prepend) EP.prepend = wrappers.prepend; 1997 } catch (error) { 1998 release('installation-failed'); 1999 console.error('[Botanic script deferral] Installation failed', error); 2000 } 2001})(); 2002</script>
2002 2003</div><div 2004 class="module_type-integration" 2005 data-integration-module-name="000652b2-bce7-21f1-b802-b1a9f4ec1178" 2006 data-integration-module-id="623">
2006<script> 2007(function () { 2008 'use strict'; 2009 if (window.__bnMetaPixel) return; /* Turbo пеÑе-иÑполнÑÐµÑ ÑкÑипÑÑ body */ 2010 2011 var CFG = { 2012 pageViewWindowMs: 30000, /* повÑÐ¾Ñ PageView по ÑÐ¾Ð¼Ñ Ð¶Ðµ path в окне â дÑоп; 0 = вÑкл */ 2013 viewContentWindowMs: 30000, /* повÑÐ¾Ñ ViewContent (path + content_ids) â дÑоп; 0 = вÑкл */ 2014 addToCartWindowMs: 1200, /* заÑиÑа Ð¾Ñ Ð´Ð²Ð¾Ð¹Ð½Ð¾Ð³Ð¾ клика/двойного emit; 0 = вÑкл */ 2015 listMode: 'rename', /* ViewContent за пÑоÑмоÑÑ Ð¡ÐÐСÐÐ ÑоваÑов (VIEW_ITEM_LIST): 2016 'rename' â пеÑеименоваÑÑ Ð² каÑÑомное ViewCategory (док. Meta: 2017 ViewContent = каÑÑоÑка ÑоваÑа; ÑпиÑки â ViewCategory 2018 ÑеÑез trackCustom, 5â10 id), 2019 'drop' â погаÑиÑÑ ÑовÑем, 2020 'keep' â оÑÑавиÑÑ ÐºÐ°Ðº еÑÑÑ (поведение плаÑÑоÑмÑ) */ 2021 listIdsCap: 10, /* Meta ÑекомендÑÐµÑ 5â10 content_ids в ViewCategory */ 2022 disableAutoConfig: false, /* true = гаÑÐ¸Ñ Ð°Ð²Ñо-ÑобÑÑÐ¸Ñ Ð¿Ð¸ÐºÑÐµÐ»Ñ (SubscribedButtonClick), 2023 но заодно и Automatic Advanced Matching â по ÑмолÑÐ°Ð½Ð¸Ñ Ð²Ñкл, 2024 пÑавилÑнее вÑклÑÑиÑÑ Ð² Events Manager */ 2025 productPathRe: /\/p\//, /* пÑизнак ÑÑÑаниÑÑ ÑоваÑа: /pl/p/Nazwa/113 */ 2026 logLimit: 300 2027 }; 2028 2029 var st = { 2030 cfg: CFG, 2031 t0: Math.round(performance.now()), /* когда вÑÑал Ñ Ñк */ 2032 fbqAtInstall: typeof window.fbq, /* 'undefined' = ÑÑпели ÑанÑÑе плаÑÑоÑÐ¼Ñ */ 2033 kept: 0, dropped: 0, log: [], last: {} 2034 }; 2035 window.__bnMetaPixel = st; 2036 2037 st.summary = function () { 2038 var o = {}; 2039 for (var i = 0; i < st.log.length; i++) { 2040 var r = st.log[i], k = r.event + ' ' + r.action + (r.reason ? ':' + r.reason : ''); 2041 o[k] = (o[k] || 0) + 1; 2042 } 2043 return o; 2044 }; 2045 2046 function note(action, name, reason) { 2047 if (st.log.length < CFG.logLimit) { 2048 st.log.push({ 2049 t: Math.round(performance.now()), 2050 path: location.pathname, 2051 event: name, action: action, reason: reason || '' 2052 }); 2053 } 2054 if (action === 'drop') { st.dropped++; } else { st.kept++; } 2055 } 2056 2057 /* fbq('track'|'trackCustom', name, data) | fbq('trackSingle'|'trackSingleCustom', pixel, name, data) */ 2058 function parse(args) { 2059 var m = args[0]; 2060 if (m === 'track' || m === 'trackCustom') return { name: args[1], data: args[2] }; 2061 if (m === 'trackSingle' || m === 'trackSingleCustom') return { name: args[2], data: args[3] }; 2062 return null; 2063 } 2064 2065 function idList(data) { 2066 var c = data && data.content_ids; 2067 if (!c) return []; 2068 return (Object.prototype.toString.call(c) === '[object Array]') ? c : [c]; 2069 } 2070 2071 function isList(data) { 2072 var ids = idList(data); 2073 return ids.length !== 1 || !CFG.productPathRe.test(location.pathname); 2074 } 2075 2076 /* {act:'pass'} | {act:'drop', why} | {act:'rename', to:'ViewCategory'} */ 2077 function decide(name, data) { 2078 var now = Date.now(), key, win, renameTo = null; 2079 2080 if (name === 'PageView') { 2081 key = 'PV|' + location.pathname; 2082 win = CFG.pageViewWindowMs; 2083 2084 } else if (name === 'ViewContent') { 2085 var ids = idList(data); 2086 if (isList(data)) { 2087 if (CFG.listMode === 'drop') return { act: 'drop', why: 'list' }; 2088 if (CFG.listMode === 'rename') renameTo = 'ViewCategory'; 2089 } 2090 key = (renameTo || 'VC') + '|' + location.pathname + '|' + ids.slice().sort().join(','); 2091 win = CFG.viewContentWindowMs; 2092 2093 } else if (name === 'AddToCart') { 2094 key = 'ATC|' + idList(data).slice().sort().join(',') + '|' + (data && data.value); 2095 win = CFG.addToCartWindowMs; 2096 2097 } else { 2098 return { act: 'pass' }; /* Purchase, InitiateCheckout, Search⦠â как еÑÑÑ */ 2099 } 2100 2101 if (win) { 2102 var prev = st.last[key]; 2103 if (prev && (now - prev) < win) return { act: 'drop', why: 'repeat' }; 2104 st.last[key] = now; /* меÑÐºÑ Ð´Ð²Ð¸Ð³Ð°ÐµÐ¼ ТÐÐЬÐРкогда пÑопÑÑÑили */ 2105 } 2106 return renameTo ? { act: 'rename', to: renameTo } : { act: 'pass' }; 2107 } 2108 2109 /* trackSingle -> trackSingleCustom, track -> trackCustom, Ñ Ð½Ð¾Ð²Ñм именем */ 2110 function rebuild(args, to) { 2111 var a = Array.prototype.slice.call(args), nameIdx, data; 2112 if (a[0] === 'track') { a[0] = 'trackCustom'; nameIdx = 1; } 2113 else if (a[0] === 'trackSingle') { a[0] = 'trackSingleCustom'; nameIdx = 2; } 2114 else return a; 2115 a[nameIdx] = to; 2116 data = a[nameIdx + 1]; 2117 if (data && data.content_ids && data.content_ids.length > CFG.listIdsCap) { 2118 var copy = {}, k; 2119 for (k in data) { if (Object.prototype.hasOwnProperty.call(data, k)) copy[k] = data[k]; } 2120 copy.content_ids = data.content_ids.slice(0, CFG.listIdsCap); 2121 a[nameIdx + 1] = copy; 2122 } 2123 return a; 2124 } 2125 2126 var autoCfgDone = {}; 2127 2128 function wrap(fn) { 2129 if (typeof Proxy !== 'function') return fn; 2130 try { 2131 return new Proxy(fn, { 2132 apply: function (target, thisArg, args) { 2133 try { 2134 var p = parse(args); 2135 if (p && p.name) { 2136 var d = decide(p.name, p.data); 2137 if (d.act === 'drop') { note('drop', p.name, d.why); return undefined; } 2138 if (d.act === 'rename') { 2139 note('rename', p.name, '-> ' + d.to); 2140 return target.apply(thisArg, rebuild(args, d.to)); 2141 } 2142 note('keep', p.name); 2143 } 2144 } catch (e) { /* Ñомнение â в полÑÐ·Ñ ÑобÑÑÐ¸Ñ */ } 2145 2146 var res = target.apply(thisArg, args); 2147 2148 if (CFG.disableAutoConfig && args[0] === 'init' && args[1] && !autoCfgDone[args[1]]) { 2149 autoCfgDone[args[1]] = 1; 2150 try { target.apply(thisArg, ['set', 'autoConfig', false, args[1]]); } catch (e) {} 2151 } 2152 return res; 2153 } 2154 }); 2155 } catch (e) { return fn; } 2156 } 2157 2158 var slot = {}; 2159 ['fbq', '_fbq'].forEach(function (prop) { 2160 var current = window[prop]; 2161 try { 2162 Object.defineProperty(window, prop, { 2163 configurable: true, 2164 enumerable: true, 2165 get: function () { return slot[prop]; }, 2166 set: function (v) { slot[prop] = (typeof v === 'function') ? wrap(v) : v; } 2167 }); 2168 } catch (e) { return; } 2169 if (current !== undefined) { window[prop] = current; } 2170 }); 2171})(); 2172</script>
2172</div><div 2173 class="module_type-integration" 2174 data-integration-module-name="000652b2-bce7-21f1-9602-1b7fbec78728" 2175 data-integration-module-id="630"><!-- BN-FOOTER-FALLBACK-2026-08-19: tylko dla stron bez osobnego moduÅu Footer --> 2176<template id="bn-footer-fallback-template"><footer class="bn-footer"> 2177 <div class="bn-fwrap"> 2178 <div class="bn-footer__main"> 2179 <div class="bn-footer__col bn-footer__brand"> 2180 <a class="bn-footer__logo" href="/" aria-label="Botanic"><img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj48c3ZnIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCA2MjIxIDEzNTIiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM6c2VyaWY9Imh0dHA6Ly93d3cuc2VyaWYuY29tLyIgc3R5bGU9ImZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoyOyI+PHJlY3QgaWQ9IlBhZ2UtMiIg
2180c2VyaWY6aWQ9IlBhZ2UgMiIgeD0iMCIgeT0iMCIgd2lkdGg9IjYyMjEiIGhlaWdodD0iMTM1MS4zMzMiIHN0eWxlPSJmaWxsOm5vbmU7Ii8+PGNsaXBQYXRoIGlkPSJfY2xpcDEiPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSI2MjIxIiBoZWlnaHQ9IjEzNTEuMzMzIi8+PC9jbGlwUGF0aD48ZyBjbGlwLXBhdGg9InVybCgjX2NsaXAxKSI+PGcgaWQ9IkxheWVyLTEiIHNlcmlmOmlkPSJMYXllciAxIj48L2c+PGc+PHBhdGggZD0iTTcwNS45NSw4NzIuMjg5YzAsLTE2Mi4wNjkgLTExMS42NTQsLTI3MS45MjIgLTI0MS4zMjEsLTI3MS45MjJjLTEzMy4yNjksMCAtMjQzLjEyMiwxMDguMDUyIC0yNDMuMTIyLDI3MS45MjJjMCwxNjIuMDg3IDEwOS44NTMsMjcxLjk0MSAyNDMuMTIyLDI3MS45NDFjMTI5LjY2NiwwIDI0MS4zMjEsLTEwOS44NTMgMjQxLjMyMSwtMjcxLjk0MW0tNDg4LjA0NSw0NTcuNDI1bC0yMTcuOTA1LDBsMCwtMTI3OC42MTRsMjMyLjMxNSwtMGwwLDQ3My42MTdjNTAuNDMzLC03Ny40MzIgMTYyLjA2OSwtMTM1LjA1MiAyODAuOTQ2LC0xMzUuMDUyYzIzNC4wOTgsMCA0MjYuODA1LDE5Ni4yOTEgNDI2LjgwNSw0ODAuODIyYzAsMjg0LjU0OSAtMTkyLjcwNyw0ODAuODQgLTQzMC40MjYsNDgwLjg0Yy0xMjIuNDYxLDAgLTI0MS4zMDIsLTYxLjI0IC0yOTEuNzM1LC0xNDUuODc3bDAsMTI0LjI2M1oiIHN0eWxlPSJmaWxsOiNmMGY3ZWQ7ZmlsbC1ydWxlOm5vbnplcm87Ii8+PHBhdGggZD0iTTI3NjAuNTk4LDEzMTUuMzA2Yy0zNy44MDYsMjEuNjE0IC05NS40NDQsMzYuMDIzIC0xNzEuMDc1LDM2LjAyM2MtMTg5LjA4NywwIC0zMDYuMTQ1LC0xMTEuNjU0IC0zMDYuMTQ1LC0zMDkuNzQ3bDAsLTQ0My4wMzRsLTEyOS42NjYsMGwwLC0xODcuMjg1bDEzNi44NzEsMGwwLC0yMDguOWwyMjYuOTExLC01OS40MmwwLDI2OC4zMmwyMjEuNTA4LDBsMCwxODcuMjg1bC0yMjEuNTA4LDBsMCw0MTAuNjEzYzAsOTMuNjQzIDQ4LjYzMiwxMzMuMjY5IDEzNS4wNywxMzMuMjY5YzI1LjE5OCwwIDcwLjIyOCwtNy4yMDUgMTA4LjAzNCwtMjguODE5bDAsMjAxLjY5NVoiIHN0eWxlPSJmaWxsOiNmMGY3ZWQ7ZmlsbC1ydWxlOm5vbnplcm87Ii8+PHBhdGggZD0iTTM0NDMuMDc1LDk1Ni45MzFsMCwtMzQuMjA0bC0xODUuNDg0LDIzLjM5N2MtMTAwLjg0NywxMi42MDggLTE1OC40ODUsNTQuMDE3IC0xNTguNDg1LDEyMC42NmMwLDYzLjAyMyA1Mi4yMzQsMTAyLjY0OSAxMjcuODY1LDEwMi42NDljMTE4Ljg1OSwwIDIxNi4xMDQsLTk3LjI0NSAyMTYuMTA0LC0yMTIuNTAybS0xNzYuNDc4LC01NjcuMjc4YzIzNC4xMTYsMCA0MDMuMzksMTI3Ljg2NSA0MDMuMzksMzYwLjE4bDAsNTc5Ljg4NmwtMjE3LjkwNSwwbDAsLTEyNy44NjVjLTU3LjYzOCw5My42NDMgLTE1Ni42NjYsMTQ5LjQ3OSAtMjc3LjMyNiwxNDkuNDc5Yy0xNzIuODk0LDAgLTI5OC45NTgsLTEwOS44NTMgLTI5O
2180C45NTgsLTI2MS4xMzRjMCwtMTYwLjI4NiAxMTguODc3LC0yNTIuMTI4IDMzMy4xNjIsLTI4NC41MzFsMjMyLjMxNSwtMzQuMjIybDAsLTI1LjIxNmMwLC05NS40NDQgLTc1LjYzMSwtMTUxLjI4IC0xOTIuNjg5LC0xNTEuMjhjLTEyMi40NjEsMCAtMjM0LjExNiw1Mi4yMzQgLTMwMi41NDIsMTAyLjY2N2wwLC0yMTkuNzI1Yzc3LjQzMiwtNTAuNDE1IDE5Ni4yOTEsLTg4LjIzOSAzMjAuNTU0LC04OC4yMzkiIHN0eWxlPSJmaWxsOiNmMGY3ZWQ7ZmlsbC1ydWxlOm5vbnplcm87Ii8+PHBhdGggZD0iTTQ0MzUuMjg2LDM4OS42NmMyMTIuNTIsMCAzNTYuNTc3LDE0Mi4yNzQgMzU2LjU3NywzODEuNzc2bDAsNTU4LjI3MmwtMjM0LjExNiwwbDAsLTUyOS40NTRjMCwtMTMzLjI1IC03OS4yMzMsLTIwMS42OTUgLTE4My42ODMsLTIwMS42OTVjLTE1NC44ODMsMCAtMjEyLjUwMiwxMzguNjcyIC0yMTIuNTAyLDI1Ny41MzFsMCw0NzMuNjE3bC0yMzQuMTE2LDBsMCwtOTE4LjQ1MmwyMjUuMTEsMGwwLDEyNC4yODFjNTIuMjE2LC04OC4yNTcgMTQ0LjA3NiwtMTQ1Ljg3NyAyODIuNzI5LC0xNDUuODc3IiBzdHlsZT0iZmlsbDojZjBmN2VkO2ZpbGwtcnVsZTpub256ZXJvOyIvPjxwYXRoIGQ9Ik01MDQ3LjUzMiw0MTEuMjZsMjM0LjExNiwwbDAsOTE4LjQ1MmwtMjM0LjExNiwwbDAsLTkxOC40NTJabTI1Mi4xMDksLTI2Ni41MTljMCw3NS42MzEgLTU5LjQyLDEzMy4yNjkgLTEzMy4yNSwxMzMuMjY5Yy03NS42MzEsMCAtMTM2Ljg3MSwtNTcuNjM4IC0xMzYuODcxLC0xMzMuMjY5YzAsLTc1LjYzMSA2MS4yNCwtMTMzLjI2OSAxMzYuODcxLC0xMzMuMjY5YzczLjgzLDAgMTMzLjI1LDU3LjYzOCAxMzMuMjUsMTMzLjI2OSIgc3R5bGU9ImZpbGw6I2YwZjdlZDtmaWxsLXJ1bGU6bm9uemVybzsiLz48cGF0aCBkPSJNNjIxNi4yMzksNjY2Ljk5N2MtNjEuMjIyLC00My4yMjggLTE0OS40NzksLTY2LjY0MyAtMjIxLjUwOCwtNjYuNjQzYy0xNjMuODg4LDAgLTI3NS41MjUsMTExLjY1NCAtMjc1LjUyNSwyNzEuOTQxYzAsMTQ5LjQ3OSAxMDQuNDUsMjY4LjMzOCAyNzUuNTI1LDI2OC4zMzhjNzkuMjUyLDAgMTYzLjg3LC0yMS42MTQgMjIzLjMwOSwtNjguNDQ1bDAsMjIxLjUwOGMtNjYuNjI1LDQxLjQyNyAtMTY3LjQ3Myw1Ny42MzggLTI1Mi4xMjgsNTcuNjM4Yy0yNzkuMTQ1LDAgLTQ4NC40NDIsLTIwNy4xMTcgLTQ4NC40NDIsLTQ3OS4wMzljMCwtMjczLjc0MiAyMDEuNzEzLC00ODIuNjQxIDQ4Ni4yNDQsLTQ4Mi42NDFjODQuNjM3LDAgMTgwLjA4MSwxOS44MTMgMjQ4LjUyNSw1Ny42MzhsMCwyMTkuNzA3WiIgc3R5bGU9ImZpbGw6I2YwZjdlZDtmaWxsLXJ1bGU6bm9uemVybzsiLz48cGF0aCBkPSJNMTU2My4wODEsMTEzNy4wMTljLTE0NS44NzcsMCAtMjUwLjMyNywtMTE1LjI1NyAtMjUwLjMyNywtMjY2LjUxOWMwLC0xNTEuMjggMTA0LjQ1LC0yNjYuNTM3IDI1MC4zMjcsLTI2Ni41MzdjMTQ0LjA1NywwIDI0OC41MjUsMTE1LjI1NyAyNDguNTI1LDI2Ni41MzdjMCwxNTEuMjYyIC0xMDQuNDY4LDI2Ni41MTkgLTI0OC41MjUsMjY2LjUxOW05My43ODgsLTczOS4xMzVsNTguODM4LDBjMTg2Ljk3NiwwIDMzOC41NjYsLTE1MS41OSAzMzguNTY2LC0zMzguNTY2bC0xNDYuNzg2LDBjLTE4NC4yNDcsMCAtMzMzLjgxNywxNDcuMjc4IC0zMzguMTQ3LDMzMC40ODhjLTIuMDkyLC0wLjAxOCAtNC4xNDgsLTAuMTQ2IC02LjI1OSwtMC4xNDZjLTIuNzExLDAgLTUuMzY3LDAuMTQ2IC04LjA2LDAuMTgyYy00LjMxMiwtMTgzLjIyOCAtMTUzLjg4MiwtMzMwLjUyNCAtMzM4LjE2NSwtMzMwLjUyNGwtMTQ2Ljc2OCwwYzAsMTg2Ljk3NiAxNTEuNTksMzM4LjU2NiAzMzguNTY2LDMzOC41NjZsNjAuMDc1LDBjLTIzMi41MzMsNDAuODgxIC0zOTEuODkxLDIzMi4wMDYgLTM5MS44OTEsNDcyLjYxN2MwLDI3MS45MjIgMjAzLjQ5Niw0ODAuODIyIDQ4Ni4yNDQsNDgwLjgyMmMyODAuOTI4LDAgNDg0LjQyNCwtMjA4LjkgNDg0LjQyNCwtNDgwLjgyMmMwLC0yNDAuNjExIC0xNTkuMzQsLTQzMS43MzUgLTM5MC42MzYsLTQ3Mi42MTciIHN0eWxlPSJmaWxsOiNiY2ZkYWM7ZmlsbC1ydWxlOm5vbnplcm87Ii8+PC9nPjwvZz48L3N2Zz4=" alt="Botanic"></a> 2181 <p class="bn-footer__about">Producent szklarni ogrodowych z poliwÄglanu, wiat samochodowych i zadaszeÅ basenowych.</p> 2182 <div class="bn-footer__contact"> 2183 <a class="bn-footer__phone" href="tel:+48833070023"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z"/></svg>+48 833 070 023</a> 2184 <div class="bn-footer__hours">Pon.âPt. 8:00â17:00</div> 2185 </div> 2186 </div> 2187 <div class="bn-footer__col"> 2188 <h3 class="bn-footer__title">Kategorie</h3> 2189 <ul class="bn-footer__list"> 2190 <li><a href="/szklarnie">Szklarnie z poliwÄglanu</a></li> 2191 <li><a href="/wiaty-samochodowe">Wiaty samochodowe</a></li> 2192 <li><a href="/grzadki-i-klomby">GrzÄ dki i klomby</a></li> 2193 <li><a href="/pl/c/Zadaszenia-basenowe/50">Zadaszenia basenowe</a></li> 2194 </ul> 2195 </div> 2196 <div class="bn-footer__col"> 2197 <h3 class="bn-footer__title">Informacje</h3> 2198 <ul class="bn-footer__list"> 2199 <li><a href="/o-nas">O nas</a></li> 2200 <li><a href="/pl/i/Jak-wybrac-szklarnie.-Poradnik/33">Jak wybraÄ szklarniÄ. Poradnik</a></li> 2201 <li><a href="/pl/i/Malowanie-konstrukcji/23">Malowanie konstrukcji</a></li> 2202 <li><a href="/pl/i/Tasmy-i-profile/37">TaÅmy i profile</a></li> 2203 <li><a href="/formy-platnosci">Formy pÅatnoÅci</a></li> 2204 <li><a href="/pl/blog">Blog</a></li> 2205 <li><a href="/realizacje">Realizacje</a></li> 2206 <li><a href="/montaz-szklarni">Montaż szklarni</a></li> 2207 <li><a href="/pl/i/Nasi-Partnerzy/36">Nasi Partnerzy</a></li> 2208 <li><a href="/mapa-strony">Mapa strony</a></li> 2209 <li><a href="/contact">Kontakt</a></li> 2210 </ul> 2211 </div>
2212 <div class="bn-footer__col"> 2213 <h3 class="bn-footer__title">Pomoc</h3> 2214 <ul class="bn-footer__list"> 2215 <li><a href="/pl/i/Zwroty-i-reklamacje/7">Zwroty i reklamacje</a></li> 2216 <li><a href="/pl/i/Program-afiliacyjny-Botanic/21">Program afiliacyjny Botanic</a></li> 2217 <li><a href="/faq">FAQ</a></li> 2218 <li><a href="/regulamin">Regulamin sklepu</a></li> 2219 <li><a href="/polityka-prywatnosci">Polityka prywatnoÅci</a></li> 2220 <li><a href="/jak-kupic-na-raty">Jak kupiÄ na raty?</a></li> 2221 <li><a href="/pl/i/Zostan-Partnerem-B2B/35">ZostaÅ Partnerem B2B</a></li> 2222 </ul> 2223 </div> 2224 </div> 2225 <div class="bn-footer__bottom"> 2226 <p>© 2026 Botanic. Wszystkie prawa zastrzeżone.</p> 2227 </div> 2228 </div> 2229 <button class="bn-totop" type="button" aria-label="PrzewiÅ do góry"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><polyline points="18 15 12 9 6 15"/></svg></button> 2230</footer></template>
2231<script> 2232(function(){ 2233 function mountFallback(){ 2234 if(document.querySelector(".bn-footer"))return; 2235 var t=document.getElementById("bn-footer-fallback-template"); 2236 if(!t)return; 2237 var frag=t.content.cloneNode(true); 2238 var nativeFooter=document.getElementById("main-footer"); 2239 if(nativeFooter&&nativeFooter.parentNode)nativeFooter.parentNode.insertBefore(frag,nativeFooter); 2240 else document.body.appendChild(frag); 2241 } 2242 if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",mountFallback);else mountFallback(); 2243})(); 2244</script>
2244</div><div 2245 class="module_type-integration" 2246 data-integration-module-name="000652b2-bce7-21f1-bd02-137e7f90380f" 2247 data-integration-module-id="631">
2248<script> 2249/* Listing kategorii: przenieÅ opis kategorii POD listÄ produktów (niektóre kategorie, np. âSzklarnie ogrodowe" /wszystkie-szklarnie, majÄ wielki blok opisu NAD produktami â klient chce produkty od razu, opis niżej). Kolumna produktów: [nagÅówek(tytuÅ+licznik), opis, lista]. Przenosimy bloki miÄdzy nagÅówkiem a listÄ pod listÄ. */ 2250(function(){ 2251 function run(){ 2252 var view=document.querySelector('.gc__category__view'); 2253 if(!view)return false;if(view.__bnDescMoved)return true; 2254 var list=view.querySelector('product-list'); 2255 if(!list)return false; 2256 /* kolumna produktów = bezpoÅrednie dziecko wiersza view, które zawiera product-list; 2257 listRow = bezpoÅrednie dziecko tej kolumny zawierajÄ ce product-list */ 2258 var row=view.children[0]||view; 2259 var prodCol=null; 2260 [].forEach.call(row.children,function(c){if(c.querySelector&&c.querySelector('product-list'))prodCol=c;}); 2261 if(!prodCol)return false; 2262 var listRow=null; 2263 [].forEach.call(prodCol.children,function(c){if(c===list||(c.querySelector&&c.querySelector('product-list')))listRow=c;}); 2264 if(!listRow)return false; 2265 var kids=[].slice.call(prodCol.children); 2266 var li=kids.indexOf(listRow); 2267 if(li<1){view.__bnDescMoved=1;return true;} 2268 var anchor=listRow.nextSibling, moved=0; 2269 for(var i=1;i<li;i++){ /* i=0 to nagÅówek (tytuÅ+licznik) â zostaje na górze */ 2270 var el=kids[i]; 2271 if(el.querySelector&&(el.querySelector('product-list')||el.querySelector('.tile-grid')))continue; 2272 if((el.textContent||'').trim().length<80)continue; 2273 prodCol.insertBefore(el,anchor); 2274 moved++; 2275 } 2276 view.__bnDescMoved=1;return true; 2277 } 2278 /* Bez listingu nie ma na co czekac: na stronie glownej, karcie produktu i 2279 stronach informacyjnych 40 prob co 300 ms chodzilo na pusto. */ 2280 var t=0;function boot(){var done=function(){document.documentElement.classList.add('bn-cat-ready');}; 2281 if(run()){done();return;} 2282 if(!document.querySelector('.gc__category__view,.gc__main__category__column,product-list')){done();return;} 2283 if(t++<40){setTimeout(boot,300);return;} 2284 done();} 2285 window.__bnCatDescBoot=boot; 2286 boot(); 2287})(); 2288</script>
2288 2289
2290<script> 2291/* Listing: ujednoliÄ przyciski kart â WSZYSTKIE âZobacz produkt" (link do produktu), po lewej; ukryj natywne przyciski w tym âDo koszyka"/quick-add (decyzja klienta 2026-07: âdodaj do koszyka ma nie istnieÄ â też ma byÄ zobacz produkt"). */ 2292(function(){ 2293 function urlOf(t){ 2294 var a=t.querySelector('.product-tile__image a[href]')||t.querySelector('.product-tile__name a[href]')||t.querySelector('a.product-tile__name[href]')||t.querySelector('a[href*="/p/"]')||t.querySelector('a[href]:not([href="#"]):not([href=""])'); 2295 return a?a.getAttribute('href'):null; 2296 } 2297 function run(){ 2298 var tiles=document.querySelectorAll('.tile-grid .product-tile'); 2299 [].forEach.call(tiles,function(t){ 2300 if(t.__bnCta)return; 2301 var footer=t.querySelector('.product-tile__footer'); 2302 var href=urlOf(t); 2303 if(!footer||!href)return; 2304 [].forEach.call(footer.querySelectorAll('.btn_primary,button,a.btn,a[class*="button"]'),function(b){b.style.setProperty('display','none','important');}); 2305 if(!footer.querySelector('.bn-tile-cta')){ 2306 var a=document.createElement('a'); 2307 a.className='bn-tile-cta';a.setAttribute('href',href);a.textContent='Zobacz produkt'; 2308 footer.appendChild(a); 2309 } 2310 t.__bnCta=1; 2311 }); 2312 } 2313 var mo; 2314 function boot(){ 2315 run(); 2316 if(!mo){ 2317 /* Bez siatki kafelkow nie ma czego obserwowac - obserwator na <body> chodzil 2318 na pusto przez 15 s na kazdej stronie bez listingu. Gdy kafelki pojawia sie 2319 pozniej (SPA), wspolna magistrala zawola boot() ponownie. */ 2320 var g=document.querySelector('.gc__category__view')||document.querySelector('.tile-grid'); 2321 if(!g)return; 2322 mo=new MutationObserver(function(){run();}); 2323 mo.observe(g,{childList:true,subtree:true}); 2324 setTimeout(function(){if(mo){mo.disconnect();mo=null;}},15000); 2325 } 2326 } 2327 window.__bnCatCtaBoot=boot; 2328})(); 2329</script>
2329 2330
2331<script> 2332/* ===== SPA-obwódka: oryginalne inline-skrypty przebiegaÅy przy każdej SPA-nawigacji; 2333 moduÅ wykonuje siÄ raz â adaptacje restartuje wspólny obserwator document (debounce 150 ms). ===== */ 2334(function(){ 2335 var t=null; 2336 function call(f){try{f&&f();}catch(e){}} 2337 function bootAll(){ 2338 call(window.__bnCatDescBoot); 2339 call(window.__bnCatCtaBoot); 2340 } 2341 if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',bootAll);else bootAll(); 2342 setTimeout(bootAll,1500); 2343/* Jedna wspolna magistrala obserwatora DOM zamiast osobnego MutationObservera 2344 w kazdym module. Dwie kolejki: natychmiastowa (przenoszenie blokow â musi 2345 zdazyc w tej samej klatce, inaczej po nawigacji SPA mignie natywna stopka) 2346 i odlozona o 150 ms (synchronizacja licznikow â tak bylo i wczesniej). */ 2347 window.__bnDomWatch=window.__bnDomWatch||(function(){var now=[],later=[],t=null,mo=null;function flush(){t=null;for(var i=0;i<later.length;i++){try{later[i]();}catch(e){}}}function tick(){for(var i=0;i<now.length;i++){try{now[i]();}catch(e){}}if(later.length){if(t)clearTimeout(t);t=setTimeout(flush,150);}}return function(fn,defer){(defer?later:now).push(fn);if(!mo){mo=new MutationObserver(tick);mo.observe(document,{childList:true,subtree:true});}};})(); 2348 /* Skrypt modulu integracyjnego wykonuje sie ponownie przy kazdej nawigacji 2349 SPA (Turbo podstawia nowe <body> razem z nim), wiec subskrybujemy raz. 2350 bootAll siega po window.__bnCatDescBoot/__bnCatCtaBoot, ktore kazde 2351 wykonanie nadpisuje swiezymi, wiec zachowanie zostaje to samo. */ 2352 if(!window.__bnTilesBound){window.__bnTilesBound=1;window.__bnDomWatch(bootAll,true);} 2353})(); 2354</script>
2354</div><div 2355 class="module_type-integration" 2356 data-integration-module-name="000652b2-bce7-21f1-8b02-83f221733c92" 2357 data-integration-module-id="632"><footer class="bn-footer"> 2358 <div class="bn-fwrap"> 2359 <div class="bn-footer__main"> 2360 <div class="bn-footer__col bn-footer__brand"> 2361 <a class="bn-footer__logo" href="/" aria-label="Botanic"><img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj48c3ZnIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCA2MjIxIDEzNTIiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM6c2VyaWY9Imh0dHA6Ly93d3cuc2VyaWYuY29tLyIgc3R5bGU9ImZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoyOyI+PHJlY3QgaWQ9IlBhZ2UtMiIg
2361c2VyaWY6aWQ9IlBhZ2UgMiIgeD0iMCIgeT0iMCIgd2lkdGg9IjYyMjEiIGhlaWdodD0iMTM1MS4zMzMiIHN0eWxlPSJmaWxsOm5vbmU7Ii8+PGNsaXBQYXRoIGlkPSJfY2xpcDEiPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSI2MjIxIiBoZWlnaHQ9IjEzNTEuMzMzIi8+PC9jbGlwUGF0aD48ZyBjbGlwLXBhdGg9InVybCgjX2NsaXAxKSI+PGcgaWQ9IkxheWVyLTEiIHNlcmlmOmlkPSJMYXllciAxIj48L2c+PGc+PHBhdGggZD0iTTcwNS45NSw4NzIuMjg5YzAsLTE2Mi4wNjkgLTExMS42NTQsLTI3MS45MjIgLTI0MS4zMjEsLTI3MS45MjJjLTEzMy4yNjksMCAtMjQzLjEyMiwxMDguMDUyIC0yNDMuMTIyLDI3MS45MjJjMCwxNjIuMDg3IDEwOS44NTMsMjcxLjk0MSAyNDMuMTIyLDI3MS45NDFjMTI5LjY2NiwwIDI0MS4zMjEsLTEwOS44NTMgMjQxLjMyMSwtMjcxLjk0MW0tNDg4LjA0NSw0NTcuNDI1bC0yMTcuOTA1LDBsMCwtMTI3OC42MTRsMjMyLjMxNSwtMGwwLDQ3My42MTdjNTAuNDMzLC03Ny40MzIgMTYyLjA2OSwtMTM1LjA1MiAyODAuOTQ2LC0xMzUuMDUyYzIzNC4wOTgsMCA0MjYuODA1LDE5Ni4yOTEgNDI2LjgwNSw0ODAuODIyYzAsMjg0LjU0OSAtMTkyLjcwNyw0ODAuODQgLTQzMC40MjYsNDgwLjg0Yy0xMjIuNDYxLDAgLTI0MS4zMDIsLTYxLjI0IC0yOTEuNzM1LC0xNDUuODc3bDAsMTI0LjI2M1oiIHN0eWxlPSJmaWxsOiNmMGY3ZWQ7ZmlsbC1ydWxlOm5vbnplcm87Ii8+PHBhdGggZD0iTTI3NjAuNTk4LDEzMTUuMzA2Yy0zNy44MDYsMjEuNjE0IC05NS40NDQsMzYuMDIzIC0xNzEuMDc1LDM2LjAyM2MtMTg5LjA4NywwIC0zMDYuMTQ1LC0xMTEuNjU0IC0zMDYuMTQ1LC0zMDkuNzQ3bDAsLTQ0My4wMzRsLTEyOS42NjYsMGwwLC0xODcuMjg1bDEzNi44NzEsMGwwLC0yMDguOWwyMjYuOTExLC01OS40MmwwLDI2OC4zMmwyMjEuNTA4LDBsMCwxODcuMjg1bC0yMjEuNTA4LDBsMCw0MTAuNjEzYzAsOTMuNjQzIDQ4LjYzMiwxMzMuMjY5IDEzNS4wNywxMzMuMjY5YzI1LjE5OCwwIDcwLjIyOCwtNy4yMDUgMTA4LjAzNCwtMjguODE5bDAsMjAxLjY5NVoiIHN0eWxlPSJmaWxsOiNmMGY3ZWQ7ZmlsbC1ydWxlOm5vbnplcm87Ii8+PHBhdGggZD0iTTM0NDMuMDc1LDk1Ni45MzFsMCwtMzQuMjA0bC0xODUuNDg0LDIzLjM5N2MtMTAwLjg0NywxMi42MDggLTE1OC40ODUsNTQuMDE3IC0xNTguNDg1LDEyMC42NmMwLDYzLjAyMyA1Mi4yMzQsMTAyLjY0OSAxMjcuODY1LDEwMi42NDljMTE4Ljg1OSwwIDIxNi4xMDQsLTk3LjI0NSAyMTYuMTA0LC0yMTIuNTAybS0xNzYuNDc4LC01NjcuMjc4YzIzNC4xMTYsMCA0MDMuMzksMTI3Ljg2NSA0MDMuMzksMzYwLjE4bDAsNTc5Ljg4NmwtMjE3LjkwNSwwbDAsLTEyNy44NjVjLTU3LjYzOCw5My42NDMgLTE1Ni42NjYsMTQ5LjQ3OSAtMjc3LjMyNiwxNDkuNDc5Yy0xNzIuODk0LDAgLTI5OC45NTgsLTEwOS44NTMgLTI5O
2361C45NTgsLTI2MS4xMzRjMCwtMTYwLjI4NiAxMTguODc3LC0yNTIuMTI4IDMzMy4xNjIsLTI4NC41MzFsMjMyLjMxNSwtMzQuMjIybDAsLTI1LjIxNmMwLC05NS40NDQgLTc1LjYzMSwtMTUxLjI4IC0xOTIuNjg5LC0xNTEuMjhjLTEyMi40NjEsMCAtMjM0LjExNiw1Mi4yMzQgLTMwMi41NDIsMTAyLjY2N2wwLC0yMTkuNzI1Yzc3LjQzMiwtNTAuNDE1IDE5Ni4yOTEsLTg4LjIzOSAzMjAuNTU0LC04OC4yMzkiIHN0eWxlPSJmaWxsOiNmMGY3ZWQ7ZmlsbC1ydWxlOm5vbnplcm87Ii8+PHBhdGggZD0iTTQ0MzUuMjg2LDM4OS42NmMyMTIuNTIsMCAzNTYuNTc3LDE0Mi4yNzQgMzU2LjU3NywzODEuNzc2bDAsNTU4LjI3MmwtMjM0LjExNiwwbDAsLTUyOS40NTRjMCwtMTMzLjI1IC03OS4yMzMsLTIwMS42OTUgLTE4My42ODMsLTIwMS42OTVjLTE1NC44ODMsMCAtMjEyLjUwMiwxMzguNjcyIC0yMTIuNTAyLDI1Ny41MzFsMCw0NzMuNjE3bC0yMzQuMTE2LDBsMCwtOTE4LjQ1MmwyMjUuMTEsMGwwLDEyNC4yODFjNTIuMjE2LC04OC4yNTcgMTQ0LjA3NiwtMTQ1Ljg3NyAyODIuNzI5LC0xNDUuODc3IiBzdHlsZT0iZmlsbDojZjBmN2VkO2ZpbGwtcnVsZTpub256ZXJvOyIvPjxwYXRoIGQ9Ik01MDQ3LjUzMiw0MTEuMjZsMjM0LjExNiwwbDAsOTE4LjQ1MmwtMjM0LjExNiwwbDAsLTkxOC40NTJabTI1Mi4xMDksLTI2Ni41MTljMCw3NS42MzEgLTU5LjQyLDEzMy4yNjkgLTEzMy4yNSwxMzMuMjY5Yy03NS42MzEsMCAtMTM2Ljg3MSwtNTcuNjM4IC0xMzYuODcxLC0xMzMuMjY5YzAsLTc1LjYzMSA2MS4yNCwtMTMzLjI2OSAxMzYuODcxLC0xMzMuMjY5YzczLjgzLDAgMTMzLjI1LDU3LjYzOCAxMzMuMjUsMTMzLjI2OSIgc3R5bGU9ImZpbGw6I2YwZjdlZDtmaWxsLXJ1bGU6bm9uemVybzsiLz48cGF0aCBkPSJNNjIxNi4yMzksNjY2Ljk5N2MtNjEuMjIyLC00My4yMjggLTE0OS40NzksLTY2LjY0MyAtMjIxLjUwOCwtNjYuNjQzYy0xNjMuODg4LDAgLTI3NS41MjUsMTExLjY1NCAtMjc1LjUyNSwyNzEuOTQxYzAsMTQ5LjQ3OSAxMDQuNDUsMjY4LjMzOCAyNzUuNTI1LDI2OC4zMzhjNzkuMjUyLDAgMTYzLjg3LC0yMS42MTQgMjIzLjMwOSwtNjguNDQ1bDAsMjIxLjUwOGMtNjYuNjI1LDQxLjQyNyAtMTY3LjQ3Myw1Ny42MzggLTI1Mi4xMjgsNTcuNjM4Yy0yNzkuMTQ1LDAgLTQ4NC40NDIsLTIwNy4xMTcgLTQ4NC40NDIsLTQ3OS4wMzljMCwtMjczLjc0MiAyMDEuNzEzLC00ODIuNjQxIDQ4Ni4yNDQsLTQ4Mi42NDFjODQuNjM3LDAgMTgwLjA4MSwxOS44MTMgMjQ4LjUyNSw1Ny42MzhsMCwyMTkuNzA3WiIgc3R5bGU9ImZpbGw6I2YwZjdlZDtmaWxsLXJ1bGU6bm9uemVybzsiLz48cGF0aCBkPSJNMTU2My4wODEsMTEzNy4wMTljLTE0NS44NzcsMCAtMjUwLjMyNywtMTE1LjI1NyAtMjUwLjMyNywtMjY2LjUxOWMwLC0xNTEuMjggMTA0LjQ1LC0yNjYuNTM3IDI1MC4zMjcsLTI2Ni41MzdjMTQ0LjA1NywwIDI0OC41MjUsMTE1LjI1NyAyNDguNTI1LDI2Ni41MzdjMCwxNTEuMjYyIC0xMDQuNDY4LDI2Ni41MTkgLTI0OC41MjUsMjY2LjUxOW05My43ODgsLTczOS4xMzVsNTguODM4LDBjMTg2Ljk3NiwwIDMzOC41NjYsLTE1MS41OSAzMzguNTY2LC0zMzguNTY2bC0xNDYuNzg2LDBjLTE4NC4yNDcsMCAtMzMzLjgxNywxNDcuMjc4IC0zMzguMTQ3LDMzMC40ODhjLTIuMDkyLC0wLjAxOCAtNC4xNDgsLTAuMTQ2IC02LjI1OSwtMC4xNDZjLTIuNzExLDAgLTUuMzY3LDAuMTQ2IC04LjA2LDAuMTgyYy00LjMxMiwtMTgzLjIyOCAtMTUzLjg4MiwtMzMwLjUyNCAtMzM4LjE2NSwtMzMwLjUyNGwtMTQ2Ljc2OCwwYzAsMTg2Ljk3NiAxNTEuNTksMzM4LjU2NiAzMzguNTY2LDMzOC41NjZsNjAuMDc1LDBjLTIzMi41MzMsNDAuODgxIC0zOTEuODkxLDIzMi4wMDYgLTM5MS44OTEsNDcyLjYxN2MwLDI3MS45MjIgMjAzLjQ5Niw0ODAuODIyIDQ4Ni4yNDQsNDgwLjgyMmMyODAuOTI4LDAgNDg0LjQyNCwtMjA4LjkgNDg0LjQyNCwtNDgwLjgyMmMwLC0yNDAuNjExIC0xNTkuMzQsLTQzMS43MzUgLTM5MC42MzYsLTQ3Mi42MTciIHN0eWxlPSJmaWxsOiNiY2ZkYWM7ZmlsbC1ydWxlOm5vbnplcm87Ii8+PC9nPjwvZz48L3N2Zz4=" alt="Botanic"></a> 2362 <p class="bn-footer__about">Producent szklarni ogrodowych z poliwÄglanu, wiat samochodowych i zadaszeÅ basenowych.</p> 2363 <div class="bn-footer__contact"> 2364 <a class="bn-footer__phone" href="tel:+48833070023"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z"/></svg>+48 833 070 023</a> 2365 <div class="bn-footer__hours">Pon.âPt. 8:00â17:00</div> 2366 </div> 2367 </div> 2368 <div class="bn-footer__col"> 2369 <h2 class="bn-footer__title">Kategorie</h2> 2370 <ul class="bn-footer__list"> 2371 <li><a href="/szklarnie">Szklarnie z poliwÄglanu</a></li> 2372 <li><a href="/wiaty-samochodowe">Wiaty samochodowe</a></li> 2373 <li><a href="/grzadki-i-klomby">GrzÄ dki i klomby</a></li> 2374 <li><a href="/pl/c/Zadaszenia-basenowe/50">Zadaszenia basenowe</a></li> 2375 </ul> 2376 </div> 2377 <div class="bn-footer__col"> 2378 <h2 class="bn-footer__title">Informacje</h2> 2379 <ul class="bn-footer__list"> 2380 <li><a href="/o-nas">O nas</a></li> 2381 <li><a href="/pl/i/Jak-wybrac-szklarnie.-Poradnik/33">Jak wybraÄ szklarniÄ. Poradnik</a></li> 2382 <li><a href="/pl/i/Malowanie-konstrukcji/23">Malowanie konstrukcji</a></li> 2383 <li><a href="/pl/i/Tasmy-i-profile/37">TaÅmy i profile</a></li> 2384 <li><a href="/formy-platnosci">Formy pÅatnoÅci</a></li> 2385 <li><a href="/pl/blog">Blog</a></li> 2386 <li><a href="/realizacje">Realizacje</a></li> 2387 <li><a href="/montaz-szklarni">Montaż szklarni</a></li> 2388 <li><a href="/pl/i/Nasi-Partnerzy/36">Nasi Partnerzy</a></li> 2389 <li><a href="/mapa-strony">Mapa strony</a></li> 2390 <li><a href="/contact">Kontakt</a></li> 2391 </ul> 2392 </div>
2393 <div class="bn-footer__col"> 2394 <h2 class="bn-footer__title">Pomoc</h2> 2395 <ul class="bn-footer__list"> 2396 <li><a href="/pl/i/Zwroty-i-reklamacje/7">Zwroty i reklamacje</a></li> 2397 <li><a href="/pl/i/Program-afiliacyjny-Botanic/21">Program afiliacyjny Botanic</a></li> 2398 <li><a href="/faq">FAQ</a></li> 2399 <li><a href="/regulamin">Regulamin sklepu</a></li> 2400 <li><a href="/polityka-prywatnosci">Polityka prywatnoÅci</a></li> 2401 <li><a href="/jak-kupic-na-raty">Jak kupiÄ na raty?</a></li> 2402 <li><a href="/pl/i/Zostan-Partnerem-B2B/35">ZostaÅ Partnerem B2B</a></li> 2403 </ul> 2404 </div> 2405 </div> 2406 <div class="bn-footer__bottom"> 2407 <p>© 2026 Botanic. Wszystkie prawa zastrzeżone.</p> 2408 </div> 2409 </div> 2410 <button class="bn-totop" type="button" aria-label="PrzewiÅ do góry"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"><polyline points="18 15 12 9 6 15"/></svg></button> 2411</footer></div><div 2412 class="module_type-integration" 2413 data-integration-module-name="000652b2-bce7-21f1-9202-7ddddc447704" 2414 data-integration-module-id="643"></div><div 2415 class="module_type-integration" 2416 data-integration-module-name="0007ada2-a3c4-21f1-ba02-eb91070d7cc6" 2417 data-integration-module-id="433"> 2418<div 2419 class="gc-category-enhancements" 2420 data-gc-category-enhancements 2421 data-desktop-sidebar="1" 2422 data-desktop-categories="1" 2423 data-quick-filters-desktop="0" 2424 data-quick-filters-mobile="1" 2425 data-price-slider="1" 2426 data-collapse-groups="1" 2427 data-open-price="1" 2428 data-filter-search="1" 2429 data-desktop-scale="1" 2430 data-mobile-view="1" 2431 hidden 2432 aria-hidden="true" 2433></div> 2434</div> 2435 2436 2437<div id="scripts" data-turbo-permanent> 2438 <link id="app-translations" href="//botanic.com.pl/userdata/public/skins/7f68b08a74977525acdb9dc1b97fc796_copy_27/cache/MzM6MTc6NS4yNi41Ng.pl_PL.json" type="text/script" crossorigin/> 2439 2440
2440<script type="module" src="//botanic.com.pl/application/assets/storefront/storefrontApp.CsApItsi.min.js"></script>
2440 2441
2441<script type="module" src="//botanic.com.pl/application/assets/storefront/phoenixComponentsLazyLoader.BefGyk50.min.js"></script>
2441 2442
2442<script type="module" data-src="/userdata/public/storefront/js/110_de32438e7aae7b5449a40005b77206762cbc6cab.js" data-script-module-id="110"></script>
2442 2443
2443<script type="module" data-src="/userdata/public/storefront/js/111_f0f1a013787c945a45e0ecfacf99636a585458ae.js" data-script-module-id="111"></script>
2443 2444
2444<script type="module" data-src="/userdata/public/storefront/js/138_659f19e1fdfa6b5f8555fdba8ef2463711d87b40.js" data-script-module-id="138"></script>
2444 2445
2445<script type="module" data-src="/userdata/public/storefront/js/140_9f966b868feff1ca0e2df559ea80685b1feecdc4.js" data-script-module-id="140"></script>
2445 2446
2446<script type="module" data-src="/userdata/public/storefront/js/142_06bd4d5d641b6cf3d40a7b06b9996a3299636276.js" data-script-module-id="142"></script>
2446 2447
2447<script type="module" data-src="/userdata/public/storefront/js/145_a993d258baaecb8bec21f6f735597253fd3f787f.js" data-script-module-id="145"></script>
2447 2448
2448<script type="module" data-src="/userdata/public/storefront/js/147_ceaa0b49157afe9dbd204918ec52e546e69ae206.js" data-script-module-id="147"></script>
2448 2449
2449<script type="module" data-src="/userdata/public/storefront/js/148_f5efd1b7c03b37d77da7e0bbbf21d20b7edca07a.js" data-script-module-id="148"></script>
2449 2450
2450<script type="module" data-src="/userdata/public/storefront/js/149_f33fe3e7b7ea6922dee5bd4d5bc41f0e7d6b858b.js" data-script-module-id="149"></script>
2450 2451
2451<script type="module" data-src="/userdata/public/storefront/js/153_6ed97f65ac00618a93368e98a6303fbba7bc23cf.js" data-script-module-id="153"></script>
2451 2452
2452<script type="module" data-src="/userdata/public/storefront/js/159_6656c35a41d4994dea8d8d9ee50aab1e6aaf9f49.js" data-script-module-id="159"></script>
2452 2453
2453<script type="module" data-src="/userdata/public/storefront/js/162_7d8a7c7247c6898b93582f0d3f452731fbc490c4.js" data-script-module-id="162"></script>
2453 2454
2454<script type="module" data-src="/userdata/public/storefront/js/165_93a52c4d3a681be5181efd4706799649c7fc0cca.js" data-script-module-id="165"></script>
2454 2455
2455<script type="module" data-src="/userdata/public/storefront/js/166_75c8eb5cd4938a8195ca520ec7caee6d85cd3f9c.js" data-script-module-id="166"></script>
2455 2456
2456<script type="module" data-src="/userdata/public/storefront/js/167_f93d5e42591fc42767694888e9d1ce36cab24811.js" data-script-module-id="167"></script>
2456 2457
2457<script type="module" data-src="/userdata/public/storefront/js/169_bf0268affa8a7036f495f45abaff4926dfeef6d1.js" data-script-module-id="169"></script>
2457 2458
2458<script type="module" data-src="/userdata/public/storefront/js/170_adadcf6676a57074c86f7630724d7f57262d9463.js" data-script-module-id="170"></script>
2458 2459
2459<script type="module" data-src="/userdata/public/storefront/js/172_d578172038e4c7c087a3b0e62c51c1fd6189b302.js" data-script-module-id="172"></script>
2459 2460
2460<script type="module" data-src="/userdata/public/storefront/js/173_438429fb3f926ea5b23f220b75e7a5e185c313a6.js" data-script-module-id="173"></script>
2460 2461
2461<script type="module" data-src="/userdata/public/storefront/js/174_8c4ea70871eabb43952f905becc42556dabb632a.js" data-script-module-id="174"></script>
2461 2462
2462<script type="module" data-src="/userdata/public/storefront/js/175_3060b5c80a693625b93e64698dad52debdb5ab68.js" data-script-module-id="175"></script>
2462 2463
2463<script type="module" data-src="/userdata/public/storefront/js/177_8cba5d441e19383c8a61a4f3e1477408d268bafd.js" data-script-module-id="177"></script>
2463 2464
2464<script type="module" data-src="/userdata/public/storefront/js/178_58ae91ccdf4d600d2cfa972505cbf4ce599fcc6b.js" data-script-module-id="178"></script>
2464 2465
2465<script type="module" data-src="/userdata/public/storefront/js/179_bd1426d4fb008588c8bfd1b4b394457e0ac843a9.js" data-script-module-id="179"></script>
2465 2466
2466<script type="module" data-src="/userdata/public/storefront/js/181_a12fcbba06a8038ad0b7dc28854468e86ff4176b.js" data-script-module-id="181"></script>
2466 2467
2467<script type="module" data-src="/userdata/public/storefront/js/184_15b67d540cba1421e1db2e8d484a6d1f388bb756.js" data-script-module-id="184"></script>
2467 2468
2468<script type="module" data-src="/userdata/public/storefront/js/433_e9c5bc8e15a4f9417a02445a223ced6087ab310e.js" data-script-module-id="433"></script>
2468 2469
2469<script type="module" data-src="/userdata/public/storefront/js/609_a0816bafbbed9eba2fcf11d56cbc0ad1def672c0.js" data-script-module-id="609"></script>
2469 2470
2470<script type="module" data-src="/userdata/public/storefront/js/610_82642d3f8216227932a0ae3dc8822fc88f863bdf.js" data-script-module-id="610"></script>
2470 2471
2471<script type="module" data-src="/userdata/public/storefront/js/611_666c5f8c648f92596402cbe7761256928e51d66c.js" data-script-module-id="611"></script>
2471 2472
2472<script type="module" data-src="/userdata/public/storefront/js/612_9ebd9cb2b59288a4630821f6d5c83679e00760c0.js" data-script-module-id="612"></script>
2472 2473
2473<script type="module" data-src="/userdata/public/storefront/js/613_ae05bb2da894a3b3de446b2b92b3523db9f17ad0.js" data-script-module-id="613"></script>
2473 2474
2474<script type="module" data-src="/userdata/public/storefront/js/620_1eb063986af385efce69b101c484213bd0cf4cb3.js" data-script-module-id="620"></script>
2474 2475
2475<script type="module" data-src="/userdata/public/storefront/js/625_5ced1a50a6aad4b26c3d79a88c66452f1ad62fee.js" data-script-module-id="625"></script>
2475 2476
2476<script type="module" data-src="/userdata/public/storefront/js/626_597c26153bd73bb55f9dfdc233523bf57415cc2b.js" data-script-module-id="626"></script>
2476 2477
2477<script type="module" data-src="/userdata/public/storefront/js/638_d320b9cd62cc265857655342bc3a82ba055d952a.js" data-script-module-id="638"></script>
2477 2478 </div> 2479</body> 2480</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.