{"id":1849,"date":"2026-02-05T09:30:05","date_gmt":"2026-02-05T09:30:05","guid":{"rendered":"https:\/\/ktozrobi.pl\/media\/?p=1849"},"modified":"2026-04-05T20:25:37","modified_gmt":"2026-04-05T19:25:37","slug":"raport-z-rynku-budowlano-instalacyjnego","status":"publish","type":"post","link":"https:\/\/ktozrobi.pl\/media\/raport-z-rynku-budowlano-instalacyjnego\/","title":{"rendered":"Strategiczna analiza rynku budowlano-instalacyjnego w Polsce 2025\u20132026: Mapa potencja\u0142u, geografia zysk\u00f3w i dynamika konkurencji"},"content":{"rendered":"\n<p>Polski sektor budowlano-instalacyjny znajduje si\u0119 w fazie g\u0142\u0119bokiej transformacji strukturalnej. Po okresie korekty w latach 2023-2024, <strong>rynek w 2026 roku zacznie wchodzi\u0107 w mechanizm dw\u00f3ch pr\u0119dko\u015bci<\/strong>. Z jednej strony obserwujemy stagnacj\u0119 w liczbie oddawanych mieszka\u0144 oraz do\u015b\u0107 istotny (nieca\u0142e 10%) spadek zako\u0144czonych bud\u00f3w dom\u00f3w jednorodzinnych, b\u0119d\u0105ce echem wysokich st\u00f3p procentowych z lat ubieg\u0142ych, z drugiej za\u015b, <strong>dynamiczny wzrost w sektorze pozwole\u0144 na budow\u0119 i rozpocz\u0119tych (b\u0119d\u0105cych w trakcie) inwestycji, co zwiastuje pot\u0119\u017cn\u0105 fal\u0119 monta\u017cow\u0105, kt\u00f3ra rozpocznie si\u0119 ju\u017c pod koniec 2026 i na pocz\u0105tku 2027 roku<\/strong>. Analiza danych G\u0142\u00f3wnego Urz\u0119du Statystycznego oraz raport\u00f3w bran\u017cowych wskazuje na zjawisko \u201espr\u0119\u017cyny inwestycyjnej\u201d \u2013 deweloperzy i inwestorzy indywidualni zgromadzili liczb\u0119 pozwole\u0144, kt\u00f3re w nadchodz\u0105cych kwarta\u0142ach prze\u0142o\u017c\u0105 si\u0119 na wzmo\u017cone\u00a0 zapotrzebowanie na profesjonalne us\u0142ugi instalacyjne.\u00a0<\/p>\n\n\n\n<p>Niniejszy raport stanowi wyczerpuj\u0105ce narz\u0119dzie operacyjne, wykraczaj\u0105ce poza powierzchown\u0105 analiz\u0119 danych historycznych. Jego celem jest precyzyjne wskazanie, gdzie w latach 2025\u20132026 by\u0142 i dalej b\u0119dzie realny popyt (Mapa potencja\u0142u), kt\u00f3re segmenty rynku oferuj\u0105 najwy\u017csz\u0105 rentowno\u015b\u0107 w obliczu presji cenowej (Geografia zysk\u00f3w) oraz kt\u00f3re rynki s\u0105 nasycone, gdzie walka cenowa niszczy mar\u017ce (Analiza konkurencji). Wnioski oparto na syntezie twardych danych wolumenowych ze wska\u017anikami ekonomicznymi, tworz\u0105c obraz rynku, w kt\u00f3rym kluczem do sukcesu nie jest ju\u017c sama obecno\u015b\u0107, lecz strategiczna specjalizacja.<\/p>\n\n\n<style>.kb-table-of-content-nav.kb-table-of-content-id1849_6f6836-74 .kb-table-of-content-wrap{padding-top:var(--global-kb-spacing-sm, 1.5rem);padding-right:var(--global-kb-spacing-sm, 1.5rem);padding-bottom:var(--global-kb-spacing-sm, 1.5rem);padding-left:var(--global-kb-spacing-sm, 1.5rem);background-color:#fafafa;}.kb-table-of-content-nav.kb-table-of-content-id1849_6f6836-74 .kb-table-of-contents-title-wrap{padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.kb-table-of-content-nav.kb-table-of-content-id1849_6f6836-74 .kb-table-of-contents-title{font-size:26px;font-family:'Open Sans';font-weight:600;font-style:normal;}.kb-table-of-content-nav.kb-table-of-content-id1849_6f6836-74 .kb-table-of-content-wrap .kb-table-of-content-list{font-size:18px;font-family:'Open Sans';font-weight:500;font-style:normal;margin-top:var(--global-kb-spacing-sm, 1.5rem);margin-right:0px;margin-bottom:0px;margin-left:0px;}.kb-table-of-content-nav.kb-table-of-content-id1849_6f6836-74 .kb-table-of-content-wrap .kb-table-of-content-list .active > .kb-table-of-contents__entry{color:var(--global-palette1, #3182CE);}.kb-table-of-content-nav.kb-table-of-content-id1849_6f6836-74 .kb-toggle-icon-style-basiccircle .kb-table-of-contents-icon-trigger:after, .kb-table-of-content-nav.kb-table-of-content-id1849_6f6836-74 .kb-toggle-icon-style-basiccircle .kb-table-of-contents-icon-trigger:before, .kb-table-of-content-nav.kb-table-of-content-id1849_6f6836-74 .kb-toggle-icon-style-arrowcircle .kb-table-of-contents-icon-trigger:after, .kb-table-of-content-nav.kb-table-of-content-id1849_6f6836-74 .kb-toggle-icon-style-arrowcircle .kb-table-of-contents-icon-trigger:before, .kb-table-of-content-nav.kb-table-of-content-id1849_6f6836-74 .kb-toggle-icon-style-xclosecircle .kb-table-of-contents-icon-trigger:after, .kb-table-of-content-nav.kb-table-of-content-id1849_6f6836-74 .kb-toggle-icon-style-xclosecircle .kb-table-of-contents-icon-trigger:before{background-color:#fafafa;}@media all and (max-width: 767px){.kb-table-of-content-nav.kb-table-of-content-id1849_6f6836-74 .kb-table-of-content-wrap .kb-table-of-content-list{font-size:14px;}}<\/style>\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading1849_8a1074-41, .wp-block-kadence-advancedheading.kt-adv-heading1849_8a1074-41[data-kb-block=\"kb-adv-heading1849_8a1074-41\"]{font-size:var(--global-kb-font-size-lg, 2rem);font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading1849_8a1074-41 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading1849_8a1074-41[data-kb-block=\"kb-adv-heading1849_8a1074-41\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading1849_8a1074-41 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading1849_8a1074-41[data-kb-block=\"kb-adv-heading1849_8a1074-41\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h2 class=\"kt-adv-heading1849_8a1074-41 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading1849_8a1074-41\"><strong>Rozdzia\u0142 1: Prawdziwa \u201eMapa potencja\u0142u\u201d \u2013 prognoza regionalna 2026<\/strong><\/h2>\n\n\n\n<p>Tradycyjne raporty opieraj\u0105 si\u0119 na danych o mieszkaniach \u201eoddanych do u\u017cytkowania\u201d. Jest to jednak wska\u017anik historyczny, m\u00f3wi\u0105cy o tym, gdzie instalatorzy pracowali rok temu. Dla firm podsumowuj\u0105cych 2025 rok i planuj\u0105cych strategi\u0119 na 2026, kluczowe s\u0105 wska\u017aniki wyprzedzaj\u0105ce: liczba rozpocz\u0119tych bud\u00f3w oraz wydanych pozwole\u0144 na budow\u0119. To one definiuj\u0105 \u201efront rob\u00f3t\u201d, kt\u00f3ry otworzy si\u0119 dla bran\u017cy HVAC, elektrycznej i wyko\u0144czeniowej w horyzoncie najbli\u017cszych 12\u201318 miesi\u0119cy.<\/p>\n\n\n\n<p>Poni\u017csza tabela prezentuje prognozowany wolumen inwestycji, kt\u00f3re wejd\u0105 w faz\u0119 instalacyjn\u0105 (stan surowy zamkni\u0119ty \/ prace instalacyjne) w cyklu 2025\/2026. Oparta jest ona o dane historyczne. W 2024 roku inwestorzy za\u0142atwiali papiery, w 2025 wylewali fundamenty i stawiali mury, a w 2026 b\u0119d\u0105 zamyka\u0107 stan surowy i montowa\u0107 instalacje (pompy ciep\u0142a, rekuperacj\u0119, hydraulik\u0119).&nbsp; \u0179r\u00f3d\u0142em danych s\u0105 biuletyny G\u0142\u00f3wnego Urz\u0119du Statystycznego (GUS) oraz raporty G\u0142\u00f3wnego Urz\u0119du Nadzoru Budowlanego (GUNB.za okres I-XI 2025 r., ekstrapolowane na pe\u0142ny rok (dodano szacunek za grudzie\u0144 wg \u015bredniej z IV kwarta\u0142u).<\/p>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading1849_079818-e6, .wp-block-kadence-advancedheading.kt-adv-heading1849_079818-e6[data-kb-block=\"kb-adv-heading1849_079818-e6\"]{font-size:26px;font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading1849_079818-e6 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading1849_079818-e6[data-kb-block=\"kb-adv-heading1849_079818-e6\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading1849_079818-e6 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading1849_079818-e6[data-kb-block=\"kb-adv-heading1849_079818-e6\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h3 class=\"kt-adv-heading1849_079818-e6 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading1849_079818-e6\"><strong>Ranking TOP 16 \u2013 Mapa potencja\u0142u inwestycyjnego<\/strong><\/h3>\n\n\n\n<!DOCTYPE html>\n<html lang=\"pl\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Tabela 1.1 &#8211; Mapa Potencja\u0142u<\/title>\n    \n    <script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\n    \n    <script crossorigin src=\"https:\/\/unpkg.com\/react@18\/umd\/react.production.min.js\"><\/script>\n    <script crossorigin src=\"https:\/\/unpkg.com\/react-dom@18\/umd\/react-dom.production.min.js\"><\/script>\n    \n    <script src=\"https:\/\/unpkg.com\/@babel\/standalone\/babel.min.js\"><\/script>\n\n    <style>\n        \/* Style lokalne - identyczne jak w projekcie *\/\n        .text-primary { color: #fe5100; }\n        .bg-primary { background-color: #fe5100; }\n        .bg-primary\\\/5 { background-color: rgba(254, 81, 0, 0.05); }\n        .hover\\:bg-primary-light:hover { background-color: rgba(254, 81, 0, 0.1); }\n        \n        \/* Scrollbar *\/\n        ::-webkit-scrollbar { width: 8px; height: 8px; }\n        ::-webkit-scrollbar-track { background: #f1f5f9; }\n        ::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 4px; }\n        ::-webkit-scrollbar-thumb:hover { background: #94a3b8; }\n    <\/style>\n<\/head>\n<body>\n    <div id=\"root-mapa-potencjalu\"><\/div>\n\n    <script type=\"text\/babel\">\n        const { useState, useMemo } = React;\n\n        \/\/ --- IKONY ---\n        const MapIcons = {\n            ArrowUp: () => <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\"><path d=\"m5 12 7-7 7 7\"\/><path d=\"M12 19V5\"\/><\/svg>,\n            ArrowDown: () => <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\"><path d=\"M12 5v14\"\/><path d=\"m19 12-7 7-7-7\"\/><\/svg>\n        };\n\n        \/\/ --- DANE TYLKO DLA TABELI 1.1 (Zmienna MapData) ---\n        const MapData = {\n            regions: [\n                { id: 1, name: \"Mazowieckie\", permits24: 14037, doneHouses25: 7500, doneApts25: 33500, progHouses26: 7100, progApts26: 36000, active26: 162000 },\n                { id: 2, name: \"Ma\u0142opolskie\", permits24: 11295, doneHouses25: 7100, doneApts25: 14200, progHouses26: 6800, progApts26: 15500, active26: 96000 },\n                { id: 3, name: \"Wielkopolskie\", permits24: 8170, doneHouses25: 6800, doneApts25: 16500, progHouses26: 6200, progApts26: 17000, active26: 92000 },\n                { id: 4, name: \"\u015al\u0105skie\", permits24: 8978, doneHouses25: 5900, doneApts25: 10500, progHouses26: 5500, progApts26: 11000, active26: 72000 },\n                { id: 5, name: \"Dolno\u015bl\u0105skie\", permits24: 6850, doneHouses25: 4200, doneApts25: 15100, progHouses26: 3900, progApts26: 16500, active26: 86000 },\n                { id: 6, name: \"Pomorskie\", permits24: 6100, doneHouses25: 4600, doneApts25: 13800, progHouses26: 4200, progApts26: 14500, active26: 76000 },\n                { id: 7, name: \"\u0141\u00f3dzkie\", permits24: 5200, doneHouses25: 3800, doneApts25: 7200, progHouses26: 3500, progApts26: 7500, active26: 46000 },\n                { id: 8, name: \"Podkarpackie\", permits24: 6400, doneHouses25: 5200, doneApts25: 3100, progHouses26: 4800, progApts26: 3200, active26: 36000 },\n                { id: 9, name: \"Lubelskie\", permits24: 5100, doneHouses25: 3900, doneApts25: 3800, progHouses26: 3600, progApts26: 4000, active26: 36000 },\n                { id: 10, name: \"Kujawsko-Pom.\", permits24: 4200, doneHouses25: 3100, doneApts25: 3900, progHouses26: 2900, progApts26: 4100, active26: 31000 },\n                { id: 11, name: \"Zachodniopom.\", permits24: 3600, doneHouses25: 2600, doneApts25: 4800, progHouses26: 2400, progApts26: 5100, active26: 35000 },\n                { id: 12, name: \"Warmi\u0144sko-Maz.\", permits24: 3100, doneHouses25: 2400, doneApts25: 2900, progHouses26: 2200, progApts26: 3000, active26: 21000 },\n                { id: 13, name: \"\u015awi\u0119tokrzyskie\", permits24: 2800, doneHouses25: 2100, doneApts25: 1600, progHouses26: 1900, progApts26: 1600, active26: 16000 },\n                { id: 14, name: \"Podlaskie\", permits24: 2900, doneHouses25: 2200, doneApts25: 2600, progHouses26: 2000, progApts26: 2700, active26: 19000 },\n                { id: 15, name: \"Lubuskie\", permits24: 2200, doneHouses25: 1600, doneApts25: 2200, progHouses26: 1400, progApts26: 2300, active26: 16000 },\n                { id: 16, name: \"Opolskie\", permits24: 1775, doneHouses25: 1500, doneApts25: 1100, progHouses26: 1300, progApts26: 1200, active26: 11000 }\n            ],\n            total: {\n                name: \"POLSKA (Suma)\",\n                permits24: \"99 282\",\n                doneHouses25: \"67 600\",\n                doneApts25: \"134 100\",\n                progHouses26: \"~62 500 \u2193\",\n                progApts26: \"~142 000 \u2191\",\n                active26: \"~845 000\"\n            }\n        };\n\n        const MapTableComponent = () => {\n            const [sortCol, setSortCol] = useState(null);\n            const [sortDir, setSortDir] = useState('asc');\n\n            const sortedRegions = useMemo(() => {\n                if (!sortCol) return MapData.regions;\n                return [...MapData.regions].sort((a, b) => {\n                    const valA = a[sortCol];\n                    const valB = b[sortCol];\n                    if (valA < valB) return sortDir === 'asc' ? -1 : 1;\n                    if (valA > valB) return sortDir === 'asc' ? 1 : -1;\n                    return 0;\n                });\n            }, [sortCol, sortDir]);\n\n            const handleSort = (col) => {\n                if (sortCol === col) {\n                    setSortDir(sortDir === 'asc' ? 'desc' : 'asc');\n                } else {\n                    setSortCol(col);\n                    setSortDir('asc');\n                }\n            };\n\n            const SortIcon = ({ col }) => {\n                if (sortCol !== col) return <span className=\"opacity-20 ml-1\">\u21c5<\/span>;\n                return sortDir === 'asc' ? <span className=\"ml-1 text-primary\"><MapIcons.ArrowUp\/><\/span> : <span className=\"ml-1 text-primary\"><MapIcons.ArrowDown\/><\/span>;\n            };\n\n            return (\n                <div className=\"max-w-7xl mx-auto font-sans\">\n                    <div className=\"bg-white rounded-lg shadow-lg border border-slate-200 overflow-hidden mb-12\">\n                        <div className=\"overflow-x-auto\">\n                            <table className=\"w-full text-sm text-left\">\n                                <thead className=\"bg-slate-100 text-slate-600 uppercase text-xs font-bold\">\n                                    <tr>\n                                        <th onClick={() => handleSort('name')} className=\"px-6 py-3 cursor-pointer hover:bg-slate-200 min-w-[140px]\">A. Wojew\u00f3dztwo <SortIcon col=\"name\"\/><\/th>\n                                        <th onClick={() => handleSort('permits24')} className=\"px-6 py-3 text-right cursor-pointer hover:bg-slate-200\">B. Pozwolenia<br\/>na budow\u0119 dom\u00f3w<br\/>(2024) <SortIcon col=\"permits24\"\/><\/th>\n                                        <th onClick={() => handleSort('doneHouses25')} className=\"px-6 py-3 text-right cursor-pointer hover:bg-slate-200\">C. Oddane domy<br\/>(Indywidualne)<br\/>(2025) [szt.] <SortIcon col=\"doneHouses25\"\/><\/th>\n                                        <th onClick={() => handleSort('doneApts25')} className=\"px-6 py-3 text-right cursor-pointer hover:bg-slate-200\">D. Oddane<br\/>mieszkania<br\/>(2025) <SortIcon col=\"doneApts25\"\/><\/th>\n                                        <th onClick={() => handleSort('progHouses26')} className=\"px-6 py-3 text-right cursor-pointer hover:bg-slate-200 text-primary\">E. PROGNOZA:<br\/>Zako\u0144czone<br\/>domy 1-rodz. (2026) <SortIcon col=\"progHouses26\"\/><\/th>\n                                        <th onClick={() => handleSort('progApts26')} className=\"px-6 py-3 text-right cursor-pointer hover:bg-slate-200 text-primary\">F. PROGNOZA:<br\/>Oddane<br\/>mieszkania (2026) <SortIcon col=\"progApts26\"\/><\/th>\n                                        <th onClick={() => handleSort('active26')} className=\"px-6 py-3 text-right cursor-pointer hover:bg-slate-200\">G. PROGNOZA:<br\/>Stan aktywny<br\/>(w budowie) na koniec 2026 <SortIcon col=\"active26\"\/><\/th>\n                                    <\/tr>\n                                <\/thead>\n                                <tbody className=\"divide-y divide-slate-100\">\n                                    {sortedRegions.map((row, idx) => (\n                                        <tr key={row.id} className=\"hover:bg-primary-light transition-colors\">\n                                            <td className=\"px-6 py-4 font-medium text-slate-900\">{idx + 1}. {row.name}<\/td>\n                                            <td className=\"px-6 py-4 text-right\">{row.permits24.toLocaleString().replace(\/,\/g, ' ')}<\/td>\n                                            <td className=\"px-6 py-4 text-right text-slate-500\">{row.doneHouses25.toLocaleString().replace(\/,\/g, ' ')}<\/td>\n                                            <td className=\"px-6 py-4 text-right text-slate-500\">{row.doneApts25.toLocaleString().replace(\/,\/g, ' ')}<\/td>\n                                            <td className=\"px-6 py-4 text-right font-bold text-primary bg-primary\/5\">{row.progHouses26.toLocaleString().replace(\/,\/g, ' ')}<\/td>\n                                            <td className=\"px-6 py-4 text-right font-bold text-primary bg-primary\/5\">{row.progApts26.toLocaleString().replace(\/,\/g, ' ')}<\/td>\n                                            <td className=\"px-6 py-4 text-right font-semibold text-slate-700\">{row.active26.toLocaleString().replace(\/,\/g, ' ')}<\/td>\n                                        <\/tr>\n                                    ))}\n                                <\/tbody>\n                                <tfoot className=\"bg-slate-100 font-bold border-t-2 border-slate-300\">\n                                    <tr className=\"text-base\">\n                                        <td className=\"px-6 py-4 text-slate-900\">{MapData.total.name}<\/td>\n                                        <td className=\"px-6 py-4 text-right\">{MapData.total.permits24}<\/td>\n                                        <td className=\"px-6 py-4 text-right\">{MapData.total.doneHouses25}<\/td>\n                                        <td className=\"px-6 py-4 text-right\">{MapData.total.doneApts25}<\/td>\n                                        <td className=\"px-6 py-4 text-right text-primary\">{MapData.total.progHouses26}<\/td>\n                                        <td className=\"px-6 py-4 text-right text-primary\">{MapData.total.progApts26}<\/td>\n                                        <td className=\"px-6 py-4 text-right\">{MapData.total.active26}<\/td>\n                                    <\/tr>\n                                <\/tfoot>\n                            <\/table>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            );\n        };\n\n        \/\/ RENDEROWANIE DO UNIKALNEGO ID\n        const root = ReactDOM.createRoot(document.getElementById('root-mapa-potencjalu'));\n        root.render(<MapTableComponent \/>);\n    <\/script>\n<\/body>\n<\/html>\n\n\n\n<p><strong>Jak przygotowali\u015bmy prognozy:<\/strong> Matematyczna projekcja liczby budynk\u00f3w, kt\u00f3re osi\u0105gn\u0105 etap &#8222;pod klucz&#8221; w 2026 roku.&nbsp; Zastosowano model 2-letniego op\u00f3\u017anienia z korekt\u0105 na &#8222;wska\u017anik konwersji&#8221;. <em>Wz\u00f3r:<\/em> Pozwolenia 2024 (Kol. B) * Wska\u017anik Realizacji (~63%) = Prognoza oddania 2026 (Kol. E). R\u00f3\u017cnice mog\u0105 wyst\u0119powa\u0107 ze wzgl\u0119du na przeprowadzon\u0105 dodatkowo korekt\u0119 eksperck\u0105. Nie ka\u017cde pozwolenie ko\u0144czy si\u0119 budow\u0105. Cz\u0119\u015b\u0107 inwestycji jest zawieszana lub trwa d\u0142u\u017cej ni\u017c 2 lata. Dlatego liczba w kolumnie E (62 500) jest ni\u017csza ni\u017c w kolumnie B (99 282). Dla instalatora to sygna\u0142: &#8222;Z puli 100 tys. papier\u00f3w, realnie powstanie ok. 62 tys. dom\u00f3w gotowych na monta\u017c&#8221;.&nbsp; Model dla mieszka\u0144 oparty na cyklu deweloperskim (ok. 24-30 miesi\u0119cy) oraz danych o rozpoczynanych budowach w latach 2023-2024. Prognoza obejmuje obiekty, kt\u00f3re w latach 2025-2026 b\u0119d\u0105 na etapie instalacji i wyko\u0144czenia.&nbsp;&nbsp;&nbsp;<\/p>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading1849_bb28ff-7e, .wp-block-kadence-advancedheading.kt-adv-heading1849_bb28ff-7e[data-kb-block=\"kb-adv-heading1849_bb28ff-7e\"]{font-size:26px;font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading1849_bb28ff-7e mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading1849_bb28ff-7e[data-kb-block=\"kb-adv-heading1849_bb28ff-7e\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading1849_bb28ff-7e img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading1849_bb28ff-7e[data-kb-block=\"kb-adv-heading1849_bb28ff-7e\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h3 class=\"kt-adv-heading1849_bb28ff-7e wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading1849_bb28ff-7e\"><strong>Charakterystyka rynku i trendy w poszczeg\u00f3lnych wojew\u00f3dztwach na rok 2026<\/strong><\/h3>\n\n\n\n<div id=\"kr-trends-module\">\n  <style>\n    \/* IZOLACJA I RESET *\/\n    #kr-trends-module {\n      font-family: 'Inter', -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n      color: #1f2937;\n      background-color: #ffffff;\n      line-height: 1.5;\n      width: 100%;\n      margin: 0 0 20px 0;\n      border: 1px solid #e2e8f0;\n      border-radius: 0.5rem;\n      overflow: hidden;\n      box-sizing: border-box;\n      box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);\n      \n      --primary: #fe5100;\n      --text-dark: #334155;\n      --text-gray: #64748b;\n      --border: #e2e8f0;\n      --header-bg: #f8fafc;\n    }\n    \n    #kr-trends-module * {\n      box-sizing: border-box;\n    }\n\n    \/* NAG\u0141\u00d3WEK SEKCJI *\/\n    #kr-trends-module .kr-section-header {\n      text-align: left;\n      padding: 1.5rem;\n      background: var(--header-bg);\n      border-bottom: 1px solid var(--border);\n    }\n    \n    #kr-trends-module .kr-section-header h2 {\n      font-size: 1.25rem;\n      margin: 0 0 0.5rem 0;\n      color: var(--text-dark);\n      font-weight: 700;\n      line-height: 1.2;\n    }\n    \n    #kr-trends-module .kr-section-header p {\n      color: var(--text-gray); \n      font-size: 0.95rem; \n      margin: 0;\n    }\n\n    #kr-trends-module .kr-content {\n      padding: 1.5rem;\n      background-color: #fff;\n    }\n\n    \/* GRID *\/\n    #kr-trends-module .kr-grid {\n      display: grid;\n      gap: 1.25rem;\n      grid-template-columns: 1fr;\n    }\n\n    @media (min-width: 768px) {\n      #kr-trends-module .kr-grid {\n        grid-template-columns: repeat(2, 1fr);\n      }\n    }\n\n    @media (min-width: 1024px) {\n      #kr-trends-module .kr-grid {\n        grid-template-columns: repeat(3, 1fr);\n      }\n    }\n\n    \/* KARTA *\/\n    #kr-trends-module .kr-card {\n      background: white;\n      border: 1px solid var(--border);\n      border-radius: 12px;\n      overflow: hidden;\n      transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n      cursor: pointer;\n      position: relative;\n      display: flex;\n      flex-direction: column;\n    }\n    \n    #kr-trends-module .kr-card:hover {\n      transform: translateY(-4px);\n      box-shadow: 0 12px 20px -8px rgba(254, 81, 0, 0.15);\n      border-color: var(--primary);\n    }\n\n    #kr-trends-module .kr-card-header {\n      padding: 1.25rem;\n      display: flex;\n      justify-content: space-between;\n      align-items: flex-start;\n      gap: 12px;\n    }\n\n    \/* POPRAWKA DLA MA\u0141YCH EKRAN\u00d3W: TAG POD SPODEM *\/\n    @media (max-width: 480px) {\n      #kr-trends-module .kr-card-header {\n        flex-direction: column;\n        align-items: flex-start;\n      }\n      #kr-trends-module .kr-ocean-tag {\n        margin-left: 0 !important;\n        margin-top: 8px;\n        align-self: flex-start;\n      }\n    }\n\n    #kr-trends-module .kr-rank {\n      color: #cbd5e1;\n      font-size: 0.9rem;\n      font-weight: 800;\n      min-width: 24px;\n    }\n\n    #kr-trends-module .kr-region-name {\n      font-weight: 700;\n      font-size: 1.1rem;\n      margin: 0;\n      color: #1e293b;\n      line-height: 1.3;\n      word-break: break-word; \/* Zabezpieczenie przed b. d\u0142ugimi nazwami *\/\n    }\n\n    #kr-trends-module .kr-category {\n      color: var(--primary);\n      font-size: 0.8rem;\n      margin-top: 0.25rem;\n      font-weight: 600;\n      text-transform: uppercase;\n      letter-spacing: 0.02em;\n    }\n\n    #kr-trends-module .kr-ocean-tag {\n      font-size: 0.7rem;\n      padding: 6px 10px;\n      border-radius: 6px;\n      font-weight: 700;\n      text-transform: uppercase;\n      \/* Pozwalamy na zawijanie w 2 linie je\u015bli brak miejsca *\/\n      white-space: normal; \n      text-align: center;\n      line-height: 1.2;\n      margin-left: auto; \n      min-width: 80px;\n    }\n\n    \/* KOLORY TAG\u00d3W *\/\n    #kr-trends-module .tag-red { background: #fee2e2; color: #991b1b; }\n    #kr-trends-module .tag-blue { background: #dbeafe; color: #1e40af; }\n    #kr-trends-module .tag-teal { background: #ccfbf1; color: #115e59; }\n    #kr-trends-module .tag-green { background: #dcfce7; color: #166534; }\n    #kr-trends-module .tag-gray { background: #f3f4f6; color: #374151; }\n    #kr-trends-module .tag-orange { background: #ffedd5; color: #9a3412; }\n\n    \/* TRE\u015a\u0106 ROZWIJANA *\/\n    #kr-trends-module .kr-card-body {\n      padding: 0 1.25rem;\n      max-height: 0;\n      overflow: hidden;\n      transition: max-height 0.4s ease-out, padding 0.4s ease;\n      background: white;\n    }\n    \n    #kr-trends-module .kr-card-body.expanded {\n      max-height: 600px;\n      padding-bottom: 1.25rem;\n    }\n\n    #kr-trends-module .kr-trend-text {\n      padding-top: 1rem;\n      border-top: 1px solid #f1f5f9;\n      font-size: 0.95rem;\n      color: var(--text-gray);\n      line-height: 1.6;\n    }\n\n    #kr-trends-module .kr-card-footer {\n      background: #f8fafc;\n      padding: 0.75rem;\n      text-align: center;\n      color: #9ca3af;\n      border-top: 1px solid #f1f5f9;\n      margin-top: auto;\n    }\n    \n    #kr-trends-module .icon { \n      width: 20px; \n      height: 20px; \n      stroke: currentColor; \n      fill: none; \n      stroke-width: 2; \n      stroke-linecap: round; \n      stroke-linejoin: round;\n      transition: transform 0.3s ease;\n    }\n\n    #kr-trends-module .kr-card-body.expanded ~ .kr-card-footer .icon {\n      transform: rotate(180deg);\n    }\n  <\/style>\n\n  <div class=\"kr-section-header\">\n    <h2>Charakterystyka Rynku i Trendy<\/h2>\n    <p>Kliknij kart\u0119 regionu, aby zobaczy\u0107 szczeg\u00f3\u0142ow\u0105 analiz\u0119.<\/p>\n  <\/div>\n  \n  <div class=\"kr-content\">\n    <div class=\"kr-grid\" id=\"trendsGridUnique\">\n      <\/div>\n  <\/div>\n\n  <script>\n    (function() {\n      const regionsData = [\n        { id: 1, name: \"Mazowieckie\", rank: 1, cat: \"Dominacja ilo\u015bciowa\", ocean: \"Czerwony ocean\", color: \"red\", trend: \"Rynek o najwy\u017cszej absorpcji. Rekordowa liczba pozwole\u0144 na budow\u0119 (ponad 45 tys. w 2024) gwarantuje ci\u0105g\u0142o\u015b\u0107 zlece\u0144, jednak wysokie koszty operacyjne wymuszaj\u0105 automatyzacj\u0119 proces\u00f3w. Ogromny popyt na klimatyzacj\u0119 w biurach i mieszkaniach.\" },\n        { id: 2, name: \"Ma\u0142opolskie\", rank: 2, cat: \"Wymagaj\u0105cy rynek\", ocean: \"Czerwony ocean\", color: \"red\", trend: \"Trudny teren i rygorystyczne przepisy antysmogowe nap\u0119dzaj\u0105 popyt na pompy ciep\u0142a klasy premium. Silny segment \u201eSecond Home\u201d w pasie podg\u00f3rskim generuje zlecenia o wysokiej mar\u017cy. Rynek wschodz\u0105cy, jeden z niewielu, gdzie przybywa ludzi.\" },\n        { id: 3, name: \"Wielkopolskie\", rank: 3, cat: \"Stabilizacja przemys\u0142owa\", ocean: \"Wysoka konkurencja\", color: \"orange\", trend: \"Zr\u00f3wnowa\u017cony portfel mi\u0119dzy budownictwem jednorodzinnym (podpozna\u0144skie gminy) a deweloperskim. Rynek nasycony, ale przewidywalny, z siln\u0105 kultur\u0105 techniczn\u0105 inwestor\u00f3w.\" },\n        { id: 4, name: \"Dolno\u015bl\u0105skie\", rank: 4, cat: \"Inwestycyjne Eldorado\", ocean: \"Czerwony ocean\", color: \"red\", trend: \"Wroc\u0142aw i pasmo Sudet\u00f3w przyci\u0105gaj\u0105 kapita\u0142 inwestycyjny. Wysoki udzia\u0142 mieszka\u0144 na wynajem wymusza stosowanie trwa\u0142ych, bezobs\u0142ugowych system\u00f3w HVAC.\" },\n        { id: 5, name: \"Pomorskie\", rank: 5, cat: \"Wysoka intensywno\u015b\u0107\", ocean: \"Nisza Premium\", color: \"blue\", trend: \"Najwy\u017cszy wska\u017anik mieszka\u0144 na 1000 mieszka\u0144c\u00f3w. Popyt nap\u0119dzany przez turystyk\u0119 i migracj\u0119 wewn\u0119trzn\u0105. Kluczowy rynek dla klimatyzacji (ch\u0142odzenie latem) i pomp ciep\u0142a (ogrzewanie zim\u0105).\" },\n        { id: 6, name: \"\u015al\u0105skie\", rank: 6, cat: \"Gigant modernizacji\", ocean: \"Czerwony ocean\", color: \"red\", trend: \"Cho\u0107 nowe budownictwo ust\u0119puje innym regionom, potencja\u0142 tkwi w rewitalizacji. Najwi\u0119kszy rynek wymian \u017ar\u00f3de\u0142 ciep\u0142a w ramach programu Czyste Powietrze.\" },\n        { id: 7, name: \"\u0141\u00f3dzkie\", rank: 7, cat: \"Logistyka i PRS\", ocean: \"Wysoka konkurencja\", color: \"orange\", trend: \"Transformacja w kierunku najmu instytucjonalnego (PRS). Spadek znaczenia inwestora indywidualnego na rzecz kontrakt\u00f3w deweloperskich. Wyludnianie si\u0119 regionu oznacza skupienie na remontach.\" },\n        { id: 8, name: \"Podkarpackie\", rank: 8, cat: \"Bastion indywidualny\", ocean: \"Luka kompetencyjna\", color: \"green\", trend: \"Rynek zdominowany przez inwestor\u00f3w prywatnych buduj\u0105cych du\u017ce domy wielopokoleniowe. Niski udzia\u0142 deweloper\u00f3w, wysokie zapotrzebowanie na instalacje OZE du\u017cej mocy.\" },\n        { id: 9, name: \"Zachodniopomorskie\", rank: 9, cat: \"Sezonowo\u015b\u0107 i wybrze\u017ce\", ocean: \"B\u0142\u0119kitny ocean\", color: \"teal\", trend: \"Inwestycje skoncentrowane w pasie nadmorskim (apartamenty wakacyjne). Specyfika rynku wymaga obs\u0142ugi serwisowej w sezonie letnim.\" },\n        { id: 10, name: \"Lubelskie\", rank: 10, cat: \"Wschodnia stabilizacja\", ocean: \"Luka kompetencyjna\", color: \"green\", trend: \"Umiarkowany wzrost oparty na budownictwie jednorodzinnym. Rynek rozproszony. Mniejsza presja konkurencyjna ni\u017c na zachodzie kraju pozwala na budowanie stabilnych mar\u017c.\" },\n        { id: 11, name: \"Kujawsko-Pomorskie\", rank: 11, cat: \"Rynek Bipolarny\", ocean: \"Wojna cenowa\", color: \"gray\", trend: \"Aktywno\u015b\u0107 skupiona wy\u0142\u0105cznie wok\u00f3\u0142 Bydgoszczy i Torunia. Poza aglomeracjami rynek stagnacyjny, co wymusza mobilno\u015b\u0107 ekip instalatorskich.\" },\n        { id: 12, name: \"Podlaskie\", rank: 12, cat: \"Lokalna specyfika\", ocean: \"Rynek stabilny\", color: \"gray\", trend: \"Silny rozw\u00f3j przedmie\u015b\u0107 Bia\u0142egostoku. Rosn\u0105ce zainteresowanie budownictwem modu\u0142owym i drewnianym, wymagaj\u0105cym specyficznych rozwi\u0105za\u0144 instalacyjnych.\" },\n        { id: 13, name: \"Warmi\u0144sko-Mazurskie\", rank: 13, cat: \"Turystyka i rekreacja\", ocean: \"B\u0142\u0119kitny ocean\", color: \"teal\", trend: \"Dominacja budownictwa letniskowego i hotelowego. Popyt na zaawansowan\u0105 automatyk\u0119 budynkow\u0105 (sterowanie zdalne). Rynek trudny logistycznie (du\u017ce odleg\u0142o\u015bci).\" },\n        { id: 14, name: \"Lubuskie\", rank: 14, cat: \"Korytarz tranzytowy\", ocean: \"B\u0142\u0119kitny ocean\", color: \"teal\", trend: \"Rozw\u00f3j mieszkalnictwa st\u0142umiony przez ekspansj\u0119 magazynow\u0105. Deficyt wykonawc\u00f3w (drena\u017c przez rynek niemiecki) podbija stawki robocizny.\" },\n        { id: 15, name: \"\u015awi\u0119tokrzyskie\", rank: 15, cat: \"Stagnacja popytowa\", ocean: \"Wojna cenowa\", color: \"gray\", trend: \"Niski przyrost naturalny ogranicza nowe inwestycje. Rynek oparty na remontach. Klientem jest cz\u0119sto senior wymieniaj\u0105cy kopciucha.\" },\n        { id: 16, name: \"Opolskie\", rank: 16, cat: \"Niszowa jako\u015b\u0107\", ocean: \"Nisza jako\u015bciowa\", color: \"teal\", trend: \"Najmniejszy wolumenowo rynek, ale charakteryzuj\u0105cy si\u0119 wysok\u0105 si\u0142\u0105 nabywcz\u0105 (euro-emigranci), co sprzyja sprzeda\u017cy rozwi\u0105za\u0144 premium.\" }\n      ];\n\n      function initTrendsModule() {\n        const container = document.getElementById('trendsGridUnique');\n        if (!container) return;\n        \n        let html = '';\n        regionsData.forEach(r => {\n          html += `\n            <div class=\"kr-card\" onclick=\"krTrendsToggleCardUnique(this)\">\n              <div class=\"kr-card-header\">\n                <div style=\"flex: 1;\">\n                  <div style=\"display:flex; align-items:baseline; gap:6px; margin-bottom:4px;\">\n                    <span class=\"kr-rank\">#${r.rank}<\/span>\n                    <h3 class=\"kr-region-name\">${r.name}<\/h3>\n                  <\/div>\n                  <div class=\"kr-category\">${r.cat}<\/div>\n                <\/div>\n                <span class=\"kr-ocean-tag tag-${r.color}\">${r.ocean}<\/span>\n              <\/div>\n              <div class=\"kr-card-body\">\n                <div class=\"kr-trend-text\">${r.trend}<\/div>\n              <\/div>\n              <div class=\"kr-card-footer\">\n                <svg class=\"icon\" viewBox=\"0 0 24 24\"><polyline points=\"6 9 12 15 18 9\"><\/polyline><\/svg>\n              <\/div>\n            <\/div>\n          `;\n        });\n        container.innerHTML = html;\n      }\n\n      window.krTrendsToggleCardUnique = function(card) {\n        const body = card.querySelector('.kr-card-body');\n        body.classList.toggle('expanded');\n      };\n\n      if (document.readyState === \"loading\") {\n        document.addEventListener('DOMContentLoaded', initTrendsModule);\n      } else {\n        initTrendsModule();\n      }\n    })();\n  <\/script>\n<\/div>\n\n\n<style>.kb-row-layout-wrap.wp-block-kadence-rowlayout.kb-row-layout-id2403_5216b9-6e{margin-top:var(--global-kb-spacing-sm, 1.5rem);margin-bottom:var(--global-kb-spacing-sm, 1.5rem);}.kb-row-layout-id2403_5216b9-6e > .kt-row-column-wrap{align-content:start;}:where(.kb-row-layout-id2403_5216b9-6e > .kt-row-column-wrap) > .wp-block-kadence-column{justify-content:start;}.kb-row-layout-id2403_5216b9-6e > .kt-row-column-wrap{column-gap:var(--global-kb-gap-md, 2rem);row-gap:var(--global-kb-gap-md, 2rem);max-width:var( --global-content-width, 1290px );padding-left:var(--global-content-edge-padding);padding-right:var(--global-content-edge-padding);padding-top:var(--global-kb-spacing-md, 2rem);padding-right:var(--global-kb-spacing-xxs, 0.5rem);padding-bottom:var(--global-kb-spacing-md, 2rem);padding-left:var(--global-kb-spacing-xxs, 0.5rem);grid-template-columns:minmax(0, calc(25% - ((var(--global-kb-gap-md, 2rem) * 1 )\/2)))minmax(0, calc(75% - ((var(--global-kb-gap-md, 2rem) * 1 )\/2)));}.kb-row-layout-id2403_5216b9-6e{border-bottom:1px solid var(--global-palette7, #EDF2F7);}.kb-row-layout-id2403_5216b9-6e{background-image:linear-gradient(44deg,rgb(254,81,0) 6%,rgb(123,8,156) 100%);}.kb-row-layout-id2403_5216b9-6e > .kt-row-layout-overlay{opacity:0.78;background:radial-gradient(ellipse at center center,var(--global-palette9) 0%,var(--global-palette7) 99%);}@media all and (max-width: 1024px), only screen and (min-device-width: 1024px) and (max-device-width: 1366px) and (-webkit-min-device-pixel-ratio: 2) and (hover: none){.kb-row-layout-wrap.wp-block-kadence-rowlayout.kb-row-layout-id2403_5216b9-6e{background-image:linear-gradient(44deg,var(--global-palette1) 2%,var(--global-palette2) 100%);}}@media all and (max-width: 1024px), only screen and (min-device-width: 1024px) and (max-device-width: 1366px) and (-webkit-min-device-pixel-ratio: 2) and (hover: none){.kb-row-layout-id2403_5216b9-6e .kb-blocks-bg-video-container,.kb-row-layout-id2403_5216b9-6e .kb-blocks-bg-slider{display:none;}}@media all and (max-width: 1024px){.kb-row-layout-id2403_5216b9-6e > .kt-row-column-wrap{grid-template-columns:repeat(2, minmax(0, 1fr));}}@media all and (max-width: 1024px){.kb-row-layout-id2403_5216b9-6e{border-bottom:1px solid var(--global-palette7, #EDF2F7);}}@media all and (max-width: 767px){.kb-row-layout-id2403_5216b9-6e > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr);}.kb-row-layout-id2403_5216b9-6e{border-bottom:1px solid var(--global-palette7, #EDF2F7);}.kb-row-layout-wrap.wp-block-kadence-rowlayout.kb-row-layout-id2403_5216b9-6e{background-image:linear-gradient(44deg,rgb(254,81,0) 0%,rgb(123,8,156) 100%);}.kb-row-layout-id2403_5216b9-6e .kb-blocks-bg-video-container,.kb-row-layout-id2403_5216b9-6e .kb-blocks-bg-slider{display:none;}}<\/style><div class=\"kb-row-layout-wrap kb-row-layout-id2403_5216b9-6e alignfull has-theme-palette9-background-color kt-row-has-bg wp-block-kadence-rowlayout\"><div class=\"kt-row-layout-overlay kt-row-overlay-gradient\"><\/div><div class=\"kt-row-column-wrap kt-has-2-columns kt-row-layout-equal kt-tab-layout-inherit kt-mobile-layout-row kt-row-valign-top kb-theme-content-width\">\n<style>.kadence-column2403_4071af-cb > .kt-inside-inner-col{display:flex;}.kadence-column2403_4071af-cb > .kt-inside-inner-col,.kadence-column2403_4071af-cb > .kt-inside-inner-col:before{border-top-left-radius:24px;border-top-right-radius:24px;border-bottom-right-radius:24px;border-bottom-left-radius:24px;}.kadence-column2403_4071af-cb > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column2403_4071af-cb > .kt-inside-inner-col{flex-direction:column-reverse;justify-content:center;}.kadence-column2403_4071af-cb > .kt-inside-inner-col > .aligncenter{width:100%;}.kt-row-column-wrap > .kadence-column2403_4071af-cb{align-self:center;}.kt-inner-column-height-full:not(.kt-has-1-columns) > .wp-block-kadence-column.kadence-column2403_4071af-cb{align-self:auto;}.kt-inner-column-height-full:not(.kt-has-1-columns) > .wp-block-kadence-column.kadence-column2403_4071af-cb > .kt-inside-inner-col{flex-direction:column;justify-content:center;}.kadence-column2403_4071af-cb > .kt-inside-inner-col{background-image:url('https:\/\/ktozrobi.pl\/media\/wp-content\/uploads\/2026\/02\/jak-dziala-ktozrobi-6-scaled.webp');background-size:contain;background-position:48% 45%;background-attachment:scroll;background-repeat:no-repeat;}.kadence-column2403_4071af-cb > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column2403_4071af-cb{position:relative;}.kadence-column2403_4071af-cb, .kt-inside-inner-col > .kadence-column2403_4071af-cb:not(.specificity){margin-right:var(--global-kb-spacing-xxs, 0.5rem);margin-left:var(--global-kb-spacing-xxs, 0.5rem);}@media all and (max-width: 1024px){.kt-row-column-wrap > .kadence-column2403_4071af-cb{align-self:center;}}@media all and (max-width: 1024px){.kt-inner-column-height-full:not(.kt-has-1-columns) > .wp-block-kadence-column.kadence-column2403_4071af-cb{align-self:auto;}}@media all and (max-width: 1024px){.kt-inner-column-height-full:not(.kt-has-1-columns) > .wp-block-kadence-column.kadence-column2403_4071af-cb > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 1024px){.kadence-column2403_4071af-cb > .kt-inside-inner-col{flex-direction:column-reverse;justify-content:center;}}@media all and (max-width: 767px){.kt-row-column-wrap > .kadence-column2403_4071af-cb{align-self:center;}.kt-inner-column-height-full:not(.kt-has-1-columns) > .wp-block-kadence-column.kadence-column2403_4071af-cb{align-self:auto;}.kt-inner-column-height-full:not(.kt-has-1-columns) > .wp-block-kadence-column.kadence-column2403_4071af-cb > .kt-inside-inner-col{flex-direction:column;justify-content:center;}.kadence-column2403_4071af-cb > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}.kadence-column2403_4071af-cb {}<\/style>\n<div class=\"wp-block-kadence-column kadence-column2403_4071af-cb kb-section-dir-vertical-reverse kb-section-sm-dir-vertical inner-column-1\"><div class=\"kt-inside-inner-col\"><style>.wp-block-kadence-spacer.kt-block-spacer-2403_24aad1-05 .kt-block-spacer{height:600px;}.wp-block-kadence-spacer.kt-block-spacer-2403_24aad1-05 .kt-divider{border-top-width:1px;height:1px;border-top-color:#eee;width:80%;border-top-style:solid;}@media all and (max-width: 767px){.wp-block-kadence-spacer.kt-block-spacer-2403_24aad1-05 .kt-block-spacer{height:320px!important;}}<\/style>\n<div class=\"wp-block-kadence-spacer aligncenter kt-block-spacer-2403_24aad1-05\"><div class=\"kt-block-spacer kt-block-spacer-halign-center\"><\/div><\/div>\n<\/div><\/div>\n\n\n<style>.kadence-column2403_2085ae-eb > .kt-inside-inner-col{display:flex;}.kadence-column2403_2085ae-eb > .kt-inside-inner-col,.kadence-column2403_2085ae-eb > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column2403_2085ae-eb > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column2403_2085ae-eb > .kt-inside-inner-col{flex-direction:column;justify-content:center;}.kadence-column2403_2085ae-eb > .kt-inside-inner-col > .aligncenter{width:100%;}.kt-row-column-wrap > .kadence-column2403_2085ae-eb{align-self:center;}.kt-inner-column-height-full:not(.kt-has-1-columns) > .wp-block-kadence-column.kadence-column2403_2085ae-eb{align-self:auto;}.kt-inner-column-height-full:not(.kt-has-1-columns) > .wp-block-kadence-column.kadence-column2403_2085ae-eb > .kt-inside-inner-col{flex-direction:column;justify-content:center;}.kadence-column2403_2085ae-eb > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column2403_2085ae-eb{text-align:left;}.kadence-column2403_2085ae-eb{position:relative;}.kadence-column2403_2085ae-eb, .kt-inside-inner-col > .kadence-column2403_2085ae-eb:not(.specificity){margin-left:0px;}@media all and (max-width: 1024px){.kt-row-column-wrap > .kadence-column2403_2085ae-eb{align-self:center;}}@media all and (max-width: 1024px){.kt-inner-column-height-full:not(.kt-has-1-columns) > .wp-block-kadence-column.kadence-column2403_2085ae-eb{align-self:auto;}}@media all and (max-width: 1024px){.kt-inner-column-height-full:not(.kt-has-1-columns) > .wp-block-kadence-column.kadence-column2403_2085ae-eb > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 1024px){.kadence-column2403_2085ae-eb > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kt-row-column-wrap > .kadence-column2403_2085ae-eb{align-self:center;}.kt-inner-column-height-full:not(.kt-has-1-columns) > .wp-block-kadence-column.kadence-column2403_2085ae-eb{align-self:auto;}.kt-inner-column-height-full:not(.kt-has-1-columns) > .wp-block-kadence-column.kadence-column2403_2085ae-eb > .kt-inside-inner-col{flex-direction:column;justify-content:center;}.kadence-column2403_2085ae-eb > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column2403_2085ae-eb kb-section-dir-vertical\"><div class=\"kt-inside-inner-col\"><style>.kb-row-layout-id2403_9e3cf9-b8 > .kt-row-column-wrap{align-content:start;}:where(.kb-row-layout-id2403_9e3cf9-b8 > .kt-row-column-wrap) > .wp-block-kadence-column{justify-content:start;}.kb-row-layout-id2403_9e3cf9-b8 > .kt-row-column-wrap{column-gap:var(--global-kb-gap-md, 2rem);row-gap:var(--global-kb-gap-md, 2rem);max-width:var( --global-content-width, 1290px );padding-left:var(--global-content-edge-padding);padding-right:var(--global-content-edge-padding);padding-top:0px;padding-bottom:0px;grid-template-columns:minmax(0, 1fr);}.kb-row-layout-id2403_9e3cf9-b8 > .kt-row-layout-overlay{opacity:0.30;}@media all and (max-width: 1024px){.kb-row-layout-id2403_9e3cf9-b8 > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr);}}@media all and (max-width: 767px){.kb-row-layout-id2403_9e3cf9-b8 > .kt-row-column-wrap{padding-top:var(--global-kb-spacing-xxs, 0.5rem);padding-bottom:var(--global-kb-spacing-xs, 1rem);grid-template-columns:minmax(0, 1fr);}}<\/style><div class=\"kb-row-layout-wrap kb-row-layout-id2403_9e3cf9-b8 alignnone wp-block-kadence-rowlayout\"><div class=\"kt-row-column-wrap kt-has-1-columns kt-row-layout-equal kt-tab-layout-inherit kt-mobile-layout-row kt-row-valign-top kb-theme-content-width\">\n<style>.kadence-column2403_d0e3ac-7a > .kt-inside-inner-col,.kadence-column2403_d0e3ac-7a > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column2403_d0e3ac-7a > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column2403_d0e3ac-7a > .kt-inside-inner-col{flex-direction:column;}.kadence-column2403_d0e3ac-7a > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column2403_d0e3ac-7a > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column2403_d0e3ac-7a{position:relative;}@media all and (max-width: 1024px){.kadence-column2403_d0e3ac-7a > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column2403_d0e3ac-7a > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}.kadence-column2403_d0e3ac-7a {}<\/style>\n<div class=\"wp-block-kadence-column kadence-column2403_d0e3ac-7a inner-column-1\"><div class=\"kt-inside-inner-col\"><style>.wp-block-kadence-advancedheading.kt-adv-heading2403_c0e6b7-9c, .wp-block-kadence-advancedheading.kt-adv-heading2403_c0e6b7-9c[data-kb-block=\"kb-adv-heading2403_c0e6b7-9c\"]{margin-bottom:var(--global-kb-spacing-xs, 1rem);text-align:center;font-size:var(--global-kb-font-size-xl, 3rem);line-height:1.4;font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading2403_c0e6b7-9c mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading2403_c0e6b7-9c[data-kb-block=\"kb-adv-heading2403_c0e6b7-9c\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading2403_c0e6b7-9c img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading2403_c0e6b7-9c[data-kb-block=\"kb-adv-heading2403_c0e6b7-9c\"] img.kb-inline-image{width:150px;vertical-align:baseline;}@media all and (max-width: 767px){.wp-block-kadence-advancedheading.kt-adv-heading2403_c0e6b7-9c, .wp-block-kadence-advancedheading.kt-adv-heading2403_c0e6b7-9c[data-kb-block=\"kb-adv-heading2403_c0e6b7-9c\"]{font-size:22px;}}<\/style>\n<div class=\"kt-adv-heading2403_c0e6b7-9c wp-block-kadence-advancedheading has-theme-palette-3-color has-text-color\" data-kb-block=\"kb-adv-heading2403_c0e6b7-9c\"><strong><strong>\u0141\u0105czymy instalator\u00f3w z inwestorami na jasnych zasadach<\/strong>.<\/strong><\/div>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading2403_409a87-57, .wp-block-kadence-advancedheading.kt-adv-heading2403_409a87-57[data-kb-block=\"kb-adv-heading2403_409a87-57\"]{margin-bottom:var(--global-kb-spacing-md, 2rem);text-align:center;font-size:24px;font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading2403_409a87-57 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading2403_409a87-57[data-kb-block=\"kb-adv-heading2403_409a87-57\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading2403_409a87-57 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading2403_409a87-57[data-kb-block=\"kb-adv-heading2403_409a87-57\"] img.kb-inline-image{width:150px;vertical-align:baseline;}@media all and (max-width: 767px){.wp-block-kadence-advancedheading.kt-adv-heading2403_409a87-57, .wp-block-kadence-advancedheading.kt-adv-heading2403_409a87-57[data-kb-block=\"kb-adv-heading2403_409a87-57\"]{font-size:var(--global-kb-font-size-md, 1.25rem);}}<\/style>\n<div class=\"kt-adv-heading2403_409a87-57 wp-block-kadence-advancedheading has-theme-palette-3-color has-text-color\" data-kb-block=\"kb-adv-heading2403_409a87-57\">Wejd\u017a do projektu przed startem dla inwestor\u00f3w&nbsp;<strong>13 kwietnia<\/strong>&nbsp;i zbuduj przewag\u0119, zanim zrobi to konkurencja.<\/div>\n\n\n\n<div class=\"wp-block-buttons alignwide is-horizontal is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-499968f5 wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button is-style-fill\"><a class=\"wp-block-button__link has-text-align-center has-custom-font-size wp-element-button\" href=\"https:\/\/ktozrobi.pl\/media\/dolacz-teraz\/\" style=\"border-top-left-radius:15px;border-top-right-radius:15px;border-bottom-left-radius:15px;border-bottom-right-radius:15px;padding-top:var(--wp--preset--spacing--30);padding-right:var(--wp--preset--spacing--70);padding-bottom:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--70);font-size:16px;line-height:1.4\">Do\u0142\u0105cz teraz!<\/a><\/div>\n<\/div>\n<\/div><\/div>\n\n<\/div><\/div><\/div><\/div>\n\n<\/div><\/div>\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading1849_f87066-7e, .wp-block-kadence-advancedheading.kt-adv-heading1849_f87066-7e[data-kb-block=\"kb-adv-heading1849_f87066-7e\"]{font-size:26px;font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading1849_f87066-7e mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading1849_f87066-7e[data-kb-block=\"kb-adv-heading1849_f87066-7e\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading1849_f87066-7e img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading1849_f87066-7e[data-kb-block=\"kb-adv-heading1849_f87066-7e\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h3 class=\"kt-adv-heading1849_f87066-7e wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading1849_f87066-7e\"><strong>Analiza strategiczna region\u00f3w<\/strong><\/h3>\n\n\n\n<p>Dane z \u201eMapy potencja\u0142u\u201d ujawniaj\u0105 kluczow\u0105 dla strategii biznesowej dysproporcj\u0119. Cho\u0107&nbsp;<strong>Mazowsze<\/strong>&nbsp;dominuje ilo\u015bciowo, generuj\u0105c blisko 20% krajowego popytu na mieszkania, to rynki takie jak&nbsp;<strong>Pomorskie<\/strong>&nbsp;czy&nbsp;<strong>Ma\u0142opolskie<\/strong>&nbsp;oferuj\u0105 wy\u017csz\u0105 \u201eg\u0119sto\u015b\u0107 warto\u015bci\u201d. W Pomorskiem wska\u017anik liczby mieszka\u0144 na 1000 mieszka\u0144c\u00f3w jest najwy\u017cszy w kraju (7,8 wobec \u015bredniej 5,3), co w po\u0142\u0105czeniu z turystycznym charakterem regionu tworzy idealne warunki dla firm oferuj\u0105cych kompleksowe us\u0142ugi (klimatyzacja + ogrzewanie + smart home) dla inwestor\u00f3w, kt\u00f3rzy nie mieszkaj\u0105 w regionie na sta\u0142e.&nbsp;&nbsp;&nbsp;<\/p>\n\n\n\n<p>Z kolei regiony tzw. \u015bciany wschodniej (Podkarpackie, Lubelskie), mimo ni\u017cszych wolumen\u00f3w og\u00f3lnych, wykazuj\u0105 nadreprezentacj\u0119 w sektorze dom\u00f3w jednorodzinnych o du\u017cej powierzchni (\u015brednia &gt;130 m\u00b2&nbsp;). Oznacza to, \u017ce pojedynczy \u201elead\u201d sprzeda\u017cowy w Rzeszowie jest warty wi\u0119cej (wi\u0119ksza pompa ciep\u0142a, wi\u0119cej p\u0119tli ogrzewania pod\u0142ogowego, wi\u0119ksza moc klimatyzacji) ni\u017c w przypadku ma\u0142ych dom\u00f3w szeregowych budowanych masowo pod Poznaniem czy Wroc\u0142awiem.&nbsp;&nbsp;&nbsp;<\/p>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading1849_4eb186-29, .wp-block-kadence-advancedheading.kt-adv-heading1849_4eb186-29[data-kb-block=\"kb-adv-heading1849_4eb186-29\"]{font-size:var(--global-kb-font-size-lg, 2rem);font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading1849_4eb186-29 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading1849_4eb186-29[data-kb-block=\"kb-adv-heading1849_4eb186-29\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading1849_4eb186-29 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading1849_4eb186-29[data-kb-block=\"kb-adv-heading1849_4eb186-29\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h2 class=\"kt-adv-heading1849_4eb186-29 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading1849_4eb186-29\"><strong>Rozdzia\u0142 2: \u201eGeografia zysk\u00f3w\u201d \u2013 Mar\u017ce segment\u00f3w i koszyki technologiczne<\/strong><\/h2>\n\n\n\n<p>W roku 2025 wolumen nie by\u0142 to\u017csamy z zyskiem. Wzrost konkurencji w segmentach standardowych doprowadzi\u0142 do zmniejszenia mar\u017c, zmuszaj\u0105c firmy wykonawcze do poszukiwania nisz o wy\u017cszej warto\u015bci koszyka. Analiza rentowno\u015bci wskazuje, \u017ce zysk migruje od prostego monta\u017cu w stron\u0119 integracji systemowej i obs\u0142ugi klienta o coraz wy\u017cszych wymaganiach.<\/p>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading1849_e01bd2-a3, .wp-block-kadence-advancedheading.kt-adv-heading1849_e01bd2-a3[data-kb-block=\"kb-adv-heading1849_e01bd2-a3\"]{font-size:26px;font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading1849_e01bd2-a3 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading1849_e01bd2-a3[data-kb-block=\"kb-adv-heading1849_e01bd2-a3\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading1849_e01bd2-a3 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading1849_e01bd2-a3[data-kb-block=\"kb-adv-heading1849_e01bd2-a3\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h3 class=\"kt-adv-heading1849_e01bd2-a3 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading1849_e01bd2-a3\"><strong>Mar\u017ce segment\u00f3w rynku nieruchomo\u015bci<\/strong><\/h3>\n\n\n\n<p>Poni\u017csza tabela przedstawia szacunkowe mar\u017ce netto dla firm wykonawczych w zale\u017cno\u015bci od obs\u0142ugiwanego segmentu nieruchomo\u015bci. Dane bazuj\u0105 na analizie stawek rynkowych i raportach z rynku d\u00f3br luksusowych.&nbsp;&nbsp;&nbsp;<\/p>\n\n\n\n<div id=\"rs26-marze-root\">\n  <style>\n    \/* RESET I IZOLACJA STYLI DLA TEGO KONKRETNEGO BLOKU *\/\n    #rs26-marze-root {\n      font-family: 'Inter', -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n      line-height: 1.5;\n      color: #334155;\n      background-color: transparent;\n      width: 100%;\n      max-width: 100%;\n      margin: 0;\n      box-sizing: border-box;\n      \/* Zmienne lokalne - widoczne tylko w tym bloku *\/\n      --rs-local-primary: #fe5100;\n      --rs-local-text-dark: #334155;\n      --rs-local-text-gray: #64748b;\n      --rs-local-border: #e2e8f0;\n      --rs-local-header-bg: #f8fafc;\n      --rs-local-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);\n      --rs-local-radius: 0.5rem;\n    }\n    \n    #rs26-marze-root *, \n    #rs26-marze-root *::before, \n    #rs26-marze-root *::after {\n      box-sizing: border-box;\n    }\n\n    \/* G\u0141\u00d3WNY MODU\u0141 *\/\n    #rs26-marze-root .rs26-module {\n      background-color: #ffffff;\n      width: 100%;\n      border: 1px solid var(--rs-local-border);\n      border-radius: var(--rs-local-radius);\n      overflow: hidden;\n      box-shadow: var(--rs-local-shadow);\n    }\n\n    \/* NAG\u0141\u00d3WEK SEKCJI *\/\n    #rs26-marze-root .rs26-module-header {\n      text-align: left;\n      padding: 1rem 1.5rem;\n      background: var(--rs-local-header-bg);\n      border-bottom: 1px solid var(--rs-local-border);\n    }\n\n    \/* ZMIANA: Zamiast h2 stylowanie odbywa si\u0119 po klasie .rs26-h2 *\/\n    #rs26-marze-root .rs26-module-header .rs26-h2 {\n      font-size: 18px;\n      margin: 0 0 0.25rem 0;\n      color: #1f2937;\n      font-weight: 700;\n      line-height: 1.2;\n      display: block; \/* Upewniamy si\u0119, \u017ce div zachowuje si\u0119 jak blok *\/\n    }\n\n    #rs26-marze-root .rs26-module-header p {\n      color: var(--rs-local-text-gray);\n      font-size: 0.9rem;\n      margin: 0;\n    }\n\n    \/* TRE\u015a\u0106 MODU\u0141U *\/\n    #rs26-marze-root .rs26-module-content {\n      padding: 1.5rem;\n    }\n\n    \/* Grid i Karty *\/\n    #rs26-marze-root .rs26-grid {\n      display: grid;\n      gap: 1rem;\n      grid-template-columns: 1fr;\n    }\n    \n    @media (min-width: 768px) { \n      #rs26-marze-root .rs26-grid { grid-template-columns: 1fr 1fr; } \n    }\n    @media (min-width: 1024px) { \n      #rs26-marze-root .rs26-grid { grid-template-columns: 1fr 1fr 1fr; } \n    }\n\n    #rs26-marze-root .rs26-card {\n      background: white;\n      border: 1px solid var(--rs-local-border);\n      border-radius: 8px;\n      overflow: hidden;\n      transition: box-shadow 0.3s, border-color 0.3s;\n      height: 100%;\n      display: flex;\n      flex-direction: column;\n    }\n    \n    #rs26-marze-root .rs26-card:hover {\n      box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n      border-color: var(--rs-local-primary);\n    }\n\n    \/* Elementy wewn\u0119trzne *\/\n    #rs26-marze-root .rs26-p-6 { padding: 1.5rem; }\n    #rs26-marze-root .rs26-flex { display: flex; }\n    #rs26-marze-root .rs26-justify-between { justify-content: space-between; }\n    #rs26-marze-root .rs26-items-center { align-items: center; }\n    #rs26-marze-root .rs26-mb-4 { margin-bottom: 1rem; }\n    \n    #rs26-marze-root .rs26-title {\n      font-size: 1.1rem; \n      font-weight: 700; \n      color: #1e293b; \n      margin: 0;\n    }\n\n    #rs26-marze-root .rs26-value {\n      font-weight: 700;\n      font-size: 1.25rem;\n    }\n    #rs26-marze-root .rs26-value.high { color: var(--rs-local-primary); }\n    #rs26-marze-root .rs26-value.mid { color: #64748b; }\n    #rs26-marze-root .rs26-value.low { color: #ef4444; }\n\n    \/* PASKI POST\u0118PU *\/\n    #rs26-marze-root .rs26-progress-bg {\n      width: 100%;\n      background-color: #f1f5f9;\n      border-radius: 9999px;\n      height: 8px;\n      margin-bottom: 16px;\n      overflow: hidden;\n    }\n\n    #rs26-marze-root .rs26-progress-fill {\n      height: 100%;\n      border-radius: 9999px;\n      background-color: #94a3b8;\n      width: 0; \/* Startowa szeroko\u015b\u0107 *\/\n      transition: width 1.5s cubic-bezier(0.4, 0, 0.2, 1); \/* P\u0142ynna animacja *\/\n    }\n\n    #rs26-marze-root .rs26-card[data-high=\"true\"] .rs26-progress-fill {\n      background-color: var(--rs-local-primary);\n    }\n    \n    #rs26-marze-root .rs26-desc-box {\n      font-size: 0.9rem;\n      color: var(--rs-local-text-gray);\n      line-height: 1.6;\n      border-top: 1px solid #f1f5f9;\n      padding-top: 0.5rem;\n      margin-top: auto; \n    }\n  <\/style>\n\n  <div class=\"rs26-module\">\n    <div class=\"rs26-module-header\">\n      <div class=\"rs26-h2\">Mar\u017ce segment\u00f3w rynku nieruchomo\u015bci<\/div>\n      <p>Szacunkowe mar\u017ce netto dla firm wykonawczych w zale\u017cno\u015bci od obs\u0142ugiwanego segmentu.<\/p>\n    <\/div>\n    \n    <div class=\"rs26-module-content\">\n      <div class=\"rs26-grid\"> \n        \n        <div class=\"rs26-card\" data-high=\"true\">\n          <div class=\"rs26-p-6\">\n            <div class=\"rs26-flex rs26-justify-between rs26-items-center rs26-mb-4\">\n              <div class=\"rs26-title\">Domy premium<\/div>\n              <span class=\"rs26-value high\">25% \u2013 35%<\/span>\n            <\/div>\n            <div class=\"rs26-progress-bg\">\n              <div class=\"rs26-progress-fill\" data-width=\"100%\"><\/div>\n            <\/div>\n            <div class=\"rs26-desc-box\">\n              Najwy\u017cszy potencja\u0142. Klient odporny na inflacj\u0119. Mar\u017ca na doradztwie i integracji (HVAC + PV + Smart Home).\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"rs26-card\" data-high=\"true\">\n          <div class=\"rs26-p-6\">\n            <div class=\"rs26-flex rs26-justify-between rs26-items-center rs26-mb-4\">\n              <div class=\"rs26-title\">Wakacyjne<\/div>\n              <span class=\"rs26-value high\">20% \u2013 28%<\/span>\n            <\/div>\n            <div class=\"rs26-progress-bg\">\n              <div class=\"rs26-progress-fill\" data-width=\"80%\"><\/div>\n            <\/div>\n            <div class=\"rs26-desc-box\">\n              Premia za niezawodno\u015b\u0107. Inwestorzy p\u0142ac\u0105 extra za zdalne sterowanie. Wymagane systemy Multisplit.\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"rs26-card\" data-high=\"true\">\n          <div class=\"rs26-p-6\">\n            <div class=\"rs26-flex rs26-justify-between rs26-items-center rs26-mb-4\">\n              <div class=\"rs26-title\">Rewitalizacje<\/div>\n              <span class=\"rs26-value high\">18% \u2013 25%<\/span>\n            <\/div>\n            <div class=\"rs26-progress-bg\">\n              <div class=\"rs26-progress-fill\" data-width=\"71%\"><\/div>\n            <\/div>\n            <div class=\"rs26-desc-box\">\n              Bariera techniczna. Prace pod nadzorem konserwatora. Trudno\u015b\u0107 eliminuje tani\u0105 konkurencj\u0119.\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"rs26-card\" data-high=\"false\">\n          <div class=\"rs26-p-6\">\n            <div class=\"rs26-flex rs26-justify-between rs26-items-center rs26-mb-4\">\n              <div class=\"rs26-title\">Inwestycyjne<\/div>\n              <span class=\"rs26-value mid\">12% \u2013 18%<\/span>\n            <\/div>\n            <div class=\"rs26-progress-bg\">\n              <div class=\"rs26-progress-fill\" data-width=\"51%\"><\/div>\n            <\/div>\n            <div class=\"rs26-desc-box\">\n              Gra wolumenem. Mar\u017ca jednostkowa niska, ale powtarzalno\u015b\u0107 zlece\u0144 optymalizuje koszty.\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"rs26-card\" data-high=\"false\">\n          <div class=\"rs26-p-6\">\n            <div class=\"rs26-flex rs26-justify-between rs26-items-center rs26-mb-4\">\n              <div class=\"rs26-title\">Deweloperski<\/div>\n              <span class=\"rs26-value low\">8% \u2013 12%<\/span>\n            <\/div>\n            <div class=\"rs26-progress-bg\">\n              <div class=\"rs26-progress-fill\" data-width=\"34%\"><\/div>\n            <\/div>\n            <div class=\"rs26-desc-box\">\n              Czerwony ocean. Jedynym kryterium cena i termin. Wysokie ryzyko zator\u00f3w.\n            <\/div>\n          <\/div>\n        <\/div>\n\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <script>\n    (function() {\n      \/\/ Skrypt uruchamiaj\u0105cy animacj\u0119 tylko gdy element jest widoczny\n      \/\/ Dzia\u0142a niezale\u017cnie od jQuery i innych bibliotek\n      var initAnimation = function() {\n        var root = document.getElementById('rs26-marze-root');\n        if (!root) return;\n\n        var observer = new IntersectionObserver(function(entries) {\n          entries.forEach(function(entry) {\n            if (entry.isIntersecting) {\n              var bars = entry.target.querySelectorAll('.rs26-progress-fill');\n              bars.forEach(function(bar) {\n                var w = bar.getAttribute('data-width');\n                if (w) bar.style.width = w;\n              });\n              \/\/ Po uruchomieniu animacji przesta\u0144 obserwowa\u0107, \u017ceby nie resetowa\u0107\n              observer.unobserve(entry.target);\n            }\n          });\n        }, { threshold: 0.2 });\n\n        observer.observe(root);\n      };\n\n      if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initAnimation);\n      } else {\n        initAnimation();\n      }\n    })();\n  <\/script>\n<\/div>\n\n\n\n<p style=\"margin-top:var(--wp--preset--spacing--50)\"><strong>Wniosek:<\/strong>&nbsp;Strategiczny pivot kt\u00f3ry cz\u0119\u015b\u0107 firm instalacyjnych ju\u017c wykona\u0142a w 2025 polega\u0142 na przesuni\u0119ciu zasob\u00f3w z obs\u0142ugi \u201eStandardu deweloperskiego\u201d w stron\u0119 \u201eRewitalizacji\u201d i \u201eDom\u00f3w premium &#8211; rezydencji\u201d. Firma instalacyjna w Krakowie (Ma\u0142opolskie) specjalizuj\u0105ca si\u0119 w trudnych adaptacjach kamienic uzyska wy\u017cszy zwrot z kapita\u0142u ni\u017c firma montuj\u0105ca tysi\u0105ce prostych split\u00f3w na nowych osiedlach podwarszawskich czy na \u015bl\u0105sku.<\/p>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading1849_6704e0-33, .wp-block-kadence-advancedheading.kt-adv-heading1849_6704e0-33[data-kb-block=\"kb-adv-heading1849_6704e0-33\"]{font-size:26px;font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading1849_6704e0-33 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading1849_6704e0-33[data-kb-block=\"kb-adv-heading1849_6704e0-33\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading1849_6704e0-33 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading1849_6704e0-33[data-kb-block=\"kb-adv-heading1849_6704e0-33\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h3 class=\"kt-adv-heading1849_6704e0-33 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading1849_6704e0-33\"><strong>Koszyki produktowe: Analiza rentowno\u015bci (Split vs Multi vs Pompa + PV)<\/strong><\/h3>\n\n\n\n<p>Wyb\u00f3r technologii, kt\u00f3r\u0105 promuje wykonawca, determinuje mar\u017c\u0119. Na podstawie cennik\u00f3w us\u0142ug i urz\u0105dze\u0144 z 2025 roku, przeprowadzili\u015bmy symulacj\u0119 rentowno\u015bci dla czterech g\u0142\u00f3wnych koszyk\u00f3w technologicznych.&nbsp;&nbsp;&nbsp;<\/p>\n\n\n\n<div id=\"rs26-baskets-standalone\">\n  \n  <style>\n    \/* IZOLACJA I RESET STYLI *\/\n    #rs26-baskets-standalone {\n      font-family: 'Inter', -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n      line-height: 1.5;\n      color: #334155;\n      background-color: transparent;\n      width: 100%;\n      margin: 0 0 32px 0;\n      box-sizing: border-box;\n    }\n    \n    #rs26-baskets-standalone *, \n    #rs26-baskets-standalone *::before, \n    #rs26-baskets-standalone *::after {\n      box-sizing: border-box;\n    }\n\n    \/* Zmienne lokalne *\/\n    #rs26-baskets-standalone {\n      --rs-primary: #fe5100;\n      --rs-text-dark: #1e293b;\n      --rs-text-gray: #64748b;\n      --rs-border: #e2e8f0;\n      --rs-header-bg: #f8fafc;\n      --rs-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);\n      --rs-radius: 8px;\n    }\n\n    \/* G\u0141\u00d3WNY MODU\u0141 *\/\n    #rs26-baskets-standalone .rs26-module {\n      background-color: #ffffff;\n      width: 100%;\n      border: 1px solid var(--rs-border);\n      border-radius: var(--rs-radius);\n      overflow: hidden;\n      box-shadow: var(--rs-shadow);\n    }\n\n    \/* NAG\u0141\u00d3WEK *\/\n    #rs26-baskets-standalone .rs26-module-header {\n      text-align: left;\n      padding: 1rem 1.5rem;\n      background: var(--rs-header-bg);\n      border-bottom: 1px solid var(--rs-border);\n    }\n\n    \/* ZMIANA: Zamiast h2 u\u017cywamy klasy .rs26-h2 *\/\n    #rs26-baskets-standalone .rs26-module-header .rs26-h2 {\n      font-size: 18px;\n      margin: 0 0 0.25rem 0;\n      color: var(--rs-text-dark);\n      font-weight: 700;\n      line-height: 1.2;\n      display: block;\n    }\n\n    #rs26-baskets-standalone .rs26-module-header p {\n      color: var(--rs-text-gray);\n      font-size: 0.9rem;\n      margin: 0;\n    }\n\n    \/* TRE\u015a\u0106 *\/\n    #rs26-baskets-standalone .rs26-module-content {\n      padding: 1.5rem;\n    }\n\n    \/* GRID POMOCNICZY *\/\n    #rs26-baskets-standalone .rs26-grid { display: grid; gap: 1rem; }\n    #rs26-baskets-standalone .rs26-grid-cols-2 { grid-template-columns: 1fr 1fr; }\n\n    \/* UK\u0141AD ZAK\u0141ADEK (Responsive) *\/\n    #rs26-baskets-standalone .rs26-tabs-layout {\n      display: grid;\n      grid-template-columns: 1fr;\n      gap: 1.5rem;\n    }\n    @media (min-width: 1024px) {\n      #rs26-baskets-standalone .rs26-tabs-layout { grid-template-columns: 300px 1fr; }\n    }\n\n    \/* PRZYCISKI ZAK\u0141ADEK *\/\n    #rs26-baskets-standalone .rs26-tab-btn {\n      width: 100%;\n      text-align: left;\n      padding: 1rem;\n      border-radius: 8px;\n      border: 1px solid transparent;\n      background-color: #f8fafc;\n      cursor: pointer;\n      transition: all 0.2s;\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      margin-bottom: 0.5rem;\n      color: var(--rs-text-dark);\n    }\n    \n    #rs26-baskets-standalone .rs26-tab-btn:hover {\n      background-color: #f1f5f9;\n      border-color: #cbd5e1;\n    }\n\n    #rs26-baskets-standalone .rs26-tab-btn.active {\n      background-color: white;\n      border-color: var(--rs-primary);\n      box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n    }\n    \n    #rs26-baskets-standalone .rs26-tab-btn .icon-wrap {\n      padding: 6px;\n      border-radius: 6px;\n      background-color: #e2e8f0;\n      color: #94a3b8;\n      margin-right: 12px;\n      display: flex;\n    }\n    \n    #rs26-baskets-standalone .rs26-tab-btn.active .icon-wrap {\n      background-color: var(--rs-primary);\n      color: white;\n    }\n\n    \/* TRE\u015a\u0106 KARTY (CONTENT) *\/\n    #rs26-baskets-standalone .rs26-card {\n      background: white;\n      border: 1px solid var(--rs-border);\n      border-radius: 8px;\n      overflow: hidden;\n    }\n\n    #rs26-baskets-standalone .rs26-basket-content {\n      display: none;\n      height: 100%;\n      background: #fff;\n      border-radius: 8px;\n    }\n    #rs26-baskets-standalone .rs26-basket-content.active {\n      display: block;\n      animation: rsFadeIn 0.3s ease;\n    }\n\n    \/* SVG Utility *\/\n    #rs26-baskets-standalone .rs26-svg {\n      width: 20px;\n      height: 20px;\n      stroke: currentColor;\n      stroke-width: 2;\n      stroke-linecap: round;\n      stroke-linejoin: round;\n      fill: none;\n    }\n    \n    @keyframes rsFadeIn {\n      from { opacity: 0; transform: translateY(5px); }\n      to { opacity: 1; transform: translateY(0); }\n    }\n  <\/style>\n\n  <div class=\"rs26-module\">\n    <div class=\"rs26-module-header\">\n      <div class=\"rs26-h2\">Koszyki produktowe: Analiza rentowno\u015bci<\/div>\n      <p>Symulacja rentowno\u015bci dla czterech g\u0142\u00f3wnych koszyk\u00f3w technologicznych.<\/p>\n    <\/div>\n    <div class=\"rs26-module-content\">\n      <div class=\"rs26-tabs-layout\">\n        \n        <div class=\"rs26-baskets-menu\">\n          <button class=\"rs26-tab-btn\" onclick=\"rs26SwitchTabBaskets(0)\">\n            <div style=\"display:flex; align-items:center;\">\n              <div class=\"icon-wrap\">\n                <svg class=\"rs26-svg\" viewBox=\"0 0 24 24\"><path d=\"M17.7 7.7a2.5 2.5 0 1 1 1.8 4.3H2\"><\/path><path d=\"M9.6 4.6A2 2 0 1 1 11 8H2\"><\/path><path d=\"M12.6 19.4A2 2 0 1 0 14 16H2\"><\/path><\/svg>\n              <\/div>\n              <div>\n                <div style=\"font-weight:700; font-size:0.95rem;\">Koszyk A: Split<\/div>\n                <div style=\"font-size: 0.75rem; color: #94a3b8;\">Niska mar\u017ca<\/div>\n              <\/div>\n            <\/div>\n          <\/button>\n\n          <button class=\"rs26-tab-btn\" onclick=\"rs26SwitchTabBaskets(1)\">\n            <div style=\"display:flex; align-items:center;\">\n              <div class=\"icon-wrap\">\n                <svg class=\"rs26-svg\" viewBox=\"0 0 24 24\"><polygon points=\"12 2 2 7 12 12 22 7 12 2\"><\/polygon><polyline points=\"2 17 12 22 22 17\"><\/polyline><polyline points=\"2 12 12 17 22 12\"><\/polyline><\/svg>\n              <\/div>\n              <div>\n                <div style=\"font-weight:700; font-size:0.95rem;\">Koszyk B: Multisplit<\/div>\n                <div style=\"font-size: 0.75rem; color: #94a3b8;\">\u015arednia mar\u017ca<\/div>\n              <\/div>\n            <\/div>\n          <\/button>\n\n          <button class=\"rs26-tab-btn\" onclick=\"rs26SwitchTabBaskets(2)\">\n            <div style=\"display:flex; align-items:center;\">\n              <div class=\"icon-wrap\">\n                <svg class=\"rs26-svg\" viewBox=\"0 0 24 24\"><path d=\"m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"><\/path><polyline points=\"9 22 9 12 15 12 15 22\"><\/polyline><\/svg>\n              <\/div>\n              <div>\n                <div style=\"font-weight:700; font-size:0.95rem;\">Koszyk C: Kana\u0142\u00f3wka<\/div>\n                <div style=\"font-size: 0.75rem; color: #94a3b8;\">Wysoka mar\u017ca<\/div>\n              <\/div>\n            <\/div>\n          <\/button>\n\n          <button class=\"rs26-tab-btn active\" onclick=\"rs26SwitchTabBaskets(3)\">\n            <div style=\"display:flex; align-items:center;\">\n              <div class=\"icon-wrap\">\n                <svg class=\"rs26-svg\" viewBox=\"0 0 24 24\"><polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"><\/polygon><\/svg>\n              <\/div>\n              <div>\n                <div style=\"font-weight:700; font-size:0.95rem;\">Koszyk D: Twierdza<\/div>\n                <div style=\"font-size: 0.75rem; color: #94a3b8;\">Bardzo wysoka mar\u017ca<\/div>\n              <\/div>\n            <\/div>\n          <\/button>\n        <\/div>\n\n        <div style=\"min-height: 300px;\">\n          \n          <div class=\"rs26-card rs26-basket-content\" id=\"rs26-content-0\" style=\"border:none; box-shadow:none;\">\n            <div style=\"padding: 1.5rem; height: 100%; display:flex; flex-direction:column; justify-content:center;\">\n              <span style=\"font-size:0.75rem; font-weight:700; color:#94a3b8; text-transform:uppercase; margin-bottom:8px; display:block;\">Koszyk A<\/span>\n              <div style=\"font-size: 1.75rem; font-weight:700; color:#1e293b; margin:0 0 0.5rem 0;\">Split<\/div>\n              <p style=\"color: #64748b; font-size: 1.1rem; margin-bottom: 2rem;\">Podstawowa klimatyzacja 3,5 kW<\/p>\n              \n              <div class=\"rs26-grid rs26-grid-cols-2\" style=\"margin-bottom: 2rem;\">\n                 <div style=\"background:#f8fafc; padding:1rem; border-radius:8px;\">\n                   <div style=\"font-size:0.8rem; color:#64748b; margin-bottom:4px;\">Koszt dla klienta<\/div>\n                   <div style=\"font-weight:700; color:#1e293b;\">2 500 &#8211; 6 000 z\u0142<\/div>\n                 <\/div>\n                 <div style=\"background:#f8fafc; padding:1rem; border-radius:8px;\">\n                   <div style=\"font-size:0.8rem; color:#64748b; margin-bottom:4px;\">Mar\u017ca<\/div>\n                   <div style=\"font-weight:700; color:#ef4444;\">Niska<\/div>\n                 <\/div>\n              <\/div>\n              \n              <div style=\"font-size:0.95rem; line-height:1.6; color:#334155;\">\n                <strong style=\"color:#1e293b; display:block; margin-bottom:4px;\">Wniosek strategiczny:<\/strong>\n                Produkt \u201ewype\u0142niacz\u201d. Niezb\u0119dny do utrzymania p\u0142ynno\u015bci, ale nie buduj\u0105cy kapita\u0142u. Wysoka konkurencja.\n              <\/div>\n            <\/div>\n          <\/div>\n\n          <div class=\"rs26-card rs26-basket-content\" id=\"rs26-content-1\" style=\"border:none; box-shadow:none;\">\n            <div style=\"padding: 1.5rem; height: 100%; display:flex; flex-direction:column; justify-content:center;\">\n              <span style=\"font-size:0.75rem; font-weight:700; color:#94a3b8; text-transform:uppercase; margin-bottom:8px; display:block;\">Koszyk B<\/span>\n              <div style=\"font-size: 1.75rem; font-weight:700; color:#1e293b; margin:0 0 0.5rem 0;\">Multisplit<\/div>\n              <p style=\"color: #64748b; font-size: 1.1rem; margin-bottom: 2rem;\">System 3+1 lub 4+1<\/p>\n              \n              <div class=\"rs26-grid rs26-grid-cols-2\" style=\"margin-bottom: 2rem;\">\n                 <div style=\"background:#f8fafc; padding:1rem; border-radius:8px;\">\n                   <div style=\"font-size:0.8rem; color:#64748b; margin-bottom:4px;\">Koszt dla klienta<\/div>\n                   <div style=\"font-weight:700; color:#1e293b;\">12 000 &#8211; 20 000 z\u0142<\/div>\n                 <\/div>\n                 <div style=\"background:#f8fafc; padding:1rem; border-radius:8px;\">\n                   <div style=\"font-size:0.8rem; color:#64748b; margin-bottom:4px;\">Mar\u017ca<\/div>\n                   <div style=\"font-weight:700; color:#fe5100;\">\u015arednia\/Wysoka<\/div>\n                 <\/div>\n              <\/div>\n              \n              <div style=\"font-size:0.95rem; line-height:1.6; color:#334155;\">\n                <strong style=\"color:#1e293b; display:block; margin-bottom:4px;\">Wniosek strategiczny:<\/strong>\n                Z\u0142oty \u015brodek dla rynku mieszkaniowego. Wymaga umiej\u0119tno\u015bci projektowania tras, co filtruje konkurencj\u0119.\n              <\/div>\n            <\/div>\n          <\/div>\n          \n          <div class=\"rs26-card rs26-basket-content\" id=\"rs26-content-2\" style=\"border:none; box-shadow:none;\">\n            <div style=\"padding: 1.5rem; height: 100%; display:flex; flex-direction:column; justify-content:center;\">\n              <span style=\"font-size:0.75rem; font-weight:700; color:#94a3b8; text-transform:uppercase; margin-bottom:8px; display:block;\">Koszyk C<\/span>\n              <div style=\"font-size: 1.75rem; font-weight:700; color:#1e293b; margin:0 0 0.5rem 0;\">Kana\u0142\u00f3wka<\/div>\n              <p style=\"color: #64748b; font-size: 1.1rem; margin-bottom: 2rem;\">Klimatyzacja kana\u0142owa<\/p>\n              \n              <div class=\"rs26-grid rs26-grid-cols-2\" style=\"margin-bottom: 2rem;\">\n                 <div style=\"background:#f8fafc; padding:1rem; border-radius:8px;\">\n                   <div style=\"font-size:0.8rem; color:#64748b; margin-bottom:4px;\">Koszt dla klienta<\/div>\n                   <div style=\"font-weight:700; color:#1e293b;\">14 000 &#8211; 25 000 z\u0142<\/div>\n                 <\/div>\n                 <div style=\"background:#f8fafc; padding:1rem; border-radius:8px;\">\n                   <div style=\"font-size:0.8rem; color:#64748b; margin-bottom:4px;\">Mar\u017ca<\/div>\n                   <div style=\"font-weight:700; color:#fe5100;\">Wysoka<\/div>\n                 <\/div>\n              <\/div>\n              \n              <div style=\"font-size:0.95rem; line-height:1.6; color:#334155;\">\n                <strong style=\"color:#1e293b; display:block; margin-bottom:4px;\">Wniosek strategiczny:<\/strong>\n                Rozwi\u0105zanie dla segmentu Premium. Mar\u017ca ukryta w us\u0142ugach towarzysz\u0105cych (zabudowy G-K).\n              <\/div>\n            <\/div>\n          <\/div>\n\n          <div class=\"rs26-card rs26-basket-content active\" id=\"rs26-content-3\" style=\"border:none; box-shadow:none;\">\n            <div style=\"padding: 1.5rem; height: 100%; display:flex; flex-direction:column; justify-content:center;\">\n              <span style=\"font-size:0.75rem; font-weight:700; color:#fe5100; text-transform:uppercase; margin-bottom:8px; display:block;\">Koszyk D &#8211; Rekomendowany<\/span>\n              <div style=\"font-size: 1.75rem; font-weight:700; color:#1e293b; margin:0 0 0.5rem 0;\">Twierdza Energetyczna<\/div>\n              <p style=\"color: #64748b; font-size: 1.1rem; margin-bottom: 2rem;\">Pompa + PV + Magazyn<\/p>\n              \n              <div class=\"rs26-grid rs26-grid-cols-2\" style=\"margin-bottom: 2rem;\">\n                 <div style=\"background:#fff7ed; padding:1rem; border-radius:8px; border:1px solid #ffedd5;\">\n                   <div style=\"font-size:0.8rem; color:#9a3412; margin-bottom:4px;\">Koszt dla klienta<\/div>\n                   <div style=\"font-weight:700; color:#1e293b;\">70k &#8211; 100k z\u0142<\/div>\n                 <\/div>\n                 <div style=\"background:#fff7ed; padding:1rem; border-radius:8px; border:1px solid #ffedd5;\">\n                   <div style=\"font-size:0.8rem; color:#9a3412; margin-bottom:4px;\">Mar\u017ca<\/div>\n                   <div style=\"font-weight:700; color:#fe5100;\">Bardzo Wysoka<\/div>\n                 <\/div>\n              <\/div>\n              \n              <div style=\"font-size:0.95rem; line-height:1.6; color:#334155;\">\n                <strong style=\"color:#1e293b; display:block; margin-bottom:4px;\">Wniosek strategiczny:<\/strong>\n                Najbardziej dochodowy model. Upselling magazynu energii to dodatkowy przych\u00f3d przy minimalnym nak\u0142adzie pracy.\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/div>\n      <\/div>\n    <\/div>\n  <\/div>\n\n  <script>\n    (function() {\n      \/\/ Funkcja prze\u0142\u0105czaj\u0105ca taby z unikaln\u0105 nazw\u0105\n      window.rs26SwitchTabBaskets = function(index) {\n        var root = document.getElementById('rs26-baskets-standalone');\n        if (!root) return;\n\n        \/\/ Reset Buttons\n        var btns = root.querySelectorAll('.rs26-tab-btn');\n        btns.forEach(function(btn, idx) {\n          if (idx === index) {\n            btn.classList.add('active');\n          } else {\n            btn.classList.remove('active');\n          }\n        });\n\n        \/\/ Toggle arrow icon\n        btns.forEach(function(btn, idx) {\n            if (idx === index) {\n                 if(btn.lastElementChild.tagName !== 'svg') {\n                     btn.insertAdjacentHTML('beforeend', '<svg class=\"rs26-svg\" style=\"width:20px; height:20px; color:#fe5100; margin-left:auto;\" viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"><\/line><polyline points=\"12 5 19 12 12 19\"><\/polyline><\/svg>');\n                 }\n             } else {\n                 if(btn.lastElementChild.tagName === 'svg' && btn.children.length > 1) {\n                     var iconWrap = btn.querySelector('.icon-wrap');\n                     if (btn.lastElementChild !== iconWrap) {\n                         btn.removeChild(btn.lastElementChild);\n                     }\n                 }\n             }\n        });\n\n        \/\/ Reset Content\n        var contents = root.querySelectorAll('.rs26-basket-content');\n        contents.forEach(function(content, idx) {\n          if (idx === index) {\n            content.classList.add('active');\n          } else {\n            content.classList.remove('active');\n          }\n        });\n      };\n    })();\n  <\/script>\n<\/div>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading1849_42783d-75, .wp-block-kadence-advancedheading.kt-adv-heading1849_42783d-75[data-kb-block=\"kb-adv-heading1849_42783d-75\"]{font-size:var(--global-kb-font-size-lg, 2rem);font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading1849_42783d-75 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading1849_42783d-75[data-kb-block=\"kb-adv-heading1849_42783d-75\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading1849_42783d-75 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading1849_42783d-75[data-kb-block=\"kb-adv-heading1849_42783d-75\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h2 class=\"kt-adv-heading1849_42783d-75 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading1849_42783d-75\"><strong>Rozdzia\u0142 3: Konkurencja w Twoim wojew\u00f3dztwie &#8211; Wska\u017aniki konkurencji<\/strong><\/h2>\n\n\n\n<p>Zrozumienie g\u0119sto\u015bci konkurencji jest kluczowe dla strategii cenowej. Wysoki wolumen inwestycji nie gwarantuje sukcesu, je\u015bli rynek jest przesycony wykonawcami.<\/p>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading1849_bfe421-65, .wp-block-kadence-advancedheading.kt-adv-heading1849_bfe421-65[data-kb-block=\"kb-adv-heading1849_bfe421-65\"]{font-size:26px;font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading1849_bfe421-65 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading1849_bfe421-65[data-kb-block=\"kb-adv-heading1849_bfe421-65\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading1849_bfe421-65 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading1849_bfe421-65[data-kb-block=\"kb-adv-heading1849_bfe421-65\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h3 class=\"kt-adv-heading1849_bfe421-65 wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading1849_bfe421-65\"><strong>Wska\u017anik liczby wykonawc\u00f3w vs ilo\u015b\u0107 inwestycji<\/strong><\/h3>\n\n\n\n<p>Analizuj\u0105c dane o liczbie podmiot\u00f3w gospodarczych&nbsp;&nbsp;w zestawieniu z wolumenem pozwole\u0144 na budow\u0119&nbsp;, mo\u017cemy wyznaczy\u0107 wska\u017anik intensywno\u015bci konkurencji (\u201eCzerwony ocean\u201d vs \u201eB\u0142\u0119kitny ocean\u201d).&nbsp;&nbsp;&nbsp;<\/p>\n\n\n\n<div id=\"rs26-competition-standalone\">\n  \n  <style>\n    \/* IZOLACJA I RESET STYLI *\/\n    #rs26-competition-standalone {\n      font-family: 'Inter', -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif;\n      line-height: 1.5;\n      color: #334155;\n      background-color: transparent;\n      width: 100%;\n      margin: 0 0 32px 0;\n      box-sizing: border-box;\n    }\n    \n    #rs26-competition-standalone *, \n    #rs26-competition-standalone *::before, \n    #rs26-competition-standalone *::after {\n      box-sizing: border-box;\n    }\n\n    \/* Zmienne lokalne *\/\n    #rs26-competition-standalone {\n      --rs-primary: #fe5100;\n      --rs-text-dark: #1e293b;\n      --rs-text-gray: #64748b;\n      --rs-border: #e2e8f0;\n      --rs-header-bg: #f8fafc;\n      --rs-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);\n      --rs-radius: 8px;\n    }\n\n    \/* G\u0141\u00d3WNY MODU\u0141 *\/\n    #rs26-competition-standalone .rs26-module {\n      background-color: #ffffff;\n      width: 100%;\n      border: 1px solid var(--rs-border);\n      border-radius: var(--rs-radius);\n      overflow: hidden;\n      box-shadow: var(--rs-shadow);\n    }\n\n    \/* NAG\u0141\u00d3WEK *\/\n    #rs26-competition-standalone .rs26-module-header {\n      text-align: left;\n      padding: 1rem 1.5rem;\n      background: var(--rs-header-bg);\n      border-bottom: 1px solid var(--rs-border);\n    }\n\n    \/* ZMIANA: Zast\u0105pienie h2 klas\u0105 .rs26-header-title *\/\n    #rs26-competition-standalone .rs26-module-header .rs26-header-title {\n      font-size: 18px;\n      margin: 0 0 0.25rem 0;\n      color: var(--rs-text-dark);\n      font-weight: 700;\n      line-height: 1.2;\n      display: block;\n    }\n\n    #rs26-competition-standalone .rs26-module-header p {\n      color: var(--rs-text-gray);\n      font-size: 0.9rem;\n      margin: 0;\n    }\n\n    \/* TRE\u015a\u0106 *\/\n    #rs26-competition-standalone .rs26-module-content {\n      padding: 1.5rem;\n    }\n\n    \/* GRID *\/\n    #rs26-competition-standalone .rs26-grid {\n      display: grid;\n      gap: 1rem;\n      grid-template-columns: 1fr;\n    }\n    @media (min-width: 768px) {\n      #rs26-competition-standalone .rs26-grid { grid-template-columns: 1fr 1fr; }\n    }\n    @media (min-width: 1024px) {\n      #rs26-competition-standalone .rs26-grid { grid-template-columns: 1fr 1fr 1fr; }\n    }\n\n    \/* KARTY *\/\n    #rs26-competition-standalone .rs26-card {\n      background: white;\n      border: 1px solid var(--rs-border);\n      border-radius: 8px;\n      overflow: hidden;\n      transition: box-shadow 0.3s, border-color 0.3s;\n      height: 100%;\n      display: flex;\n      flex-direction: column;\n    }\n    \n    #rs26-competition-standalone .rs26-card:hover {\n      box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n      border-color: var(--rs-primary);\n    }\n\n    #rs26-competition-standalone .rs26-p-6 {\n      padding: 1.5rem;\n      flex: 1;\n      display: flex;\n      flex-direction: column;\n    }\n\n    \/* TAGI OCEAN\u00d3W *\/\n    #rs26-competition-standalone .rs26-ocean-tag {\n      font-size: 0.7rem;\n      padding: 2px 8px;\n      border-radius: 4px;\n      font-weight: 700;\n      text-transform: uppercase;\n      display: inline-block;\n      margin-bottom: 0.5rem;\n    }\n    #rs26-competition-standalone .tag-red { background: #fee2e2; color: #991b1b; }\n    #rs26-competition-standalone .tag-blue { background: #dbeafe; color: #1e40af; }\n    #rs26-competition-standalone .tag-teal { background: #ccfbf1; color: #115e59; }\n    #rs26-competition-standalone .tag-yellow { background: #fef9c3; color: #a16207; }\n\n    \/* TYPOGRAFIA KARTY *\/\n    \/* ZMIANA: Zast\u0105pienie h3 klas\u0105 .rs26-card-title *\/\n    #rs26-competition-standalone .rs26-card-title {\n      font-size: 1.1rem;\n      font-weight: 700;\n      color: var(--rs-text-dark);\n      min-height: 56px; \/* Wyr\u00f3wnanie wysoko\u015bci tytu\u0142\u00f3w *\/\n      margin: 0 0 1rem 0;\n      line-height: 1.4;\n      display: block;\n    }\n\n    #rs26-competition-standalone .rs26-subtitle {\n      font-size: 0.85rem;\n      font-weight: 600;\n      color: var(--rs-text-gray);\n      margin: 0 0 12px 0;\n    }\n\n    #rs26-competition-standalone .rs26-desc-box {\n      font-size: 0.9rem;\n      color: var(--rs-text-gray);\n      line-height: 1.6;\n      border-top: 1px solid #f1f5f9;\n      padding-top: 0.5rem;\n      margin-top: auto;\n    }\n  <\/style>\n\n  <div class=\"rs26-module\">\n    <div class=\"rs26-module-header\">\n      <div class=\"rs26-header-title\">Konkurencja w Twoim wojew\u00f3dztwie<\/div>\n      <p>Wska\u017anik liczby Wykonawc\u00f3w vs ilo\u015b\u0107 inwestycji (B\u0142\u0119kitny Ocean).<\/p>\n    <\/div>\n    \n    <div class=\"rs26-module-content\">\n      <div class=\"rs26-grid\">\n        \n        <div class=\"rs26-card\">\n          <div class=\"rs26-p-6\">\n            <div><span class=\"rs26-ocean-tag tag-red\">Czerwony Ocean<\/span><\/div>\n            <div class=\"rs26-card-title\">Mazowieckie, Dolno\u015bl\u0105skie, \u015al\u0105skie, Ma\u0142opolskie<\/div>\n            <p class=\"rs26-subtitle\">Konkurencja: Bardzo wysoki<\/p>\n            <div class=\"rs26-desc-box\">\n              Nadpoda\u017c wykonawc\u00f3w. Koszt pozyskania klienta (marketing) jest najwy\u017cszy w Polsce.\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"rs26-card\">\n          <div class=\"rs26-p-6\">\n            <div><span class=\"rs26-ocean-tag tag-red\">Czerwony Ocean<\/span><\/div>\n            <div class=\"rs26-card-title\">Wielkopolskie, \u0141\u00f3dzkie<\/div>\n            <p class=\"rs26-subtitle\">Konkurencja: Wysoki<\/p>\n            <div class=\"rs26-desc-box\">\n              Dojrza\u0142y rynek. Trudne wej\u015bcie dla nowych podmiot\u00f3w bez relacji.\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"rs26-card\">\n          <div class=\"rs26-p-6\">\n            <div><span class=\"rs26-ocean-tag tag-blue\">B\u0142\u0119kitny Ocean<\/span><\/div>\n            <div class=\"rs26-card-title\">Pomorskie<\/div>\n            <p class=\"rs26-subtitle\">Konkurencja: \u015aredni\/Wysoki<\/p>\n            <div class=\"rs26-desc-box\">\n              Nisza premium. Idealny rynek dla specjalist\u00f3w (Smart Home\/VRF).\n            <\/div>\n          <\/div>\n        <\/div>\n        \n        <div class=\"rs26-card\">\n          <div class=\"rs26-p-6\">\n            <div><span class=\"rs26-ocean-tag tag-blue\">B\u0142\u0119kitny Ocean<\/span><\/div>\n            <div class=\"rs26-card-title\">Podkarpackie, Lubelskie<\/div>\n            <p class=\"rs26-subtitle\">Konkurencja: \u015aredni\/Niski<\/p>\n            <div class=\"rs26-desc-box\">\n              Luka kompetencyjna. Szansa na dominacj\u0119 jako\u015bciow\u0105. Rozw\u00f3j infrastruktury.\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"rs26-card\">\n          <div class=\"rs26-p-6\">\n            <div><span class=\"rs26-ocean-tag tag-blue\">B\u0142\u0119kitny Ocean<\/span><\/div>\n            <div class=\"rs26-card-title\">Zachodnio-pom., Warmi\u0144sko-Maz.<\/div>\n            <p class=\"rs26-subtitle\">Konkurencja: Niski<\/p>\n            <div class=\"rs26-desc-box\">\n              Regiony turystyczne. Brak r\u0105k do pracy &#8211; blisko\u015b\u0107 Niemiec wysysa fachowc\u00f3w.\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"rs26-card\">\n          <div class=\"rs26-p-6\">\n            <div><span class=\"rs26-ocean-tag tag-yellow\">Trudny Rynek<\/span><\/div>\n            <div class=\"rs26-card-title\">\u015awi\u0119tokrzyskie, Kujawsko-Pom.<\/div>\n            <p class=\"rs26-subtitle\">Konkurencja: Niski<\/p>\n            <div class=\"rs26-desc-box\">\n              Wojna cenowa. Mniejsza skala inwestycji, wra\u017cliwy klient.\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"rs26-card\">\n          <div class=\"rs26-p-6\">\n            <div><span class=\"rs26-ocean-tag tag-teal\">Nisza Jako\u015bciowa<\/span><\/div>\n            <div class=\"rs26-card-title\">Opolskie<\/div>\n            <p class=\"rs26-subtitle\">Konkurencja: Niski<\/p>\n            <div class=\"rs26-desc-box\">\n              Po\u0142\u0105czenie skrajno\u015bci. Ma\u0142a skala, ale klient euro-emigracyjny szukaj\u0105cy jako\u015bci premium.\n            <\/div>\n          <\/div>\n        <\/div>\n\n        <div class=\"rs26-card\">\n          <div class=\"rs26-p-6\">\n            <div><span class=\"rs26-ocean-tag tag-blue\">Drena\u017c Fachowc\u00f3w<\/span><\/div>\n            <div class=\"rs26-card-title\">Lubuskie<\/div>\n            <p class=\"rs26-subtitle\">Konkurencja: Niski<\/p>\n            <div class=\"rs26-desc-box\">\n              Brak r\u0105k do pracy przez blisko\u015b\u0107 Niemiec. Firmy utrzymuj\u0105ce jako\u015b\u0107 dyktuj\u0105 warunki cenowe.\n            <\/div>\n          <\/div>\n        <\/div>\n\n      <\/div>\n    <\/div>\n  <\/div>\n<\/div>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading1849_512019-ae, .wp-block-kadence-advancedheading.kt-adv-heading1849_512019-ae[data-kb-block=\"kb-adv-heading1849_512019-ae\"]{font-size:26px;font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading1849_512019-ae mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading1849_512019-ae[data-kb-block=\"kb-adv-heading1849_512019-ae\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading1849_512019-ae img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading1849_512019-ae[data-kb-block=\"kb-adv-heading1849_512019-ae\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h3 class=\"kt-adv-heading1849_512019-ae wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading1849_512019-ae\"><strong>F-GAZ na 100 tys. mieszka\u0144c\u00f3w i liczba wykonawc\u00f3w HVAC<\/strong><\/h3>\n\n\n\n<p>Cho\u0107 UDT nie publikuje list imiennych w czasie rzeczywistym z podzia\u0142em na wojew\u00f3dztwa, na podstawie aktywno\u015bci oddzia\u0142\u00f3w UDT&nbsp;&nbsp;oraz danych o firmach budowlanych, mo\u017cna oszacowa\u0107 nasycenie certyfikowanymi us\u0142ugami HVAC.&nbsp;&nbsp;<\/p>\n\n\n\n<p>Liczba certyfikowanych wykonawc\u00f3w HVAC (F-GAZ) w wojew\u00f3dztwach (stan na koniec 2025) oraz w przeliczeniu na 100 ty\u015b mieszka\u0144c\u00f3w.<\/p>\n\n\n\n<!DOCTYPE html>\n<html lang=\"pl\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Tabela 3.2 &#8211; Wykonawcy F-GAZ<\/title>\n    \n    <script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\n    \n    <script crossorigin src=\"https:\/\/unpkg.com\/react@18\/umd\/react.production.min.js\"><\/script>\n    <script crossorigin src=\"https:\/\/unpkg.com\/react-dom@18\/umd\/react-dom.production.min.js\"><\/script>\n    \n    <script src=\"https:\/\/unpkg.com\/@babel\/standalone\/babel.min.js\"><\/script>\n\n    <style>\n        \/* Style lokalne dla tabeli *\/\n        .text-primary { color: #fe5100; }\n        .bg-primary { background-color: #fe5100; }\n        .bg-primary\\\/5 { background-color: rgba(254, 81, 0, 0.05); }\n        .hover\\:bg-primary-light:hover { background-color: rgba(254, 81, 0, 0.1); }\n        \n        ::-webkit-scrollbar { width: 8px; height: 8px; }\n        ::-webkit-scrollbar-track { background: #f1f5f9; }\n        ::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 4px; }\n        ::-webkit-scrollbar-thumb:hover { background: #94a3b8; }\n    <\/style>\n<\/head>\n<body>\n    <div id=\"root-fgaz\"><\/div>\n\n    <script type=\"text\/babel\">\n        const { useState, useMemo } = React;\n\n        \/\/ --- IKONY ---\n        const Icons = {\n            ArrowUp: () => <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\"><path d=\"m5 12 7-7 7 7\"\/><path d=\"M12 19V5\"\/><\/svg>,\n            ArrowDown: () => <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\"><path d=\"M12 5v14\"\/><path d=\"m19 12-7 7-7-7\"\/><\/svg>\n        };\n\n        \/\/ --- DANE DLA TABELI 3.2 (F-GAZ) ---\n        const FgazData = {\n            items: [\n                { id: 1, name: \"Mazowieckie\", firms: \"2 750\", persons: \"9 600\", firmsPer100k: 50, certsPer100k: 174, pop: \"5 510 000\" },\n                { id: 2, name: \"\u015al\u0105skie\", firms: \"1 900\", persons: \"7 500\", firmsPer100k: 44, certsPer100k: 174, pop: \"4 300 000\" },\n                { id: 3, name: \"Wielkopolskie\", firms: \"1 600\", persons: \"6 800\", firmsPer100k: 46, certsPer100k: 194, pop: \"3 500 000\" },\n                { id: 4, name: \"Ma\u0142opolskie\", firms: \"1 500\", persons: \"7 200\", firmsPer100k: 44, certsPer100k: 210, pop: \"3 430 000\" },\n                { id: 5, name: \"Dolno\u015bl\u0105skie\", firms: \"1 300\", persons: \"5 100\", firmsPer100k: 45, certsPer100k: 176, pop: \"2 890 000\" },\n                { id: 6, name: \"Pomorskie\", firms: \"1 100\", persons: \"4 500\", firmsPer100k: 46, certsPer100k: 189, pop: \"2 380 000\" },\n                { id: 7, name: \"\u0141\u00f3dzkie\", firms: \"800\", persons: \"3 300\", firmsPer100k: 34, certsPer100k: 140, pop: \"2 350 000\" },\n                { id: 8, name: \"Kujawsko-Pomorskie\", firms: \"650\", persons: \"2 400\", firmsPer100k: 32, certsPer100k: 118, pop: \"2 030 000\" },\n                { id: 9, name: \"Lubelskie\", firms: \"750\", persons: \"2 700\", firmsPer100k: 36, certsPer100k: 130, pop: \"2 070 000\" },\n                { id: 10, name: \"Podkarpackie\", firms: \"700\", persons: \"3 000\", firmsPer100k: 35, certsPer100k: 149, pop: \"2 010 000\" },\n                { id: 11, name: \"Zachodniopomorskie\", firms: \"550\", persons: \"2 100\", firmsPer100k: 34, certsPer100k: 128, pop: \"1 640 000\" },\n                { id: 12, name: \"Warmi\u0144sko-mazurskie\", firms: \"500\", persons: \"1 500\", firmsPer100k: 37, certsPer100k: 110, pop: \"1 360 000\" },\n                { id: 13, name: \"Lubuskie\", firms: \"400\", persons: \"1 500\", firmsPer100k: 34, certsPer100k: 128, pop: \"1 170 000\" },\n                { id: 14, name: \"Podlaskie\", firms: \"400\", persons: \"1 500\", firmsPer100k: 35, certsPer100k: 132, pop: \"1 140 000\" },\n                { id: 15, name: \"\u015awi\u0119tokrzyskie\", firms: \"300\", persons: \"1 100\", firmsPer100k: 31, certsPer100k: 112, pop: \"980 000\" },\n                { id: 16, name: \"Opolskie\", firms: \"300\", persons: \"1 000\", firmsPer100k: 32, certsPer100k: 106, pop: \"940 000\" }\n            ],\n            total: {\n                name: \"Polska\",\n                firms: \"15 500\",\n                persons: \"60 000\",\n                firmsPer100k: 42,\n                certsPer100k: 162,\n                pop: \"37 000 000\"\n            }\n        };\n\n        const FgazTableComponent = () => {\n            const [sortCol, setSortCol] = useState(null);\n            const [sortDir, setSortDir] = useState('asc');\n\n            const sortedData = useMemo(() => {\n                if (!sortCol) return FgazData.items;\n                return [...FgazData.items].sort((a, b) => {\n                    \/\/ Usuwamy spacje do sortowania liczb\n                    const valA = parseFloat(String(a[sortCol]).replace(\/\\s\/g, '')) || a[sortCol];\n                    const valB = parseFloat(String(b[sortCol]).replace(\/\\s\/g, '')) || b[sortCol];\n                    \n                    if (valA < valB) return sortDir === 'asc' ? -1 : 1;\n                    if (valA > valB) return sortDir === 'asc' ? 1 : -1;\n                    return 0;\n                });\n            }, [sortCol, sortDir]);\n\n            const handleSort = (col) => {\n                if (sortCol === col) {\n                    setSortDir(sortDir === 'asc' ? 'desc' : 'asc');\n                } else {\n                    setSortCol(col);\n                    setSortDir('asc');\n                }\n            };\n\n            const SortIcon = ({ col }) => {\n                if (sortCol !== col) return <span className=\"opacity-20 ml-1\">\u21c5<\/span>;\n                return sortDir === 'asc' ? <span className=\"ml-1 text-primary\"><Icons.ArrowUp\/><\/span> : <span className=\"ml-1 text-primary\"><Icons.ArrowDown\/><\/span>;\n            };\n\n            return (\n                <div className=\"max-w-7xl mx-auto font-sans\">\n                    <div className=\"bg-white rounded-lg shadow-lg border border-slate-200 overflow-hidden mb-12\">\n                         <div className=\"bg-slate-50 px-6 py-4 border-b border-slate-200\">\n                            <h3 className=\"font-bold text-lg text-slate-700\">Liczba certyfikowanych wykonawc\u00f3w HVAC (F-GAZ)<\/h3>\n                        <\/div>\n                        <div className=\"overflow-x-auto\">\n                            <table className=\"w-full text-sm text-left\">\n                                <thead className=\"bg-slate-100 text-slate-600 uppercase text-xs font-bold\">\n                                    <tr>\n                                        <th onClick={() => handleSort('name')} className=\"px-6 py-3 cursor-pointer hover:bg-slate-200 min-w-[150px]\">Wojew\u00f3dztwo <SortIcon col=\"name\"\/><\/th>\n                                        <th onClick={() => handleSort('firms')} className=\"px-6 py-3 text-right cursor-pointer hover:bg-slate-200\">Szacowana liczba<br\/>aktywnych wykonawc\u00f3w HVAC<br\/>z certyfikatem FIRMOWYM<br\/>F-GAZ (firm lub os\u00f3b)<br\/>\u2013 koniec 2025 r. <SortIcon col=\"firms\"\/><\/th>\n                                        <th onClick={() => handleSort('persons')} className=\"px-6 py-3 text-right cursor-pointer hover:bg-slate-200\">Szacowana liczba<br\/>os\u00f3b z certyfikatem<br\/>F-GAZ personalnym <SortIcon col=\"persons\"\/><\/th>\n                                        <th onClick={() => handleSort('firmsPer100k')} className=\"px-6 py-3 text-right cursor-pointer hover:bg-slate-200\">Liczba firm HVAC<br\/>na 100 ty\u015b<br\/>mieszka\u0144c\u00f3w <SortIcon col=\"firmsPer100k\"\/><\/th>\n                                        <th onClick={() => handleSort('certsPer100k')} className=\"px-6 py-3 text-right cursor-pointer hover:bg-slate-200\">Liczba certyfikat\u00f3w<br\/>F-GAZ na 100 tys.<br\/>Mieszka\u0144c\u00f3w<br\/>(populacja ~2025) <SortIcon col=\"certsPer100k\"\/><\/th>\n                                        <th onClick={() => handleSort('pop')} className=\"px-6 py-3 text-right cursor-pointer hover:bg-slate-200\">Ilo\u015b\u0107 mieszka\u0144c\u00f3w <SortIcon col=\"pop\"\/><\/th>\n                                    <\/tr>\n                                <\/thead>\n                                <tbody className=\"divide-y divide-slate-100\">\n                                    {sortedData.map((row, idx) => (\n                                        <tr key={idx} className=\"hover:bg-primary-light transition-colors\">\n                                            <td className=\"px-6 py-4 font-medium text-slate-900\">{row.name}<\/td>\n                                            <td className=\"px-6 py-4 text-right text-slate-700\">{row.firms}<\/td>\n                                            <td className=\"px-6 py-4 text-right text-slate-700\">{row.persons}<\/td>\n                                            <td className=\"px-6 py-4 text-right text-slate-700\">{row.firmsPer100k}<\/td>\n                                            <td className=\"px-6 py-4 text-right font-bold text-primary bg-primary\/5\">{row.certsPer100k}<\/td>\n                                            <td className=\"px-6 py-4 text-right text-slate-500\">{row.pop}<\/td>\n                                        <\/tr>\n                                    ))}\n                                <\/tbody>\n                                <tfoot className=\"bg-slate-100 font-bold border-t-2 border-slate-300\">\n                                     <tr className=\"text-base\">\n                                        <td className=\"px-6 py-4 text-slate-900\">{FgazData.total.name}<\/td>\n                                        <td className=\"px-6 py-4 text-right\">{FgazData.total.firms}<\/td>\n                                        <td className=\"px-6 py-4 text-right\">{FgazData.total.persons}<\/td>\n                                        <td className=\"px-6 py-4 text-right\">{FgazData.total.firmsPer100k}<\/td>\n                                        <td className=\"px-6 py-4 text-right text-primary\">{FgazData.total.certsPer100k}<\/td>\n                                        <td className=\"px-6 py-4 text-right\">{FgazData.total.pop}<\/td>\n                                    <\/tr>\n                                <\/tfoot>\n                            <\/table>\n                        <\/div>\n                    <\/div>\n                <\/div>\n            );\n        };\n\n        \/\/ Renderowanie do unikalnego ID \"root-fgaz\"\n        const root = ReactDOM.createRoot(document.getElementById('root-fgaz'));\n        root.render(<FgazTableComponent \/>);\n    <\/script>\n<\/body>\n<\/html>\n\n\n\n<p><strong>Uwaga:<\/strong> Powy\u017csze warto\u015bci s\u0105 oszacowaniami opartymi na dost\u0119pnych danych i trendach &#8211; oficjalne \u017ar\u00f3d\u0142a, jak ju\u017c wspomnieli\u015bmy nie publikuj\u0105 pe\u0142nego rozbicia certyfikat\u00f3w F-GAZ na wojew\u00f3dztwa. Wed\u0142ug Urz\u0119du Dozoru Technicznego, pod koniec 2023 r. w Polsce by\u0142o <strong>ponad 14 tys.<\/strong> firm posiadaj\u0105cych certyfikat F-GAZ (w zakresie stacjonarnych urz\u0105dze\u0144 ch\u0142odniczych, klimatyzacyjnych i pomp ciep\u0142a). Do ko\u0144ca 2025 r. liczba ta mog\u0142a zbli\u017cy\u0107 si\u0119 do ~16 tys., co odzwierciedlaj\u0105 powy\u017csze sumaryczne szacunki. Liczb\u0119 mieszka\u0144c\u00f3w przyj\u0119to na podstawie danych GUS za 2024 r. (np. woj. podlaskie ~1,13 mln mieszka\u0144c\u00f3w). <strong>Wszystkie powy\u017csze warto\u015bci obejmuj\u0105 zar\u00f3wno podmioty polskie, jak i oddzia\u0142y firm zagranicznych dzia\u0142aj\u0105ce w Polsce<\/strong> \u2013 dost\u0119pne rejestry nie rozr\u00f3\u017cniaj\u0105 ich statusu w\u0142asno\u015bci. Zakres niepewno\u015bci szacunk\u00f3w wynosi szacunkowo \u00b110%.<\/p>\n\n\n\n<p><strong>Komentarz:<\/strong> Najwi\u0119cej certyfikowanych wykonawc\u00f3w HVAC dzia\u0142a w wojew\u00f3dztwach o najwi\u0119kszej populacji i rozwini\u0119tym rynku budowlano-klimatyzacyjnym \u2013 przede wszystkim <strong>mazowieckim<\/strong> (tu zarejestrowanych jest najwi\u0119ksze absolutnie, a tak\u017ce bardzo wysokie w przeliczeniu na mieszka\u0144c\u00f3w, nasycenie certyfikatami) oraz du\u017cych regionach miejskich jak <strong>\u015bl\u0105skie<\/strong>, <strong>wielkopolskie<\/strong>, <strong>ma\u0142opolskie<\/strong> czy <strong>dolno\u015bl\u0105skie<\/strong>. Relatywnie <strong>najmniejsze nasycenie<\/strong> (ok. 35 certyfikat\u00f3w na 100 tys. os\u00f3b) odnotowano w wojew\u00f3dztwach o mniejszej liczbie ludno\u015bci i mniej rozwini\u0119tej infrastrukturze HVAC, takich jak <strong>podlaskie<\/strong> czy <strong>\u015bwi\u0119tokrzyskie<\/strong>. Og\u00f3\u0142em jednak r\u00f3\u017cnice w g\u0119sto\u015bci certyfikowanych wykonawc\u00f3w mi\u0119dzy regionami nie s\u0105 skrajnie du\u017ce \u2013 \u015bwiadczy to o do\u015b\u0107 r\u00f3wnomiernym zapotrzebowaniu na us\u0142ugi HVAC w ca\u0142ym kraju, z lekk\u0105 przewag\u0105 region\u00f3w silnie zurbanizowanych<\/p>\n\n\n\n<p><strong>Implikacja strategiczna:<\/strong>&nbsp;W regionach o niskim nasyceniu F-GAZ (Wsch\u00f3d), strategia powinna opiera\u0107 si\u0119 na dost\u0119pno\u015bci i legalno\u015bci (\u201eJeste\u015bmy certyfikowanym, bezpiecznym wyborem\u201d). W regionach nasyconych (Warszawa, Wroc\u0142aw, Krak\u00f3w, Katowice), sam certyfikat nic nie znaczy &#8211; walka odbywa si\u0119 na polu czasu reakcji serwisu i kompleksowo\u015bci oferty (Koszyk D: Pompa+PV). Wzmo\u017cone kontrole UDT i obowi\u0105zek raportowania do bazy BDS&nbsp;&nbsp;ju\u017c w 2025 roku zacz\u0119\u0142y czy\u015bci\u0107 rynek z \u201eszarej strefy\u201d, co jest szans\u0105 dla legalnie dzia\u0142aj\u0105cych firm na przej\u0119cie klient\u00f3w poszukuj\u0105cych serwisu dla osieroconych instalacji.&nbsp;&nbsp;&nbsp;<\/p>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading1849_ebbf55-8c, .wp-block-kadence-advancedheading.kt-adv-heading1849_ebbf55-8c[data-kb-block=\"kb-adv-heading1849_ebbf55-8c\"]{font-size:var(--global-kb-font-size-lg, 2rem);font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading1849_ebbf55-8c mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading1849_ebbf55-8c[data-kb-block=\"kb-adv-heading1849_ebbf55-8c\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading1849_ebbf55-8c img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading1849_ebbf55-8c[data-kb-block=\"kb-adv-heading1849_ebbf55-8c\"] img.kb-inline-image{width:150px;vertical-align:baseline;}<\/style>\n<h2 class=\"kt-adv-heading1849_ebbf55-8c wp-block-kadence-advancedheading\" data-kb-block=\"kb-adv-heading1849_ebbf55-8c\"><strong>Podsumowanie i rekomendacje strategiczne na 2026<\/strong><\/h2>\n\n\n\n<p>Rok 2025 by\u0142 okresem \u201e\u0142adowania spr\u0119\u017cyny\u201d. Dane o pozwoleniach na budow\u0119 jednoznacznie wskazuj\u0105, \u017ce mimo chwilowego spowolnienia w oddawaniu mieszka\u0144, fala nowych inwestycji jest ju\u017c w drodze. Dla firm instalacyjnych kluczowe jest wykorzystanie tego czasu na reorientacj\u0119 geograficzn\u0105 i produktow\u0105.<\/p>\n\n\n\n<p><strong>Geografia:<\/strong>&nbsp;Nale\u017cy skoncentrowa\u0107 si\u0142y sprzeda\u017cowe w regionach o wysokiej intensywno\u015bci (Pomorskie, Ma\u0142opolskie) lub w niszach o niskiej konkurencji (Podkarpackie, Warmi\u0144sko Mazurskie). Unika\u0107 nale\u017cy rynk\u00f3w stagnacyjnych (\u015awi\u0119tokrzyskie, Opolskie, Kujawsko-Pomorskie), chyba \u017ce posiada si\u0119 tam ugruntowan\u0105 pozycj\u0119 lidera i chce wej\u015b\u0107 w rynek modernizacji.<\/p>\n\n\n\n<p><strong>Produkt:<\/strong>&nbsp;Przysz\u0142o\u015bci\u0105 jest ucieczka do przodu w kierunku \u201eTwierdzy energetycznej\u201d. Klient ko\u0144cowy w 2026 roku nie kupuje pompy ciep\u0142a, by by\u0107 \u201eeko\u201d &#8211; kupuje j\u0105, by w po\u0142\u0105czeniu z fotowoltaik\u0105 i magazynem energii uniezale\u017cni\u0107 si\u0119 od fluktuacji cen medi\u00f3w. Mar\u017ca na zintegrowanym systemie jest trzykrotnie wy\u017csza ni\u017c na prostym splicie.<\/p>\n\n\n\n<p><strong>Konkurencja:<\/strong>&nbsp;Wygraj\u0105 ci, kt\u00f3rzy zaoferuj\u0105 nie tylko monta\u017c, ale i bezpiecze\u0144stwo (legalno\u015b\u0107 F-GAZ, serwis). W obliczu rosn\u0105cej biurokracji (BDS, UDT), transparentno\u015b\u0107 staje si\u0119 produktem samym w sobie.<\/p>\n\n\n\n<p>Analiza dowodzi, \u017ce polski rynek budowlany i instalacyjny, mimo wyzwa\u0144, oferuje ogromne pok\u0142ady warto\u015bci dla firm, kt\u00f3re potrafi\u0105 czyta\u0107 dane wyprzedzaj\u0105ce i dostosowa\u0107 swoj\u0105 ofert\u0119 do nowej geografii zysk\u00f3w.<br><\/p>\n\n\n<style>.kb-row-layout-wrap.wp-block-kadence-rowlayout.kb-row-layout-id2403_5216b9-6e{margin-top:var(--global-kb-spacing-sm, 1.5rem);margin-bottom:var(--global-kb-spacing-sm, 1.5rem);}.kb-row-layout-id2403_5216b9-6e > .kt-row-column-wrap{align-content:start;}:where(.kb-row-layout-id2403_5216b9-6e > .kt-row-column-wrap) > .wp-block-kadence-column{justify-content:start;}.kb-row-layout-id2403_5216b9-6e > .kt-row-column-wrap{column-gap:var(--global-kb-gap-md, 2rem);row-gap:var(--global-kb-gap-md, 2rem);max-width:var( --global-content-width, 1290px );padding-left:var(--global-content-edge-padding);padding-right:var(--global-content-edge-padding);padding-top:var(--global-kb-spacing-md, 2rem);padding-right:var(--global-kb-spacing-xxs, 0.5rem);padding-bottom:var(--global-kb-spacing-md, 2rem);padding-left:var(--global-kb-spacing-xxs, 0.5rem);grid-template-columns:minmax(0, calc(25% - ((var(--global-kb-gap-md, 2rem) * 1 )\/2)))minmax(0, calc(75% - ((var(--global-kb-gap-md, 2rem) * 1 )\/2)));}.kb-row-layout-id2403_5216b9-6e{border-bottom:1px solid var(--global-palette7, #EDF2F7);}.kb-row-layout-id2403_5216b9-6e{background-image:linear-gradient(44deg,rgb(254,81,0) 6%,rgb(123,8,156) 100%);}.kb-row-layout-id2403_5216b9-6e > .kt-row-layout-overlay{opacity:0.78;background:radial-gradient(ellipse at center center,var(--global-palette9) 0%,var(--global-palette7) 99%);}@media all and (max-width: 1024px), only screen and (min-device-width: 1024px) and (max-device-width: 1366px) and (-webkit-min-device-pixel-ratio: 2) and (hover: none){.kb-row-layout-wrap.wp-block-kadence-rowlayout.kb-row-layout-id2403_5216b9-6e{background-image:linear-gradient(44deg,var(--global-palette1) 2%,var(--global-palette2) 100%);}}@media all and (max-width: 1024px), only screen and (min-device-width: 1024px) and (max-device-width: 1366px) and (-webkit-min-device-pixel-ratio: 2) and (hover: none){.kb-row-layout-id2403_5216b9-6e .kb-blocks-bg-video-container,.kb-row-layout-id2403_5216b9-6e .kb-blocks-bg-slider{display:none;}}@media all and (max-width: 1024px){.kb-row-layout-id2403_5216b9-6e > .kt-row-column-wrap{grid-template-columns:repeat(2, minmax(0, 1fr));}}@media all and (max-width: 1024px){.kb-row-layout-id2403_5216b9-6e{border-bottom:1px solid var(--global-palette7, #EDF2F7);}}@media all and (max-width: 767px){.kb-row-layout-id2403_5216b9-6e > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr);}.kb-row-layout-id2403_5216b9-6e{border-bottom:1px solid var(--global-palette7, #EDF2F7);}.kb-row-layout-wrap.wp-block-kadence-rowlayout.kb-row-layout-id2403_5216b9-6e{background-image:linear-gradient(44deg,rgb(254,81,0) 0%,rgb(123,8,156) 100%);}.kb-row-layout-id2403_5216b9-6e .kb-blocks-bg-video-container,.kb-row-layout-id2403_5216b9-6e .kb-blocks-bg-slider{display:none;}}<\/style><div class=\"kb-row-layout-wrap kb-row-layout-id2403_5216b9-6e alignfull has-theme-palette9-background-color kt-row-has-bg wp-block-kadence-rowlayout\"><div class=\"kt-row-layout-overlay kt-row-overlay-gradient\"><\/div><div class=\"kt-row-column-wrap kt-has-2-columns kt-row-layout-equal kt-tab-layout-inherit kt-mobile-layout-row kt-row-valign-top kb-theme-content-width\">\n<style>.kadence-column2403_4071af-cb > .kt-inside-inner-col{display:flex;}.kadence-column2403_4071af-cb > .kt-inside-inner-col,.kadence-column2403_4071af-cb > .kt-inside-inner-col:before{border-top-left-radius:24px;border-top-right-radius:24px;border-bottom-right-radius:24px;border-bottom-left-radius:24px;}.kadence-column2403_4071af-cb > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column2403_4071af-cb > .kt-inside-inner-col{flex-direction:column-reverse;justify-content:center;}.kadence-column2403_4071af-cb > .kt-inside-inner-col > .aligncenter{width:100%;}.kt-row-column-wrap > .kadence-column2403_4071af-cb{align-self:center;}.kt-inner-column-height-full:not(.kt-has-1-columns) > .wp-block-kadence-column.kadence-column2403_4071af-cb{align-self:auto;}.kt-inner-column-height-full:not(.kt-has-1-columns) > .wp-block-kadence-column.kadence-column2403_4071af-cb > .kt-inside-inner-col{flex-direction:column;justify-content:center;}.kadence-column2403_4071af-cb > .kt-inside-inner-col{background-image:url('https:\/\/ktozrobi.pl\/media\/wp-content\/uploads\/2026\/02\/jak-dziala-ktozrobi-6-scaled.webp');background-size:contain;background-position:48% 45%;background-attachment:scroll;background-repeat:no-repeat;}.kadence-column2403_4071af-cb > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column2403_4071af-cb{position:relative;}.kadence-column2403_4071af-cb, .kt-inside-inner-col > .kadence-column2403_4071af-cb:not(.specificity){margin-right:var(--global-kb-spacing-xxs, 0.5rem);margin-left:var(--global-kb-spacing-xxs, 0.5rem);}@media all and (max-width: 1024px){.kt-row-column-wrap > .kadence-column2403_4071af-cb{align-self:center;}}@media all and (max-width: 1024px){.kt-inner-column-height-full:not(.kt-has-1-columns) > .wp-block-kadence-column.kadence-column2403_4071af-cb{align-self:auto;}}@media all and (max-width: 1024px){.kt-inner-column-height-full:not(.kt-has-1-columns) > .wp-block-kadence-column.kadence-column2403_4071af-cb > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 1024px){.kadence-column2403_4071af-cb > .kt-inside-inner-col{flex-direction:column-reverse;justify-content:center;}}@media all and (max-width: 767px){.kt-row-column-wrap > .kadence-column2403_4071af-cb{align-self:center;}.kt-inner-column-height-full:not(.kt-has-1-columns) > .wp-block-kadence-column.kadence-column2403_4071af-cb{align-self:auto;}.kt-inner-column-height-full:not(.kt-has-1-columns) > .wp-block-kadence-column.kadence-column2403_4071af-cb > .kt-inside-inner-col{flex-direction:column;justify-content:center;}.kadence-column2403_4071af-cb > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}.kadence-column2403_4071af-cb {}<\/style>\n<div class=\"wp-block-kadence-column kadence-column2403_4071af-cb kb-section-dir-vertical-reverse kb-section-sm-dir-vertical inner-column-1\"><div class=\"kt-inside-inner-col\"><style>.wp-block-kadence-spacer.kt-block-spacer-2403_24aad1-05 .kt-block-spacer{height:600px;}.wp-block-kadence-spacer.kt-block-spacer-2403_24aad1-05 .kt-divider{border-top-width:1px;height:1px;border-top-color:#eee;width:80%;border-top-style:solid;}@media all and (max-width: 767px){.wp-block-kadence-spacer.kt-block-spacer-2403_24aad1-05 .kt-block-spacer{height:320px!important;}}<\/style>\n<div class=\"wp-block-kadence-spacer aligncenter kt-block-spacer-2403_24aad1-05\"><div class=\"kt-block-spacer kt-block-spacer-halign-center\"><\/div><\/div>\n<\/div><\/div>\n\n\n<style>.kadence-column2403_2085ae-eb > .kt-inside-inner-col{display:flex;}.kadence-column2403_2085ae-eb > .kt-inside-inner-col,.kadence-column2403_2085ae-eb > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column2403_2085ae-eb > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column2403_2085ae-eb > .kt-inside-inner-col{flex-direction:column;justify-content:center;}.kadence-column2403_2085ae-eb > .kt-inside-inner-col > .aligncenter{width:100%;}.kt-row-column-wrap > .kadence-column2403_2085ae-eb{align-self:center;}.kt-inner-column-height-full:not(.kt-has-1-columns) > .wp-block-kadence-column.kadence-column2403_2085ae-eb{align-self:auto;}.kt-inner-column-height-full:not(.kt-has-1-columns) > .wp-block-kadence-column.kadence-column2403_2085ae-eb > .kt-inside-inner-col{flex-direction:column;justify-content:center;}.kadence-column2403_2085ae-eb > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column2403_2085ae-eb{text-align:left;}.kadence-column2403_2085ae-eb{position:relative;}.kadence-column2403_2085ae-eb, .kt-inside-inner-col > .kadence-column2403_2085ae-eb:not(.specificity){margin-left:0px;}@media all and (max-width: 1024px){.kt-row-column-wrap > .kadence-column2403_2085ae-eb{align-self:center;}}@media all and (max-width: 1024px){.kt-inner-column-height-full:not(.kt-has-1-columns) > .wp-block-kadence-column.kadence-column2403_2085ae-eb{align-self:auto;}}@media all and (max-width: 1024px){.kt-inner-column-height-full:not(.kt-has-1-columns) > .wp-block-kadence-column.kadence-column2403_2085ae-eb > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 1024px){.kadence-column2403_2085ae-eb > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kt-row-column-wrap > .kadence-column2403_2085ae-eb{align-self:center;}.kt-inner-column-height-full:not(.kt-has-1-columns) > .wp-block-kadence-column.kadence-column2403_2085ae-eb{align-self:auto;}.kt-inner-column-height-full:not(.kt-has-1-columns) > .wp-block-kadence-column.kadence-column2403_2085ae-eb > .kt-inside-inner-col{flex-direction:column;justify-content:center;}.kadence-column2403_2085ae-eb > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}<\/style>\n<div class=\"wp-block-kadence-column kadence-column2403_2085ae-eb kb-section-dir-vertical\"><div class=\"kt-inside-inner-col\"><style>.kb-row-layout-id2403_9e3cf9-b8 > .kt-row-column-wrap{align-content:start;}:where(.kb-row-layout-id2403_9e3cf9-b8 > .kt-row-column-wrap) > .wp-block-kadence-column{justify-content:start;}.kb-row-layout-id2403_9e3cf9-b8 > .kt-row-column-wrap{column-gap:var(--global-kb-gap-md, 2rem);row-gap:var(--global-kb-gap-md, 2rem);max-width:var( --global-content-width, 1290px );padding-left:var(--global-content-edge-padding);padding-right:var(--global-content-edge-padding);padding-top:0px;padding-bottom:0px;grid-template-columns:minmax(0, 1fr);}.kb-row-layout-id2403_9e3cf9-b8 > .kt-row-layout-overlay{opacity:0.30;}@media all and (max-width: 1024px){.kb-row-layout-id2403_9e3cf9-b8 > .kt-row-column-wrap{grid-template-columns:minmax(0, 1fr);}}@media all and (max-width: 767px){.kb-row-layout-id2403_9e3cf9-b8 > .kt-row-column-wrap{padding-top:var(--global-kb-spacing-xxs, 0.5rem);padding-bottom:var(--global-kb-spacing-xs, 1rem);grid-template-columns:minmax(0, 1fr);}}<\/style><div class=\"kb-row-layout-wrap kb-row-layout-id2403_9e3cf9-b8 alignnone wp-block-kadence-rowlayout\"><div class=\"kt-row-column-wrap kt-has-1-columns kt-row-layout-equal kt-tab-layout-inherit kt-mobile-layout-row kt-row-valign-top kb-theme-content-width\">\n<style>.kadence-column2403_d0e3ac-7a > .kt-inside-inner-col,.kadence-column2403_d0e3ac-7a > .kt-inside-inner-col:before{border-top-left-radius:0px;border-top-right-radius:0px;border-bottom-right-radius:0px;border-bottom-left-radius:0px;}.kadence-column2403_d0e3ac-7a > .kt-inside-inner-col{column-gap:var(--global-kb-gap-sm, 1rem);}.kadence-column2403_d0e3ac-7a > .kt-inside-inner-col{flex-direction:column;}.kadence-column2403_d0e3ac-7a > .kt-inside-inner-col > .aligncenter{width:100%;}.kadence-column2403_d0e3ac-7a > .kt-inside-inner-col:before{opacity:0.3;}.kadence-column2403_d0e3ac-7a{position:relative;}@media all and (max-width: 1024px){.kadence-column2403_d0e3ac-7a > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}@media all and (max-width: 767px){.kadence-column2403_d0e3ac-7a > .kt-inside-inner-col{flex-direction:column;justify-content:center;}}.kadence-column2403_d0e3ac-7a {}<\/style>\n<div class=\"wp-block-kadence-column kadence-column2403_d0e3ac-7a inner-column-1\"><div class=\"kt-inside-inner-col\"><style>.wp-block-kadence-advancedheading.kt-adv-heading2403_c0e6b7-9c, .wp-block-kadence-advancedheading.kt-adv-heading2403_c0e6b7-9c[data-kb-block=\"kb-adv-heading2403_c0e6b7-9c\"]{margin-bottom:var(--global-kb-spacing-xs, 1rem);text-align:center;font-size:var(--global-kb-font-size-xl, 3rem);line-height:1.4;font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading2403_c0e6b7-9c mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading2403_c0e6b7-9c[data-kb-block=\"kb-adv-heading2403_c0e6b7-9c\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading2403_c0e6b7-9c img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading2403_c0e6b7-9c[data-kb-block=\"kb-adv-heading2403_c0e6b7-9c\"] img.kb-inline-image{width:150px;vertical-align:baseline;}@media all and (max-width: 767px){.wp-block-kadence-advancedheading.kt-adv-heading2403_c0e6b7-9c, .wp-block-kadence-advancedheading.kt-adv-heading2403_c0e6b7-9c[data-kb-block=\"kb-adv-heading2403_c0e6b7-9c\"]{font-size:22px;}}<\/style>\n<div class=\"kt-adv-heading2403_c0e6b7-9c wp-block-kadence-advancedheading has-theme-palette-3-color has-text-color\" data-kb-block=\"kb-adv-heading2403_c0e6b7-9c\"><strong><strong>\u0141\u0105czymy instalator\u00f3w z inwestorami na jasnych zasadach<\/strong>.<\/strong><\/div>\n\n\n<style>.wp-block-kadence-advancedheading.kt-adv-heading2403_409a87-57, .wp-block-kadence-advancedheading.kt-adv-heading2403_409a87-57[data-kb-block=\"kb-adv-heading2403_409a87-57\"]{margin-bottom:var(--global-kb-spacing-md, 2rem);text-align:center;font-size:24px;font-style:normal;}.wp-block-kadence-advancedheading.kt-adv-heading2403_409a87-57 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading2403_409a87-57[data-kb-block=\"kb-adv-heading2403_409a87-57\"] mark.kt-highlight{font-style:normal;color:#f76a0c;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.wp-block-kadence-advancedheading.kt-adv-heading2403_409a87-57 img.kb-inline-image, .wp-block-kadence-advancedheading.kt-adv-heading2403_409a87-57[data-kb-block=\"kb-adv-heading2403_409a87-57\"] img.kb-inline-image{width:150px;vertical-align:baseline;}@media all and (max-width: 767px){.wp-block-kadence-advancedheading.kt-adv-heading2403_409a87-57, .wp-block-kadence-advancedheading.kt-adv-heading2403_409a87-57[data-kb-block=\"kb-adv-heading2403_409a87-57\"]{font-size:var(--global-kb-font-size-md, 1.25rem);}}<\/style>\n<div class=\"kt-adv-heading2403_409a87-57 wp-block-kadence-advancedheading has-theme-palette-3-color has-text-color\" data-kb-block=\"kb-adv-heading2403_409a87-57\">Wejd\u017a do projektu przed startem dla inwestor\u00f3w&nbsp;<strong>13 kwietnia<\/strong>&nbsp;i zbuduj przewag\u0119, zanim zrobi to konkurencja.<\/div>\n\n\n\n<div class=\"wp-block-buttons alignwide is-horizontal is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-499968f5 wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button is-style-fill\"><a class=\"wp-block-button__link has-text-align-center has-custom-font-size wp-element-button\" href=\"https:\/\/ktozrobi.pl\/media\/dolacz-teraz\/\" style=\"border-top-left-radius:15px;border-top-right-radius:15px;border-bottom-left-radius:15px;border-bottom-right-radius:15px;padding-top:var(--wp--preset--spacing--30);padding-right:var(--wp--preset--spacing--70);padding-bottom:var(--wp--preset--spacing--30);padding-left:var(--wp--preset--spacing--70);font-size:16px;line-height:1.4\">Do\u0142\u0105cz teraz!<\/a><\/div>\n<\/div>\n<\/div><\/div>\n\n<\/div><\/div><\/div><\/div>\n\n<\/div><\/div>\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n<style>.kt-accordion-id1849_238254-b0 .kt-accordion-inner-wrap{column-gap:var(--global-kb-gap-md, 2rem);row-gap:0px;}.kt-accordion-id1849_238254-b0 .kt-accordion-panel-inner{border-top:0px solid transparent;border-right:0px solid transparent;border-bottom:0px solid transparent;border-left:0px solid transparent;padding-top:var(--global-kb-spacing-sm, 1.5rem);padding-right:var(--global-kb-spacing-sm, 1.5rem);padding-bottom:var(--global-kb-spacing-sm, 1.5rem);padding-left:var(--global-kb-spacing-sm, 1.5rem);}.kt-accordion-id1849_238254-b0 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header{border-top:1px solid #f2f2f2;border-right:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;border-left:1px solid #f2f2f2;background:#f2f2f2;color:#555555;padding-top:9px;padding-right:13px;padding-bottom:9px;padding-left:13px;}.kt-accordion-id1849_238254-b0:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle )  > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id1849_238254-b0:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle )  > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap .kt-blocks-accordion-icon-trigger:before{background:#555555;}.kt-accordion-id1849_238254-b0:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-icon-trigger{background:#555555;}.kt-accordion-id1849_238254-b0:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id1849_238254-b0:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-icon-trigger:before{background:#f2f2f2;}.kt-accordion-id1849_238254-b0 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header:hover, \n\t\t\t\tbody:not(.hide-focus-outline) .kt-accordion-id1849_238254-b0 .kt-blocks-accordion-header:focus-visible{color:#444444;background:#eeeeee;border-top:1px solid #878787;border-right:1px solid #878787;border-bottom:1px solid #878787;border-left:1px solid #878787;}.kt-accordion-id1849_238254-b0:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id1849_238254-b0:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:before, body:not(.hide-focus-outline) .kt-accordion-id1849_238254-b0:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle ) .kt-blocks-accordion--visible .kt-blocks-accordion-icon-trigger:after, body:not(.hide-focus-outline) .kt-accordion-id1849_238254-b0:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle ) .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger:before{background:#444444;}.kt-accordion-id1849_238254-b0:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger, body:not(.hide-focus-outline) .kt-accordion-id1849_238254-b0:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger{background:#444444;}.kt-accordion-id1849_238254-b0:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id1849_238254-b0:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:hover .kt-blocks-accordion-icon-trigger:before, body:not(.hide-focus-outline) .kt-accordion-id1849_238254-b0:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger:after, body:not(.hide-focus-outline) .kt-accordion-id1849_238254-b0:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible .kt-blocks-accordion-icon-trigger:before{background:#eeeeee;}.kt-accordion-id1849_238254-b0 .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible,\n\t\t\t\t.kt-accordion-id1849_238254-b0 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active{color:#ffffff;background:#444444;border-top:1px solid #444444;border-right:1px solid #444444;border-bottom:1px solid #444444;border-left:1px solid #444444;}.kt-accordion-id1849_238254-b0:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle )  > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id1849_238254-b0:not( .kt-accodion-icon-style-basiccircle ):not( .kt-accodion-icon-style-xclosecircle ):not( .kt-accodion-icon-style-arrowcircle )  > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:before{background:#ffffff;}.kt-accordion-id1849_238254-b0:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger{background:#ffffff;}.kt-accordion-id1849_238254-b0:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:after, .kt-accordion-id1849_238254-b0:not( .kt-accodion-icon-style-basic ):not( .kt-accodion-icon-style-xclose ):not( .kt-accodion-icon-style-arrow ) .kt-blocks-accordion-header.kt-accordion-panel-active .kt-blocks-accordion-icon-trigger:before{background:#444444;}@media all and (max-width: 1024px){.kt-accordion-id1849_238254-b0 .kt-accordion-panel-inner{border-top:0px solid transparent;border-right:0px solid transparent;border-bottom:0px solid transparent;border-left:0px solid transparent;}}@media all and (max-width: 1024px){.kt-accordion-id1849_238254-b0 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header{border-top:1px solid #f2f2f2;border-right:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;border-left:1px solid #f2f2f2;}}@media all and (max-width: 1024px){.kt-accordion-id1849_238254-b0 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header:hover, \n\t\t\t\tbody:not(.hide-focus-outline) .kt-accordion-id1849_238254-b0 .kt-blocks-accordion-header:focus-visible{border-top:1px solid #878787;border-right:1px solid #878787;border-bottom:1px solid #878787;border-left:1px solid #878787;}}@media all and (max-width: 1024px){.kt-accordion-id1849_238254-b0 .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible,\n\t\t\t\t.kt-accordion-id1849_238254-b0 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active{border-top:1px solid #444444;border-right:1px solid #444444;border-bottom:1px solid #444444;border-left:1px solid #444444;}}@media all and (max-width: 767px){.kt-accordion-id1849_238254-b0 .kt-accordion-inner-wrap{display:block;}.kt-accordion-id1849_238254-b0 .kt-accordion-inner-wrap .kt-accordion-pane:not(:first-child){margin-top:0px;}.kt-accordion-id1849_238254-b0 .kt-accordion-panel-inner{border-top:0px solid transparent;border-right:0px solid transparent;border-bottom:0px solid transparent;border-left:0px solid transparent;}.kt-accordion-id1849_238254-b0 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header{border-top:1px solid #f2f2f2;border-right:1px solid #f2f2f2;border-bottom:1px solid #f2f2f2;border-left:1px solid #f2f2f2;}.kt-accordion-id1849_238254-b0 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header:hover, \n\t\t\t\tbody:not(.hide-focus-outline) .kt-accordion-id1849_238254-b0 .kt-blocks-accordion-header:focus-visible{border-top:1px solid #878787;border-right:1px solid #878787;border-bottom:1px solid #878787;border-left:1px solid #878787;}.kt-accordion-id1849_238254-b0 .kt-accordion-header-wrap .kt-blocks-accordion-header:focus-visible,\n\t\t\t\t.kt-accordion-id1849_238254-b0 > .kt-accordion-inner-wrap > .wp-block-kadence-pane > .kt-accordion-header-wrap > .kt-blocks-accordion-header.kt-accordion-panel-active{border-top:1px solid #444444;border-right:1px solid #444444;border-bottom:1px solid #444444;border-left:1px solid #444444;}}<\/style>\n<div class=\"wp-block-kadence-accordion alignnone\"><div class=\"kt-accordion-wrap kt-accordion-id1849_238254-b0 kt-accordion-has-2-panes kt-active-pane-0 kt-accordion-block kt-pane-header-alignment-left kt-accodion-icon-style-basic kt-accodion-icon-side-right\" style=\"max-width:none\"><div class=\"kt-accordion-inner-wrap\" data-allow-multiple-open=\"false\" data-start-open=\"none\">\n<div class=\"wp-block-kadence-pane kt-accordion-pane kt-accordion-pane-1 kt-pane1849_0a5680-c2\"><div class=\"kt-accordion-header-wrap\"><button class=\"kt-blocks-accordion-header kt-acccordion-button-label-show\" type=\"button\"><span class=\"kt-blocks-accordion-title-wrap\"><span class=\"kt-blocks-accordion-title\">\u0179r\u00f3d\u0142a<\/span><\/span><span class=\"kt-blocks-accordion-icon-trigger\"><\/span><\/button><\/div><div class=\"kt-accordion-panel kt-accordion-panel-hidden\"><div class=\"kt-accordion-panel-inner\">\n<p>stat.gov.pl <br>pom.piib.org.pl <br>bigdata.rynekpierwotny.pl <br>erobocze.pl <br>wroclaw.stat.gov.pl <br>bydgoszcz.tvp.pl <br>katowice.stat.gov.pl <br>lodz.stat.gov.pl <br>log.lodz.pl <br>rzeszow.stat.gov.pl <br>bigdata.rynekpierwotny.pl <br>szczecin.stat.gov.pl <br>lublin.stat.gov.pl <br>bialystok.stat.gov.pl <br>zielonagora.stat.gov.pl <br>inforlex.pl <br>nieruchomosci-rej.pl <\/p>\n<\/div><\/div><\/div>\n<\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Polski sektor budowlano-instalacyjny znajduje si\u0119 w fazie g\u0142\u0119bokiej transformacji strukturalnej. Po okresie korekty w latach 2023-2024,&#8230;<\/p>\n","protected":false},"author":3,"featured_media":1962,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_kadence_starter_templates_imported_post":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"normal","_kad_post_sidebar_id":"","_kad_post_content_style":"default","_kad_post_vertical_padding":"hide","_kad_post_feature":"default","_kad_post_feature_position":"default","_kad_post_header":false,"_kad_post_footer":false,"footnotes":""},"categories":[6],"tags":[],"class_list":["post-1849","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dla-instalatora"],"taxonomy_info":{"category":[{"value":6,"label":"Dla instalatora"}]},"featured_image_src_large":["https:\/\/ktozrobi.pl\/media\/wp-content\/uploads\/2026\/02\/analiza-rynku-budowlano-instalacyjnego-1024x683.webp",1024,683,true],"author_info":{"display_name":"Redakcja","author_link":"https:\/\/ktozrobi.pl\/media\/author\/redakcja\/"},"comment_info":0,"category_info":[{"term_id":6,"name":"Dla instalatora","slug":"dla-instalatora","term_group":0,"term_taxonomy_id":6,"taxonomy":"category","description":"","parent":0,"count":8,"filter":"raw","cat_ID":6,"category_count":8,"category_description":"","cat_name":"Dla instalatora","category_nicename":"dla-instalatora","category_parent":0}],"tag_info":false,"_links":{"self":[{"href":"https:\/\/ktozrobi.pl\/media\/wp-json\/wp\/v2\/posts\/1849","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ktozrobi.pl\/media\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ktozrobi.pl\/media\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ktozrobi.pl\/media\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/ktozrobi.pl\/media\/wp-json\/wp\/v2\/comments?post=1849"}],"version-history":[{"count":112,"href":"https:\/\/ktozrobi.pl\/media\/wp-json\/wp\/v2\/posts\/1849\/revisions"}],"predecessor-version":[{"id":2506,"href":"https:\/\/ktozrobi.pl\/media\/wp-json\/wp\/v2\/posts\/1849\/revisions\/2506"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ktozrobi.pl\/media\/wp-json\/wp\/v2\/media\/1962"}],"wp:attachment":[{"href":"https:\/\/ktozrobi.pl\/media\/wp-json\/wp\/v2\/media?parent=1849"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ktozrobi.pl\/media\/wp-json\/wp\/v2\/categories?post=1849"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ktozrobi.pl\/media\/wp-json\/wp\/v2\/tags?post=1849"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}