PageSourceSearch

https://botanic.com.pl/contact

html botanic.com.pl collected 2026-10-07 23:22:49 UTC 162,506 bytes, 2,715 lines download raw bytes

1
2<!doctype html>
3<html lang="pl">
4<head>
5                <title>Kontakt - 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="Botanic" property="og:site_name">
17
18                        <link rel="canonical" href="https://botanic.com.pl/contact" />
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-31">
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-31" id="main" tabindex="-1">
325    <div class="grid" data-skin-grid-section-id="c596afe2-be29-4b61-92ce-425e75d99d9a"><div class="grid__row" data-skin-grid-row-id="85a12ab3-5ea2-47c0-bb53-c6bff134b580"><div class="grid__col grid__col_xs-12" data-skin-grid-column-id="ac47c555-8c3b-48d1-9b0b-d815e09489a1"><div 
326            class="module" 
327            data-module-name="000652b2-bce7-21f1-b302-058567baf4e5" 
328            data-module-id="626" 
329            data-module-instance="6495"><style>
330/* === STRONA KONTAKT 1:1 z makiety === */
331.bn-ct{display:none;background:#fff;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;}
332.bn-ct.is-on{display:block;}
333.bn-ct *{box-sizing:border-box;}
334.bn-ct__wrap{width:min(100% - 48px,1280px);margin:0 auto;}
335.bn-ct__hero{padding:34px 0 0;}
336.bn-ct__crumbs{font-size:13px;color:#8a938a;margin-bottom:18px;}
337.bn-ct__crumbs a{color:#276823;text-decoration:none;}
338.bn-ct__crumbs a:hover{text-decoration:underline;}
339.bn-ct__hrow{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;flex-wrap:wrap;padding-bottom:28px;border-bottom:1px solid #ececec;}
340.bn-ct__h1{margin:0;font-size:clamp(30px,4vw,46px);font-weight:800;color:#276823;letter-spacing:-.02em;font-family:"Open Sans","Helvetica Neue",sans-serif;line-height:1.05;}
341.bn-ct__lead{margin:0;max-width:440px;font-size:16px;line-height:1.6;color:#576057;}
342.bn-ct__quick{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding:34px 0;}
343.bn-ct__qcard{display:flex;flex-direction:column;align-items:flex-start;padding:26px;background:#F7F6F2;border:1px solid #ececec;border-radius:16px;text-decoration:none;transition:transform .18s,box-shadow .18s,border-color .18s;}
344.bn-ct__qcard:hover{transform:translateY(-3px);box-shadow:0 18px 36px -22px rgba(27,64,40,.35);border-color:#d5e3d0;}
345.bn-ct__qicon{width:52px;height:52px;border-radius:12px;background:#F0F7ED;color:#276823;display:flex;align-items:center;justify-content:center;margin-bottom:14px;}
346.bn-ct__qlabel{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#8a938a;margin-bottom:4px;}
347.bn-ct__qvalue{font-size:18px;font-weight:800;color:#1a1a1a;margin-bottom:6px;}
348.bn-ct__qsub{font-size:13px;color:#8a938a;line-height:1.5;}
349.bn-ct__layout{display:grid;grid-template-columns:.82fr 1.18fr;gap:32px;padding:14px 0 76px;align-items:start;}
350.bn-ct__info{display:flex;flex-direction:column;gap:20px;}
351.bn-ct__icard{padding:26px;background:#fff;border:1px solid #e5e5e5;border-radius:16px;}
352.bn-ct__ihead{display:flex;align-items:center;gap:12px;margin-bottom:14px;}
353.bn-ct__iicon{width:42px;height:42px;flex:none;border-radius:10px;background:#F0F7ED;color:#276823;display:flex;align-items:center;justify-content:center;}
354.bn-ct__ititle{margin:0;font-size:17px;font-weight:700;color:#1a1a1a;}
355.bn-ct__addr{font-style:normal;font-size:15px;line-height:1.7;color:#576057;}
356.bn-ct__addr strong{display:block;color:#1a1a1a;margin-bottom:2px;}
357.bn-ct__legal{display:flex;gap:36px;margin-top:16px;padding-top:16px;border-top:1px solid #ececec;}
358.bn-ct__legal dt{font-size:11px;color:#8a938a;text-transform:uppercase;letter-spacing:.05em;margin:0;}
359.bn-ct__legal dd{margin:3px 0 0;font-size:15px;font-weight:700;color:#1a1a1a;}
360.bn-ct__formwrap{padding:32px;background:#F7F6F2;border:1px solid #ececec;border-radius:20px;}
361.bn-ct__kicker{display:inline-block;padding:5px 14px;background:#F0F7ED;color:#276823;font-size:12px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;border-radius:999px;margin-bottom:12px;}
362.bn-ct__ftitle{margin:0 0 8px;font-size:26px;font-weight:800;color:#276823;font-family:"Open Sans","Helvetica Neue",sans-serif;}
363.bn-ct__flead{margin:0 0 24px;font-size:15px;line-height:1.6;color:#576057;}
364.bn-ct__row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;}
365.bn-ct__field{display:flex;flex-direction:column;gap:6px;}
366.bn-ct__flabel{font-size:13px;font-weight:600;color:#1a1a1a;}
367.bn-ct__req{color:#c0392b;}
368.bn-ct__input,.bn-ct__select,.bn-ct__textarea{width:100%;padding:12px 14px;border:1.5px solid #d6ddd3;border-radius:10px;font-size:15px;font-family:inherit;background:#fff;color:#1a1a1a;transition:border-color .15s,box-shadow .15s;}
369.bn-ct__input:focus,.bn-ct__select:focus,.bn-ct__textarea:focus{outline:none;border-color:#276823;box-shadow:0 0 0 3px rgba(39,104,35,.1);}
370.bn-ct__textarea{resize:vertical;min-height:120px;}
371.bn-ct__consent{display:flex;gap:12px;align-items:flex-start;margin:4px 0 22px;font-size:13px;line-height:1.55;color:#576057;}
372.bn-ct__consent input{margin-top:3px;flex:none;width:18px;height:18px;accent-color:#276823;}
373.bn-ct__consent a{color:#276823;text-decoration:underline;}
374.bn-ct__submit{display:inline-flex;align-items:center;gap:10px;padding:15px 30px;background:#276823;color:#fff;border:0;border-radius:12px;font-size:16px;font-weight:700;cursor:pointer;font-family:inherit;transition:background .15s,transform .15s;}
375.bn-ct__submit:hover{background:#1b4028;transform:translateY(-1px);}
376.bn-ct__submit svg{width:18px;height:18px;}
377.bn-ct__ok{display:none;text-align:center;padding:20px;}
378.bn-ct__ok svg{width:56px;height:56px;color:#276823;margin-bottom:14px;}
379.bn-ct__ok h3{margin:0 0 8px;font-size:22px;color:#276823;font-weight:800;}
380.bn-ct__ok p{margin:0;color:#576057;font-size:15px;}
381.bn-ct.is-sent .bn-ct__form{display:none;}
382.bn-ct.is-sent .bn-ct__ok{display:block;}
383@media(max-width:860px){.bn-ct__quick{grid-template-columns:1fr;}.bn-ct__layout{grid-template-columns:1fr;}.bn-ct__row{grid-template-columns:1fr;}}
384
385
386/* full-bleed: sekcja w gridzie SVE ma być pełnej szerokości jak na boju (monolit wstawiał ją jako dziecko main) */
387main > .grid:has(.bn-ct){margin-left:0!important;margin-right:0!important;max-width:none!important;width:auto!important;margin-top:0!important;margin-bottom:0!important;}
388main > .grid:has(.bn-ct) .grid__col{padding-left:0!important;padding-right:0!important;}
389main > .grid:has(.bn-ct) .grid__row{margin-left:0!important;margin-right:0!important;}
390/* /contact: natywne sekcje chowane OFF-SCREEN (jak w monolicie; display:none zabiłoby <contact-form>) */
391main >
391 .grid:not(:has(.bn-ct)){position:absolute!important;left:-99999px!important;top:0!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important;}
392/* Only the native form needs an off-screen mount for its connector. */
393main > .grid:not(:has(.bn-ct)):not(:has(contact-form)){display:none!important;position:static!important;left:auto!important;}
394</style>
395
396<section class="bn-ct is-on" aria-label="Kontakt">
397  <div class="bn-ct__hero"><div class="bn-ct__wrap">
398    <nav class="bn-ct__crumbs" aria-label="Ścieżka nawigacji"><a href="/">Strona główna</a> / <span>Kontakt</span></nav>
399    <div class="bn-ct__hrow">
400      <h1 class="bn-ct__h1">Kontakt</h1>
401      <p class="bn-ct__lead">Pomożemy dobrać szklarnię, wiatę czy zadaszenie do Twoich potrzeb. Odpowiadamy w ciągu jednego dnia roboczego.</p>
402    </div>
403  </div></div>
404
405  <div class="bn-ct__wrap">
406    <div class="bn-ct__quick">
407      <a href="tel:+48833070023" class="bn-ct__qcard">
408        <span class="bn-ct__qicon"><svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" 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>
409        <span class="bn-ct__qlabel">Telefon</span>
410        <span class="bn-ct__qvalue">+48 833 070 023</span>
411        <span class="bn-ct__qsub">Pon.–Pt. 8:00–17:00</span>
412      </a>
413      <a href="mailto:[email protected]" class="bn-ct__qcard">
414        <span class="bn-ct__qicon"><svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"/><polyline points="22,6 12,13 2,6"/></svg></span>
415        <span class="bn-ct__qlabel">E-mail</span>
416        <span class="bn-ct__qvalue">[email protected]</span>
417        <span class="bn-ct__qsub">Odpowiadamy w ciągu<br>1 dnia roboczego</span>
418      </a>
419      <a href="#bn-ct-form" class="bn-ct__qcard">
420        <span class="bn-ct__qicon"><svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg></span>
421        <span class="bn-ct__qlabel">Formularz</span>
422        <span class="bn-ct__qvalue">Napisz wiadomość</span>
423        <span class="bn-ct__qsub">Wybierz kategorię<br>i opisz swoją sprawę</span>
424      </a>
425    </div>
426
427    <div class="bn-ct__layout">
428      <aside class="bn-ct__info">
429        <article class="bn-ct__icard">
430          <div class="bn-ct__ihead">
431            <span class="bn-ct__iicon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z"/><circle cx="12" cy="10" r="3"/></svg></span>
432            <h2 class="bn-ct__ititle">Biuro sprzedaży</h2>
433          </div>
434          <address class="bn-ct__addr"><strong>Botanic Spółka Cywilna</strong>ul. Podlaska 17 (pokój 5, piętro 1)<br>15-552 Białystok</address>
435        </article>
436        <article class="bn-ct__icard">
437          <div class="bn-ct__ihead">
438            <span class="bn-ct__iicon"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 21h18"/><path d="M5 21V7l8-4v18"/><path d="M19 21V11l-6-4"/></svg></span>
439            <h2 class="bn-ct__ititle">Dane spółki</h2>
440          </div>
441          <address class="bn-ct__addr"><strong>Botanic Spółka Cywilna</strong>ul. Usługowa 33<br>15-521 Zaścianki</address>
442          <dl class="bn-ct__legal"><div><dt>NIP</dt><dd>966 218 55 46</dd></div><div><dt>REGON</dt><dd>526 871 549</dd></div></dl>
443        </article>
444      </aside>
445
446      <section class="bn-ct__formwrap" id="bn-ct-form">
447        <span class="bn-ct__kicker">Formularz kontaktowy</span>
448        <h2 class="bn-ct__ftitle">Napisz do nas</h2>
449        <p class="bn-ct__flead">Wybierz kategorię, opisz swoją sprawę — odezwiemy się tego samego dnia roboczego.</p>
450        <form class="bn-ct__form" novalidate>
451          <div class="bn-ct__row">
452            <label class="bn-ct__field"><span class="bn-ct__flabel">Imię i nazwisko <span class="bn-ct__req">*</span></span><input type="text" class="bn-ct__input" data-f="name" required autocomplete="name"></label>
453            <label class="bn-ct__field"><span class="bn-ct__flabel">Adres e-mail <span class="bn-ct__req">*</span></span><input type="email" class="bn-ct__input" data-f="email" required autocomplete="email"></label>
454          </div>
455          <div class="bn-ct__row">
456            <label class="bn-ct__field"><span class="bn-ct__flabel">Telefon <span class="bn-ct__req">*</span></span><input type="tel" class="bn-ct__input" data-f="phone" required autocomplete="tel"></label>
457            <label class="bn-ct__field"><span class="bn-ct__flabel">Kategoria <span class="bn-ct__req">*</span></span><select class="bn-ct__select" data-f="category" required><option value="" disabled selected>— Wybierz —</option><option>Pytanie o produkt</option><option>Zapytanie ofertowe</option><option>Reklamacja / zwrot</option><option>Dostawa i montaż</option><option>Współpraca / B2B</option><option>Inne</option></select></label>
458          </div>
459          <label class="bn-ct__field" style="margin-bottom:16px;"><span class="bn-ct__flabel">Treść wiadomości <span class="bn-ct__req">*</span></span><textarea class="bn-ct__textarea" data-f="message" required placeholder="Opisz krótko czego dotyczy zapytanie…"></textarea></label>
460          <label class="bn-ct__consent"><input type="checkbox" data-f="consent" required><span>Akceptuję <a href="/pl/i/Polityka-prywatnosci/6">politykę prywatności</a>. Administratorem danych jest BOTANIC Spółka Cywilna, ul. Usługowa 33, 15-521 Zaścianki. Dane przetwarzane w celu odpowiedzi na zapytanie.</span></label>
461          <button type="submit" class="bn-ct__submit">Wyślij wiadomość <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><line x1="5" y1="12" x2="19" y2="12"/><polyline points="12 5 19 12 12 19"/></svg></button>
462        </form>
463        <div class="bn-ct__ok">
464          <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"/><polyline points="22 4 12 14.01 9 11.01"/></svg>
465          <h3>Dziękujemy!</h3>
466          <p>Twoja wiadomość została wysłana. Odezwiemy się tego samego dnia roboczego.</p>
467        </div>
468      </section>
469    </div>
470  </div>
471</section>
472<script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Strona g\u0142\u00f3wna","item":"https:\/\/botanic.com.pl"},{"@type":"ListItem","position":2,"name":"Kontakt"}]}</script>
472
473</div></div></div></div>
474    <div class="grid mb-xs-2 mt-xs-2 mb-sm-2  mb-lg-2  mb-xxl-2" data-skin-grid-section-id="f59e1f3b-1ee8-4d3a-a7f3-667a7f5e07ad">
475    <div class="grid__row" data-skin-grid-row-id="d1a239dd-1059-47eb-b8fe-07f34c2b2550">
476        <div class="grid__col grid__col_xs-12 grid__col_sm-grow  grid__col_lg-grow  grid__col_xxl-grow" data-skin-grid-column-id="dcabc52c-5235-4f1b-86e7-26618e79c6dd"></div>
477    </div>
478</div>
479<div class="grid" data-skin-grid-section-id="d8b481b1-7fcf-4ec5-a069-597eef28a1b0">
480    <div class="grid__row grid__row_xs-hleft grid__row_sm-hleft grid__row_lg-hleft grid__row_xxl-hleft grid__row_xs-vtop grid__row_sm-vtop grid__row_lg-vtop grid__row_xxl-vtop mb-xs-1 mb-sm-4 mb-lg-4 mb-xxl-4" data-skin-grid-row-id="31aef661-b877-44a6-a672-fb20b82802a7">
481        <div class="grid__col grid__col_xs-12 grid__col_sm-grow grid__col_lg-grow grid__col_xxl-grow" data-skin-grid-column-id="4302145b-6c12-4c39-b0d3-d752e20f1b43">
482            
483        </div>
484    </div>
485    <div class="grid__row" data-skin-grid-row-id="aaefad19-55ab-42c1-ae96-9ad81113c20e">
486        <div class="grid__col grid__col_xs-grow" data-skin-grid-column-id="8b5366b8-e6e8-495c-92c3-8244968f4e92">
487            
488        </div>
489    </div>
490    <div class="grid__row" data-skin-grid-row-id="406cf617-962c-4c1f-9621-fa23b3b5a3b9">
491        <div class="grid__col hidden-sm-only hidden-md-only hidden-lg-only hidden-xl-only hidden-xxxl-only hidden-xxl-only pt-xs-2 pb-xs-2 pt-sm-2 pb-sm-2 pt-lg-2 pb-lg-2 pt-xxl-2 pb-xxl-2 grid__col_xs-grow grid__col_sm-grow grid__col_lg-grow grid__col_xxl-grow" data-skin-grid-column-id="d1d83b02-31fb-464b-b8eb-1de4bdab5968">
492            
493        </div>
494    </div>
495    <div class="grid__row grid__row_xs-hleft grid__row_sm-hleft grid__row_lg-hleft grid__row_xxl-hleft grid__row_xs-vcenter grid__row_sm-vcenter grid__row_lg-vcenter grid__row_xxl-vcenter mt-sm-4" data-skin-grid-row-id="3bf7be73-d410-4fd5-91d2-c36fe2baaf0e">
496        <div class="grid__col hidden-xs-only grid__col_xs-4 grid__col_sm-4 grid__col_lg-4 grid__col_xxl-4 pl-xs-4 pl-sm-4 pl-lg-4 pl-xxl-4" data-skin-grid-column-id="76632fd6-7d9d-4b73-8e8d-2e89119116ec">
497            
498        </div>
499        <div class="grid__col grid__col_xs-grow" data-skin-grid-column-id="9ebad648-060e-481f-a33d-247dc1f9e88f">
500            
501        </div>
502    </div>
503    <div class="grid__row grid__row_xs-hleft grid__row_sm-hleft grid__row_lg-hleft grid__row_xxl-hleft grid__row_xs-vbaseline grid__row_sm-vbaseline grid__row_lg-vbaseline grid__row_xxl-vbaseline mt-xs-4 mt-sm-4 mt-lg-4 mt-xxl-4" data-skin-grid-row-id="a131458e-7efe-412f-b8b1-e2a6feacbfc2">
504        <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="d696c5e5-e00e-49f1-97cb-56496c8f7b24">
505            <div 
506            class="module" 
507            data-module-name="contact_form" 
508            data-module-id="63" 
509            data-module-instance="6548">
510                    
511    
512    
513    <div class="contact-form">
514            
515    <h2
516        class="
517            header
518            header_h2
519             header_underline             contact-form__header
520        "
521    >
522                    <span
523                class="
524                     header_highlight                     
525                "
526            >
527                Formularz kontaktowy
528            </span>
529
530                        </h2>
531
532
533        
534        <flash-messenger class="flash-messenger control" name="contact-form-6548"></flash-messenger>
535
536        <div class="form__additional-info" aria-hidden="true">
537            <i>
538                Obowiązkowe pola oznaczone są symbolem -
539                <span class="form__additional-info_secondary">*</span>
540            </i>
541        </div>
542
543        <contact-form module-instance-id="6548">
544            <div slot="form">
545                                                
546        
547    
548    <control-connector
549        class="control "
550                    
551    >
552        <h-control>
553            <h-control-label
554                class="
555                    control__label
556                    label
557                                                        "
558            >
559                <label for="contact-name">
560                    
561                    Imię i nazwisko
562
563                    
564                                    </label>
565            </h-control-label>
566
567            <h-control-content class="control">
568                <h-control-element class="control__element">
569                    <h-input
570                        controlId="contact-name"
571                        controlName="name"
572                        placeholder=""
573                                                                                                                        class="  contact-form__input"
574                                            >
575                        <h-input-control
576                                                                                                                value=""
577                                                                                                                                        ></h-input-control>
578
579                                            </h-input>
580                </h-control-element>
581
582                <control-errors></control-errors>
583            </h-control-content>
584        </h-control>
585    </control-connector>
586
587                
588                            
589        
590    
591    <control-connector
592        class="control "
593                             required                      email             
594    >
595        <h-control>
596            <h-control-label
597                class="
598                    control__label
599                    label
600                                         label_required                 "
601            >
602                <label for="contact-email">
603                                            <span class="label__asterisk" aria-hidden="true">*</span>
604                    
605                    Adres e-mail
606
607                    
608                                    </label>
609            </h-control-label>
610
611            <h-control-content class="control">
612                <h-control-element class="control__element">
613                    <h-input
614                        controlId="contact-email"
615                        controlName="email"
616                        placeholder=""
617                                                                                                 required                         class="  contact-form__input"
618                         type="email"                     >
619                        <h-input-control
620                                                                                                                value=""
621                                                         required                                                                                 ></h-input-control>
622
623                                            </h-input>
624                </h-control-element>
625
626                <control-errors></control-errors>
627            </h-control-content>
628        </h-control>
629    </control-connector>
630
631
632                                                
633        
634    
635    <control-connector
636        class="control "
637                    
638    >
639        <h-control>
640            <h-control-label
641                class="
642                    control__label
643                    label
644                                                        "
645            >
646                <label for="contact-subject">
647                    
648                    Temat
649
650                    
651                                    </label>
652            </h-control-label>
653
654            <h-control-content class="control">
655                <h-control-element class="control__element">
656                    <h-input
657                        controlId="contact-subject"
658                        controlName="subject"
659                        placeholder=""
660                                                                                                                        class="  contact-form__input"
661                                            >
662                        <h-input-control
663                                                                                                                value=""
664                                                                                                                                        ></h-input-control>
665
666                                            </h-input>
667                </h-control-element>
668
669                <control-errors></control-errors>
670            </h-control-content>
671        </h-control>
672    </control-connector>
673
674                
675                        
676    
677    <control-connector class="control"                      required             >
678        <h-control>
679            <h-control-label
680                class="
681                    control__label
682                    label
683                                         label_required                 "
684            >
685                <label for="contact-content">
686                                            <span class="label__asterisk" aria-hidden="true">*</span>
687                    
688                    Wiadomość
689                </label>
690            </h-control-label>
691
692            <h-control-content class="control">
693                <h-control-element class="control__element">
694                    <h-textarea
695                        controlId="contact-content"
696                        controlName="content"
697                        class="  contact-form__input"
698                                             required             
699                    >
700                            <h-textarea-control placeholder="Wpisz tutaj"></h-textarea-control>
701                    </h-textarea>
702                </h-control-element>
703
704                <control-errors></control-errors>
705            </h-control-content>
706        </h-control>
707    </control-connector>
708
709
710                                                                                            
711    <control-connector
712        class="control "
713            >
714        <h-control>
715            <h-control-content class="control">
716                <h-control-element class="control__element">
717                            
718    <div class="checkbox  ">
719            <div class="checkbox__control">
720        <input
721            type="checkbox"
722            id="5"
723            name="additional_5"
724
725                            value="1"
726            
727            autocomplete="off"
728            class="checkbox__input "
729
730                                                
731            aria-required="true"
732                        aria-invalid="false"
733
734            
735            />
736
737        <label
738            class="checkbox__label"
739            for="5"></label>
740    </div>
741
742            <div class="checkbox__content">
743                    <label
744                class="label  label_required "
745                for="5"
746            >
747                                    <span class="label__asterisk" aria-hidden="true">*</span>
748                
749                Administratorem Pani/Pana danych osobowych jest BOTANIC Polska z siedzibą w Zaściankach, 15-521 Zaścianki, ul. Usługowa 33. Pani/Pana dane osobowe przetwarzane będą w celu odpowiedzi na zadane przez Panią/Pana pytania. Szczegółowe zasady przetwarzania Pani/Pana danych osobowych znajdują się pod linkiem <a href="https://botanic.com.pl/polityka-prywatnosci/">https://botanic.com.pl/polityka-prywatnosci/</a>
750            </label>
751        
752            </div>
753
754    </div>
755
756                </h-control-element>
757
758                <control-errors></control-errors>
759            </h-control-content>
760        </h-control>
761    </control-connector>
762
763                                                                                                            
764        
765    
766    <control-connector
767        class="control "
768                                                            
769    >
770        <h-control>
771            <h-control-label
772                class="
773                    control__label
774                    label
775                                                        "
776            >
777                <label for="4">
778                    
779                    Telefon
780
781                    
782                                    </label>
783            </h-control-label>
784
785            <h-control-content class="control">
786                <h-control-element class="control__element">
787                    <h-input
788                        controlId="4"
789                        controlName="additional_4"
790                        placeholder=""
791                                                                                                                        class="  "
792                         type="text"                     >
793                        <h-input-control
794                                                                                                                value=""
795                                                                                                                                        ></h-input-control>
796
797                                            </h-input>
798                </h-control-element>
799
800                <control-errors></control-errors>
801            </h-control-content>
802        </h-control>
803    </control-connector>
804
805                                                            
806                                    <input type="text" name="email_verify" aria-hidden="true" tabindex="-1" autocomplete="off" />
807                
808                <div class="grid__row grid__row_xs-hright mb-xs-4">
809                    <div class="grid__col grid__col_xs-12">
810                        <button type="submit" class="btn btn_primary contact-form__button">Wyślij</button>
811                    </div>
812                </div>
813            </div>
814        </contact-form>
815    </div>
816
817</div>
818        </div>
819    </div>
820</div></main>
821
822    <footer id="main-footer" class="context-31">
823        <div class="grid mt-md-6 mt-xl-8 grid_full mt-xs-4 mt-sm-6 mt-lg-8 mt-xxl-8 grid_xs-hcenter" data-skin-grid-section-id="c5d02a15-1ee7-4a3a-93af-3f8b534dc264"><div class="grid__row grid__row_container-width" data-skin-grid-row-id="634d5a34-7731-4182-bf70-7494f14ca534"><div class="grid__col grid__col_xs-12 grid__col_sm-12 grid__col_lg-6 grid__col_xxl-6" data-skin-grid-column-id="d9f43c16-fadb-481b-905b-fbe7dbdd3a9f"><div class="grid__row" data-skin-grid-row-id="ea6826cc-0374-435c-8c8d-3ef2044a50d0"><div class="grid__col grid__col_xs-grow" data-skin-grid-column-id="369a1683-12fb-4d77-998c-b3a471b62ee1"><div class="grid__row" data-skin-grid-row-id="a0a00042-2ec8-4152-a33d-0c15347fd70e"><div class="grid__col grid__col_xs-grow" data-skin-grid-column-id="e39e211b-ea79-4eba-bf31-1474021ddfc4"><div class="grid__row grid__row_xs-hleft grid__row_sm-hleft grid__row_lg-hleft grid__row_xxl-hleft grid__row_xs-vtop grid__row_sm-vtop grid__row_lg-vtop grid__row_xxl-vtop gc__footer__text__social__container" data-skin-grid-row-id="f6d04178-0090-4446-8175-9f1ab013bef3"><div class="grid__col grid__col_xs-12 grid__col_sm-grow grid__col_lg-grow grid__col_xxl-grow pb-xs-3 pb-sm-3 pb-lg-3 pb-xxl-3" data-skin-grid-column-id="b537869f-9f79-43bc-b943-c9b1c9a09d8d"></div><div class="grid__col grid__col_xs-12" data-skin-grid-column-id="4b4ff6e2-0993-49b1-a6d6-6761daec5f2a"></div></div></div></div></div></div></div><div class="grid__col gc__footer__trust__badges grid__col_xs-12 grid__col_sm-12 grid__col_lg-grow grid__col_xxl-grow" data-skin-grid-column-id="7054d18f-598b-4e96-8e8c-bb1838139908"></div></div>
824    <div class="grid__row grid__row_xs-hleft grid__row_sm-hleft grid__row_lg-hleft grid__row_xxl-hleft grid__row_xs-vtop grid__row_sm-vtop grid__row_lg-vtop grid__row_xxl-vtop grid__row_container-width" data-skin-grid-row-id="5b1f0eac-280e-4054-b339-82b8cfc7d166">
825        <div class="grid__col gc__footer__enchanced grid__col_xs-12 grid__col_sm-6 grid__col_lg-3 grid__col_xxl-3" data-skin-grid-column-id="2bf1d325-8df1-4276-a304-90e1b2f76351"><div class="grid__row" data-skin-grid-row-id="6b5e4525-20d0-4ccf-93bf-75acfdc9c22a"><div class="grid__col grid__col_xs-grow grid__col_sm-grow grid__col_lg-grow grid__col_xxl-grow gc__contact__info__footer" data-skin-grid-column-id="2ea89ef7-ac0a-4427-940e-05b744853f8c"></div></div><div class="grid__row" data-skin-grid-row-id="213db88d-eabf-4bd3-a1ae-5ca6eacb5887"><div class="grid__col grid__col_xs-grow" data-skin-grid-column-id="1484f2b3-94dd-4cc4-a2a2-335b696a02b8"><div 
826            class="module" 
827            data-module-name="000652b2-bce7-21f1-9a02-995bbbb9e79c" 
828            data-module-id="610" 
829            data-module-instance="6468">
830<footer class="bn-footer">
831  <div class="bn-fwrap">
832    <div class="bn-footer__main">
833      <div class="bn-footer__col bn-footer__brand">
834        <a class="bn-footer__logo" href="/" aria-label="Botanic"><img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj48c3ZnIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCA2MjIxIDEzNTIiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM6c2VyaWY9Imh0dHA6Ly93d3cuc2VyaWYuY29tLyIgc3R5bGU9ImZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoyOyI+PHJlY3QgaWQ9IlBhZ2UtMiIgc2VyaWY6aWQ9IlBhZ2UgMiIgeD0iMCIgeT0iMCIgd2lkdGg9IjYyMjEiIGhlaWdodD0iMTM1MS4zMzMiIHN0eWxlPSJmaWxsOm5vbmU7Ii8+PGNsaXBQYXRoIGlkPSJfY2xpcDEiPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSI2MjIxIiBoZWlnaHQ9IjEzNTEuMzMzIi8+PC9jbGlwUGF0aD48ZyBjbGlwLXBhdGg9InVybCgjX2NsaXAxKSI+PGcgaWQ9IkxheWVyLTEiIHNlcmlmOmlkPSJMYXllciAxIj48L2c+PGc+PHBhdGggZD0iTTcwNS45NSw4NzIuMjg5YzAsLTE2Mi4wNjkgLTExMS42NTQsLTI3MS45MjIgLTI0MS4zMjEsLTI3MS45MjJjLTEzMy4yNjksMCAtMjQzLjEyMiwxMDguMDUyIC0yNDMuMTIyLDI3MS45MjJjMCwxNjIuMDg3IDEwOS44NTMsMjcxLjk0MSAyNDMuMTIyLDI3MS45NDFjMTI5LjY2NiwwIDI0MS4zMjEsLTEwOS44NTMgMjQxLjMyMSwtMjcxLjk0MW0tNDg4LjA0NSw0NTcuNDI1bC0yMTcuOTA1LDBsMCwtMTI3OC42MTRsMjMyLjMxNSwtMGwwLDQ3My42MTdjNTAuNDMzLC03Ny40MzIgMTYyLjA2OSwtMTM1LjA1MiAyODAuOTQ2LC0xMzUuMDUyYzIzNC4wOTgsMCA0MjYuODA1LDE5Ni4yOTEgNDI2LjgwNSw0ODAuODIyYzAsMjg0LjU0OSAtMTkyLjcwNyw0ODAuODQgLTQzMC40MjYsNDgwLjg0Yy0xMjIuNDYxLDAgLTI0MS4zMDIsLTYxLjI0IC0yOTEuNzM1LC0xNDUuODc3bDAsMTI0LjI2M1oiIHN0eWxlPSJmaWxsOiNmMGY3ZWQ7ZmlsbC1ydWxlOm5vbnplcm87Ii8+PHBhdGggZD0iTTI3NjAuNTk4LDEzMTUuMzA2Yy0zNy44MDYsMjEuNjE0IC05NS40NDQsMzYuMDIzIC0xNzEuMDc1LDM2LjAyM2MtMTg5LjA4NywwIC0zMDYuMTQ1LC0xMTEuNjU0IC0zMDYuMTQ1LC0zMDkuNzQ3bDAsLTQ0My4wMzRsLTEyOS42NjYsMGwwLC0xODcuMjg1bDEzNi44NzEsMGwwLC0yMDguOWwyMjYuOTExLC01OS40MmwwLDI2OC4zMmwyMjEuNTA4LDBsMCwxODcuMjg1bC0yMjEuNTA4LDBsMCw0MTAuNjEzYzAsOTMuNjQzIDQ4LjYzMiwxMzMuMjY5IDEzNS4wNywxMzMuMjY5YzI1LjE5OCwwIDcwLjIyOCwtNy4yMDUgMTA4LjAzNCwtMjguODE5bDAsMjAxLjY5NVoiIHN0eWxlPSJmaWxsOiNmMGY3ZWQ7ZmlsbC1ydWxlOm5vbnplcm87Ii8+PHBhdGggZD0iTTM0NDMuMDc1LDk1Ni45MzFsMCwtMzQuMjA0bC0xODUuNDg0LDIzLjM5N2MtMTAwLjg0NywxMi42MDggLTE1OC40ODUsNTQuMDE3IC0xNTguNDg1LDEyMC42NmMwLDYzLjAyMyA1Mi4yMzQsMTAyLjY0OSAxMjcuODY1LDEwMi42NDljMTE4Ljg1OSwwIDIxNi4xMDQsLTk3LjI0NSAyMTYuMTA0LC0yMTIuNTAybS0xNzYuNDc4LC01NjcuMjc4YzIzNC4xMTYsMCA0MDMuMzksMTI3Ljg2NSA0MDMuMzksMzYwLjE4bDAsNTc5Ljg4NmwtMjE3LjkwNSwwbDAsLTEyNy44NjVjLTU3LjYzOCw5My42NDMgLTE1Ni42NjYsMTQ5LjQ3OSAtMjc3LjMyNiwxNDkuNDc5Yy0xNzIuODk0LDAgLTI5OC45NTgsLTEwOS44NTMgLTI5O
834C45NTgsLTI2MS4xMzRjMCwtMTYwLjI4NiAxMTguODc3LC0yNTIuMTI4IDMzMy4xNjIsLTI4NC41MzFsMjMyLjMxNSwtMzQuMjIybDAsLTI1LjIxNmMwLC05NS40NDQgLTc1LjYzMSwtMTUxLjI4IC0xOTIuNjg5LC0xNTEuMjhjLTEyMi40NjEsMCAtMjM0LjExNiw1Mi4yMzQgLTMwMi41NDIsMTAyLjY2N2wwLC0yMTkuNzI1Yzc3LjQzMiwtNTAuNDE1IDE5Ni4yOTEsLTg4LjIzOSAzMjAuNTU0LC04OC4yMzkiIHN0eWxlPSJmaWxsOiNmMGY3ZWQ7ZmlsbC1ydWxlOm5vbnplcm87Ii8+PHBhdGggZD0iTTQ0MzUuMjg2LDM4OS42NmMyMTIuNTIsMCAzNTYuNTc3LDE0Mi4yNzQgMzU2LjU3NywzODEuNzc2bDAsNTU4LjI3MmwtMjM0LjExNiwwbDAsLTUyOS40NTRjMCwtMTMzLjI1IC03OS4yMzMsLTIwMS42OTUgLTE4My42ODMsLTIwMS42OTVjLTE1NC44ODMsMCAtMjEyLjUwMiwxMzguNjcyIC0yMTIuNTAyLDI1Ny41MzFsMCw0NzMuNjE3bC0yMzQuMTE2LDBsMCwtOTE4LjQ1MmwyMjUuMTEsMGwwLDEyNC4yODFjNTIuMjE2LC04OC4yNTcgMTQ0LjA3NiwtMTQ1Ljg3NyAyODIuNzI5LC0xNDUuODc3IiBzdHlsZT0iZmlsbDojZjBmN2VkO2ZpbGwtcnVsZTpub256ZXJvOyIvPjxwYXRoIGQ9Ik01MDQ3LjUzMiw0MTEuMjZsMjM0LjExNiwwbDAsOTE4LjQ1MmwtMjM0LjExNiwwbDAsLTkxOC40NTJabTI1Mi4xMDksLTI2Ni41MTljMCw3NS42MzEgLTU5LjQyLDEzMy4yNjkgLTEzMy4yNSwxMzMuMjY5Yy03NS42MzEsMCAtMTM2Ljg3MSwtNTcuNjM4IC0xMzYuODcxLC0xMzMuMjY5YzAsLTc1LjYzMSA2MS4yNCwtMTMzLjI2OSAxMzYuODcxLC0xMzMuMjY5YzczLjgzLDAgMTMzLjI1LDU3LjYzOCAxMzMuMjUsMTMzLjI2OSIgc3R5bGU9ImZpbGw6I2YwZjdlZDtmaWxsLXJ1bGU6bm9uemVybzsiLz48cGF0aCBkPSJNNjIxNi4yMzksNjY2Ljk5N2MtNjEuMjIyLC00My4yMjggLTE0OS40NzksLTY2LjY0MyAtMjIxLjUwOCwtNjYuNjQzYy0xNjMuODg4LDAgLTI3NS41MjUsMTExLjY1NCAtMjc1LjUyNSwyNzEuOTQxYzAsMTQ5LjQ3OSAxMDQuNDUsMjY4LjMzOCAyNzUuNTI1LDI2OC4zMzhjNzkuMjUyLDAgMTYzLjg3LC0yMS42MTQgMjIzLjMwOSwtNjguNDQ1bDAsMjIxLjUwOGMtNjYuNjI1LDQxLjQyNyAtMTY3LjQ3Myw1Ny42MzggLTI1Mi4xMjgsNTcuNjM4Yy0yNzkuMTQ1LDAgLTQ4NC40NDIsLTIwNy4xMTcgLTQ4NC40NDIsLTQ3OS4wMzljMCwtMjczLjc0MiAyMDEuNzEzLC00ODIuNjQxIDQ4Ni4yNDQsLTQ4Mi42NDFjODQuNjM3LDAgMTgwLjA4MSwxOS44MTMgMjQ4LjUyNSw1Ny42MzhsMCwyMTkuNzA3WiIgc3R5bGU9ImZpbGw6I2YwZjdlZDtmaWxsLXJ1bGU6bm9uemVybzsiLz48cGF0aCBkPSJNMTU2My4wODEsMTEzNy4wMTljLTE0NS44NzcsMCAtMjUwLjMyNywtMTE1LjI1NyAtMjUwLjMyNywtMjY2LjUxOWMwLC0xNTEuMjggMTA0LjQ1LC0yNjYuNTM3IDI1MC4zMjcsLTI2Ni41MzdjMTQ0LjA1NywwIDI0OC41MjUsMTE1LjI1NyAyNDguNTI1LDI2Ni41MzdjMCwxNTEuMjYyIC0xMDQuNDY4LDI2Ni41MTkgLTI0OC41MjUsMjY2LjUxOW05My43ODgsLTczOS4xMzVsNTguODM4LDBjMTg2Ljk3NiwwIDMzOC41NjYsLTE1MS41OSAzMzguNTY2LC0zMzguNTY2bC0xNDYuNzg2LDBjLTE4NC4yNDcsMCAtMzMzLjgxNywxNDcuMjc4IC0zMzguMTQ3LDMzMC40ODhjLTIuMDkyLC0wLjAxOCAtNC4xNDgsLTAuMTQ2IC02LjI1OSwtMC4xNDZjLTIuNzExLDAgLTUuMzY3LDAuMTQ2IC04LjA2LDAuMTgyYy00LjMxMiwtMTgzLjIyOCAtMTUzLjg4MiwtMzMwLjUyNCAtMzM4LjE2NSwtMzMwLjUyNGwtMTQ2Ljc2OCwwYzAsMTg2Ljk3NiAxNTEuNTksMzM4LjU2NiAzMzguNTY2LDMzOC41NjZsNjAuMDc1LDBjLTIzMi41MzMsNDAuODgxIC0zOTEuODkxLDIzMi4wMDYgLTM5MS44OTEsNDcyLjYxN2MwLDI3MS45MjIgMjAzLjQ5Niw0ODAuODIyIDQ4Ni4yNDQsNDgwLjgyMmMyODAuOTI4LDAgNDg0LjQyNCwtMjA4LjkgNDg0LjQyNCwtNDgwLjgyMmMwLC0yNDAuNjExIC0xNTkuMzQsLTQzMS43MzUgLTM5MC42MzYsLTQ3Mi42MTciIHN0eWxlPSJmaWxsOiNiY2ZkYWM7ZmlsbC1ydWxlOm5vbnplcm87Ii8+PC9nPjwvZz48L3N2Zz4=" width="300" height="65" alt="Botanic"></a>
835        <p class="bn-footer__about">Producent szklarni ogrodowych z poliwęglanu, wiat samochodowych i&nbsp;zadaszeń basenowych.</p>
836        <div class="bn-footer__contact">
837          <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>
838          <div class="bn-footer__hours">Pon.–Pt. 8:00–17:00</div>
839        </div>
840      </div>
841      <div class="bn-footer__col">
842        <h2 class="bn-footer__title">Kategorie</h2>
843        <ul class="bn-footer__list">
844          <li><a href="/szklarnie">Szklarnie z poliwęglanu</a></li>
845          <li><a href="/wiaty-samochodowe">Wiaty samochodowe</a></li>
846          <li><a href="/grzadki-i-klomby">Grządki i klomby</a></li>
847          <li><a href="/pl/c/Zadaszenia-basenowe/50">Zadaszenia basenowe</a></li>
848        </ul>
849      </div>
850      <div class="bn-footer__col">
851        <h2 class="bn-footer__title">Informacje</h2>
852        <ul class="bn-footer__list">
853          <li><a href="/o-nas">O nas</a></li>
854          <li><a href="/pl/i/Jak-wybrac-szklarnie.-Poradnik/33">Jak wybrać szklarnię. Poradnik</a></li>
855          <li><a href="/pl/i/Malowanie-konstrukcji/23">Malowanie konstrukcji</a></li>
856          <li><a href="/pl/i/Tasmy-i-profile/37">Taśmy i profile</a></li>
857          <li><a href="/formy-platnosci">Formy płatności</a></li>
858          <li><a href="/pl/blog">Blog</a></li>
859          <li><a href="/realizacje">Realizacje</a></li>
860          <li><a href="/montaz-szklarni">Montaż szklarni</a></li>
861          <li><a href="/pl/i/Nasi-Partnerzy/36">Nasi Partnerzy</a></li>
862          <li><a href="/mapa-strony">Mapa strony</a></li>
863          <li><a href="/contact">Kontakt</a></li>
864        </ul>
865      </div>
866      <div class="bn-footer__col">
867        <h2 class="bn-footer__title">Pomoc</h2>
868        <ul class="bn-footer__list">
869          <li><a href="/pl/i/Zwroty-i-reklamacje/7">Zwroty i reklamacje</a></li>
870          <li><a href="/pl/i/Program-afiliacyjny-Botanic/21">Program afiliacyjny Botanic</a></li>
871          <li><a href="/faq">FAQ</a></li>
872          <li><a href="/regulamin">Regulamin sklepu</a></li>
873          <li><a href="/polityka-prywatnosci">Polityka prywatności</a></li>
874          <li><a href="/jak-kupic-na-raty">Jak kupić na raty?</a></li>
875          <li><a href="/pl/i/Zostan-Partnerem-B2B/35">Zostań Partnerem B2B</a></li>
876        </ul>
877      </div>
878    </div>
879    <div class="bn-footer__bottom">
880      <p>© 2026 Botanic. Wszystkie prawa zastrzeżone.</p>
881    </div>
882  </div>
883  <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>
884</footer></div></div></div></div>
885        <div class="grid__col grid__col_xs-12 grid__col_sm-6 grid__col_lg-grow grid__col_xxl-grow" data-skin-grid-column-id="e19e5350-160e-403e-bb35-fbdb18de043b">
886            
887        </div><div class="grid__col gc__footer__newsletter grid__col_xs-12 grid__col_sm-12 grid__col_lg-3 grid__col_xxl-3" data-skin-grid-column-id="9ad1b203-c2df-40c7-be54-6f51dd86c778"></div>
888    </div><div class="grid__row grid__row_container-width gc__last__footer__section grid__row_xs-vcenter grid__row_sm-vcenter grid__row_lg-vcenter grid__row_xxl-vcenter grid__row_xs-hcenter grid__row_sm-hbetween grid__row_lg-hbetween grid__row_xxl-hbetween" data-skin-grid-row-id="3c5016e3-51a8-40d4-8de8-7b3485b9b7bf"><div class="grid__col grid__col_xs-grow" data-skin-grid-column-id="8a8a2f73-5504-4baf-ab7b-f4598f59b503"></div><div class="grid__col pt-xs-4 pt-sm-0 grid__col_xs-12 grid__col_sm-9 grid__col_lg-grow grid__col_xxl-grow" data-skin-grid-column-id="e2bbb452-b634-48c0-8724-6c48a9d8e16d"></div></div>
889</div>    </footer>
890
891
892
893
894                                                            
895<script id="skinSettings" type="application/json">
896    {
897        "currency": "PLN",
898        "locale": "pl_PL",
899        "decimalSeparator": ",",
900        "thousandSeparator": " ",
901        "recaptchaSiteKey": "6Le4tYEpAAAAAP3ZMzqruaaLJMcxP7oRFVly2Ang",
902        "recaptchaEnabled": "1",
903        "isFullRegistrationMode": "",
904        "registrationType": "0",
905        "isGuestCheckoutEnabled": "",
906        "isCookieInformationEnabled": "1",
907        "isRegistrationEnabled": "1",
908        "isBuyingEnabledToUnregistered": "1",
909        "contextId": "31",
910        "licenseData": "1791415369101414386",
911        "showNetPrices": "",
912        "showGrossPrices": "1",
913        "showAdditionalTaxInfo": "",
914        "loginDisplayMode": "sheet",
915        "isShoperSSOActive": "1",
916        "lastUrl": ""
917    }
918</script>
918
919
920<script id="localesAndCurrenciesSettings" type="application/json">
921    {
922        "locales": [{"locale":"pl_PL","region":"Polska","name":"polski","url":"\/","currencyCode":"PLN","localized":{"name":"polski","region":"Polska"}}],
923        "currencies": [{"code":"PLN","name":"z\u0142oty polski","symbol":"z\u0142"}]
924    }
925</script>
925
926
927<script id="featureFlags" type="application/json">
928    {
929        "dev_basket_merging": "",
930        "dev_mobile_search_layer": "",
931        "select_shipping_country_on_shipping_step": "",
932        "create_basket_queue": "",
933        "dev_storefront_basket_set_default_country_fix": "",
934        "payments_santander_installments_calculator": "",
935        "storefront_registration": "1",
936        "p24_payment_hide_none_pln_payments": "1",
937        "dev_payments_p24_gopay_googlepay_in_all_currencies": "1",
938        "payments_basket_stripe_card": "",
939        "dev_payments_basket_stripe_card_storefront": "1",
940        "dev_storefront_form_honeypot": "1",
941        "dev_geoloc": "1",
942        "dev_gift_cards": "1",
943        "dev_geoloc_currency_param_fix": "1",
944        "dev_storefront_menu_optimization": "1",
945        "dev_storefront_menu_categories_optimization": "",
946        "dev_storefront_menu_progressive_loading": "",
947        "dev_inpost_pay_button": "",
948        "dev_google_customer_reviews_widget_fix": "1",
949        "dev_enable_analytics_events_with_prefix": "1",
950        "dev_disable_analytics_events_without_prefix": "",
951        "dev_payments_basket_p24_apple_pay": "1",
952        "dev_payments_basket_stripe_apple_pay": "1",
953        "dev_payments_basket_apple_pay": "1",
954        "dev_storefront_address_form_save": "1",
955        "dev_storefront_turbo_restore_loaded_event": "1",
956        "dev_accordion_optimization": "",
957        "dev_phoenix_lazy_loader_optimization": "1",
958        "stock_optimization": "1",
959        "dev_consent_mode_init_fix": "1",
960        "dev_remember_create_basket_queue": "",
961        "dev_remember_order_queue": "",
962        "dev_storefront_stock_optimization": "",
963        "dev_gift_cards_payment_check": "1",
964        "dev_google_analytics_refactor": "",
965        "dev_search_close_aria_hidden_fix": "1",
966        "dev_cached_select_options": "1",
967        "dev_search_fixes": "1",
968        "dev_google_reviews_sticky_bars_fix": "1",
969        "dev_search_focus_trap_fix": "1",
970        "dev_search_close_aria_hidden_fix": "1",
971        "dev_recaptcha_fix": "1",
972        "dev_filters_mobile_focus_trap": "1",
973        "dev_email_redirect_fix": "1",
974        "dev_markets": "",
975        "dev_sso_default_payment_method_fix": "1",
976        "dev_vat_eu_visibility_fix": "1",
977        "dev_recaptcha_social_register_fix": "1",
978        "dev_select_width_optimization": "1",
979        "dev_payments_popular_subchannels": "",
980        "dev_components_scheduling_optimization": "",
981        "dev_components_resolve_order_optimization": ""
982    }
983</script>
983
984
985
986
987    <div id="my-grecaptcha-badge" data-turbolinks-permanent></div>
988
989<login-modal>
990                
991            <div hidden class="social-login-providers" slot="additional-login-providers">
992            <div class="text-separator pb-xs-1">
993                <div class="separator" aria-hidden="true"></div>
994                <span class="text-separator__content">lub</span>
995                <div class="separator" aria-hidden="true"></div>
996            </div>
997
998                            <a data-turbo="false" class="btn btn_full-width mb-xs-2 shoper_sso btn_outline" href="/pl/login/shoper_sso">
999                                            Zaloguj przez
1000                        <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">
1001                        <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">
1002                                    </a>
1003                            <a data-turbo="false" class="btn btn_full-width mb-xs-2 facebook btn_outline" href="/pl/login/facebook">
1004                                            <img width="16" height="16" class="btn__icon btn__icon_left" src="/assets/img/icons/facebook_logo.svg" alt="Zaloguj przez Facebooka logo">
1005                        Zaloguj przez Facebooka
1006                                    </a>
1007                            <a data-turbo="false" class="btn btn_full-width mb-xs-2 google btn_outline" href="/pl/login/google">
1008                                            <img width="16" height="16" class="btn__icon btn__icon_left" src="/assets/img/icons/google_logo.svg" alt="Zaloguj przez Google logo">
1009                        Zaloguj przez Google
1010                                    </a>
1011            
1012                                            <small class="d-block color_secondary mb-xs-2">
1013                    Logowanie przez Facebook i Google do Botanic świadczone jest w ramach usługi Shoper ONE.
1014                </small>
1015                    </div>
1016    
1017</login-modal>
1018
1019<register-modal>
1020                
1021            <div hidden class="social-login-providers" slot="additional-login-providers">
1022            <div class="text-separator pb-xs-1">
1023                <div class="separator" aria-hidden="true"></div>
1024                <span class="text-separator__content">lub</span>
1025                <div class="separator" aria-hidden="true"></div>
1026            </div>
1027
1028                            <a data-turbo="false" class="btn btn_full-width mb-xs-2 shoper_sso btn_outline" href="/pl/login/shoper_sso">
1029                                            Zaloguj przez
1030                        <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">
1031                        <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">
1032                                    </a>
1033                            <a data-turbo="false" class="btn btn_full-width mb-xs-2 facebook btn_outline" href="/pl/login/facebook">
1034                                            <img width="16" height="16" class="btn__icon btn__icon_left" src="/assets/img/icons/facebook_logo.svg" alt="Zaloguj przez Facebooka logo">
1035                        Zaloguj przez Facebooka
1036                                    </a>
1037                            <a data-turbo="false" class="btn btn_full-width mb-xs-2 google btn_outline" href="/pl/login/google">
1038                                            <img width="16" height="16" class="btn__icon btn__icon_left" src="/assets/img/icons/google_logo.svg" alt="Zaloguj przez Google logo">
1039                        Zaloguj przez Google
1040                                    </a>
1041            
1042                                            <small class="d-block color_secondary mb-xs-2">
1043                    Logowanie przez Facebook i Google do Botanic świadczone jest w ramach usługi Shoper ONE.
1044                </small>
1045                    </div>
1046    
1047</register-modal>
1048
1049<remind-password-modal></remind-password-modal>
1050
1051<added-to-basket-modal url="/pl/basket"></added-to-basket-modal>
1052
1053<h-backdrop></h-backdrop>
1054
1055
1056
1057<div id="flash-messenger" data-turbo-permanent>
1058    <flash-messenger class="flash-messenger flash-messenger_fixed" name="global"></flash-messenger>
1059</div>
1060
1061<div id="aria-live-polite" role="region" aria-live="polite" aria-atomic="true" class="sr-only" data-turbo-permanent></div>
1062<div id="aria-live-assertive" role="alert" aria-live="assertive" aria-atomic="true" class="sr-only" data-turbo-permanent></div>
1063
1064            <aside class="js__footer-extension">
1065                <div class="grid">
1066                    <div class="grid__row grid__row_xs-hcenter mt-sm-1 mt-lg-4 mb-xs-2">
1067                        <div class="grid__col grid__col_xs-12 grid__col_xs-hcenter">
1068                            <hr class="separator separator_secondary" aria-hidden="true">
1069                                        <a 
1070                href="https://www.shoper.pl/premium/"
1071                target="_blank" 
1072                rel="noopener" 
1073                title="Sklep internetowy Shoper Premium"
1074                class="link_no-underline link_secondary p_xs color_main">Sklep internetowy <b>Shoper Premium</b></a>
1075                        </div>
1076                    </div>
1077                </div>
1078            </aside>
1079<div 
1080                class="module_type-integration" 
1081                data-integration-module-name="0007ada2-423d-21f0-aa02-0727428d8ebc" 
1082                data-integration-module-id="153"><template id="gc__basket_empty_state_template">
1083  <section class="gc-basket-empty-state" aria-labelledby="gc-basket-empty-state-title">
1084    <svg class="gc-basket-empty-state__icon" viewBox="0 0 48 48" aria-hidden="true" focusable="false">
1085      <path d="M7 9h5l3.6 20h21.2l4.2-14H14"></path>
1086      <path d="M18 35h17"></path>
1087      <circle cx="19" cy="40" r="2.5"></circle>
1088      <circle cx="35" cy="40" r="2.5"></circle>
1089    </svg>
1090    <div class="gc-basket-empty-state__message" role="status" aria-live="polite" aria-atomic="true">
1091      <h1 id="gc-basket-empty-state-title" class="gc-basket-empty-state__title">Twój koszyk jest pusty.</h1>
1092      <p class="gc-basket-empty-state__text">Dodaj produkty, aby przejść do zamówienia.</p>
1093    </div>
1094    <a class="btn btn_primary gc-basket-empty-state__cta" href="/">Wróć do zakupów</a>
1095  </section>
1096</template>
1097
1098</div><div 
1099                class="module_type-integration" 
1100                data-integration-module-name="0007ada2-461b-21f0-8402-7b9f31987c3f" 
1101                data-integration-module-id="156">    
1102<style>
1103
1104    /* --- General Footer Styling --- */
1105    footer#main-footer,
1106    aside.js__footer-extension {
1107                background: #101010;
1108        
1109        .contact-info__header,
1110            h1,h2,h3,h4,h5,h6,.label{
1111            color: #FFFFFF;
1112            }
1113  
1114    .gc__footer__trust__badges{
1115          border-bottom: 1px solid #413e38;
1116    }
1117	.mt-lg-8,
1118    .grid_full>.grid__row:not(.gc__last__footer__section) {
1119      
1120      > .grid__col{
1121        border-bottom: 1px solid #413e38;
1122      }
1123    }
1124
1125        .icon{
1126            stroke: #FFFFFF;
1127        }
1128        
1129        color: #D5D5CB;
1130        
1131        p.contact-info__details-working-hours,
1132        .gc__trustbadges__badge__body,
1133        .gc__footer__info__words{
1134            color: #D5D5CB;
1135        }
1136    }
1137    
1138    /* --- Headings --- */
1139    footer#main-footer h3.overline.footer-group__title,
1140    aside.js__footer-extension h3.overline.footer-group__title {
1141        color: #FFFFFF;
1142    }
1143
1144    /* --- Links --- */
1145    footer#main-footer a,
1146    aside.js__footer-extension a {
1147        color: #8FA116;
1148    }
1149    
1150    footer#main-footer a:hover,
1151    aside.js__footer-extension a:hover {
1152        color: #8FA116 !important;
1153        text-decoration: underline;
1154    }
1155
1156    /* --- External Link Icon --- */
1157    footer#main-footer a.link_secondary[target='_blank']::after,
1158    footer#main-footer .link_secondary[target='_blank']::after,
1159    aside.js__footer-extension a.link_secondary[target='_blank']::after,
1160    aside.js__footer-extension .link_secondary[target='_blank']::after {
1161        background-color: #D5D5CB;
1162    }
1163
1164    /* --- Social Media Icons Coloring --- */
1165        footer#main-footer .gc__social__container a img,
1166    footer#main-footer .footer-social-media__item img,
1167    footer#main-footer .footer-social-media__item svg,
1168    aside.js__footer-extension .gc__social__container a img,
1169    aside.js__footer-extension .footer-social-media__item img,
1170    aside.js__footer-extension .footer-social-media__item svg {
1171                        
1172                    filter: brightness(0) saturate(100%) invert(43%) sepia(95%) saturate(687%) hue-rotate(35deg) brightness(108%) contrast(83%);
1173            }
1174        
1175    .gc__footer__newsletter {
1176        .control__element_flex {
1177            border: 2px solid #cacabe; 
1178            transition: border-color .2s ease-in-out;
1179            -webkit-text-fill-color: #FFFFFF;
1180            
1181            input {
1182                -webkit-text-fill-color: #FFFFFF;
1183            }
1184        }
1185
1186        .control__element_flex.is-focused {
1187            border-color: #ffffff; 
1188        }
1189        
1190        .input__control + .input__label {
1191            color: #aaaaaa; 
1192        }
1193
1194        .input__control input {
1195            color: #FFFFFF;
1196        }
1197
1198        .newsletter__submit-button {
1199            background-color: #8FA116;
1200            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");
1201            transition: background-color .2s ease-in-out;
1202        }
1203
1204        .newsletter__submit-button:hover {
1205            filter: brightness(1.15); /* Delikatne rozjaśnienie koloru linku */
1206        }
1207    }
1208</style></div><div 
1209                class="module_type-integration" 
1210                data-integration-module-name="0007ada2-46f3-21f0-8802-7f04ceb346e2" 
1211                data-integration-module-id="159"><!-- gc-version:2026-09-04-unavailable-x -->
1212<style type="text/css">
1213    :root {
1214        /* --- Add to Cart Button (Default State) --- */
1215        --gc-product-tile-button-border-color: #101010;
1216        --gc-product-tile-button-bg-color: #101010;
1217        --gc-product-tile-button-text-color: #FFFFFF;
1218
1219        /* --- Add to Cart Button (Hover State) --- */
1220        --gc-product-tile-button-border-color-hover: #101010;
1221        --gc-product-tile-button-bg-color-hover: #FFFFFF;
1222        --gc-product-tile-button-text-color-hover: #101010;
1223
1224        /* --- Notify Me Button (Default State) --- */
1225        --gc-product-tile-notify-border-color: #666666;
1226        --gc-product-tile-notify-bg-color: #f5f5f5;
1227        --gc-product-tile-notify-text-color: #666666;
1228
1229        /* --- Notify Me Button (Hover State) --- */
1230        --gc-product-tile-notify-border-color-hover: #333333;
1231        --gc-product-tile-notify-bg-color-hover: #e0e0e0;
1232        --gc-product-tile-notify-text-color-hover: #333333;
1233
1234        /* --- Animated Border --- */
1235                --gc-product-tile-animated-border-color: #101010;
1236        
1237        /* --- Image Standardization --- */
1238                --gc-product-tile-image-border-radius: 8px;
1239                        --gc-product-tile-image-aspect-ratio: 1 / 1;
1240                    }
1241
1242    .btn_primary {
1243        background-color: var(--gc-product-tile-button-bg-color);
1244        color: var(--gc-product-tile-button-text-color);
1245        border: 1px solid var(--gc-product-tile-button-border-color);
1246        stroke: var(--gc-product-tile-button-text-color);
1247        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;
1248        .btn__icon{
1249         stroke: var(--gc-product-tile-button-text-color);
1250        }
1251    }
1252    
1253    /* Notify Me Button Styles */
1254    availability-notifier-btn .btn_secondary {
1255        background-color: var(--gc-product-tile-notify-bg-color);
1256        color: var(--gc-product-tile-notify-text-color);
1257        border: 1px solid var(--gc-product-tile-notify-border-color);
1258        stroke: var(--gc-product-tile-notify-text-color);
1259        overflow: hidden;
1260        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;
1261        .btn__icon{
1262         stroke: currentColor;
1263        }
1264    }
1265    
1266    availability-notifier-btn .btn_secondary:hover,
1267    availability-notifier-btn .btn_secondary:focus-visible {
1268        background-color: var(--gc-product-tile-notify-bg-color-hover);
1269        color: var(--gc-product-tile-notify-text-color-hover);
1270        border-color: var(--gc-product-tile-notify-border-color-hover);
1271        stroke: var(--gc-product-tile-notify-text-color-hover);
1272        .btn__icon{
1273         stroke: currentColor;
1274        }
1275    }
1276    
1277    /* View Product Button uses same styles as Add to Cart */
1278    .btn_secondary:not(availability-notifier-btn .btn_secondary) {
1279        border: 1px solid var(--gc-product-tile-button-border-color);
1280        stroke: var(--gc-product-tile-button-text-color);
1281        overflow: hidden;
1282        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;
1283        .btn__icon{
1284         stroke: currentColor;
1285        }
1286    }
1287    
1288    .btn_secondary:not(availability-notifier-btn .btn_secondary):hover {
1289        fill: var(--gc-product-tile-button-text-color-hover);
1290        border-color: var(--gc-product-tile-button-border-color-hover);
1291        stroke: var(--gc-product-tile-button-border-color-hover);
1292        .btn__icon{
1293         stroke: currentColor;
1294        }
1295    }    
1296    
1297    .btn_primary:hover {
1298        background-color: var(--gc-product-tile-button-bg-color-hover);
1299        color: var(--gc-product-tile-button-text-color-hover);
1300        border-color: var(--gc-product-tile-button-border-color-hover);
1301        stroke: var(--gc-product-tile-button-text-color-hover);
1302        .btn__icon{
1303        stroke: var(--gc-product-tile-button-text-color-hover);
1304        }
1305    }
1306    
1307        
1308    
1309        
1310        
1311        
1312    
1313        @media (max-width: 767px) {
1314        .product-tile {
1315            display: grid;
1316            grid-template-columns: 1fr auto !important;
1317            grid-template-areas: "header header" "content footer";
1318            align-items: end;
1319
1320            .product-tile__header { grid-area: header; grid-column: 1 / -1 !important; }
1321            .product-tile__content { grid-area: content; margin-right: 5px;}
1322            .product-tile__footer { grid-area: footer; grid-column: 2 / 3 !important;
1322 grid-row: 2 !important; }
1323            buy-button, availability-notifier-btn { position: static; }
1324        }
1325
1326        /* Add to Cart Button */
1327        .product-tile__footer-btn .btn_primary {
1328                            width: 44px !important;
1329        height: 44px !important;
1330        padding: 0;
1331        border-radius: 50%;
1332        border-width: 1.5px;
1333        box-sizing: border-box;
1334        box-shadow: 0 4px 12px 0 rgba(0, 0, 0, 0.1);
1335        font-size: 0;
1336        color: transparent;
1337    
1338
1339        &:before {
1340            content: '+';
1341            font-size: 28px; 
1342            font-weight: 300;  
1343            line-height: 44px;
1344            text-align: center;
1345            display: block;
1346            width: 100%;
1347            height: 100%;
1348            color: var(--gc-product-tile-button-text-color);
1349            transition: color 0.25s ease-in-out;
1350        }
1351
1352        &:hover {
1353            background-color: var(--gc-product-tile-button-bg-color-hover) !important;
1354            border-color: var(--gc-product-tile-button-border-color-hover) !important;
1355             
1356            &:before {
1357                color: var(--gc-product-tile-button-text-color-hover);
1358            }
1359        }
1360    
1361        }
1362
1363        /* Notify Me Button */
1364                .product-tile availability-notifier-btn .btn_secondary {
1365                            width: 44px !important;
1366        height: 44px !important;
1367        padding: 0;
1368        border-radius: 50%;
1369        border-width: 1.5px;
1370        box-sizing: border-box;
1371        box-shadow: 0 4px 12px 0 rgba(0, 0, 0, 0.1);
1372        font-size: 0;
1373        color: transparent;
1374    
1375
1376        &:before {
1377            content: '';
1378            font-size: 0px !important;
1379            /* Bell icon SVG mask */
1380            -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;
1381            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;
1382            background-color: var(--gc-product-tile-notify-text-color);
1383            transition: background-color 0.25s ease-in-out;
1384            display: block;
1385            width: 100%;
1386            height: 100%;
1387        }
1388
1389        &:hover {
1390            background-color: var(--gc-product-tile-notify-bg-color-hover) !important;
1391            border-color: var(--gc-product-tile-notify-border-color-hover) !important;
1392             
1393            &:before {
1394                background-color: var(--gc-product-tile-notify-text-color-hover);
1395            }
1396        }
1397    
1398        }
1399                
1400        /* View Product Button */
1401                .product-tile__footer a.btn_primary:not(.product-tile__footer-btn .btn_primary) {
1402                            width: 44px !important;
1403        height: 44px !important;
1404        padding: 0;
1405        border-radius: 50%;
1406        border-width: 1.5px;
1407        box-sizing: border-box;
1408        box-shadow: 0 4px 12px 0 rgba(0, 0, 0, 0.1);
1409        font-size: 0;
1410        color: transparent;
1411    
1412
1413        &:before {
1414            content: '';
1415            font-size: 0px !important;
1416            /* Arrow right icon SVG mask */
1417            -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;
1418            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;
1419            background-color: var(--gc-product-tile-button-text-color);
1420            transition: background-color 0.25s ease-in-out;
1421            display: block;
1422            width: 100%;
1423            height: 100%;
1424        }
1425
1426        &:hover {
1427            background-color: var(--gc-product-tile-button-bg-color-hover) !important;
1428            border-color: var(--gc-product-tile-button-border-color-hover) !important;
1429             
1430            &:before {
1431                background-color: var(--gc-product-tile-button-text-color-hover);
1432            }
1433        }
1434    
1435        }
1436            }
1437    
1438        @media (max-width: 767px) {
1439        .product-tile .product-tile__footer > .btn_special-disabled {
1440                            width: 44px !important;
1441        height: 44px !important;
1442        padding: 0;
1443        border-radius: 50%;
1444        border-width: 1.5px;
1445        box-sizing: border-box;
1446        box-shadow: 0 4px 12px 0 rgba(0, 0, 0, 0.1);
1447        font-size: 0;
1448        color: transparent;
1449    
1450        display: inline-flex !important;
1451        align-items: center;
1452        justify-content: center;
1453        min-width: 44px !important;
1454        max-width: 44px !important;
1455        background-color: var(--neutralColors400, #7d90b5) !important;
1456        border-color: transparent !important;
1457
1458        &:before {
1459            content: '×';
1460            color: var(--neutralColors0, #fff);
1461            font-size: 28px;
1462            font-weight: 300;
1463            line-height: 1;
1464        }
1465    
1466        }
1467    }
1468        
1469        .product-tile:hover {
1470      position: relative;
1471    }
1472    .product-tile:hover:before,
1473    .product-tile:hover:after {
1474      content: '';
1475      position: absolute;
1476      top: 0;
1477      left: 0;
1478      width: 100%;
1479      height: 100%;
1480      box-sizing: border-box;
1481      transition: transform 0.2s ease-out;
1482      pointer-events: none;
1483      z-index: 1;
1483 /* Upewnij się, że ramka jest na wierzchu */
1484    }
1485    .product-tile:hover:before {
1486      border-bottom: 1px solid var(--gc-product-tile-animated-border-color);
1487      border-left: 1px solid var(--gc-product-tile-animated-border-color);
1488      transform: scale(1);
1489      transform-origin: 0 100%;
1490    }
1491    .product-tile:hover:after {
1492      border-top: 1px solid var(--gc-product-tile-animated-border-color);
1493      border-right: 1px solid var(--gc-product-tile-animated-border-color);
1494      transform: scale(1);
1495      transform-origin: 100% 0%;
1496    }
1497    
1498            .product-tile__image {
1499        position: relative;
1500        width: 100%;
1501        overflow: hidden;
1502        border-radius: var(--gc-product-tile-image-border-radius, 8px);
1503    }
1504
1505    .product-tile__image a {
1506        display: block;
1507        position: relative;
1508        width: 100%;
1509        aspect-ratio: var(--gc-product-tile-image-aspect-ratio, 1 / 1);
1510        overflow: hidden;
1511        border-radius: var(--gc-product-tile-image-border-radius, 8px);
1512    }
1513
1514    .product-tile__image a .image,
1515    .product-tile__image picture {
1516        position: absolute;
1517        top: 0;
1518        left: 0;
1519        width: 100%;
1520        height: 100%;
1521        overflow: hidden;
1522        border-radius: var(--gc-product-tile-image-border-radius, 8px);
1523    }
1524
1525    .product-tile__image img {
1526        width: 100%;
1527        height: 100% !important;
1528        object-fit: contain;
1529        object-position: center;
1530        border-radius: var(--gc-product-tile-image-border-radius, 8px);
1531        max-height: none !important;
1532    }
1533
1534    .product-tile__image .ribbon-group {
1535        position: absolute;
1536        z-index: 2;
1537    }
1538
1539    .product-tile__favourites {
1540        z-index: 3;
1541    }
1542    
1543        
1544        
1545            .product-tile__image { position: relative; }
1546    .product-tile__image_primary,
1547    .product-tile__image_secondary { transition: opacity 0.3s ease-in-out; }
1548    .product-tile__image_primary { opacity: 1; }
1549    .product-tile__image_secondary { position: absolute; top: 0; left: 0; width: 100%; opacity: 0; }
1550    /* Desktop hover — tylko gdy jest drugie zdjęcie */
1551    .product-tile:has(.product-tile__image_secondary):hover .product-tile__image_primary { opacity: 0; }
1552    .product-tile:has(.product-tile__image_secondary):hover .product-tile__image_secondary { opacity: 1; }
1553    /* Mobile/touch — active */
1554    .product-tile:has(.product-tile__image_secondary):active .product-tile__image_primary { opacity: 0; }
1555    .product-tile:has(.product-tile__image_secondary):active .product-tile__image_secondary { opacity: 1; }
1556    @media (hover: none) {
1557        .product-tile:has(.product-tile__image_secondary):active .product-tile__image_primary { opacity: 0; }
1558        .product-tile:has(.product-tile__image_secondary):active .product-tile__image_secondary { opacity: 1; }
1559    }
1560    </style>
1561
1562    <style>
1563        @media (min-width: 768px) and (max-width: 1919px) {
1564          .module_type-integration[data-integration-module-name="sticky_mobile_bars"] .sticky-mobile-bars {
1565            display: flex !important;
1566            width: auto;
1567            right: 40px;
1568            background: transparent;
1569            bottom: 120px;
1570            border: 0px;
1571            box-shadow: none;
1572          }
1573          .module_type-integration[data-integration-module-name="sticky_mobile_bars"] .sticky-mobile-bars .sticky-mobile-bars__total-and-pay-container {
1574            border-radius: 8px;
1575          }
1576          .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 {
1577            background: #fff;
1578            box-shadow: 0 -2px 20px rgba(0, 0, 0, 0.15), 0 -8px 30px rgba(0, 0, 0, 0.12);
1579            border-top: 2px solid #ddd;
1580            padding: 20px 20px 24px;
1581            position: relative;
1582            z-index: 100;
1583            border: 1px solid #9d9d9d;
1584            border-radius: 8px;
1585          }
1586          .module_type-integration[data-integration-module-name="sticky_mobile_bars"] .sticky-mobile-bars__buy-button-container.fade-transition-end {
1587            flex: 1;
1588            display: flex;
1589            width: auto;
1590            right: 20px;
1591            bottom: 120px;
1592            border-radius: 8px;
1593            padding: 6px 12px;
1594            border: 1px solid #e0e0e0;
1595            background: #fff;
1596            box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.2);
1597          }
1598          .module_type-integration[data-integration-module-name="sticky_mobile_bars"] .sticky-mobile-bars__buy-button-container.fade-transition-end auth-controller.product-actions__wrapper {
1599            display: flex;
1600            justify-content: center;
1601            align-items: center;
1602          }
1603          .module_type-integration[data-integration-module-name="sticky_mobile_bars"] .sticky-mobile-bars__menu-container {
1604            display: none !important;
1605            visibility: hidden !important;
1606            opacity: 0 !important;
1607            height: 0 !important;
1608            overflow: hidden !important;
1609          }
1610          .module_type-integration[data-integration-module-name="sticky_mobile_bars"] .sticky-mobile-bars__menu,
1611          .module_type-integration[data-integration-module-name="sticky_mobile_bars"] .sticky-menu {
1612            display: none !important;
1613          }
1614        }
1615    </style>
1616</div><div 
1617                class="module_type-integration" 
1618                data-integration-module-name="0007ada2-a9ac-21f0-8a02-4d1f9233b2c1" 
1619                data-integration-module-id="172"></div><div 
1620                class="module_type-integration" 
1621                data-integration-module-name="0007ada2-bff0-21f0-b502-59dd0ef40dec" 
1622                data-integration-module-id="175"><template id="gc-carousel-slide-template">
1623  <li class="splide__slide">
1624    <product-tile
1625      class="product-tile"
1626      product-id=""
1627      name=""
1628      price=""
1629      producer=""
1630      category=""
1631      currency="PLN"
1632      list=""
1633      id=""
1634      categoryid=""
1635      availability=""
1636      relatedids=""
1637    >
1638      <div class="product-tile__row product-tile__header">
1639        <div class="product-tile__row product-tile_row_image">
1640          <div class="product-tile__image">
1641            <div class="ribbon-group ribbon-group_absolute">
1642              <!-- JS nadpisze innerHTML, np. wstążką Nowość -->
1643            </div>
1644
1645            <product-link
1646              id=""
1647              name=""
1648              price=""
1649              producer=""
1650              category=""
1651              currency="PLN"
1652              list=""
1653            >
1654              <a href="#" title="" aria-label="">
1655                <picture class="image product-tile__image_primary">
1656                  <source srcset="" type="image/webp">
1657                  <img src="" alt="" title="" width="500" height="500" loading="lazy">
1658                </picture>
1659
1660                <picture class="image product-tile__image_secondary">
1661                  <source srcset="" type="image/webp">
1662                  <img src="" alt="" title="" width="500" height="500" loading="lazy">
1663                </picture>
1664              </a>
1665            </product-link>
1666          </div>
1667        </div>
1668
1669        <span class="product-tile__codes"></span>
1670
1671        <product-link
1672          id=""
1673          name=""
1674          price=""
1675          producer=""
1676          category=""
1677          currency="PLN"
1678          list=""
1679        >
1680          <a href="#" title="" class="link_no-underline">
1681            <h3 class="product-tile__name product-tile__name_fixed-height">
1682              <!-- JS wstawi nazwę -->
1683            </h3>
1684          </a>
1685        </product-link>
1686      </div>
1687
1688<div class="product-tile__row product-tile__content">
1689  <div class="product-tile__row-btn">
1690    <a href="#" class="btn btn_s btn_primary">
1691      Zobacz produkt
1692    </a>
1693  </div>
1694</div>
1695    </product-tile>
1696  </li>
1697</template>
1698</div><div 
1699                class="module_type-integration" 
1700                data-integration-module-name="customer_privacy" 
1701                data-integration-module-id="81">
1702
1703    <consents-modal privacy-policy-page-id="" modal-label="Ustawienia plików cookies" hidden>
1704        <header slot="base-header">
1705            <h2 class="font_semibold h2">Dbamy o Twoją prywatność</h2>
1706        </header>
1707
1708        <div slot="base-content">
1709            <div class="p p_s color_secondary">
1710                <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>
1711
1712                                    <p>
1713                        <consents-show-privacy-policy class="link link_secondary">Więcej o plikach cookies przeczytasz w naszej Polityce prywatności.</consents-show-privacy-policy>
1714                    </p>
1715                            </div>
1716        </div>
1717
1718        <consents-accept-necessary slot="base-buttons" class="btn btn_outline">Zaakceptuj tylko niezbędne</consents-accept-necessary>
1719        <consents-show-advanced slot="base-buttons" class="btn btn_outline">Dostosuj zgody</consents-show-advanced>
1720        <consents-accept-all slot="base-buttons" class="btn btn_primary">Zaakceptuj wszystkie</consents-accept-all>
1721
1722        <header slot="advanced-header">
1723            <h2 class="font_semibold h2">Ustawienia plików cookies</h2>
1724        </header>
1725
1726        <consents-show-base slot="advanced-header" class="btn btn_icon" aria-label="Zamknij okno">
1727                            
1728            
1729    <svg class="
1730            icon
1731            icon_l
1732            
1733            
1734            
1735                        btn__icon
1736        "
1737                        aria-hidden="true"
1738        focusable="false"
1739            >
1740        <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>
1741    </svg>
1742
1743        </consents-show-base>
1744
1745        <div slot="advanced-content">
1746            <div class="mb-xs-2 color_secondary">
1747                <p>W tym miejscu możesz określić swoje preferencje w zakresie wykorzystywania przez nas plików cookies.</p>
1748            </div>
1749
1750            <div class="control">
1751                <consents-checkbox label="Zaznacz wszystko" name="all"></consents-checkbox>
1752            </div>
1753
1754            <div class="control">
1755                <consents-checkbox class="mb-xs-2" label="Niezbędne do działania strony" checked disabled>
1756                    <div slot><p>Te pliki są niezbędne do działania naszej strony internetowej, dlatego też nie możesz ich wyłączyć.</p></div>
1757                </consents-checkbox>
1758            </div>
1759
1760            <div class="control">
1761                <consents-checkbox class="mb-xs-2" label="Funkcjonalne" name="functionalConsent">
1762                    <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>
1763                </consents-checkbox>
1764            </div>
1765
1766            <div class="control">
1767                <consents-checkbox class="mb-xs-2" label="Analityczne" name="analyticsConsent">
1768                    <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>
1769                </consents-checkbox>
1770            </div>
1771
1772            <div class="control">
1773                <consents-checkbox class="mb-xs-2" label="Analityczne dostawcy oprogramowania" name="platformAnalyticsConsent">
1774                    <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>
1775                </consents-checkbox>
1776            </div>
1777
1778            <div class="control">
1779                <consents-checkbox class="mb-xs-2" label="Marketingowe" name="marketingConsent">
1780                    <div slot><p>Dzięki tym plikom możemy prowadzić działania marketingowe.</p></div>
1781                </consents-checkbox>
1782            </div>
1783        </div>
1784
1785        <consents-show-base slot="advanced-buttons" class="btn btn_outline">Anuluj</consents-show-base>
1786        <consents-save slot="advanced-buttons" class="btn btn_primary">Zapisz ustawienia</consents-save>
1787    </consents-modal>
1788</div><div 
1789                class="module_type-integration" 
1790                data-integration-module-name="shop_analytics" 
1791                data-integration-module-id="89"></div><div 
1792                class="module_type-integration" 
1793                data-integration-module-name="google_analytics" 
1794                data-integration-module-id="90">
1794<script class="js__google-analytic-config" type="application/json">
1795    {
1796        "trackingId": "G-59ZWDP9ZH4",
1797        "containerId": "GTM-5KCPK6FS",
1798        "layerName": "dataLayer",
1799        "isGTM": "0"
1800    }
1801</script>
1801</div><div 
1802                class="module_type-integration" 
1803                data-integration-module-name="google_analytics_shoper_campaigns" 
1804                data-integration-module-id="91">        
1805        </div><div 
1806                class="module_type-integration" 
1807                data-integration-module-name="facebook_business_extension" 
1808                data-integration-module-id="99">        
1809                    
1809<script class="js__fbe-config" type="application/json">
1810                {
1811                    "pixelId": "447975941356148"
1812                }
1813            </script>
1813
1814        </div><div 
1815                class="module_type-integration" 
1816                data-integration-module-name="0005f4fd-2731-21ef-ba02-ade33ab46bf4" 
1817                data-integration-module-id="98">
1818
1819
1820
1821   
1821<script class="js__google-analytic-config" type="application/json">
1822          {
1823              "trackingId": "G-3Q5ZV276CY",
1824              "isGTM": "0"
1825          }
1826   </script>
1826
1827
1828
1829
1830
1831</div><div 
1832                class="module_type-integration" 
1833                data-integration-module-name="0006db8d-4365-21ef-9902-55c0d39831d5" 
1834                data-integration-module-id="138"></div><div 
1835                class="module_type-integration" 
1836                data-integration-module-name="0007c731-08a9-21f1-aa02-613a003d59bb" 
1837                data-integration-module-id="140"></div><div 
1838                class="module_type-integration" 
1839                data-integration-module-name="00051c99-a594-21ef-b402-5d7c70a416a9" 
1840                data-integration-module-id="178"><div class="MXcomfinoModulemain" data-module-id="00051c99-a594-21ef-b402-5d7c70a416a9">
1841    
1841<script class="MXModuleConfigScript" type="application/json">
1842      []
1843    </script>
1843
1844    
1844<script class="MXShopHash" type="text/plain">
1845        550
1846    </script>
1846
1847    
1847<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>
1847
1848</div></div><div 
1849                class="module_type-integration" 
1850                data-integration-module-name="0007ada2-4ef0-21f1-a902-cf04c43a4db1" 
1851                data-integration-module-id="181">
1852
1853    
1854            
1855                        <style>
1856            .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}
1857            .gc__btt.gc__btt--pos-right{right:var(--gc-btt-side,32px)}
1858            .gc__btt.gc__btt--pos-left{left:var(--gc-btt-side,32px)}
1859            .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}
1860            .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}
1861            .gc__btt__btn:hover{box-shadow:0 5px 10px rgba(0,0,0,.20),0 22px 48px -10px rgba(0,0,0,.58)}
1862            .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}
1863            .gc__btt__btn:focus-visible{outline:2px solid var(--gc-btt-fg,#fafafa);outline-offset:3px}
1864            .gc__btt__visual{position:relative;display:grid;flex:0 0 48px;width:48px;height:48px;place-items:center}
1865            .gc__btt__progress{position:absolute;inset:0;width:48px;height:48px;transform:rotate(-90deg);pointer-events:none}
1866            .gc__btt__progress-track,.gc__btt__progress-value{fill:none;stroke:currentColor;stroke-width:1.6;vector-effect:non-scaling-stroke}
1867            .gc__btt__progress-track{opacity:0}
1868            .gc__btt--with-ring .gc__btt__progress-track{opacity:.2}
1869            .gc__btt__progress-value{opacity:.92;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:var(--gc-btt-progress,100)}
1870            @keyframes gc__btt__bob{0%,100%{transform:translateY(1.5px)}50%{transform:translateY(-1.5px)}}
1871            .gc__btt__icon{position:relative;z-index:1;flex:none;width:18px;height:18px;will-change:transform}
1872            .gc__btt--visible .gc__btt__icon{animation:gc__btt__bob 2.4s ease-in-out infinite}
1873            .gc__btt__btn:hover .gc__btt__icon{animation-duration:1.6s}
1874            .gc__btt__label{display:none;white-space:nowrap}
1875            .gc__btt--pill_always .gc__btt__btn{width:auto;padding:0 18px 0 0;gap:8px}
1876            .gc__btt--pill_always .gc__btt__label{display:inline}
1877            .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)}
1878            .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}
1879            .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)}
1880            @media (max-width:1023.98px){.gc__btt{display:none!important}}
1881            @media (hover:none){.gc__btt{display:none!important}}
1882            @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}}
1883        </style>
1884    
1885    <gc-back-to-top
1886        id="gc-btt-"
1887        class="gc__btt gc__btt--circle gc__btt--pos-right gc__btt--with-ring"
1888        data-options="&#x7B;&quot;position&quot;&#x3A;&quot;right&quot;,&quot;shape&quot;&#x3A;&quot;circle&quot;,&quot;label&quot;&#x3A;&quot;&quot;,&quot;threshold&quot;&#x3A;600,&quot;smoothScroll&quot;&#x3A;1,&quot;bottomOffset&quot;&#x3A;32,&quot;sideOffset&quot;&#x3A;32&#x7D;"
1889        style="--gc-btt-bg: #0a0a0a; --gc-btt-fg: #fafafa; --gc-btt-bottom: 32px; --gc-btt-side: 32px; display: none;"
1890        aria-hidden="true"
1891    >
1892        <button
1893            class="gc__btt__btn"
1894            type="button"
1895            tabindex="-1"
1896            aria-label="Back to top of page"
1897        >
1898            <span class="gc__btt__visual" aria-hidden="true">
1899                <svg
1900                    class="gc__btt__progress"
1901                    width="48"
1902                    height="48"
1903                    viewBox="0 0 48 48"
1904                    aria-hidden="true"
1905                    focusable="false"
1906                >
1907                    <circle class="gc__btt__progress-track" cx="24" cy="24" r="22" pathLength="100"/>
1908                    <circle class="gc__btt__progress-value" cx="24" cy="24" r="22" pathLength="100"/>
1909                </svg>
1910                <svg
1911                    class="gc__btt__icon"
1912                    width="18"
1913                    height="18"
1914                    viewBox="0 0 24 24"
1915                    fill="none"
1916                    stroke="currentColor"
1917                    stroke-width="2"
1918                    stroke-linecap="round"
1919                    stroke-linejoin="round"
1920                    aria-hidden="true"
1921                    focusable="false"
1922                >
1923                    <path d="M12 19V5"/>
1924                    <path d="m5 12 7-7 7 7"/>
1925                </svg>
1926            </span>
1927            <span class="gc__btt__label">Back to top</span>
1928        </button>
1929    </gc-back-to-top>
1930
1931</div><div 
1932                class="module_type-integration" 
1933                data-integration-module-name="0007ada2-6be3-21f1-a102-b166e4326246" 
1934                data-integration-module-id="183"></div><div 
1935                class="module_type-integration" 
1936                data-integration-module-name="000652b2-bce7-21f1-ac02-a30a72be35d8" 
1937                data-integration-module-id="609"><!-- ============================================================================================
1938     RINGOSTAT — MODEL DZIAŁANIA I CZEGO NIE WOLNO ROBIĆ.  PRZECZYTAJ PRZED ZMIANAMI W NUMERACH.
1939     ============================================================================================
1940
1941     MODEL. Ringostat podmienia numer statyczny na dynamiczny (call tracking) w DWÓCH trybach:
1942
1943     TRYB 1 — PODSTAWIENIE ZAAWANSOWANE (ten, o który nam chodzi).
1944       Obejmuje elementy wskazane XPath-ami w panelu Ringostata. Przy PIERWSZYM skanie strony
1945       skrypt Ringostata dla takiego elementu:
1946         • nadaje atrybuty  rngst-id / rngst-geogroup,
1947         • USUWA z niego  href,
1948         • podmienia treść na maskę  „+48 pokaż numer"  (<span style="cursor:pointer">),
1949         • podpina WŁASNĄ obsługę kliknięcia, która odsłania numer dynamiczny.
1950       Efekt = dokładnie wymaganie klienta: najpierw „pokaż numer", numer dopiero po kliknięciu.
1951
1952     TRYB 2 — PODSTAWIENIE PROSTE (fallback).
1953       Zwykła podmiana tekstu numeru statycznego na dynamiczny. BEZ rngst-id, BEZ maski,
1954       BEZ kliknięcia — numer widać od razu. Tak wygląda KAŻDY element, którego tryb 1 nie objął.
1955
1956     WARUNEK KONIECZNY TRYBU 1: element musi być w DOM ZANIM Ringostat zrobi pierwszy skan.
1957     Skrypt Ringostata ładuje się async, więc wszystko, co siedzi w statycznym HTML tego modułu,
1958     zdąża. Sekcja Kontakt klonowana z <template> też zdąża, bo klonujemy ją synchronicznie.
1959
1960     --------------------------------------------------------------------------------------------
1961     CZEGO NIE WOLNO — każdy z tych błędów już wystąpił i został potwierdzony pomiarem na żywo
1962     --------------------------------------------------------------------------------------------
1963
1964     [1] NIE WOŁAJ  ringostatRestartSubstitution().
1965         Pomiar na TEJ SAMEJ stopce, dwie podstrony:
1966             strona główna (bez restartu):  rngst-id="1",  href usunięty,  „pokaż numer",  klik OK
1967             /contact      (z restartem):   rngst-id=null, href wrócił,    goły numer,     klik martwy
1968         Restart NIE „doskanowuje" strony — KASUJE tryb 1 na CAŁEJ stronie i zostawia tryb 2.
1969         Dlatego jeden restart wołany w popupie albo na Kontakcie zabijał również nagłówek i stopkę.
1970
1971     [2] NIE BUDUJ elementu z numerem w JS po załadowaniu strony.
1972         Nie istnieje podczas pierwszego skanu → dostanie najwyżej tryb 2. Dlatego popup
1973         „Porozmawiaj" leży w HTML statycznie (ukryty CSS-em), a JS tylko go otwiera i zamyka.
1974
1975     [3] NIE PRZENOŚ węzła z numerem między miejscami (np. nagłówek → modal).
1976         Psuje miejsce źródłowe i nie naprawia docelowego.
1977
1978     [4] NIE DODAWAJ globalnych „guardów" przechwytujących klik w numer
1979         (preventDefault + symulowany .click() + pętla restartów) — blokują natywny klik Ringostata.
1980
1981     [5] NIE WPISUJ ręcznie tekstu „pokaż numer" w markup.
1982         Maskę rysuje Ringostat. Nasz markup ma zawierać ZWYKŁY numer statyczny +48 833 070 023,
1983         inaczej Ringostat nie ma czego dopasować i element nie zostanie objęty podmianą w ogóle.
1984
1985     --------------------------------------------------------------------------------------------
1986     GDZIE SĄ NUMERY — 4 miejsca, wszystkie wg tej samej zasady: statycznie w HTML, numer statyczny
1987     --------------------------------------------------------------------------------------------
1988       .bn-phone__num      — nagłówek
1989       .bn-footer__phone   — stopka
1990       .bn-ct__qcard       — kafelek „Telefon" na /contact (moduł 324 — render serwerowy)
1991       .bn-consult-phone   — popup „Porozmawiaj" na karcie produktu
1992
1993     --------------------------------------------------------------------------------------------
1994     DIAGNOSTYKA gdy któreś miejsce pokazuje numer OD RAZU (bez maski)
1995     --------------------------------------------------------------------------------------------
1996     W konsoli przeglądarki:
1997         ['.bn-phone__num','.bn-footer__phone','.bn-ct__qcard','.bn-consult-phone']
1998           .forEach(s=>{var e=document.querySelector(s);
1999             console.log(s, e?e.getAttribute('rngst-id'):'BRAK', e?e.textContent.trim().slice(0,22):'');});
2000
2001     • rngst-id ma wartość  → tryb 1 działa, maska i klik po stronie Ringostata.
2002     • rngst-id = null      → element NIE jest objęty XPath-ami w panelu Ringostata dla tej domeny.
2003                              To konfiguracja w panelu Ringostat — NIE do naprawienia z tego kodu.
2004     UWAGA: podgląd sklepu (sklep689102.shoparena.pl) i produkcja (botanic.com.pl) mogą mieć RÓŻNE
2005     pokrycie XPath. Zmierzone: na podglądzie nagłówek bywa bez rngst-id (tryb 2 → numer od razu),
2006     a stopka z rngst-id="1" (tryb 1 → maska). Testuj świadomie, na której domenie patrzysz.
2007     ============================================================================================ -->
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024<!-- Popup „Porozmawiaj" — STATYCZNIE w HTML (nie budowany JS-em), bo tylko wtedy 
2024numer trafia
2025     do pierwszego skanu Ringostata i dostaje maskę „pokaż numer" + działający klik, dokładnie jak
2026     nagłówek i stopka. Wcześniej popup powstawał dynamicznie i trzeba było wołać
2027     ringostatRestartSubstitution() — a ten restart KASUJE podstawienie zaawansowane na całej
2028     stronie (zdejmuje rngst-id, przywraca href, gubi maskę i klik). Overlay jest ukryty przez CSS
2029     (opacity:0;visibility:hidden), więc obecność na każdej podstronie niczego nie psuje. -->
2030<div class="bn-consult-overlay">
2031  <div class="bn-consult-modal">
2032    <button class="bn-consult-close" type="button" aria-label="Zamknij">&times;</button>
2033    <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>
2034    <h3>Porozmawiaj z doradcą</h3>
2035    <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>
2036    <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>
2037    <p class="bn-consult-hours"><strong>Pon.–Pt. 8:00–17:00</strong></p>
2038  </div>
2039</div>
2040
2041
2042<!-- Ringostat: call-tracking + podmiana numeru (instalacja globalna) -->
2043<script type="text/javascript">
2044  /* Early render (578): the loader starts with the platform JS after the first screen is shown; without the bootstrap it starts at once. */
2045  (window.__bnEarlyDefer||function(f){f();})(function(){(function (d,s,u,e,p) {
2046    p=d.getElementsByTagName(s)[0],e=d.createElement(s),
2047    e.async=1,e.src=u,p.parentNode.insertBefore(e,p);
2048  })(document,'script','https://script.ringostat.com/v4/9e/9e356d287a9a9cf2b946ea34321899aa911a4e62.js');});
2049  var pw=function(){
2050    if(typeof(ringostatAnalytics)==='undefined'){setTimeout(pw,100);}
2051    else{ringostatAnalytics.sendHit('pageview');}
2052  };
2053  pw();
2054</script>
2054
2055
2056
2057</div><div 
2058                class="module_type-integration" 
2059                data-integration-module-name="000652b2-bce7-21f1-9c02-15feb3f55517" 
2060                data-integration-module-id="613">    1
2061    
2062    
2063    
2064    
2065</div><div 
2066                class="module_type-integration" 
2067                data-integration-module-name="000652b2-bce7-21f1-9502-d59c003bbf34" 
2068                data-integration-module-id="615">
2068<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 2068
2068
2069<script>
2070(function () {
2071  'use strict';
2072  if (window.__bnGcScriptsOff) return;
2073  window.__bnGcScriptsOff = 1;
2074  function offIds(root) {
2075    var ids = [];
2076    if (!root.querySelector('.gc__siema-slider-container, [data-gc-src], img.gc__siema-image-deferred')) ids.push('172');
2077    if (!(window.matchMedia && window.matchMedia('(min-width: 1024px) and (hover: hover)').matches)) ids.push('181');
2078    if (!root.querySelector('product-list, filters-aggregator, [data-gc-listing-toolbar], .side-menu-categories')) ids.push('433');
2079    return ids;
2080  }
2081  // Off for this page: take data-src away (only if the script is not loaded yet). On: give it back.
2082  function apply(script, ids) {
2083    var off = ids.indexOf(script.getAttribute('data-script-module-id')) > -1;
2084    if (off && script.hasAttribute('data-src') && !script.getAttribute('src')) {
2085      script.setAttribute('data-bn-src-off', script.getAttribute('data-src'));
2086      script.removeAttribute('data-src');
2087    } else if (!off && script.hasAttribute('data-bn-src-off')) {
2088      script.setAttribute('data-src', script.getAttribute('data-bn-src-off'));
2089      script.removeAttribute('data-bn-src-off');
2090    }
2091  }
2092  function applyAll(root, ids) {
2093    var list = root.querySelectorAll('script[data-script-module-id]');
2094    for (var i = 0; i < list.length; i++) apply(list[i], ids);
2095  }
2096  // First load: the script tags come after this module in the HTML, so catch them as the parser adds them.
2097  var ids = offIds(document);
2098  var mo = new MutationObserver(function (records) {
2099    for (var r = 0; r < records.length; r++) {
2100      var added = records[r].addedNodes;
2101      for (var n = 0; n < added.length; n++) {
2102        var node = added[n];
2103        if (node.nodeType === 1 && node.tagName === 'SCRIPT' && node.hasAttribute('data-script-module-id')) apply(node, ids);
2104      }
2105    }
2106  });
2107  mo.observe(document.documentElement, { childList: true, subtree: true });
2108  document.addEventListener('DOMContentLoaded', function () { applyAll(document, ids); mo.disconnect(); }, { once: true });
2109  // SPA (Turbo): the module scripts live in div#scripts[data-turbo-permanent], so the tags of the previous page
2110  // stay. Decide by the incoming page and fix the tags that will stay, before the platform loads scripts.
2111  document.addEventListener('turbo:before-render', function (event) {
2112    var body = event.detail && event.detail.newBody;
2113    if (!body) return;
2114    var next = offIds(body);
2115    applyAll(document, next);
2116    applyAll(body, next);
2117  });
2118})();
2119</script>
vendor: 1 bytes, line 2119
2119
2120<script>
2121(function () {
2122  'use strict';
2123  if (window.__bnLazyFrames) return;
2124  window.__bnLazyFrames = 1;
2125  var io = 'IntersectionObserver' in window ? new IntersectionObserver(function (entries) {
2126    for (var i = 0; i < entries.length; i++) if (entries[i].isIntersecting) load(entries[i].target);
2127  }, { rootMargin: '1200px 0px' }) : null;
2128  function load(frame) {
2129    var src = frame.getAttribute('data-bn-lazy-src');
2130    if (!src) return;
2131    if (io) io.unobserve(frame);
2132    frame.removeAttribute('data-bn-lazy-src');
2133    frame.setAttribute('src', src);
2134  }
2135  function scan() {
2136    var list = document.querySelectorAll('iframe[data-bn-lazy-src]');
2137    for (var i = 0; i < list.length; i++) { if (io) io.observe(list[i]); else load(list[i]); }
2138  }
2139  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', scan); else scan();
2140  document.addEventListener('turbo:load', scan);
2141})();
2142</script>
vendor: 1 bytes, line 2142
2142
2143<script>
2144(function () {
2145  'use strict';
2146  var KEY = '__bnScriptDeferralController';
2147  if (window[KEY]) return;
2148  // Order confirmation (/basket/done/…): <basket-done> emits `purchased` as soon as it renders, and the
2149  // platform never replays a purchase to analytics clients that subscribe later. Holding GTM/gtag here
2150  // until the first gesture dropped the purchase (GA4, Ads, Bing) for every buyer who had not moved yet.
2151  // knowledge_base/gtm-dubli-zdarzen-2026-09-25.md
2152  if (/\/basket\/done(\/|$)/.test(location.pathname)) return;
2153  var NP = Node.prototype, EP = Element.prototype;
2154  var original = { insertBefore: NP.insertBefore, appendChild: NP.appendChild, append: EP.append, prepend: EP.prepend };
2155  var wrappers = {};
2156  var held = [];
2157  var entries = new WeakMap();
2158  var released = false;
2159  var armed = false;
2160  var gestures = ['pointerdown', 'keydown', 'touchstart', 'wheel', 'scroll', 'mousemove'];
2161  var holdIds = { recaptcha: true, 'shopLayer-script': true, 'dataLayer-script': true, 'gtag-jssdk-dataLayer': true };
2162
2163  function shouldHold(node) {
2164    if (released || !node || node.nodeType !== 1 || node.tagName !== 'SCRIPT') return false;
2165    if (Object.prototype.hasOwnProperty.call(holdIds, node.id)) return true;
2166    var src = node.getAttribute('src');
2167    if (!src) return false;
2168    try {
2169      var url = new URL(src, document.baseURI);
2170      return /^(www\.)?googletagmanager\.com$/i.test(url.hostname) && /^(\/gtm\.js|\/gtag\/js)$/.test(url.pathname);
2171    } catch (_) { return false; }
2172  }
2173
2174  function markerFor(node) {
2175    var entry = entries.get(node);
2176    if (!entry) {
2177      entry = { node: node, marker: document.createComment('deferred script') };
2178      entries.set(node, entry);
2179      held.push(entry);
2180    }
2181    return entry.marker;
2182  }
2183
2184  function restore() {
2185    // A later integration may wrap our methods. Never overwrite its wrapper;
2186    // the released wrappers below become transparent delegates in that case.
2187    if (NP.insertBefore === wrappers.insertBefore) NP.insertBefore = original.insertBefore;
2188    if (NP.appendChild === wrappers.appendChild) NP.appendChild = original.appendChild;
2189    if (EP.append === wrappers.append) EP.append = original.append;
2190    if (EP.prepend === wrappers.prepend) EP.prepend = original.prepend;
2191  }
2192
2193  var scheduled = false;
2194  function onGesture() {
2195    // Odlozone skrypty wypuszczamy PO namalowaniu klatki tego gestu. Wstawienie
2196    // 
2196<script> to parsowanie i wykonanie GTM/gtag, a dopoki ono trwa, przegladarka
2197    // nie pokaze reakcji na dotkniecie - dokladnie to mierzy INP. Moment startu
2198    // skryptow bez zmian: nadal pierwszy gest, tylko kilkadziesiat ms pozniej.
2199    // focusin/submit zostaja natychmiastowe: formularz moze od razu potrzebowac reCAPTCHY.
2200    if (released || scheduled) return;
2201    scheduled = true;
2202    disarm();
2203    var run = function () { release('gesture'); };   // release jest idempotentny
2204    // requestAnimationFrame nie przychodzi w ukrytej karcie, a odchodzacy
2205    // odwiedzajacy ma trafic do analityki - stad zapasowy timer i visibilitychange.
2206    setTimeout(run, 300);
2207    document.addEventListener('visibilitychange', function () { if (document.hidden) run(); }, { once: true });
2208    if (typeof requestAnimationFrame === 'function') {
2209      requestAnimationFrame(function () { requestAnimationFrame(function () {
2210        if (typeof requestIdleCallback === 'function') requestIdleCallback(run, { timeout: 150 }); else run();
2211      }); });
2212    } else run();
2213  }
2214  function onFocus(event) {
2215    if (event.target && event.target.closest && event.target.closest('form')) release('form-focus');
2216  }
2217  function onSubmit() { release('submit'); }
2218  function arm() {
2219    if (armed || released) return;
2220    armed = true;
2221    gestures.forEach(function (name) { window.addEventListener(name, onGesture, { capture: true, passive: true }); });
2222    window.addEventListener('focusin', onFocus, true);
2223    document.addEventListener('submit', onSubmit, true);
2224  }
2225  function disarm() {
2226    gestures.forEach(function (name) { window.removeEventListener(name, onGesture, true); });
2227    window.removeEventListener('focusin', onFocus, true);
2228    document.removeEventListener('submit', onSubmit, true);
2229    armed = false;
2230  }
2231
2232  function release(reason) {
2233    if (released) return;
2234    released = true;
2235    disarm();
2236    restore();
2237    var inserted = 0, discarded = 0;
2238    held.forEach(function (entry) {
2239      var marker = entry.marker;
2240      // A removed page/placeholder means its pending script was cancelled.
2241      if (!marker.isConnected || !marker.parentNode) { discarded++; return; }
2242      try {
2243        original.insertBefore.call(marker.parentNode, entry.node, marker);
2244        marker.remove();
2245        inserted++;
2246      } catch (error) {
2247        console.error('[Botanic script deferral] Cannot release deferred script', error);
2248      }
2249    });
2250    window.__bnDeferred = { releasedAt: Date.now(), reason: reason, count: inserted, discarded: discarded };
2251    window.__bnRecaptcha = window.__bnDeferred;
2252    held = [];
2253    entries = new WeakMap();
2254  }
2255
2256  wrappers.insertBefore = function (node, reference) {
2257    if (!shouldHold(node) || node.isConnected) return original.insertBefore.call(this, node, reference);
2258    // Native insertion validates parent/reference before the gesture is armed.
2259    original.insertBefore.call(this, markerFor(node), reference);
2260    arm();
2261    return node;
2262  };
2263  wrappers.appendChild = function (node) {
2264    if (!shouldHold(node) || node.isConnected) return original.appendChild.call(this, node);
2265    original.appendChild.call(this, markerFor(node));
2266    arm();
2267    return node;
2268  };
2269  function variadic(method, parent, nodes) {
2270    var deferred = false;
2271    var values = Array.prototype.map.call(nodes, function (node) {
2272      if (!shouldHold(node) || node.isConnected) return node;
2273      deferred = true;
2274      return markerFor(node);
2275    });
2276    var result = original[method].apply(parent, values);
2277    if (deferred) arm();
2278    return result;
2279  }
2280  wrappers.append = function () { return variadic('append', this, arguments); };
2281  wrappers.prepend = function () { return variadic('prepend', this, arguments); };
2282
2283  window[KEY] = { release: release };
2284  try {
2285    NP.insertBefore = wrappers.insertBefore;
2286    NP.appendChild = wrappers.appendChild;
2287    if (original.append) EP.append = wrappers.append;
2288    if (original.prepend) EP.prepend = wrappers.prepend;
2289  } catch (error) {
2290    release('installation-failed');
2291    console.error('[Botanic script deferral] Installation failed', error);
2292  }
2293})();
2294</script>
2294
2295</div><div 
2296                class="module_type-integration" 
2297                data-integration-module-name="000652b2-bce7-21f1-b802-b1a9f4ec1178" 
2298                data-integration-module-id="623">
2298<script>
2299(function () {
2300  'use strict';
2301  if (window.__bnMetaPixel) return;          /* Turbo пере-исполняет скрипты body */
2302
2303  var CFG = {
2304    pageViewWindowMs:    30000,  /* повтор PageView по тому же path в окне — дроп; 0 = выкл */
2305    viewContentWindowMs: 30000,  /* повтор ViewContent (path + content_ids) — дроп; 0 = выкл */
2306    addToCartWindowMs:    1200,  /* защита от двойного клика/двойного emit; 0 = выкл */
2307    listMode:         'rename',  /* ViewContent за просмотр СПИСКА товаров (VIEW_ITEM_LIST):
2308                                    'rename' — переименовать в кастомное ViewCategory (док. Meta:
2309                                               ViewContent = карточка товара; списки — ViewCategory
2310                                               через trackCustom, 5–10 id),
2311                                    'drop'   — погасить совсем,
2312                                    'keep'   — оставить как есть (поведение платформы) */
2313    listIdsCap:              10,  /* Meta рекомендует 5–10 content_ids в ViewCategory */
2314    disableAutoConfig:   false,  /* true = гасит авто-события пикселя (SubscribedButtonClick),
2315                                    но заодно и Automatic Advanced Matching — по умолчанию выкл,
2316                                    правильнее выключить в Events Manager */
2317    productPathRe:      /\/p\//, /* признак страницы товара: /pl/p/Nazwa/113 */
2318    logLimit:              300
2319  };
2320
2321  var st = {
2322    cfg: CFG,
2323    t0: Math.round(performance.now()),        /* когда встал хук */
2324    fbqAtInstall: typeof window.fbq,          /* 'undefined' = успели раньше платформы */
2325    kept: 0, dropped: 0, log: [], last: {}
2326  };
2327  window.__bnMetaPixel = st;
2328
2329  st.summary = function () {
2330    var o = {};
2331    for (var i = 0; i < st.log.length; i++) {
2332      var r = st.log[i], k = r.event + ' ' + r.action + (r.reason ? ':' + r.reason : '');
2333      o[k] = (o[k] || 0) + 1;
2334    }
2335    return o;
2336  };
2337
2338  function note(action, name, reason) {
2339    if (st.log.length < CFG.logLimit) {
2340      st.log.push({
2341        t: Math.round(performance.now()),
2342        path: location.pathname,
2343        event: name, action: action, reason: reason || ''
2344      });
2345    }
2346    if (action === 'drop') { st.dropped++; } else { st.kept++; }
2347  }
2348
2349  /* fbq('track'|'trackCustom', name, data) | fbq('trackSingle'|'trackSingleCustom', pixel, name, data) */
2350  function parse(args) {
2351    var m = args[0];
2352    if (m === 'track' || m === 'trackCustom') return { name: args[1], data: args[2] };
2353    if (m === 'trackSingle' || m === 'trackSingleCustom') return { name: args[2], data: args[3] };
2354    return null;
2355  }
2356
2357  function idList(data) {
2358    var c = data && data.content_ids;
2359    if (!c) return [];
2360    return (Object.prototype.toString.call(c) === '[object Array]') ? c : [c];
2361  }
2362
2363  function isList(data) {
2364    var ids = idList(data);
2365    return ids.length !== 1 || !CFG.productPathRe.test(location.pathname);
2366  }
2367
2368  /* {act:'pass'} | {act:'drop', why} | {act:'rename', to:'ViewCategory'} */
2369  function decide(name, data) {
2370    var now = Date.now(), key, win, renameTo = null;
2371
2372    if (name === 'PageView') {
2373      key = 'PV|' + location.pathname;
2374      win = CFG.pageViewWindowMs;
2375
2376    } else if (name === 'ViewContent') {
2377      var ids = idList(data);
2378      if (isList(data)) {
2379        if (CFG.listMode === 'drop') return { act: 'drop', why: 'list' };
2380        if (CFG.listMode === 'rename') renameTo = 'ViewCategory';
2381      }
2382      key = (renameTo || 'VC') + '|' + location.pathname + '|' + ids.slice().sort().join(',');
2383      win = CFG.viewContentWindowMs;
2384
2385    } else if (name === 'AddToCart') {
2386      key = 'ATC|' + idList(data).slice().sort().join(',') + '|' + (data && data.value);
2387      win = CFG.addToCartWindowMs;
2388
2389    } else {
2390      return { act: 'pass' };                 /* Purchase, InitiateCheckout, Search… — как есть */
2391    }
2392
2393    if (win) {
2394      var prev = st.last[key];
2395      if (prev && (now - prev) < win) return { act: 'drop', why: 'repeat' };
2396      st.last[key] = now;                     /* метку двигаем ТОЛЬКО когда пропустили */
2397    }
2398    return renameTo ? { act: 'rename', to: renameTo } : { act: 'pass' };
2399  }
2400
2401  /* trackSingle -> trackSingleCustom, track -> trackCustom, с новым именем */
2402  function rebuild(args, to) {
2403    var a = Array.prototype.slice.call(args), nameIdx, data;
2404    if (a[0] === 'track') { a[0] = 'trackCustom'; nameIdx = 1; }
2405    else if (a[0] === 'trackSingle') { a[0] = 'trackSingleCustom'; nameIdx = 2; }
2406    else return a;
2407    a[nameIdx] = to;
2408    data = a[nameIdx + 1];
2409    if (data && data.content_ids && data.content_ids.length > CFG.listIdsCap) {
2410      var copy = {}, k;
2411      for (k in data) { if (Object.prototype.hasOwnProperty.call(data, k)) copy[k] = data[k]; }
2412      copy.content_ids = data.content_ids.slice(0, CFG.listIdsCap);
2413      a[nameIdx + 1] = copy;
2414    }
2415    return a;
2416  }
2417
2418  var autoCfgDone = {};
2419
2420  function wrap(fn) {
2421    if (typeof Proxy !== 'function') return fn;
2422    try {
2423      return new Proxy(fn, {
2424        apply: function (target, thisArg, args) {
2425          try {
2426            var p = parse(args);
2427            if (p && p.name) {
2428              var d = decide(p.name, p.data);
2429              if (d.act === 'drop') { note('drop', p.name, d.why); return undefined; }
2430              if (d.act === 'rename') {
2431                note('rename', p.name, '-> ' + d.to);
2432                return target.apply(thisArg, rebuild(args, d.to));
2433              }
2434              note('keep', p.name);
2435            }
2436          } catch (e) { /* сомнение — в пользу события */ }
2437
2438          var res = target.apply(thisArg, args);
2439
2440          if (CFG.disableAutoConfig && args[0] === 'init' && args[1] && !autoCfgDone[args[1]]) {
2441            autoCfgDone[args[1]] = 1;
2442            try { target.apply(thisArg, ['set', 'autoConfig', false, args[1]]); } catch (e) {}
2443          }
2444          return res;
2445        }
2446      });
2447    } catch (e) { return fn; }
2448  }
2449
2450  var slot = {};
2451  ['fbq', '_fbq'].forEach(function (prop) {
2452    var current = window[prop];
2453    try {
2454      Object.defineProperty(window, prop, {
2455        configurable: true,
2456        enumerable: true,
2457        get: function () { return slot[prop]; },
2458        set: function (v) { slot[prop] = (typeof v === 'function') ? wrap(v) : v; }
2459      });
2460    } catch (e) { return; }
2461    if (current !== undefined) { window[prop] = current; }
2462  });
2463})();
2464</script>
2464</div><div 
2465                class="module_type-integration" 
2466                data-integration-module-name="000652b2-bce7-21f1-9602-1b7fbec78728" 
2467                data-integration-module-id="630"><!-- BN-FOOTER-FALLBACK-2026-08-19: tylko dla stron bez osobnego modułu Footer -->
2468<template id="bn-footer-fallback-template"><footer class="bn-footer">
2469  <div class="bn-fwrap">
2470    <div class="bn-footer__main">
2471      <div class="bn-footer__col bn-footer__brand">
2472        <a class="bn-footer__logo" href="/" aria-label="Botanic"><img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+PCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj48c3ZnIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHZpZXdCb3g9IjAgMCA2MjIxIDEzNTIiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM6c2VyaWY9Imh0dHA6Ly93d3cuc2VyaWYuY29tLyIgc3R5bGU9ImZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoyOyI+PHJlY3QgaWQ9IlBhZ2UtMiIg
2472c2VyaWY6aWQ9IlBhZ2UgMiIgeD0iMCIgeT0iMCIgd2lkdGg9IjYyMjEiIGhlaWdodD0iMTM1MS4zMzMiIHN0eWxlPSJmaWxsOm5vbmU7Ii8+PGNsaXBQYXRoIGlkPSJfY2xpcDEiPjxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSI2MjIxIiBoZWlnaHQ9IjEzNTEuMzMzIi8+PC9jbGlwUGF0aD48ZyBjbGlwLXBhdGg9InVybCgjX2NsaXAxKSI+PGcgaWQ9IkxheWVyLTEiIHNlcmlmOmlkPSJMYXllciAxIj48L2c+PGc+PHBhdGggZD0iTTcwNS45NSw4NzIuMjg5YzAsLTE2Mi4wNjkgLTExMS42NTQsLTI3MS45MjIgLTI0MS4zMjEsLTI3MS45MjJjLTEzMy4yNjksMCAtMjQzLjEyMiwxMDguMDUyIC0yNDMuMTIyLDI3MS45MjJjMCwxNjIuMDg3IDEwOS44NTMsMjcxLjk0MSAyNDMuMTIyLDI3MS45NDFjMTI5LjY2NiwwIDI0MS4zMjEsLTEwOS44NTMgMjQxLjMyMSwtMjcxLjk0MW0tNDg4LjA0NSw0NTcuNDI1bC0yMTcuOTA1LDBsMCwtMTI3OC42MTRsMjMyLjMxNSwtMGwwLDQ3My42MTdjNTAuNDMzLC03Ny40MzIgMTYyLjA2OSwtMTM1LjA1MiAyODAuOTQ2LC0xMzUuMDUyYzIzNC4wOTgsMCA0MjYuODA1LDE5Ni4yOTEgNDI2LjgwNSw0ODAuODIyYzAsMjg0LjU0OSAtMTkyLjcwNyw0ODAuODQgLTQzMC40MjYsNDgwLjg0Yy0xMjIuNDYxLDAgLTI0MS4zMDIsLTYxLjI0IC0yOTEuNzM1LC0xNDUuODc3bDAsMTI0LjI2M1oiIHN0eWxlPSJmaWxsOiNmMGY3ZWQ7ZmlsbC1ydWxlOm5vbnplcm87Ii8+PHBhdGggZD0iTTI3NjAuNTk4LDEzMTUuMzA2Yy0zNy44MDYsMjEuNjE0IC05NS40NDQsMzYuMDIzIC0xNzEuMDc1LDM2LjAyM2MtMTg5LjA4NywwIC0zMDYuMTQ1LC0xMTEuNjU0IC0zMDYuMTQ1LC0zMDkuNzQ3bDAsLTQ0My4wMzRsLTEyOS42NjYsMGwwLC0xODcuMjg1bDEzNi44NzEsMGwwLC0yMDguOWwyMjYuOTExLC01OS40MmwwLDI2OC4zMmwyMjEuNTA4LDBsMCwxODcuMjg1bC0yMjEuNTA4LDBsMCw0MTAuNjEzYzAsOTMuNjQzIDQ4LjYzMiwxMzMuMjY5IDEzNS4wNywxMzMuMjY5YzI1LjE5OCwwIDcwLjIyOCwtNy4yMDUgMTA4LjAzNCwtMjguODE5bDAsMjAxLjY5NVoiIHN0eWxlPSJmaWxsOiNmMGY3ZWQ7ZmlsbC1ydWxlOm5vbnplcm87Ii8+PHBhdGggZD0iTTM0NDMuMDc1LDk1Ni45MzFsMCwtMzQuMjA0bC0xODUuNDg0LDIzLjM5N2MtMTAwLjg0NywxMi42MDggLTE1OC40ODUsNTQuMDE3IC0xNTguNDg1LDEyMC42NmMwLDYzLjAyMyA1Mi4yMzQsMTAyLjY0OSAxMjcuODY1LDEwMi42NDljMTE4Ljg1OSwwIDIxNi4xMDQsLTk3LjI0NSAyMTYuMTA0LC0yMTIuNTAybS0xNzYuNDc4LC01NjcuMjc4YzIzNC4xMTYsMCA0MDMuMzksMTI3Ljg2NSA0MDMuMzksMzYwLjE4bDAsNTc5Ljg4NmwtMjE3LjkwNSwwbDAsLTEyNy44NjVjLTU3LjYzOCw5My42NDMgLTE1Ni42NjYsMTQ5LjQ3OSAtMjc3LjMyNiwxNDkuNDc5Yy0xNzIuODk0LDAgLTI5OC45NTgsLTEwOS44NTMgLTI5O
2472C45NTgsLTI2MS4xMzRjMCwtMTYwLjI4NiAxMTguODc3LC0yNTIuMTI4IDMzMy4xNjIsLTI4NC41MzFsMjMyLjMxNSwtMzQuMjIybDAsLTI1LjIxNmMwLC05NS40NDQgLTc1LjYzMSwtMTUxLjI4IC0xOTIuNjg5LC0xNTEuMjhjLTEyMi40NjEsMCAtMjM0LjExNiw1Mi4yMzQgLTMwMi41NDIsMTAyLjY2N2wwLC0yMTkuNzI1Yzc3LjQzMiwtNTAuNDE1IDE5Ni4yOTEsLTg4LjIzOSAzMjAuNTU0LC04OC4yMzkiIHN0eWxlPSJmaWxsOiNmMGY3ZWQ7ZmlsbC1ydWxlOm5vbnplcm87Ii8+PHBhdGggZD0iTTQ0MzUuMjg2LDM4OS42NmMyMTIuNTIsMCAzNTYuNTc3LDE0Mi4yNzQgMzU2LjU3NywzODEuNzc2bDAsNTU4LjI3MmwtMjM0LjExNiwwbDAsLTUyOS40NTRjMCwtMTMzLjI1IC03OS4yMzMsLTIwMS42OTUgLTE4My42ODMsLTIwMS42OTVjLTE1NC44ODMsMCAtMjEyLjUwMiwxMzguNjcyIC0yMTIuNTAyLDI1Ny41MzFsMCw0NzMuNjE3bC0yMzQuMTE2LDBsMCwtOTE4LjQ1MmwyMjUuMTEsMGwwLDEyNC4yODFjNTIuMjE2LC04OC4yNTcgMTQ0LjA3NiwtMTQ1Ljg3NyAyODIuNzI5LC0xNDUuODc3IiBzdHlsZT0iZmlsbDojZjBmN2VkO2ZpbGwtcnVsZTpub256ZXJvOyIvPjxwYXRoIGQ9Ik01MDQ3LjUzMiw0MTEuMjZsMjM0LjExNiwwbDAsOTE4LjQ1MmwtMjM0LjExNiwwbDAsLTkxOC40NTJabTI1Mi4xMDksLTI2Ni41MTljMCw3NS42MzEgLTU5LjQyLDEzMy4yNjkgLTEzMy4yNSwxMzMuMjY5Yy03NS42MzEsMCAtMTM2Ljg3MSwtNTcuNjM4IC0xMzYuODcxLC0xMzMuMjY5YzAsLTc1LjYzMSA2MS4yNCwtMTMzLjI2OSAxMzYuODcxLC0xMzMuMjY5YzczLjgzLDAgMTMzLjI1LDU3LjYzOCAxMzMuMjUsMTMzLjI2OSIgc3R5bGU9ImZpbGw6I2YwZjdlZDtmaWxsLXJ1bGU6bm9uemVybzsiLz48cGF0aCBkPSJNNjIxNi4yMzksNjY2Ljk5N2MtNjEuMjIyLC00My4yMjggLTE0OS40NzksLTY2LjY0MyAtMjIxLjUwOCwtNjYuNjQzYy0xNjMuODg4LDAgLTI3NS41MjUsMTExLjY1NCAtMjc1LjUyNSwyNzEuOTQxYzAsMTQ5LjQ3OSAxMDQuNDUsMjY4LjMzOCAyNzUuNTI1LDI2OC4zMzhjNzkuMjUyLDAgMTYzLjg3LC0yMS42MTQgMjIzLjMwOSwtNjguNDQ1bDAsMjIxLjUwOGMtNjYuNjI1LDQxLjQyNyAtMTY3LjQ3Myw1Ny42MzggLTI1Mi4xMjgsNTcuNjM4Yy0yNzkuMTQ1LDAgLTQ4NC40NDIsLTIwNy4xMTcgLTQ4NC40NDIsLTQ3OS4wMzljMCwtMjczLjc0MiAyMDEuNzEzLC00ODIuNjQxIDQ4Ni4yNDQsLTQ4Mi42NDFjODQuNjM3LDAgMTgwLjA4MSwxOS44MTMgMjQ4LjUyNSw1Ny42MzhsMCwyMTkuNzA3WiIgc3R5bGU9ImZpbGw6I2YwZjdlZDtmaWxsLXJ1bGU6bm9uemVybzsiLz48cGF0aCBkPSJNMTU2My4wODEsMTEzNy4wMTljLTE0NS44NzcsMCAtMjUwLjMyNywtMTE1LjI1NyAtMjUwLjMyNywtMjY2LjUxOWMwLC0xNTEuMjggMTA0LjQ1LC0yNjYuNTM3IDI1MC4zMjcsLTI2Ni41MzdjMTQ0LjA1NywwIDI0OC41MjUsMTE1LjI1NyAyNDguNTI1LDI2Ni41MzdjMCwxNTEuMjYyIC0xMDQuNDY4LDI2Ni41MTkgLTI0OC41MjUsMjY2LjUxOW05My43ODgsLTczOS4xMzVsNTguODM4LDBjMTg2Ljk3NiwwIDMzOC41NjYsLTE1MS41OSAzMzguNTY2LC0zMzguNTY2bC0xNDYuNzg2LDBjLTE4NC4yNDcsMCAtMzMzLjgxNywxNDcuMjc4IC0zMzguMTQ3LDMzMC40ODhjLTIuMDkyLC0wLjAxOCAtNC4xNDgsLTAuMTQ2IC02LjI1OSwtMC4xNDZjLTIuNzExLDAgLTUuMzY3LDAuMTQ2IC04LjA2LDAuMTgyYy00LjMxMiwtMTgzLjIyOCAtMTUzLjg4MiwtMzMwLjUyNCAtMzM4LjE2NSwtMzMwLjUyNGwtMTQ2Ljc2OCwwYzAsMTg2Ljk3NiAxNTEuNTksMzM4LjU2NiAzMzguNTY2LDMzOC41NjZsNjAuMDc1LDBjLTIzMi41MzMsNDAuODgxIC0zOTEuODkxLDIzMi4wMDYgLTM5MS44OTEsNDcyLjYxN2MwLDI3MS45MjIgMjAzLjQ5Niw0ODAuODIyIDQ4Ni4yNDQsNDgwLjgyMmMyODAuOTI4LDAgNDg0LjQyNCwtMjA4LjkgNDg0LjQyNCwtNDgwLjgyMmMwLC0yNDAuNjExIC0xNTkuMzQsLTQzMS43MzUgLTM5MC42MzYsLTQ3Mi42MTciIHN0eWxlPSJmaWxsOiNiY2ZkYWM7ZmlsbC1ydWxlOm5vbnplcm87Ii8+PC9nPjwvZz48L3N2Zz4=" alt="Botanic"></a>
2473        <p class="bn-footer__about">Producent szklarni ogrodowych z poliwęglanu, wiat samochodowych i&nbsp;zadaszeń basenowych.</p>
2474        <div class="bn-footer__contact">
2475          <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>
2476          <div class="bn-footer__hours">Pon.–Pt. 8:00–17:00</div>
2477        </div>
2478      </div>
2479      <div class="bn-footer__col">
2480        <h3 class="bn-footer__title">Kategorie</h3>
2481        <ul class="bn-footer__list">
2482          <li><a href="/szklarnie">Szklarnie z poliwęglanu</a></li>
2483          <li><a href="/wiaty-samochodowe">Wiaty samochodowe</a></li>
2484          <li><a href="/grzadki-i-klomby">Grządki i klomby</a></li>
2485          <li><a href="/pl/c/Zadaszenia-basenowe/50">Zadaszenia basenowe</a></li>
2486        </ul>
2487      </div>
2488      <div class="bn-footer__col">
2489        <h3 class="bn-footer__title">Informacje</h3>
2490        <ul class="bn-footer__list">
2491          <li><a href="/o-nas">O nas</a></li>
2492          <li><a href="/pl/i/Jak-wybrac-szklarnie.-Poradnik/33">Jak wybrać szklarnię. Poradnik</a></li>
2493          <li><a href="/pl/i/Malowanie-konstrukcji/23">Malowanie konstrukcji</a></li>
2494          <li><a href="/pl/i/Tasmy-i-profile/37">Taśmy i profile</a></li>
2495          <li><a href="/formy-platnosci">Formy płatności</a></li>
2496          <li><a href="/pl/blog">Blog</a></li>
2497          <li><a href="/realizacje">Realizacje</a></li>
2498          <li><a href="/montaz-szklarni">Montaż szklarni</a></li>
2499          <li><a href="/pl/i/Nasi-Partnerzy/36">Nasi Partnerzy</a></li>
2500          <li><a href="/mapa-strony">Mapa strony</a></li>
2501          <li><a href="/contact">Kontakt</a></li>
2502        </ul>
2503      </div>
2504      <div class="bn-footer__col">
2505        <h3 class="bn-footer__title">Pomoc</h3>
2506        <ul class="bn-footer__list">
2507          <li><a href="/pl/i/Zwroty-i-reklamacje/7">Zwroty i reklamacje</a></li>
2508          <li><a href="/pl/i/Program-afiliacyjny-Botanic/21">Program afiliacyjny Botanic</a></li>
2509          <li><a href="/faq">FAQ</a></li>
2510          <li><a href="/regulamin">Regulamin sklepu</a></li>
2511          <li><a href="/polityka-prywatnosci">Polityka prywatności</a></li>
2512          <li><a href="/jak-kupic-na-raty">Jak kupić na raty?</a></li>
2513          <li><a href="/pl/i/Zostan-Partnerem-B2B/35">Zostań Partnerem B2B</a></li>
2514        </ul>
2515      </div>
2516    </div>
2517    <div class="bn-footer__bottom">
2518      <p>© 2026 Botanic. Wszystkie prawa zastrzeżone.</p>
2519    </div>
2520  </div>
2521  <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>
2522</footer></template>
2523<script>
2524(function(){
2525  function mountFallback(){
2526    if(document.querySelector(".bn-footer"))return;
2527    var t=document.getElementById("bn-footer-fallback-template");
2528    if(!t)return;
2529    var frag=t.content.cloneNode(true);
2530    var nativeFooter=document.getElementById("main-footer");
2531    if(nativeFooter&&nativeFooter.parentNode)nativeFooter.parentNode.insertBefore(frag,nativeFooter);
2532    else document.body.appendChild(frag);
2533  }
2534  if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",mountFallback);else mountFallback();
2535})();
2536</script>
2536</div><div 
2537                class="module_type-integration" 
2538                data-integration-module-name="000652b2-bce7-21f1-bd02-137e7f90380f" 
2539                data-integration-module-id="631">
2540<script>
2541/* 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ę. */
2542(function(){
2543  function run(){
2544    var view=document.querySelector('.gc__category__view');
2545    if(!view)return false;if(view.__bnDescMoved)return true;
2546    var list=view.querySelector('product-list');
2547    if(!list)return false;
2548    /* kolumna produktów = bezpośrednie dziecko wiersza view, które zawiera product-list;
2549       listRow = bezpośrednie dziecko tej kolumny zawierające product-list */
2550    var row=view.children[0]||view;
2551    var prodCol=null;
2552    [].forEach.call(row.children,function(c){if(c.querySelector&&c.querySelector('product-list'))prodCol=c;});
2553    if(!prodCol)return false;
2554    var listRow=null;
2555    [].forEach.call(prodCol.children,function(c){if(c===list||(c.querySelector&&c.querySelector('product-list')))listRow=c;});
2556    if(!listRow)return false;
2557    var kids=[].slice.call(prodCol.children);
2558    var li=kids.indexOf(listRow);
2559    if(li<1){view.__bnDescMoved=1;return true;}
2560    var anchor=listRow.nextSibling, moved=0;
2561    for(var i=1;i<li;i++){ /* i=0 to nagłówek (tytuł+licznik) — zostaje na górze */
2562      var el=kids[i];
2563      if(el.querySelector&&(el.querySelector('product-list')||el.querySelector('.tile-grid')))continue;
2564      if((el.textContent||'').trim().length<80)continue;
2565      prodCol.insertBefore(el,anchor);
2566      moved++;
2567    }
2568    view.__bnDescMoved=1;return true;
2569  }
2570  /* Bez listingu nie ma na co czekac: na stronie glownej, karcie produktu i
2571     stronach informacyjnych 40 prob co 300 ms chodzilo na pusto. */
2572  var t=0;function boot(){var done=function(){document.documentElement.classList.add('bn-cat-ready');};
2573    if(run()){done();return;}
2574    if(!document.querySelector('.gc__category__view,.gc__main__category__column,product-list')){done();return;}
2575    if(t++<40){setTimeout(boot,300);return;}
2576    done();}
2577  window.__bnCatDescBoot=boot;
2578  boot();
2579})();
2580</script>
2580
2581
2582<script>
2583/* 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"). */
2584(function(){
2585  function urlOf(t){
2586    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=""])');
2587    return a?a.getAttribute('href'):null;
2588  }
2589  function run(){
2590    var tiles=document.querySelectorAll('.tile-grid .product-tile');
2591    [].forEach.call(tiles,function(t){
2592      if(t.__bnCta)return;
2593      var footer=t.querySelector('.product-tile__footer');
2594      var href=urlOf(t);
2595      if(!footer||!href)return;
2596      [].forEach.call(footer.querySelectorAll('.btn_primary,button,a.btn,a[class*="button"]'),function(b){b.style.setProperty('display','none','important');});
2597      if(!footer.querySelector('.bn-tile-cta')){
2598        var a=document.createElement('a');
2599        a.className='bn-tile-cta';a.setAttribute('href',href);a.textContent='Zobacz produkt';
2600        footer.appendChild(a);
2601      }
2602      t.__bnCta=1;
2603    });
2604  }
2605  var mo;
2606  function boot(){
2607    run();
2608    if(!mo){
2609      /* Bez siatki kafelkow nie ma czego obserwowac - obserwator na <body> chodzil
2610         na pusto przez 15 s na kazdej stronie bez listingu. Gdy kafelki pojawia sie
2611         pozniej (SPA), wspolna magistrala zawola boot() ponownie. */
2612      var g=document.querySelector('.gc__category__view')||document.querySelector('.tile-grid');
2613      if(!g)return;
2614      mo=new MutationObserver(function(){run();});
2615      mo.observe(g,{childList:true,subtree:true});
2616      setTimeout(function(){if(mo){mo.disconnect();mo=null;}},15000);
2617    }
2618  }
2619  window.__bnCatCtaBoot=boot;
2620})();
2621</script>
2621
2622
2623<script>
2624/* ===== SPA-obwódka: oryginalne inline-skrypty przebiegały przy każdej SPA-nawigacji;
2625   moduł wykonuje się raz — adaptacje restartuje wspólny obserwator document (debounce 150 ms). ===== */
2626(function(){
2627  var t=null;
2628  function call(f){try{f&&f();}catch(e){}}
2629  function bootAll(){
2630    call(window.__bnCatDescBoot);
2631    call(window.__bnCatCtaBoot);
2632  }
2633  if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',bootAll);else bootAll();
2634  setTimeout(bootAll,1500);
2635/* Jedna wspolna magistrala obserwatora DOM zamiast osobnego MutationObservera
2636   w kazdym module. Dwie kolejki: natychmiastowa (przenoszenie blokow — musi
2637   zdazyc w tej samej klatce, inaczej po nawigacji SPA mignie natywna stopka)
2638   i odlozona o 150 ms (synchronizacja licznikow — tak bylo i wczesniej). */
2639  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});}};})();
2640  /* Skrypt modulu integracyjnego wykonuje sie ponownie przy kazdej nawigacji
2641     SPA (Turbo podstawia nowe <body> razem z nim), wiec subskrybujemy raz.
2642     bootAll siega po window.__bnCatDescBoot/__bnCatCtaBoot, ktore kazde
2643     wykonanie nadpisuje swiezymi, wiec zachowanie zostaje to samo. */
2644  if(!window.__bnTilesBound){window.__bnTilesBound=1;window.__bnDomWatch(bootAll,true);}
2645})();
2646</script>
2646</div><div 
2647                class="module_type-integration" 
2648                data-integration-module-name="000652b2-bce7-21f1-9202-7ddddc447704" 
2649                data-integration-module-id="643"></div><div 
2650                class="module_type-integration" 
2651                data-integration-module-name="0007ada2-a3c4-21f1-ba02-eb91070d7cc6" 
2652                data-integration-module-id="433">
2653<div
2654  class="gc-category-enhancements"
2655  data-gc-category-enhancements
2656  data-desktop-sidebar="1"
2657  data-desktop-categories="1"
2658  data-quick-filters-desktop="0"
2659  data-quick-filters-mobile="1"
2660  data-price-slider="1"
2661  data-collapse-groups="1"
2662  data-open-price="1"
2663  data-filter-search="1"
2664  data-desktop-scale="1"
2665  data-mobile-view="1"
2666  hidden
2667  aria-hidden="true"
2668></div>
2669</div>
2670
2671
2672<div id="scripts" data-turbo-permanent>
2673    <link id="app-translations" href="//botanic.com.pl/userdata/public/skins/7f68b08a74977525acdb9dc1b97fc796_copy_27/cache/MzM6MTc6NS4yNi41Ng.pl_PL.json" type="text/script" crossorigin/>
2674
2675                        
2675<script type="module" src="//botanic.com.pl/application/assets/storefront/storefrontApp.CsApItsi.min.js"></script>
2675
2676                                
2676<script type="module" src="//botanic.com.pl/application/assets/storefront/phoenixComponentsLazyLoader.BefGyk50.min.js"></script>
2676
2677                                
2677<script type="module" data-src="/userdata/public/storefront/js/110_de32438e7aae7b5449a40005b77206762cbc6cab.js" data-script-module-id="110"></script>
2677
2678                                
2678<script type="module" data-src="/userdata/public/storefront/js/111_f0f1a013787c945a45e0ecfacf99636a585458ae.js" data-script-module-id="111"></script>
2678
2679                                
2679<script type="module" data-src="/userdata/public/storefront/js/138_659f19e1fdfa6b5f8555fdba8ef2463711d87b40.js" data-script-module-id="138"></script>
2679
2680                                
2680<script type="module" data-src="/userdata/public/storefront/js/140_9f966b868feff1ca0e2df559ea80685b1feecdc4.js" data-script-module-id="140"></script>
2680
2681                                
2681<script type="module" data-src="/userdata/public/storefront/js/142_06bd4d5d641b6cf3d40a7b06b9996a3299636276.js" data-script-module-id="142"></script>
2681
2682                                
2682<script type="module" data-src="/userdata/public/storefront/js/145_a993d258baaecb8bec21f6f735597253fd3f787f.js" data-script-module-id="145"></script>
2682
2683                                
2683<script type="module" data-src="/userdata/public/storefront/js/147_ceaa0b49157afe9dbd204918ec52e546e69ae206.js" data-script-module-id="147"></script>
2683
2684                                
2684<script type="module" data-src="/userdata/public/storefront/js/148_f5efd1b7c03b37d77da7e0bbbf21d20b7edca07a.js" data-script-module-id="148"></script>
2684
2685                                
2685<script type="module" data-src="/userdata/public/storefront/js/149_f33fe3e7b7ea6922dee5bd4d5bc41f0e7d6b858b.js" data-script-module-id="149"></script>
2685
2686                                
2686<script type="module" data-src="/userdata/public/storefront/js/153_6ed97f65ac00618a93368e98a6303fbba7bc23cf.js" data-script-module-id="153"></script>
2686
2687                                
2687<script type="module" data-src="/userdata/public/storefront/js/159_6656c35a41d4994dea8d8d9ee50aab1e6aaf9f49.js" data-script-module-id="159"></script>
2687
2688                                
2688<script type="module" data-src="/userdata/public/storefront/js/162_7d8a7c7247c6898b93582f0d3f452731fbc490c4.js" data-script-module-id="162"></script>
2688
2689                                
2689<script type="module" data-src="/userdata/public/storefront/js/165_93a52c4d3a681be5181efd4706799649c7fc0cca.js" data-script-module-id="165"></script>
2689
2690                                
2690<script type="module" data-src="/userdata/public/storefront/js/166_75c8eb5cd4938a8195ca520ec7caee6d85cd3f9c.js" data-script-module-id="166"></script>
2690
2691                                
2691<script type="module" data-src="/userdata/public/storefront/js/167_f93d5e42591fc42767694888e9d1ce36cab24811.js" data-script-module-id="167"></script>
2691
2692                                
2692<script type="module" data-src="/userdata/public/storefront/js/169_bf0268affa8a7036f495f45abaff4926dfeef6d1.js" data-script-module-id="169"></script>
2692
2693                                
2693<script type="module" data-src="/userdata/public/storefront/js/170_adadcf6676a57074c86f7630724d7f57262d9463.js" data-script-module-id="170"></script>
2693
2694                                
2694<script type="module" data-src="/userdata/public/storefront/js/172_d578172038e4c7c087a3b0e62c51c1fd6189b302.js" data-script-module-id="172"></script>
2694
2695                                
2695<script type="module" data-src="/userdata/public/storefront/js/173_438429fb3f926ea5b23f220b75e7a5e185c313a6.js" data-script-module-id="173"></script>
2695
2696                                
2696<script type="module" data-src="/userdata/public/storefront/js/174_8c4ea70871eabb43952f905becc42556dabb632a.js" data-script-module-id="174"></script>
2696
2697                                
2697<script type="module" data-src="/userdata/public/storefront/js/175_3060b5c80a693625b93e64698dad52debdb5ab68.js" data-script-module-id="175"></script>
2697
2698                                
2698<script type="module" data-src="/userdata/public/storefront/js/177_8cba5d441e19383c8a61a4f3e1477408d268bafd.js" data-script-module-id="177"></script>
2698
2699                                
2699<script type="module" data-src="/userdata/public/storefront/js/178_58ae91ccdf4d600d2cfa972505cbf4ce599fcc6b.js" data-script-module-id="178"></script>
2699
2700                                
2700<script type="module" data-src="/userdata/public/storefront/js/179_bd1426d4fb008588c8bfd1b4b394457e0ac843a9.js" data-script-module-id="179"></script>
2700
2701                                
2701<script type="module" data-src="/userdata/public/storefront/js/181_a12fcbba06a8038ad0b7dc28854468e86ff4176b.js" data-script-module-id="181"></script>
2701
2702                                
2702<script type="module" data-src="/userdata/public/storefront/js/184_15b67d540cba1421e1db2e8d484a6d1f388bb756.js" data-script-module-id="184"></script>
2702
2703                                
2703<script type="module" data-src="/userdata/public/storefront/js/433_e9c5bc8e15a4f9417a02445a223ced6087ab310e.js" data-script-module-id="433"></script>
2703
2704                                
2704<script type="module" data-src="/userdata/public/storefront/js/609_a0816bafbbed9eba2fcf11d56cbc0ad1def672c0.js" data-script-module-id="609"></script>
2704
2705                                
2705<script type="module" data-src="/userdata/public/storefront/js/610_82642d3f8216227932a0ae3dc8822fc88f863bdf.js" data-script-module-id="610"></script>
2705
2706                                
2706<script type="module" data-src="/userdata/public/storefront/js/611_666c5f8c648f92596402cbe7761256928e51d66c.js" data-script-module-id="611"></script>
2706
2707                                
2707<script type="module" data-src="/userdata/public/storefront/js/612_9ebd9cb2b59288a4630821f6d5c83679e00760c0.js" data-script-module-id="612"></script>
2707
2708                                
2708<script type="module" data-src="/userdata/public/storefront/js/613_ae05bb2da894a3b3de446b2b92b3523db9f17ad0.js" data-script-module-id="613"></script>
2708
2709                                
2709<script type="module" data-src="/userdata/public/storefront/js/620_1eb063986af385efce69b101c484213bd0cf4cb3.js" data-script-module-id="620"></script>
2709
2710                                
2710<script type="module" data-src="/userdata/public/storefront/js/625_5ced1a50a6aad4b26c3d79a88c66452f1ad62fee.js" data-script-module-id="625"></script>
2710
2711                                
2711<script type="module" data-src="/userdata/public/storefront/js/626_597c26153bd73bb55f9dfdc233523bf57415cc2b.js" data-script-module-id="626"></script>
2711
2712                                
2712<script type="module" data-src="/userdata/public/storefront/js/638_d320b9cd62cc265857655342bc3a82ba055d952a.js" data-script-module-id="638"></script>
2712
2713            </div>
2714</body>
2715</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.