1<!DOCTYPE html> 2<html lang="pl" x-data="{ darkMode: localStorage.getItem('theme') === 'dark' }" :class="{ 'dark-mode': darkMode }" x-init="$watch('darkMode', v => localStorage.setItem('theme', v ? 'dark' : 'light'))"> 3<head> 4 <meta charset="utf-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1"> 6 <meta name="csrf-token" content="7fnFIDg2CrWBWwL477Y9yajm18Dj3l0EHKIjSrrh"> 7 <meta name="csp-nonce" content="f5JW+fkiog4AiV4Abv5c6Q=="> 8 <title>IVC Katalog Firm</title> 9 <meta name="description" content="PrzeglÄ daj tysiÄ ce firm z caÅej Polski, czytaj opinie, porównuj oferty."> 10 <link rel="canonical" href="https://ivc.pl"> 11 <meta name="robots" content="FOLLOW, INDEX, MAX-SNIPPET:-1, MAX-VIDEO-PREVIEW:-1, MAX-IMAGE-PREVIEW:LARGE"> 12 <link rel="shortcut icon" type="image/png" href="https://ivc.pl/img/favicon.png"> 13 14 15 <meta property="og:title" content="IVC Katalog Firm"> 16 <meta property="og:description" content="PrzeglÄ daj tysiÄ ce firm z caÅej Polski, czytaj opinie, porównuj oferty."> 17 <meta property="og:type" content="website"> 18 <meta property="og:url" content="https://ivc.pl"> 19 <meta property="og:image" content="https://ivc.pl/img/og-default.png"> 20 <meta property="og:site_name" content="IVC Katalog Firm"> 21 <meta property="og:locale" content="pl_PL"> 22 23 24 <meta name="twitter:card" content="summary_large_image"> 25 <meta name="twitter:title" content="IVC Katalog Firm"> 26 <meta name="twitter:description" content="PrzeglÄ daj tysiÄ ce firm z caÅej Polski, czytaj opinie, porównuj oferty."> 27 <meta name="twitter:image" content="https://ivc.pl/img/og-default.png"> 28 29
29<script type="application/ld+json">{"<?php $__contextArgs = [];\nif (context()->has($__contextArgs[0])) :\nif (isset($value)) { $__contextPrevious[] = $value; }\n$value = context()->get($__contextArgs[0]); ?>":"https://schema.org","@type":"WebSite","name":"IVC Katalog Firm","url":"https://ivc.pl","description":"PrzeglÄ
daj tysiÄ
ce firm z caÅej Polski, czytaj opinie, porównuj oferty.","potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://ivc.pl/wyszukiwarka?zapytanie={search_term_string}"},"query-input":"required name=search_term_string"}}</script>
vendor: 1 bytes, line 29
29
30<script type="application/ld+json">{"<?php $__contextArgs = [];\nif (context()->has($__contextArgs[0])) :\nif (isset($value)) { $__contextPrevious[] = $value; }\n$value = context()->get($__contextArgs[0]); ?>":"https://schema.org","@type":"Organization","name":"IVC Katalog Firm","url":"https://ivc.pl","logo":"https://ivc.pl/img/og-default.png"}</script>
vendor: 1 bytes, line 30
30
31<script type="application/ld+json">{"@context":"https://schema.org","@type":"CollectionPage","name":"Kategorie firm","description":"Wszystkie kategorie firm w katalogu","url":"https://ivc.pl","mainEntity":{"@type":"ItemList","numberOfItems":20,"itemListElement":[{"@type":"ListItem","position":1,"name":"AGD i RTV","url":"https://ivc.pl/kategoria/agd-i-rtv"},{"@type":"ListItem","position":2,"name":"AKTUALNOÅCI i MEDIA","url":"https://ivc.pl/kategoria/aktualnosci-i-media"},{"@type":"ListItem","position":3,"name":"BIURO i REKLAMA","url":"https://ivc.pl/kategoria/biuro-i-reklama"},{"@type":"ListItem","position":4,"name":"BIZNES i EKONOMIA","url":"https://ivc.pl/kategoria/biznes-i-ekonomia"},{"@type":"ListItem","position":5,"name":"BUDOWNICTWO","url":"https://ivc.pl/kategoria/budownictwo"},{"@type":"ListItem","position":6,"name":"DLA DZIECI","url":"https://ivc.pl/kategoria/dla-dzieci"},{"@type":"ListItem","position":7,"name":"DOM i OGRÃD","url":"https://ivc.pl/kategoria/dom-i-ogrod"},{"@type":"ListItem","position":8,"name":"EDUKACJA i NAUKA","url":"https://ivc.pl/kategoria/edukacja-i-nauka"},{"@type":"ListItem","position":9,"name":"FINANSE","url":"https://ivc.pl/kategoria/finanse"},{"@type":"ListItem","position":10,"name":"FLORA i FAUNA","url":"https://ivc.pl/kategoria/flora-i-fauna"},{"@type":"ListItem","position":11,"name":"GASTRONOMIA","url":"https://ivc.pl/kategoria/gastronomia"},{"@type":"ListItem","position":12,"name":"INTERNET i KOMPUTERY","url":"https://ivc.pl/kategoria/internet-i-komputery"},{"@type":"ListItem","position":13,"name":"KULTURA i SZTUKA","url":"https://ivc.pl/kategoria/kultura-i-sztuka"},{"@type":"ListItem","position":14,"name":"MOTORYZACJA","url":"https://ivc.pl/kategoria/motoryzacja"},{"@type":"ListItem","position":15,"name":"NIERUCHOMOÅCI","url":"https://ivc.pl/kategoria/nieruchomo%C5%9Bci"},{"@type":"ListItem","position":16,"name":"SKLEPY INTERNETOWE","url":"https://ivc.pl/kategoria/sklepy-internetowe"},{"@type":"ListItem","position":17,"name":"ÅLUB i WESELE","url":"https://ivc.pl/kategoria/slub-i-wesele"},{"@type":"ListItem","position":18,"name":"SPORT i REKREACJA","url":"https://ivc.pl/kategoria/sport-i-rekreacja"},{"@type":"ListItem","position":19,"name":"TURYSTYKA","url":"https://ivc.pl/kategoria/turystyka"},{"@type":"ListItem","position":20,"name":"ZDROWIE i URODA","url":"https://ivc.pl/kategoria/zdrowie-i-uroda"}]}}</script>
31 32 33 34
34<script> 35 window.dataLayer = window.dataLayer || []; 36 function gtag(){ dataLayer.push(arguments); } 37 // Default: deny everything except security_storage. RODO-compliant. 38 gtag('consent', 'default', { 39 'ad_storage': 'denied', 40 'ad_user_data': 'denied', 41 'ad_personalization': 'denied', 42 'analytics_storage': 'denied', 43 'functionality_storage': 'denied', 44 'personalization_storage': 'denied', 45 'security_storage': 'granted', 46 'wait_for_update': 500 47 }); 48 gtag('set', 'developer_id.dXdXNGE', true); // for tracking implementation 49 // Restore previous consent on page load (before any GA/GTM script) 50 try { 51 const stored = JSON.parse(localStorage.getItem('cookie_consent_v2') || 'null'); 52 if (stored && stored.gtag) gtag('consent', 'update', stored.gtag); 53 } catch(e){} 54 </script>
54 55 56 57 58 59 60
60<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4606166976132809" 61 crossorigin="anonymous"></script>
61 62 <link rel="preconnect" href="https://fonts.googleapis.com"> 63 <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 64 <link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap"> 65 <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet" media="print" onload="this.media='all'"> 66 <noscript><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap" rel="stylesheet"></noscript> 67 <link rel="preload" as="style" href="https://ivc.pl/build/assets/app-DYNlEoVk.css" /><link rel="modulepreload" as="script" href="https://ivc.pl/build/assets/app-20XyoJmg.js" /><link rel="stylesheet" href="https://ivc.pl/build/assets/app-DYNlEoVk.css" />
67<script type="module" src="https://ivc.pl/build/assets/app-20XyoJmg.js"></script>
67 <style> 68 .blog-card { transition: transform .2s, box-shadow .2s } 69 .blog-card:hover { transform: translateY(-3px); box-shadow: 0 8px 20px rgba(0,0,0,.08) !important } 70</style> 71</head> 72<body> 73 74 75 76 77 78<a href="#main-content" class="skip-link" style="position:absolute;left:-9999px;top:0;background:#4f46e5;color:#fff;padding:.5rem 1rem;z-index:10000" onfocus="this.style.left='0'" onblur="this.style.left='-9999px'">Przejdź do treÅci</a> 79 80 81<nav class="navbar navbar-expand-lg navbar-glass fixed-top" aria-label="GÅówna nawigacja"> 82 <div class="container"> 83 <a class="navbar-brand" href="https://ivc.pl">IVC Katalog Firm</a> 84 <button class="navbar-toggler border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" 85 aria-controls="navbarNav" aria-expanded="false" aria-label="Otwórz menu nawigacji"> 86 <span class="navbar-toggler-icon"></span> 87 </button> 88 <div class="collapse navbar-collapse" id="navbarNav"> 89 <ul class="navbar-nav me-auto"> 90 <li class="nav-item"><a class="nav-link" href="https://ivc.pl/blog" >Blog</a></li> 91 <li class="nav-item"><a class="nav-link" href="https://ivc.pl/regulamin" >Regulamin</a></li> 92 <li class="nav-item"><a class="nav-link" href="https://ivc.pl/kontakt" >Kontakt</a></li> 93 </ul> 94 95 <form class="d-flex me-3" action="https://ivc.pl/wyszukiwarka" method="GET" role="search" aria-label="Wyszukiwarka firm"> 96 <label for="navbar-search" class="visually-hidden">Szukaj firmy</label> 97 <input id="navbar-search" class="search-input" type="search" name="zapytanie" placeholder="Szukaj firmy..." minlength="3" required> 98 </form> 99 100 <div class="d-flex align-items-center gap-2"> 101 102 <button type="button" class="btn btn-sm btn-outline-light" @click="darkMode = !darkMode" aria-label="Przelacz motyw" title="Przelacz motyw jasny/ciemny"> 103 <span x-show="!darkMode">☀</span> 104 <span x-show="darkMode" x-cloak>☾</span> 105 </button> 106 107 <a class="nav-link text-white" href="https://ivc.pl/logowanie" style="font-size:.85rem">Zaloguj</a> 108 <a class="nav-link text-white" href="https://ivc.pl/rejestracja" style="font-size:.85rem">Rejestracja</a> 109 <a href="https://ivc.pl/dodawanie-firmy" class="btn btn-nav-cta">+ Dodaj firme</a> 110 </div> 111 </div> 112 </div> 113</nav> 114 115 116<div style="height: 60px"></div> 117 118 119 120<section class="hero"> 121 <div class="container"> 122 <div class="row align-items-center"> 123 <div class="col-lg-7"> 124 <h1>Znajdź sprawdzone firmy w Polsce</h1> 125 <p class="hero-subtitle mt-3 mb-4">PrzeglÄ daj tysiÄ ce firm z caÅej Polski, czytaj opinie, porównuj oferty.</p> 126 <div class="hero-search mb-3"> 127 <form action="https://ivc.pl/wyszukiwarka" method="GET"> 128 <div class="input-group"> 129 <input type="search" class="form-control" name="zapytanie" placeholder="Szukaj firmy, usÅugi, miasta..." minlength="3" required> 130 <button class="btn" type="submit">Szukaj</button> 131 </div> 132 </form> 133 </div> 134 <div class="d-flex flex-wrap gap-3 mt-3"> 135 <span class="hero-stat"><strong>599</strong> firm w bazie</span> 136 <span class="hero-stat"><strong>20</strong> kategorii</span> 137 </div> 138 </div> 139 </div> 140 </div> 141</section> 142 143<main class="container py-4" id="main-content"> 144 145 146 147 148<section class="mb-5"> 149 <h2 class="section-heading">Kategorie</h2> 150 <div class="row g-3"> 151 <div class="col-lg-3 col-md-4 col-sm-6"> 152 <a href="https://ivc.pl/kategoria/agd-i-rtv" class="category-card d-flex justify-content-between align-items-center">
153 <span class="category-name">AGD i RTV</span> 154 <span class="category-count">14</span> 155 </a> 156 </div> 157 <div class="col-lg-3 col-md-4 col-sm-6"> 158 <a href="https://ivc.pl/kategoria/aktualnosci-i-media" class="category-card d-flex justify-content-between align-items-center"> 159 <span class="category-name">AKTUALNOÅCI i MEDIA</span> 160 <span class="category-count">3</span> 161 </a> 162 </div> 163 <div class="col-lg-3 col-md-4 col-sm-6"> 164 <a href="https://ivc.pl/kategoria/biuro-i-reklama" class="category-card d-flex justify-content-between align-items-center"> 165 <span class="category-name">BIURO i REKLAMA</span> 166 <span class="category-count">27</span> 167 </a> 168 </div> 169 <div class="col-lg-3 col-md-4 col-sm-6"> 170 <a href="https://ivc.pl/kategoria/biznes-i-ekonomia" class="category-card d-flex justify-content-between align-items-center"> 171 <span class="category-name">BIZNES i EKONOMIA</span> 172 <span class="category-count">58</span> 173 </a> 174 </div> 175 <div class="col-lg-3 col-md-4 col-sm-6"> 176 <a href="https://ivc.pl/kategoria/budownictwo" class="category-card d-flex justify-content-between align-items-center"> 177 <span class="category-name">BUDOWNICTWO</span> 178 <span class="category-count">78</span> 179 </a> 180 </div> 181 <div class="col-lg-3 col-md-4 col-sm-6"> 182 <a href="https://ivc.pl/kategoria/dla-dzieci" class="category-card d-flex justify-content-between align-items-center"> 183 <span class="category-name">DLA DZIECI</span> 184 <span class="category-count">7</span> 185 </a> 186 </div> 187 <div class="col-lg-3 col-md-4 col-sm-6"> 188 <a href="https://ivc.pl/kategoria/dom-i-ogrod" class="category-card d-flex justify-content-between align-items-center"> 189 <span class="category-name">DOM i OGRÃD</span> 190 <span class="category-count">83</span> 191 </a> 192 </div> 193 <div class="col-lg-3 col-md-4 col-sm-6"> 194 <a href="https://ivc.pl/kategoria/edukacja-i-nauka" class="category-card d-flex justify-content-between align-items-center"> 195 <span class="category-name">EDUKACJA i NAUKA</span> 196 <span class="category-count">11</span> 197 </a> 198 </div> 199 <div class="col-lg-3 col-md-4 col-sm-6"> 200 <a href="https://ivc.pl/kategoria/finanse" class="category-card d-flex justify-content-between align-items-center"> 201 <span class="category-name">FINANSE</span> 202 <span class="category-count">17</span> 203 </a> 204 </div> 205 <div class="col-lg-3 col-md-4 col-sm-6"> 206 <a href="https://ivc.pl/kategoria/flora-i-fauna" class="category-card d-flex justify-content-between align-items-center"> 207 <span class="category-name">FLORA i FAUNA</span> 208 <span class="category-count">1</span> 209 </a> 210 </div> 211 <div class="col-lg-3 col-md-4 col-sm-6"> 212 <a href="https://ivc.pl/kategoria/gastronomia" class="category-card d-flex justify-content-between align-items-center"> 213 <span class="category-name">GASTRONOMIA</span> 214 <span class="category-count">40</span> 215 </a> 216 </div> 217 <div class="col-lg-3 col-md-4 col-sm-6"> 218 <a href="https://ivc.pl/kategoria/internet-i-komputery" class="category-card d-flex justify-content-between align-items-center"> 219 <span class="category-name">INTERNET i KOMPUTERY</span> 220 <span class="category-count">23</span> 221 </a> 222 </div> 223 <div class="col-lg-3 col-md-4 col-sm-6"> 224 <a href="https://ivc.pl/kategoria/kultura-i-sztuka" class="category-card d-flex justify-content-between align-items-center">
225 <span class="category-name">KULTURA i SZTUKA</span> 226 <span class="category-count">8</span> 227 </a> 228 </div> 229 <div class="col-lg-3 col-md-4 col-sm-6"> 230 <a href="https://ivc.pl/kategoria/motoryzacja" class="category-card d-flex justify-content-between align-items-center"> 231 <span class="category-name">MOTORYZACJA</span> 232 <span class="category-count">35</span> 233 </a> 234 </div> 235 <div class="col-lg-3 col-md-4 col-sm-6"> 236 <a href="https://ivc.pl/kategoria/nieruchomo%C5%9Bci" class="category-card d-flex justify-content-between align-items-center"> 237 <span class="category-name">NIERUCHOMOÅCI</span> 238 <span class="category-count">12</span> 239 </a> 240 </div> 241 <div class="col-lg-3 col-md-4 col-sm-6"> 242 <a href="https://ivc.pl/kategoria/sklepy-internetowe" class="category-card d-flex justify-content-between align-items-center"> 243 <span class="category-name">SKLEPY INTERNETOWE</span> 244 <span class="category-count">68</span> 245 </a> 246 </div> 247 <div class="col-lg-3 col-md-4 col-sm-6"> 248 <a href="https://ivc.pl/kategoria/slub-i-wesele" class="category-card d-flex justify-content-between align-items-center"> 249 <span class="category-name">ÅLUB i WESELE</span> 250 <span class="category-count">11</span> 251 </a> 252 </div> 253 <div class="col-lg-3 col-md-4 col-sm-6"> 254 <a href="https://ivc.pl/kategoria/sport-i-rekreacja" class="category-card d-flex justify-content-between align-items-center"> 255 <span class="category-name">SPORT i REKREACJA</span> 256 <span class="category-count">14</span> 257 </a> 258 </div> 259 <div class="col-lg-3 col-md-4 col-sm-6"> 260 <a href="https://ivc.pl/kategoria/turystyka" class="category-card d-flex justify-content-between align-items-center"> 261 <span class="category-name">TURYSTYKA</span> 262 <span class="category-count">12</span> 263 </a> 264 </div> 265 <div class="col-lg-3 col-md-4 col-sm-6"> 266 <a href="https://ivc.pl/kategoria/zdrowie-i-uroda" class="category-card d-flex justify-content-between align-items-center"> 267 <span class="category-name">ZDROWIE i URODA</span> 268 <span class="category-count">74</span> 269 </a> 270 </div> 271 </div> 272</section> 273 274 275<section class="mb-5"> 276 <h2 class="section-heading">Najnowsze firmy</h2> 277 <div class="row g-3"> 278 <div class="col-lg-4 col-md-6"> 279 <div class="card company-card h-100"> 280 <div class="card-body"> 281 <h5 class="card-title"> 282 <a href="https://ivc.pl/auto-wrocek">Auto Wrocek</a> 283 </h5> 284 <div class="company-city mb-2">WrocÅaw</div> 285 <p class="card-text">Auto Wrocek to wrocÅawska firma z licencjonowanÄ stacjÄ demontażu pojazdów, prowadzÄ ca zÅomowanie i kasacjÄ zgodnie z obowiÄ zujÄ cymi normami...</p> 286 </div> 287 <div class="card-footer bg-transparent border-0 pt-0"> 288 <a href="https://ivc.pl/auto-wrocek" class="btn btn-sm btn-outline-primary">SzczegóÅy</a> 289 </div> 290 </div> 291 </div> 292 <div class="col-lg-4 col-md-6"> 293 <div class="card company-card h-100"> 294 <div class="card-body"> 295 <h5 class="card-title"> 296 <a href="https://ivc.pl/lomzik-firma-marcin-lomzik">Kasacja Kraków</a> 297 </h5> 298 <div class="company-city mb-2">Tymbark</div> 299 <p class="card-text">Samodzielna sprzedaż auta potrafi ciÄ gnÄ Ä siÄ tygodniami: zdjÄcia, ogÅoszenia, telefony od niezdecydowanych kupców, oglÄdziny i targowanie s...</p> 300 </div> 301 <div class="card-footer bg-transparent border-0 pt-0"> 302 <a href="https://ivc.pl/lomzik-firma-marcin-lomzik" class="btn btn-sm btn-outline-primary">SzczegóÅy</a> 303 </div> 304 </div> 305 </div> 306 <div class="col-lg-4 col-md-6"> 307 <div class="card company-card h-100"> 308 <div class="card-body"> 309 <h5 class="card-title"> 310 <a href="https://ivc.pl/metalex-sita-techniczne">Metalex</a> 311 </h5> 312 <div class="company-city mb-2">Gliwice</div> 313 <p class="card-text">Szukasz sprawdzonego producenta siatek metalowych? Metalex z Gliwic (ul. Miodowa 31, 44-141) to firma z dÅugoletnim doÅwiadczeniem, dostarcz...</p> 314 </div> 315 <div class="card-footer bg-transparent border-0 pt-0"> 316 <a href="https://ivc.pl/metalex-sita-techniczne" class="btn btn-sm btn-outline-primary">SzczegóÅy</a> 317 </div> 318 </div> 319 </div> 320 </div> 321</section> 322 323 324<section class="mb-4"> 325 <h2 class="section-heading text-center">Popularne usÅugi</h2> 326 <div class="tag-cloud text-center"> 327 <a href="https://ivc.pl/tag/kendama" class="tag-badge">Kendama</a> 328 <a href="https://ivc.pl/tag/torba-shopper" class="tag-badge">torba shopper</a> 329 <a href="https://ivc.pl/tag/lampy-wiszace" class="tag-badge">lampy wiszÄ ce</a> 330 <a href="https://ivc.pl/tag/restauracja-gdansk" class="tag-badge">restauracja gdaÅsk</a> 331 <a href="https://ivc.pl/tag/brak-nazwy" class="tag-badge">dali </a> 332 <a href="https://ivc.pl/tag/olej-cbd" class="tag-badge">olej cbd</a>
333 <a href="https://ivc.pl/tag/zaluzja-okienna" class="tag-badge">żaluzja okienna</a> 334 <a href="https://ivc.pl/tag/pokoj-zagadek" class="tag-badge">pokój zagadek</a> 335 <a href="https://ivc.pl/tag/kancelaria-radcy-prawnego" class="tag-badge">kancelaria radcy prawnego</a> 336 <a href="https://ivc.pl/tag/drogeria-internetowa" class="tag-badge">drogeria internetowa</a> 337 <a href="https://ivc.pl/tag/plytki-ceramiczne-lazienkowe" class="tag-badge">pÅytki ceramiczne Åazienkowe</a> 338 <a href="https://ivc.pl/tag/kamerzysta-na-wesele" class="tag-badge">Kamerzysta na wesele</a> 339 <a href="https://ivc.pl/tag/leczenie-lysienia" class="tag-badge">leczenie Åysienia</a> 340 <a href="https://ivc.pl/tag/kontrola-dostepu" class="tag-badge">Kontrola dostÄpu</a> 341 <a href="https://ivc.pl/tag/waporyzacja" class="tag-badge">waporyzacja</a> 342 <a href="https://ivc.pl/tag/blog-kulinarny" class="tag-badge">blog kulinarny</a> 343 <a href="https://ivc.pl/tag/bus-polska-holandia" class="tag-badge">Bus Polska Holandia</a> 344 <a href="https://ivc.pl/tag/blaszak-krakow" class="tag-badge">blaszak Kraków</a> 345 <a href="https://ivc.pl/tag/pizza" class="tag-badge">pizza</a> 346 <a href="https://ivc.pl/tag/dentysta-wyszkow" class="tag-badge">dentysta wyszków</a> 347 <a href="https://ivc.pl/tag/slomki-kompostowalne" class="tag-badge">sÅomki kompostowalne</a> 348 <a href="https://ivc.pl/tag/nawozy-rolnicze" class="tag-badge">Nawozy rolnicze</a> 349 <a href="https://ivc.pl/tag/tania-firma-przeprowadzkowa-warszawa" class="tag-badge">tania Firma Przeprowadzkowa warszawa</a> 350 <a href="https://ivc.pl/tag/warszawa-restauracja" class="tag-badge">warszawa restauracja</a> 351 <a href="https://ivc.pl/tag/dezynfekcja" class="tag-badge">dezynfekcja</a> 352 <a href="https://ivc.pl/tag/klimatyzatory-warszawa" class="tag-badge">klimatyzatory Warszawa</a> 353 <a href="https://ivc.pl/tag/ubezpieczenie-szkolne" class="tag-badge">ubezpieczenie szkolne</a> 354 <a href="https://ivc.pl/tag/ramki-drewniane" class="tag-badge">ramki drewniane</a> 355 <a href="https://ivc.pl/tag/oprogramowania-do-fakturowania" class="tag-badge">oprogramowania do fakturowania</a> 356 <a href="https://ivc.pl/tag/developer" class="tag-badge">developer</a> 357 <a href="https://ivc.pl/tag/obsluga-prawna" class="tag-badge">obsÅuga prawna</a> 358 <a href="https://ivc.pl/tag/splywy-kajakowe-debki" class="tag-badge">spÅywy kajakowe dÄbki</a> 359 <a href="https://ivc.pl/tag/tatuaz" class="tag-badge">tatuaż</a> 360 <a href="https://ivc.pl/tag/buty-dzieciece" class="tag-badge">buty dzieciÄce</a> 361 </div> 362</section> 363 364 365 366</main> 367 368 369<footer class="site-footer"> 370 <div class="container"> 371 <div class="row"> 372 <div class="col-md-4 mb-3"> 373 <div class="footer-brand mb-2">IVC Katalog Firm</div> 374 <p class="mb-0" style="font-size:.85rem">PrzeglÄ daj tysiÄ ce firm z caÅej Polski, czytaj opinie, porównuj oferty.</p> 375 </div> 376 <div class="col-md-2 mb-3"> 377 <div class="footer-heading">Nawigacja</div> 378 <ul class="footer-links"> 379 <li><a href="https://ivc.pl">Strona glowna</a></li> 380 <li><a href="https://ivc.pl/blog">Blog</a></li> 381 <li><a href="https://ivc.pl/dodawanie-firmy">Dodaj firme</a></li> 382 <li><a href="https://ivc.pl/kontakt">Kontakt</a></li> 383 </ul> 384 </div> 385 <div class="col-md-2 mb-3"> 386 <div class="footer-heading">Informacje</div> 387 <ul class="footer-links"> 388 <li><a href="https://ivc.pl/regulamin">Regulamin</a></li> 389 <li><a href="https://ivc.pl/polityka-prywatnosci">Polityka prywatnoÅci</a></li> 390 <li><a href="https://ivc.pl/o-ciasteczkach">Polityka cookies</a></li> 391 <li><button type="button" class="btn btn-link p-0 footer-link-btn" onclick="window.openCookiePreferences && window.openCookiePreferences();">Ustawienia cookies</button></li> 392 <li><a href="https://ivc.pl/multikod">Multikod</a></li> 393 </ul> 394 </div> 395 <div class="col-md-4 mb-3"> 396 <div class="footer-heading">Konto</div> 397 <ul class="footer-links"> 398 <li><a href="https://ivc.pl/logowanie">Zaloguj sie</a></li> 399 <li><a href="https://ivc.pl/panel">Panel uzytkownika</a></li> 400 </ul> 401 </div> 402 </div> 403 <div class="footer-bottom text-center"> 404 © 2026 IVC Katalog Firm.
405 <span class="ms-2" aria-label="Wersja aplikacji">v.1.0.2</span> 406 Wszelkie prawa zastrzeĹĽone. 407 </div> 408 </div> 409</footer> 410 411 412<style> 413 /* ââ Cookie Consent â LIGHT mode defaults ââ */ 414 .cc-banner { 415 position: fixed; bottom: 1rem; left: 1rem; right: 1rem; max-width: 760px; margin: 0 auto; 416 z-index: 9998; background: rgba(255, 255, 255, 0.98); color: #1e293b; 417 padding: 1.25rem 1.5rem; border-radius: .75rem; backdrop-filter: blur(12px); 418 border: 1px solid rgba(15, 23, 42, 0.08); 419 box-shadow: 0 20px 60px rgba(15, 23, 42, 0.18); 420 font-size: .9rem; line-height: 1.5; 421 display: none; 422 } 423 .cc-banner.is-visible { display: block } 424 .cc-banner .cc-title { display: block; font-size: 1.05rem; margin: 0 0 .5rem; color: #0f172a; font-weight: 700 } 425 .cc-banner p { margin: 0 0 1rem; color: #475569 } 426 .cc-banner a { color: #4f46e5; text-decoration: underline } 427 .cc-banner .cc-actions { display: flex; gap: .5rem; flex-wrap: wrap } 428 .cc-banner .cc-actions button { flex: 1 1 auto; min-width: 140px; border: 0; padding: .65rem 1rem; border-radius: .5rem; font-weight: 600; cursor: pointer; font-size: .85rem; transition: opacity .15s, background .15s } 429 .cc-banner .cc-actions button:hover { opacity: .9 } 430 .cc-banner .cc-btn-accept { background: #4f46e5; color: #fff } 431 .cc-banner .cc-btn-necessary { background: #e2e8f0; color: #1e293b } 432 .cc-banner .cc-btn-prefs { background: transparent; color: #1e293b; border: 1px solid #cbd5e1 !important } 433 434 .cc-modal { display: none; position: fixed; inset: 0; z-index: 10001; align-items: center; justify-content: center; background: rgba(15, 23, 42, .55); padding: 1rem } 435 .cc-modal.is-visible { display: flex } 436 .cc-modal-card { background: #fff; color: #1e293b; max-width: 720px; width: 100%; border-radius: .75rem; max-height: 90vh; overflow: auto; box-shadow: 0 25px 50px rgba(0,0,0,.3) } 437 .cc-modal-card .cc-header { padding: 1.25rem 1.5rem; border-bottom: 1px solid #e2e8f0; display: flex; justify-content: space-between; align-items: center } 438 .cc-modal-card .cc-header .cc-title { display: block; margin: 0; font-size: 1.15rem; color: #0f172a; font-weight: 700 } 439 .cc-modal-card .cc-header .cc-btn-secondary { line-height: 1; padding: .25rem .6rem; font-size: 1.1rem } 440 .cc-modal-card .cc-body { padding: 1.5rem } 441 .cc-modal-intro { font-size: .9rem; color: #64748b; margin: 0 0 1rem } 442 .cc-modal-card .cc-footer { padding: 1rem 1.5rem; border-top: 1px solid #e2e8f0; display: flex; justify-content: space-between; gap: .5rem; flex-wrap: wrap } 443 .cc-cat { padding: 1rem; border: 1px solid #e2e8f0; border-radius: .5rem; margin-bottom: .75rem; background: #f8fafc } 444 .cc-cat-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: .25rem } 445 .cc-cat-header .cc-cat-name { display: block; margin: 0; font-size: 1rem; font-weight: 600; color: #0f172a } 446 .cc-cat-desc { color: #64748b; font-size: .85rem; margin: 0 } 447 .cc-cat-services { margin-top: .35rem; font-size: .75rem; color: #94a3b8 } 448 .cc-toggle { position: relative; width: 44px; height: 24px; flex: 0 0 44px } 449 .cc-toggle input { opacity: 0; width: 0; height: 0 } 450 .cc-toggle .cc-slider { position: absolute; inset: 0; background: #cbd5e1; transition: .25s; border-radius: 24px; cursor: pointer } 451 .cc-toggle .cc-slider:before { content: ""; position: absolute; height: 18px; width: 18px; left: 3px; bottom: 3px; background: #fff; transition: .25s; border-radius: 50% } 452 .cc-toggle input:checked + .cc-slider { background: #4f46e5 } 453 .cc-toggle input:checked + .cc-slider:before { transform: translateX(20px) } 454 .cc-toggle input:disabled + .cc-slider { background: #94a3b8; cursor: not-allowed } 455 .cc-modal-card button { padding: .55rem 1rem; border-radius: .5rem; border: 0; font-weight: 600; cursor: pointer; font-size: .85rem } 456 .cc-modal-card .cc-btn-primary { background: #4f46e5; color: #fff } 457 .cc-modal-card .cc-btn-primary:hover { background: #4338ca } 458 .cc-modal-card .cc-btn-secondary { background: #e2e8f0; color: #1e293b } 459 .cc-modal-card .cc-btn-secondary:hover { background: #cbd5e1 } 460 461 /* ââ Cookie Consent â DARK mode overrides (class-based, driven by the site toggle) ââ */ 462 html.dark-mode .cc-banner { 463 background: rgba(15, 23, 42, 0.97); 464 color: #f1f5f9; 465 border-color: rgba(255, 255, 255, 0.08); 466 box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5); 467 } 468 html.dark-mode .cc-banner .cc-title { color: #fff } 469 html.dark-mode .cc-banner p { color: #cbd5e1 } 470 html.dark-mode .cc-banner a { color: #a5b4fc } 471 html.dark-mode .cc-banner .cc-btn-necessary { background: #475569; color: #fff } 472 html.dark-mode .cc-banner .cc-btn-prefs { background: transparent; color: #f1f5f9; border-color: #475569 !important } 473 474 html.dark-mode .cc-modal { background: rgba(0, 0, 0, 0.7) } 475 html.dark-mode .cc-modal-card { background: #1e293b; color: #f1f5f9 } 476 html.dark-mode .cc-modal-card .cc-header { border-color: #334155 } 477 html.dark-mode .cc-modal-card .cc-header .cc-title { color: #f8fafc } 478 html.dark-mode .cc-modal-intro { color: #cbd5e1 } 479 html.dark-mode .cc-modal-card .cc-footer { border-color: #334155 } 480 html.dark-mode .cc-cat { background: #0f172a; border-color: #334155 } 481 html.dark-mode .cc-cat-header .cc-cat-name { color: #f8fafc } 482 html.dark-mode .cc-cat-desc { color: #94a3b8 } 483 html.dark-mode .cc-cat-services { color: #64748b } 484 html.dark-mode .cc-toggle .cc-slider { background: #475569 } 485 html.dark-mode .cc-modal-card .cc-btn-secondary { background: #334155; color: #f1f5f9 } 486 html.dark-mode .cc-modal-card .cc-btn-secondary:hover { background: #475569 } 487</style> 488 489<div class="cc-banner" id="cc-banner" role="dialog" aria-labelledby="cc-banner-title" aria-describedby="cc-banner-desc" aria-modal="false"> 490 <span class="cc-title" id="cc-banner-title">ðª Pliki cookies</span> 491 <p id="cc-banner-desc"> 492 Używamy plików cookies, aby zapewniÄ najlepsze dziaÅanie serwisu, analizowaÄ ruch i personalizowaÄ treÅci. 493 Możesz zaakceptowaÄ wszystkie lub wybraÄ tylko niezbÄdne. 494 <a href="https://ivc.pl/o-ciasteczkach">Polityka cookies</a>. 495 </p> 496 <div class="cc-actions"> 497 <button type="button" class="cc-btn-necessary" data-cc-action="necessary">Tylko niezbÄdne</button> 498 <button type="button" class="cc-btn-prefs" data-cc-action="prefs">Ustawienia</button> 499 <button type="button" class="cc-btn-accept" data-cc-action="accept-all">AkceptujÄ wszystkie</button> 500 </div> 501</div> 502 503<div class="cc-modal" id="cc-modal" role="dialog" aria-labelledby="cc-modal-title" aria-modal="true"> 504 <div class="cc-modal-card"> 505 <div class="cc-header">
506 <span class="cc-title" id="cc-modal-title">Ustawienia plików cookies</span> 507 <button type="button" class="cc-btn-secondary" data-cc-action="close-modal" aria-label="Zamknij">Ã</button> 508 </div> 509 <div class="cc-body"> 510 <p class="cc-modal-intro"> 511 Wybierz, które kategorie cookies chcesz zaakceptowaÄ. NiezbÄdne cookies sÄ zawsze wÅÄ czone. 512 Możesz zmieniÄ swojÄ decyzjÄ w dowolnej chwili â link do ustawieÅ znajdziesz w stopce. 513 </p> 514 515 <div class="cc-cat"> 516 <div class="cc-cat-header"> 517 <span class="cc-cat-name">NiezbÄdne</span> 518 <label class="cc-toggle"> 519 <input type="checkbox" data-cc-cat="necessary" 520 checked disabled> 521 <span class="cc-slider"></span> 522 </label> 523 </div> 524 <p class="cc-cat-desc">Pliki cookies wymagane do dziaÅania serwisu (sesja, CSRF, preferencje akceptacji cookies). Nie można ich wyÅÄ czyÄ.</p> 525 <div class="cc-cat-services"> 526 <strong>UsÅugi:</strong> Laravel session, CSRF token, consent_id 527 </div> 528 </div> 529 <div class="cc-cat"> 530 <div class="cc-cat-header"> 531 <span class="cc-cat-name">Analityczne</span> 532 <label class="cc-toggle"> 533 <input type="checkbox" data-cc-cat="analytics" 534 > 535 <span class="cc-slider"></span> 536 </label> 537 </div> 538 <p class="cc-cat-desc">Cookies pomagajÄ ce nam zrozumieÄ, jak użytkownicy korzystajÄ z serwisu (zanonimizowane).</p> 539 <div class="cc-cat-services"> 540 <strong>UsÅugi:</strong> Google Analytics 4, Google Tag Manager 541 </div> 542 </div> 543 <div class="cc-cat"> 544 <div class="cc-cat-header"> 545 <span class="cc-cat-name">Marketingowe</span> 546 <label class="cc-toggle"> 547 <input type="checkbox" data-cc-cat="marketing" 548 > 549 <span class="cc-slider"></span> 550 </label> 551 </div> 552 <p class="cc-cat-desc">Cookies używane do personalizacji reklam i remarketingu.</p> 553 <div class="cc-cat-services"> 554 <strong>UsÅugi:</strong> Google Ads, Facebook Pixel 555 </div> 556 </div> 557 <div class="cc-cat"> 558 <div class="cc-cat-header"> 559 <span class="cc-cat-name">Funkcjonalne</span> 560 <label class="cc-toggle"> 561 <input type="checkbox" data-cc-cat="functional" 562 > 563 <span class="cc-slider"></span> 564 </label> 565 </div> 566 <p class="cc-cat-desc">Cookies usprawniajÄ ce dziaÅanie serwisu (np. zapamiÄtanie preferencji dark mode, jÄzyka).</p> 567 <div class="cc-cat-services"> 568 <strong>UsÅugi:</strong> Theme preference, Language 569 </div> 570 </div> 571 </div> 572 <div class="cc-footer"> 573 <button type="button" class="cc-btn-secondary" data-cc-action="necessary">Tylko niezbÄdne</button> 574 <button type="button" class="cc-btn-secondary" data-cc-action="accept-all">AkceptujÄ wszystkie</button> 575 <button type="button" class="cc-btn-primary" data-cc-action="save-prefs">Zapisz wybór</button> 576 </div> 577 </div> 578</div> 579
580<script> 581(function () { 582 const STORAGE_KEY = 'cookie_consent_v2'; 583 const POLICY_VERSION = "4426f90d34a6"; 584 const CSRF = document.querySelector('meta[name="csrf-token"]')?.content || ''; 585 const banner = document.getElementById('cc-banner'); 586 const modal = document.getElementById('cc-modal'); 587 if (!banner || !modal) return; 588 589 function uuid() { 590 return 'cc-' + Date.now().toString(36) + '-' + Math.random().toString(36).slice(2, 10); 591 } 592 593 function loadStored() { 594 try { return JSON.parse(localStorage.getItem(STORAGE_KEY)) || null; } catch(e) { return null; } 595 } 596 function saveStored(data) { 597 try { localStorage.setItem(STORAGE_KEY, JSON.stringify(data)); } catch(e) {} 598 } 599 600 function buildGtagPayload(prefs) { 601 return { 602 ad_storage: prefs.marketing ? 'granted' : 'denied', 603 ad_user_data: prefs.marketing ? 'granted' : 'denied', 604 ad_personalization: prefs.marketing ? 'granted' : 'denied', 605 analytics_storage: prefs.analytics ? 'granted' : 'denied', 606 functionality_storage: prefs.functional ? 'granted' : 'denied', 607 personalization_storage: prefs.functional ? 'granted' : 'denied', 608 security_storage: 'granted' 609 }; 610 } 611 612 function applyConsent(prefs, action, source) { 613 const gtagPayload = buildGtagPayload(prefs); 614 if (typeof gtag === 'function') { 615 gtag('consent', 'update', gtagPayload); 616 } 617 618 const stored = loadStored() || {}; 619 const consentId = stored.consent_id || uuid(); 620 621 const data = { 622 consent_id: consentId, 623 policy_version: POLICY_VERSION, 624 prefs: prefs, 625 gtag: gtagPayload, 626 updated_at: new Date().toISOString() 627 }; 628 saveStored(data); 629 630 // Audit log to backend (best-effort, async) 631 fetch("https:\/\/ivc.pl\/consent", { 632 method: 'POST', 633 headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', 'X-CSRF-TOKEN': CSRF }, 634 body: JSON.stringify({ 635 consent_id: consentId, 636 action: action, 637 necessary: true, 638 analytics: !!prefs.analytics, 639 marketing: !!prefs.marketing, 640 functional: !!prefs.functional, 641 source: source || 'banner' 642 }) 643 }).catch(() => {}); 644 645 hideBanner(); 646 hideModal(); 647 document.dispatchEvent(new CustomEvent('cookieConsentChanged', { detail: data })); 648 } 649 650 function showBanner() { banner.classList.add('is-visible'); } 651 function hideBanner() { banner.classList.remove('is-visible'); } 652 function showModal() { modal.classList.add('is-visible'); } 653 function hideModal() { modal.classList.remove('is-visible'); } 654 655 function getModalPrefs() { 656 const out = { necessary: true }; 657 modal.querySelectorAll('[data-cc-cat]').forEach(cb => { 658 out[cb.dataset.ccCat] = cb.checked; 659 }); 660 return out; 661 } 662 function setModalPrefs(prefs) { 663 modal.querySelectorAll('[data-cc-cat]').forEach(cb => { 664 const key = cb.dataset.ccCat; 665 if (key in prefs) cb.checked = prefs[key]; 666 }); 667 } 668 669 document.addEventListener('click', (e) => { 670 const t = e.target.closest('[data-cc-action]'); 671 if (!t) return; 672 e.preventDefault(); 673 const action = t.dataset.ccAction; 674 675 if (action === 'accept-all') { 676 applyConsent({ necessary: true, analytics: true, marketing: true, functional: true }, 'granted', t.closest('#cc-modal') ? 'preferences_modal' : 'banner'); 677 } else if (action === 'necessary') { 678 applyConsent({ necessary: true, analytics: false, marketing: false, functional: false }, 'denied', t.closest('#cc-modal') ? 'preferences_modal' : 'banner'); 679 } else if (action === 'prefs') { 680 const stored = loadStored(); 681 setModalPrefs(stored?.prefs || { necessary: true }); 682 showModal(); 683 } else if (action === 'save-prefs') { 684 applyConsent(getModalPrefs(), 'updated', 'preferences_modal'); 685 } else if (action === 'close-modal') { 686 hideModal(); 687 } 688 }); 689 690 // Init: show banner if no decision yet, OR if policy version changed 691 const stored = loadStored(); 692 const needsConsent = !stored || stored.policy_version !== POLICY_VERSION; 693 if (needsConsent) { 694 // Defer to next tick so it doesn't block initial paint 695 setTimeout(showBanner, 100); 696 } 697 698 // Public API: open preferences from anywhere (e.g. footer link) 699 window.openCookiePreferences = () => { 700 const s = loadStored(); 701 setModalPrefs(s?.prefs || { necessary: true }); 702 showModal(); 703 }; 704})(); 705</script>
705 706 707 708 709
710<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
vendor: 1 bytes, line 710
710
711<script> 712(function () { 713 if (typeof Swal === 'undefined') return; 714 window.Swal = Swal; 715 716 const toast = (icon, title) => Swal.fire({ 717 icon, title, 718 toast: true, 719 position: 'top-end', 720 showConfirmButton: false, 721 timer: 4000, 722 timerProgressBar: true, 723 }); 724 725 const modal = (icon, title, html) => Swal.fire({ 726 icon, title, html, 727 confirmButtonText: 'OK', 728 confirmButtonColor: '#4f46e5', 729 }); 730 731 document.querySelectorAll('template[data-flash]').forEach(tpl => { 732 const type = tpl.dataset.flash; 733 const msg = (tpl.innerHTML || '').trim().replace(/\n/g, '<br>'); 734 if (!msg) return; 735 switch (type) { 736 case 'success': toast('success', msg); break; 737 case 'info': toast('info', msg); break; 738 case 'warning': modal('warning', 'Uwaga', msg); break; 739 case 'error': modal('error', 'BÅÄ d', msg); break; 740 case 'validation': modal('error', 'BÅÄ d walidacji', msg); break; 741 } 742 }); 743 744 document.querySelectorAll('[data-confirm]').forEach(el => { 745 el.addEventListener('click', (e) => { 746 e.preventDefault(); 747 Swal.fire({ 748 title: el.dataset.confirmTitle || 'Czy na pewno?', 749 text: el.dataset.confirm || 'Tej operacji nie można cofnÄ Ä.', 750 icon: 'warning', 751 showCancelButton: true, 752 confirmButtonColor: '#ef4444', 753 cancelButtonColor: '#64748b', 754 confirmButtonText: el.dataset.confirmBtn || 'Tak, usuÅ', 755 cancelButtonText: 'Anuluj', 756 }).then(result => { 757 if (!result.isConfirmed) return; 758 if (el.tagName === 'A') window.location.href = el.href; 759 else el.closest('form')?.submit(); 760 }); 761 }); 762 }); 763})(); 764</script>
764 765</body> 766</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.